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

    +1

    1. 1
    IT Оффтоп #141

    #111: https://govnokod.ru/27644 https://govnokod.xyz/_27644
    #112: https://govnokod.ru/27648 https://govnokod.xyz/_27648
    #113: https://govnokod.ru/27652 https://govnokod.xyz/_27652
    #114: https://govnokod.ru/27659 https://govnokod.xyz/_27659
    #115: https://govnokod.ru/27665 https://govnokod.xyz/_27665
    #116: https://govnokod.ru/27671 https://govnokod.xyz/_27671
    #117: https://govnokod.ru/27675 https://govnokod.xyz/_27675
    #118: https://govnokod.ru/27685 https://govnokod.xyz/_27685
    #119: https://govnokod.ru/27701 https://govnokod.xyz/_27701
    #120: https://govnokod.ru/27703 https://govnokod.xyz/_27703
    #121: https://govnokod.ru/27710 https://govnokod.xyz/_27710
    #122: https://govnokod.ru/27728 https://govnokod.xyz/_27728
    #123: https://govnokod.ru/27729 https://govnokod.xyz/_27729
    #124: https://govnokod.ru/27730 https://govnokod.xyz/_27730
    #125: https://govnokod.ru/27732 https://govnokod.xyz/_27732
    #126: https://govnokod.ru/27733 https://govnokod.xyz/_27733
    #127: https://govnokod.ru/27737 https://govnokod.xyz/_27737
    #128: https://govnokod.ru/27742 https://govnokod.xyz/_27742
    #129: https://govnokod.ru/27747 https://govnokod.xyz/_27747
    #130: https://govnokod.ru/27755 https://govnokod.xyz/_27755
    #131: https://govnokod.ru/27766 https://govnokod.xyz/_27766
    #132: https://govnokod.ru/27790 https://govnokod.xyz/_27790
    #133: https://govnokod.ru/27828 https://govnokod.xyz/_27828
    #134: https://govnokod.ru/27834 https://govnokod.xyz/_27834
    #135: https://govnokod.ru/27839 https://govnokod.xyz/_27839
    #136: https://govnokod.ru/27845 https://govnokod.xyz/_27845
    #137: https://govnokod.ru/27857 https://govnokod.xyz/_27857
    #138: https://govnokod.ru/27867 https://govnokod.xyz/_27867
    #139: https://govnokod.ru/27887 https://govnokod.xyz/_27887
    #140: https://govnokod.ru/27900 https://govnokod.xyz/_27900

    Запостил: nepeKamHblu_nemyx, 02 Января 2022

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

    • Добрый вечер.

      Этот оффтоп сгенерирован автоматически.

      Индекс оффтопов: https://index.gcode.space/.
      Зеркала Говнокода и полезные ресурсы:
      * https://govnokod.xyz/ (альтернативный Говнокод)
      * https://gcode.space/ (read-only зеркало Говнокода)
      * https://t.me/GovnokodBot (Говнокод-бот в «Telegram»)
      * https://t.me/GovnokodChannel (Тематический канал в «Telegram»)
      * https://vorec.space/ (глоссарий Говнокода)
      * https://app.element.io/#/room/#govnokod:matrix.org (резервный чат)

      Примечание: автоматические перекаты в настоящее время осуществляются только с аккаунта nepeKamHblu_nemyx.
      Остерегайтесь подделок. Берегите себя и своих близких. Кок!
      Ответить
    • А это оффтоп.
      Ответить
    • А это хорошая новость:

      https://m.lenta.ru/news/2022/01/02/cyber_heist_nft/

      Хакеры в ходе кибератаки украли 15 изображений со «скучающими обезьянами» в виде NFT-токенов на сумму 2,2 миллиона долларов. Об этом сообщает британская газета The Sun.

      Коллекционер токенов Тодд Крамер описал ночь цифрового рейда как худшую в своей жизни. Кибератака произошла 30 декабря прошлого года. Крамер рассказал изданию, что хакеры получили доступ к его облачному блокчейн-хранилищу, на котором находились изображения, и затем вывели их на другие аккаунты. Об этом он рассказал в личном Twitter-аккаунте.
      Ответить
      • Ну что, ждём отката блокчейна, как в том случае с эфиром?
        Ответить
    • Предлагаю поразмять мозги и как в прошлом году, порешать задачки с математической олимпиады в комментариях к этой статье. Задачек 6 штук, и на них отводилось 2 дня по 4,5 часа. (Чур, в ответы не подглядывать!)
      Ответить
      • День 1

        Время на работу: 4 часа 30 минут.
        Каждая задача оценивается в 7 баллов

        Задача 1

        Дано целое число n > 100. Ваня написал числа n, n+ 1,..., 2n на n+ 1 карточке, каждое по одному разу. Затем он перемешал колоду из этих карточек и разделил её на две стопки. Докажите, что хотя бы одна из двух стопок содержит две карточки, сумма чисел на которых — точный квадрат.
        Ответить
        • > Докажите

          Это задачки на coq?
          Ответить
        • разве это задача на программирование? тут чистая математика
          Ответить
          • а я протупил.. я думал мы тут программированием занимаемся....
            Ответить
        • зачем нам случайные числа - если можно рассмотреть частный случай где числа идут один за один
          Ответить
          • Ну здесь не случайные числа, а скорее forall...
            Ответить
      • Задача 5

        Чип и Дейл собрали на зиму 2021 орешек. Чип пронумеровал орешки числами от 1 до 2021 и вырыл 2021 маленькую ямку вокруг их любимого дерева. На следующее утро он обнаружил, что Дейл положил в каждую ямку по орешку, ничуть не беспокоясь о порядке. Расстроившись, Чип решил переупорядочить орешки посредством следующей последовательности из 2021 действия: во время k-го действия он меняет местами орешки, соседние с орешком под номером k.

        Докажите, что найдётся такое число k, что во время k-го действия поменялись местами орешки с номерами a и b такими, что a < k < b.
        Ответить
        • опять комбинаторика. из программирование что-то есть?
          Ответить
    • а давайте задачки из олимпиады по программированию делать... правда они 30летней давности...

      1) дан массив "n"x"m".. где каждая ячейка имеет 1 или 0. 1 есть земля . 0 есть вода. Задача посчитать кол-во островов. Острова не могут иметь общего пути если идти по клеткам.
      Ответить
      • И как же это считать?
        Ответить
        • Предлагаю считать так:

          Для каждой клетки делаем обход в ширину, потом все обойденные клетки заменяем на «2».

          Ищем другую клетку-единичку, и от неё тоже делаем обход в ширину, но потом помечаем обойденные клетки тройками.

          И так далее.

          Потом по всему «массиву» проходимся и ищем максимальное число, не забываем вычесть единичку.
          Ответить
          • Ну ты прям разметил острова... Можно же тупо затереть их ноликами если в задачке достаточно просто посчитать их.
            Ответить
            • А как их потом считать? Завести счётчик и увеличивать его, когда находим острова? А сможешь за О(1) решить такую задачу?
              Ответить
              • > потом

                А зачем потом? Считай сразу, как только начинаешь заливку каждого.
                Ответить
              • > А сможешь за О(1) решить такую задачу?

                Смогу. 42.
                Ответить
              • задача считается рекурсией. тут важно вернуться в предыдущую клетку что бы не потерять связь между ячейками для одного острова. т.к. острова могут иметь разные конфигурации
                Ответить
      • А офер потом дашь?
        Ответить
      • Сканируем массив, находим единичку, инкрементим счётчик, запускаем flood fill ноликами, повторяем.
        Ответить
        • Имхо, самый интересный технический момент -- реализация flood fill'а: обычному поиску в ширину можно стек порвать какой-нибудь фрактальной фигнёй.
          Ответить
          • Какой фрактальной фигнёй?
            Ответить
            • Что-нибудь сильно ветвящееся, чтобы как можно больше веток параллельно проверялось.
              Ответить
          • По-моему реализация BFS с open/closed списками самая известная, там стек рвать нечем. Вот рекурсивная DFS с одним списком может порваться.
            Ответить
            • Да, логично.
              Ответить
            • Нужен свой аллокатор, который может срать прямо в изначальный массив. Чтобы данные не перетирались, изначальные единички и нолики, которые в нём лежали, нужно засовывать в tagged pointer'ы на next.
              Ответить
      • Давай другую задачку, эту мы уже решили :-)
        Ответить
        • есть последовательность чисел разных от -n до +n. Найти последовательность с наибольшей суммой его членов.
          Ответить
          • Ну эта лёгкая: отсортировать и сложить числа от 0 до +n.
            Ответить
            • ээ.... найти последовательность и нет. (-5 +6) это лучше, чем 0
              Ответить
              • А как тогда?

                Только полным перебором, получается?
                Ответить
                • за полный перебор много балов не дадут.... нужно провести оптимизацию алгоритма
                  Ответить
              • Почему не взять просто +6 в данном случае?

                Надо именно отрезок c подряд идущими элементами найти, а не подпоследовательность?
                Ответить
                • потому что последовательность (-5 6 6) лучше чем (6)
                  Ответить
                  • > (-5 6 6)

                    Почему не просто (6 6), у которой сумма, очевидно, больше?

                    Хватит доставать цифры из рукава! Приведи реальный пример полностью.
                    Ответить
                    • > из рукава
                      Из широкой штанины
                      Ответить
                      • Кака течет под штаниной на «Найк», плохой знак
                        Кака стелет вниз по ноге, эге — ге
                        Очко сыграло в свою игру, эт братуня не к добру
                        Очко ведь зеркало души, обосрался, не пищи
                        Ответить
                    • А реальный пример такой:

                      (-5 6 6 6 6 6 6 6 -5 6 6 6 6 6 6 6... )
                      Ответить
                • да
                  Ответить
                • Предлагаю такой план:

                  1. Посчитать суммы всех последовател последовательностей по два элемента, записать их в массив.

                  2. Сделать то же самое с полученным массивом.

                  Было: [1 2 3]

                  Стало: [3 5]

                  3. Делать эту манипуляцию ещё и ещё, пока кочан не треснет! Потом найти максимальный элемент среди таких массивов.

                  Ещё нужно учесть разрядность системы, потому что -n - n может вызвать переполнение.
                  Ответить
          • 1) Так как в любой неотрицательной последовательности имеет смысл захватывать всю последовательность целиком, подобные последовательности можно представить одним числом, представляющим сумму её членов.
            2) Так как любую неположительную последовательность имеет смысл захватывать целиком, чтобы через неё мостиком соединить две положительные, подобные последовательности можно представить одним числом, представляющим сумму её членов.
            3) У нас получается последовательность чисел с чередующимися знаками: ... +А, -В, +С, ...
            4) В последовательности +А, -В, +С, если B < min(A, C), то эту последовательность можно объединить и представить одним числом, представляющим сумму её членов, в результате сумма увеличится.
            5) После того как после очередного прохода по последовательности ничего упростить не получается, производим полный перебор по получившейся упрощённой последовательности.
            Ответить
            • > очередного прохода

              Мне почему-то кажется, что там и одного прохода хватит... Но пруфов не будет.
              Ответить
              • [6, -4, 5, -6, 5, -4, 6] → [7, -6, 5, -4, 6]
                7, -6, 5 не объединить, поэтому пропускаем
                → [7, -6, 7]
                А теперь второй проход
                → [8]
                Ответить
                • [6] // в принципе, можно оборвать цепочку здесь (запоминаем как максимум)
                  [6, -4] // пробуем дальше т.к. |6| > |-4|
                  [6, -4, 5] -> [7] // запоминаем как новый максимум
                  [7, -6] // пробуем дальше т.к. |7| > |-6|
                  [7, -6, 5] -> [6] // максимум не побили, пофиг
                  [6, -4] // пробуем дальше т.к. |6| > |-4|
                  [6, -4, 6] -> [8] // новый максимум, список кончился

                  Если бы в какой-то точке было [5, -6], то нет смысла тащить этот отрицательный багаж дальше, можно сразу отбрасывать.

                  Контр-пример пока не могу придумать...
                  Ответить
                • int current = 0, max = 0;
                  for (int x : xs) {
                      current += x;
                      max = std::max(max, current);
                      if (current <= 0) current = 0; // reset sequence, there are no reason to keep it
                  }
                  Вроде даже пре-фильтрация никакая не нужна, можно сразу всю последовательность скармливать.
                  Ответить
                  • Насколько я понял, смысл найти последовательность, а не просто максимум. Хотя с небольшими модификациями должно работать. Контраргумента привести не могу.
                    Ответить
                    • > найти последовательность
                      int current = 0, max = 0;
                      auto begin = xs.begin(), max_begin = xs.begin(), max_end = xs.begin(); // [begin; end)
                      for (auto i = xs.begin(); i != xs.end(); ++i) {
                          current += *xs;
                          if (current > max) { max = current; max_begin = begin; max_end = std::next(i); }
                          if (current <= 0) { current = 0; begin = std::next(i); }
                      }
                      Ответить
            • а это правильный ответ работать надо с триплетами
              Ответить
              • Т.е. мой вариант неправильный? Приведи реальный контпрпример.
                Ответить
                • ну ты же тоже работаешь с триплетами [6, -4, 6] -> [8], честно говоря, я уже не помню 100% решения. помню, что надо создать триплеты и по ним найти максимальную цепочку
                  Ответить
                  • В последней версии я уже тупо с конкретным элементом работаю и накопившейся до него суммой... Если накопившаяся цепочка ушла в минус, её остаётся только выбросить и начать новую с нуля.
                    Ответить
                    • Я, кстати, знаю, на чём мой вариант сломается, и что нужно обрабатывать отдельно: [-8, -1, -6] или любая последовательность, состоящаа из отрицательных чисел.
                      У тебя, вроде, сначала запишется в max, а потом отбросится.
                      Ответить
                      • Не, у меня даже в max не запишется т.к. он начинается с нуля а не с -inf, поэтому останется пустая подпоследовательность в ответе. Мне сначала показалось, что это баг. Но выходит что [] лучше, чем [-8].
                        Ответить
                  • А почему не дуплеты?
                    Ответить
        • новая задача... она уже очень простая. написать алгоритм возведения в степень целых чисел. n^m . только работать алгоритм должен быстро
          Ответить
          • Можно я решу её на питоне?

            print(n ** m)
            Ответить
            • да хоть верхом на жирафе :)
              Ответить
              • Более интересная версия задачки -- заставить этот алгоритм работать без сайд-эффектов по времени, потреблению тока и обращению к кешам.
                Ответить
                • return exp_table[n][m];
                  Ответить
                  • Ну не, тут же как раз атака через кеш будет... Сразу видно, куда лезли.
                    Ответить
                    • volatile uint64_t result, final_result;
                      for (int n = 0; n < n_max; ++n)
                          for(int m = 0; m < m_max; ++m) {
                              result = exp_table[n][m];
                              if (n == desired_n and m = desired_m)
                                  final_result = result;
                          }
                      return final_result;
                      В теории должно всегда должно выполняться за одно и то же число инструкций.
                      Ответить
                      • Будет немножко другой паттерн потребления тока из-за записи в финальный результат!

                        Хотя вряд ли это получится измерить на практике, конечно.
                        Ответить
                        • предположим у вас есть только процессор K580 или Z80
                          Ответить
                      • вы от мельдония защищаетесь?

                        делайте WBINVD или как там он флашится
                        Ответить
            • хм... а он не работает быстро :)
              Ответить
              • Вполне быстро. Ты ведь не по модулю умножаешь, число очень быстро раздувается и жрёт память. Тлен и безысходность.

                gmp, конечно, быстрее будет. Но не сильно.

                З.Ы. А наивным алгоритмом ты вообще бы не дождался.
                Ответить
                • Так он хочет не раздувать национальную рознь, а какое-то быстро, типа две трансцендентные инструкции и одно умножение это медленно.

                  PS: какой-то способ был через факторизацию покпоказателя.
                  Ответить
                  • предположим у вас есть только процессор K580 или Z80
                    Ответить
                    • Да блин, какая разница? Алгоритм от этого не изменится, просто ячейки будут меньше и умножения ячеек придётся делать софтварно.

                      Скучно это "умножение возведение в столбик" писать в очередной раз, поэтому и пример из питона, где всё это уже реализовано...
                      Ответить
      • А там https://ru.wikipedia.org/wiki/Окрестность_Мура или https://ru.wikipedia.org/wiki/Окрестность_фон_Неймана ? Но вообще понятно, что это ебашится через "волновой алгоритм", так что нихуя сложного нет.
        Ответить
      • какая игра в сапера
        Ответить
    • Никогда бы не подумал, что инструкция по технической эксплуатации бэк-офиса "Госуслуг" может занимать 217 страниц:

      https://pos.gosuslugi.ru/og/storage/pos/document/rukovodstvo-polzovatelya.pdf

      Там настолько тупые сотрудники, что им надо буквально разжёвывать каждую кнопку, каждую ссылку, каждую иконку?
      Ответить
      • Да, они же работают на государство!
        Ответить
      • По моему руководство пользователя вообще не должно занимать более десяти страниц.

        Руководство админа или системного инженера может быть толстым, а для конечного пользователя нужно делать нормальный UX.

        Иными словами, никто не читает 217 страниц прежде, чем запустить вашу прогу
        Ответить
    • https://habr.com/ru/post/599127/

      Я фронтенд разработчик, а не обезьянка

      Все началось с того, что я задал вопрос «Как передать на бекенд требования к API?» в Хабр вопросах с гипотезой...

      И вот, что из этого получилось:

      @AgentSmithСовсем спустился до личных оскорблений и писал про фронтов как про обезьянок. К сожалению, (или счастью) ему стало стыдно и он удалил всю свою ветку, где писал оскорбления. Оставив только вот это:

      @AgentSmithСудя по вопросу ты некомпетентен и лидом ты назвал себя сам. Подтвердить свою компетенцию на должность лида ты не можешь.

      Из группы Боль Тим Лида в телеграм:
      Да я бы даже сказал, что это бредово. Фронты это же обезьяны умеющие только делать запросы и выводить их. Им то д****ды как там все устроено на сервере. Пускать фронт к проектированию API это плохая идея, напроектируют. Еще бы фронт мне диктовал как реализовать API.


      Если полистать комментарии, явно чувствуется крайне негативная повестка от вопроса.
      Ответить
      • Мы всегда ищем способы улучшения наших процессов и мой вопрос, по сути был элементом «кастева», что бы предложить одно из возможных решений, которые мы планировали разработать.

        И спустя пару месяцев мы разработали – API Projector

        Визуальный Swagger редактор

        API projector – это визуальный Swagger редактор с возможностями привязки API к пользовательскому интерфейсу системы (приложения).

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


              он на си пишет, там можно срать в удобные структуры с битовыми полями
              Ответить
              • > какие биты?

                Те, которыми расхуяриваются нахуй контроллеры, когда j123123 случайно заливает туда не ту прошивку, и у контроллера перегорают лампочки.
                Ответить
        • А я за web 1.0. Там вообще никакого ``API'' нет.
          Ответить
        • Fool stack?
          Ответить
        • обычно если фулстек работает один, то потом оказывается, что единственный API к его системе это браузер с селениумом

          Это не касается тебя конечно, но рядового вебгиббона очень даже
          Ответить
          • а нахуя нужно API если никто не попросил прямо?

            это очень странная претензия в мире где API твитеров и ютубов постоянно деградируют и ограничиваются
            Ответить
            • А нахуя нужна модульность если никто не попросил прямо?

              это очень странная претензия в мире где файл funkcii.php порнодоеконлайн и вордпресс-лендингов постоянно растёт и жиреет
              Ответить
            • Когда попросят API -- будет уже поздно. Сделать API задним числом окажется настолько дорого, что проще реально руками наковырять базу или надёргать кнопочки через селениум.


              В древности всем было очевидно, что нужно делать API и клиент параллельно, причем клиент должен работать поверх API, чтобы всё, что можно сделать через UI, можно было бы сделать и через API.

              Но те времена давно прошли
              Ответить
              • > настолько дорого

                Мы прикручивали апи к существующему сайту на перле, не так уж и страшно, на самом деле. Оно же просто сбоку получается и с той же самой базой работает. Хотя зависит от того, насколько полное апи нужно.
                Ответить
                • И сколько это заняло времени?

                  Обычно это бывает так:
                  --Нам срочно нужно пятьсот раз сделать $FOO
                  --Но унас нет для этого API, можем сделать за пару дней
                  --Тогда высрите эти 500 $FOO в базу руками, нам срочно нужно

                  >насколько полное

                  Это всё полумеры. Если главный клиент работает не через тоже самое API, что и сторонние, то API соснет рано или поздно.

                  >на перле
                  никогда не видел сайтов, где логика аккуратно размазана между беком, JS и базой, и которые реально автоматизируются только селениумом?
                  Ответить
                  • Полумеры полукаджиты
                    Ответить
                  • > реально автоматизируются только селениумом

                    Битрикс что ли с его одной таблицей под всё подряд? Ну я не представляю, что там такое надо нахуячить, чтобы напрямую через базу наскриптовать было сложнее, чем через жопу селениум.

                    > времени

                    Немного т.к. надо было R/O.
                    Ответить
                    • >чтобы напрямую через базу наскриптовать было сложнее,

                      Ну то есть нужно снова вручную
                      * Очистить данные
                      * Преобразовать их
                      * Убедиться, что ты не нарушил констреинты (которые проверялись на слое логики, который ты обошел)
                      * Так как базы обычно не очень нормализованы, не забыть добавиться во все нужные места (например в логирование)

                      Охуенное решение
                      Ответить
                      • Как всё сложно! Хорошо что у меня нет в контроллерах никаких "баз".
                        Ответить
                        • У вас есть таблицы виртуальных функций.
                          Ответить
                          • У него в си нет никаких таблиц виртуальных функций (если он не пилит их сам при необходимости).
                            Ответить
                            • У него зато есть двумерные массивы, чтобы мигать лампочкой по нажатию на кнопку:

                              [["button", "bulb"],
                              [0xc000006b, 0xd3adb33f]]
                              Ответить
                              • > мигать лампочкой по нажатию на кнопку

                                Именно поэтому я за циклоняшку:
                                assign led = button;
                                Ответить
                          • У меня может например быть массив из предвычисленных синусов для какой-нибудь хуйни, но "базой" такую хуйню я б не называл.
                            Ответить
                        • Сравни с конфигурационными фалйами. Что лучше: читать их sedом, или иметь API для их чтения?
                          Ответить
                  • > --Тогда высрите эти 500 $FOO в базу руками, нам срочно нужно

                    А зачем тут API? И чем оно облегчит задачу по сравнению со сраньём напрямую в базу?

                    Лишная прокладка, имхо. Да ещё и пирфоманс просадит.

                    З.Ы. А API, покрывающее 100% нынешних и будущих юзкейсов при сохранении нормального пирфоманса -- это утопия какая-то.
                    Ответить
                    • Я ответил: https://govnokod.xyz/_27914/#comment-789365

                      >API, покрывающее 100% нынешних и будущих юзкейсов
                      именно по этому нужно гуи пускать через тот же самый API: юзкейсы рождаются в голове заказчика из гуи, он мыслит в этих терминах. И нужно, чтобы выполнялось условие, которое я там выше жирным выделил
                      Ответить
                  • Кмк, API нужно только если ты хочешь, чтобы кто-то другой мог обращаться к твоей системе.
                    Ответить
                    • Зачем разделять "другой" и "не другой"?
                      Ответить
                      • Потому что для "другого" ты должен обеспечить какой-то слой совместимости. А для себя он няхуй не сдался, только лишнюю работу создаёт.

                        > констреинты (которые проверялись на слое логики, который ты обошел)

                        А зачем для этого API, когда достаточно те же ормы/модели/хелперы юзать, что и в оригинальном коде?

                        Мы же именно про "REST API", а не про "API в общем смысле"?
                        Ответить
                        • А как ты разделяешь себя и другого? Твой коллега из соседнего отдела свой или чужой?

                          >достаточно те же ормы/модели/хелперы юзать, что и в оригинальном коде?

                          Уже лучше, то есть напрямую в базу мы не лезем, верно?
                          А как мы загрузим туда твой экселевский файл? Добавим в систему его парсинг?

                          Я предлагаю сделать классическую трёхзвенку, где слой логики представляет API, которым может пользоваться твоя веб морда, а может твой скрипт на питоне, который дергает данные хоть из CSV, это не важно твоему приложению.

                          >Мы же именно про "REST API", а не про "API в общем смысле"?
                          А в чем разница?
                          Ответить
                          • REST API – это когда по интернету шлют джейсонов, а просто API – это общее понятие, значит «интерфейс взаимодействия с программой для разработчика».
                            Ответить
                          • > А в чем разница?

                            В том, что API на уровне языка обычно более выразительное и няшное, чем сраный REST. Те же транзакции в нём можно выразить. Или типы данных. И оверхеда меньше.

                            Но да, я сварщица не настоящая, порталы уровня госуслуг не ваяла.
                            Ответить
                            • Транзакции вероятно нужно упаковывать в один запрос.
                              Типы выражаются в SOAP/WSDL. В Rest может быть тоже можно (есть же схемы для JSON).

                              То есть проблемы в слабости и неудобстве API?

                              Окей, а если бы ты (не дай бог) делал бы трёхзвенку под винду с DCOM, то делал бы ее по другому?

                              >сварщица не настоящая

                              Ну, я тоже могу говорить только из своего опыта.
                              Я дважды видел системы, где люди вручную ковыряли базу стараясь что-то не забыть именно по причине отсутствия API.

                              И несколько раз общался с трёхзвенками (там был не RESt, а какой-то свой RPC). Они были сделаны не ради API, а потому что тупо клиенты были вебовские и десктопные (это было очень давно) но зато задачи типа "вот такие деййствия сделать 100500 раз" люди реально писали на скриптушне.

                              Есть еще патттерн когда завозят скриптушню прямо в ядро системы, и тогда автоматизируют действия загружая туда скрипт
                              Ответить
                              • > в один запрос.

                                Т.е. существующее API для гуйни, где чел оперирует отдельными элементами, будет непригодно. QED.
                                Ответить
                                • Почему не собрать их на гуйне в пачку, и потом не закоммитить одним запросом?

                                  зачем временным говном забивать бек?
                                  Ответить
                                  • Потому что юзеру будет обидно проебать введённые данные или словить ошибку "там что-то уже поправили, мёржи вилкой"?
                                    Ответить
                                    • Почему не сохранить их локально, в сторадже?

                                      Ну или окей, сохранить их на сервере, а потом сделать коммит? Чем это не транзакция?

                                      >мёржи вилкой
                                      поправили в смысле в базе? ну тогда твоя транзакция всё равно не закоммитица
                                      нужно только чистить ее если в течение года он к ней не вернулся
                                      Ответить
                                      • > а потом сделать коммит

                                        Там уже что-то поправили, мёржи вилкой, сука.

                                        Не особо представляю, как должен выглядеть UI для этого...

                                        > всё равно не закоммитица

                                        Ну одно дело, когда одна строчка. И совсем другое -- когда вбито уже 100 и тебе предстоит тяжёлая ночь.
                                        Ответить
                                        • приведи реальный пример что могли поправить
                                          Ответить
                            • Кстати, знаешь такой паттерн
                              https://herbertograca.files.wordpress.com/2018/11/100-explicit-architecture-svg.png
                              ?
                              Ответить
                      • З.Ы. Я не претендую на сеньёрство в этом вашем вебе, просто моё имхо и ненависть к оверинжинирингу.
                        Ответить
                        • По моему правила API везде примерно одинаковые.
                          Но я не спорю, что создать API дороже, чем его не создавать.

                          Если ты делаешь документооборот например, что шансы велики, что API тебе понадобится, и лучше бы сразу логику и гуй вынести в разные компоненты, соединенные API кмк
                          Ответить
                    • А моя вторая личность считается за другого?
                      Ответить
                    • Грамотное разделение компонентнов никто не отменял

                      дискуссию выше я конечно же не читал
                      Ответить
                      • Ну да, но совсем не обязательно его проводить на уровне "REST API".
                        Ответить
                        • А чем REST не API?

                          почему плохо, когда у тебя есть уровень логики в отдельном сервисе, и его клиенты (мобильные, вебоские, консольные, кастомные) общающиеся с ним через одинаковое, документированное REST API?
                          Ответить
              • >клиент должен работать поверх API, чтобы всё, что можно сделать через UI, можно было бы сделать и через API

                я забыл что тут еще всерьез воспринимают сайты которые состоят из пхп файлов высирающих html. То что ты написал это правда и это то как работает 90% современного веба

                Я говорил про публичное API со своей схемой авторизации, пермишенов и прочей хуйней. Зачастую требования публичного и ui API отличаются и хорошей идеей будет иметь два комплекта API, особенно если внутреннее API это какой-то graphql, а внешнее - REST. Делать отдельное публичное API в этом случае если не просят - это огромный риск того что оно будет задизайнено хуево и просто трата времени
                Ответить
        • это только если у тебя в черепушке всего одна личность
          Ответить
      • Я -- разработчик прошивок, а не обезьянка

        Все началось с того, что я задал вопрос «Как передать железячникам требования к цоколёвке?» в Хабр вопросах с гипотезой...

        И вот, что из этого получилось:

        <...>

        Из группы Боль Тим Лида в телеграм:
        Да я бы даже сказал, что это бредово. Прошивочники -- это же обезьяны умеющие только делать код на сишке и теребить сигналы на пинах. Им то до пизды как там все устроено на плате. Пускать прошивочника к проектированию железа -- это плохая идея, напроектируют. Еще бы софт мне диктовал как реализовать железо.

        Если полистать комментарии, явно чувствуется крайне негативная повестка от вопроса.
        Ответить
      • ТЗ пиши :) а вообще все бэкенды когда-то были фронтендами поэтому маломайски они понимают какой API должен быть
        Ответить
      • >Я фронтенд разработчик, а не обезьянка
        ахахахахаха
        ой бля
        это лучшая шутка в этом году


        извините.
        Ответить
      • >Если фронты хорошо знают REST

        А вы знаете REST? Хорошо знаете? Курсы по нему можете посоветовать?
        Ответить
    • А вы знали, что замок дверной вскрывается от двух до пяти минут, и все ваши компьютеры с видеокартами уносятся и затем продаются?

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

        На случай, когда хозяин находится дома - асимметрично установленные противосъёмные штыри (ставятся на дверь с той стороны, где петли, при закрывании двери уходят в стену/зацепляются за дверную коробку) и асимметрично установленные вертикальные шпингалеты (какие в гаражах иногда делают) сверху и снизу. Это всё хозяйство придётся пилить болгаркой почти по всему периметру двери (снаружи невозможно будет узнать места их установки, разве что подглядеть в окна, если дверь одна и видна в них). Для особо параноидальных, если дверь одна, можно посоветовать талрепы и стальные тросы к стенам/потолку/полу с точками крепления на метр-другой от двери в глубину помещения (не в стороны от двери) - болгарка будет бесполезна, тросы не отпустят дверь от коробки, даже если все штыри-шпингалеты спилить.

        ВНИМАНИЕ: упор для нижнего вертикального шпингалета в открытом положении нужен такой, чтоб штырь с него не соскочил при, например, слишком резком закрывании двери снаружи и не закрыл её! Лучше упор этот сделать как-либо закрывающимся - даже тупо навесной замочек, притягивающий штырь к верхнему положению. Замочек тоже слететь произвольно не должен.

        Один из шпингалетов, установленных сбоку на двери, а второй - сверху, ставить так, чтоб штырь был удалён от самой двери сантиметров на 5+ Чтоб если спилят все остальные болгаркой по периметру двери (это уже крайне дохера времени), дверь повисла на этом (а верхний не отпустил дверь от коробки), до которого диск маленькой болгарки не доберётся (не хватит радиуса диска).
        Ответить
        • Х.з., по-моему тут те же принципы, что в интернете -- в 99% случаев будут ломать там, где забыли закрыть или поставили хуёвые замки. Ну либо воспользуются человеческим фактором.

          А целенаправленное пиление болгаркой -- это уже пиздец. Тут уже об охране надо задумываться, а не костыли на дверь лепить, как мне кажется.
          Ответить
          • Ещё вот такое люди пишут, сразу видно, далеки от IT:

            Почему то мне кажется что лучший замок будет типа блютусный вайфайный. Такой с пол пинка не откроешь и обычное быдло не полезет, а если у вас деньги сумками не хранятся дома то спец и не придет
            Ответить
            • > блютусный вайфайный

              Чтобы потом самому с болгаркой в квартиру пробиваться?
              Ответить
              • Чтобы он сам открывался, когда соседи включают блютузную колонку.
                Ответить
                • Меня всё-таки больше смущает момент, когда прошивка забагует или батарейка подсядет. Что рано или поздно случится, т.к. технологии там не космического и даже не автомобильного уровня.

                  А поставив "бекапный" механический привод получим худшее из джвух миров -- теперь замок можно ломать как хардварно, так и софтварно, на выбор.
                  Ответить
                  • > батарейка подсядет
                    У нормальных электронных замков есть возможность подключения внешнего питания на случай полного пиздеца (свет выключили, батарейка села).
                    Ответить
                    • Как в том ролике, прямо на электромагнит?
                      Ответить
                    • В общем, если буду делать блютус замок -- поставлю 3 независимых контроллера и 3 реле, из которых хотя бы джва должно сработать для открытия.
                      Ответить
                      • Ровно джва. Если срабатывают оди или три — в коридоре, где установлена дверь, закрываются замки и срабатывает газовая система пожаротушения.
                        Ответить
                    • В прошлом треде обсуждали, что выставлять контакты наружу нельзя, т.к. злоумышленник на них подаст киловольт.
                      Ответить
                      • Там гальваническая развязка. Злоумышленник может только сжечь модуль защиты. Даже если мог бы сжечь замок, он свою задачу выполнил — не открылся. Обычно считается что профит от непроникновения злоумышленника превышает неудобство от вскрытия собственной двери.
                        Ответить
                        • Если так подумать, обычные замки с ключами тоже весьма уязвимы к вандализму, им можно замочную скважину каким-нибудь клеем и спичками загадить
                          Ответить
                          • Мой одноклассник спичку вставил в личинку цилиндрового замка. Трудовик потом выпиливал кусок двери кабинета, чтобы снять замок.
                            Ответить
                            • хакер_и_солонка.txt
                              Ответить
                              • «День 200-ый
                                Посетители столовой с ужасом находят, что, чтобы насыпать соли, они должны подойти к официанту, предьявить паспорт, получить специальный 8-значный одноразовый код к солонке. Для получения перца процедуру следует повторить.»

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

                                  У одних в нейтральном положении язычок висит вертикально. Их можно выбить молотком. Если очень резко ударить, винт, удерживающий цилиндр, сломается.

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

                        Раньше такие фонарики были
                        https://upload.wikimedia.org/wikipedia/commons/7/72/Фонарь_Жучок%2C_СССР%2C_конец_1980-х_гг_ф1.JPG
                        Ответить
                        • Это «фонарик-дрочилка». Они и сейчас есть.
                          Ответить
                        • Штурвальчик, как на сейфах. Крутишь - заряжаешь бультус замок
                          Ответить
                        • Зато сейчас есть фонарик-стручок
                          https://cdn.shopify.com/s/files/1/1629/5651/products/FeatureImage-Anikka.jpg
                          Ответить
                          • Пиздец, не открывайте, там голая женщина, а в руках у неё ПИЗДА (((
                            Ответить
              • >Чтобы потом самому с болгаркой в квартиру пробиваться?
                когда какир его поломает, и попросит один биткоин за открытие?
                Ответить
            • > Почему то мне кажется что лучший замок будет типа блютусный вайфайный

              Можно через звук, FSK audio modem сделать. И какое-нибудь приложение под мобилу под это написать вполне можно
              Ответить
        • > до которого диск маленькой болгарки не доберётся
          Здесь нужна болгарка для труднодоступных мест.
          https://coub-anubis-a.akamaized.net/coub_storage/coub/simple/cw_image/6906f31698a/933ee5e9604448bc736ef/1587814421_00027.jpg
          Ответить
      • Именно поэтому создание барьеров на пути злоумышленников и локальные средства оповещения считаются малоэффективными. Для создания полноценной охранной системы нужны способы оповещения персонала за пределами охраняемого объекта. Барьеры и прочие пассивные средства охраны должны лишь задержать злоумышленника на время, необходимое для приезда группы быстрого реагирования.

        Вдобавок, особо ценное имущество должно хранится в сейфах или хранилищах, исключающих возможность скрытого проникновения. К примеру, оборудованных замками с таймерами: их невозможно открыть за пределами установленного времени (обычно это время работы организации) и открывать его необходимо дважды: после первичного открытия запускается таймер, и, после его истечения, в течении пяти минут, замок нужно открыть второй раз, чтобы наконец-то получить доступ. Стандартное время таймера — один час. Этого достаточно, чтобы приехала самая слоупочная охрана.
        Ответить
        • Поэтому я за "квартира охраняется комаром-спидоносцем".
          Ответить
      • Стала бабка на старости всех бояться и на все похоронные заказала себе мощную бронированную дверь с кучей замков. Пошла в магазин. Приходит - а дверь вскрыта. И ничего не взяли т.к. нечего. А на столе записка " Бабка ты так больше не прикалывайся!".
        Ответить
      • > и все ваши компьютеры с видеокартами уносятся и затем продаются?

        у меня даже замка в тот момент не было, потому что пожарные вышибли дверь
        Ответить
      • > уносятся и затем продаются?

        Но они не смогут его продать, потому что у меня есть NFT, по которому этот компьютер всё ещё принадлежит мне!
        Ответить
        • Приватный ключ от кошелька был на украденном компьютере?
          Ответить
    • Целый день ушёл на здоровую гомоикону, которая статически верифицирует backward-compatibility RPC вызовов (в этом ITT треде). Что j123123 в них находит?
      Ответить
      • А я люблю гомоиконы
        На здоровую гомоикону целый день уходит. Зато, когда после тяжёлого дня я прихожу домой, иду в ванну,
        Ответить
    • мне кажется я хуевый программист. Меня крайне редко посещают мысли о том что неплохо бы автоматизировать какую-то хуйню с помощью компьютера. У меня был всего один такой пет-проект и за всю свою карьеру я написал ровно одну тулу для автоматизации своей задачи

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

          Я не напрягаюсь разобраться с kubernetes/ide/шеллом и какие-то задачи у меня занимают в разы больше времени чем у коллег
          Ответить
      • Автоматизируют админы. Программисты пишут программы.
        Ответить
    • Один мальчик любил флудить и оффтопить на говнокоде и долго бы ещё оффтопил, если бы не одно странное событие.

      Приснился мальчику сон; во сне он видит, как идет, сонный, на кухню - попить. Со скрипом открывается дверца мойки... Замер мальчик, а из-под мойки высунулся страшный скелет в офицерской шапке и погрозил пальцем:
      -Не флуди...
      Заплакал, заёрзал мальчик - и проснулся.
      -Какая только хуйня не приснится! - и опять стал флудить на говнокоде.

      На следующую ночь ему приснилась церковь. Горели свечи, а посреди алтаря стояло черное пианино, за которым сидел худой кудрявый мужчина.
      Заметив мальчика он сразу перестал играть.
      -Я Феликс, - сказал он, - Мендельсон. В моих песнях было много реприз и вот, теперь я осужден разрешать их... Так печально.
      Мальчик проснулся и сразу побежал в ванную.
      -Русские не сдаются! - и на говнокод опять полетел поток спама.
      На третью ночь он видел во сне кавказцев. В купе было очень тесно, пахло чесноком, овцами и немытым телом.
      -Дарагой, зачем ты это делаешь? ..
      На чевертую ночь мальчик обнаружил себя в птичнике. Куры скосив голову глядели на него с насеста, хлопали крыльями и гадили на клавиатуру.

      Едва проснувшись, мальчик продал компьютер и больше никогда не флудил.
      Ответить
      • Однажды один мальчик решил стать линуксоидом. И поставил он себе Чёрный Линукс. Ставится Чёрный Линукс и говорит вдруг человечьим голосом – мальчик, слыш, слыш, а у тебя мобилка есть? Мальчик – ну, есть. А Линукс ему – а даш погонять? Мальчик напрягся. А Линукс – да ты не ссы, я чисто позырить, и у меня симка своя. Мальчик отдал Линуксу телефон, а тот как заржёт и говорит – хана тебе теперь, студент. Ща я ядро буду обновлять. И начал патчи качать по GPRS (а трафик дорогущий!), и патчи на патчи, и новые пакаги всякие. Одних крестиков-ноликов только скачал штук 200, а патчей на крестики – вообще не счесть. Мальчик сидит, аж подпрыгивает от предвкушения – а линукс всё больше патчей накачивает, да софта всякого. По алфавиту, как потом следствие выяснило, качал. Мальчик всё подпрыгивает и думает – эх, вот какой я мегалинуксоид буду, ух я, да я!!!!! И тут линукс поставил библиотеку zzzzzzz-version-234-23-111-564124-1-51-2-12-125-135-46-32-634-UNSTABLE.tar, и говорит – а теперь назад буду софт отдавать, потому что свобода ж. Мальчик плюнул и вскочить и убежать захотел, а не может. Кое-как до зеркала дошёл – а он уже старый, ноги не держат, руки трясутся и весь в морщинах. Пока мальчик линукс патчил и ядро новое ждал, вся жизнь прошла. А тут ещё и в дверь звонят – милиция счёт за GPRS за 58 лет принесла.

        Тут-то мальчик и умер. А Чёрный Линукс аттачем к письму прикрепился и по всем контактам из телефона разослался.
        Ответить
        • > Кое-как до зеркала дошёл – а он уже старый, ноги не держат, руки трясутся и весь в морщинах.
          > Пока мальчик линукс патчил и ядро новое ждал, вся жизнь прошла.

          Основано на реальных событиях.

          Прыщи. Сказка о потерянном времени.
          Ответить
        • https://web.archive.org/web/20161205192547/http://vxheaven.org/bhc/bhc15/bhc15-07.txt
          █ Одному мальчику в детстве попалась дискета с линаксом, и теперь он одепт ░▒▒░
          █ свободного  кода  доступа  к исходникам через гпль два ноль, компелирует  ░░
          ▓ кернул  модули, да так и помрет за этим неблагодарным делом - потому что ░  ░
          ▒ пока  он откомпелирует, злоебучий троволдас уже успевает выпустить новую ▒░░▒
          ░ версею своего поганого кернала! Но! Чтобы ему небыло обидно, уже другому ▓▒▒▓
          ▒ мальчику,  злые пидарасы подарили в детстве лицензионную версию венды, и ████
          ▓ теперь  он,  не зная отдыху, трудится в штате вошенгтон, округ колумбия, ████
          █ на  благо  копеталистической империи зла. Нету в жизни справедливости. И ▓██▓
          █ вот,  один  из  них теперь кричит, что дескать, билли клинтон-гейц - наш ▒▓▓▒
          █ отец родной, а другой говорит, что мол, линас тороволдас ни кто иной как ░▒▒░
          █ христос  воскресе, и пришел дать нам правду и истину, в то время как (на  ░░
          █ самом-то деле) только одно БХЦ и авторизовано раздавать истину и правду, ░  ░
          █ а все остальные токо гребут бабло лопатою, и в рот вас всех ебали.       ▒░░▒
          Ответить
        • O дней без ответа уебку

          govnokod.*##div.entry-comments div.entry-comment-wrapper:has(p.entry-info > strong.entry-author a[href$="/68134"])
          govnokod.*##div.entry-comments div.entry-comment-wrapper:has(p.entry-info > strong.entry-author a[href$="/68139"])
          Ответить
    • да блядь
      https://pbs.twimg.com/media/FH5u-2TUYAoGnIP?format=jpg&name=large
      Ответить
    • Никита из Беларуси, которому уже стукнуло 18 лет (в кои-то веки совершеннолетний подписчик) расскажет, как он принял себя.

      А – Админ, Н – Никита.

      А: Вопрос, с которого я всегда начинаю: ваша ориентация, как осознали?

      Н: Гей. Ещё в школе в возрасте 14 лет, когда посмотрел первое гей-порно и понял, что нравятся парни. Начал нравится одноклассник.

      ***

      Именно поэтому я считаю, что нужно запретить геев, трансов и прочих содомитов, потому что дети впервые их видят и становятся такими же.
      Ответить
      • А: Что-либо изменилось после признания в отношениях с друзьями?

        Н: Знаете, ничего не изменилось. Только если стало жить проще, ведь ничего не скрываю, ещё добавились гейские шутки, причем смешные. Потому что это норма. От того, что ты нетрадиционной ориентации, ничего не должно меняться в жизни. Максимум принятие того, кем ты являешься.

        ***

        Ситуация прямо как на говнокоде. Окно Овертона расширилось и няшных теперь большинство.
        Ответить
        • Еще одна подписчица решилась открыться. Юная Злата из Ижевска поделилась своими откровениями.

          А – админ, З – Злата.

          А: Итак, привет, Злата. Какая у вас ориентация? Во сколько лет осознали и при каких обстоятельствах?

          З: Я пан. Я не помню, но осенью 2018 года одна персона, а точнее моя подруга, предложила мне встречаться. Я долго думала, но все же приняла ее предложение. Далее следует расставание из-за расстояния, а позже осознание того, что мне могут понравиться абсолютно все люди, ибо был краш из тик-тока, который был трансом. Вот так вот.
          Ответить
          • А: Какие плюсы и минусы вы видите в каминг-ауте?

            Э: Из плюсов:
            + Вы становитесь честнее как с собой, так и с окружающими;
            + Вам не нужно скрывать свою особенность с человеком своего пола перед близкими;
            + Вы перестаете бояться, что вас увидят за работой кто-то из друзей или родственников.

            Из минусов:
            – Все люди относятся к PHP-сообществу по-разному, поэтому вы можете встретиться с большим количеством негатива;
            – От вас могут отвернуться знакомые, друзья и даже родственники;
            – В вашу сторону могут лететь оскорбления, издевки, а кто-то может даже применить насилие;
            – У вас могут возникнуть проблемы в учебном заведении или на работе.
            Ответить
          • Пан — это страшный дед с картины Врубеля?

            http://humanitary.ru/wp-content/uploads/2018/06/41-768x1084.jpg
            Ответить
          • Пан или пропал.
            Ответить
      • А – Админ, Н – Никита.

        Н: Я Гей.
        А: А? что? мне похуй кто ты, мне надо openssl пропатчить на семи серверах, не до тебя сейчас
        Ответить
    • Из недр "Госуслуг" (какая-то хрень, связанная с обработкой обращений граждан):
      SELECT
      appeal.id
      AS "Номер сообщения",
      case when appeal.source_type = 'SITE' then 'ЕПГУ'
      when appeal.source_type = 'DEPARTMENT' then 'Сайт'
      when appeal.source_type = 'MOBILE' then 'Мобильное приложение'
      when appeal.source_type = 'CALL_CENTER' then 'ПОС'
      when appeal.source_type = 'MP_HOUSE' then 'МП Дом'
      when appeal.source_type = 'YAKUTIA' then 'ВСПС Якутия'
      when appeal.source_type = 'VOLGOOBL' then 'ВСПС Волгоградская область'
      when appeal.source_type = 'COVID_VACCINATION' then 'ЕПГУ лист ожидания (вакцинация)'
      else appeal.source_type end
      AS "Источник",
      case when head_org.alt_name is null then head_org.name
      when trim(head_org.alt_name) = '' then head_org.name
      when trim(head_org.alt_name) = '-' then head_org.name
      when length(head_org.alt_name) < 2 then head_org.name
      else head_org.alt_name end AS "Верхнеуровневый ЛКО",
      sd.name
      AS "Категория сообщения",
      ssd.name
      AS "Подкатегория сообщения",
      appeal.fact_name
      AS "Факт сообщения",
      case when forward_opa.alt_name is null then appeal.forwarded_org_personal_area_name
      when trim(forward_opa.alt_name) = '' then appeal.forwarded_org_personal_area_name
      when trim(forward_opa.alt_name) = '-' then appeal.forwarded_org_personal_area_name
      when length(forward_opa.alt_name) < 2 then appeal.forwarded_org_personal_area_name
      else forward_opa.alt_name end AS "Поступило в организацию",
      case when opa.alt_name is null then appeal.org_personal_area_name
      when trim(opa.alt_name) = '' then appeal.org_personal_area_name
      when trim(opa.alt_name) = '-' then appeal.org_personal_area_name
      when length(opa.alt_name) < 2 then appeal.org_personal_area_name
      else opa.alt_name end AS "Текущая организация",
      Ответить
      • to_char(appeal.created_at, 'DD.MM.YYYY')
        AS "Дата поступления сообщения",
        to_char(appeal.answer_at, 'DD.MM.YYYY')
        AS "Дата планируемого завершения",
        to_char(appeal.completed_at, 'DD.MM.YYYY')
        AS "Дата фактического завершения",
        appeal.stage_name
        AS "Текущая стадия",
        appeal.status_name
        AS "Текущий статус",
        case when ((appeal.stage = 'COMPLETED' AND appeal.completed_at > appeal.answer_at) OR (appeal.stage <> 'COMPLETED' AND now() > appeal.answer_at)) then 'Да' else 'Нет' end AS "Просрочено",
        case when appeal.fast_track = true then 'Да' else 'Нет' end AS "Фаст-трек",
        case when appeal.answer_type != 'NO_ANSWER' then appeal.answer_type_name else null end AS "Тип решения",
        appeal.feedback_answer_mark
        AS "Оценка ответа заявителем"
        FROM appeal
        left join subject_dictionary sd on appeal.subject_dictionary_id = sd.id
        left join subsubject_dictionary ssd on appeal.subsubject_dictionary_id = ssd.id
        left join org_personal_area opa on opa.id = appeal.organization_personal_area_id
        left join org_personal_area forward_opa on forward_opa.id = appeal.forwarded_to_organization_personal_area_id
        left join org_personal_area head_org on head_org.id = opa.root_id
        WHERE appeal.status IS DISTINCT FROM ('COMPLETED_MODERATOR_DECLINE')
        AND appeal.common_stage IS DISTINCT FROM ('COLLECT_SIGNATURES')
        AND appeal.created_at >= '2021-06-01'
        AND appeal.subject_id in (327, 328, 329)
        order by appeal.id;
        Ответить
      • > case when opa.alt_name is null then appeal.org_personal_area_name
        > when trim(opa.alt_name) = '' then appeal.org_personal_area_name
        > when trim(opa.alt_name) = '-' then appeal.org_personal_area_name
        > when length(opa.alt_name) < 2 then appeal.org_personal_area_name
        > else opa.alt_name end AS "Текущая организация",

        А что удивляет? d++ вроде когда-то говорил, что нужно писать по 5000 строк sqlя в месяц.
        Ответить
        • Я программирую на PHP и меня давно ничто не удивляет.
          Кстати, этот SQL-запрос был как раз получен из тестового окружения внутренней информационной системы "Госуслуг", написанной на PHP (Yii2). Там есть раздел автоматической отправки кому-то по электронной почте каких-то системных отчётов, и в настройках этих отчётов тупо в текстовом поле прописывается SQL-запрос к базе данных, который и должен сформировать Excel-файл.
          Ответить
          • Vanished
            Ответить
          • >Я программирую на PHP и меня давно ничто не удивляет.

            золотые цитаты говнокода
            Ответить
            • Шар земной, устав вращаться,
              Может вдруг с цепи сорваться
              Иль ко всем чертям умчаться,
              Превратив живое в тлен.

              Ничему не удивляться,
              Ничему не удивляться
              Никогда не должен
              Истый джентльмен.
              Ответить
    • QR code uses four standardized encoding modes (numeric, alphanumeric, byte/binary, and kanji).
      Ответить
      • А нельзя для кандзи использовать Unicode внутри byte/binary? Или там какая-то сверхэкономичная кодировка?
        Ответить
        • Там JIS, видимо она компактней получается.
          Ответить
        • Как апофеоз пиздеца, юникод там не стандартизирован и ридеры до сих пор пытаются определить кодировку эвристикой.
          Ответить
          • Изобретал японец. Он не подумал, что кому-то понадобятся символы за пределами JIS. Хорошо хоть, для базовой латиницы кодировку сделал.

            Напоминает ад с кодировками в продуктах «Адоба» и других американских компаний в 1990-х. Они забывали, что кому-то нужны символы за пределами ASCII.
            Ответить
      • Анимешники стандарт делали.
        Ответить
        • > Анимешники

          Интересно, а раскладывание битов змейкой имеет какой-то практический смысл? Или им просто было скучно раскладывать биты сверху-вниз слева-направо?

          З.Ы. Ёбаная наркомания...
          Ответить
        • https://upload.wikimedia.org/wikipedia/commons/7/77/QR_Ver3_Codeword_Ordering.svg

          По-моему это в пиздец-оффтоп... Зачем? Зачем?
          Ответить
          • Кококококой бустрофедон!
            Ответить
          • А в datamatrix какой порядок битов?
            Ответить
            • В «Data matrix» бустрофедон наклоном π/4 (45°), биты уложены черепичками разной формы.

              Проще, чем в QR, но сложнее, чем в «Aztec».
              Ответить
              • > черепичками

                Видимо эти плиточки во всех 2D кодах как-то связаны с формой дефектов на бумаге, чтобы всякие пятна, изгибы и блики как можно меньше байтов убивали. Код Рида-Соломона не умеет выправлять отдельные биты.
                Ответить
                • В PDF417 всё было совсем тупо: там горизонтальные строчки битов одна под другой. Но он вроде рассчитан на стационарные сканеры, а не на фотоаппараты.
                  Ответить
          • Оказывается, есть ещё Aztec. В нём, кажется, всё тупо: улитка от центра квадрата.
            Ответить
        • > ISO

          Блин, почему твои стандарты такие дорогие? 200 швейцарских франков за пдфку...
          Ответить
    • PerlHP is an attempt to give Perl the same simplicity and hackiness that PHP has spent years trying to forget. It lets you put together simple dynamic web pages more quickly than writing them in plain Perl, and with less mental anguish than writing them in PHP. It is also cheerfully obfuscated, but luckily you don't need to actually look at it to use it.

      PerlHP started out as a joke, but it did turn out to be useful - for instance, I wrote this page using it. It can reduce both PHP and Perl programmers to incoherent rambling, which I also view as a success.

      It has its own homepage. Visit it for more information!

      https://wakaba.c3.cx/s/code/perlhp
      Ответить
      • #!/usr/bin/perl
         use PerlHP;
         <html><body>
         <%
         print "<h1>HTML output</h1>";
         header("X-Header: Custom headers");
         cookie("name","value",$expires,"/path",".domain.com",$secure);
         $safe_string=escape_html($unsafe_string);
         echo "<h2>PHP-style output</h2>";
         %>
         </body></html>


        Отсюда: https://wakaba.c3.cx/perlhp/PerlHP.html
        Ответить
      • Стоп, а PHP ведь и зародился как фреймворк на перле? История пошла по второму кругу?

        З.Ы. А нет, на сишке, если верить википедии.
        Ответить
        • Где-то было видео, где "Расмус" говорил, что "PHP" был дополнением к "Si", но никто не хотел писать на "Si", поэтому "PHP" становился полноценным языком программирования.
          Ответить
          • Тогда второй круг — это «Zephir», на котором разработчики фреймворка «Phalcon» пытались писать расширения для «PHP»?

            https://govnokod.ru/26733
            Ответить
          • >дополнением
            шаблонизатором
            Ответить
    • Давайте токсить друг друга. Я начну:

      — Fike, почему ты взял у меня с полки пирожок, но не сказал?
      — Ничего не поделаешь, атомарного коммита не существует.
      — А на 1:1 почему вчера не пришёл?
      — Проблема двух генералов, дурачок.
      Ответить
      • > — Проблема двух генералов, дурачок.

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

            Был свидетелем самозарождения целой стаи питузов на одном форуме программистов в интернете.
            Ответить
            • Мурмура́ция (от лат. murmuratio — «бормотание, жужжание, карканье») — явление скоординированного полёта огромных стай птиц (скворцов, галок, ворон и т. д.), образующих динамические объёмные фигуры переменной плотности.
              Ответить
              • Чаще всего термином «мурмурация» обозначают танцы ворцов.

                Так, ворцы, сбиваясь в грандиозные стаи, исполняют «танец ворцов», создавая смотриотично зожимающиеся и росжимающиеся облака.
                Ответить
              • > murmuratio

                https://github.com/aappleby/smhasher/blob/master/src/MurmurHash3.cpp
                Ответить
    • Нужно найти известного петуха на хабре. На аватарке у него длинные прямые волосы, похож на молодого священника. Работает (или работал) в Гугл.
      Ответить
    • https://habr.com/ru/post/599415/

      Питух нашёл какую-то «уязвимость», но как воспроизвести, разумеется, не написал. «Отправить с нулевого порта» - это что нахуй такое? Разьебать айфон и вызвать kernel panic - это считается уязвимостью?
      Ответить
      • > «Отправить с нулевого порта» - это что нахуй такое

        Ну тут же написано -- с девайса, которому айфон раздаёт инет. tcp.source_port == 0, вестимо.
        Ответить
        • Это точно уязвимость?
          Ответить
          • Конечно. Но для айфона весьма минорная т.к. вряд ли кто-то раздаёт инет недоверенным девайсам.

            А вот представь, если бы какая-нибудь циска зависала от подобного.
            Ответить
            • > Хуиска

              Какое оборудование ты имеешь в виду и что бы было? У нас она используется в компании. Если бы был такой баг, вряд ли кто-то бы эксплуатировал - никому это не выгодно.

              А вот если бы можно было ломать WiFi всего мосметро, то да.
              Ответить
              • > Если бы был такой баг, вряд ли кто-то бы эксплуатировал - никому это не выгодно.

                Ну, например, вырубить сеть организации, когда идут последние минуты закрытого аукциона. Или поломать связь во время переговоров о заключении контракта на постройку сети.
                Ответить
              • Ну да, я про провайдеров.

                Внутри локалки всем похуй, конечно. Вряд ли кто-то в 2021 открытый вайфай держит.

                Но в целом, не особо нормально когда роутер падает от трафика, который через него идёт.
                Ответить
      • > После этого был выпущен патч, который отключил возможность отправлять пакеты с порта 0, что делало невозможным атаку с устройств Apple. Однако воспроизвести атаку все также можно было с linux системы.

        Лол, в лучших традициях майкрософта и SMB...
        Ответить
    • Однажды давным давно, играясь с Паскалем, DOS графическим режимом и форматом BMP, заметил что формат ICO очень на него похож и немного отличается заголовком. Склеив их как получилось заметил что не могу проводником зайти в папку содержащую данную иконку. Т.е. Windows пытаясь отрисовать иконку завершала процесс который запустил отрисоку иконки. Просто рассказал друзьям, те ещё друзьям.
      А потом спустя 4 года мне показали експлойт, который использовал выход за границы памяти при неверном заголовке файла ICO и поднимал шелл на порту ХХХ. И самое прикольное было вставить неверную иконку в качестве Favicon при этом спрайт 16х16 оставить корректным, а неправильный заголовок расместить в другом спрайте, то просто посетив страницу с такой иконкой - ты открывал на порту ХХХ (заранее определялся при изготовлении иконки) открытый Telnet от имени администратора в полностью невидимом виде. до перезагрузки компьютера. Даже в списке процесов его небыло, использовалась память каких то драйверов вроде мышки.
      Причём использовались именно те биты которые я случайно нашёл 4 года назад и подумал - там можно просто закрыть любую программу, какая же тут ценность.
      Ответить
      • Кстати, я вам напиздел, понимаете, напиздюлькал, хи-хи, «Dos» я не застал, потому что он старше меня UwU
        Ответить
    • https://habr.com/ru/company/timeweb/blog/596403/comments/

      Что там была за питушня? Я ее добавил в закладки, значит там было что-то потешное.
      Ответить
      • А есть же зеркало хабра, где все статьи бекапят?
        Ответить
        • Есть...
          Ответить
        • sohabr
          Внезапно, ценная вещь, на нынешнем быдлебыдл full disclosure удаляют.
          Вообше если посвпоминать - даже нихуя не full
          Ответить
    • тут, оказывается, новый User-Agent завезли

      https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Sec-CH-UA

      Казалось бы, столько лет страдали из-за того, что эту ссанину даже человеку разобрать сложно, наверное, в этот раз сделали нормально?

      Sec-CH-UA: "(Not(A:Brand";v="8", "Chromium";v="98"


      буду проституткой.жпг
      Ответить
      • Вангую, что все браузеры релизнутся с одним и тем же UA: "Mozilla"; v="5", "Chrome"; v="51", "Safari"; v="537", "Edg", v="91"
        Ответить
        • Пока ещё нет. Этот заголовок уже реально используется в некоторых сборках. Реальный пример Файка не выдуманный, а настоящий.
          Ответить
          • > Реальный пример

            Randomizing order and string with escaped characters to ensure proper parsing and prevent ossification.

            О как.
            Ответить
      • Web - фрактал говна.
        Если подумать, User-Agent вообще нахер не нужен и более того, сами ебучие гоогле не любят, когда Vary: User-Agent
        Ответить
        • «Гугл» банит сайты за «клоакинг» (выдачу разных страниц разным юзер-агентам), но при этом сам в своих сервисах выключает половину функций, если зайти с некошерным юзер-агентом.

          Quod licet Iovi, non licet bovi.
          Ответить
          • За птичий жопинг
            Ответить
          • Клоа кинг это что-то о королях?
            Ответить
          • Как он детектит клоакинг?
            Ответить
            • Он изредка на некоторые страницы заходит не со своим юзерагентом, а с юзерагентами некоторых популярных веб-браузеров. Если сервер отдаёт другой контент, Гугл его может понизить в выдаче или ещё как-нибудь наказать. Сравнение, естественно, неточное (ибо запросы неидемпотентны и какие-то мелочи типа текущего времени могут обновляться).
              Ответить
              • А ебучий "LinkedIn" получается обходит эти проверки?
                Ответить
          • Гугл сукамразь, я зашёл с ангоглед хромиума, а он мне не разрешил экран пошарить!
            Ответить
        • > User-Agent вообще нахер не нужен
          Поэтому я за User-Agent:"ZX Spectrum"
          Ответить
          • Narod.ru раньше выдавал: «Server: ZX Spectrum».
            Ответить
          • User-Ag~: ZX Spec~

            да-да, знаю что спектрумы были задолго до мема с тильдой и восемью символами
            Ответить
    • https://dereferer.me/?ohBR4A2KZpjm2A99mmGRkmb-vo93re_04P-xq8eqE3W8
      Ответить
    • Det gick inte att leverera till följande mottagare eller grupper:

      Тупые уебаны отменили мне покупку билета на «Аэрофлот» (причём не сразу). Я отправил им письмо на [email protected] с вопросом какого хуя, они ответили мне «Get dick».
      Ответить
    • А куда пропал defecate plus plus?
      Ответить
      • Он же привился, вот его и скрючило нахуй! Кто тут у нас ещё прививался? Борманд? Вот и посмотрим, что с ним станет (или уже стало, если считать тот случай с носочками uwu).
        Ответить
        • Думаешь, вакцина вызывает дрейф гормонального фона?
          Ответить
          • Я думаю, что вакцина превращает человека в более радикальную версию самого себя. Вот бормандяша о себе в женском роде говорила, потом привилась и надела носочки.

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

                А если бы у меня не было броузера на телефоне? Было бы плохо...
                Ответить
                • Поставь два браузера.
                  Ответить
                  • Есть джва браузера: в одном скрипты дрочены, в другом рекламы заблочены.
                    Ответить
                  • Мои броузеры:

                    Badwolf
                    Basilisk
                    Chromium
                    Dillo
                    Palemoon (для I2P)

                    Но мне было нечего открыть...
                    Ответить
                    • Dillo вроде даже CSS не поддерживает? Им только сайт Столлмана смотреть.
                      Ответить
                      • Что такое dilldo?
                        Ответить
                        • Вот представь себе контроллер, где нихуя нет.

                          А теперь представь броузер, где даже «нихуя» нет, вот это dillo.
                          Ответить
                      • Да.
                        Ответить
                      • Дай ссылку на найт Столлмана. Он против CSS?
                        Ответить
                        • https://stallman.org/stallman-computing.html

                          >How I use the Internet

                          usually fetch web pages from other sites by sending mail to a program (see https://git.savannah.gnu.org/git/womb/hacks.git) that fetches them, much like wget, and then mails them back to me. Then I look at them using a web browser, unless it is easy to see the text in the HTML page directly. I usually try lynx first, then a graphical browser if the page needs it (using konqueror, which won't fetch from other sites in such a situation).
                          Ответить
                          • Какой поехавший дед )))
                            Ответить
                            • Дед как обычно смотрит в корень.

                              > usually fetch web pages from other sites by sending mail to a program
                              Кто тут клиент ГК для телеграма делал?
                              Чем по сути отличается чтение через телегу и чтение через почтовый клиент?
                              Ответить
                              • Так я тольк ГК так читаю. Но и ссылки, которые вы здесь кидаете, в превью смотрю.
                                Блядь, да я тоже поехавший???!!!
                                Ответить
                            • Я раньше тоже потешался над всякими дураками, которые там в Интернете не оставляют о себе информации.

                              А потом мне позвонили с незнакмого номера, и назвали по ФИО.
                              может, не такой уж Столллман и дурачок
                              Ответить
                              • Одна тян писала в Твитторе, что позвонили мошенники, представились сотрудниками банка. Её спасло, что они назвали не реальное имя, а файку, под которой она регистрировалась во «Вконтакте». Она сразу поняла, с кем имеет дело, и пожелала вечера в хату. А было бы реальное имя, она бы клюнула на наживку.
                                Ответить
                                • > пожелала вечера в хату
                                  Вот не понимаю этого. Тебя кинуть пытаются, а ты такой «здравствуйте, многоуважаемые»...

                                  Нужно было спросить, как под шконкой спится; как с параши есть, вкусно ли; может ли звонящий спрятать банку сгущёнки...
                                  Ответить
                                • Государство: "Мы заботимся о вашей конфиденциальности, потому заставляем каждый сайт спрашивать у вас разрешение перед установкой куки".

                                  То же государство: "Мы не можем поймать ботнетчиков, шифрователей, лохотронщиков, не можем закрыть ecatel, мы не знаем кто и как слил ваши данные тюремным разводилам, и поймать разводил мы тоже не можем. Извините".
                                  Ответить
                                • ВСЕГДА нужно класть трубку, когда звонят из банка. По какому бы вопросу ни звонили и с какого бы номера ни звонили. И перезванивать самому в банк по официальному номеру.

                                  Номер можно подделать. И СМС вам тоже могут перехватить, зарегистрировав фейковый номер как у вас где-нибудь в Зимбабве (подкупив оператора).
                                  Ответить
                                  • А еще нужно всегда переходить улицу на зелёный сигнал светофора, делать бекапы, и дважды в день чистить зубы.

                                    Но
                                    Ответить
                                    • Иногда я чистю зубы 1 раз в день. А бекапить мне нечего, к счастью.
                                      Ответить
                                • Некоторые тян «ВКонтакте» пишут «забавную» фамилию, вместо настоящей. Например, «Ресничкина», «Милая», «Ма», и так далее.
                                  Ответить
    • https://nitter.fdn.fr/demensdeum/status/1479554295297105921

      Передаю по значению:
      –— На собесе: «Даны два массива, в одном пики точенные, в другом члены дроченные. Объедините и найдите верблюда, используя алгоритм divide and conquer». Реальность: Таска hight, у каши «Агуша» в заголовке название «Фруто Няня», срочно исправить.

      —– Ну и как, исправила на фронте, потому что в бд уже ни у кого доступа нету?)
      Ответить
      • Вообще мы эту штуку тут мацаем очень давно уже, наверное потому, что это не шутка, а правда.
        Ответить
        • Ты видел, она там сиськи код показала?

          Естественно. Хуярим костыль: 
          item.name === "Агуша" && item.manufacturer === "Вимм-Билль-Данн"
          ? item.name
          : item.name = "Фруто Няня"


          Это же пиздец какой-то.
          Ответить
          • Через год там будет цепочка из семи названий, причем во всех семи местах, включая базу.

            Галерный энтерпрайз -- он ведь и правда такой.
            Ответить
            • Нарыл там ещё один комментарий: «Это ты чего без иммутабельгости? Геттер же надо добавить для name».
              Ответить
              • > иммутабельгости

                иммутабельgostи.

                Я пробовал недавно написать иммутабельную чисто функциональную сортировку пузырьком - херня какая-то нечитаемая получилась. Поэтому я против функциональной питушни (по крайней мере в Си)
                Ответить
                • > пузырьком
                  А теперь возьми какой-нибудь адекватный алгоритм. Основанные на Divide & Conquer обычно хорошо получаются. Тот же Mergesort, например.
                  Ответить
                  • Предлагаешь выбирать алгоритмы под парадигму? Ну типа "хммм, вот этот алгоритм имеет временную сложность O(log n) но он что-то хуево записывается в парадигма_name, лучше реализую алгоритм с временной сложностью O(n^2) который очень элегантно реализуется в рамках этой охуительно полезной парадигмы"
                    Ответить
    • https://odysee.com/@rossmanngroup:a/canon-thinks-its-own-ink-cartridges-are:a
      Какой багор )))
      Ответить
      • Наконец-то экранка с youtube, думал не уже дождусь.
        Еще нужны бегунки
        Ответить
    • Сегодня день рождения Петра Кащенко.
      Ответить
      • Всем похуй.
        Ответить
        • Ему удалось изменить отношение общества к психически больным: если прежде на таких людей смотрели, как на животных, то затем стало преобладать сочувствие и сострадание, желание помочь. Как доктор Кащенко хотел сделать советскую психиатрию лучшей в мире.

          В 1905 г.Петр Кащенко участвовал в революционных событиях в Москве, помогал раненым во время восстания на Пресне. В 1905—1906 гг. возглавил межпартийный Красный крест. Организатор и председатель первого в России Центрального статистического бюро для учёта психических больных.
          Ответить
      • Тут сраные милениалы собрались, чувак
        никто из них не был в SU.KASHENKO.LOCAL

        Впрочем, ничего не изменилось
        https://groups.google.com/g/fido7.su.kaschenko.local/c/ML9AnSXjchg/m/D6p1567L3s4J
        Ответить
        • Да я думаю, даже о «Кащепузии» никто не слышал.

          https://web.archive.org/web/20091219164711/http://kaschepuzia.kaschenko.ru/~kaschepuzia/index.php/Заглавная_страница
          Ответить
          • Я слышал. Я про эту хуйню с кащенитами когда-то на лурке вычитал.
            Ответить
            • Фразы «зойчем ви тгавите пейсателя», «гойловной моск», «поцчему ви спгашиваете», «торагой» наверняка встречались на сайтах.
              Ответить
              • >поциент
                >тель-авизор

                Там было полно великолепных синтаксиальных находок.
                Ответить
              • > «торагой» наверняка встречались на сайтах.

                Всегда так делаю.
                https://govnokod.ru/6763#comment133186
                Ответить
            • Вот тут много чего сохранилось:
              https://web.archive.org/web/20100329212059/http://kaschepuzia.kaschenko.ru/~kaschepuzia/index.php/Категория:Шизофазия


              И вот тут:
              https://web.archive.org/web/20100419233842/http://kaschepuzia.kaschenko.ru/~kaschepuzia/index.php/Категория:Поциенты
              Ответить
              • Прошу Вас принять срочные меры но выселению с жилого дома б-р Днепровский д. 8 и в частности со второго подъезда следующих жильцов.

                Кв. 22 — живут больные люди мешают жить мне тем, что психически ненармальные, разводят блох, тараканов и клопов и подбрасывают их мне, и ещё разводят коней и апстят под моими окнами.

                Кв. 23 — живут очень странные люди ни с кем не общаются, по ночам поют запрещённые песни, читают запрещённые книги.

                Кв. 25 — Слишком гордые и независимые, очень высоко себя ставят, хотя на самом деле они настоящее говно.

                Кв. 26 — живут постоянно новые люди и все какието выблядки и страшилы.
                Кв. 28 это вообще не люди
                Кв. 29. живут пъяницы и алкаши пъют, всё что горит и что пьянит
                Кв. 31 очень странные люди и мнительные исташные.
                Кв. 32 пъяницы и развратники и ещё ко всему воришки
                Кв. 33 живут какието пришельцы и у них всё время течёт с крыши на моё крышу и я не могу
                Кв. 34 люди вообще не живут а может и живут но я их не вижу
                Кв. 35 это пъяницы и развратники и вообще чёрт знае щто.
                Очень прошу вас срочно выселить этих людей с нашего подъезда и заселить хорошими людьми по моей рекомендации.

                С уважением Жарикова А. М
                Ответить
    • https://www.opennet.ru/opennews/art.shtml?num=56479

      Марак Сквайрс (Marak Squires), автор популярных пакетов colors (расцветка консоли node.js) и faker (генератор фиктивных данных для полей ввода), насчитывающих 2.8 и 25 млн еженедельных загрузок, разместил в репозитории NPM и на GitHub новые версии своих продуктов, включающие деструктивные изменения, целенаправленно приводящие к сбоям на стадии сборки и выполнения зависимых проектов. В результате действий Марака была нарушена работа многих проектов, включая AWS CDK, использующих указанные библиотеки - библиотека colors используется в качестве зависимости у 18953 проектов, а faker - у 2571.

      Эээ, у жабаскриптухов реально так принято, тянуть зависимости не из особого спецально огороженного места с проверенными версиями, в которых нихуя не сломано, а прям с гитхаба автора?

      У меня в контроллерах такой хуйни нет.
      Ответить
      • У тебя в контроллерах и расцветки консоли-то нет!
        Ответить
      • Какой багор )))
        Ответить
      • Комедия в двух актах:
        > Выложить код под MIT
        > Жаловаться, что корпорации используют код, не давая ничего взамен
        Ответить
        • Errata:
          Комедия "Стены плача хипстеров" в пяти актах:

          1. Выложить код под MIT на 3rd party площадки с длинными EULA
          2. Плакаться, что корпорации пользуются кодом, не давая ничего взамен
          3. Плакаться, что площадки пользуются пунктами в EULA
          4. Пользоваться кодом, который comes WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND
          5. Плакаться, что автор кода воспользовался пунктом лицензии
          Ответить
          • Прыщебляди соснули
            Ответить
          • > 4. Пользоваться кодом, который comes WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND

            Пользоваться кодом?

            Хотя... В коде для медицины или какой-нибудь ядерной энергетики, наверное, нет этой фразы. Недаром в большинстве лицензий капсом напоминается, что для этих областей их либу юзать нельзя.
            Ответить
            • --Почему у вас ёбнула ядерная станция и завис кардиостимулятор?
              --прыщебляди соснули
              Ответить
              • - Почему мой кардиостимулятор больше не срет в консоль с подсветкой?
                - ШВАБОДКА! ШВАБОДКА! ШВАБОДКА!
                Ответить
                • MS тоже не далеко ушел.

                  --Почему у вас левый хуй получил права администратора?
                  --Ну понимаете, этот сайберкриминал послал спешали крафтд пэкет.
                  --Так почему же вы ничего не сделали???
                  --Мы сделали: мы выпустили патч, который не позволяет продуктам Microsoft слать спешали крафтд пэкет
                  Ответить
                  • Это про яббло. Но что мелкософт, что яббло – всё хуйня!
                    Ответить
      • > Эээ, у жабаскриптухов реально так принято, тянуть зависимости не из особого спецально огороженного места с проверенными версиями, в которых нихуя не сломано, а прям с гитхаба автора?
        ЕМНИП, все пакеты там качаются из «npm», а в «npm» заливаются проверенные версии, в которых нихуя не сломано (типа таких: https://www.npmjs.com/package/is-eq-four), но абсолютно ничего не мешает автору залить туда что угодно.

        > В ответ на совершённые действия GitHub заблокировал доступ Марака к своим репозиториям (90 публичных + несколько приватных)
        Очень удобно!
        Ответить
        • ничто не мешает ставить говно с гитхаба напрямую. В питончике я как-то так делал для пет-прожекта, вроде и в npm можно
          Ответить
        • > но абсолютно ничего не мешает автору залить туда что угодно.

          Т.е. автор может в том числе и старые версии поменять, или выпилить их нахер? Там никак не проверяются контрольные суммы скачиваемой через "npm" хуйни, ну чтобы автор в старые версии троянов не понабрасывал?
          Ответить
          • Старые вроде никак изменять нельзя, но «npm install govno» ставит последнюю версию. И если в package.json или как там в этом говне зависимости указываются не стоит явная версия — тоже будет скачана последняя.
            Ответить
            • хрю:
              npm install <git-host>:<git-user>/<repo-name>

              https://docs.npmjs.com/cli/v8/commands/npm-install

              Наверное, оно качает из транка, но может можно ревизию передать через собачку.

              в package.json можно указать версию, а можно не указывать
              в package-lock явно указываются все версии
              Ответить
              • Спасибо, человек-джаваскриптер!

                > npm install <git-host>:<git-user>/<repo-name>
                Ну это совсем говно, как мне кажется, такое юзать вне тестового полигона для прототипирования — это премия Дарвина.

                Казалось бы, причём здесь «Go»…
                Ответить
                • ну вот я нашел багу в нужном мне пакете, форкнул его, и прямо свой гит и захуячил туда:) что мне, выкладывать его что ли?
                  Ответить
                  • > что мне, выкладывать его что ли?
                    Делать PR в исходную репу и ждать релиза же.

                    Или ты собираешься свой форк до конца дней поддерживать, мёржа говно из апстрима?
                    Ответить
                    • >Делать PR в исходную репу и ждать релиза же.
                      Это петпрожект, я бы хотел его в субботний вечер закончить:)

                      Потом-то я перейду на стабильную версию, конечно
                      Ответить
                      • > петпрожект
                        >>> вне тестового полигона для прототипирования
                        Ну.
                        Ответить
                • > оно качает из транка
                  > Ну это совсем говно, как мне кажется, такое юзать вне тестового полигона для прототипирования — это премия Дарвина.
                  Пиздец.

                  И PHPшников ещё ругали за то, что они всё говно складывали себе в репу.
                  Ответить
        • Комиты со срачем:
          https://github.com/Marak/colors.js/commit/074a0f8ed0c31c35d13d28632bd8a049ff136fb6

          https://github.com/Marak/colors.js/commit/5d2d242f656103ac38086d6b26433a09f1c38c75
          https://github.com/Marak/colors.js/commit/6bc50e79eeaa1d87369bb3e7e608ebed18c5cf26
          Ответить
          • looshch 6 hours ago
            хорош, нехуй бесплатно работать за этих охуевших!
            Ответить
            • glebfeklistov replied 11 hours ago

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


              Какой багор )))
              Ответить
          • да сука

            DennisCiba 8 hours ago
            Yeah, somone should create an open source project to color ASCII output thinking

            @Awilum
            Awilum 8 hours ago
            Yeah, somone should create an open source project to color ASCII output thinking

            I'm working on such project for PHP
            https://digital.flextype.org/thermage/

            I have idea to port it for JS.
            Ответить
            • Мне вот это понравилось:
              Dude.. how can you be mad for not receiving money from your code when you explicitly says at your license file that people don't need to pay you anything?
              
                  MIT License
              
                  Original Library
              
                      Copyright (c) Marak Squires
              
                  Additional Functionality
              
                      Copyright (c) Sindre Sorhus [email protected] (sindresorhus.com)
              
                  Permission is hereby granted, free of charge, to any person obtaining a copy
                  of this software and associated documentation files (the "Software"), to deal
                  in the Software without restriction, including without limitation the rights
                  to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
                  copies of the Software

              CНауТ это выше хорошо расписал.
              Ответить
              • Это точно так же, как с kik, только наоборот. Могу я попросить вас добровольно дать мне то, что вы давать не обязаны по нашему же общему соглашению? Нет? Получай пизды, ублюдок.
                Ответить
      • Интересно, что первое предупреждение о прекращении разработки было опубликовано больше года назад. В сентябре 2020 года Марак потерял всё имущество из-за пожара, после чего в начале ноября в ультимативной форме призвал коммерческие компании, использующие его проекты, финансировать продолжение разработки, иначе он обещал прекратить сопровождение, так как не намерен больше работать бесплатно. До инцидента последняя версия colors была выпущена два года назад, а faker - 9 месяцев назад.

        Что касается мотивов внесения в пакеты деструктивных изменений, то вероятно Марак пытается дать урок корпорациям, пользующимся трудами сообщества разработчиков свободного ПО, но ничего не возвращающим взамен, или привлечь внимание к переосмыслению обстоятельств смерти Аарона Шварца. Аарон покончил жизнь самоубийством после возбуждённого против него уголовного дела, связанного с копированием научных статей из платной базы данных JSTOR, отстаивая идею предоставления свободного доступа к научным публикациям. Аарону были предъявлены обвинения в компьютерном мошенничестве и незаконном получении информации с защищённого компьютера, максимальный срок наказания по которым составлял 50 лет лишения свободы и штраф в миллион долларов (в случае заключения судебного соглашения и признания обвинений Аарону предстояло отсидеть в тюрьме 6 месяцев).

        Считается, что Аарон на фоне депрессии не выдержал давления судебной системы и несправедливости выдвигаемых обвинений (ему грозило 50 лет тюрьмы лишь за то, что он скачал содержимое базы данных научных статей, которые по его мнению должны распространяться без ограничения).


        Какой прекрасный, образцово-показательный doublethink!
        Ответить
        • Столлман: Ко-ко-ко, нельзя использовать проприетарное програмное обеспечение, ко-ко-ко, ведь его В ЛЮБОЙ МОМЕНТ МОГУТ ЗАКРЫТЬ, ку-ка-ре-ку!!!!

          Хотя нельзя давать человеку 50 лет даже если он спиздил все научные статьи мира
          Ответить
          • Спиздил 4,8 миллионов статей — 50 лет.
            Расстрелял 77 человек — 21 год.

            Итого, жизнь человека приблизительно равна 26,2 тысячам научных статей.
            Ответить
            • Ну это в разных странах всё таки.
              Новержская жизнь не очень дорогая.
              Голландская вообще бесплатная (см "Сагава, Иссэй")

              Жизнь LGBTQJ3QQ4H7H2V флага в США стоит 15 лет
              (https://edition.cnn.com/2019/12/21/us/iowa-man-burns-lgbt-flag-church-trnd/index.html)

              ну про наши реалии я и шутить не буду
              Ответить
              • > was found guilty on Wednesday after tearing down and burning the flag which was flying at the Ames United Church of Christ in June.

                > found guilty of arson in the 3rd degree

                > person is guilty of Arson in the Third Degree when that person intentionally damages a building [or motor vehicle] by starting a fire [or causing an explosion].

                Я, конечно, не адвокат, но если флаг был не на здании, как это повреждает здание?
                Ответить
                • Сорвал флаг -- повредил здание. Американцы традиционно очень болезненно относятся к частной собственности (если ты не черный лутер, тогда тебе можно всё)
                  Ответить
                  • Story County Attorney Jessica Reynolds told KCCI since Martinez has a long history of harassment and was also charged as a habitual offender, he faced a harsher penalty.
                    "I believe him to be very dangerous," Reynolds said. "That's why my office recommended the maximum sentence."

                    Можем сыграть в угадайку в третий раз и предположить что он достаточно заебал прокуроров, чтобы ему натянули по абсурдному максимуму.
                    Ответить
                    • Вероятно заебал, и вообще он мудак, но он никого не убил.
                      Ответить
            • > Спиздил 4,8 миллионов статей — 50 лет.
              > Расстрелял 77 человек — 21 год.

              Расхуярил Ливию — нобелевская премия мира.
              Ответить
              • Как что-то плохое прямо. Дыра хуже воронежа была.
                Ответить
                • Любитель Обамы/Бидона детектед.

                  И главное казался приличным человеком: ругал тут соц. демов и всяких blmщиков.
                  Ответить
                  • Обаме выписали нобелевку за то, что он ниггер и комми, и за то, как ловко еврейская мамка его провезла через границу на натурализацию. И было это в 2009, за полтора года до благоустройства Ливии.

                    Ты бы еще про "Югославию" начал, чесслово...

                    Американский президент, выписавший хуйлу больше всех полезных санкций, 5 букв. Угадаешь?
                    Ответить
        • Смешно, но справедливости ради, научные публикации — этодругое. А именно:
          1) Няука финансируется из няших нялогов, но при этом статьи за пейволлом, что для простых людей, что для институтов
          2) Журналы несколько охренели, они берут деньги за доступ к публикациям и за публикации, и не платят за peer-review. То есть реально умудрились to eat a cake and have it too.
          Ответить
          • А кому принадлежат права на статью?
            Почему автор не может ее у себя на страничке разместить?

            Понятно, что журнал нужен для цитирования, но дальше что, права к журналу переходят?

            В XIX веке понятное дело только журнал мог распостранить статью, а теперь-то вроде это не трудно. Хуйнул в юзнет там или на рассылку, и все читают
            Ответить
            • Журналу, емнип. Деловое предложение:
              1) С тебя интеллектуальная собственность, peer review и $$$
              2) С меня циферки импакт-фактора
              Ответить
              • Годное предложение, но тогда так:

                Как только в журнале печатают корчевателя, то журнал тут же возвращает все деньги своим подписчикам с авторам. С процентами.
                Ответить
                • > Годное предложение
                  О, кажется нашёлся покупатель для моей коллекции NFT.
                  Ответить
            • > Почему автор не может ее у себя на страничке разместить?

              Потому что это всякие пиндексы Хирша это не повысит, а без них тебя не возьмут работать профессором, не дадут гранты, и будешь ты работать в макдачной.
              Ответить
              • дак нет, я печатаюсь в журнале, а потом у себя на страничке дублирую

                но уже понял, что статья принадлежит журналу теперь..
                ....

                а я могу свои мысли еще раз пересказать в иной форме?
                Ответить
                • Обычно есть лазейка, где люди выкладывают черновик, идентичный финальной версии статьи, в arxiv, но ссылаться на препринты в других статьях не комильфо, так что без журнала всё равно никак, если нужно отрастить научный кочан.
                  Ответить
                • > а я могу свои мысли еще раз пересказать в иной форме?

                  Журнал может подать на тебя в суд за плагиат со статьи, которая принадлежит им.
                  Поэтому можно увидеть в других статьях «используя методику опубликованную в статье [×××], мы получаем...»
                  Ответить
                  • А можно цитировать другие статьи?
                    А полностью можно?
                    Ответить
                    • Цитирование это как раз упоминание, где её можешь прочитать. Журналы очень не любят, когда ты включаешь текст цитируемой статьи. Можно спокойно получить рецензию оверквоттинг, бан «уменьшить количество цитируемого текста, оставив только абсолютно необходимую информацию»
                      А если оригинальная статья не у них публиковалась, то вообще заклюют, опасаясь обвинений в плагиате.
                      Ответить
          • Да, современная наука — это полный пиздец.
            Ответить
      • А я когда-то писал (правда, по-моему, не на говнокоде), что нормальный менеджер зависимостей должен держать локальную копию прямо в гите, чтобы ты мог в любой момент выкачать исходники, спуститься в бункер и спокойно собрать проект на фоне ядерного армагеддона. И обновление должно случаться следующим образом: билд, скачивание свежей версии, снова билд. И только если ничего не сломалось и все тесты проходятся, вкоммичиваем репозиторий к себе.
        Тут же налетели питухи «кококо дублирование кода расходование пространства на хранение проще всегда свежее выкачивать из всегдадоступного вечного репозитория»
        Ответить
        • так вроде у NPM есть какой-то говнокеш локальный, не?
          Ответить
          • говнокеш хранится некомпактно, поэтому его коммитить - довольно быстро проебать быстродействие гита
            Ответить
      • https://abc7ny.com/suspicious-package-queens-astoria-fire/6425363/

        ой бляяяядь
        Ответить
        • криворукий
          Ответить
          • Возразить по существу конечно не могу, но мне все-таки приятнее, когда ко мне обращаются «Fike»
            Ответить
      • > разместил в репозитории NPM и на GitHub новые версии своих продуктов,
        > включающие деструктивные изменения, целенаправленно приводящие к сбоям на стадии сборки и выполнения зависимых проектов

        Гений-диверсант! Требую выдать ему премиум-аккаунт на ГК и пожизненный запас вореций!

        >faker (генератор фиктивных данных для полей ввода),

        Ещё и специалист по генерециям.
        Ответить
    • http://subd.vtik.net/reg.php?lan=rus&konference=18

      тут прекрасно всё: от "konference", до
      var total = 0;
      function add_new_author(){
         total++;
          if (total > 5) {
        alert('Вы добавили максимум авторов к статье');
      } else {
          $('#kol_authors').remove();
         $('<div class="alert alert-info"><h3>Автор №'+total+'</h3></div>')
         .attr('id','autor_'+total)
         .append(
              $('<div>')
              .attr('class','form-group')
              .append (
                  $('<label>ФИО (полностью) *</label>')
                  .attr('class','col-sm-4 control-label')
              )
              .append(
                   $('<div>')
                  .attr('class','col-sm-4')
                  .append(
                      $('<input type="text" class="form-control" placeholder="ФИО" required />')
                      .attr('id','author_fio_'+total)
                      .attr('name','author_fio_'+total)
                  )
      внутри

      Ротоёб или Иканус бы наверняка еще и сайт им сломали
      Ответить
    • https://stackoverflow.com/a/70557518

      As stated by others, this is caused by a change in the collections interface starting with Python 3.10. As far as I can see there are three options to mitigate this issue so far:

      - Revert to Python 3.9.
      - If the error occurs in a third-party library, try to update this library first (pip install <package> --upgrade).
      - Patch the code manually.


      да что тут комментировать-то в общем-то блядь
      Ответить
      • Вопросы уровня "otvety.mail.ru" пришли в питон, и скоро его поглотят. Надо бы с него свалить.
        Ответить
        • Давайте вместо `питон' говорить `притон'.
          Ответить
          • прион же. Видишь, какая губка у человека в мозгу
            >Postgress
            Ответить
      • > change in the collections interface
        > Python 3.10

        Какое семантическое версионирование )))

        Там реально что-то поломали прямо в минорной версии?
        Ответить
        • Ну а как еще я вышел на этот ответ в стековерфлоу
          Внутри они может системные библиотеки и проапдейтили, но рантаймы же блядь существуют для того чтобы девелоперам надо было ебаться как можно меньше, а не наоборот. Вся инфраструктурная хуйня для приложений, от ядра ос до питонов, должна следовать простому базовому правилу "конечный пользователь не должен страдать и замечать обновлений".
          Ответить
          • Причём тут костыль вообще бесплатный был и никому не мешал, насколько я понимаю -- тупо реэкспорт нескольких имён в старый модуль... И удалили его чисто с психу, что никто не переходит.
            Ответить
            • Просто нет аннотаций @Deprecated как в Jawa. Были бы аннотации - дожило бы как минимум до семнадцатой версии.
              Ответить
              • Типа как Vector, Hashtable, и что там еще депрекейчено последние двадцать семь лет?
                Ответить
                • Поминая моего уже выселенного соседа снизу

                  https://en.wikipedia.org/wiki/Compulsive_hoarding
                  Ответить
                  • Да ладно бы копили, они же ссут в будущее. Генерики хуёвые почему?
                    Потому что код 1996-го года...
                    Ответить
                    • Да ладно бы просто поддержка каких-то старых штук, они же там реально поехавшие деды, которые знают лучше тебя что тебе нужно, просто умело мимикрируют под адекватных. Они алиасы не вводят двадцать лет не потому что это что-то сломает, а потому что ХАРАМ.

                      Поэтому если у тебя не дай бог два одинаковых имени в разных пакетах, один из классов в своем файле ты будешь указывать по FQCN (вместо того чтобы дать ему какое-то внятное название).
                      Ответить
                  • Предлагают лечить с помощью CBT.
                    Ответить
                • > Vector, Hashtable, и что там еще депрекейчено последние двадцать семь лет?

                  А зачем их удалять? Они что кому-то мешают?

                  @Deprecated зачастую выступает маркёром, что есть альтернатива см. йажа.утил.конкурент.*
                  Но в целом код с Vector, Hashtable вполне нормален.
                  Ответить
          • > должна следовать простому базовому правилу "конечный пользователь не должен страдать и замечать обновлений".

            Анскильное Отребье и Выблядки.

            Линуса на них нет:
            Mauro, SHUT THE FUCK UP!
            
            It's a bug alright - in the kernel. How long have you been a
            maintainer? And you *still* haven't learnt the first rule of kernel
            maintenance?
            
            If a change results in user programs breaking, it's a bug in the
            kernel. We never EVER blame the user programs. How hard can this be to
            understand?
            
            To make matters worse, commit f0ed2ce840b3 is clearly total and utter
            CRAP even if it didn't break applications. ENOENT is not a valid error
            return from an ioctl. Never has been, never will be. ENOENT means "No
            such file and directory", and is for path operations. ioctl's are done
            on files that have already been opened, there's no way in hell that
            ENOENT would ever be valid.
            
            > So, on a first glance, this doesn't sound like a regression,
            > but, instead, it looks tha pulseaudio/tumbleweed has some serious
            > bugs and/or regressions.
            
            Shut up, Mauro. And I don't _ever_ want to hear that kind of obvious
            garbage and idiocy from a kernel maintainer again. Seriously.
            
            WE DO NOT BREAK USERSPACE!
            
            Seriously. How hard is this rule to understand? We particularly don't
            break user space with TOTAL CRAP. I'm angry, because your whole email
            was so _horribly_ wrong, and the patch that broke things was so
            obviously crap. The whole patch is incredibly broken shit. It adds an
            insane error code (ENOENT), and then because it's so insane, it adds a
            few places to fix it up ("ret == -ENOENT ? -EINVAL : ret").
            
            The fact that you then try to make *excuses* for breaking user space,
            and blaming some external program that *used* to work, is just
            shameful. It's not how we work.
            
            Fix your f*cking "compliance tool", because it is obviously broken.
            And fix your approach to kernel programming.
            Ответить
            • Да. Этот текст в свое время катализировал мое прозрение.
              Ответить
            • справедливости ради, errno(3) и правда сборище говна
              https://man7.org/linux/man-pages/man3/errno.3.html

              EXFULL Exchange full, блядь.

              Кстати, все же знают про ENOTTY и sendmail?

              Правда, MS со своим HRESULT тоже сосет тунца.
              несуществует универсальгых кодов ошибок
              Ответить
              • Жазу машинкасы емес - Not a typewriter - Wikipedia
                Ответить
        • https://mail.python.org/archives/list/[email protected]/thread/EYLXCGGJOUMZSE5X35ILW3UNTJM3MCRE/

          Python 3.9 introduces many small incompatible changes which broke tons
          of Python projects, including popular projects, some of them being
          unmaintained but still widely used (like nose, last release in 2015).

          ----------

          Хорошо, что у языка нету стдарта, как у скучных крестов
          Ответить
          • Там всё очень хуёво.

            Всё большее число либ оккупируют хипстерасы, которые меняют систему сборки на meson.

            Сам meson постоянно обновляется и требует всё более новых версий пирдона.

            В итоге либу невозможно собрать на Windows XP CentOS. То есть нужно руками ставить последнюю версию.
            На XP вообще красота, т.к. последняя рабочая версия Пирдона 3.4.

            Я уже кошмарный ад autotools начинаю вспоминать с любовью.
            Ответить
            • autotools куда лучше питонушни. Им хоть с точки зрения пользователя относительно просто пользоваться, а притон представляет собой пирдоль скорби и для разработчика и для пользователя.
              Ответить
              • Они хотя бы портируемые. Нет, конечно cmake куда лучше чем autotools.

                Но менять их на Пирдон?

                Портировать эту циклопическую срань на какую-то экзотическую платформу чтобы просто собрать там сишную либу? Увольте.
                Ответить
                • Именно поэтому я за m4: https://govnokod.ru/27889#comment752056
                  Ответить
                  • Ага, помню этот забавный отсос притоношлюх.
                    Там уже плюс стоит.
                    Ответить
              • ./configure && make && make install:)

                Классический юникс (ну гнусня не совсем классический, но уже почти классика) это вообще кайф.

                * Внятные форматы/тулы, которые за тридцать лет обросли документацией, книгами, коммунити, и можно любую проблему решить, а не слушать нытье хипстоты на SO
                * В них решены в прошлом веке решили многие проблемы, которые джаваскриптеры только сейчас тужатся решать.
                Ответить
                • Как-то стыдливо опустил шаг с пердолингом выкачивания из портов.
                  Ответить
        • Вроде как в 3.[что-то < 5] их перетащили в collections.abc и предупреждали, что в будущем уберут нахрен из просто collections, но за cколько то минорных версий всем было похуй.

          Во: Deprecated since version 3.3, will be removed in version 3.9:

          Это с 12 года задепрекейчено
          Ответить
          • > перетащили в collections.abc и предупреждали, что в будущем уберут нахрен из просто collections

            Вот так вот из-за своих идеологических чисток и растеряют всех юзеров... Кому-то реально мешал этот десяток строчек с ре-экспортом старых имён? Неимоверно сложно было обновлять и поддерживать файл, который с тех пор ни разу не менялся (т.к. новые имена в старое апи добавлять уже не надо)?
            Ответить
            • > Кому-то реально мешал этот десяток строчек с ре-экспортом старых имён?
              Твой пост дискриминирует людей с OCD.
              Ответить
          • У нас в кодовой базе тоже есть задепркейченный код с комментами // remove in 2012, всем опхуй как ты понимаешь

            Нужно инструментить процесс комиляции, чтобы компиляция и вызов задепрекейченного кода вызвали sleep 17 минут, иначе ничего не поменяется

            Долбойоби до сих пор на 2.7 сидят
            Ответить
            • Ну собственно а зачем править код, который годами не меняется и не вызывает боли в жопе при поддержке? Лежит себе и лежит.
              Ответить
              • Они просто молодые, руки чешутся что-то улучшать.

                Вроде бы простое правило: работает — не трогай.
                Ответить
                • Ребята, не стоит вскрывать эту тему. Вы молодые, шутливые, вам все легко. Это не то. Это не Чикатило и даже не архивы спецслужб. Сюда лучше не лезть. Серьезно, любой из вас будет жалеть. Лучше закройте тему и забудьте, что тут писалось. Я вполне понимаю, что данным сообщением вызову дополнительный интерес, но хочу сразу предостеречь пытливых - стоп. Остальные просто не найдут.
                  Ответить
          • Отбросив всю обычную общую логику про минорные версии и прочее: как я, пользователь чужого кода, пересевший с 3.9 на 3.10 системным обновлением, должен об этом узнать и спланировать свою ситуацию, если мне выводится об этом ноль сообщений на 3.9?
            Ответить
            • Ну тут ещё факап "системного обновления", конечно. Мейнтейнеры должны были заметить, что версия не минорная, а ломающая и отложить её до следующего LTS'а лет на 5.
              Ответить
              • Ну здесь уже моя собственная ответственность за использование rolling release distro. Тем не менее, догадаться об этой хуйне возможно только одним путем.
                Ответить
                • Гляжу, ты в русскую рулетку играть любишь
                  Ответить
                • > использование rolling release distro

                  Зато ты ощущаешь себя частью сообщества! А не просто обычным юзером.
                  Ответить
                • Давай иди уже до конца, собери свою линукс фром скрач. Компилируй всё сам.


                  В моем децтве кстати встречалось в прыщах самосборное говно, так как докеров не было, виртуалок тоже, а не обновлять же весь дистр ради свежего пехепе.
                  Но давно уже так никто не.

                  Ну и тогда в дистре было три скрипта и четыре программы, отладить это было несложно
                  Ответить
                  • еще никогда столлман не был так близок к раскрытию его файки
                    Ответить
                  • > в прыщах самосборное говно
                    Такого вообще не должно быть, не за это щеки надували, когда придумывали суппозитории.
                    Ответить
                    • > Репозиторий
                      Фу, прыщеговно
                      > App Store
                      *excited soyjak*
                      Ответить
            • Если дистриб делал не "говноед, ослов ебавший", то с 3.9 на 3.10 он просто так не перейдет.

              Ниразу не видел шоб прыщи перешли с ``3.x`` на ``3.x+1`` без обновления версии дистра
              Ответить
              • Забавно, что даже в убунте 3.9. Что там у файка было то? Генту в продакшене?
                Ответить
                • Манжаро же
                  Ответить
                  • Т.к. разрешение зависимостей NP-полная задача, с точки зрения математики нет смысла использовать LTS дистрибутивы, и нужно запускать eventually inconsistent кассандру на производной рача?
                    Ответить
            • Приблизительно так же, как типичный пользователь чужого кода узнаёт и планирует ситуацию удаления left-pad из репозитория или вкомичивания нерабочей версии.
              Ответить
              • лефтпад не депрекейтили
                Ответить
              • Стоило ngk ёбнуть, как его прокачали и даже запилили всяких петухов.

                Пока гром не грянет...
                Ответить
            • Ты что, в доке об этом уже 10 лет написано!

              На самом деле, разрабы этого чужого кода тоже это не заметили по той же причине, что и ты... Скорее всего, им даже IDE не подсветило, что эти импорты устарели. Потому что аннотации расставлять -- не барское дело.
              Ответить
    • Перекат!

      https://govnokod.ru/27942
      https://govnokod.xyz/_27942/
      Ответить
    • https://threadreaderapp.com/thread/1475518692041510915.html
      для скилььных
      Ответить
    • https://twitter.com/Shitty_Future
      ржу третий час
      Ответить

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