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

    В номинации:
    За время:
  2. Куча / Говнокод #18119

    +142

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    Абонент забыл последние две цифры пин-кода своей сим-карты, однако помнит, что они различны. 
    Он вводит наудачу два числа. Какова вероятность того, что введенный пин-код окажется правильным? 
    
    Правильный ответ: 1/90
    
    Потому что 2 числа - это не 2 ввода пин-кода, а 2 цифры, набранные на телефоне

    Автор вопроса путает цифры и числа. Доколе будет?!

    kegdan, 06 Мая 2015

    Комментарии (3)
  3. Ruby / Говнокод #18115

    −92

    1. 1
    errors[:please] « "fill one more field"

    Ruby On Rails. Крутяк)

    zhilinskyegor, 05 Мая 2015

    Комментарии (3)
  4. Java / Говнокод #18092

    +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
    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
    public void init() throws Exception {
    
            initGps103Server("gps103");
            initTk103Server("tk103");
            initGl100Server("gl100");
            initGl200Server("gl200");
            initT55Server("t55");
            initXexunServer("xexun");
            initTotemServer("totem");
            initEnforaServer("enfora");
            initMeiligaoServer("meiligao");
            initMaxonServer("maxon");
            initSuntechServer("suntech");
            initProgressServer("progress");
            initH02Server("h02");
            initJt600Server("jt600");
            initEv603Server("ev603");
            initV680Server("v680");
            initPt502Server("pt502");
            initTr20Server("tr20");
            initNavisServer("navis");
            initMeitrackServer("meitrack");
            initSkypatrolServer("skypatrol");
            initGt02Server("gt02");
            initGt06Server("gt06");
            initMegastekServer("megastek");
            initNavigilServer("navigil");
            initGpsGateServer("gpsgate");
            initTeltonikaServer("teltonika");
            initMta6Server("mta6");
            initMta6CanServer("mta6can");
            initTlt2hServer("tlt2h");
            initSyrusServer("syrus");
            initWondexServer("wondex");
            initCellocatorServer("cellocator");
            initGalileoServer("galileo");
            initYwtServer("ywt");
            initTk102Server("tk102");
            initIntellitracServer("intellitrac");
            initXt7Server("xt7");
            initWialonServer("wialon");
            initCarscopServer("carscop");
            initApelServer("apel");
            initManPowerServer("manpower");
            initGlobalSatServer("globalsat");
            initAtrackServer("atrack");
            initPt3000Server("pt3000");
            initRuptelaServer("ruptela");
            initTopflytechServer("topflytech");
            initLaipacServer("laipac");
            initAplicomServer("aplicom");
            initGotopServer("gotop");
            initSanavServer("sanav");
            initGatorServer("gator");
            initNoranServer("noran");
            initM2mServer("m2m");
            initOsmAndServer("osmand");
            initEasyTrackServer("easytrack");
            initTaipServer("taip");
            initKhdServer("khd");
            initPiligrimServer("piligrim");
            initStl060Server("stl060");
            initCarTrackServer("cartrack");
            initMiniFinderServer("minifinder");
            initHaicomServer("haicom");
            initEelinkServer("eelink");
            initBoxServer("box");
            initFreedomServer("freedom");
            initTelikServer("telik");
            initTrackboxServer("trackbox");
            initVisiontekServer("visiontek");
            initOrionServer("orion");
            initRitiServer("riti");
            initUlbotechServer("ulbotech");
            initTramigoServer("tramigo");
            initTr900Server("tr900");
            initArdi01Server("ardi01");
            initXt013Server("xt013");
            initAutoFonServer("autofon");
            initGoSafeServer("gosafe");
            initAutoFon45Server("autofon45");
            initBceServer("bce");
            initXirgoServer("xirgo");
            initCalAmpServer("calamp");
            initMtxServer("mtx");
            initTytanServer("tytan");
            initAvl301Server("avl301");
    
            initProtocolDetector();
        }

    Один я тут вижу говно? Внутри еще интереснее, особенно доставил метод start():
    https://github.com/tananaev/traccar/blob/master/src/org/traccar/ServerManager.java

    sakkath, 30 Апреля 2015

    Комментарии (3)
  5. SQL / Говнокод #18088

    −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
    select distinct cast(null as integer) NZAP,d_ext_uslug_napr_zag.id_doc_public NNAPR,d_ext_uslug_napr_zag.date_doc DNAPR, 
     d_ext_uslug_napr_zag.form_med_pom  FOMP, tab_lpu.lpu_ext_code MONAPR, tab_struct_obos_unit.code_ffoms PMONAPR, cast (:lpu_ext_code  as varchar(20)) MO, TSOU1.code_ffoms PMO, 
     tab_other_strings.code_external VPOLIS,patients.polis_s SPOLIS,patients.polis_n NPOLIS, 
     tab_msk.smocod SMO, tab_msk.TF_OKATO TER, 
     d_ext_uslug_napr_zag.fam FAM, d_ext_uslug_napr_zag.nam IM, d_ext_uslug_napr_zag.otch OT, d_ext_uslug_napr_zag.male P, d_ext_uslug_napr_zag.born DR, 
     patients.TELEFON TEL, 
     d_ext_uslug_napr_zag.ds_osn_mkb DSNAPR, TAB_PLACE_PARAM.profil_koek_for_foms PROFK,tab_profile.CODE_PROFILE_EGISZ_PRFO PROFO, 
     TAB_PLACE_PARAM.profil_koek_for_foms PROFKNAPR, 
     tab_profile.CODE_PROFILE_EGISZ_PRFO  PROFONAPR,
     users.snils MEDRAB, 
     med_kart.id_kart_public NKART, med_kart.ds_priem_mkb DS,           
     d_ext_uslug_napr_zag.date_plan_gosp  DPGOSP, 
     MED_KART.date_vipis_planed DPOGOSP  
     from d_ext_uslug_napr_zag 
     left outer join patients on patients.id_pac=d_ext_uslug_napr_zag.pac_id and patients.dae>='31.12.9999'    
     left outer join tab_other_strings on tab_other_strings.id_string=patients.polis_type             
     left outer join tab_profile on tab_profile.id_profile=d_ext_uslug_napr_zag.TARGET_PODR_PROFILE   
     left outer join R_USERS_DOLGN on R_USERS_DOLGN.ID_KD=d_ext_uslug_napr_zag.NAPR_DOCTOR_KD_ID 
     left outer join users on users.id_user=d_ext_uslug_napr_zag.napr_doctor_user_id                  
     left outer join tab_msk on tab_msk.id_msk=patients.msk                                           
     left outer join tab_place on tab_place.id_place=d_ext_uslug_napr_zag.napr_place_id               
     left outer join tab_struct_obos_unit on tab_struct_obos_unit.lpu_id=d_ext_uslug_napr_zag.from_lpu_id 
     left outer join tab_struct_obos_unit TSOU1 on TSOU1.id_obos_unit=tab_place.obos_unit_id          
     left outer join d_diagn on d_diagn.id_doc = d_ext_uslug_napr_zag.id_doc                          
     left outer join med_kart on med_kart.pac_id = patients.id_pac 
     and med_kart.dt_coming>=:O_BEG and med_kart.dt_coming<=:O_END 
     left outer join d_dvig on d_dvig.med_kart=med_kart.id_kart and d_dvig.type_dvig=31                   
      left outer join  tab_place_param on tab_place_param.id_place=d_dvig.target_place                    
           and tab_place_param.dab<=:O_BEG and tab_place_param.dae>:O_BEG                                 
     left outer join tab_struct_place_har on tab_struct_place_har.place_id=tab_place.id_place         
     left outer join tab_lpu on tab_lpu.lpu_code= med_kart.napr_lpu 
     where d_ext_uslug_napr_zag.IS_INCOMING=0 and d_ext_uslug_napr_zag.pay_id=1  --IS_INCOMING=0 только исходящие,      
     and d_ext_uslug_napr_zag.date_doc>=:O_BEG and d_ext_uslug_napr_zag.date_doc<=:O_END

    Обратите внимание на tab_place_param
    Также стоит отметить, что в таблице d_ext_uslug_napr_zag имеются поля med_kart_id, lpu_id, obos_unit_id.
    Ещё: obos_unit — на самом деле подразделение lpu, их может быть несколько. Автор почему-то об этом не подумал.

    tucvbif, 29 Апреля 2015

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

    +144

    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
    static const char *
    inet_ntop4(src, dst, size)
      const u_char *src;
      char *dst;
      size_t size;
    {
      static const char fmt[] = "%u.%u.%u.%u";
      char tmp[sizeof "255.255.255.255"];
    
      if (SPRINTF((tmp, fmt, src[0], src[1], src[2], src[3])) > size) {
        errno = ENOSPC;
        return (NULL);
      }
      strcpy(dst, tmp);
      return (dst);
    }

    blackhearted, 28 Апреля 2015

    Комментарии (3)
  7. JavaScript / Говнокод #18069

    +142

    1. 1
    this.reparent = function (new_parent) {var el = this.element; el.parentNode.removeChild(el); new_parent.appendChild(el);}

    Наткнулся в старом, но ещё работающем коде. Может быть, это даже я написал. Надеюсь, что нет.
    …Нет, похоже, всё-таки не я. Я бы не назвал класс подсвеченного элемента hilited, даже десять лет назад. Похоже, это босс писал.

    torbasow, 27 Апреля 2015

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

    +141

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    public function createAdvertApart () { // ВНИМАНИЕ! Видимость функции protected
    
    // проверяем max размер допустимый к загрузке
    			if ( $_files[size] > 3000000 )
    			$error[] = "Файл превышает размер три мегабайта";

    Прислали вместе с резюме пример кода, а там ...

    kolko91, 24 Апреля 2015

    Комментарии (3)
  9. Python / Говнокод #18050

    −120

    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
    class Column(object):
        """
            Элемент конфигурации
        """
        def __init__(self, *args, **kwargs):
    
            hid = False
            filters = []
            sorters = []
    
            if len(args) == 3:
                inner_name, verbose_name, width = args
            elif len(args) == 2:
                inner_name, verbose_name = args
                width = 20
            elif len(args) == 4:
                inner_name, verbose_name, width, hid = args
            elif len(args) == 5:
                inner_name, verbose_name, width, hid, filters = args
            elif len(args) == 6:
                inner_name, verbose_name, width, hid, filters, sorters = args
    
            special_attrs = ['locked', 'editable']
    
            self.code = inner_name
            self.name = verbose_name
            self.width = width
            self.hidden = hid
            self.idx = 0
            if sorters:
                sorters.column = self
            if filters:
                filters.column = self
                filters.code = self.code
    
            #здесь хранятся экземпляры фильтров для колонок
            self.filters = filters
            #здесь хранятся экземпляры сортировщиков для колонок
            self.sorters = sorters
    
        def get_config(self):
            ''' ?
            '''
            config = dict()
            config['data_index'] = self.code
            config['header'] = self.name
            config['width'] = self.width
            config['hidden'] = self.hidden
    
            return config

    Разбор параметров

    pycz, 23 Апреля 2015

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

    −158

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    Процедура ПриОткрытии()
        Если РольДоступна("ЗапретНаИспользованиеОбработкиПоискИЗаменаДублирующихсяЭлементов") Тогда
            ЭтаФорма.Закрыть();
        КонецЕсли;
    КонецПроцедуры

    Забрал у пользователя права на использование поиска и замены дублирующихся элементов.
    Зато быстро...

    kaorin, 22 Апреля 2015

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

    +163

    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
    if (in_array($id, $_SESSION['id']))
    {
    	for ($j = 0; $j < count($_SESSION['id']); $j++)
    	{
    		if ($_SESSION['id'][$j] == $id)
    		{ $num_el = $j;}
    	}
    
    		$_SESSION['count'][$num_el] += $count;
    		$_SESSION['summa'][$num_el] += $cost*1*$count;
    		$_SESSION['summa_all'] += $cost*1*$count;
    		$_SESSION['count_all'] += $count;
    }
    else
    {
    	$_SESSION['id'][] = $id;
    	$_SESSION['count'][] = $count;
    	$_SESSION['summa'][] = $cost*1*$count;
    	$_SESSION['summa_all'] += $cost*1*$count;		
    	$_SESSION['count_all'] += $count;	
    }

    Главное не забыть умножить на единицу

    roocster, 13 Апреля 2015

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