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

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

    −177

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    SELECT * FROM `table` WHERE UNIX_TIMESTAMP(ExpireDate) >= UNIX_TIMESTAMP(NOW())
    
    
    
    ;

    даже не знаю что тут писать )))) только что столкнулся )))

    bakytn, 23 Октября 2010

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

    +168

    1. 1
    2. 2
    3. 3
    4. 4
    function m($s, $re)
        {
            return preg_match($re, $s);
        }

    Из какого-то движка такая вот функа в файле function.php

    Arigato, 11 Октября 2010

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

    +129

    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
    private const int _multiple_cols = 0x0000060D;  //0001000001101 - (Multiple view)
    private const int _single_cols = 0x000007F1;	//0001111110001 - (Single view)
    
    private void SetGridColumnVisibility()
    {
    	int bits = _view_type == NotificationContactViewType.Multiple ? _multiple_cols : _single_cols;
    	DataControlFieldCollection cols = gvContacts.Columns;
    	DataControlField col;
    	for (int i = 0; i < cols.Count; i++)
    	{
    		col = cols[i];
    		int bit = (int)Math.Pow(2, i);
    		col.Visible = ((bits & bit) == bit);
    	}
    }

    Интересный способ установки видимости колонкам в гриде :)

    olldman, 05 Сентября 2010

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

    +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
    function SplitStr($V){
                      $ab=explode(' ',$V);
                      $V='';
                      foreach($ab as $a){
                            $a=substr($a,0,50).' '.substr($a,50,50).' '.substr($a,100,50).' '.substr($a,150,50).' '.substr($a,200,50).' '.substr($a,250,50).' '.substr($a,300,50).' '.substr($a,350,50);
                            $V.=$a.' ';
                      }
                      while(strpos($V, "  ")){
                            $V = str_replace("  ", " ", $V);
                      }
    
                    return $V;
    }

    Регулярные выражения? Это что и зачем?

    mihaild, 11 Августа 2010

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

    +173

    1. 1
    javascript:for(i=0; i<=document.images.length; i++){document.images[i].width=height=0}

    Безумное решение которое я нашел на форуме в локалке под лозунгом "Сэкономить на трафике" была ссылка с данным кодом.

    pbg, 29 Июня 2010

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

    +125

    1. 1
    2. 2
    3. 3
    int platform = (int) Environment.OSVersion.Platform;
    if (platform != 4 && platform != 128)
          return;

    Из gbrainy (входит в поставку Ubuntu 10.04), причём это рекомендованный самим Мигелем де Иказой подход.
    Экскурс: в кроссплатформенном™ фреймворке MS .NET 1.0/1.1® в энумерации PlatformID не было ничего кроме Windows'ов (Linux в паре мест официально числился Invalid). Ребята из моно кустарно добавили PlatformID.Unix == 128. Затем в MS. NET 2.0 всё-таки открыли для себя Mac OS X и Unix, но проставили PlatformID.Unix == 4. Благими намерениями вымощена дорога в к говнокоду :)

    cfdev, 22 Июня 2010

    Комментарии (27)
  8. Java / Говнокод #3244

    +79

    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
    public String FormatDocumentNumber(String docNum)
        {
            int len = docNum.length();
            int lenDiff = len - Integer.toString(this.document_num).length();
            char[] arr = docNum.toCharArray();
            char[] number = Integer.toString(this.document_num).toCharArray();
            
            for(int i=0; i<len; i++)
            {
                    arr[i] = '0';
            }
    
            for(int i=0; i<number.length; i++ )
            {
                arr[lenDiff+i] = number[i];
            }
    
            StringBuffer sb = new StringBuffer();
            for(int i=0; i<len; i++)
            {
                sb.append(arr[i]);
            }
    
            return sb.toString();
        }

    Как сделать красивую функцию, которая формирует строку определенной длины с числом с ведущими нулями?

    nolka4, 17 Мая 2010

    Комментарии (27)
  9. Си / Говнокод #3154

    +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
    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
    // народ на протяжении 5+ лет жаловался что постоянно что-то в этой библиотеке Х
    // криво потому что часто (с их слов) попытки вызова ее функций просто обламываются:
    
    int module_main_function()
    {
      int rc = 0;
      // ...
    
      rc = libX_do_work( ... )
      if (rc != OK) {
        // error!!!
      }
    
      // ...
    }
    
    // теперь заглянем в инициализацию этого модуля:
    
    int module_init()
    {
       int rc; 
       // ... кучи дежурного копи-паста для инициализации скипнуты ...
       rc = libZ_init();
       if (rc != OK)
       {
         /* error handling */
       }
    
       rc = libY_init();
       if (rc != OK)
       {
         /* error handling */
       }
    
       libX_init();   /* лопата */
       if (rc != OK)
       {
         /* error handling */
       }
    
       rc = libA_init();
       if (rc != OK)
       {
         /* error handling */
       }
    
       // ... и т.д. и т.п.
    }

    меня жалобы одного отдела начали потиху доставать что наша библиотека (назовем ее libX) у них в модуле постоянно не работает и шо ваабще за херня. как встроили ее - так и не работает. иногда. в 80+ модулях работает как часы - ни один другой отдел не жалуется - а вот в ихнем очень специальном модуле нет.

    ну я к ним подвалил. они меня сразу в рабочую функцию тыкать стали - вот тут дескать не работает. я им методично: покаж где инициализация. я когда в инициализацию заглянул, почти сразу начал роготять (давно так не смеялся, наболело за годы).
    им минут пять понадобилось что бы в своем копи-паст параде рассмотреть эту глюку.

    ЗЫ ответ: на строке с лопатой, не хватает "rc = ". у библиотеки есть внешняя конфигурация на отсутствии коей она у них обламывалась постоянно. и исправить скрипты свои что бы чужая конфигурация не убивалясь им похоже религия не позволяет.

    Dummy00001, 04 Мая 2010

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

    +163.8

    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
    function translit($valstr){
        for($i=0;$i<strlen($valstr); $i++){
          switch(ord($valstr[$i])){
            case 192: { $newstr.=chr(97); break; }
            case 193: { $newstr.=chr(98); break; }
            case 194: { $newstr.=chr(118); break; }
            case 195: { $newstr.=chr(103); break; }
            case 196: { $newstr.=chr(100); break; }
            case 197: { $newstr.=chr(101); break; }
            case 198: { $newstr.=chr(122).chr(104); break; }
            case 199: { $newstr.=chr(122); break; }
            case 200: { $newstr.=chr(105); break; }
            case 201: { $newstr.=chr(106); break; }
            case 202: { $newstr.=chr(107); break; }
            case 203: { $newstr.=chr(108); break; }
            case 204: { $newstr.=chr(109); break; }
            case 205: { $newstr.=chr(110); break; }
            case 206: { $newstr.=chr(111); break; }
            case 207: { $newstr.=chr(112); break; }
            case 208: { $newstr.=chr(114); break; }
            case 209: { $newstr.=chr(115); break; }
            case 210: { $newstr.=chr(116); break; }
            case 211: { $newstr.=chr(117); break; }
            case 212: { $newstr.=chr(102); break; }
            case 213: { $newstr.=chr(120); break; }
            case 214: { $newstr.=chr(99); break; }
            case 215: { $newstr.=chr(99).chr(104); break; }
            case 216: { $newstr.=chr(115).chr(104); break; }
            case 217: { $newstr.=chr(119); break; }
            case 218: { break; }
            case 219: { $newstr.=chr(121); break; }
            case 220: { break; }
            case 221: { $newstr.=chr(106).chr(101); break; }
            case 222: { $newstr.=chr(106).chr(117); break; }
            case 223: { $newstr.=chr(121).chr(97); break; }
            case 224: { $newstr.=chr(97); break; }
            case 225: { $newstr.=chr(98); break; }
            case 226: { $newstr.=chr(118); break; }
            case 227: { $newstr.=chr(103); break; }
            case 228: { $newstr.=chr(100); break; }
            case 229: { $newstr.=chr(101); break; }
            case 230: { $newstr.=chr(122).chr(104); break; }
            case 231: { $newstr.=chr(122); break; }
            case 232: { $newstr.=chr(105); break; }
            case 233: { $newstr.=chr(106); break; }
            case 234: { $newstr.=chr(107); break; }
            case 235: { $newstr.=chr(108); break; }
            case 236: { $newstr.=chr(109); break; }
            case 237: { $newstr.=chr(110); break; }
            case 238: { $newstr.=chr(111); break; }
            case 239: { $newstr.=chr(112); break; }
            case 240: { $newstr.=chr(114); break; }
            case 241: { $newstr.=chr(115); break; }
            case 242: { $newstr.=chr(116); break; }
            case 243: { $newstr.=chr(117); break; }
            case 244: { $newstr.=chr(102); break; }
            case 245: { $newstr.=chr(120); break; }
            case 246: { $newstr.=chr(99); break; }
            case 247: { $newstr.=chr(99).chr(104); break; }
            case 248: { $newstr.=chr(115).chr(104); break; }
            case 249: { $newstr.=chr(119); break; }
            case 250: { break; }
            case 251: { $newstr.=chr(121); break; }
            case 252: { break; }
            case 253: { $newstr.=chr(106).chr(101); break; }
            case 254: { $newstr.=chr(106).chr(117); break; }
            case 255:  { $newstr.=chr(121).chr(97); break; }
            default: { $newstr.=$valstr[$i]; break; }
          }
        }
        return $newstr;
      }

    stepushyn, 18 Апреля 2010

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

    +164.6

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    8. 8
    <?php
    if (isset ($_POST['logform'])) {$logform = $_POST['logform'];} else {$logform = $_POST['logform'];}
    echo $logform;
    
    if (isset ($_POST['pasform'])) {$pasform = $_POST['pasform'];} else {$pasform = $_POST['pasform'];}
    echo $pasform;
    
    ?>

    Контрольный в голову

    MoLe-X, 18 Апреля 2010

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