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

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

    +146

    1. 1
    2. 2
    3. 3
    4. 4
    #if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,27)
     kill_proc(1,SIGTERM,1);
     #else
    ...

    Оригинальный способ проверить версию ядра линукса...
    Где-то в сырцах реалтековского драйвера для GPIO...

    Necromant, 25 Августа 2011

    Комментарии (10)
  3. PHP / Говнокод #7634

    +161

    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
    /**
     * @param array $config
     * @return App_Ldap
     */
    private final function __construct(array $config)
    {
    
        if (!empty($config['host'])) {
            $this->_host = $config['host'];
    
            $dnTemp = explode('.', $this->_host);
            $dnTemp = array_map(function($value)
                {
                    return 'dc=' . $value;
                }, $dnTemp);
    
            $this->_dn = implode(',', $dnTemp);
        } else {
            throw new Exception('I need LDAP host');
        }
    
        if (!empty($config['user'])) {
            $this->_user = $config['user'];
        } else {
            throw new Exception('I need LDAP login');
        }
    
        if (!empty($config['pass'])) {
            $this->_pass = $config['pass'];
        } else {
            throw new Exception('I need LDAP pass');
        }
    
        return $this;
    }

    ykhrustalev, 24 Августа 2011

    Комментарии (10)
  4. PHP / Говнокод #7627

    +163

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    8. 8
    $result = $db->query("SELECT w.wine_name as wine_name,(SELECT wine_type FROM wine_type WHERE wine_id_type = w.wine_type) as wine_type,
    	                             (SELECT variety FROM grape_variety WHERE variety_id = (SELECT variety_id FROM wine_variety WHERE wine_id = w.wine_id)) AS wine_variety,
    								 w.year as wine_year, (SELECT winery_name FROM winery WHERE winery_id = w.winery_id) as winery,
    								 (SELECT region_name FROM region WHERE region_id = (SELECT region_id FROM winery WHERE winery_id = w.winery_id)) as winery_region,
    								 (SELECT cost FROM inventory WHERE wine_id = w.wine_id) as wine_cost,
    								 (SELECT on_hand FROM inventory WHERE wine_id = w.wine_id) as wine_quantity
    	                      FROM wine w
    						  WHERE w.wine_id = '$id'");

    достаём данные из базы для страницы редактирования ...

    denis90, 23 Августа 2011

    Комментарии (10)
  5. Pascal / Говнокод #7624

    +123

    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
    function HexWrdToStr(Dval : integer) : string;
    var i : integer;
    retstr : string;
    begin
    retstr := '';
    i := (Dval AND $F000) DIV $1000;
    case i of
      0 : retstr := retstr + '0';
      1 : retstr := retstr + '1';
      2 : retstr := retstr + '2';
      3 : retstr := retstr + '3';
      4 : retstr := retstr + '4';
      5 : retstr := retstr + '5';
      6 : retstr := retstr + '6';
      7 : retstr := retstr + '7';
      8 : retstr := retstr + '8';
      9 : retstr := retstr + '9';
      10 : retstr := retstr + 'A';
      11 : retstr := retstr + 'B';
      12 : retstr := retstr + 'C';
      13 : retstr := retstr + 'D';
      14 : retstr := retstr + 'E';
      15 : retstr := retstr + 'F';
    end;
    i := (Dval AND $F00) DIV $100;
    case i of
      0 : retstr := retstr + '0';
      1 : retstr := retstr + '1';
      2 : retstr := retstr + '2';
      3 : retstr := retstr + '3';
      4 : retstr := retstr + '4';
      5 : retstr := retstr + '5';
      6 : retstr := retstr + '6';
      7 : retstr := retstr + '7';
      8 : retstr := retstr + '8';
      9 : retstr := retstr + '9';
      10 : retstr := retstr + 'A';
      11 : retstr := retstr + 'B';
      12 : retstr := retstr + 'C';
      13 : retstr := retstr + 'D';
      14 : retstr := retstr + 'E';
      15 : retstr := retstr + 'F';
    end;
    i := (Dval AND $F0) DIV $10;
    case i of
      0 : retstr := retstr + '0';
      1 : retstr := retstr + '1';
      2 : retstr := retstr + '2';
      3 : retstr := retstr + '3';
      4 : retstr := retstr + '4';
      5 : retstr := retstr + '5';
      6 : retstr := retstr + '6';
      7 : retstr := retstr + '7';
      8 : retstr := retstr + '8';
      9 : retstr := retstr + '9';
      10 : retstr := retstr + 'A';
      11 : retstr := retstr + 'B';
      12 : retstr := retstr + 'C';
      13 : retstr := retstr + 'D';
      14 : retstr := retstr + 'E';
      15 : retstr := retstr + 'F';
    end;
    i := Dval AND $F;
    case i of
      0 : retstr := retstr + '0';
      1 : retstr := retstr + '1';
      2 : retstr := retstr + '2';
      3 : retstr := retstr + '3';
      4 : retstr := retstr + '4';
      5 : retstr := retstr + '5';
      6 : retstr := retstr + '6';
      7 : retstr := retstr + '7';
      8 : retstr := retstr + '8';
      9 : retstr := retstr + '9';
      10 : retstr := retstr + 'A';
      11 : retstr := retstr + 'B';
      12 : retstr := retstr + 'C';
      13 : retstr := retstr + 'D';
      14 : retstr := retstr + 'E';
      15 : retstr := retstr + 'F';
    end;
    HexWrdToStr := retstr;
    end;

    Авторы - программисты из FTDI, взято из экзамплов работы с USB-конвертерами.
    Полный текст можно найти здесь: __http://www.ftdichip.com/Support/SoftwareExamples/CodeExamples/Delphi.htm

    З.Ы. Ниже по тексту идет аналогичная функция HexByteToStr. Алгоритм, так сказать, тот же.

    1291, 23 Августа 2011

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

    +161

    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
    /// ...хде-то в начале огромной-преогромной функции...
    #define ADD_GRAPH(gid,gmod) m_Registry[TGraphId(gid,gmod)] = new
    /// ...хде-то по её середине...
    #define ADD_MAP_WEAPON_OVERLAY(name_base,file_name)\
      for (i=0; i<8; i++)\
      {\
        ADD_GRAPH(name_base _T("S"),i) (CLoadImage (\
          file_name,\
          TImageFX ()\
          .SetColorReplacementFX (g_WeaponRecolor[i],2,0)\
          ));\
        ADD_GRAPH(name_base _T("Q"),i) (CLoadImage (\
          file_name,\
          TImageFX ()\
          .SetColorReplacementFX (g_WeaponRecolor[i],2,1)\
          ));\
      }
    #define ADD_MAP_WEAPON_OUTLINE(name_base,file_name)\
      ADD_GRAPH(name_base _T("C"),0) (CLoadImage (\
          file_name,\
          TImageFX ()\
          .SetColorReplacementFX (g_WeaponRecolor[0],2,2)\
          ));
    
    ADD_MAP_WEAPON_OVERLAY (_T("CellSword"),_T("cell_weap_sword.png"));
    ADD_MAP_WEAPON_OVERLAY (_T("CellAxe"),_T("cell_weap_axe.png"));
    ADD_MAP_WEAPON_OVERLAY (_T("CellEshock"),_T("cell_weap_eshock.png"));
    ADD_MAP_WEAPON_OVERLAY (_T("CellLance"),_T("cell_weap_lance.png"));
    //... тут очень много в таком же духе ...
    ADD_MAP_WEAPON_OUTLINE (_T("CellXbow"),_T("cell_weap_xbow.png"));
    ADD_MAP_WEAPON_OUTLINE (_T("CellRifle"),_T("cell_weap_rifle.png"));
    ADD_MAP_WEAPON_OUTLINE (_T("CellPistol"),_T("cell_weap_pistol.png"));

    >Как бы оно выглядело без макросов, предоставляю гадать желающим.
    Эстеты, разумеется, могут возопить: "Пошто было не вынести всё это в функцию?!" Пото, что функцию (а она потребовалась бы методом) пришлось бы описывать в хедере вместе с классом + имплементировать где-то снаружи текущей функции - весёлое занятие, нечего сказать. Это при том, что данный конкретный кусок кода на момент написания сильномутабелен в плане кол-ва требующихся параметров, и в перспективе мог вообще исчезнуть/слиться с другим. И таких кусков там ~100500. Возможностей, с которыми использование функций для подобного действа не является злобным буратинством, в моём местном С++ пока не наличенствует. А так все релевантные к специфике данного куска пиписьки сконцентрированы в одном месте, умещаются на 1 экран, и я спокоен за возвращение к нему через много времени.

    CPPGovno, 21 Августа 2011

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

    +164

    1. 1
    for(int i(0); i<5; i++)

    Мне интересно, кто-нибудь так же пишет?

    Говногость, 20 Августа 2011

    Комментарии (10)
  8. PHP / Говнокод #7579

    +169

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    <?php
    
     $xml = simplexml_load_string($xmlstring);
    $json = json_encode($xml);
    $array = json_decode($json,TRUE);
    
    ?>

    "Three line xml2array"
    http://www.php.net/manual/en/book.simplexml.php#105330

    striker, 18 Августа 2011

    Комментарии (10)
  9. SQL / Говнокод #7571

    −857

    1. 1
    CREATE DOMAIN D_TRIBOOL AS SMALLINT DEFAULT 0 NOT NULL CHECK (VALUE IN (-1,0,1));

    Возможно, вопрос о говнокодистости этой строчки является холиварным. Но меня приведённый отрывок по крайней мере немало удивил.

    konsoletyper, 17 Августа 2011

    Комментарии (10)
  10. PHP / Говнокод #7561

    +173

    1. 1
    define('style', '<link rel="stylesheet" type="text/css" href="/style.css">');

    такого еще не встречал... o_O

    Sulik78, 17 Августа 2011

    Комментарии (10)
  11. Java / Говнокод #7525

    +71

    1. 1
    2. 2
    3. 3
    4. 4
    if (wdContext.nodeTable().size() <= 5)
    	wdContext.currentContextElement().setRowsIn(-1);
    else
    	wdContext.currentContextElement().setRowsIn(-1);

    foGa, 12 Августа 2011

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