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

    В номинации:
    За время:
  2. 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)
  3. 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)
  4. 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)
  5. 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)
  6. 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)
  7. 1C / Говнокод #18038

    −158

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

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

    kaorin, 22 Апреля 2015

    Комментарии (3)
  8. 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)
  9. Assembler / Говнокод #17931

    +130

    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
    ;Дисассемблировано "Doctor Watson" для Windows Server 2003 R2 x64
            00000000`004d3f4b 2448             and     al,0x48
            00000000`004d3f4d 488b742440       mov     rsi,[rsp+0x40]
            00000000`004d3f52 418b4008         mov     eax,[r8+0x8]
            00000000`004d3f56 4c8b642420       mov     r12,[rsp+0x20]
            00000000`004d3f5b 488b5c2430       mov     rbx,[rsp+0x30]
            00000000`004d3f60 ffc8             dec     eax
            00000000`004d3f62 498d54c00c       lea     rdx,[r8+rax*8+0xc]
            00000000`004d3f67 666690           nop
            00000000`004d3f6a 666690           nop
            00000000`004d3f6d 666690           nop
    FAULT ->00000000`004d3f70 0fb74202 movzx eax,word ptr [rdx+0x2] ds:00000008`01511086=????
            00000000`004d3f74 443bc8           cmp     r9d,eax
            00000000`004d3f77 440f42c8         cmovb   r9d,eax
            00000000`004d3f7b 66837a0400       cmp     word ptr [rdx+0x4],0x0
            00000000`004d3f80 7415             jz      bma+0xd3f97 (00000000004d3f97)
            00000000`004d3f82 488d0cc500000000 lea     rcx,[00000000+rax*8]
            00000000`004d3f8a 488d0449         lea     rax,[rcx+rcx*2]
            00000000`004d3f8e 0f181442         prefetcht1 byte ptr [rdx+rax*2]
            00000000`004d3f92 4803d1           add     rdx,rcx
            00000000`004d3f95 ebd9             jmp     bma+0xd3f70 (00000000004d3f70)
            00000000`004d3f97 488bc5           mov     rax,rbp

    HP Data Protection Manager 6.10, Windows x86-64, NDMP Media Agent. С первым патчем (не помню номер). Падал с Access Violation.
    Явно ошибка в компиляторе. Если что, в rax в этот момент было 0x00000000ffffffff.

    motoprogger, 04 Апреля 2015

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

    +141

    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
    int fpga_read(char *dev, unsigned int base_addr, unsigned int offset, int len, unsigned char *buf)
    {
        unsigned long long pci_raddr;
        int actual;
        FILE    *fi;
    
        fi = fopen(dev, "r");
        if (fi == NULL) {
            printf("Failed to read from FPGA - Error opening device\n");
            return 1;
        }
    
        pci_raddr = (unsigned long long) 2 << 32 | (base_addr + offset);
        setvbuf(fi, NULL, _IONBF, 0);       // disable file buffering
        fseeko(fi, pci_raddr, SEEK_SET);        // go to the address
        actual = fread(buf, 1, len, fi);        // read the data
        fclose(fi);
        if (actual <= 0) {
            printf("Error  %d reading from device (dev %s, base addr 0x%x, offset 0x%x, len %i)\n", errno, dev, base_addr, offset, len);
            return 2;
        }
        return 0;
    }

    По многочисленным просьбам говнокодеров, выделил в отдельный пост.

    codemonkey, 30 Марта 2015

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

    +57

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    double g(void) {
    int i;
    for (i = 0; i < N; i++) {
    return (3*psi[i] + 25) * (0.1);
    }
    }

    Попросили посмотреть код. Привожу как есть.

    hindsight, 25 Марта 2015

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