1. Лучший говнокод

    В номинации:
    За время:
  2. C++ / Говнокод #19681

    +10

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    14. 14
    15. 15
    #define class KOKOKO
    #include <sys/shutdown.h>
    #undef class
    
    /* внутри sys/shutdown.h:
    
    typedef struct
    {
        uint64_t start_time;
        pid_t pid;
        int8_t class;
        uint8_t padding[3];
        char *name;
    } ProcessInfo_t;
    */

    перезагружаем qnx neutrino из крестового кода

    Xom94ok, 22 Марта 2016

    Комментарии (26)
  3. C# / Говнокод #19652

    0

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    14. 14
    15. 15
    16. 16
    17. 17
    18. 18
    19. 19
    20. 20
    21. 21
    22. 22
    23. 23
    24. 24
    25. 25
    26. 26
    27. 27
    28. 28
    29. 29
    30. 30
    31. 31
    32. 32
    33. 33
    34. 34
    35. 35
    36. 36
    37. 37
    38. 38
    39. 39
    40. 40
    41. 41
    42. 42
    43. 43
    44. 44
    45. 45
    46. 46
    47. 47
    48. 48
    49. 49
    50. 50
    51. 51
    52. 52
    53. 53
    54. 54
    55. 55
    56. 56
    57. 57
    58. 58
    59. 59
    60. 60
    public static IEnumerable fGetPostIMAP(string port, int port2, string username, string password, string startCount, string path)
    {
        Stopwatch swatch = new Stopwatch();
        swatch.Start();
        int Delay = 10;
        System.IO.StreamWriter sw = null;
        System.Net.Sockets.TcpClient tcpc = null;
        int bytes = -1;
        int is_file = 0;
        int is_att = 0;
        byte[] buffer;
        StringBuilder sb = new StringBuilder();
    //...
        string UID = "";
        string From;
        try
        {
    //...
    
                        if (ListMessage.IndexOf("filename=") > -1)
                        {
                            temp = ListMessage.Replace("filename=", "");
                            temp = temp.Trim();
                            file_name = temp;
                            is_file = 1; temp = ""; is_att = 1;
                        }
    //...
                            if (is_file == 1)
                            {
                                if (ListMessage.IndexOf("--") > -1)
                                    end_file = 1;
                                else
                                    temp = temp + ListMessage;
    
                            }
                            if (ListMessage == "")
                            {
                                is_file = 1;
                            }
    //...
        }
        catch (Exception ex)
        {
            rows.Add(new object[] { "ERROR:" });
            rows.Add(new object[] { ex.Message });
        }
        finally
        {
            if (sw != null)
            {
                sw.Close();
                sw.Dispose();
            }
            if (tcpc != null)
            {
                tcpc.Close();
            }
        }
        return rows;
    }

    Делфи головного мозга просвечивает в каждой строчке. Даже использованием 0/1 вместо булева типа не скрыть дельфишной сути.

    tucvbif, 17 Марта 2016

    Комментарии (26)
  4. C++ / Говнокод #19558

    0

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    14. 14
    15. 15
    16. 16
    17. 17
    18. 18
    19. 19
    20. 20
    21. 21
    22. 22
    23. 23
    24. 24
    25. 25
    26. 26
    27. 27
    28. 28
    29. 29
    30. 30
    31. 31
    32. 32
    33. 33
    34. 34
    35. 35
    36. 36
    37. 37
    38. 38
    39. 39
    40. 40
    41. 41
    42. 42
    43. 43
    44. 44
    45. 45
    46. 46
    47. 47
    48. 48
    49. 49
    50. 50
    51. 51
    52. 52
    53. 53
    54. 54
    55. 55
    56. 56
    57. 57
    58. 58
    59. 59
    60. 60
    61. 61
    62. 62
    63. 63
    64. 64
    65. 65
    66. 66
    67. 67
    68. 68
    69. 69
    70. 70
    71. 71
    72. 72
    73. 73
    74. 74
    75. 75
    76. 76
    77. 77
    78. 78
    79. 79
    80. 80
    81. 81
    82. 82
    83. 83
    84. 84
    85. 85
    86. 86
    87. 87
    #if !defined LOG_PRINT_FNAME && !defined LOG_PRINT_LVL && \
        !defined LOG_PRINT_DATE  && !defined LOG_PRINT_TIME && \
        !defined LOG_TIME_FMT   &&  !defined LOG_DATETIME_SEP && \
        !defined LOG_PRINT_TIMER && !defined LOG_VERB
    #warning No logging options specified, default config will be used
    #endif
     
    // Initialize unitialized values
    #ifndef LOG_PRINT_FNAME
        #define LOG_PRINT_FNAME true
    #endif
    #ifndef LOG_PRINT_LVL
        #define LOG_PRINT_LVL false
    #endif
    #ifndef LOG_PRINT_DATE
        #define LOG_PRINT_DATE false
    #endif
    #ifndef LOG_PRINT_TIME
        #define LOG_PRINT_TIME false
    #endif
    #ifndef LOG_DATE_FMT
        #define LOG_DATE_FMT "%D"
    #endif
    #ifndef LOG_TIME_FMT
        #define LOG_TIME_FMT "%T"
    #endif
    #ifndef LOG_DATETIME_SEP
        #define LOG_DATETIME_SEP ""
    #endif
    #ifndef LOG_PRINT_TIMER
        #define LOG_PRINT_TIMER true
    #endif
    #ifndef LOG_VERB
        #define LOG_VERB 1
    #endif
     
     
    #if LOG_PRINT_TIMER == true && (LOG_PRINT_DATE == true || LOG_PRINT_TIME == true)
    #warning Printing timer and datetime both is not possible, datetime will be discarded
    #define LOG_PRINT_DATE false
    #define LOG_PRINT_TIME false
    #endif
     
    enum LogLevel_t {
        INFO     = 3,
        WARNING  = 2,
        ERROR    = 0,
        TRACE    = 7
    };
     
    #define TIMER
    #define DATE
    #define TIME
    #define SEPARATOR
    #define FNAME
    #define LVL(lvl)
     
    #define STREAM(lvl) \
        ((lvl) == TRACE || (lvl) == ERROR) ? std::cerr : std::cout
     
    #if LOG_PRINT_TIMER == true
    #define TIMER << "[" << std::fixed << Log::getTimer() << "] "
    #endif
     
    #if LOG_PRINT_DATE == true
    #define DATE << Log::getTimeFmt(LOG_DATE_FMT) << " "
    #endif
     
    #if LOG_PRINT_TIME == true
    #define TIME << Log::getTimeFmt(LOG_TIME_FMT) << " "
    #endif
     
    #if LOG_PRINT_DATE == true && LOG_PRINT_TIME == true
    #define SEPARATOR << LOG_DATETIME_SEP
    #endif
     
    #if LOG_PRINT_FNAME == true
    #define FNAME << __FUNCTION__ << ": "
    #endif
     
    #if LOG_PRINT_LVL == true
    #define LVL(lvl) << #lvl << ": "
    #endif
     
    #define LOG(lvl) \
        std::cout.precision(5); \
        STREAM(lvl) TIMER DATE SEPARATOR TIME LVL(lvl) FNAME

    xxx: Бля, я написал какое-то говно
    yyy: Я видел некоторое дерьмо
    xxx: Пиздец просто
    zzz: Действительно говно.
    xxx: Я не знаю даже нахуя я это делал
    xxx: Почему-то, когда начинал, мне не пришло в голову, что логгирование на макросах, конфигурируемое в компилтайме — это пиздец

    CYB3R, 02 Марта 2016

    Комментарии (26)
  5. PHP / Говнокод #19368

    −3

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    14. 14
    15. 15
    16. 16
    17. 17
    18. 18
    19. 19
    20. 20
    21. 21
    22. 22
    23. 23
    24. 24
    25. 25
    26. 26
    27. 27
    28. 28
    29. 29
    30. 30
    31. 31
    32. 32
    33. 33
    34. 34
    35. 35
    36. 36
    37. 37
    38. 38
    39. 39
    40. 40
    41. 41
    42. 42
    43. 43
    44. 44
    45. 45
    46. 46
    47. 47
    48. 48
    49. 49
    50. 50
    51. 51
    52. 52
    53. 53
    54. 54
    55. 55
    56. 56
    57. 57
    58. 58
    59. 59
    60. 60
    61. 61
    62. 62
    63. 63
    64. 64
    65. 65
    if ($Module == 'edit' and $_POST['enter']) {	
    ULogin(1);
    $_POST['name'] = FormChars($_POST['name']);
    $_POST['femeli'] = FormChars($_POST['femeli']);
    $_POST['den'] = FormChars($_POST['den']);
    $_POST['month'] = FormChars($_POST['month']);
    $_POST['year'] = FormChars($_POST['year']);
    $_POST['pol'] = FormChars($_POST['pol']);
    $_POST['country'] = FormChars($_POST['country']);
    $_POST['region'] = FormChars($_POST['region']);
    $_POST['city'] = FormChars($_POST['city']);
    
    
    if ($_POST['name'] != $_SESSION['USER_NAME']) {
    mysqli_query($CONNECT, "UPDATE `users`  SET `name` = '$_POST[name]' WHERE `id` = $_SESSION[USER_ID]");
    $_SESSION['USER_NAME'] = $_POST['name'];
    }
    
    if ($_POST['femeli'] != $_SESSION['USER_FEMELI']) {
    mysqli_query($CONNECT, "UPDATE `users`  SET `femeli` = '$_POST[femeli]' WHERE `id` = $_SESSION[USER_ID]");
    $_SESSION['USER_FEMELI'] = $_POST['femeli'];
    }
    
    if ($_POST['den'] != $_SESSION['USER_DEN']) {
    mysqli_query($CONNECT, "UPDATE `users`  SET `den` = $_POST[den] WHERE `id` = $_SESSION[USER_ID]");
    $_SESSION['USER_DEN'] = $_POST['den'];
    }
    
    if ($_POST['month'] != $_SESSION['USER_MONTH']) {
    mysqli_query($CONNECT, "UPDATE `users`  SET `month` = $_POST[month] WHERE `id` = $_SESSION[USER_ID]");
    $_SESSION['USER_MONTH'] = $_POST['month'];
    }
    
    
    if ($_POST['year'] != $_SESSION['USER_YEAR']) {
    mysqli_query($CONNECT, "UPDATE `users`  SET `year` = $_POST[year] WHERE `id` = $_SESSION[USER_ID]");
    $_SESSION['USER_YEAR'] = $_POST['year'];
    }
    
    if ($_POST['pol'] != $_SESSION['USER_POL']) {
    mysqli_query($CONNECT, "UPDATE `users`  SET `pol` = $_POST[pol] WHERE `id` = $_SESSION[USER_ID]");
    $_SESSION['USER_POL'] = $_POST['pol'];
    }
    
    
    
    if ($_POST['country'] != $_SESSION['USER_COUNTRY']) {
    mysqli_query($CONNECT, "UPDATE `users`  SET `country` = $_POST[country] WHERE `id` = $_SESSION[USER_ID]");
    $_SESSION['USER_COUNTRY'] = $_POST['country'];
    }
    
    
    if ($_POST['region'] != $_SESSION['USER_REGION']) {
    mysqli_query($CONNECT, "UPDATE `users`  SET `region` = $_POST[region] WHERE `id` = $_SESSION[USER_ID]");
    $_SESSION['USER_REGION'] = $_POST['region'];
    }
    
    if ($_POST['city'] != $_SESSION['USER_CITY']) {
    mysqli_query($CONNECT, "UPDATE `users`  SET `city` = $_POST[city] WHERE `id` = $_SESSION[USER_ID]");
    $_SESSION['USER_CITY'] = $_POST['city'];
    }
    
    
    MessageSend(3, 'Данные изменены!');
    }

    никто не подскажет как сократить вот эту шнягу

    viktor, 29 Января 2016

    Комментарии (26)
  6. JavaScript / Говнокод #18051

    +143

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    14. 14
    _save = (data, callback) ->
      tags = if data.tags then data.tags else []
      removed_tag_ids = if data.removed_tag_ids then data.removed_tag_ids else []
      post = if data.post then data.post else null
      new_tags = _.filter tags, (tag) ->
        not _.has(tag, "label")
      old_tags = _.filter tags, (tag) ->
          _.has(tag, "label")
          
      $.when(_.each old_tags, (old_tag) =>
        tag_post.save({tag: tag, post: post})
      ).done(=>
      	do callback
      )

    Обратились с вопросом "почему не работает".
    PS метод save асинхронный

    alek0585, 23 Апреля 2015

    Комментарии (26)
  7. ActionScript / Говнокод #17938

    −162

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    14. 14
    15. 15
    16. 16
    17. 17
    18. 18
    19. 19
    private function parse (val : String) : Object {
        while (val.indexOf(' ') != -1) {
            val = val.replace(' ', '')
        }
        if (val.indexOf(',') != -1) {
            var params : Array = val.split(',')
            if (params[0] != 'auto') {
                params[0] = [parseInt(params[0]), /(px|%)/.exec(params[0][1])]
            }
            if (params[1] != 'auto') {
                params[1] = [parseInt(params[1]), /(px|%)/.exec(params[1])[1]]
            }
            return params
    
        } else if (val == 'contain' || val == 'cover') {
            return val
        }
        return null
    }

    Да блять, я не осилила разобрать строку типа "10px,auto"

    kyzi007, 05 Апреля 2015

    Комментарии (26)
  8. Си / Говнокод #17801

    +132

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    int weeks_in_month(int month, int year){
        int weeks=1, first, i=0;  //i - числа месяца
        first = weekday(1, 1, 1, 1, 1, month, year);
        i += 8 - first;
        while(i <= days_in_month(month, year)){
            ++weeks;
            i += 7;
        }
        return weeks;
    }

    alobanov, 16 Марта 2015

    Комментарии (26)
  9. C++ / Говнокод #17791

    +57

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    14. 14
    15. 15
    16. 16
    17. 17
    18. 18
    19. 19
    20. 20
    21. 21
    22. 22
    23. 23
    24. 24
    25. 25
    26. 26
    27. 27
    28. 28
    29. 29
    30. 30
    31. 31
    32. 32
    33. 33
    34. 34
    35. 35
    36. 36
    37. 37
    38. 38
    39. 39
    40. 40
    41. 41
    42. 42
    43. 43
    44. 44
    45. 45
    46. 46
    47. 47
    48. 48
    49. 49
    50. 50
    51. 51
    52. 52
    53. 53
    54. 54
    55. 55
    56. 56
    57. 57
    58. 58
    59. 59
    60. 60
    61. 61
    62. 62
    63. 63
    64. 64
    65. 65
    66. 66
    67. 67
    68. 68
    69. 69
    70. 70
    71. 71
    72. 72
    73. 73
    74. 74
    75. 75
    76. 76
    77. 77
    78. 78
    79. 79
    80. 80
    81. 81
    82. 82
    83. 83
    84. 84
    85. 85
    86. 86
    87. 87
    88. 88
    89. 89
    90. 90
    #include <cstdio>
    #include <cstring>
    
    int main() {
        unsigned long long int a[100000];
        unsigned long long int N;
        unsigned long long int max,max1;
        unsigned long long int maxC,maxC1;
        unsigned long long int maxN[100000];
        unsigned long long int ans = 0;
        unsigned long long int ans1 = 0;
        max = max1 = maxC = maxC1 = 0;
        scanf("%llu",&N);
        for (unsigned long long int i = 0; i < N; ++i) {
            scanf("%llu",a + i);
            if (a[i] > a[max]) {
                max1 = max;
                maxC1 = maxC;
    //            memcpy(maxN,maxN1,maxC*sizeof(unsigned long long int));
                max = i;
                maxC = 1;
                maxN[0] = max;
            } else if (a[i] == a[max]) {
                maxN[maxC++] = i;
            } else if (a[i] > a[max1]) {
                max1 = i;
                maxC1 = 1;
            } else if (a[i] == a[max1]) {
                maxC1++;
            }
        }
        if (maxC == 1) {
            ans = a[max];
            if (a[max] == a[max1] + 1) {
                if (a[max] < (maxC1 + 1) * a[max1]) {
                    printf("%llu\n",a[max]);
                    return 0;
                }
            }
            if (max > 0) {
                if (a[max - 1] + 1 < ans - 1) {
                    if (a[max - 1] + 1 == a[max1]) {
                        if (a[max1] * (maxC1 + 1 + (a[max] - 1 == a[max1]?1:0)) < ans) {
                            ans1 = a[max1] * (maxC1 + 1 + (a[max] - 1 == a[max1]?1:0));
                            if (ans > ans1) ans = ans1;
    //                        prunsigned long long intf ("1 : %d\n",ans);
                        }
                    }
                    else { 
                        ans1 = a[max] - 1 + (a[max] - 1 == a[max1]?a[max1] * maxC1:0);
                        if (ans > ans1) ans = ans1;
    //                    prunsigned long long intf ("2 : %d\n",ans);
                    }
                }
            }
            if (max < N - 2) {
                if (a[max + 1] + 1 < ans - 1) {
                    if (a[max + 1] + 1 == a[max1]) {
                        if (a[max1] * (maxC1 + 1 + (a[max] - 1 == a[max1]?1:0)) < ans) {
                            ans1 = a[max1] * (maxC1 + 1 + (a[max] - 1 == a[max1]?1:0));
                            if (ans > ans1) ans = ans1;
    //                        prunsigned long long intf ("3 : %d\n",ans);
                        }
                    }
                    else { 
                        ans1 = a[max] - 1 + (a[max] - 1 == a[max1]?a[max1] * maxC1:0);
                        if (ans > ans1) ans = ans1;
    //                    prunsigned long long intf ("4 : %d\n",ans);
                    }
                }
            }
            printf("%llu\n",ans);
            return 0;
        } // one max line
        bool f = true;
        bool f1 = true;
        if (a[max] * maxC > a[max] + 1) {
    //        prunsigned long long intf("here %d\n",maxC);
            for (unsigned long long int i = 0; i < maxC; ++i) {
                if (f1 && ((maxN[i] && a[maxN[i] - 1]) || (maxN[i] < N - 1 && a[maxN[i] + 1]))) f1 = false; // get from near line
                if (f && ((maxN[i] && a[maxN[i] - 1] < a[max] - 1) || (maxN[i] < N - 1 && a[maxN[i] + 1] < a[max] - 1))) f = false;
            }
        }
        ans1 = ans = maxC * a[max];
        
        if (!f && a[max] > 1) ans = (maxC - 1) * a[max];
        if (!f1) ans1 = a[max] + 1;
        printf("%llu\n",ans>ans1?ans1:ans);
        return 0;
    }

    Серега говнокодит задачу с OpenCup'a от 15.03.2015 (задача L - Бассейн счастья)

    kosta3ov, 15 Марта 2015

    Комментарии (26)
  10. Си / Говнокод #17745

    +138

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    14. 14
    15. 15
    16. 16
    17. 17
    18. 18
    19. 19
    20. 20
    21. 21
    22. 22
    23. 23
    24. 24
    25. 25
    26. 26
    27. 27
    28. 28
    29. 29
    30. 30
    31. 31
    32. 32
    33. 33
    34. 34
    35. 35
    36. 36
    37. 37
    38. 38
    39. 39
    typedef enum { SUCCESS = 0, NOTNUMBER = 1, BOUNDS = 2, EOFREACHED = 3 } rdstat_t;
    
    int flush_line(FILE *stream) {
      int ch;
      do {
        ch = fgetc(stream);
      } while (ch != EOF && ch != '\n');
      return ch;
    }
    
    /* enough to contain (1 + length of ASCII string of SIZE_MAX
       decimal representation) characters */
    #define SIZE_T_BUF_SIZE 100
    
    /* reads until newline or EOF, writes (size_t *out) if success */
    rdstat_t read_size_t(FILE *stream, size_t *out) {
      char str_SIZE_MAX[SIZE_T_BUF_SIZE];
      snprintf(str_SIZE_MAX, SIZE_T_BUF_SIZE, "%zu", SIZE_MAX);
     
      char buf[SIZE_T_BUF_SIZE];
      if (!fgets(buf, SIZE_T_BUF_SIZE, stream)) 
        return EOFREACHED;
      if (buf[strlen(buf) - 1] != '\n') {
        flush_line(stream);
        return NOTNUMBER;
      }
    
      buf[strlen(buf) - 1] = 0;
      char *ch;
      for (ch = buf; *ch; ++ch)
        if (!isdigit(*ch)) 
          return NOTNUMBER;
    
      if (strlen(buf) == strlen(str_SIZE_MAX) && strcmp(buf, str_SIZE_MAX) > 0) 
          return BOUNDS;
        
      sscanf(buf, "%zu", out);
      return SUCCESS;
    }

    Наваял функцию для чтения size_t из файла с защитой от дурака (писал код будучи больным, чесслово).
    Ничего умнее печати SIZE_MAX в строчку и лексикографического сравнения для проверки границ введенного числа не придумал %)

    vlitomsk, 06 Марта 2015

    Комментарии (26)
  11. PHP / Говнокод #17733

    +157

    1. 1
    <button type="button" class="btn blue" style="float: left; margin-bottom: 20px; margin-left: 15px;" onclick="window.location = '/cars/car/update/id/<?php echo $model->id; ?>'"></button>

    Проект работает на основе Yii framework. Тут явное пренебрежение всеми концепциями и стандартами: от размещения css в html элементе, до не понимания, как устроен веб в целом -- почему window.location, а не обычный линк, для меня остается тайной. Искренне желаю взглянуть в лицо автору кода.

    creepy-code, 05 Марта 2015

    Комментарии (26)