1. Куча / Говнокод #22318

    −30

    1. 1
    habrahabr.ru/post/321652

    Просто оставлю это здесь.

    Запостил: dm_fomenok, 12 Февраля 2017

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

    • Ты не поверишь, почти любую статью с хуябры можно постить сюда
      Ответить
      • Нет, ну хороший же наброс. Завтра почитаю срач в комментах на хабре, достойное начало недели.
        Ответить
        • Правильно. Чем же ещё заниматься на работе :D
          Ответить
          • В том и соль!
            Ответить
            • Шуны-буны, шуны-буны, будьте щи солоны!.. Муж приедет - будут шлёпанцы-хлопанцы.
              Ответить
    • Что сказать - у линоксоидов бомбит
      пусть в жопе почешутся
      Ответить
    • То ли дело виндос
      Ответить
    • КРАХ философии UNIX. Никто и подумать не мог, сколько костылей...
      Ответить
      • > UPD от 2017-02-12: я нашёл ссылку, где я подчерпнул эту историю

        подзачерпнул, блядь
        Ответить
        • реестр нужен потому, что кто-то не знает о или не считает нужным вызывать fsync
          ну охуеть
          Ответить
          • Ну как бы в том и логика, что реестр можно в одном месте аккуратно реализовать и забыть. А с файликами приходится каждый раз в каждой проге задумываться о транзакционности...

            Так что демон реестра вполне вписался бы в философию юникс - делал бы что-то одно, но хорошо :)
            Ответить
            • потом бы обязательно началось говно о registryd vs. updata, на смену которым втискивался бы хипстерский контейнеризуемый сервис с http-интерфейсом и кучей скрытого говна в администрировании
              Ответить
              • бля, дак это ж etcd
                Ответить
                • Нет, это не етцд. На опеннете в каждую новость про етцд набегаю школьники, думающие, что это реестр.
                  Ответить
    • > printf внезапно является далеко не самым быстрым способом вывода информации на экран или в файл. Не знали, да?

      [sarcasm]Да охуеть не встать. Как же это я мог сам не догадаться, что на распарсивание всякой "%s %i" фигни должно тратиться куча тактов процессора?[/sarcasm]
      Что надо делать этим printf-ом чтобы он стал bottleneck-ом? В цикле вызывать дохуилиард раз?

      > Там, синтаксис типов плохой, препроцессор ужасен, легко выстрелить себе в ногу, всякие 4["string"], всякие sizeof ('a') != sizeof (char) (в C, не в C++!), всякие i++ + ++i, всякие while (*p++ = *q++) ;

      А надо чтоб как в питоне, когда отступы это часть синтаксиса, и все (ну или почти все) пишут в PEP8, да? Всякие там питонодебилы отвыкли от свободы, и возможность писать нечитаемую парашу на языке воспринимают как недостаток языка. Ну хули уж там, давайте ножи запретим, ими можно порезаться или кого-то убить. Почему он там кстати не вскудахтнул, как плохо что в си есть указатели и можно вылезти за границы массива, это ж традиционные аргументы неосиляторов си?
      Ответить
      • > Генерация из коробки документации из сорцов, записанной в комментах на *MARKDOWN*. И пакетный менеджер, использующий для версий *SEMVER*. *GIT*, *GITHUB*, *MARKDOWN*, *SEMVER*, короче говоря *BUZZWORDS*, *BUZZWORDS* и ещё раз *HIPSTERS' BUZZWORDS*. И всё сразу из коробки. Прямо вот заходишь на их главный сайт, и вот на тебе на блюдечке с голубой каёмочкой. И работает всё одинаково на всех платформах.

        Нахуй сходи, например. Посмотрел бы я на тебя, как ты эту парашу будешь заворачивать, чтобы она работала на Windows начиная с XP, macOS, всякие варианты линупсов под разные битности и архитектуры, FreeBSD и прочие BSD, и чтоб чисто было ничего не ломалось. А знаете какой геморрой кросскомпилировать какую-нибудь парашу под арм? Некоторое говно просто не может быть собрано кросскомпилем(потому что это говно в процессе работы генерирует бинарник и пытается его запустить, от чего закономерно обламывается), так что приходится ебстись с виртуалками... Но причем тут вообще UNIX?
        Ответить
        • > UNIX shell хуже PHP! Да, да, а вы что, не знали? Сейчас модно ругать PHP. Но ведь UNIX shell ещё хуже :)

          Хуже для чего/кого?

          > Но даже для своей ниши (скриптинг типичных задач по администрированию) он годится плохо.

          [sarcasm]Ну да, cmd.exe и всякие там command.com куда лучше[/sarcasm]. Кстати, полно есть всяких альтернативных шеллов, даже на базе лиспа, CLASH называется

          > И это не говоря уж о том, что критичные файлы UNIX (такие как /etc/passwd), который читаются при каждом (!) вызове, скажем, ls -l, записаны в виде простого текста. И эти файлы надо заново читать и заново парсить при каждом вызове ls -l!

          При каких сценариях использования это будет bottleneck-ом?

          > Как зайти на хост a@a, с него — на b@b, с него — на c@c, с него — на d@d, а с него удалить файл /foo? Ну, это легко:

          А как бы вы это делали в винде или в другой %%OS_NAME%%?

          >А между прочим, если бы вместо shell'а был Lisp

          А если бы у бабушки был член...

          > Вы только представьте! Вот допустим, нужно удалить все файлы в текущей папке с размером, большим 1 килобайта. Да, я знаю, что такое надо делать find'ом. Но давайте предположим, что это нужно сделать непременно ls'ом (и без xargs).

          бхахаха. Там даже на хабре написали
          Вот допустим, нужно забить гвоздь. Да, я знаю, что такое надо делать молотком. Но давайте предположим, что это нужно сделать непременно микроскопом...
          Ответить
        • >А знаете какой геморрой кросскомпилировать какую-нибудь парашу под арм? Некоторое говно просто не может быть собрано кросскомпилем(потому что это говно в процессе работы генерирует бинарник и пытается его запустить, от чего закономерно обламывается), так что приходится ебстись с виртуалками

          да, быт сишников полон боли и страданий. Нормальные то языки и кросскомпиляцию поддерживают и не пытаются всякое говно запускать.
          Ответить
      • > Всякие там питонодебилы отвыкли от свободы, и возможность писать нечитаемую парашу на языке воспринимают как недостаток языка.
        Писать нечитаемую парашу и чувствовать себя свободным - это скорее хобби программиста. Тихий душевный вечер при свечах и параша в коде. Приятно.
        Но когда дело касается работы, уж лучше использовать более строгие инструменты, чтобы как в шар в желобе скатываться от поставленной задачи к готовой программе и потом не копаться в море багов, а спокойно говнокодить для души.
        Ответить
        • > скатываться как шар в желобе
          Годный эпитет. Работаешь, деградируешь, и постепенно скатываешься в говно.
          Ответить
          • То есть строгий питон не нужен, завозим всем сишку вперемешку с джаваскриптом - пусть люди растут над собой в попытках сдержать говно?
            Ответить
            • Языки, строго ограничивающие свободу самовыражения программиста - не нужны
              Ответить
              • Все на асм! Он не сдерживает свободу
                Ответить
                • Хуита, настоящая свобода это когда собираешь на FPGA свой процессор, которому еще в процессе работы можно инструкции новые прошить, если сильно захочешь
                  Ответить
                  • Или когда собираешь процессор паяльником:
                    https://geektimes.ru/post/278410/

                    Так можно сделать хоть троичную логику, хоть гибрид ЦВМ с АВМ.
                    Ответить
                    • Да ну, изврат... Как у них терпения хватает годами это паять.
                      Ответить
                      • А ведь потом ещё каждый узел придётся проверять...
                        Ответить
                  • > на FPGA
                    Какая ж там свобода... Даже асинхронную логику толком не запилишь...
                    Ответить
                    • З.Ы. Хотя чуваки таки сделали асинхронный проц. Всего то пришлось запилить новый тулчейн...
                      Ответить
                      • Линк?
                        Ответить
                        • Потерял ;(

                          А на вики целая гора этих асинхронных процов перечислена, хрен найдёшь, который из них мне тогда попался. Может я и гоню про новый тулчейн...

                          Вот тут вообще обошлись стандартным и констрейнтами запинали: http://www.ics.forth.gr/carv/async/demo/
                          Ответить
    • И это не говоря уж о том, что критичные файлы UNIX (такие как /etc/passwd), который читаются при каждом (!) вызове, скажем, ls -l, записаны в виде простого текста. И эти файлы надо заново читать и заново парсить при каждом вызове ls -l! Было бы гораздо лучше использовать бинарный формат. Или БД.

      Когда захотел написать царский HPC кластер, внезапно базирующийся на пирформансе вывода команды ls, но взял и приуныл.
      Сколько там в его /etc/passwd строк? 50? 200? Какая БД ему организует более быстрый многопользовательский ACID доступ, с контролем прав, с открытием, закрытием соединения, чем тупо прочитать сраные 50 строк в сраном текстовом файле, который даже прокешируется при частом доступе?

      какой-нибудь JSON или XML
      Фу, как анскильно. Всё уже придумано до нас.
      http://www.ibm.com/support/knowledgecenter/SS9H2Y_7.5.0/com.ibm.dp.doc/json_jsonx.html
      Ответить
      • >Какая БД ему организует более быстрый многопользовательский ACID доступ, с контролем прав, с открытием, закрытием соединения, чем тупо прочитать сраные 50 строк в сраном текстовом файле, который даже прокешируется при частом доступе?

        Бинарная сериализация в SysV SHM сегменте.
        Ответить
        • Меня тоже бесит, что я не могу в крузис поиграть с таким тормозным ls.
          [root@server]# time ls -l /usr/sbin > /dev/null
          
          real    0m0.016s
          user    0m0.003s
          sys     0m0.014s
          [root@server]# time ls /usr/sbin > /dev/null
          
          real    0m0.004s
          user    0m0.003s
          sys     0m0.001s
          Ответить
          • Кстати, раньше частоту процессора почему-то писали не в мегагерцах (гигагерцах), а в миллионах операций в секунду. Я ещё удивлялся, кому может понадобиться выполнять восемь миллионов ls в секунду. На самом деле о *никсах и о команде ls я тогда не знал, но общей сути это не меняет.
            Ответить
      • я уже давно начал воспринимать навязчивое желание засунуть что-нибудь в JSON или HTTP как некоторый признак

        особенно когда на блядском JSON предлагается вручную писать конфиги
        Ответить
        • I♥YAML
          Ответить
          • ямл - кусог говна. Оставь его говнарям камнеедам
            Ответить
            • надо ли писать, что и где оставлено, и что с этим делать
              Ответить
        • Это ты не видел старый ejabberd.cfg, доямлевой эпохи.
          Ответить
        • > предлагается вручную писать конфиги
          Причём в JSON нет комментов.
          Ответить
          • Есть расширения с коментами.
            Ответить
            • JSON5 с комментами, запятой после последнего элемента и без кавычек в ключах?
              Ответить
              • > JSON5 с комментами, запятой после последнего элемента и без кавычек в ключах?

                Это всё детский лепет по сравнению с языком конфигураций, который используется у нас. Я нашёл только одно нормальное открытое упоминание об этом языке в сети:
                http://alexandria.tue.nl/extra1/afstversl/wsk-i/bokharouss2008.pdf
                Довольно много текста там закрашено, но в целом понять идею можно.
                Ответить
                • >Довольно много текста там закрашено
                  SCP-2008: Bokharouss
                  Ответить
                • На лямбдах я уже начал вспоминать формулировку десятого правила Гринспена.
                  Ответить
                • у меня от этой хуйни вкладка умерла
                  Ответить
                • А зачем его закрашивать? Там что, какая-то коммерческая тайна?
                  Ответить
                  • Рекламный трюк. Читатели подумают, что закрашено самое ценное, и будут ещё сильнее интересоваться этим продуктом.
                    Ответить
              • hjson есть еще.
                Ответить
              • и файлами с расширением js?
                Ответить
        • Чем тебе не угодили конфиги в жейсоне?
          Ответить
          • как коменты писать?
            через фиктивные поля штоле?)
            Ответить
            • Я паршу либой, которая умеет коменты.
              Ответить
              • Тогда уж можно эвалить жс, как хуесто выше писал
                Ответить
                • Когда тогда? Как ты родил это сообщение из сообщения, на которое ответил? Зачем евалить жс? Причем он тут вообще? Плюс джейсона в том, что он простой, понятный и стандартный. Конфиг на произвольном жс не обладает двумя из этих трех свойств. Зачем есть говно, когда можно есть жейсон?
                  Ответить
                  • Что блять не понятно? Ничего не мешает использовать из жс только, то что нужно для жсона + комменты + необязательные кавычки в ключах.
                    Ответить
                    • Равно как ничего не мешает нахуярить в конфиге синглпейдж апликейшон на ангуляре и жквери. В общем, если ты это серьезно говорил, то так себе идея.
                      Ответить
                      • Но если у меня жс-апликайшен, то почему-бы не использовать
                        var config = {
                          hui_len: 0.4, // нихуя себе
                          pizda: false
                        };


                        Разве что правда, eval в коде - плохая идея. Но в склеенной пачке с основным приложением - вполне ок.
                        Ответить
                        • Я тоже конфиги для всяких скриптов на питоне так делаю иногда (import config). Но для серьезного софта на работе не стал бы наверное.
                          Ответить
                        • потому что это не декларативно, и хуй ты автоматическими средствами его перепишешь
                          Ответить
        • И хттп - это тоже почти всегда заебись. Всяко заебатей говна, которое ты сделаешь на коленке.
          Ответить
          • > Всяко заебатей
            Чаем чуть не подавился. Надо запомнить фразу.
            Ответить
            • ну ты смотри, интернет он такой, тут много смехуечков
              Ответить
              • Интернетчики такие. Их чаем не пои, дай только вореций насмехуячить.
                Ответить

    Добавить комментарий