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

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

    −164

    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
    CREATE TABLE NEWS (
     ID INT NOT NULL AUTO_INCREMENT
     , NEWS_NAME VARCHAR(300) NOT NULL
     , NEWS_SHORT_NAME VARCHAR(80) NOT NULL
     , NEWS_TEXT VARCHAR(40000) NOT NULL
     , NEWS_SHORT_TEXT VARCHAR(400) NOT NULL
     , NEWS_IMG_1 VARCHAR(60)
     , NEWS_IMG_2 VARCHAR(60)
     , NEWS_IMG_3 VARCHAR(60)
     , NEWS_IMG_4 VARCHAR(60)
     , NEWS_IMG_5 VARCHAR(60)
     , NEWS_IMG_6 VARCHAR(60)
     , NEWS_IMG_7 VARCHAR(60)
     , NEWS_IMG_8 VARCHAR(60)
     , NEWS_IMG_9 VARCHAR(60)
     , NEWS_IMG_10 VARCHAR(60)
     , NEWS_DATE DATE
     , PRIMARY KEY (ID)
    );

    Таблица новостей из одной очень крутой и никому неизвесной CMS на java.
    Сейчас автор думает над тем что делать если пользователяю надо будет загрузить 11 изображений, варианты: увеличить количество полей до 15, ограничить количество изображений на новость.

    lisiy50, 15 Января 2015

    Комментарии (45)
  3. Си / Говнокод #17408

    +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
    15. 15
    16. 16
    17. 17
    18. 18
    19. 19
    20. 20
    21. 21
    void ** __attribute__((noinline)) findVoidSortMap(void ** list,void *key)
    {
        if (!list) return 0;
        if (!*list) return 0;
        unsigned int count= **(unsigned int**)list;
        char *p=(char*)*list;
        p+=4;
        Element *b=(Element *)p;
     
        long long skey=(long long)key;
     
        while (count>0) {
            void** kt=(void**)&b[count>>1];
            long long rkey=(long long)kt[0];
            if (skey==rkey) return (void**)&kt[1];
            if (skey>rkey) {b+=(count>>1)+1;count--;}
            count=count>>1;
        }
     
        return (void**)-1;
    }

    гуру осемблира на этом коде доказывал, что Эльбрус сосёт
    http://www.gamedev.ru/flame/forum/?id=196722&page=33#m481

    TarasB, 05 Января 2015

    Комментарии (45)
  4. Pascal / Говнокод #17233

    +90

    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
    Procedure ArrDataToRawImage(Ptr: PRGB32; Size: TPoint; out RawImage: TRawImage);
    Begin
    RawImage.Init; { Calls raw.Description.Init as well }
    RawImage.Description.PaletteColorCount:=0;
    RawImage.Description.MaskBitsPerPixel:=0;
    RawImage.Description.Width := Size.X;
    RawImage.Description.Height:= Size.Y;
    RawImage.Description.Format := ricfRGBA;
    RawImage.Description.ByteOrder := riboLSBFirst;
    RawImage.Description.BitOrder:= riboBitsInOrder; // should be fine
    RawImage.Description.Depth:=24;
    RawImage.Description.BitsPerPixel:=32;
    RawImage.Description.LineOrder:=riloTopToBottom;
    RawImage.Description.LineEnd := rileDWordBoundary;
    RawImage.Description.RedPrec := 8;
    RawImage.Description.GreenPrec:= 8;
    RawImage.Description.BluePrec:= 8;
    RawImage.Description.AlphaPrec:=0;
    RawImage.Description.RedShift:=16;
    RawImage.Description.GreenShift:=8;
    RawImage.Description.BlueShift:=0;
    RawImage.DataSize := RawImage.Description.Width * RawImage.Description.Height
    * (RawImage.Description.bitsperpixel shr 3);
    RawImage.Data := PByte(Ptr);
    End;

    with ... do? Не. не слышал.

    Cynicrus, 01 Декабря 2014

    Комментарии (45)
  5. JavaScript / Говнокод #17163

    +154

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    function updateClock()
    {
        var date = new Date();
        var day = date.getDate();
        var month = date.getMonth() + 1;
        var year = date.getFullYear();
        var hours = date.getHours();
        var minutes = date.getMinutes();
        var seconds = date.getSeconds();
        var dateTimeString = day + "." + month + "." + year + " " + hours + ":" + minutes + ":" + seconds;
        $('#clock').html("Сейчас " + dateTimeString);
    }

    Трибьют классике.

    pushistayapodmyshka, 24 Ноября 2014

    Комментарии (45)
  6. C++ / Говнокод #16739

    +54

    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
    #include <iostream>
    #include <cstdio>
    #include <cstdlib>
    using namespace std;
     
    int main()
    {
        freopen("input.txt", "r", stdin);
        freopen("output.txt", "w", stdout);
        long x1, x2, x3;
        cin >> x1 >> x2 >> x3;
        if(x1 == 0 && x2 == 0 && x3 == 0){
            cout << 0 << endl;
            exit(EXIT_SUCCESS);
        }
        (x1 != 0) ? cout << x1 : cout << "";
        (x2 != 0) ? (x2 > 0 && x1 != 0) ? (x2 == 1) ? cout << "+x" : cout << '+' << x2 << 'x' : (x2 == -1) ? cout << "-x" : (x2 == 1) ? cout << 'x' : (x2 == -1) ? cout << "-x" : cout << x2 << 'x' : cout << "";
        (x3 != 0) ? (x3 == 1) ? cout << 'y' : (x3 == -1) ? cout << "-y" : (x2 == 0 && x1 == 0) ? cout << x3 << 'y' :  (x3 > 0) ? (x3 == 1) ? cout << "+y" : cout << '+' << x3 << 'y' : (x3 == -1) ? cout << "-y" : cout << x3 << 'y' : cout << "";
        cout << endl;
        return 0;
    }

    Задача № 277 на acmp.ru. Решил "не писать много кода"

    jyree, 21 Сентября 2014

    Комментарии (45)
  7. C# / Говнокод #16649

    +135

    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
    public string ExportToFile(string filename, string filepath, DataSet dsInput)
     {
         string sFlag = "Error";
         System.IO.StreamWriter sw = new StreamWriter("");
         try
         {
             if (filename.Trim() != "" && filepath != "" && dsInput.Tables[0].Rows.Count != 0)
             {
                    sw = new System.IO.StreamWriter(filepath + filename + ".xls");
                     int iCol = dsInput.Tables[0].Columns.Count;
                     for (int i = 0; i < iCol; i++)
                     {
                         sw.Write(dsInput.Tables[0].Columns[i]);
                         if (i < iCol - 1)
                         { sw.Write("\t"); }
                     sw.Write(sw.NewLine);
                     foreach (DataRow dr in dsInput.Tables[0].Rows)
                     {
                         for (int i = 0; i < iCol; i++)
                         {
                             if (!Convert.IsDBNull(dr[i]))
                             {
                                 sw.Write(dr[i].ToString());
                             }
                             if (i < iCol - 1)
                             { sw.Write("\t"); }
                         }
                         sw.Write(sw.NewLine);
                     }
                     sw.Close();
                     sFlag = "Success";
                 }
             }
             return sFlag;
         }
         catch (Exception)
         {
             return sFlag;
         }
     }

    С какого-то китайского сайта:
    http://www.datazx.cn/Forums/en-US/2d129cdc-2705-4035-90e2-063c4c399ae5/action?threadDisplayName=wpf-datagrid-remove-whitespace-from-string-on-clipboard-copy&forum=wpf
    Нафиг эксепшены, лучше вернем строку "Error"! Ну или "Success", если этот чудо-код еще и не грохнется.

    yamamoto, 05 Сентября 2014

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

    +134

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    if ((err = SSLHashSHA1.update(&hashCtx, &serverRandom)) != 0)
        goto fail;
    if ((err = SSLHashSHA1.update(&hashCtx, &signedParams)) != 0)
        goto fail;
        goto fail;
    if ((err = SSLHashSHA1.final(&hashCtx, &hashOut)) != 0)
        goto fail;

    https://www.imperialviolet.org/2014/02/22/applebug.html

    Понятно, что третий if не выполнится. Кстати, это был баг в Apple SSL/TLS, привёдший к уязвимости.

    Кстати, GCC с -Wall это не ловит. Ловит только Clang, и то только с -Wunreachable-code. Мораль: заключайте все тела ифов в блоки!

    someone, 28 Августа 2014

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

    +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
    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
    91. 91
    92. 92
    93. 93
    94. 94
    95. 95
    96. 96
    void MainWindow::mathFun()
    {
       if(stringBuffer->indexOf("pi") != -1)
        {
            int i = stringBuffer->indexOf("pi");
            stringArg2->clear();
            stringArg2->append( stringBuffer->mid(i+2, stringBuffer->size()));
            stringSum->clear();
            stringSum->append(QString::number(stringArg2->toDouble() * 3.1415926));
            ui->lineEdit->clear();
            ui->lineEdit->insert(*stringSum);
            qDebug() <<" i=" << i << " size=" << stringBuffer->size();
        }
        if(stringBuffer->indexOf("log") != -1)
        {
            int i = stringBuffer->indexOf("log");
            stringArg2->clear();
            stringArg2->append( stringBuffer->mid(i+3, stringBuffer->size()));
            stringSum->clear();
            stringSum->append(QString::number(qLn(stringArg2->toDouble())));
            ui->lineEdit->clear();
            ui->lineEdit->insert(*stringSum);
            qDebug() <<" i=" << i << " size=" << stringBuffer->size();
        }
        if(stringBuffer->indexOf("sqr") != -1)
        {
            int i = stringBuffer->indexOf("sqr");
            stringArg2->clear();
            stringArg2->append( stringBuffer->mid(i+3, stringBuffer->size()));
            stringSum->clear();
            stringSum->append(QString::number(qSqrt(stringArg2->toDouble())));
            ui->lineEdit->clear();
            ui->lineEdit->insert(*stringSum);
            qDebug() <<" i=" << i << " size=" << stringBuffer->size();
        }
        if(stringBuffer->indexOf("fac") != -1)
        {
            int i = stringBuffer->indexOf("fac");
            stringArg2->clear();
            stringArg2->append( stringBuffer->mid(i+3, stringBuffer->size()));
            stringSum->clear();
            long long j = 1;
            for(int k = 1; k <= stringArg2->toInt(); ++k)
            {
                if(stringArg2->toInt() == 0)
                {
                    ui->lineEdit->insert(QString::number(0));
                    return;
                }
                j *= 1 * k;
            }
            stringSum->append(QString::number(j));
            ui->lineEdit->clear();
            ui->lineEdit->insert(*stringSum);
            qDebug() <<" i=" << i << " size=" << stringBuffer->size();
        }
        if(stringBuffer->indexOf("pow") != -1)
        {
            int i = stringBuffer->indexOf("pow");
            stringArg1->clear();
            stringArg1->append( stringBuffer->mid(0, i));
            stringArg2->clear();
            stringArg2->append( stringBuffer->mid(i+3, stringBuffer->size()));
            stringSum->clear();
            stringSum->append(QString::number( pow(stringArg1->toDouble(), stringArg2->toDouble())));
            ui->lineEdit->clear();
            ui->lineEdit->insert(*stringSum);
            qDebug() <<" i=" << i << " size=" << stringBuffer->size();
        }
        if(stringBuffer->indexOf("exp") != -1)
        {
            int i = stringBuffer->indexOf("exp");
            stringArg2->clear();
            stringArg2->append( stringBuffer->mid(i+3, stringBuffer->size()));
            stringSum->clear();
            stringSum->append(QString::number(exp(stringArg2->toDouble())));
            ui->lineEdit->clear();
            ui->lineEdit->insert(*stringSum);
            qDebug() <<" i=" << i << " size=" << stringBuffer->size();
        }
        if(stringBuffer->indexOf("mod") != -1)
        {
            int i = stringBuffer->indexOf("mod");
            stringArg1->clear();
            stringArg1->append( stringBuffer->mid(0, i));
            stringArg2->clear();
            stringArg2->append( stringBuffer->mid(i+3, stringBuffer->size()));
            stringSum->clear();
            stringSum->append(QString::number(fmod(stringArg1->toDouble(), stringArg2->toDouble())));
            ui->lineEdit->clear();
            ui->lineEdit->insert(*stringSum);
            qDebug() <<" i=" << i << " size=" << stringBuffer->size();
        }
        stringSum->clear();
        stringBuffer->clear();
    }

    Калькулятор на C++/Qt

    ConstantineVL, 24 Июня 2014

    Комментарии (45)
  10. JavaScript / Говнокод #16131

    +149

    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
    (function (G) {
        "use strict";
        var $ = G.jQuery;
    
        if ($ === undefined) {
            G.console.log("jQuery not found.");
            return;
        }
    
        function resizeContainer() {
            $("div.container").outerHeight($(G).innerHeight());
        }
    
        $(G).resize(resizeContainer);
    
        resizeContainer();
    }(this));

    Вот тут: http://jsfiddle.net/dunmaksim/NWN5f/3/ написал небольшой код, который позволяет сделать разметку на странице в стиле ModernUI. Высота контейнера автоматом подгоняется под высоту окна. Код прогнал через JSLint. Решение ориентировано на новые браузеры. Какие будут замечания? Замыкание использую для ограничения пространства имён.

    dunmaksim, 09 Июня 2014

    Комментарии (45)
  11. Куча / Говнокод #15887

    +139

    1. 1
    2. 2
    Представляю Вашему вниманию новейший минусатор: http://rghost.ru/54852059
    Исправлены многие ошибки предыдущих версий. Не побрезгуйте, родимые!..

    Новейший минусатор для творения непотребностей с рейтингом.

    brutushafens, 02 Мая 2014

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