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

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

    −1

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    function get_rand_word () {
        $list = explode(" ", file_get_contents('http://www.gnu.org/licenses/gpl-3.0.txt'));
            $cwords = rand (2,5);
            $string = '';
            $r = 0;
            while($r++<$cwords) {
                    $string .= preg_replace('~[^a-z]+~', '', strtolower($list[rand(0, (count($list)-1))]));
            }
            return $string;
    }

    Одним прекрасным утром поступила жалоба, что сервер ддосят. Канал на 100Mb был полностью забит входящим трафиком. Ддосили с www.gnu.org...

    deadmorose, 18 Июля 2017

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

    −101

    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
    Функция ПроверкаЗаполнения()
    	Если НЕ ЗначениеЗаполнено(Контрагент) Тогда
    		Предупреждение("Не выбран контрагент!");
    		Возврат Ложь;
    	КонецЕсли;
    	Если НЕ ЗначениеЗаполнено(ВалютаДокумента) Тогда
    		Предупреждение("Не выбрана валюта документа!");
    		Возврат Ложь;
    	КонецЕсли;
    	Если НЕ ЗначениеЗаполнено(ДатаОкончания) Тогда
    		Предупреждение("Не выбрана дата окончания периода сверки!");
    		Возврат Ложь;
    	КонецЕсли;
    	Если ДатаОкончания < ДатаНачала Тогда
    	    Предупреждение("Неверно задан период сверки расчетов!");
    		Возврат Ложь;
    	КонецЕсли;	
    	Возврат Истина;
    КонецФункции

    Как нужно дрочить пользаков.

    blMbl, 23 Ноября 2016

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

    +1514

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    [151] ns-flow-pair-entry(n,c) ::= ns-flow-pair-yaml-key-entry(n,c)
                                    | c-ns-flow-map-empty-key-entry(n,c)
                                    | c-ns-flow-pair-json-key-entry(n,c)
    [152] ns-flow-pair-yaml-key-entry(n,c) ::= ns-s-implicit-yaml-key(flow-key)
                                               c-ns-flow-map-separate-value(n,c)
    [153] c-ns-flow-pair-json-key-entry(n,c) ::= c-s-implicit-json-key(flow-key)
                                                 c-ns-flow-map-adjacent-value(n,c)
    [154] ns-s-implicit-yaml-key(c) ::= ns-flow-yaml-node(n/a,c) s-separate-in-line?
                                       /* At most 1024 characters altogether */
    [155] c-s-implicit-json-key(c) ::= c-flow-json-node(n/a,c) s-separate-in-line?
                                       /* At most 1024 characters altogether */

    If the “?” indicator is omitted, parsing needs to see past the implicit key to recognize it as such. To limit the amount of lookahead required, the “:” indicator must appear at most 1024 Unicode characters beyond the start of the key. In addition, the key is restricted to a single line.

    Note that YAML allows arbitrary nodes to be used as keys. In particular, a key may be a sequence or a mapping. Thus, without the above restrictions, practical one-pass parsing would have been impossible to implement.


    Столкнулся, значит, с проблемой. ЙАМЛ парсер для Го не может распарсить даже примеры из спецификации.
    Заглянул в исходники - ад и погибель. Копипаста сишного кода из libyaml с косметическими изменениями. Функции по 200+ строк с кучей ифов, регулярками и т.п. Решил заглянуть в спецификацию в надежде, что может можно самому как-то... в спецификации - ад и погибель. Копипаста с грамматическими ошибками, и тьма их. Ну а как дошел до этого места, так сразу и понял, что тут уже делать больше нечего.

    wvxvw, 19 Августа 2016

    Комментарии (23)
  5. C# / Говнокод #20465

    +1

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    8. 8
    9. 9
    if (test)
    {
    _inquiryLineRepository.RequestToOrderAPI(model, idetails, true);
    
    }
    else
    {
    _inquiryLineRepository.RequestToOrderAPI(model, idetails);
    }

    индусы радуются и танцуют групповые танцы, когда видят, что подобный код пишет кто то кроме них

    and1dufresn3, 04 Августа 2016

    Комментарии (23)
  6. PHP / Говнокод #20361

    +4

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    8. 8
    /**
      * @param int $day
      * @return bool
      */
    protected function isWorkingDay($day)
    {
        return $day % 8 <= 5;
    }

    Cпособ определить, является ли указанный день (передается номер дня в неделе от 1 до 7) рабочим. Чем автора не устроил return $day <= 5 - непонятно..

    feversocial, 11 Июля 2016

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

    +3

    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
    template<class... Bases>
    struct MaminVisitor: public boost::static_visitor<>, public Bases... {
        MaminVisitor(Bases&&... bases) : Bases(std::move(bases))... { }
    };
    
    
    template<class Variant, class... F>
    void match(Variant &&v, F &&... functors) {
        typedef MaminVisitor<typename std::decay<F>::type...> visitor_t;
        boost::apply_visitor(visitor_t(std::move(functors)...), std::forward<Variant>(v));
    }
    
    
    int main() {
        boost::variant<int, double, std::string> v = "ololo";
    
        match(v,
            [&](auto x) {
                std::cout << "auto branch " << x << std::endl;
            },
            [&](double x) {
                std::cout << "double branch " << x << std::endl;
            }
        );
    
        return 0;
    }

    Сделал няшный матч, а на гцц не конпелируется.
    http://ideone.com/J9ulsr

    kurwa-nextgen, 05 Июля 2016

    Комментарии (23)
  8. Куча / Говнокод #20186

    +14

    1. 1
    2. 2
    3. 3
    Note: If your <username> starts with the "u" or "x" character, change
    C:\MSys\1.0\home\<username>\config.h and double all backslashes
    in VLC_COMPILED_BY constant.

    Из гайда по сборке VLC.

    bormand, 13 Июня 2016

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

    +7

    1. 1
    Вопрос по говнокодику.

    Не работает [blink], копнул учебник html, а там написано мол не все браузеры поддерживают. И что теперь делать?

    dm_fomenok, 12 Июня 2016

    Комментарии (23)
  10. C++ / Говнокод #20053

    0

    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
    u_long thisIp = htonl(this->sockaddr.sin_addr.S_un.S_addr);
        u_long otherIp = htonl(other.sockaddr.sin_addr.S_un.S_addr);
        u_short thisPort = htons(this->sockaddr.sin_port);
        u_short otherPort = htons(other.sockaddr.sin_port);
    
        // ip1 + port1 < ip2 + port2
        if (thisIp < otherIp)
        {
            if (thisPort <= otherPort)
            {
                return true;
            }
            else
            {
                return ((unsigned)(thisPort - otherPort) < (unsigned)(otherIp - thisIp));
            }
        }
        else
        {
            if (thisPort >= otherPort)
            {
                return false;
            }
            else
            {
                return ((unsigned)(thisIp - otherIp) < (unsigned)(otherPort - thisPort));
            }
        }

    Сравнить IPv4 адрес + порт. Т.е., по сути, (thisIP + thisPort) < (otherIP + otherPort).
    unsigned long long, приди!

    gost, 21 Мая 2016

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

    −3

    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
    <?php
    global $human; //заселяем
    $inkey = $_GET['inkey'];
    
    //обучаем:
    $array['word']='kill_all_humans';
    $array['line']='drink_all_booze';
    //и далее...
    
    function drink_all_booze()
    {}
    function kill_all_humans()
    {//убить всех человеков
        //unset ($human);
        while($human[0]>0)
        {//пока в списке людей больше 0
            if(!$human[$human[0]]['name'] == 'Fray')
            {//кроме Фрая.
                unset($human[$human[0]]);
            }
        $human[0]--;
        }
    }
    
    //выбираем что делать:
    $${array}[$inkey]();
    ?>

    Говорят, что пишу не понятно. Насколько всё хреново?

    wano987, 05 Мая 2016

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