1. C# / Говнокод #23903

    0

    1. 1
    2. 2
    3. 3
    4. 4
    // Имитируем бурную деятельность. 
    Thread.Sleep(500);
    // В реальности здесь будут байты собранной dll-ки. 
    return Encoding.UTF8.GetBytes(_fileName);

    https://github.com/UKST/compiler/blob/074760eb20a13238f1d358a27305617291351854/Compiler.Lib/Compiler.cs#L16

    dm_fomenok, 09 Марта 2018

    Комментарии (1)
  2. Куча / Говнокод #23901

    −7

    1. 1
    Ещё один тред обсуждения несбыточного мифического «нового ГК»

    Такие мысли появиласть в результате флеймов с 1024-- и вообще.

    На новом говнокоде вместо модерации должены быть:
    1. Механизм скрыльничества на уровне сайта/api
    2. Как на имиджбордах, все посты и комменты должны подчищаться из базы после определенного скрока давности, чтобы не нужно было вмешательство никаких админов и модераторов. Это хорошо решает проблему любых набегов. Но некоторые посты пользователи могут пометить как важные, которые не следует удалять. Для этого они должны выразить такое желание в явной форме, например, нажимая на кнопку «cохранить». Проблема в том, что ботоводы могут сохранять свои комменты и посты скриптами, поэтому нужно ввести хорошую капчу и какой-то сложно вычислимый DRM, вычисляя который ты приносишь пользу новому ГК в любой форме. Это либо вычисление биткоинов на кошелёк, с которого оплачивается хостинг, либо ещё какая-то форма принесения пользы сообществу. Вот об этом и предлагаю поговорить: в каких формах вообще можно принести пользу ГК, так, чтобы для оценки пользы и подтверждения факта принесения пользы не требовалось вмешательство модераторов и админов?

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

    vistefan, 08 Марта 2018

    Комментарии (220)
  3. PHP / Говнокод #23894

    −1

    1. 1
    2. 2
    - $pending = $this->$tag['callback']($open['data'], $open['option']);
    + $pending = $this->{$tag['callback']}($open['data'], $open['option']);

    Копаюсь в сорцах говнокода.
    В PHP 7 поменяли приоритет, пол часа не мог понять что за хуйня.

    inho, 08 Марта 2018

    Комментарии (163)
  4. JavaScript / Говнокод #23891

    −2

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    for condition in price_to_deposit_config
      condition_is_true = false
      if condition.range.length is 2
        if market_data[item.id].volume >= condition.range[0] and market_data[item.id].volume <= condition.range[1]
          condition_is_true = true
      if condition.range.length is 1
        if market_data[item.id].volume >= condition.range[0]
          condition_is_true = true
      if condition_is_true is true
        #mk deposit price by this condition

    CoffeeScript. Мозг плавится 2е сутки.
    Читабельность кода уровень Высоцкого, а то и выше.

    win32, 07 Марта 2018

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

    −2

    1. 1
    Продолжение банкета

    Челлендж: НОРМАЛЬНЫЙ человек должен собрать с помощью docker PHP 5.3 с его требованиями к древним и automake, и autoconf, и bison и запустить сие существо вместе с Apache2 и MySQL.

    Сакральный смысл челленджа в том, чтобы в здравом уме начать, в здравом уме окончить.

    dm_fomenok, 06 Марта 2018

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

    0

    1. 1
    Дикого бомбежа пост

    Дикой боли стоила мне попытка собрать PHP 5.3 под Ubuntu 16.04 LTS. Клонирую репозиторий, делаю checkout на PHP 5.3, пытаюсь собрать по инструкции и тут БАЦ. autoconf и automake слишком новые. Благо были более старые версии, ставлю их через apt. И тут снова БАЦ. bison слишком новый. Пришлось скачивать исходники, компилировать их и потом уже ставить. И тут самое страшное: запустить PHP 5.3 под LAMP почти нереально. Меня всё это задолбало, сношу всё к чертям. И виноват отнюдь не PHP. Виноваты сами Томпсон, Ритчи, Линус и прочие петросяны всея вселенной *nix. Именно благодаря ним есть необходимость ставить по пять автоконфов, но не возможности.

    dm_fomenok, 06 Марта 2018

    Комментарии (101)
  7. Куча / Говнокод #23876

    +1

    1. 1
    2. 2
    3. 3
    Баг в railroad diagram, описывающей strling literal в JS (из книги Крокфорда Javascript: The Good Parts).
    
    https://i.imgur.com/8QFMrIQ.png

    Эквивалентно регулярке
    (\"([^\"^\\]|\\([\"\'\\\/bfnrt]|u[\d]{4}))*[^\"^\\]+\"|\'([^\'^\\]|\\([\"\'\\\/bfnrt]|u[\d]{4}))*[^\'^\\]+\')

    Ставить [ code ] боюсь, парсер уже починился?
    Ну, в общем, видно, что при таком раскладе, как на диаграмме, строковой литерал не может заканчиваться эскейп-последовательностью, что в действительности не так. Классический случай "something\n".

    vistefan, 06 Марта 2018

    Комментарии (214)
  8. JavaScript / Говнокод #23875

    −2

    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
    function kakPropatchitKdePodFreeBsdFactor(str) {
        return (str.split(/[A-Z0-9]{2,}/).length - 1) + (str.split(/[A-Za-z0-9]{2,}/).length - 1) / 10;
    }
    
    var titles = [];
    var requests = [];
    
    for (var pageId = 1; pageId <= 10; pageId++) {
        (function (pageId) {
            requests.push($.get('https://habrahabr.ru/all/page' + pageId, function (html) {
                var domParser = new DOMParser();
                var doc = domParser.parseFromString(html, 'text/html');
                $(doc).find('.post__title_link').each(function () {
                    titles.push(this.innerHTML);
                });
            }));
        })(pageId);
    }
    
    $.when.apply($, requests).then(function () {
        titles.sort(function (a, b) {
            return kakPropatchitKdePodFreeBsdFactor(b) - kakPropatchitKdePodFreeBsdFactor(a);
        });
        for (var i = 0; i < titles.length; i++) {
            console.log(i + ". " + titles[i]);
        }
    });

    Итак, петушки. Вот я взял 100 последних статей со швабрашвабра, встречайте победителей!!!

    0. Настройка VoIP FXS шлюза Yeastar Neogate TAXXX для работы с 3CX
    1. [size=19]Детективная история про RMCP+ и OpenSSL, или как Wireshark помог победить incorrect argument в OpenIPMI[/size]
    2. [size=18]NRF51822: дружим BLE и RTOS[/size]

    Остальные:
    3. Разработка игр под NES на C. Главы 14-16. Работа со звуком
    4. Дайджест свежих материалов из мира фронтенда за последнюю неделю №304 (26 февраля — 4 марта 2018)
    5. Реализация быстрых 2D-теней в Unity с помощью 1D shadow mapping
    6. Unity 2018 и ProBuilder: создаем, редактируем и текстурируем 3D-модели прямо в редакторе
    7. Вопросы совместимости Tibero и Oracle. Часть 1. Условная компиляция PL/SQL
    8. Выпуск#13: ITренировка — актуальные вопросы и задачи от ведущих компаний
    9. Подборка: 12 сервисов для защиты от DDoS-атак
    10. Платформа CUBA в 2017: новые фичи, новые услуги, новые планы

    Остальное в коментах (не влезает в 2000 символов)

    Предлагайте свои оценки для kakPropatchitKdePodFreeBsdFactor

    inho, 06 Марта 2018

    Комментарии (15)
  9. C++ / Говнокод #23872

    +4

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    bool MyClass::operator==(int elem){
        if (list.isExist(elem)){
            list.remove(elem);
            return true; // Операция завершена успешно
        }
        return false; // Элемент elem не найден в списке
    }

    (C) https://www.linux.org.ru/forum/development/14063699?cid=14063991

    Вырвано из контекста (треда), но считаю данная кучка должна лежать здесь.

    Elvenfighter, 05 Марта 2018

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

    0

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    new Template('device.matrix.container').load(function (container_tpl) {
    	new Template('device.matrix.device').load(function (device_tpl) {
    		new Template('device.matrix.port').load(function (port_tpl) {
    			new ApiCall('device.matrix.list')
    				.set('house', event.house_id)
    				.do(function (r) {
    					// Do anything
    				})
    		});
    	});
    });

    How don't need to write JS.

    DAVIDhaker, 05 Марта 2018

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