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

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

    +19

    1. 1
    guest не нужен

    d_fomenok, 22 Апреля 2016

    Комментарии (306)
  7. PHP / Говнокод #17917

    +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
    /*--------Перевод текста в верхний регистр-------------*/
    function upper($str) { 
        $trans=array( 
         "а" => "А",  "б" => "Б",  "в" => "В",  "г" => "Г",  "д" => "Д",  "е" => "Е",  
         "ё" => "Ё",  "ж" => "Ж",  "з" => "З",  "и" => "И",  "й" => "Й",  "к" => "К",  
         "л" => "Л",  "м" => "М",  "н" => "Н",  "о" => "О",  "п" => "П",  "р" => "Р",  
         "с" => "С",  "т" => "Т",  "у" => "У",  "ф" => "Ф",  "х" => "Х",  "ц" => "Ц",  
         "ч" => "Ч",  "ш" => "Ш",  "щ" => "Щ",  "ь" => "Ь",  "ы" => "Ы",  "ъ" => "Ъ",  
         "э" => "Э",  "ю" => "Ю",  "я" => "Я",  
        );  
        return strtr($str,  $trans);  
    }

    noffily, 02 Апреля 2015

    Комментарии (306)
  8. C++ / Говнокод #26609

    +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
    https://habr.com/ru/post/497114/
    
    А, кстати о темплейтах. Рабочий проект, где каждый .cpp-файл компилируется по 5-7
    минут даже без оптимизаций? Время до первой диагностики компилятора в те же 5
    минут? Пердёж компилятора на десятки мегабайт в случае ошибок? Да, я сохранял в
    файл и замерял ради интереса. Потребление памяти компилятором в 5-10 гигов на
    файл? Билдсервер с 32 ядрами и 64 гигами памяти, на которой нельзя запускать
    больше чем этак 8 параллельных потоков компиляции? Проект на несколько десятков
    kloc, собирающийся на ней полчаса? Получите, распишитесь.
    
    И тулинг. Мне куда проще находить, на что у меня тратится память, в том же хаскеле,
    который, как известно, только для факториалов и годится. Системы сборки? Ха. Апгрейд
    компилятора для прода? Жди лет пять после релиза стандарта. Пакетный менеджер? Ха-ха.
    Reproducible builds? Ха-ха-ха. Все места, где я работал, на это либо вообще забивали,
    либо вкладывали какое-то совершенно неадекватное количество ресурсов. Я понимаю,
    почему так происходит, у этого всего есть абсолютно логичные и объективные причины,
    по-другому и выйти не могло, но я устал так жить.

    Какой багор )))

    j123123, 27 Апреля 2020

    Комментарии (304)
  9. Куча / Говнокод #17307

    +122

    1. 1
    10.80.32.240 vk.ru

    знаю, что не в тему, но все же. доблестные айтишники добавили такую строчку в host, не для того, чтобы я работал, а потому, что они взяли на работу идиота, который считает такие вещи довольно забавными.
    энивей, на работе проблема решается довольно просто, путем отключения pac скрипта в ie, и насильным использованием прокси, но дома это не работает. анонимайзерами пользоваться не хотелось бы, но может есть способ обойти?
    в инете я много велосипедов нашел о том, как его править, как изменить директорию, где лежит файл, и т.п. но, к сожалению я не имею прав администратор, поэтому все тщетно.

    Lokich, 13 Декабря 2014

    Комментарии (304)
  10. ActionScript / Говнокод #17912

    −134

    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
    private function onButtonModeClick(e:MouseEvent):void 
    {
    	if (_mode == 0)
    	{
    		myButtonMode.setTxtLabel("дизайнеры");
    		_mode++;
    	}
    	else if (_mode == 1)
    	{
    		myButtonMode.setTxtLabel("стажеры");
    		_mode++;
    	}
    	else if (_mode == 2)
    	{
    		myButtonMode.setTxtLabel("программисты");
    		_mode = 0;
    	}
    }

    nightrain912, 02 Апреля 2015

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

    +18

    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
    #include <iostream>
    
    #define PRINT(val) std::cout << #val \
                                 << " value: " << val \
                                 << " address: " << &val << std::endl; 
    int& constRef(){
        int var = 10;
        PRINT(var)
        return var;
    }
    
    int main() {
       const int a = 'a', b = 'bcde';
       std::cout << a << " " << b << std::endl;
       const int& ref = constRef();  
       PRINT(ref)  
    }

    Малоизвестный синтаксис плюсов.
    1. Инициализация целочисленного значения из строки (используется в строках-классах времени компиляции).
    2. Константная ссылка на стековый объект (используется для создания DSL, в т.ч. boost::spirit).
    P.S.: Более полный вариант со строками лежит на форуме.

    crastinus, 28 Декабря 2013

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