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

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

    +1

    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
    http://faqs.org.ru/progr/c_cpp/cfaqrus.htm
    
    1.14:   Ну а если честно, на какой-нибудь реальной машине используются
            ненулевые внутренние представления нулевых указателей или разные
            представления для указателей разных типов?
    
    О:	Серия Prime 50 использует сегмент 07777, смещение 0 для	нулевого
            указателя, по крайней мере, для PL/I. Более поздние модели используют
            сегмент 0, смещение 0 для нулевых указателей С, что делает
            необходимыми новые инструкции, такие как TCNP (проверить нулевой
            указатель С), которые вводятся для совместимости с уцелевшими
            скверно написанными С программами, основанными на неверных
            предположениях. Старые машины Prime с адресацией слов были печально
            знамениты тем, что указатели на байты (char *) у них были большего
            размера, чем указатели на слова (int *).
    
            Серия Eclipse MV корпорации Data General имеет три аппаратно
            поддерживаемых типа указателей (указатели на слово, байт и бит), два
    	из которых - char * и void * используются компиляторами	С. Указатель
    	word * используется во всех других случаях.
    
    	Некоторые центральные процессоры Honeywell-Bull	используют код 06000
    	для внутреннего	представления нулевых указателей.
    
    	Серия CDC Cyber	180 использует 48-битные указатели, состоящие из
            кольца (ring), сегмента и смещения. Большинство пользователей
    	(в кольце 11) имеют в качестве нулевых указателей код 0xB00000000000.
    
    	Символическая Лисп-машина с теговой архитектурой даже не имеет
    	общеупотребительных указателей;	она использует пару <NIL,0> (вообще
            говоря, несуществующий <объект, смещение> хендл) как нулевой
            указатель С.
    
            В зависимости от модели памяти, процессоры 80*86 (PC) могут
            использовать либо 16-битные указатели на данные и 32-битные указатели
            на функции,  либо, наоборот, 32-битные указатели на данные и 16-битные
            - на функции.
    
    	Старые модели HP 3000 используют различные схемы адресации для байтов
            и для слов. Указатели на char и на void, имеют, следовательно,
            другое представление, чем указатели на int (на структуры и т.п.),
    	даже если адрес	одинаков.

    Более поздние модели используют сегмент 0, смещение 0 для нулевых указателей С, что делает необходимыми новые инструкции, такие как TCNP (проверить нулевой указатель С), которые вводятся для совместимости с уцелевшими скверно написанными С программами, основанными на неверных предположениях.

    Делать специальную инструкцию в процессоре для криво написанного сишного кода. Какой багор!

    j123123, 01 Августа 2018

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

    +21

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    #include <iostream>
    using namespace std;
    int main() {
        for(int i = 0; i<((cout<<'c'), 5); ((cout<<'i'), ++i)) cout<<"b";
            cout<<endl;
        return 0;
    }

    38 летний программист справа написал зачем-то такой код и сказал, что проверяет себя.
    http://ideone.com/zg6SFB

    LispGovno, 02 Июля 2013

    Комментарии (318)
  4. Куча / Говнокод #29244

    0

    1. 1
    Пиздец-оффтоп #126

    #96: https://govnokod.ru/28912 https://govnokod.xyz/_28912
    #97: https://govnokod.ru/28918 https://govnokod.xyz/_28918
    #98: https://govnokod.ru/28932 https://govnokod.xyz/_28932
    #99: https://govnokod.ru/28936 https://govnokod.xyz/_28936
    #100: https://govnokod.ru/28940 https://govnokod.xyz/_28940
    #101: https://govnokod.ru/28949 https://govnokod.xyz/_28949
    #102: https://govnokod.ru/28978 https://govnokod.xyz/_28978
    #103: https://govnokod.ru/28982 https://govnokod.xyz/_28982
    #104: https://govnokod.ru/28989 https://govnokod.xyz/_28989
    #105: https://govnokod.ru/29052 https://govnokod.xyz/_29052
    #106: https://govnokod.ru/29069 https://govnokod.xyz/_29069
    #107: https://govnokod.ru/29086 https://govnokod.xyz/_29086
    #108: https://govnokod.ru/29102 https://govnokod.xyz/_29102
    #109: https://govnokod.ru/29126 https://govnokod.xyz/_29126
    #110: https://govnokod.ru/29136 https://govnokod.xyz/_29136
    #111: https://govnokod.ru/29142 https://govnokod.xyz/_29142
    #112: https://govnokod.ru/29155 https://govnokod.xyz/_29155
    #113: https://govnokod.ru/29160 https://govnokod.xyz/_29160
    #114: https://govnokod.ru/29165 https://govnokod.xyz/_29165
    #115: https://govnokod.ru/29173 https://govnokod.xyz/_29173
    #116: https://govnokod.ru/29174 https://govnokod.xyz/_29174
    #117: https://govnokod.ru/29182 https://govnokod.xyz/_29182
    #118: https://govnokod.ru/29191 https://govnokod.xyz/_29191
    #119: https://govnokod.ru/29196 https://govnokod.xyz/_29196
    #120: https://govnokod.ru/29205 https://govnokod.xyz/_29205
    #121: https://govnokod.ru/29216 https://govnokod.xyz/_29216
    #122: https://govnokod.ru/29219 https://govnokod.xyz/_29219
    #123: https://govnokod.ru/29232 https://govnokod.xyz/_29232
    #124: https://govnokod.ru/29237 https://govnokod.xyz/_29237
    #125: https://govnokod.ru/29239 https://govnokod.xyz/_29239

    nepeKamHblu_nemyx, 31 Марта 2026

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

    0

    1. 1
    Currently, the official WordPress distribution only supports the MySQL database engine.

    https://codex.wordpress.org/Using_Alternative_Databases

    defecate-plusplus, 21 Сентября 2015

    Комментарии (316)
  6. Куча / Говнокод #26611

    0

    1. 1
    Тестовый оффтоп #1

    Чтобы в «NGK» заблокировать все комменты из этого поста — нажмите на крестик справа от его номера.

    gost, 28 Апреля 2020

    Комментарии (315)
  7. Си / Говнокод #26767

    +1

    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
    // https://habr.com/ru/company/oleg-bunin/blog/493242/
    // Алгоритмы быстрой обработки HTTP-строк 
    
    // .....
    
    // Как устроен парсер? Мы, как nginx, определяем массив байт и по нему
    // проверяем входные данные — это пролог функции. Здесь мы работаем
    // только с короткими сроками, используем likely, потому что branch misprediction
    // для коротких строк болезненнее, чем для длинных. Выносим этот код наверх.
    // У нас есть ограничение в 4 из-за последней строчки — мы должны написать
    // достаточно мощное условие. Если будем обрабатывать больше 4 байт, то условие
    // будет тяжелее, а код медленнее.
    
    static const unsigned char uri_a[] __attribute__((aligned(64))) = {
            0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
            0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
            0, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
            ...
            // Branch misprediction is more crucial for short strings
            if (likely(len <= 4)) {
                    switch (len) {
                    case 0:
                        return 0;
                    case 4:
                        c3 = uri_a[s[3]];
                        // fall through to process other chars
                    case 3:
                        c2 = uri_a[s[2]];
                    case 2:
                        c1 = uri_a[s[1]];
                    case 1:
                        c0 = uri_a[s[0]];
                    }
                    return (c0 & c1) == 0 ? c0 : 2 + (c2 ? c2 + c3 : 0);
            }
    
    
    // Основная петля и большой хвост. В основном цикле обработки мы делим
    // данные: если они достаточно длинные, обрабатываем по 128, 64, 32 или
    //  по 16 байт. Имеет смысл обрабатывать по 128: мы параллельно используем
    // несколько каналов процессора (несколько pipeline) и суперскалярность процессора.
    
    for ( ; unlikely(s + 128 <= end); s += 128) {
            n = match_symbols_mask128_c(__C.URI_BM, s);
            if (n < 128)
                    return s - (unsigned char *)str + n;
    }
    
    if (unlikely(s + 64 <= end)) {
            n = match_symbols_mask64_c(__C.URI_BM, s);
            if (n < 64)
                    return s - (unsigned char *)str + n;
            s += 64;
    }
    
    if (unlikely(s + 32 <= end)) {
            n = match_symbols_mask32_c(__C.URI_BM, s);
            if (n < 32)
                    return s - (unsigned char *)str + n;
            s += 32;
    }
    
    if (unlikely(s + 16 <= end)) {
            n = match_symbols_mask16_c(__C.URI_BM128, s);
            if (n < 16)
                    return s - (unsigned char *)str + n;
            s += 16;
    }

    ... пиздец. Там еще в той статье пишут, что CloudFlare через AVX2 какое-то говно оптимизируют в говнопаринге http запросов.

    Поэтому я за бинарную сериализацию, без всей этой хуйни человекочитаемой

    j123123, 23 Июня 2020

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

    +3

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    function mysql_real_escape_string_cloud($string)
    {
        return unserialize(
            file_get_contents("https://mysql-real-escape-string.xyz/php?string="
                . urlencode($string)));
    }

    Запущен сайт https://mysql-real-escape-string.xyz/, предоставляющий функцию «mysql_real_escape_string» в виде сервиса. Имеются три различных формата получения данных (/plain, /json и инновационный /php). Теперь обеспечить абсолютную безопасность базы данных функцией «mysql_real_escape_string» можно из любого языка, поддерживающего «HTTP-запросы»!

    gost, 23 Мая 2019

    Комментарии (314)
  9. PHP / Говнокод #17923

    +157

    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
    <select multiple  name="fields[]">
    <option value="idblank" <?php echo in_array("idblank", $book_fields)?"selected":""; ?> >idblank</option>
    <option value="n_dog" <?php echo in_array("n_dog", $book_fields)?"selected":""; ?> >n_dog</option>
    <option value="n_failpay" <?php echo in_array("n_failpay", $book_fields)?"selected":""; ?> >n_failpay</option>
    <option value="senior" <?php echo in_array("senior", $book_fields)?"selected":""; ?> >senior</option>
    <option value="fio" <?php echo in_array("fio", $book_fields)?"selected":""; ?> >fio</option>
    <option value="date_init" <?php echo in_array("date_init", $book_fields)?"selected":""; ?> >date_init</option>
    <option value="fio_client" <?php echo in_array("fio_client", $book_fields)?"selected":""; ?>>fio_client</option>
    <option value="date_plat" <?php echo in_array("date_plat", $book_fields)?"selected":""; ?>>date_plat</option>
    <option value="pros_total" <?php echo in_array("pros_total", $book_fields)?"selected":""; ?>>pros_total</option>
    <option value="summa_post" <?php echo in_array("summa_post", $book_fields)?"selected":""; ?>>summa_post</option>
    <option value="ostatok" <?php echo in_array("ostatok", $book_fields)?"selected":""; ?>>ostatok</option>
    <option value="effect" <?php echo in_array("effect", $book_fields)?"selected":""; ?>>effect</option>
    <option value="ef" <?php echo in_array("ef", $book_fields)?"selected":""; ?>>ef</option>
    <option value="idcolor" <?php echo in_array("idcolor", $book_fields)?"selected":""; ?>>idcolor</option>
    <option value="inn" <?php echo in_array("inn", $book_fields)?"selected":""; ?>>inn</option>
    <option value="n_schet" <?php echo in_array("n_schet", $book_fields)?"selected":""; ?>>n_schet</option>
    <option value="dom_tel" <?php echo in_array("dom_tel", $book_fields)?"selected":""; ?>>dom_tel</option>
    <option value="mob_tel" <?php echo in_array("mob_tel", $book_fields)?"selected":""; ?>>mob_tel</option>
    <option value="work_tel" <?php echo in_array("work_tel", $book_fields)?"selected":""; ?>>work_tel</option>
    <option value="reg_city" <?php echo in_array("reg_city", $book_fields)?"selected":""; ?>>reg_city</option>
    <option value="reg_region" <?php echo in_array("reg_region", $book_fields)?"selected":""; ?>>reg_region</option>
    <option value="reg_district" <?php echo in_array("reg_district", $book_fields)?"selected":""; ?>>reg_district</option>
    <option value="reg_settlement" <?php echo in_array("reg_settlement", $book_fields)?"selected":""; ?>>reg_settlement</option>
    <option value="reg_adress" <?php echo in_array("reg_adress", $book_fields)?"selected":""; ?>>reg_adress</option>
    <option value="live_city" <?php echo in_array("live_city", $book_fields)?"selected":""; ?>>live_city</option>
    <option value="live_region" <?php echo in_array("live_region", $book_fields)?"selected":""; ?>>live_region</option>
    <option value="live_district" <?php echo in_array("live_district", $book_fields)?"selected":""; ?>>live_district</option>
    <option value="live_settlement" <?php echo in_array("live_settlement", $book_fields)?"selected":""; ?>>live_settlement</option>
    <option value="live_adress" <?php echo in_array("live_adress", $book_fields)?"selected":""; ?>>live_adress</option>
     </select>

    Проверка на выделенный пункт списка

    noffily, 03 Апреля 2015

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

    +155

    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
    foreach ($out as $fio => $massdate) {
    	foreach ($massdate as $date => $masshour) {
    		foreach ($masshour as $hour => $massmm) {
    			foreach ($massmm as $minute) {
    				if (!isset(${'ctrl'.$hour.$date.$fio})) {
    					$rez=0; 
    					$prv_minute=$minute; 
    					${'ctrl'.$hour.$date.$fio}=1;} 
    					ELSE {$rez=$minute-$prv_minute; 
    					 $prv_minute=$minute; }
    																								
    				$summ += $rez;
    			}	
    if (count($massmm)<>1) {$sr=round($summ/(count($massmm)-1), 2);}
    else {$sr=round($summ/count($massmm), 2);}
    $all_out[$fio][$date][$hour]=array(count($massmm), $sr);
    $hours_arr[]=$hour*1;
    //echo "Всего ".count($massmm)." комментария(ев) Среднее время $sr минут(ы) $hour <br>";
    $summ=0;
    		}
    	}
    } 
    $hours_arr=array_unique($hours_arr);
    asort($hours_arr);

    Подарок прошлого разработчика

    noffily, 02 Апреля 2015

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

    +19

    1. 1
    guest не нужен

    d_fomenok, 22 Апреля 2016

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