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

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

    +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
    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
    template<typename T>
    struct [[nodiscard]] InplacePointerGuard {
        InplacePointerGuard(T *& ptr_) : ptr(ptr_) {}
        ~InplacePointerGuard()
        {
            if (ptr != nullptr) {
                ptr->~T();
            }
        }
    
        T *& ptr;
    };
    
    template<typename EventType, typename... Args>
    bool publishEmplace(Args &&... args) const
    {
        static_assert((std::is_base_of_v<Event, EventType> && std::is_convertible_v<const EventType *, const Event *>),
                      "EventType must be a public subtype of Event");
        auto typeIdx = Event::getStaticIndex<EventType>();
    
        std::aligned_storage_t<sizeof(EventType), alignof(EventType)> eventStorage;
        EventType *eventConstructed = nullptr;
        auto guard = InplacePointerGuard(eventConstructed);
    
        publishEmplaceImpl<EventType>(typeIdx, eventStorage, eventConstructed, std::forward<Args>(args)...);
    
        return eventConstructed != nullptr;
    }
    
    template<typename EventType, typename... Args>
    static EventType *constructEvent(std::aligned_storage_t<sizeof(EventType), alignof(EventType)> & eventStorage,
                                     Args &&... args)
    {
        return std::launder(new(&eventStorage) EventType(std::forward<Args>(args)...));
    }
    
    template<typename EventType, typename... Args>
    void publishEmplaceImpl(const std::type_index & typeIdx,
                            std::aligned_storage_t<sizeof(EventType), alignof(EventType)> & eventStorage,
                            EventType *& eventConstructed,
                            Args &&... args) const
    {
        if (auto it = callbacks.find(typeIdx); it != callbacks.end()) {
            for (const auto & [subId, callback] : it->second) {
                if (!eventConstructed) {
                    eventConstructed = constructEvent<EventType>(eventStorage, std::forward<Args>(args)...);
                }
                callback(*eventConstructed);
            }
        }
    
        auto range = EventsRelation::RelationManager::getParentsRange(typeIdx);
        for (auto it = range.first; it != range.second; ++it) {
            if (!eventConstructed) {
                publishEmplaceImpl<EventType>(it->second, eventStorage, eventConstructed, std::forward<Args>(args)...);
            } else {
                publishImpl(it->second, *eventConstructed);
            }
        }
    }

    PolinaAksenova, 22 Марта 2021

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

    +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
    // https://deadlockempire.github.io/
    // Игра, где надо играть за планировщик чтоб вызвать дедлок
    
    // https://deadlockempire.github.io/#2-flags
    
    // First Army
    
    while (true) {
      while (flag != false) {
        ;
      }
      flag = true;
      critical_section();
      flag = false;
    }
    
    // Second Army
    
    while (true) {
      while (flag != false) {
        ;
      }
      flag = true;
      critical_section();
      flag = false;
    }

    The day finally came. The Deadlock Empire opened its gates and from them surged massive amounts of soldiers, loyal servants of the evil Parallel Wizard. The Wizard has many strengths - his armies are fast, and he can do a lot of stuff that we can't. But now he set out to conquer the world, and we cannot have that.

    You are our best Scheduler, commander! We have fewer troops and simpler ones, so we will need your help. Already two armies of the Deadlock Empire are approaching our border keeps. They are poorly equipped and poorly trained, however. You might be able to desync them and break their morale.

    j123123, 20 Февраля 2021

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

    +3

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    Как известно, язык C# придумал Андерс Хейлсберг. В связи с этим, на первых порах его жутко атаковали журналисты, в попытке снять интервью.
    Делали они это столь навячиво, что обычно вежливый и корректный Хейлсберг стал грубым и несдержанным. Он избегал журналистов, но они не отставали.
    
    Однажды его подстерегли в метро - он едва смог вырваться из назойливой толпы,  -  затем его почти сразу прижали в переулке. 
    -Господин Хейлсберг, пару слов для издания КомпНьюс...
    -Пошли на хуй, - прошептал Андерс, ускорив шаг. В ту же минуту его затерла толпа и на него упал яркий свет. 
    -Прямой эфир!
    Андерс замялся. Уйти из кадра было бы несложно, но это могло сказаться на репутации. Кинооператор уже наставил камеру. 
    Из толпы вышел наиболее задиристый человек с микрофоном.
    -Скажите, господин Хейлсберг, почему Вы добавили в это говно столько сахара? Почему не сделали его ванильным - как Делфи?
    -Потому, что глупо добавлять ванилин в говно, которое будут пробовать на вкус, огрызнулся Хейлсберг, и, тяжко размахнувшись, ударил по объективу дипломатом.

    guest3, 24 Января 2021

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

    +3

    1. 1
    Новогодний оффтоп #1

    Перекатить через год.

    gostinho, 31 Декабря 2020

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

    +3

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    8. 8
    The reboot() call reboots the system, or enables/disables the reboot keystroke (abbreviated CAD, since the de‐
           fault is Ctrl-Alt-Delete; it can be changed using loadkeys(1)).
    
           This system call fails (with the error EINVAL) unless magic equals LINUX_REBOOT_MAGIC1 (that  is,  0xfee1dead)
           and  magic2  equals LINUX_REBOOT_MAGIC2 (that is, 672274793).  However, since 2.1.17 also LINUX_REBOOT_MAGIC2A
           (that is, 85072278) and since 2.1.97 also LINUX_REBOOT_MAGIC2B (that is,  369367448)  and  since  2.5.71  also
           LINUX_REBOOT_MAGIC2C  (that  is,  537993216)  are  permitted as values for magic2.  (The hexadecimal values of
           these constants are meaningful.)

    man 2 reboot

    MAKAKA, 23 Декабря 2020

    Комментарии (13)
  7. Python / Говнокод #27167

    +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
    class Metapetuh(type):
        def __subclasscheck__(cls, C):
            return True
        def __instancecheck__(self, other):
            return True
    
    
    class Petuh(metaclass=Metapetuh):
        pass
    
    
    issubclass(object, Petuh)  # True
    isinstance(42, Petuh)      # True

    Мы зашкварили весь «Питон», и теперь все классы в нём — петухи.

    По просьбам трудящихся: https://govnokod.ru/27166#comment602776.

    gost, 19 Декабря 2020

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

    +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
    &НаКлиенте
    Процедура ИмяФайла_ПроизводственнаяПрограммаНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка)
    	ДиалогВыборФайла = Новый ДиалогВыбораФайла(РежимДиалогаВыбораФайла.Открытие);
    	ДиалогВыборФайла.Фильтр = "Файлы Microsoft Excel (*.xls, *.xlsx, *.xlsm)|*.xls; *.xlsx; *.xlsm|Все файлы (*.*)|*.*";
    	ДиалогВыборФайла.Показать(Новый ОписаниеОповещения("ИмяФайла_ПроизводственнаяПрограммаНачалоВыбораЗавершение", ЭтотОбъект, Новый Структура("ДиалогВыборФайла,ИмяФайла", ДиалогВыборФайла, Элемент.Имя)));
    КонецПроцедуры
    
    &НаКлиенте
    Процедура ИмяФайла_ПроизводственнаяПрограммаНачалоВыбораЗавершение(ВыбранныеФайлы, ДополнительныеПараметры) Экспорт
        
        ДиалогВыборФайла = ДополнительныеПараметры.ДиалогВыборФайла;
        
        Если (ВыбранныеФайлы <> Неопределено) Тогда
            ЭтаФорма[ДополнительныеПараметры.ИмяФайла] = ДиалогВыборФайла.ПолноеИмяФайла;
        КонецЕсли;
    
    КонецПроцедуры

    Асинхронные вызовы??? Нее.... Не слышал...

    nytlenc, 15 Декабря 2020

    Комментарии (167)
  9. JavaScript / Говнокод #27152

    +3

    1. 1
    data:text/html,<body onload=z=c.getContext`2d`,setInterval(`c.width=W=150,Y<W&&P<Y&Y<P+E|9<p?z.fillText(S++${Y=`,9,9|z.fillRect(p`}*0,Y-=--M${Y+Y},P+E,9,W),P))):p=M=Y=S=6,p=p-6||(P=S%E,W)`,E=49) onclick=M=9><canvas id=c>

    Энтузиаст создал Flappy Bird на минималках весом всего лишь 228 байт.

    А чтобы запустить игру, достаточно скопировать этот код в адресную строку браузера.

    3_dar, 05 Декабря 2020

    Комментарии (10)
  10. JavaScript / Говнокод #27143

    +3

    1. 1
    2. 2
    3. 3
    "experiments":[25894,19733,11804,21034,31793,21476,17396,12016,
    ...
    window._data = {"__type":"ru.yandex.zen.publishers.front.pojo.PublicationPageNodeData","publisher":{"id":"592d594b8e557de2f707c29f","name":"FORUMHOUSE","nickname":{"raw":"forumhouse","normalized":"forumhouse"},"ownerUid":13690671,"statId":4156,"description":"Добро пожаловать на портал №1 в России, посвященный строительству и загородной жизни.\n\nЗдесь мы публикуем новости, оригинальные материалы, фотообзоры домов; веселим приколами и угощаем рецептами; проверяем знания тестами; даем рекомендации по стройке и ремонту, раскрываем секреты мастеров.","socialLinks":[{"link":"https:\u002F\u002Fwww.instagram.com\u002Fforumhouse\u002F","socialNetwork":"instagram"},{"link":"https:\u002F\u002Fok.ru\u002Fforumhouse","socialNetwork":"ok"},{"link":"https:\u002F\u002Fvk.com\u002Fforumhouse","socialNetwork":"vk"},{"link":"https:\u002F\u002Fwww.facebook.com\u002FForumHouse","socialNetwork":"facebook"}],"themes":[],"logo":{"id":"5ae188e38c8be3ec66de9bb5"},"domain":"forumhouse.ru","agreement":true,"isNirvana":false,"isAdultContent":true,"isSubscribedToEmails":true,"itemId":"981789127750603755","favouritesCount":51813,"audience":1020223,"shouldSendReport":false,"isVerified":false,"allowedPrivateMessages":false,"chatReferences":[]},"publication":{"id":"5fab9d6891ab8a65f7246192","publisherId":"592d594b8e557de2f707c29f","addTime":1605083675615,"publishTime":1606389210899,"content":{"type":"article","articleContent":{"contentState":"{\"blocks\":[{\"data\":{},\"depth\":0,\"entityRanges\":[],\"inlineStyleRanges\":[],\"text\":\"Чтобы что-то делать, нужно хоть что-то уметь — звучит просто и правильно. У героев нашей очередной подборки, по всей видимости, строительных навыков нет, но они уже вышли на тропу серьёзного заработка. Что оставляют после себя дилетанты, когда попадают на стройку — смотрите далее.\",\"type\":\"unstyled\",\"key\":\"3sbd\"},{\"data\":{\"image\":{\"id\":\"5fab9d9a7935977d97ff25e1\"}},\"depth\":0,\"entityRanges\":[],\"inlineStyleRanges\":[],\"text\":\"Источник фото: инстаграм-аккаунт rukozhopy\",\"type\":\"atomic:image\",\"key\":\"881o6\"},{\"data\":{},\"depth\":0,\"entityRanges\":[],\"inlineStyleRanges\":[],\"text\":\"Немного криво — делу не помеха\",\"type\":\"header-two\",\"key\":\"c8dnh\"},{\"data\":{},\"depth\":0,\"entityRanges\":[],\"inlineStyleRanges\":[],\"text\":\"Криво — это такая мера, которая не везде заметна. Согласны? Вот например, на кухне. Ну кто будет измерять пирожки, когда их оценивают по совершенно другим критериям? Здесь важен их вкус и количество начинки. Кулинар может допустить оплошность в калибровке пельменей или размере макаронин. А вот строитель — нет!\",\"type\":\"unstyled\",\"key\":\"4k113\"},{\"data\":{\"image\":{\"id\":\"5fab9dbd91ab8a65f724f703\"}},\"depth\":0,\"entityRanges\":[],\"inlineStyleRanges\":[],\"text\"

    Открыл исходный код произвольной страницы на кое-каком сайте для текстов с картиночками, а там

    * Человекочитаемый текст - метушня в <head> и <meta> для роботов
    * Какой-то скрипт зожатый на 17к симполов
    * Зожатый(!) CSS на 190к символов
    * Зожатый скрипт 58к, содержащий контент в нечитаемом виде (русские буквы там могут быть заэскейпенными, но почему-то не все)
    * Зожатый скрипт + зожатый HTML 62к, содержащий код, кнопки, картинки, копии текста из зожатого скрипта на 58к

    И всё это ради того, чтобы показать 5к символов текста и вставить 9 картинок. Даже комментарии подгружаются аяксом.

    НАЧАЛЬНИК, БЛЯДЬ, ОН ОБОСРАЛСЯ! ИДИТЕ МОЙТЕ ЕГО НАХУЙ, Я С НИМ ЗДЕСЬ СИДЕТЬ НЕ БУДУ, БЛЯДЬ! Я НЕ БУДУ С ЭТИМ ГОВНОЕДОМ СИДЕТЬ! — ХУЛИ ВЫ МЕНЯ С СУМАСШЕДШИМ ПОСЕЛИЛИ, БЛЯДЬ, ОН ЖЕ МУДАК ПОЛНЫЙ, БЛЯ!!!

    Как мы до этого докатились?

    1024--, 01 Декабря 2020

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

    +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
    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
    include std/socket.e as s
    include std/error.e as err
    
    constant PORT = 5050
    constant BACKLOG = 5
    
    procedure die(object result, sequence action) 
    	printf(2, "Error %d in %s", {result, action})
    	err:crash(action)
    end procedure
    
    procedure ensure_zero(integer result, sequence action)
    	if result != 0 then
    		die(result, action)
    	end if 
    end procedure
    
    function ensure_seq(object result, sequence action)
    	if atom(result) then
    		die(result, action)
    	end if
    	return result
    end function
    
    enum SOCKET, READ, WRITE, ERROR
    constant PHRASE = "Hello from Euphoria\n"
    
    procedure client_proc(sequence socket)
    while 1 do
    		for i = 1 to length(PHRASE) do
    			sequence result = s:select({}, socket, {}, 0, 100)
    			sequence result_s = result[1]
    			if result_s[WRITE] = 1 then
    				s:send(socket, {PHRASE[i]}, 0)
    			end if 
    			task_yield()
    		end for
    end while
    end procedure
    
    constant client_proc_id = routine_id("client_proc")
    
    sequence server = ensure_seq(s:create(s:AF_INET, s:SOCK_STREAM, 0), "create")
    ensure_zero(s:bind(server, "127.0.0.1", PORT), "bind")
    ensure_zero(s:listen(server, BACKLOG), "listen")
    
    while 1 do
    	sequence listen_result = s:select(server, {}, {}, 0, 100)
    	if listen_result[1][READ] = 1 then
    		sequence client = ensure_seq(s:accept(server), "accept")
    		printf(1, "Here comes %s\n", {client[2]})
    		atom task = task_create(client_proc_id, {client[1]})
    		task_schedule(task, {0.5, 0.5})
    	end if
    	task_yield()
    end while

    MAKAKA, 27 Октября 2020

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