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

    0

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

    #81: https://govnokod.ru/27280 https://govnokod.xyz/_27280
    #82: https://govnokod.ru/27284 https://govnokod.xyz/_27284
    #83: https://govnokod.ru/27296 https://govnokod.xyz/_27296
    #84: https://govnokod.ru/27336 https://govnokod.xyz/_27336
    #85: https://govnokod.ru/27381 https://govnokod.xyz/_27381
    #86: https://govnokod.ru/27405 https://govnokod.xyz/_27405
    #87: https://govnokod.ru/27429 https://govnokod.xyz/_27429
    #88: https://govnokod.ru/27432 https://govnokod.xyz/_27432
    #89: https://govnokod.ru/27435 https://govnokod.xyz/_27435
    #90: https://govnokod.ru/27439 https://govnokod.xyz/_27439
    #91: https://govnokod.ru/27449 https://govnokod.xyz/_27449
    #92: https://govnokod.ru/27460 https://govnokod.xyz/_27460
    #93: https://govnokod.ru/27463 https://govnokod.xyz/_27463
    #94: https://govnokod.ru/27466 https://govnokod.xyz/_27466
    #95: https://govnokod.ru/27473 https://govnokod.xyz/_27473
    #96: https://govnokod.ru/27478 https://govnokod.xyz/_27478
    #97: https://govnokod.ru/27484 https://govnokod.xyz/_27484
    #98: https://govnokod.ru/27495 https://govnokod.xyz/_27495
    #99: https://govnokod.ru/27504 https://govnokod.xyz/_27504
    #100: https://govnokod.ru/27508 https://govnokod.xyz/_27508
    #101: https://govnokod.ru/27511 https://govnokod.xyz/_27511
    #102: https://govnokod.ru/27518 https://govnokod.xyz/_27518
    #103: https://govnokod.ru/27526 https://govnokod.xyz/_27526
    #104: https://govnokod.ru/27534 https://govnokod.xyz/_27534
    #105: https://govnokod.ru/27544 https://govnokod.xyz/_27544
    #106: https://govnokod.ru/27552 https://govnokod.xyz/_27552
    #107: https://govnokod.ru/27554 https://govnokod.xyz/_27554
    #108: https://govnokod.ru/27557 https://govnokod.xyz/_27557
    #109: https://govnokod.ru/27581 https://govnokod.xyz/_27581
    #110: https://govnokod.ru/27610 https://govnokod.xyz/_27610

    Запостил: nepeKamHblu_nemyx, 03 Сентября 2021

    Комментарии (605) 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://govnokod.xyz/_27610/#comment-656560

      > а пользователям на это глубоко похуй: какая тебе разница, через что твой жёсткий диск скорраптит криптовымогатель — через дыру в «SMB» или через «Shellshock»?

      MS может отказаться чинить дыру в SMB в Windows XP, сославшись на неподдерживаемость старой винды. А если некий старый дистрибутив Linux, BSD или еще чего, у тебя есть возможности, чтобы что-то там починить, несмотря на.

      > В отличие от попен-сорсных поделок, за уязвимости в коммерческих приложениях компания расплачивается прибылью и репутацией

      Для опенсорсных поделок компания тоже расплачивается прибылью и репутацией, если она оказывает коммерческую поддержку к этим опен-сорсным поделкам

      > В «closed source» несколько другая культура: там для улучшения качества продукта принято не самому править код, а отправлять баг-репорты, краш-репорты и телеметрию.

      Багрепорты и крашрепорты (иногда и телеметрию) я и в опенсорс отправлял, если что.
      Ответить
      • Конечно не открывается. Хуйню какую-то обсуждаете с километровыми комментариями, заебался пролистывать.
        Ответить
    • https://govnokod.ru/27610#comment668260
      > Только в реальности от этой простоты нет ни малейшего толка: никто не занимается аудитом опен-сорсных проектов, за исключением редких исключений (в большинстве случаев — когда юзвери скинулись на профессионального аудитора).

      Неправда.

      Поиском уязвимостей занимаются многие крупные корпорации, которые используют данный опенсорсный софт.
      Ответить
    • Блин, вот я в теории могу selinux'ом тонко разрулить что к чему имеет доступ, но в итоге вся гуйня сольётся в едином экстазе на одном X-сервере.

      Придётся запускать каждому из них по кефиру чтобы они друг к другу не лезли в окна да буфер обмена? Но тогда получится ёбаная матрёшка или у окон от одного домена безопасности не будет работать буфер ;(

      Какой-то тлен и безысходность.
      Ответить
      • Для каждого приложения надо создавать своего пользователя.

        Это называется «Sandboxing», я узнал это из Gentoo-wiki.
        Ответить
        • > пользователя

          Это здесь вообще не при делах. Если ты от разных юзеров на одном Х-сервере наделаешь окошек, то они все будут лазить друг к другу.

          А остальные права (кроме иксов) можно и для одного юзера разрулить (или вообще в контейнер/виртуалку загнать).
          Ответить
      • В qubes это как-то порешали, можно посмотреть как.
        Ответить
        • virtualbox тоже как-то прокидывает окошки из внутренней оси во внешнюю. Но боюсь что и там и там завязано на конкретный гипервизор.
          Ответить
          • Поэтому я за отдельные ПК или ноуты. Один MacBook, один ноут на Windows, десять ноутов на Linux-ах.
            Ответить
      • выдай каждому по отдельному DISPLAY

        а вот как миксовать аутпут надо подумать, может придется иметь разные мониторы.

        А вообще какой session 0 isolation ))
        Ответить
        • В принципе, даже фаерфокс себя нормально в кефире чувствует. Правда ему пришлось оконного менеджера за компанию запускать, иначе менюшки под главное окно проваливаются.

          З.Ы. У хромиума даже без wm всё работает.
          Ответить
          • Что за Кефир, которого вы всё время обсуждаете?
            Ответить
          • Я боюсь что это единственный способ.

            Каждому сокету для связи с X11 права отдельного юзера, или каждому в домашнюю папку свою .Xauthority и всё.


            Находил статью как петух сделал мультисит из одной машины.

            DISPLAY это совокупность скрина (монитор+видеокарта), клавы и мыши.
            У него несколько карт, и куча мышей и клав.

            Он собрал такие диспели (прописав их в xorg.conf), и получил реально разные рабочие места
            http://www.linuxtoys.org/multiseat/multiseat.html
            Ответить
            • Иксы вообще охуенный конструктор, и современные юниксоиды уже и забыли наверное, какие штуки можно было с ними делать

              Например можно поставить несколько серверов приложений, на каждом запустить DM.
              Можно в каждом DM прописать другие, чтобы они умели форвадить клиентов

              Один из DM настроить на ответы на BroadcatQuery.

              Потом включаешь бездисковую станцию с иксами (по сути X терминал), он бродкастом находит DM, и рисует окошко входа и список серверов

              Пользователь выбирает сервер, и логинится туда.

              Получается как RDS ферма с брокером, для какого-нить класса вообще збс
              Ответить
            • > реально разные рабочие места

              – у них что-то не то с social distancing
              Ответить
              • Экономят место

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

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

                          – которые берут джунов и пилят госзаказы?

                          кстати, вот по этому поводу начальника транспортного цеха было бы интересно послушать
                          Ответить
                          • Д++ вроде богатый, не?

                            Я просто вспомнил как в моей молодости во всяких "бизнес центрах класса F", переделанных из старых советских НИИ, сидели такие вот маленькеи веб студии из двух человек, и делали сайты прачечным, и хостили их на valuehost, и вот у них обычно с санитарными нормами был швах
                            Ответить
                            • > valuehost
                              Хорошо хоть не на http://govnohost.info/. Хотя разница, конечно, невелика…
                              Ответить
                              • на юниксе предлагают, макака должен заценить
                                Ответить
                              • панель управления говноуслугами.
                                Ответить
                            • д++ может и богатый, а вот про его фирму я не уверен

                              > делали сайты прачечным
                              > с санитарными нормами был швах

                              какая постирония )))
                              Ответить
    • Кстати, а получается display manager окошко логина рисует вообще напрямую? Иксов и вейленда в этот момент ещё нету. Или я туплю?
      Ответить
      • Иксы есть конечно. Он либо их запускает сам, либо цепляется к существующим, либо они к нему цепляются
        Ответить
        • Лол, gdm оказывается вообще временный вейланд поднимает на время логина. А lightdm да, временные иксы.
          Ответить
          • Я не разбираюсь в отношениях вялого с гномом.

            `xdm(1)` либо сам запусакет Xorg (local display) либо цепляется к удаленному (remote display) либо принимает запрос по протоколу XDMCP и рисует на нем окошко

            https://www.x.org/releases/X11R7.6/doc/man/man1/xdm.1.xhtml

            xdm offers display management two different ways. It can manage X servers running on the local machine and specified in Xservers, and it can manage remote X servers (typically X terminals) using XDMCP (the XDM Control Protocol) as specified in the Xaccess file.

            Он еще может направить тебя на другой xdm (XDMCP Indirect)

            http://www.chiark.greenend.org.uk/~peterb/uxsup/project/xdm-socket/

            >временные
            а зачем временные?

            systemd стартует dm
            dm запускает иксы и пускает в них сессию
            при выходе из сессии иксы завершаются, dm их перезапускает
            не?
            Ответить
            • Да, если не прыгает с иксов на вейланд или обратно, то действительно не временные (пид не поменялся).

              > сессию

              Я же правильно понимаю, что "сессия" -- это просто батник, который поднимает оконный менеджер, всякие панельки и прочее говно?
              Ответить
              • Что такое «иксы»?
                Ответить
                • Xorg
                  Ответить
                  • > Xorg (Русский) - ArchWiki - Arch Linux

                    Ясно.
                    Ответить
                    • TrapOS
                      Ответить
                      • Почему тогда Лолечка за Арч Линукс?
                        Ответить
                        • А Лолечка типа не трап?

                          Пацан сидит с женским ником и женским аватаром, не?
                          Ответить
                          • Теперь понятно, почему Лолечка так ненавидит других трапов: конкуренция.
                            Ответить
                          • Согласен.
                            Ответить
                          • > женским ником

                            Дай определение женскому нику.

                            > и женским аватаром

                            Вот блин, совсем забыл, что настоящий мужик ставит на аватарку только другого настоящего мужика, и потом весь форум любуется на жопу/хуй этого самого настоящего мужика. Другие (менее мужские картинки, т.е. те, на которые не возбуждается guest6), как и любое проявление симпатии к слабым мужчинам без членов (женщинам) – это проявление слабости, а настоящий мужик должен не иметь слабостей. Всё правильно говорю, или я упустил какие-то нюансы?
                            Ответить
                            • Про аватарку принято. Лучше женская аватарка, чем хуй. Но аниме — говно, поэтому лучше другую женщину поставь.
                              Ответить
                              • > Но аниме — говно

                                Во первых — нет.

                                Во вторых, вообще-то это не «аниме», а какой-то милый и прикольный рисунок из интернета (статичная картинка, не анимация). При чём тут вообще аниме?

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

                              именно по этому я за "rotoeb"
                              Ответить
                          • > женским аватаром

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

                            То есть я видел его в пакетах у слаки, но никогда не задумывался, что это за язык

                            А в генте портадж на питоне
                            Ответить
                            • А я его впервые увидела в скриптах от игры про Чапаева и Петьку. Мне тогда показалось, что это какая-то русская разработка (расширения "ру" и "рус").
                              Ответить
                              • Я в квест играл малость, но чото как-то мимо этой питушни прошел

                                Решил погуглить про питон там, и нашел смешное
                                https://www.cyberforum.ru/python-beginners/thread2346140.html
                                Ответить
              • Я бы сказал, что это зависит от DM.

                ``xdm`` имеет ресурс DisplayManager*session

                −session session_program
                Specifies the value for the DisplayManager*session resource. This indicates the program to run as the session after the user has logged in.

                А что туда записать -- дело твое
                На дебиане там прописан
                https://manpages.debian.org/bullseye/x11-common/Xsession.5.en.html

                Можно прописать туда session manager (удобно выбирать окружение):
                https://www.x.org/releases/X11R7.6/doc/man/man1/xsm.1.xhtml

                Какие-то DM в каких-то DE могут вообще иметь свою собственную машинерию
                Ответить
          • > lightdm

            Лол. Единственный реально используемый вклад Canonical в open-source.
            Всё остальное (mir, unity, upstart) сдохло. Или я что-то забыл?
            Ответить
            • > Или я что-то забыл?

              apparmor?

              З.Ы. Его не они начинали пилить, но до космонавта он вроде никому особо не интересен был.
              Ответить
            • snap
              Ответить
              • Ну снап -- спорная вещь, очень сильно конфликтует с классическим подходом к репе. Зато там свежатина, да.
                Ответить
                • а lightdm?

                  Вообще чем это всё лучше xdma? Круглыми уголками?
                  Ответить
    • Гет!
      Ответить
    • Кстати, почему все так не любят «systemd»?
      Это же удобный, многофункциональный, консистентный и унифицированный инструмент, который позволяет эффективно решать распространённые проблемы.

      Понятно, конечно, что утёнок душит выкидывать тонны ущербных говноскриптов из «/etc/rc0.d», но взрослеть-то нужно.

      Разговоры про «философию Unix» и «Unix way» лучше оставить прыщавым подросткам: это им приличествует разводить срачи о том, чьи скрипты православные, а чьи — ересь. Взрослым людям ОС нужна для эффективного решения задач, а не для споров про философию и подход.
      Ответить
      • Тебе приятно, что «PID 1» занят какой-то питушнёй на 500к+ строк хуёво-лапшичного говнокода, который должным образом никто не проверяет, и который при этом занимается ещё кучей всякой пижни?

        Лично мне – нет, именно поэтому я за «OpenRC».
        Ответить
        • А какая мне разница, чем там занят какой-то «PID 1», если он выполняет то, что мне нужно от системы, и делает это хорошо?
          Ну а утверждение о том, что его код никто не проверяет вообще смешно: это относится вообще практически к любому опен-сорсному ПО.
          Ответить
          • > А какая мне разница, чем там занят какой-то «PID 1»

            Если никакой, то поставь Винду, ведь...

            > он выполняет то, что мне нужно от системы

            И не выёбывайся.

            > и делает это хорошо

            Не хорошо, а хуёво и неэффективно.

            > это относится вообще практически к любому опен-сорсному ПО

            В портянке говнокода на 500 строчек кода найти уязвимость заметно проще, чем в портянке говнокода на 500000 строк кода.

            А теперь хрюкни и обнови шиндошс, или что ты там делаешь обычно.
            Ответить
            • ты в курске, что ты на Полину нахрюкиваешь?!
              Ответить
              • Нет, это «ISO», мой злейший враг, враг всего ПРЫЩЕМИРА, критик пресвятого линакса.
                Ответить
                • > критик пресвятого линакса
                  Ну почему же? Я за «GNU/Linux», когда он эффективно решает мои задачи.

                  Критикую я иррациональную религиозную ненависть к хорошим, в общем-то, инструментам.
                  Ответить
                  • > Я за «GNU/Linux», когда он эффективно решает мои задачи.

                    Т.е. когда в нём отсутствуют поделия сумрачного гения Поттеринга? А какой у тебя DE стоит? GNOME? Если не гном, то причины, по которым люди не ставят системзду, тебе знакомы. А если всё-таки гном, то это многое объясняет.
                    Ответить
                    • > А какой у тебя DE стоит? GNOME?
                      Зачем мне DE на серверах? Управлять сервером мне гораздо быстрее и удобнее через консоль. Прописать «systemctl start service_foo» эффективнее, чем рыться в менюшках.
                      Ответить
                  • > Критикую я иррациональную религиозную ненависть к хорошим, в общем-то, инструментам.

                    Правильно ли я понимаю, что ты считаешь хорошим инструментом "Microsoft Visual Studio"? Моя ненависть к этому инструменту несет не религиозный характер, и не связана с тем, что это продукт от "Microsoft". Я ненавижу поделки от "JetBrains" примерно так же сильно, и примерно по тем же причинам.
                    Ответить
                    • >Правильно ли я понимаю, что ты считаешь хорошим инструментом "Microsoft Visual Studio"?

                      Вообще инструмент может быть "хорошим" только для какой-то задачи.
                      Молоток хорош для забивания гвоздей, а для зачистки проводов не очень.

                      Для разработки на C# или VC++ под винду Visual Studio вполне хорош, а для LISP вероятно нет. А для программирование на "си" под микроконтроллеры -- совсем нет.

                      Точно также Intellij Idea отличный IDE именно для Kotlin, а вот нужно ли писать на Ruby в RubyMine -- вопрос открытый и весьма спорный

                      > несет не религиозный характер
                      ой, ну ладно)) Кажется что бы MS ни сделал, обитатели ЛОРа это обосрут
                      Ответить
                      • > ой, ну ладно)) Кажется что бы MS ни сделал, обитатели ЛОРа это обосрут

                        Ну вот Microsoft Research пилит Haskell и на ЛОРе его что-то не особо обсирают, скорее хвалят.
                        Ответить
                      • > Для разработки на C# или VC++ под винду Visual Studio вполне хорош, а для LISP вероятно нет

                        А рационально ли делать такую IDE, чтобы ей хорошо было разрабатывать только под винду? Т.е. вот надо отдельную IDE под винду, отдельную IDE под FreeBSD, отдельную под NetBSD, отдельную под QNX, отдельную под Haiku, и намертво их прибивать к соотв. операционке, это норм, да?

                        И мои претензии касаются не только заточенности под винду, но еще и общей тяжеловесности и тормознутости этой студии.
                        Ответить
                        • > рационально
                          – какова целесообразность постройки моста через реку с точки зрения щуки? ©
                          Ответить
                          • > – какова целесообразность постройки моста через реку с точки зрения щуки? ©

                            Доебка не ясна. Перефразируйте
                            Ответить
                            • нахожу странным саму постановку вопроса про рациональность

                              мс уже минимум четверть века делает ide под винду и пока полёт нормальный

                              правда, я вот пользуюсь ide от ms под мак время от времени и тоже пока не умер
                              Ответить
                              • > нахожу странным саму постановку вопроса про рациональность

                                Находи. Я лично не нахожу.

                                > мс уже минимум четверть века делает ide под винду и пока полёт нормальный

                                Люди более чем две тыщи лет верят во всякие "религии" и поклоняются всяким "богам" и пока полет нормальный.
                                Ответить
                                • ты не понимаешь наверное

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

                                  а чувак, у которого в контроллерах ничего нет, вдруг задаётся вопросом "а рационально ли это?"

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

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

                                      а мнение мимокрокодила их как бы и не чешет
                                      Ответить
                                      • > для своих создателей и верхушки конечно

                                        Т.е. правильно ли я понимаю, что над рациональностью того, что наша IDE работает только в винде, незачем думать, если эта IDE приносит бабло при таком подходе?

                                        > а мнение мимокрокодила их как бы и не чешет

                                        Может конкретно их и нет
                                        Ответить
                                        • бессмысленный вопрос какой-то
                                          Ответить
                                          • > бессмысленный вопрос какой-то

                                            Это т.н. "закрытый вопрос", на который можно ответить "Да" или "Нет". У тебя есть ответ?
                                            Ответить
                                        • ты лучше скажи, в чём рациональность портирования студии на лялих
                                          Ответить
                                          • Ты лучше для начала ответь на поставленный вопрос.
                                            Ответить
                                            • я на бессмысленные вопросы не отвечаю, сорян

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

                                                Я не считаю этот вопрос бессмысленным.
                                                Ответить
                                        • Дай, пожалуйста, определение «рациональности», а так же уточни, для кого факт работы «Visual Studio» в винде должен быть рациональным или нерациональным.
                                          Ответить
                                          • Небольшое дополнение для иллюстрации того, что я имею в виду: тратить N денег на удобную клавиатуру для меня рационально, потому что это мой рабочий инструмент. С другой стороны, тратить столько же денег на клавиатуру для нищего (без негативных коннотаций) человека, работающего грузчиком — совершенно нерационально.

                                            Именно поэтому для ответа на вопрос о рациональности в первую очередь следует указать субъекта, с точки зрения которого мы рассматриваем факты.
                                            Ответить
                                          • > Дай, пожалуйста, определение «рациональности»

                                            Рациональность (от лат. ratio — разум) — термин, в самом широком смысле означающий разумность, осмысленность, противоположность иррациональности. В более специальном смысле — характеристика знания с точки зрения его соответствия некоторым принципам мышления. Использование этого термина часто связано с вниманием к различиям в таких принципах, поэтому принято говорить о различных типах рациональности.

                                            > а так же уточни, для кого факт работы «Visual Studio» в винде должен быть рациональным или нерациональным.

                                            Для того, кто захочет ее использовать не в винде. Привязка «Visual Studio» к винде может быть нерациональна и для самой «Microsoft», например чтобы продавать ее под какие-нибудь маки. Вполне может так оказаться, что через 10-20 лет никаких IBM-совместимых персональных компьютеров с процессорами x86-64 не будет, а будет какая-нибудь хрень на ARM и RISC-V с какими-то не-майкрософтовскими операционками (IOS, Android или еще какая-то хрень, про которую мы пока не знаем), и там вполне может быть полезна эта IDE.
                                            Ответить
                                            • Q:для кого факт работы «Visual Studio» в винде должен быть рациональным или нерациональным?

                                              A: Для того, кто захочет ее использовать не в винде.

                                              Dixi.



                                              > Привязка «Visual Studio» к винде может быть нерациональна и для самой «Microsoft»

                                              Иногда выгоднее продавать свою ОС с бесплатной IDE, чем делать кросс-платформенную IDE.

                                              MS давно уже дает бесплатную версию Студии (так было не всегда)

                                              XCode за пределами Mac OS тоже не очень распостранен.

                                              Яблоко свою ОС не продает (так было не всегда) но требует железа.

                                              Хочешь писать под ios? Купи мак.
                                              Ответить
                                              • я вообще не понимаю, почему в данном случае переносимым должен вдруг быть софт, а не форматы

                                                а форматы вижуалки давным давно умели открывать ещё несколько ide
                                                Ответить
                                                • Там в форматах небось есть проприетарное говно. Если там какие-нить подключения к MS-SQL, какие-нить ActiveX говны вытянуты, какие-нить WPFные гуи, то может и не открыться


                                                  Безопаснее хранить cmake проект, и из него уже генерить cproj и sln кмк
                                                  Ответить
                                                  • > может и не открыться
                                                    – я сильно глубоко не копал, но солюшен вроде открывается всегда, может не открываться конкретный проект, он просто будет неактивным на конкретной платформе

                                                    > cmake
                                                    – та ну, для шарпа имхо излишний пердолинг
                                                    Ответить
                                                    • Навреное ты прав про проект, да: sln же просто список проектов, плюс выборка активного и конфигурации

                                                      Интересно перенести шарп проект со студии в Rider например. Откроет ли?
                                                      Ответить
                                                      • должен

                                                        я как-то давно делал одну маленькую фигню в вижуалке

                                                        а лет через 5 этот солюшн открыл в VS for Mac

                                                        скачало нужные проекты с нагета, собралось, запустилось

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

                                                А иногда и не выгоднее. А может это выгодно в краткосрочной перспективе, но не выгодно в долгосрочной. Зачем-то ж MS сделали эту свою "Visual Studio Code".

                                                > MS давно уже дает бесплатную версию Студии (так было не всегда)

                                                Ха. Это мне напомнило одну статью Джоэла Сполски за 2004 год
                                                https://web.archive.org/web/20180922120900/http://russian.joelonsoftware.com/Articles/HowMicrosoftLosttheWaronA.html


                                                > Логическое заключение состоит в том, что если вы пытаетесь продавать операционную систему, то вам необходимо сделать так, чтобы разработчики программного обеспечения захотели писать программы для вашей операционной системы. Поэтому Стив Баллмер прыгал по сцене и кричал: «Разработчики, разработчики, разработчики, разработчики». Это так важно для Microsoft, что единственная причина, из-за которой средства разработки программного обеспечения не раздаются бесплатно, заключается в том, что они не хотят случайно перерезать кислород разработчикам конкурирующих инструментов разработки (хорошо, тем, которые остались), так как разнообразие инструментов разработки, доступных для их платформы, делает ее куда более привлекательной для разработчиков. Но на самом деле они хотят раздавать. Благодаря их программе Empower ISV вы можете получить пять наборов MSDN Universal (иначе известных как «практически все продукты Microsoft, исключая Flight Simulator») всего за 375$. Компиляторы командной строки для языков .NET включены с бесплатными библиотеками .NET … тоже бесплатно. Компилятор С++ теперь бесплатен. Что угодно для поощрения разработчиков работать под .NET и ликвидации таких компаний как Borland.
                                                Ответить
                                                • > А может это выгодно в краткосрочной перспективе, но не выгодно в долгосрочной.

                                                  Может быть да, может быть нет.

                                                  >Зачем-то ж MS сделали эту свою "Visual Studio Code".
                                                  Существует мнение, что для продвижения Azure.

                                                  MS вкладывает бабло в облако (может быть думает, что продажа ОС и всяких Exchange уже не будет приносить сказочной прибыли через 10-15 лет) и старается сделать инструмент плотно с ним интегрированный, чтобы каждый PHPшник мог на своей Убунте в VSCode написать сайт, и загрузить его им на Azure.
                                                  Ответить
                                                  • > MS вкладывает бабло в облако (может быть думает, что продажа ОС и всяких Exchange уже не будет приносить сказочной прибыли через 10-15 лет)
                                                    > старается сделать инструмент плотно с ним интегрированный, чтобы каждый PHPшник мог на своей Убунте в VSCode написать сайт, и загрузить его им на Azure.

                                                    Ди-вер-сифи-ка-ция.

                                                    И правильно делают.

                                                    Большая контора с кучей денег никогда не положит все яйца в одну корзину, и 8 из 10 проектов могут оказаться и окажутся тупиковыми, малоприбыльными. Но зато 1-2 выстреливших позволят отбить затраты и продолжать держаться на плаву.
                                                    Ответить
                                            • «Замечательное» определение. Рационально — это когда разумно и противоположно иррационально. А иррационально — это когда рационально.

                                              > поэтому принято говорить о различных типах рациональности.
                                              Ещё лучше.
                                              Ну ладно.

                                              > Для того, кто захочет ее использовать не в винде.
                                              Да, для него это однозначно иррационально, потому что это попытка решения проблем неподходящим для этого инструментом.

                                              > может быть нерациональна и для самой «Microsoft»
                                              С точки зрения «Microsoft» у разработки «Visual Studio» имеется единственная задача: получение прибыли (прямой или косвенной). Над решением этой задачи в «Microsoft» работают опытные специалисты, и нет никаких оснований полагать, что они разбираются в подсчёте прибыли лучше, чем питухи с «Говнокода». Если бы портирование «Visual Studio» под другие системы было экономически выгодно (то есть потенциальная прибыль от этого действия превышала бы потенциальные затраты) — мы бы сейчас могли сделать «apt-get install visual-studio».
                                              Таким образом, создание и поддержка «Visual Studio» компанией «Microsoft» соответствует целям и задачам компании, и, следовательно, является рациональным.
                                              Ответить
                                              • > «Замечательное» определение. Рационально — это когда разумно и противоположно иррационально. А иррационально — это когда рационально.

                                                Можешь еще спросить "что такое разумно", и "что такое иррационально". Если очень долго спрашивать определения слов в определениях слов, в конечном итоге получится зацикливание т.к. множество корректных (допустимых) слов счетно и конечно.

                                                > Да, для него это однозначно иррационально, потому что это попытка решения проблем неподходящим для этого инструментом.

                                                Неподходящим т.к. его сделали неподходящим.

                                                > Над решением этой задачи в «Microsoft» работают опытные специалисты, и нет никаких оснований полагать, что они разбираются в подсчёте прибыли лучше, чем питухи с «Говнокода».

                                                Очень интересно. Почему тогда Windows Phone провалилась? Мне очень давно (почти сразу) было очевидно, что это провальная инициатива, но MS упорно вливала туда бабло, не получая никакой прибыли, и они даже купили под это дело Nokia и все там прогондонили
                                                Ответить
                                                • > Почему тогда Windows Phone провалилась?

                                                  – потому что Сатья ажурщик лол?

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

                                                    Тогда был Баллмер. Он еще в запотевщей рубашке прыгал и выкрикивал developers, developers, developers
                                                    Ответить
                                                    • developers, developers, developers было лет на 15 раньше

                                                      wp + nokia вполне могла на каких-то рынках потягаться с ведром

                                                      почему её слили, это вопрос хороший. а её именно слили.
                                                      Ответить
                                                • > Если очень долго спрашивать определения слов в определениях слов, в конечном итоге получится зацикливание т.к. множество корректных (допустимых) слов счетно и конечно.
                                                  А если не спрашивать — в конце концов придём к тому, что каждый будет говорить о своём.
                                                  Так что вот моё определение для конкретного случая: создание продукта является рациональным тогда и только тогда, как созданный продукт выполняет задачи, которые предполагается решать при помощи этого продукта. В самом простом случае такой задачей может быть получение прямой прибыли: тогда создание продукта рационально (для создателя!) тогда, когда эту прибыль продукт приносит.

                                                  > Неподходящим т.к. его сделали неподходящим.
                                                  Неверно. Его не сделали неподходящим, его попросту не портировали. Это совершенно разные вещи.
                                                  Разработка кросс-платформенного приложения (особенно на всяких сишках с крестами) стоит гораздо дороже, чем разработка приложения для конкретной платформы. Чтобы «Visual Studio» запускалась на линуксах — её авторы должны были потратить очень много дополнительного времени (и, следовательно, денег) на поддержку зоопарка этих самых линухов, зоопарка DE, X-сервера, вялого (в будущем) и прочего прыщеговна.
                                                  Поэтому нет, никто специально не рушил (со злодейским хохотом) совместимость «Visual Studio» с линуксами. Её просто не делали.

                                                  > Почему тогда Windows Phone провалилась?
                                                  Потому что все совершают ошибки.

                                                  > Мне очень давно (почти сразу) было очевидно
                                                  Задним умом все крепки. Это эффект позитивного подкрепления: человеческому мозгу приятно чувствовать себя умным, поэтому моменты «я же говорил!» запоминаются гораздо лучше, чем несбывшиеся прогнозы.
                                                  Ответить
                                                  • > Неверно. Его не сделали неподходящим, его попросту не портировали.

                                                    > Поэтому нет, никто специально не рушил (со злодейским хохотом) совместимость «Visual Studio» с линуксами. Её просто не делали.

                                                    Правильнее тогда говорить "его не делали портируемым" а не "не портировали".

                                                    > Разработка кросс-платформенного приложения (особенно на всяких сишках с крестами) стоит гораздо дороже, чем разработка приложения для конкретной платформы.

                                                    It depends. И сейчас с кросс-платформой на сишке/крестах стало на порядок проще.

                                                    > на поддержку зоопарка этих самых линухов, зоопарка DE, X-сервера, вялого (в будущем) и прочего прыщеговна.

                                                    Можно было взять Qt, проблему с гуйней бы это решило.

                                                    > Задним умом все крепки. Это эффект позитивного подкрепления: человеческому мозгу приятно чувствовать себя умным

                                                    Я очень четко помню, как это было. Сначала я действительно полагал, что у MS есть какие-то шансы продвинуть свою принципиально новую ОС на мобильный рынок. Через некоторое время это выглядело со стороны как явно бессмысленное сжигание бабла, и было достаточно очевидно(и не только мне), что пора бы уже остановиться, но желание MS втулить свою ОС на мобильный рынок было слишком сильно...
                                                    Ответить
                                                    • > Правильнее тогда говорить "его не делали портируемым" а не "не портировали".
                                                      Хорошо.

                                                      > It depends. И сейчас с кросс-платформой на сишке/крестах стало на порядок проще.
                                                      Если под «проще» ты имеешь в виду «Qt» — то, наверное, да.

                                                      > Можно было взять Qt, проблему с гуйней бы это решило.
                                                      Напоминаю, что первый выпуск «Visual Studio» произошёл в 1997-м году.

                                                      Взять вышедшую два года назад и никому не известную либу для разработки IDE, изначально планировавшейся как основной инструмент для разработки под «Windows»? Увольте. Даже сейчас, спустя полтора десятка лет после выпуска, «Qt» — всё ещё кривое и тормозящее говно; каким же он был сразу после релиза?

                                                      > Я очень четко помню, как это было. Сначала я действительно полагал, что у MS есть какие-то шансы продвинуть свою принципиально новую ОС на мобильный рынок.
                                                      О чём и речь.

                                                      > Через некоторое время это выглядело со стороны
                                                      Ключевой момент — «со стороны». Мы не знаем и не можем знать, какие процессы происходили в это время внутри «Майкрософта», и чем эти затраты были оправданы. Можно, конечно, порассуждать о тупых менеджерах, но смысла в этом никакого нет.
                                                      Ответить
                                                      • > Даже сейчас, спустя полтора десятка лет после выпуска, «Qt» — всё ещё кривое и тормозящее говно; каким же он был сразу после релиза?

                                                        А винапи-гуйня является образцом скорости и прямоты?
                                                        Ответить
                                                        • Если за «Винапи-гуйню» брать «Visual Studio» — то да, UX у неё на порядок лучше, чем у QT-говна.
                                                          Ответить
                                                          • > Если за «Винапи-гуйню» брать «Visual Studio» — то да, UX у неё на порядок лучше, чем у QT-говна.

                                                            Я вообще-то про всякую MFC-питушню, OLE, COM, ActiveX и проч. сопутствующие говна. В архитектурном, так сказать, плане

                                                            Когда я для интереса попробовал в этом разобраться, было ощущение что я окунулся в чан с дерьмом
                                                            Ответить
                                                            • https://www.tenouk.com/cplusplusnmfc.html о какую хуйню нашел
                                                              Ответить
                                                            • Четверть века назад можно было через OLE вставить документ excel себе в приложение

                                                              В Linux в это время у половины людей вообще гуй не работал, потому что xfree modlines не могли прописать
                                                              Ответить
                                                              • > Четверть века назад можно было через OLE вставить документ excel себе в приложение

                                                                Которое будет работать только с такой-то версией excel, который еще купить надо. Охуенно, да.
                                                                Ответить
                                                  • > Чтобы «Visual Studio» запускалась на линуксах — её авторы должны были потратить очень много дополнительного времени (и, следовательно, денег)

                                                    Извините. А нахуя портировать для конкурирующей платформы удобное средство разработки?
                                                    Это не просто нерационально, это глупость стратегического масштаба.

                                                    > на поддержку зоопарка этих самых линухов, зоопарка DE, X-сервера, вялого (в будущем) и прочего прыщеговна

                                                    И ещё пердолиться с этим сраным неоднородным говном.

                                                    M$ нужна система разработки софта под свою ОСь.
                                                    Потому что нужен софт, голая операционная система никому особо не интересна.
                                                    Ответить
                                                    • > M$ нужна система разработки софта под свою ОСь.
                                                      Это правда, да.

                                                      > Извините. А нахуя портировать для конкурирующей платформы удобное средство разработки?
                                                      Справедливости ради это можно оправдать стратегиями вида EEE. Ну или просто банальным переманиванием: мол, приходите, девелоперсы, к нам на венду, у нас вон какая классная IDE есть!
                                                      Но, конечно, в давние времена первых выпусков «Студии» «Майки» были гораздо более агрессивны в плане конкуренции («своей земли не отдадим ни пяди» vs «культурная ассимиляция»).

                                                      А сейчас вон даже «VS Code» есть — вроде как рекламный флаер «Visual Studio».
                                                      Ответить
                                                      • > Справедливости ради это можно оправдать стратегиями вида EEE
                                                        Хахаха.

                                                        Так это нерентабельно.

                                                        90% линуксоидов даже бесплатно не поставят это говно, ибо для них само слово Майкрософт это как красная тряпка для быка, или как «Cатана» для православного человека.

                                                        > мол, приходите, девелоперсы, к нам на венду, у нас вон какая классная IDE есть

                                                        Так уже сделали WSL: «Приходите, к нам на венду».

                                                        Кмк, это гораздо более логичная стратегия: расширять возможности своего продукта, а пилить IDE для чужого. Причём поддержать весь зоопарк кобенаций разных DE и X11/Wayland/Mir/etc нетривиальная задача даже для M$.

                                                        С другой стороны, чем чёрт не шутит. Браузер же портанули.
                                                        Ответить
                                                        • > а пилить IDE для чужого
                                                          – а НЕ пилить имелось в виду?

                                                          > Браузер же портанули.
                                                          – какой браузер?
                                                          Ответить
                                                          • > какой браузер?

                                                            «Microsoft Edge»

                                                            https://blogs.windows.com/msedgedev/2020/10/20/microsoft-edge-dev-linux/
                                                            Конечно невелика честь сбилдить форк кроссплатформенного Cнгoмiима под Луних, но сам факт.
                                                            Ответить
                                                            • я до сих пор не понимаю, почему они закопали оригинальный edge
                                                              Ответить
                                                              • Сейчас происходит много странных вещей. То появляется новый «Edge», который по сути является «Хромиумом» с подменённой иконкой, то в «Visual Studio» зачем-то включат «clang», то «WSL» появится.

                                                                Такое ощущение, что «MS» хочет плавно отойти от разработки и в будущем только чужой софт упаковывать.
                                                                Ответить
                                                                • бляди

                                                                  последняя более-менее девелоперская контора
                                                                  Ответить
                                                                • А нахуя тратить силы не на ажур и офис
                                                                  Ответить
                                                                • > Такое ощущение, что «MS» хочет плавно отойти от разработки и в будущем только чужой софт упаковывать.

                                                                  Батюшка esr выдвинул интересную гейпотезу. Кстати его блог хоть кто-то тут читает?

                                                                  Её суть в том что Mелко$офту просто нерентабельно держать армию кодеров и саппортить это всё говно (браузеры, операционку). Причём винду нужно ещё портировать на арм.

                                                                  Потому они со временем планируют перейти на linux-kernel, оставив легковесную обёртку вроде wine которая проксирует winapi system call в ядро луникса.

                                                                  У них же сейчас большая часть профитов идёт от Azure. А так можно перекинуть головняк по поддержке зоопарка x86 и arm на коммьюнити.

                                                                  Короче «Microsoft loves Linux»
                                                                  Ответить
                                                              • > я до сих пор не понимаю, почему они закопали оригинальный edge

                                                                Потому что его использовали в основном только чтобы скачать другой браузер.
                                                                Ответить
                                                      • > стратегиями вида EEE

                                                        И с каких это пор ISO уверовал в бредни сектантов жопен-сороса?
                                                        Ответить
                                                        • Стратегия EEE это не бредни каких-то сектантов

                                                          > "Embrace, extend, and extinguish" (EEE),[1] also known as "embrace, extend, and exterminate",[2] is a phrase that the U.S. Department of Justice found[3] that was used internally by Microsoft[4] to describe its strategy for entering product categories involving widely used standards, extending those standards with proprietary capabilities, and then using those differences in order to strongly disadvantage its competitors.
                                                          Ответить
                                    • но аналогии как обычно уровня говнокода
                                      Ответить
                        • Как правило чем система абстрактнее, чем шире круг решаемых ей задач, тем хуже она решает конкретную задачу.

                          ``vim`` прекрасный редактор для всего, но на C# удобнее писать в студии с R#.

                          Именно заточка VS под нужны Windows разработчика (поддержка ресурсов, например) позволила сделать её более удобной.

                          > тяжеловесности и тормознутости

                          Это плата за функционал и тяжелое наследие, к сожалению.

                          Notepad++ не тормозит, но и переименовать namespace в С++ в нем сложнее
                          Ответить
                    • > Правильно ли я понимаю, что ты считаешь хорошим инструментом "Microsoft Visual Studio"?
                      Совершенно верно, я считаю «Microsoft Visual Studio» прекрасным инструментом для своей задачи.
                      Собственно говоря, в мире больше не существует настолько же продвинутых IDE для «C++». Как самый банальный пример — «IntelliSense» умеет вычислять значение constexpr-переменных до компиляции, что весьма помогает при разработке метушни. Насколько я знаю, никакие другие средства разработки так не умеют.
                      Ответить
                      • Привет
                        https://i.postimg.cc/Hs2fYRrZ/image.png

                        Угадай редактор
                        Ответить
                        • Наведи, пожалуйста, курсор на переменную «c» и посмотри, чему она равна.
                          Ответить
                          • Прилетела птичка Обломинго
                            https://youtrack.jetbrains.com/issue/CPP-5064

                            Однако же истинность выражения он смог проверить, так что он чото там считает, просто не осилил это вывести, как в студии
                            Ответить
                        • Ах, ну вот: https://youtrack.jetbrains.com/issue/CPP-5064.
                          > Ability to evaluate and show on mouse hover expressions known at compile time
                          Created by Anna Filippova 6 years ago Updated by Maxim Banaev 5 days ago

                          Что и требовалось доказать.
                          Ответить
                          • я там выше написал, да.

                            Ну ок, факт отсоса силайна у студии зафиксирован ))

                            Странно, что они этого не сделали.
                            Ответить
                            • Могу предположить, что тот ворнинг у них рисует какая-то внутренняя закрытая подсистема типа встроенной «VDS-Studio», которой на вход подаются исходники и настройки, а на выходе из неё можно получить только ворнинги, но не сложную контекстную информацию. Соответственно, привязать её к сервису подсказок (как, кстати, он у жидов называется?) выходит слишком сложно/дорого/нерационально.
                              Ответить
                              • Там скорее подсказки (intentions*), а вот такая штука

                                https://resources.jetbrains.com/help/img/rider/2021.2/debug_values_inline.png

                                Но она работает только при дебаге, хотя для большинства языков


                                *
                                https://www.jetbrains.com/help/idea/intention-actions.html
                                Ответить
                            • https://i.imgur.com/VbrWnJ6.png - вот кстати что пытается делать "CLion" (только тут баг в этих хинтах, если что)

                              "Вижуалстудия" так умеет?
                              Ответить
                              • Нет, для «C++» не умеет. Для «C#» умеет, для «Basic» умеет, а кресты соснули.
                                Ответить
                              • я не понял, джейсон мне уже и в C++ насрал?
                                Ответить
                              • > "Вижуалстудия" так умеет?

                                Оно нахуй не надо. Я бы отключил эту херню и не писал такое говно.

                                Когда в структуре 1 поле и так всё понятно.

                                А когда 3 и больше, лучше писать имена явно, чтобы:
                                а) самому не путаться где какое поле
                                б) при рефакторинге не перепутать порядок
                                в) при просмотре кода обычным редактором (дифф в гите, ревью коммита в html) другим было понятно что происходит.
                                Ответить
                                • Именно по этому я за "vim" + "ectags".
                                  Только таким макаром можно писать читаемый код.

                                  А код, написанный в IDE, только в IDE под интерактивным дебагером и читаем
                                  Ответить
                                  • Причём на скрине какое-то уебанское, блевотное форматирование скобок.

                                    И самое смешное, если жавашки в интелижопе проебут, то хинты будут неправильные:
                                    > только тут баг в этих хинтах, если что
                                    Ответить
                                  • Поддерживаю! Не скажу, что конкретно "vim" всем подойдёт, но редактор всегда лучше, чем анскильная IDE.

                                    В IDE пишут нечитаемое говно, код-пустышку, код-бюрократ, код-гной, код-пидор.

                                    Ещё мудачьё говорит "просто купи компьютер помощнее" и хвастается своими печками с 32ГБ памяти, последними процессорами №9 и блоками питания на киловатты, и всё равно время от времени жалуется, что новая вкладка в IDE долго открывается.
                                    Ответить
                                    • > В IDE пишут нечитаемое говно, код-пустышку, код-бюрократ, код-гной, код-пидор.

                                      Правильнее сказать "IDE позволяет писать крайне заебаный говнокод со всякой хуйней, и в них пишут такой код, и потом с таким кодом возможно нормально работать только в IDE"

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

                                      Я бы на месте заказчиков такой код в сортирах топил бы спецом, и в навозные ямы, где-нибудь там возле ферм, скотобоен всяких, где говнища побольше, вот очистные крупных городов ещё тоже очень хорошее место.
                                      Ответить
                                • Эта штука пришла из «Java», где она используется для подсветки параметров вызовов функций: там нет именованных параметров (гуру поясняют, что если у вас так много параметров в функции, что можно и напутать, то лучше переписать всё на «builder» и течь с «foo().withBar(10).withBaz("hello")....» ). Но поскольку писать билдеры абстрактных фабрик на каждый чих интересно не всем — появилась такая вот эмуляция именованных параметров через подсказки IDE.
                                  Ответить
                                  • > что если у вас так много параметров в функции, что можно и напутать,
                                    > то лучше переписать всё на «builder» и течь с «foo().withBar(10).withBaz("hello")....»

                                    Подтверждаю. (я не гуру)

                                    > Но поскольку писать билдеры абстрактных фабрик на каждый чих
                                    @lombok.Builder
                                    public class SomeYagaShit {
                                       int bar;
                                       String baz;
                                    }
                                    
                                    //call
                                    foo ( 
                                         SomeYagaShit.builder().withBar(10).withBaz("hello").build()
                                    );

                                    Именно поэтому я за «Сишку»

                                    foo( (Pair){.bar=10, .baz = "hello"} );
                                    Ответить
                                  • Можно объявлять функции с единственным параметром, в который передавать структуру.
                                    Ответить
                                    • > структуру

                                      Именованных инициализаторов в джаве тоже нету... Разве что создавать структуру и методично присваивать в неё по одному полю.

                                      З.Ы. В итоге что-нибудь забудешь заполнить.
                                      Ответить
                                      • > Именованных инициализаторов в джаве тоже нету...

                                        Есть хак через омонимные классы.
                                        Но это под капотом замыкание, которое хватает контекст (привет утечки!).

                                        Потому это наименьшее из говн:
                                        https://www.projectlombok.org/features/Builder
                                        Ответить
                                        • Котя, котенька, коток,
                                          Котя, серенький лобок,
                                          Приди, котя, ночевать,
                                          Нашу деточку качать.

                                          Уж тебе я, коту,
                                          За работу заплачу:
                                          Дам кусок пирога
                                          И кувшинчик молока.
                                          Ответить
                      • > «IntelliSense» умеет вычислять значение constexpr-переменных до компиляции, что весьма помогает при разработке метушни.

                        Учитывая что значение constexpr-переменной вычисляется Тьюринг-полной питушней, подсказка для такой фигни может идти сколь угодно долго.
                        Ответить
                        • А если малость задуматься, окажется что в самой IDE для поддержки такой хрени нужно встраивать огрызки компилятора, и тут уж возникает вопрос "как быстро и каким образом это работает?"

                          Допустим есть некая constexpr-метушня, которая раскрывается при компиляции минуту, допустим навел я мышкой на переменную, оно будет минуту мне в IDE считать? А потом оно будет мемоизировано, т.е. второй раз если навести, оно сразу ответ выдаст? А если я поменяю один символ в компилтайм-метушне, оно будет пересчитывать констэкспры в момент редактирования компилтайм-метушни, или в момент наведения на констэкспр для получения соотв. подсказки?
                          Ответить
                        • В «gcc» эта проблема решена при помощи -fconstexpr-depth, -fconstexpr-loop-limit и -fconstexpr-ops-limit. С учётом того, что никаких проблем с подсказками к constexpr-переменных у меня не было — в «Visual Studio» она тоже решена.
                          Ответить
                          • > В «gcc» эта проблема решена при помощи -fconstexpr-depth, -fconstexpr-loop-limit и -fconstexpr-ops-limit.

                            Тогда у тебя будет не всегда подсвечиваться подсказка к этим констэкспрам. А если не будет ограничения, подсказки могут зависнуть. Обычная ситуация с двумя стулами.

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

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

                              Другие люди спокойно пользуются удобной фичей — программисты-перфекционисты грустно пускают слезу о невозможности её создания.

                              Да, кстати, если ограничения в сервисе подсказок соответствуют ограничениям в компиляторе, то подсказки будут работать для любых компилирующихся программ. Чем не победа перфекционизма?
                              Ответить
                              • > «Нельзя сделать идеально для всех случаев — не будем делать вовсе».

                                > Казалось бы, буквально пару дней назад guest6 разъёбывал программистов за такой ущербный подход — и вот, пожалуйста, опять.

                                В моем сообщении нигде нет утверждения "если задача не решается для всех случаев, ее не стоит решать вообще".

                                > Да, кстати, если ограничения в сервисе подсказок соответствуют ограничениям в компиляторе, то подсказки будут работать для любых компилирующихся программ. Чем не победа перфекционизма?

                                А где гарантии такого соответствия? Сам стандарт описывает эти ограничения? Кстати, что насчет вычислений с плавучими питухами, гарантируется ли воспроизводимость результатов? https://govnokod.ru/27285 - реальный пример зависимости рантайм FPU-вычислений от флагов оптимизации. Как с этим в компилтайме?
                                Ответить
                                • > Кстати, что насчет вычислений с плавучими питухами, гарантируется ли воспроизводимость результатов?

                                  Разве не выжжено в головах программистов, что плавающий питух может клюнуть в любой момент, и всё кроме тривиальщины вида 1./4. или 2.+3. будет вычислено с примененением больной вычислительной фантазии, и любые конкретные результаты - мираж?
                                  Ответить
                                  • Т.е. для плавучепитуховых констэкспров те подсказки вообще не работает, или там может подсказываться хуйня?
                                    Ответить
                                    • Я не знаю. У меня нет этих ваших "IDE" с тормозами.
                                      Просто предполагаю, что программист должен скептически относиться к плавтухам, и тогда никаких проблем нет. Программист знает, что плавтухи - мудаки, и это знание - его оружие.
                                      Ответить
                                • > В моем сообщении нигде нет утверждения "если задача не решается для всех случаев, ее не стоит решать вообще".
                                  А как же твои саркастические кавычки вокруг слова «решена»?

                                  > А где гарантии такого соответствия?
                                  Мне на них похуй.

                                  > Сам стандарт описывает эти ограничения?
                                  Конечно: https://eel.is/c++draft/implimits#2.39.

                                  > Кстати, что насчет вычислений с плавучими питухами, гарантируется ли воспроизводимость результатов?
                                  Мне похуй.
                                  Ответить
                                  • > А как же твои саркастические кавычки вокруг слова «решена»?

                                    И что тебе не нравится в моих саркастических кавычках?

                                    > Мне похуй.

                                    Т.е. тебе похуй, что IDE может подсказывать хуйню? Ну ок.
                                    Ответить
                                    • > И что тебе не нравится в моих саркастических кавычках?
                                      Их саркастичность.

                                      > Т.е. тебе похуй, что IDE может подсказывать хуйню? Ну ок.
                                      А почему мне должно быть не похуй на унылые корнер-кейсы, с которыми в реальности я никогда не столкнусь? Ты можешь придумать хоть сотню питушни, которой в микроконтроллерах нет, — от этого подсказки с вычислением константных выражений менее удобным и полезным инструментом не станут.
                                      Ответить
                          • > в «Visual Studio» она тоже решена.

                            Эта проблема не может быть решена, она может быть только "решена".
                            Ответить
                      • > Собственно говоря, в мире больше не существует настолько же продвинутых IDE для «C++». Как самый банальный пример — «IntelliSense» умеет вычислять значение constexpr-переменных до компиляции, что весьма помогает при разработке метушни. Насколько я знаю, никакие другие средства разработки так не умеют.

                        Clangd умеет. Его можно использовать и в VSCodium например. Реальный пример https://i.imgur.com/8KEPLX8.png (это я взял свою компилтайм-сортировку пузырьком https://govnokod.ru/25130#comment458282 и решил реально проверить)

                        Используемый плагин "llvm-vs-code-extensions.vscode-clangd". Но этот "clangd" можно и к GNU Emacs присобачить наверняка.
                        Ответить
                        • И в целом я за то, чтобы подобные фичи были не намертво прибиты к какой-то работающей только в одной ОС тормозной проприетарной IDE, а были отделяемыми модулями, которые можно было бы цеплять к любой хуите при желании.
                          Ответить
                          • Я за то, чтобы весь софт был модульным.

                            Например, чтобы веб-браузер можно было собрать только из нужных компонентов: хочу — беру оболочку от «Хрома», не хочу её — беру от «Симанки»; хочу — беру парсер на «Webkit», не хочу его — беру на  «Gecko»; хочу — беру интерпретатор «Йажасцрипта» на «V8», не хочу его — беру «Splidermonkey». И так далее.
                            Ответить
                            • P.S. К слову о химерах. Один чувак, смешав исходники «Хромиума 49» и «Хромиума 54», собрал «Хромиум», который запускается в «Windows XP», но при этом поддерживает некоторые функции 54-го «Хрома»:
                              http://jeder.ru/?p=280

                              Это было бы смешно, но «Archive.org» посчитал этот проект настолько важным, что снял копию:
                              https://archive.org/details/advancedchromev54.20.6530.0
                              Ответить
                            • И тут обновляется интерфейс какого-нибудь «водноклассницах». Начинают лагать пункты меню (потому что там ЙАЖАскрипта на странице больше чем кода управления в МБР). Администрация на жалобы отвечает «купи комп не с помойки, лол». На форумах начинается срач о том, какие компоненты в каких сочетаниях дают больший пирфоманс. Находят сочетание, при котором меню появляется через секунду после наведения, а не через 3.

                              И тут васясофт выкатывает свой монолитный браузер и заявляет «вы все анскилябры, у меня не тормозит». Проверяют, и действительно, не тормозит. Окрыленные этим фактом, питухи летят в репозиторий, чтобы распилить этот браузер на модули и подключить к своему. И охуевают.

                              Оказывается, его интерпретатор ЙАЖАскрипта, вместо того, чтобы вежливо попросить модуль, отвечающий за DOM, поменять что-то в таком-то элементе, для каких-то часто используемых операций просто лезет в кишки и меняет что ему надо прямо там, благо внутреннее представление оптимизированно для таких вещей. Ещё его браузер при простое дёргает все эвенты, интерпретируя скрипт (не меняя фактическое состояние страницы), подгружая ресурсы, которые потребуется и пререндеря части страницы которые могут понадобиться.

                              Чтобы это говно прикрутить к охуенно модульному браузеру, понадобится распидорасить весь охуенно стройный АПИ взаимодействия между модулями, и заставить модули либо имплементировать всю хуйню, даже которую они не юзают, либо модулям придётся договариваться о том, какие виды АПИ они могут использовать.
                              Ответить
                              • > интерфейс какого-нибудь «водноклассницах»
                                > Начинают лагать пункты меню (потому что там ЙАЖАскрипта на странице больше чем кода управления в МБР

                                А зачем посещать такие сцайты?
                                Ответить
                                • Кто за браузер платит — тот его и танцует.
                                  Ответить
                                • Иногда приходится посещать такие сайты. Лагают сайты интернет-магазинов, банков, государственных учреждений.
                                  Ответить
                                  • > интернет-магазинов
                                    Тебе лень из дома выйти? Фу, неженка.

                                    > банков
                                    Зачем тебе банки? Ты что, кредиты берёшь?

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

                                      Весной 2020-го вынудили пользоваться этой ерундой.
                                      Ответить
                            • > Я за то, чтобы весь софт был модульным.
                              Поддержал.

                              Причём с возможностью вообще выкинуть какой-то компонент. Допустим браузер без интерпретатора «Йажасцрипта» или реализующий ограниченное его подмножество.
                              Ответить
                        • Ну вот, одну из множества фич «Visual Studio» своровали повторили.
                          А что насчёт, например, подсказок с полностью раскрытыми директивами препроцессора? Незаменимая фича для отладки препроцессороговна. А что насчёт встроенных дебаггеров: кто ещё может, например, делать снапшоты кучи с возможностью навигации по объектам и коду, который эти объекты создал? Или вот, к примеру, где ещё можно тыкнуть на шаблон, указать реальные примеры типов и наслаждаться его полным анализом до компиляции (https://devblogs.microsoft.com/cppblog/template-intellisense/)?

                          Так можно долго продолжать набрасывать. Факт остаётся фактом: для разработки крестоговна «Visual Studio» является наиболее мощной (e.g. насыщенной полезными фичами) IDE на рынке. Именно поэтому…

                          > И в целом я за то, чтобы подобные фичи были не намертво прибиты к какой-то работающей только в одной ОС тормозной проприетарной IDE, а были отделяемыми модулями, которые можно было бы цеплять к любой хуите при желании.
                          Я против (использования такого). Как показывает практика, модульный и универсальный инструмент решает свои задачи существенно хуже специализированного. В частности, работает банальный факт: специализированный инструмент системно тестируется целиком, в то время как конкретно твою сборную солянку из разных мудулей от разных питухов никто больше в мире не видел.

                          И да, реальная практика у меня есть: я программирую на «Python» в «VS Code» с расширениями. И какое же это говно… Вкладка «Pytest» отваливается, тесты молча не запускаются, процессы этой вкладки виснут и жрут по целому ядру, языковой сервер тоже иногда отваливается и перестаёт отвечать, а когда отвечает — гордо демонстрирует мне в подсказках полезную информацию, повторённую джва раза, причём изменение случайных настроек иногда отключает это двойное говно на день-другой, чтобы потом оно всё равно вернулось… Пиздец нахуй, я за монолиты.
                          Ответить
                          • > А что насчёт, например, подсказок с полностью раскрытыми директивами препроцессора?

                            Это Eclipse умеет. Clangd тоже препроцессорное говно умеет раскрывать https://i.imgur.com/voCsgCU.png (пример из https://govnokod.ru/27240 если что)
                            Ответить
                            • > https://i.imgur.com/voCsgCU.png
                              Нет, я про другое. «IntelliSense» умеет раскрывать любое макроговно в любой позиции, а не только считать константы: https://i.imgur.com/mhGpxld.png.

                              > надо делать другие IDE, в которых эти фичи будут. А микрософтовскую вин-онли отрыжку слать нахуй

                              Флаг в руки. А я и дальше буду использовать удобный и эффективный инструмент.
                              Ответить
                              • > Нет, я про другое. «IntelliSense» умеет раскрывать любое макроговно в любой позиции, а не только считать константы: https://i.imgur.com/mhGpxld.png.

                                Eclipse: https://i.imgur.com/CCQQsh1.png
                                Ответить
                          • > Так можно долго продолжать набрасывать. Факт остаётся фактом: для разработки крестоговна «Visual Studio» является наиболее мощной (e.g. насыщенной полезными фичами) IDE на рынке. Именно поэтому…

                            ... надо делать другие IDE, в которых эти фичи будут. А микрософтовскую вин-онли отрыжку слать нахуй
                            Ответить
                            • Иногда в программах, прибитых к конкретной платформе, есть смысл. Их можно сделать быстрыми и маленькими, используя особенности конкретной системы, вызывая API ОС напрямую и не накручивая лишних уровней абстракции, лишних обобщений.

                              Правда, монстроподобные айсберги вроде «Visual Studio» к таким супероптимизированным программам не относятся. В «Студии» фреймворк на фреймворке и фреймворком погоняет.
                              Ответить
                              • > Иногда в программах, прибитых к конкретной платформе, есть смысл. Их можно сделать быстрыми и маленькими, используя особенности конкретной системы, вызывая API ОС напрямую и не накручивая лишних уровней абстракции, лишних обобщений.

                                Если речь идет о т.н. "Language Server" ( https://langserver.org/ ), который занимается подсказыванием-подсвечиванием всякой такой хуйни, то я не очень понимаю, каким образом прибивание "Language Server" к API конкретной OS сделает его быстрее.
                                Ответить
                  • нормально ты пердаки пердолям поджёг

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

                        извини, забыл, что ты ещё не работал никогда
                        Ответить
                        • Хорошо, что с остальным ты согласен, а то бывают яблочники, которые считают технику эпл «своей»)
                          Ответить
                          • ребёнок, где ты мог видеть яблочников?? в ютубе?
                            Ответить
                            • В тик-токе. Слышал про такое, дедюль?
                              Ответить
                              • ясно

                                ну тебя наебали

                                теперь можешь пойти что-нибудь пересобрать, а то солнце само по себе не зайдёт
                                Ответить
                                • > теперь можешь пойти что-нибудь пересобрать

                                  Лучше напомни ему про алгоритм Дейкстры, который он наверняка еще не написал.
                                  Ответить
                    • > им теперь придётся три раза ядро пересобрать, чтобы остыло

                      Борманд в соседнем треде уже собирает )))
                      Ответить
                      • только у Борманда не подгорало, не знаю, чо он отдувается
                        Ответить
                        • Борманд не прыщефанбой потому что, у него религиозной ненависти к MS нету
                          Ответить
                        • Мне просто нравится смотреть, как что-нибудь собирается.
                          Ответить
                          • потому что https://xkcd.com/303/?
                            Ответить
                          • Ну собери Xorg тогда, или хромиум какой-нить
                            Ответить
                            • В принципе можно, гуйню для LFS я никогда не пробовала добавлять.
                              Ответить
                              • Я собирал иксы, и это занимало вечность. Правда это было очень давно.

                                imake знашеь?:)
                                Ответить
                                • > и это занимало вечность

                                  Qt из той же весовой категории, я думаю (там внутри вебкит).
                                  Ответить
                  • показать все, что скрытоВиндой и студией пользовались все, а вот альтернативными системами — меньшинство. Много ли вы видели постов такого содержания: "visual studio? что это такое? я только acme под plan9 пользовался, надо бы глянуть на этот ваш видоуз"? Нет.
                    Поэтому, когда фанбой мелкомягких открывает рот — он спамит своими иррациональными конформистскими предубеждениями.
                    А вот когда линукс-хакер выдаёт взвешенную реплику — он делает public service announcement, доносит важную информацию до общества.

                    Точно так же: есть ли смысл расхваливать направо и налево последний голливудский блокбастер? Только если вы хотите сигнализировать свою принадлежность к интеллектуальному большинству. А вот рассказывать каждому встречному про арт-хаус режиссёра Ларпа фон Тридара — долг любого интеллигента.
                    Ответить
                    • s/А вот рассказывать каждому встречному про/Нести в массы знание про/
                      Ответить
                    • Какой багор )))

                      Нет, обсуждать популярную питушню нужно.
                      1. Если кто-то в вузе использовал условную MSVS2005, то это не значит, что он в курсе того, что в ней изменилось за 10-20 лет.
                      2. Не все следят за тенденциями. Человек может использовать свою редкую IDE по какой-то причине (её использовали в конторе, куда он пошёл работать), а про остальные знать только названия. Ему может пригодиться информация о MSVS.
                      3. Среди голосов фанбоев должны звучать голоса пользователей. И нет ничего такого, если пользователь хвалит хороший продукт. Мозг фильтрует маркетинговый шум вместе с голосами фанбоев. Без обсуждения и хвалебных речей пользователей о "MSVS" известно столько же, сколько про "acme под plan9".

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

              > Не хорошо, а хуёво и неэффективно.
              Так вот в том-то вопрос и стоит: что в «systemd» хуёвого и неэффективного? Неэффективно хранить все юниты в одном месте? Неэффективно управлять системой через единый и унифицированный CL интерфейс, а не кучу говноутилит с разными наименованиями, аргументами и способами вызова? Хуёво иметь удобный интерфейс доступа к логам, который позволяет не рыться по всем директориям /var/logs как голодная собака в помойке? Жду конкретики.

              > В портянке говнокода на 500 строчек кода найти уязвимость заметно проще, чем в портянке говнокода на 500000 строк кода.
              Ergo, ядро «Линукса» не нужно.

              > А теперь хрюкни и обнови шиндошс, или что ты там делаешь обычно.
              По делу есть что сказать?
              Ответить
              • > На моей рабочей станции у меня «Windows», да. Она мои задачи выполняет достаточно хорошо.

                Зачем тебе тогда «Linux»? Сидел бы и дальше на виндуозе, раз он выполняет твои задачи. Машина без ремней безопасности тоже выполняет свои задачи, но я, пожалуй, на такой кататься не буду.

                > Так вот в том-то вопрос и стоит: что в «systemd» хуёвого и неэффективного

                Всё. Мистер глиномес погнался за всеми зайцами сразу и ни одного не догнал.

                У почти любой питушни из SystemD есть нормальный специализированный аналог, например для управления контейнерами лучше взять НЕ системДэ.

                > унифицированный

                Мифы про какую-то унификацию в системдэ просто смешны.

                > Ergo, ядро «Линукса» не нужно.

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

        Есть некоторая система, известная своей простотой. Простота позволяет легко понять систему, а значит и легко устранить возникшие проблемы.
        Эта система привлекает поборников простоты, которые изучают её устройство (инвестируя в это изучение некоторое количество времени) и потом там прекрасно живут.

        У большинства из них проблем никаких нет.

        И вот в эту систему вводят Абстракцию.
        Абстракция сильно усложняет систему (сравни запуск шел скрипта с обращением к демону по dbus, например), делает её более сложной для понимания и отладки, и что самое противное -- заменяет собой куски старой (простой) системы в практически случайном порядке.
        Но старые куски-то остаются.

        В итоге получается Франкенштейн, где часть сделана по-старому, часть по новому (как если бы ты делал ``WriteConsole`` и std::cout << одновременно).


        Поборникам простоты говорят, что Абстракция решает массу проблем.
        Но этих проблем у них не было. Вот не было в сервере с одной картой проблемы с непредсказуемостью имен интерфейсов, которую решают ``.link`` файлы.

        Зато им ввели новую Абстракцию, сильно усложнив их систему, да параллельно еще и обнулив часть знаний.

        Это вызвало ожидаемую реакцию.


        Вот если бы Линукс изначально был как AIX*, то всё было бы ок
        * https://ru.wikipedia.org/wiki/AIX
        Ответить
        • Он прав)
          Ответить
        • > Зато им ввели новую Абстракцию, сильно усложнив их систему, да параллельно еще и обнулив часть знаний.
          > Поборникам простоты говорят, что Абстракция решает массу проблем.
          > Но этих проблем у них не было.

          Подтверждаю.

          Реальный пример: https://govnokod.ru/26671#comment549703
          Ответить
    • Кстати, почему все так не любят «PHP»?
      Это же удобный, многофункциональный, консистентный и унифицированный инструмент, который позволяет эффективно решать распространённые проблемы.

      Понятно, конечно, что утёнок душит выкидывать тонны ущербных "представлений о правильных архитектурах" из головы, но взрослеть-то нужно.

      Разговоры про «красоту кода» и «мартинов фаулеров» лучше оставить прыщавым подросткам: это им приличествует разводить срачи о том, чьи скрипты православные, а чьи — ересь. Взрослым людям язык нужен для эффективного решения задач, а не для споров про философию и подход.
      Ответить
    • К вопросу о Systemd.

      Только что на debian рассылке

      ---------
      Hi,

      Suddenly I can no longer reboot or poweroff my up-to-date
      bullseye system:


      # reboot
      /usr/sbin/reboot: disabled in systemd-nspawn container


      Linux container share the kernel of the host system they are running on,
      there is no need to reboot just the container.

      However, please contact your system administrator to reboot this
      container from the host system.



      # poweroff
      /usr/sbin/poweroff: disabled in systemd-nspawn container
      ---------

      как на виндуосе ))
      Ответить
      • Чувак превратил свою ось в контейнер?

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

          systemd-nspawn is like the chroot command, but it is a chroot on steroids.

          systemd-nspawn limits access to various kernel interfaces in the container to read-only, such as /sys, /proc/sys or /sys/fs/selinux

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

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

      Хотя, я спать пойду. С учётом того, что меня забанили на ГК, я всё ещё сижу на нём до 4 утра. Какой багор )))

      #MinGW #MSYS #MSYS2 #WSL2 #MD5 #OpenSSL #виндопердолинг #пердолинг
      Ответить
      • > Да, надо перекатываться, там уже тормозит

        А чем нарисованы эти таблички?
        system   | avg Mh/s | sqrt(disp Mh/s)
        ---------+----------+----------------
        MinGW 32 |    1.509 |           0.12
        WSL2  64 |    1.388 |           0.10
        Ответить
        • Руками, но с помощью редактирования сразу нескольких строк (Alt+Shift) в Notepad++.
          Ответить
          • Тьфу. А я уже подумал что в js завели «pandas» или «R».
            Ответить
            • var avg = xs => xs.reduce((a, x) => a+x, 0) / xs.length
              var err = xs => Math.sqrt((avg => xs.reduce((a, x) => a+(x-avg)**2, 0))(avg(xs)) / xs.length)

              Хотя, наверно в npm есть модуль для питушения статистики, но тут надо было посчитать пару чисел, одно из которых никто не будет смотреть, а второе - никто не будет смотреть.
              Ответить
              • Не, я за pretty print.

                pandas например использует:
                https://pypi.org/project/tabulate

                Там даже стили можно выбирать. pretty/psql очень похожи на таблицу выше
                >>> print(tabulate(table, headers, tablefmt="pretty"))
                +-------+-----+
                | item  | qty |
                +-------+-----+
                | spam  | 42  |
                | eggs  | 451 |
                | bacon |  0  |
                +-------+-----+
                Ответить
      • Пробую собрать эту питушню, пока не получается:
        https://github.com/intel/isa-l_crypto

        Тут есть и SSE, и AVX.
        Ответить
        • А «Шланг» взял. set CC=clang, а потом configure.
          Ответить
        • Интеловская питушня интересная. В зависимости от процессора может выбирать нужный модуль (без SSE и AVX либо с поддерживаемой версией SSE или AVX).

          Для сборки нужно уметь обращаться с autotools (autoconf, automake).

          Надо запомнить: подсовывать «nasm», а не «yasm». Текущая версия «yasm» некоторых инструкций не знает (об этом есть issue в хранилище «yasm» в «Гитхабе»).

          Ассемблерный код в библиотеке только 64-битный.
          Ответить
          • > нужно уметь обращаться с autotools

            configure надо генерить что ли? О_о

            Первый раз такую кривую либу вижу. Хотя может просто dev сборку выложили.
            Ответить
            • > dev сборку

              А, это ж мастер на гитхабе а не готовый пакет, тьфу. Тогда логично, что надо самому генерить конфигур.
              Ответить
              • Там всё «красиво»: в ридмишке написано, что можно использовать gcc, clang, icc или msvc для сишного кода и nasm или yasm для ассемблерного.

                Так вот gcc и yasm у меня пролетели. Вроде clang+nasm — рабочая кобенация.
                Ответить
            • automootools
              Ответить
          • Под винубунту надо было сделать
            sudo apt-get install autoconf libtool nasm
            А дальше по мануалу из README:
            ./autogen.sh
            ./configure # я по совету автогена написал ./configure --prefix=/usr --libdir=/usr/lib
            make
            sudo make install


            make check выдал 25 из 25.
            Ответить
            • MSVC+NASM — тоже рабочая кобенация. Собирается через nmake. Для сборки тестов пирфоманса придётся поправить Makefile.nmake, чтобы указать пути к OpenSSL.
              Ответить
              • P.S. А нет, тест пирфоманса всё равно не соберётся. Нужно портировать функцию perf_start.
                Ответить
              • > MSVC
                Это ещё её устанавливать надо. Гигабайтам питушни на диске, купленном за свои кровные, скажем НЕТ!
                Ответить
                • Именно поэтому я против «MS SQL Server». Его конкуренты («MySQL», «PostgreSQL», «Firebird») не требуют десятка гигабайтиков места на диске.
                  Ответить
                  • не требуют, а в замен и не умеют нихуя, лол
                    Ответить
                    • Test
                      Ответить
                    • Минусуют долбоёбы, чьи знания SQL ограничиваются "SELECT *FROM TOVARY".

                      Как там с materialized views в майсцыкуэлях? Как с adaptive joins?
                      Долбоёбы и слов-то таких не знают, зато кукарекают постоянно "зачем нам ваши мсскули и ораклы, кококо, у нас на php+mysql всё прекрасно работает"
                      Ответить
                      • > adaptive joins

                        Это говно.

                        > materialized views

                        Это хуйня.

                        > Долбоёбы и слов-то таких не знают

                        А он прав)
                        Ответить
                        • > Это говно.
                          > Это хуйня.
                          Почему?
                          Ответить
                          • Потом, что я не пользуюсь ни тем, ни другим. Да, мне хватает простых CRUD-операций. Как-то так получилось, что мне ни джойны, ни хуёйны, ни вьюс, ни хуюс особо не нужны.
                            Ответить
                          • > adaptive joins

                            Мелкомягкие говорят: вот этот алгоритм будет эффективнее на таком вот количестве говна, а вот этот уже на более другом количестве говна!!!!!!

                            И я сразу же вспоминаю про КОНТРОЛЛЕРЫ, битоёбство и прочее питушение. Так вот, это – оверинжиниринг и говно. Такая даза банных не нужна.

                            > Это хуйня.

                            Я передумал уже, это не хуйня.
                            Ответить
                      • Материализованные вьюхи есть в «Постгресе», например.
                        Ответить
                        • Тогда это не хуйня, зато MS SQL Server соснул в очередной раз.
                          Ответить
                        • >Материализованные вьюхи есть в «Постгресе», например.
                          их уже не нужно вручную обновлять>?
                          Ответить
                      • > Долбоёбы и слов-то таких не знают
                        Действительно. Про adaptive joins даже не слышал.
                        Вроде тут понятно объясняют: http://www.queryprocessor.ru/adaptive-query-processing/

                        Это же космические технологии: алгоритм на ходу сам себя переписывает. Я джва года ждал такую фичу.
                        Ответить
                        • > SQL Server имеет три физических типа соединений Nested Loops Join, Hash Join и Merge Join. Каждый из них хорош при определенных условиях.


                          Я использую СУБД не для того, чтобы думать о физическом представлении данных. Если я захочу побайтоёбить, я возьму няшную или что-нибудь типа того.

                          create nonclustered columnstore index dummy on Sales.SalesOrderHeader(SalesOrderID) where SalesOrderID = -1 and SalesOrderID = -2;


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

                          Какое говно )))
                          Ответить
                          • То есть ``EXPLAIN``ом ты не пользуешься?

                            Ну наверное это типично для пользователя MySQL
                            Ответить
                  • 10Гб - это и не много. Нищеброд что ли?
                    Ответить
        • SEO-пост.

          Intel(R) Intelligent Storage Acceleration Library Crypto Version
          ISA-L_crypto is a collection of optimized low-level functions targeting storage applications. ISA-L_crypto includes:

          • Multi-buffer hashes - run multiple hash jobs together on one core for much better throughput than single-buffer versions.

          • • SHA1, SHA256, SHA512, MD5, SM3

          • Multi-hash - Get the performance of multi-buffer hashing with a single-buffer interface. Specification ref : Multi-Hash white paper

          • Multi-hash + murmur - run both together.

          • AES - block ciphers

          • • XTS, GCM, CBC

          • Rolling hash - Hash input in a window which moves through the input
          Ответить
        • Библиотека собралась. Проходит все тесты, кроме AES, почему-то.

          Тест пирфоманса: sha1 и sha256 в 2 раза быстрее, чем в OpenSSL, md5 — в 3 раза быстрее. Для sha512 разгон не получился. 1:1 с OpenSSL.

          Итого: с этой библиотекой есть шанс разогнать md5 в 3 раза. Не гигахэши, конечно.
          Ответить
          • А хэш-кот сколько выдаёт на твоей железке?

            З.Ы. Ты же multi-buffer режим юзаешь, как они и предлагают? Насколько помню, эти хеши не очень хорошо ложатся на SSE, зато можно параллельно несколько блоков считать чтобы свободные куски регистров забить. Или я туплю и это только про AES было...
            Ответить
            • Часть тестов для AES не прошла, потому что программа упала на инструкции VAESIMC. Значит, расширения для AES на том процессоре нету.
              Ответить
            • Хэш-кот на первом же примере вывел: «Not enough allocatable device memory for this attack». Надо разбираться с ним.
              Ответить
            • Научился считать хэши этой библиотекой.

              На одном буфере она работает медленнее, чем OpenSSL, на двух скорости сравниваются, дальше при увеличении количества буферов скорость растёт, а после 16 параллельных буферов прирост по сравнению с 16 незаметен. Разницу между реализацией на SSE и на AVX я не заметил.

              На моём железе на входных данных, равных по длине емейлам, получил прирост в два раза с копейками. Похоже, что больший прирост можно выжать только на больших данных (в интеловских тестах мегабайты, а типичный емейл весит байтов 20).

              Итого: ускорение раза в два на таких крошечных блоках выжать можно.

              Не знаю, может быть, на AVX-512 результат получше будет, но пока проверить не на чем.
              Ответить
              • P.S. Реальный пример кода:
                md5_ctx_mgr_init(&md5_mgr);        
                  for (i = 0; i < TEST_BUFS; i++) {
                      hash_ctx_init(&md5_ctx[i]);
                  }
                
                  for (i = 0; i < TEST_BUFS; i++) {
                      md5_ctx_mgr_submit(&md5_mgr, &md5_ctx[i], email[i], length[i], HASH_ENTIRE);
                  }
                
                  while(NULL != md5_ctx_mgr_flush(&md5_mgr)) {} // ждём завершения вычисления
                  // до завершения текущих вычислений контекст нельзя использовать для вычисления следующих хэшей
                
                  for (i = 0; i < TEST_BUFS; i++) {
                    digest_buf = hash_ctx_digest(&md5_ctx[i]); // забираем результат вычисления каждого хэша из digest_buf
                  }
                Ответить
              • > медленнее, чем OpenSSL

                Какой анскилл )))
                Ответить
                • Эта библиотека подходит для хэширования видеофайлов, архивов (на сайте «Интела» есть реальные примеры с ускорением в 9 раз), а на таких мелких данных как емейлы слишком много времени тратится на подготовительные работы.
                  Ответить
                • Ещё одна мысль возникла. На больших данных можно провернуть такой трюк: посчитать частичную сумму от начала массива и не финализировать сразу, а расклонировать и финализировать с разными окончаниями. По идее должен быть выигрыш, потому что сумма от начала не вычисляется повторно.

                  Но опять же на таких крошечных данных, как адреса почты, это не поможет.
                  Ответить
                  • Можно, но у md5 и sha такие ебические входные блоки (64 байта), что там вся почта целиком войдёт в один блок...

                    И профита от передачи кусками вообще не будет, имхо. Оно тупо забуферизует первый кусок и ничего не будет считать пока ты остаток не передашь.
                    Ответить
                    • Надо завести почту на домене abcdefghijklmnopqrstuvwxyzabcdefghijklmn opqrstuvwxyzabcdefghijk.com. Сейчас проверил — вроде закрыли этот сервис. На «ГК» я нашёл только одного юзера с такой почтой.
                      Ответить
                  • З.Ы. Имхо, тебе тут надо пытаться вычистить вилкой весь оверхед вокруг вычислительного ядра. Чтобы осталась только подготовка набора буферов (4 вроде надо) с правильным паддингом и собственно ядро на асме/интринсиках, которое параллельно весь набор хеширует.
                    Ответить
                    • Если конкретно про задачу реверса граватара, то там много над чем можно подумать:

                      1. Алгоритм перебора. Не использовать конкатенацию, а писать поверх.

                      2. Алгоритм поиска вычисленного хэша в базе юзеров. Существует масса реализаций ассоциативных массивов. Для базы в 68к юзеров и ключа в 128 батов особой разницы между разными мапами не будет?
                      Ответить
                      • > особой разницы между разными мапами

                        Кстати, у тебя же ключи уже отлично прохешированы через md5. Поэтому можешь смело упрощать хеширующую функцию в мапе до минимума (тупо взять первые 4 байта?)

                        Может быть вообще свои какие-то массивы вместо мапы попробовать стоит. База же фиксированная, можно один раз подготовить.
                        Ответить
                        • Кстати, ради интереса нужно посчитать, сколько будет коллизий на обрезанном хэше. База не такая большая. Есть шанс, что будет по одному юзеру на хэш (ну кроме полных дублей, которые я уже нашёл).
                          Ответить
                        • Да, Царь завещал использовать массив.

                          // инициализация
                          hashes.sort(by_first_two_bytes);
                          // готовим указатели
                          hash hmap[0x10001] = {}; // мапа
                          uint16_t index = 0;
                          hmap[index] = &hashes.front();
                          for (auto& h : hashes) {
                            const uint16_t i = *reinterpret_cast<uint16_t*>(h);
                            while (index < i) hmap[++index] = &h;
                          }
                          while (index < 0x10000) hmap[++index] = &hashes.back() + 1;
                          
                          
                          // используем
                          crack_loop {
                            auto calculated = md5(pituz);
                          
                            // лукавпим
                            const uint16_t index = *reinterpret_cast<uint16_t*>(calculated);
                            for (hash h=hmap[index]; h<hmap[index+1]; h++) {
                              if (!memcmp(h, calculated, md5_len)) std::cout << "found" << std::endl;
                            }
                          }
                          Ответить
                          • Патч. Т.к. массив на 0x10001, надо проверять на переполнение; поскольку сортировка не согласована с индейцами, лучше выковырять байты руками, иначе сортировка сортирует не то:
                            - while (index < 0x10000)
                            + while (index && index < 0x10000)
                            
                            - *reinterpret_cast<uint16_t*>(pitux)
                            + pitux[0] << CHAR_BIT | pitux[1]


                            Что интересно, такой код дал прирост по сравнению с использвоанием std::map. Я загнала хэши в такое хранилище, вставила лукап после подсчёта хэша и только при наличии совпадения (это 60к случаев из практически бесконечности) уже искала в настоящей std::map.

                            std::map: 1.4Мх/с
                            царский set: 3.6Мх/с

                            Что интересно, если использовать memcmp для реализации operator < для хэша, тоже начинает тормозить.

                            std::map + memcmp: 1.2Мх/с
                            std::map + наивный алгоритм сравнения: 1.4Мх/с

                            Однако, operator == для хэша, совмещённый с царским лукапом, преимуществ по сравнению с велосипедным сравнением не дал.

                            Генерация вореций просело сильнее. Раньше это было 5%, а теперь - уже 15% слива:

                            вореции: 3.0Мх/с
                            прямой подбор: 3.6Мх/с
                            Ответить
                            • Что интересно, в сравнении MinGW-32 vs WSL2-64 на этот раз победил WSL2 со счётом 3.85:3.64.
                              Ответить
                            • > *reinterpret_cast<uint16_t*>(pitux)
                              > pitux[0] << CHAR_BIT | pitux[1]

                              Отлично!

                              Осталось intrinsic с sse4/avx2 напетушить, чтобы пачками по 8-16 штук обрабатывало.

                              За Царя и Воречество! Ура!
                              Ответить
                            • Попробуйте заменить memcmp чем-то таким:
                              #include <smmintrin.h> //SSE4.1
                              #include <nmmintrin.h> //SSE4.2
                              #include <immintrin.h>  //AVX2
                              #ifdef __GNUC__
                              __attribute__ ((target ("avx2")))
                              #endif
                              int cmp_avx2 (const int16_t* const ref, const int16_t* const hash, const int n) {
                              
                                  for (int i=0;i<n;i+=16) {
                                      __m256i pcmp = _mm256_cmpeq_epi32(*( __m256i* ) &ref[i], *( __m256i* ) &hash[i]);
                                      unsigned bitmask = _mm256_movemask_epi8(pcmp);
                                      if (bitmask == 0xffffffffU){
                                          return true;
                                      }
                                  }
                                  return false;
                              }


                              Из-за блядских auto и выкинутых кусков не совсем понятен тип.
                              Для 128-бит md5 можно по джва сразу сравнивать.

                              https://godbolt.org/z/865E8PeYf
                              Ответить
                            • Можно цикл выкинуть если сравнивается по одному 128 битному значению

                              static inline int m128_diff(const void* ref, const void* hash)
                              { 
                                return 0xFFFF ^ _mm_movemask_epi8(_mm_cmpeq_epi8(
                                   *( __m128i* ) ref, *( __m128i* ) hash
                                )); 
                              
                              }
                              
                              m128_diff(void const*, void const*):
                                      movdqa  xmm0, XMMWORD PTR [rdi] ; это по идее должно уже быть в регистрах
                                      pcmpeqb xmm0, XMMWORD PTR [rsi] ; инлайн уберёт тот movdqa
                                      pmovmskb        eax, xmm0
                                      xor     eax, 65535
                                      ret
                              Ответить
                              • >> это по идее

                                В регистрах оно было бы, если бы мы передавали структуру, а так будет копироваться из адреса в памяти.
                                Ответить
                                • P.S. Хотя если оптимизатор использует инлайн, то это жонглирование через ОЗУ может аннигилировать.
                                  Ответить
                              • Там OpenSSL'евский unsigned char*.
                                А в комментарии с царским лукапом в некоторых местах псевдокод.

                                Заголовки про SSE не прошли из-за __m64, после их выключения с включённым только последним сравнение скомпилировалось под винубунтой (мингв не компилирует). Но заметный прирост или тормоза не наблюдаются.

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

                                    И ты туда же?
                                    Ответить
                                    • Это 1024--, на свсякий случай
                                      Ответить
                                      • Я Настенька!

                                        1024-- бы не додумался до царского лукапа. Он сначала бездумно написал прототип под Node.js, а потом на крестах бездумно впердолил std::map.
                                        Ответить
                                • Царская библиотека для хэширования даёт прирост, когда одновременно считаются 16 хэшей или более. Нам нужно итерироваться по 26...40 символам. В принципе, адреса, отличающиеся одним символом, можно попрообовать похэшировать параллельно. Если 40 будет многовато, можно попробовать разбить на части (16+16+8).
                                  Ответить
                                • Кстати, скачал твою программу и по-быстрому прикрутил царскую библиотеку для хеширования.

                                  Заменил std::map на std::unordered_map. Итоговое ускорение 3 раза.
                                  Ответить
                                  • P.S. А царская библиотека в gcc в mingw всё-таки собралась. Возможно, pacman -Su помог.
                                    Ответить
                                  • А если добавить царский лукап? Диктую патч:

                                    В setttings добавить #define TSAR_LOOKUP

                                    В struct digest_t - operator ==, например, как
                                    bool operator == (const digest_t& rhs) const {
                                        return memcmp(data, rhs.data, MD5_DIGEST_LENGTH) == 0;
                                    }


                                    После fi.close() добавить
                                    #ifdef TSAR_LOOKUP
                                      std::vector<digest_t> hashes;
                                      hashes.reserve(unknown_users.size());
                                      for (auto u : unknown_users) hashes.push_back(u.first);
                                      
                                      std::sort(hashes.begin(), hashes.end());
                                      digest_t* hmap[0x10001];
                                      uint16_t index = 0;
                                      hmap[index] = &hashes.front();
                                      for (auto& h : hashes) {
                                        const uint16_t i = h.data[0] << CHAR_BIT | h.data[1];
                                        while (index < i) hmap[++index] = &h;
                                      }
                                      while (index && index < 0x10000) hmap[++index] = &hashes.back() + 1;
                                    #endif


                                    Перед auto it = unknown_users.find
                                    #ifdef TSAR_LOOKUP
                                          bool found = false;
                                          const uint16_t index = digest.data[0] << CHAR_BIT | digest.data[1];
                                          for (digest_t* h=hmap[index]; h<hmap[index+1]; h++) {
                                            if (digest == *h) found = true;
                                          }
                                          if (found) {
                                    #endif

                                    Перед if (n == N)
                                    #ifdef TSAR_LOOKUP
                                          } // end if (found)
                                    #endif
                                    Ответить
                                    • Хотя, обновил сам репозиторий.
                                      Ответить
                                      • И ещё добавила фикс сравнения строк. Теперь не обязатяльно, чтобы домены начинались с собаки.
                                        Можно писать "[email protected]" вместо "@mail.ru".
                                        Ответить
                                  • так map небось деревянный внутри, и потому логорифмический, а unordered хешовый, и потом константный?
                                    Ответить
                                  • > Итоговое ускорение 3 раза.
                                    И ещё есть потенциал с Царским лукапом.

                                    Я попробовала вставить unordered_map с return *reinterpret_cast<const size_t*>(d.data); в теле std::hash<digest_t>::operator(). Варианты вида return d.data[0] << CHAR_BIT*3 | ... дают похожее значение, но на единицы процентов меньше.

                                    В итоге Царский лукап побеждает с отрывом:
                                    algorithm          | speed
                                    -------------------+---------
                                    std::map           | 1.19Mh/s
                                    std::unordered_map | 2.32Mh/s
                                    Tsar-style lookup  | 3.67Mh/s


                                    Если он с "медленным" OpenSSL накинул 50% пирфоманса, то что будет с Царской библиотекой, где доля времени лукапа увеличится.
                                    Ответить
                                    • Вчера погонял на семизначных логинах. Получилось так:
                                      std::map,           openssl              : 1,0 Mh/s
                                      std::map,           isal_crypto (16 bufs): 1,2 Mh/s
                                      std::unordered_map, openssl              : 1,6 Mh/s
                                      TSAR_LOOKUP,        openssl              : 2,2 Mh/s *
                                      std::unordered_map, isal_crypto (16 bufs): 2,7 Mh/s
                                      TSAR_LOOKUP,        isal_crypto (16 bufs): 3,7 Mh/s 
                                      
                                      TSAR_LOOKUP,        isal_crypto (1 buf)  : 1,3 Mh/s
                                      TSAR_LOOKUP,        isal_crypto (2 bufs) : 2,0 Mh/s
                                      TSAR_LOOKUP,        isal_crypto (4 bufs) : 2,7 Mh/s
                                      TSAR_LOOKUP,        isal_crypto (8 bufs) : 3,4 Mh/s
                                      TSAR_LOOKUP,        isal_crypto (16 bufs): 3,7 Mh/s
                                      TSAR_LOOKUP,        isal_crypto (32 bufs): 3,9 Mh/s
                                      TSAR_LOOKUP,        isal_crypto (64 bufs): 3,9 Mh/s


                                      Звёздочка означает, что на некоторых наборах данных программа падает (пока не изучал, почему).

                                      Похоже, что разгон зависит от процессора. У тебя будет быстрее.
                                      Ответить
                                      • А как треды юзаешь, кстати?

                                        Каждый тред берёт себе достаточно большой кусок пространства имён и работает над ним не общаясь с другими?

                                        З.Ы. Можно ещё попробовать убрать лишние аллокации, работу со строками и т.п. если они есть. По-хорошему все горячие данные должны влезать в L1.
                                        Ответить
                                        • Сейчас никак. Программа однопоточная.

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

                                              https://govnokod.ru/27644#comment669384
                                              Ответить
                                              • Ну в общем я думаю надо избавляться от указателей в хешмапе.

                                                Доступ случайный, в L1 не входит,поэтому чем меньше обращений к L2 триггернет на каждую проверку -- тем лучше.
                                                Ответить
                                                • Про корзинки: пробовал разные хэш-функции для std::unordered_map. При длине от 16 бит (двух октетов) до 64 бит (восьми октетов) разница в скоросте незаметна. Если брать короче 16 бит, то начинает тормозить.
                                                  Ответить
                                      • Дополнение:
                                        boost::container::flat_map, isal_crypto (16 bufs): 1,4 Mh/s


                                        flat_map оказался быстрее std::map, но медленнее std::unordered_map.
                                        Ответить
                                        • Проверь «robin_hood::unordered_flat_map» из https://github.com/martinus/robin-hood-hashing. Обещают разъебать «std» в хламину.
                                          Ответить
                                          • > Обещают разъебать «std» в хламину

                                            Пока что std слил хвалёный flat_map.

                                            К слову на подобных задачах мне небольшой давал буст ручной префетч следующих адресов.

                                            Edit: KOKOKOS )))
                                            https://github.com/kokkos/kokkos/blob/master/containers/src/Kokkos_UnorderedMap.hpp
                                            Ответить
                                            • > Пока что std слил хвалёный flat_map.
                                              Так это просто потому что был нарушен главный принцип крестов: не плати за то, что не используешь. «flat_map» обеспечивает упорядоченность элементов, а это стоит процессорных денег. «std::map», обеспечивающий такой же набор услуг, «flat_map»-у сливает (за счёт того, что «flat_map» хранит всё дерево в одном массиве, а «std::map» — в разбросанных по всей памяти бакетах).
                                              Ответить
                                              • > не плати за то, что не используешь. «flat_map» обеспечивает упорядоченность элементов

                                                Логично.

                                                Читаю за robin_hood — очень интересно.
                                                Мне всегда нравились простые таблички с открытой индексацией (изящность и простота массива, локальность поиска, оцуцтвие оверхеда, нинужность питушарских указателей и дополнительных аллокаций).

                                                И я неоднократно сам их велосипедил. Но всегда раздражала необходимость при удалении закладывать т.н. tombstone.

                                                В robin-hood интересно придумали: хранить сдвиг от оптимального хеша.

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

                                                Не надо. Мне просто название очень понравилось.

                                                Я бы предложил попробовать google::dense_hash_map (но меня не нужно слушать — я не настоящий крестоблядь, у меня даже анимешной девочки на аватаре нету.)
                                                Ответить
                                          • Спасибо. Попробую.

                                            Ещё у 1024-- таблица юзеров полностью в мапе. Я вынес таблицу юзеров в статический массив (в нём же всего 68к записей), а в мапе оставил только отображение md5 в индекс в этом массиве. С 2,7 Mh/s скорость поднялась до 2,9 MH/s. Как-то не очень заметно оказалось.
                                            Ответить
                                            • > отображение md5 в индекс

                                              А зачем тут мап, кстати? Предлагаю в горячем цикле оставить set, а мапать md5 в юзера уже в холодном коде, когда торопиться некуда.
                                              Ответить
                                              • Кажется, понял. Сначала в сете проверяем факт есть/нет, а только потом, если есть, ищем в мапе.
                                                Ответить
                                                • > Сначала в сете проверяем факт есть/нет

                                                  Кстати, а попробуй вот такой вариант ещё.

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

                                                  По идее 95% обращений к основной мапе должно срезать (т.е. только 60к битов из миллиона выставлены).
                                                  Ответить
                                                  • std::set и std::unordered_set тормозят, предвыборка по robin_hood::unordered_set или robin_hood::unordered_flat_set даёт копейки прироста скорости, а вот предвыборка по std::bitset по 20-битным числам немного ускоряет.

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

                                                      О! Ну тогда есть ещё смысл поиграться с фильтрами Блума, которые ISO ниже советует.
                                                      Ответить
                                                      • А тогда получается, что на 20 битах нужно 11 хеш-функций, на 19 — 6, на 18 — 3, потому что формула 0,7×pow(2,N)/68000.

                                                        Особенных изменений не видно.

                                                        Видимо, всё таки крутить нужно алгоритм перебора исходных слов.
                                                        Ответить
                                                      • Всё-таки у 1024-- перебор довольно быстрый (ну в рамках непараллельной архитектуры).

                                                        Интеловская библиотека с программой перебора помимо gcc собрались в MSVC и в clang. В MSVC профайлер ничего интересного не показал. Слишком большой main, придётся его рефакторить.

                                                        В clang профилировать я пока не умею. А у gcc в новых mingw, как я уже говорил, профайлер сломали. Он выводит пустую таблицу.
                                                        Ответить
                                                    • > предвыборка по std::bitset по 20-битным числам

                                                      М-м-м-м, bitset царская вещь.

                                                      > есть смысл потюнинговать количество битов.
                                                      Я бы бобробывал очевидные размеры: 16 и 24. И один неочевидный 16+3 =19 бит.

                                                      2²⁴ бит = 2 Mb, в кеш поместится.

                                                      Не знаю что у борманда за ЦПУ, но 128KB L1D это очень нетипично.(только новые Apple)

                                                      А 2¹⁹=64 KB (старые АМД). Типичный размер L1D — это 32KB.
                                                      Ответить
                                                      • > очень нетипично

                                                        Да самый обычный 8700k...

                                                        L1d cache: 192 KiB
                                                        L1i cache: 192 KiB
                                                        L2 cache: 1.5 MiB
                                                        L3 cache: 12 MiB

                                                        З.Ы. Тьфу блядь, я дура. Это 192 на 6 ядер. У каждого по 32. Ёбаные маркетологи.
                                                        Ответить
                                                        • Так это на все ядра.
                                                          https://www.cpu-world.com/CPUs/Core_i7/Intel-Core i7 i7-8700K.html
                                                          > Level 1 cache size 6 x 32 KB 8-way set associative data caches
                                                          Ответить
                                                          • > Так это на все ядра.

                                                            Да, я уже поняла ;(

                                                            Ёбаные маркетологи. В чём смысл писать суммарный L1, а не на каждое ядро. Он же не расшаренный...
                                                            Ответить
                                                            • Наёбывают нашего брата нашу сестру.
                                                              Ответить
                                                            • Вспомнил ещё один наняк: ядра бывают с гипертредингом, а бывают без. Иногда ядра с гипертредингом считают за одно, а иногда за два.
                                                              Ответить
                                                              • У меня 4 ядра, по 2 треда на ядро.
                                                                Ответить
                                                              • Ну они где-то 1.5 в зависимости от качества кода.

                                                                Второй тред нужен просто чтобы поюзать остатки железа, которые не потратил первый.
                                                                Ответить
                                                                • То есть итоговый пирфоманс зависит от того, как раскидали задачи по ядрам? Значит, в одном ядре нужно кобенировать «тяжёлую» задачу с «лёгкой»?
                                                                  Ответить
                                                                  • По моему там так:

                                                                    Каждый "процессор" имеет свой набор регистров (ну на самом деле их много, мы же помним про станции резервирования Томасуло?) и свой APIC.

                                                                    Для ОС это как-бы отдельный процессор.

                                                                    Но всё остальное у них общее.

                                                                    Потому пока один процессор ждёт пока ему данные придут из памяти, другой может чото считать.

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

                                                                      И тут мы добавляем микро-шедулер и умудряемся исполнить на том же железе команды от джвух тредов. Пока один тред ждёт ответа от памяти, мы второму что-нибудь считаем и т.п.

                                                                      В общем-то у видюх примерно такая же схема, только там вместо двух гипертредов тысячи и большая часть ждёт ответа от памяти (насколько помню, там всегда high-latency, high-bandwidth).

                                                                      З.Ы. А идеальный код без лишних зависимостей сожрёт все ресурсы ядра сам, там соседям только крошки останутся.
                                                                      Ответить
                                                          • сумма температур по больнице
                                                            Ответить
                                                            • Кстати, при описании климата есть термин «сумма температур». Это сумма среднесуточных температур, что экивалентно средней температуре за период, умноженной на количество дней.
                                                              Ответить
                                                        • > L1d cache: 192 KiB
                                                          У Штеуда всю дорогу было по 32Kb L1D на ядро (только в Sunny Cove они решились увеличить до 48Kb).

                                                          У Амд со времён старых Атлонов по 64Кб кеша (не инклюзивного), но низкая ассоциативность.

                                                          В Zen они понизили L1D до 32Кб, увеличив ассоциативность.

                                                          Единственные ЦПУ где очень-очень-очень много L1 это свежие Яббл. Они со времён А12 просто с ума сошли.
                                                          Ответить
                                                          • > У Штеуда всю дорогу было по 32Kb

                                                            Ну вот я и слилась как анскилльная лалка, даже не в курсе сколько кеша у проца (((
                                                            Ответить
                                                      • 20 бит лучше всего, хотя размер L1D = 32KB.

                                                        Видимо, при более мелких размерах много ложных срабатываний, потому и медленнее.

                                                        По сравнению с неприкрытой robin_hash::unordered_flat_map прирост невелик.
                                                        Ответить
                                                • В этом случае можно попробовать заюзать https://ru.wikipedia.org/wiki/Фильтр_Блума / https://en.wikipedia.org/wiki/Bloom_filter. Сначала проверять вероятностно (подозреваю, можно уместиться в один кэшлайн и потечь), а потом уже спокойно и медленно отфильтровывать ложные срабатывания.
                                                  Ответить
                                                  • > Фильтр_Блума

                                                    Бля, вот как вы помните все эти умные названия?

                                                    Я идею то помню, а нагуглить ссылку на неё не смогла, пришлось своими словами описывать в комменте выше. А, у меня вырожденный случай с одним хешем получился.
                                                    Ответить
                                                    • Именно поэтому я за «Postgresql». Недавно освежал знания про индексы в нём.
                                                      https://www.postgresql.org/docs/current/bloom.html
                                                      Ответить
                                                      • Кстати, в нашем случае даже какие-то дополнительные хеши для Блума выдумывать не надо. Можно просто брать разные куски из md5.

                                                        Что-то в духе if (filter[md5[0]] | filter[md5[1]] | filter[md5[2]] | filter[md5[3]]) { ... }
                                                        Ответить
                                              • >> таблица юзеров полностью в мапе
                                                > А зачем тут мап
                                                Если задефайнить Царский Лукап, у Настеньки сначала смотрится в Царском сете, а потом, если вдруг нашлось - в std::map.
                                                Ответить
                                                • robin_hood::unordered_flat_map в одиночку выдаёт большую скорость, чем царский лукап + std::(unordered_)map.
                                                  Ответить
                                          • Круто! 3,8 MH/s вместо 2,7MH/s без велосипедного царского поиска.

                                            И отдельно ничего ставить и компилировать не надо. Просто инклюдишь "robin_hood.h".
                                            Ответить
                                            • > 3,8 MH/s

                                              Кстати, а замерял профайлером какой участок кода сейчас боттл-неко? Подготовка буферов, хеширование или поиск в мапе?
                                              Ответить
                                              • Только не смейтесь. В новых версиях «MinGW/MSYS2» сломали профайлер:
                                                https://stackoverflow.com/questions/67240792/gprof-producing-no-output-for-a-program-that-takes-reasonable-time-to-execute

                                                Придётся переходить на «Линукс» или откапывать из архивов старую версию «MinGW».

                                                Или пересобрать под «MSVC» всё, включая царскую библиотеку для «md5».
                                                Ответить
                                              • >> боттл-неко

                                                https://cs3.pikabu.ru/post_img/big/2014/03/18/5/1395125808_833463532.jpg
                                                Ответить
                                                • Вот ещё пара царских мап, которые могут быть лучше в поиске чем robin_hood::unordered_flat_map (по бенчам самого же автора)

                                                  https://github.com/greg7mdp/parallel-hashmap/blob/master/README.md

                                                  https://tessil.github.io/robin-map/

                                                  https://github.com/skarupke/flat_hash_map

                                                  Первая лучше на std::string, а две последних на сырых интах.
                                                  Ответить
                                                  • > https://github.com/greg7mdp/parallel-hashmap/blob/master/README.md

                                                    Так в этой мапе, местный Царь разбил её на Группы по 16 элементов.

                                                    К каждому элементу приаттачен 1 бат метаданных (7 бит хеша + 1 бит свободно/удолено) .

                                                    Соответственно для группы из 16 элементов это 128 бит, которые он матчит одной SSE инструкцией.
                                                    // On lookup the hash is split into two parts:
                                                    // - H2: 7 bits (those stored in the control bytes)
                                                    // - H1: the rest of the bits
                                                    // The groups are probed using H1. For each group the slots are matched to H2 in
                                                    // parallel. Because H2 is 7 bits (128 states) and the number of slots per group
                                                    // is low (8 or 16) in almost all cases a match in H2 is also a lookup hit.
                                                    //
                                                    // On insert, once the right group is found (as in lookup), its slots are
                                                    // filled in order.

                                                    Что сродни тому что я предлагал выше.
                                                    Ответить
                                          • > robin_hood
                                            Изучаю дальше.

                                            Один .h файл без зависимостей — это плюс. Возможность работать как в режиме flat (без перепитушни) так и linked list нод (как в std) — ещё плюс.

                                            Кастомный царский аллокатор однотипных нод на массиве это ещё плюс.


                                            // Allocates bulks of memory for objects of type T. This deallocates the memory in the destructor,
                                            // and keeps a linked list of the allocated memory around.

                                            Ну и даже конкуренты подтверждают, что действительно сливает в хламину.
                                            Ответить
                                        • > std::map is a sorted associative container that contains key-value pairs with unique keys. Keys are sorted by using the comparison function Compare. Search, removal, and insertion operations have logarithmic complexity. Maps are usually implemented as red-black trees

                                          > unordered_map is an associative container that contains key-value pairs with unique keys. Search, insertion, and removal of elements have average constant-time complexity.

                                          > Internally, the elements are not sorted in any particular order, but organized into buckets. Which bucket an element is placed into depends entirely on the hash of its key.

                                          Хеш-мапа быстрее красно-чёрного дерева на алгоритме где выпадают практически рандомные хеши и не нужна сортировка. Логично.

                                          Проще пройти по прямому адресу в массив (пусть даже в рандомное место), чем делать десяток сравнений/ветвлений (branch predictor не обрадуется).
                                          Ответить
                        • Поискал коллизии.

                          Сначала почистил базу от дублей (которые я показывал).

                          На хэше, обрезанном до 32 бит (четырёх байтов), коллизий нет. Причём можно брать как старшие 32 бита, так и младшие.

                          На хэше, обрезанном до 16 бит (двух байтов), есть коллизии. И тут самое интересное. Лидеры по количеству коллизий — нумерные петухи и антибагры (до семи юзеров на хэш). Можно искать файки, тупо отсортировав базу по хэшу. Работает и со старшими 16 битами, и со младшими. А говорили, что криптографические хэш-функции обеспечивают конфиденциальность...
                          Ответить
                          • P.S. Про поиск фаек я пошутил. Там слишком много случайных коллизий. Некоторые мои петухи начинают совпадать с петухами других юзеров. Просто нумерных много, вот они и вылезают.

                            Если хэш обрезать до 24 бит (трёх байтов), то получается не более двух юзеров на хэш, причём второй чаще всего — нумерной петух.
                            Ответить
                            • > причём второй чаще всего — нумерной петух.
                              С учётом того, что нумерные петухи составляют чуть меньше джвух третьих всей пользовательской базы «ГК» — это не очень удивляет.
                              Ответить
                            • > мои петухи

                              Дык убери их из базы, раз они твои...
                              Ответить
                      • > Для базы в 68к юзеров и ключа в 128 батов особой разницы между разными мапами не будет?
                        Будет. STL-говно точно отсосёт по пирфомансу из-за большого количества индирекций, рекомендую смотреть в сторону boost::flatmap или даже кастомных (бит-)массивов*.
                        Ответить
                        • Я смотрел, как дела в других языках. Оказывается, даже для «Хрюпаскаля» 100500 реализаций контейнеров:
                          https://www.benibela.de/fpc-map-benchmark_en.html
                          Ответить
                        • boost::containers::flatmap вообще никак не помогает, а вот std::unordered_map ускоряет поиск в полтора раза. Нам же всё равно, в каком порядке они будут выводиться.
                          Ответить
              • То ли тоже присоединиться к вашей специальной олимпиаде...
                Ответить
                • Всё, выебла openssl в 4 раза. Пора спать.
                  Ответить
                  • > выебла

                    https://i.imgur.com/vpJsUTD.jpg
                    Ответить
                    • Или вот так:

                      https://m.vk.com/video50524211_170438716
                      Ответить
                    • Доктор, откуда у вас такие картинки?
                      Ответить
                      • > Доктор

                        Не, я не Стертор.
                        Ответить
                        • Лучший анекдот по сумме баллов:
                          14 декабря 2001
                          
                          Приходит мужик к психотерапевту:
                          - Доктор помогите... мне кажется что меня окружают одни голубые!
                          - Хорошо, я буду показывать вам картинки - а вы описывать что на них
                            изображено!
                          Показывает мужику картину "Три богатыря" - что вы видите?
                          - Три голубых!!!
                          - Почему?
                          - Ну три мужика в поле одни - явно трахнуться хотят!!!
                          Показывает картину "Летят гуси косяком" - что вы видите?
                          - Гуси-голубые!
                          - Почему?
                          - Ну летят - друг другу в жопу смотрят - явно трахнуться хотят!!!
                          Ну хорошо говорит доктор - на меня посмотрите на кого я похож???
                          - Ну вы доктор явно пидорас!!!
                          - Почему?
                          - Ну а откуда у вас такие картинки?

                          В оригинале, правда, был тест Роршаха.
                          Ответить
                          • Ну у меня и другие картинки есть, например https://i.imgur.com/hwDPE6I.jpg
                            Ответить
                            • А зачем они у тебя есть?
                              Ответить
                              • Вычислять от них md5.
                                Ответить
                              • Тоже себе хочешь?
                                Ответить
                                • У меня уже есть, я просто не понимаю зачем их собирать.

                                  Хорошо, что bormand подсказала, теперь-то жизнь заиграет новыми красками!
                                  Ответить
                                  • Сколько уже "повычислял md5" за сегодня?
                                    Ответить
                                    • Я пока не могу вычислять: ищу идеальный секьюрный интернет-обозреватель с открытым исходным кодом под свободной лицензией с вкладками, поддержкой JS, поисковыми системами, книжными закладками и http-проксированием (для «i2p»), но КАЖДЫЙ интернет-обозреватель, который я устанавливаю, не нравится мне отсутствием чего-то вышеперечисленного.

                                      Видимо, придётся прикрутить «w3m» к «Emacs».

                                      Скоро «Emacs» поглотит мою систему целиком...
                                      Ответить
          • > Тест пирфоманса
            Сравнение total throughput для ./isal_multithread_perf -m pituz{,_mb}? Или какая-то другая питушня?
            Ответить
            • Total throughput для программ, которые собрались командой make perf.
              Ответить
            • isal_multithread_perf падает с «Segmentation fault». При сборке ругается на некорректные приведения типов (указатель в int и т. п.).
              Ответить
    • cat, zcat, bzcat, xzcat
      grep, zgrep, bzgrep, xzgrep
      more, zmore, bzmore, xzmore
      less, zless, bzless, xzless

      Какой юникс вей )))
      Ответить
      • Напоминает склонялку слов, которую изобрёл 1024--.

        А zstdcat и zstdgrep бывают?
        Ответить
        • Конечно!
          Ответить
        • man zstd
          zstd - zstd, zstdmt, unzstd, zstdcat - Compress or decompress .zst files
          
          SYNOPSIS
                 zstd [OPTIONS] [-|INPUT-FILE] [-o OUTPUT-FILE]
          
                 zstdmt is equivalent to zstd -T0
          
                 unzstd is equivalent to zstd -d
          
                 zstdcat is equivalent to zstd -dcf
          Ответить
    • -DANOTHER_BRICK_IN_THE -Wall

      В цфлагсах одной из линуксячьих утилит.
      Ответить
    • > Линукс — свой дом

      В один прекрасный день ты возвращаешься домой, а там systemd-homed.
      Ответить
      • Достаёшь ключи, чтобы открыть дверь, но там нет замочной скважины.

        Вместо этого дёргаешь за рычаг и проваливаешься в подземелье, идёшь по тёмным коридорам часами, щёлкая нужные рубильники по памяти, затем, доходя до самого нижнего этажа, переключаешь последний тумблер и разгадываешь судоку 100х100 квадратиков, чётные числа закрашиваешь чёрным, а нечётные – белым, чтобы получился куар-код для открытия двери.

        Только вот незадача, на двери нет камеры для считывания куар-кода: камера находится в другом подземелье...
        Ответить
      • homed-aloned
        Ответить
      • Можешь переехать в off-grid дом на LFS.
        Ответить
        • Буквально сейчас дособирала LFS с systemd...

          З.Ы. Ну кстати, чистый systemd выглядит намного разумнее, чем ёбаный кентавр из systemd и старых тулов, в который превратились остальные дистрибы.
          Ответить
          • Существование дистров без systemd подтверждает мой тезис. А попробуй службу апдейтов винде отключить*.

            * Один мой бывший коллега убеждал меня, что это просто и легко: он просто создаёт на диске ``C'' кучу файлов, набитых нулями (с помощью msys, что характерно), оставляя там всего пару гигабайт, и постепенно их удаляет. До удаления пользовательских данных ради апгрейда МС пока не допёр.
            Ответить
            • > и постепенно их удаляет...

              ... а апдейтер сразу же пожирает это место.
              Ответить
            • > кучу файлов, набитых нулями
              > До удаления пользовательских данных ради апгрейда МС пока не допёр.
              Да даже до автоматического зожатия нулей или создания sparse files.

              В новой версии винды я бы удалял или преобразовывал в случайный поток (вроде симлинка на слайс из /dev/urandom) даже случайно сгенерированную питушню, если её ни разу не читали и не копировали, ведь всё равно хозяин компьютера при таких условиях никогда не заметит разницы.

              > оставляя там всего пару гигабайт
              Надо спросить, что по этому поводу думает его SSD. Догадался ли контроллер до зожатия, или он всё ещё пердолится с игрой в пятнашки в этих последних гигабайтах.
              Ответить
            • > До удаления пользовательских данных ради апгрейда МС пока не допёр.

              А вот фиг знает, кто победит -- кеш вандрайва или кеш апдейтера. Если кеш апдейтера окажется важнее, то локальную копию вандрайва выжмет в облако.
              Ответить
            • А мог бы попробовать просто сделать Ethernet лимитированным. После этого винда не должна обновляться (по крайней мере, раньше так было).
              https://www.windowscentral.com/how-set-ethernet-connection-metered-windows-10
              Ответить
              • > не должна обновляться

                Не... она через несколько месяцев один фиг скажет: чувак, мне конечно жаль твой трафик, но что-то я давно не обновлялась.
                Ответить
                • Какой багор ))) А раньше она больше никогда не обновлялась, когда подключение делали лимитным.
                  Ответить
            • Зачем отключать обновления? Чтобы ваннакраи лучше работали?
              Ответить
              • Если ваннакраи – это принтеры, то да.
                Ответить
              • Потому что они занимают всё свободное место...

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


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

                  Но это всё какие-то апокрифические знания, потому что официальной документации нет.
                  Ответить
                  • > чистятся

                    И правда, офигеть. Дома у меня буквально метров 100, хотя винде уже несколько лет.

                    Почему тогда на работе там десятки гигабайт? Из-за визуал студий и прочих офисов поди?
                    Ответить
                    • Это может наверное зависеть от пустого места, от размера выделенного места для рекавекри поинтов (есть в настройках) ну и попробуй

                      Dism.exe /online /Cleanup-Image /StartComponentCleanup


                      зы: о, нашел доку

                      https://docs.microsoft.com/en-us/windows-hardware/manufacture/desktop/clean-up-the-winsxs-folder


                      the task will wait at least 30 days after an updated component has been installed before uninstalling the previous versions of the component.
                      Ответить
              • Да мало ли зачем. К примеру, госту нужно прокрасться в стан линуксоидов. А у них в сети мониторинг траффика на сервера MS, и всех пойманных вендузятников они тут же съедают. А госту нужно по-быстрому загуглить "как пользоваться 5G-чипатором".
                Ответить
                • P.S. Дурацкий ответ на дурацкий вопрос.
                  Ответить
                • >быстро

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

                https://www.dualshockers.com/songs-removed-grand-theft-auto-iv-todays-update/
                Ответить
            • > А попробуй службу апдейтов винде отключить*.
              Там всего-то надо отключить службу апдейтов, службу WaaSMedicSvc, от рута удалить их и почистить несколько тасков из планировщика заданий, которые эти службы восстанавливают (тоже от рута).
              Вроде бы ещё была какая-то служба, которая эти две восстанавливает, но я уже не помню.
              Ответить
              • > тасков, которые эти службы восстанавливают

                Какой анскилл )))

                Почему бы просто на уровне ядра не защитить эти ветки и файлы от всех программ, не подписанных майкрософтом?
                Ответить
                • Для «Заshitника Windows» что-то подобное прикрутили, но криво: саму службу удалить нельзя, а вот удалить к херам всё из «C:\ProgramData\Microsoft\Windows Defender» — можно (причём даже простому админу).
                  Ответить
              • А не будет у вас никакого рута! *смеющийся фермер*
                Емнип, уже сейчас админ в винде не может трогать файлы в некоторых системных директориях.
                Ответить
                • Админ давно уже не рут, рут — это NT\SYSTEM.
                  Ответить
                  • систем тоже не может их трогать, пока не станет их владельцем вроде

                    ну тоесть сначала take ownership, а потом write
                    иначе к ним доступ будет только у каких-нить TrunstedInstaller например
                    Ответить
                    • Да, take ownership — мощное средство для курощения винды.
                      Ответить
                      • Через пять лет: да, распайка на материнку эмулятора TPM с алиэкспресс и бинарный патчинг — мощные средства для курощения винды.
                        Ответить
                        • Я вот и говорю: шаг влево-вправо и винда по уровню пердолинга и красноглазия спорит с луниксами.
                          Ответить
                          • У винды пирдоль несколько иной природы.
                            Пока всё работает правильно, там можно не придолица вообще.
                            А когда оно не работает -- тебя ждёт ад
                            Ответить
                            • Дык у прыщей точно так же. Просто они чаще ломаются в начале, чем потом.
                              Ответить
                              • У прыщей (особенно у классических, допоцтеринговых) всё как-то более ровно.

                                Ты потихоньку въехжаешь в это говно, читаешь документацию, читаешь скриптики, и в итоге чувствуешь себя довольно уверенно. Все как-бы просто и понятно.

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

                                Потом в технете появляется заклинание про замену одного гуида в реестре на другой, и ты его выполняешь, и тогда всё работает
                                Ответить
                              • Анекдот «Чем отличается женщина от телевизора».
                                Ответить
                              • К слову, сейчас компьютеры продают с предустановленной Windows, в которой уже что-то сломано, просто пользователи этого не замечают.

                                Кто-нибудь смотрит системные журналы? Или лог ngen?
                                Ответить
                                • подтверждаю

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

                        А то потом будет неизвестная ошибка 0xABC123 при попытке удалить SDK, и даже sfc /scannow не поможет
                        Ответить
                • > не будет

                  Рута в NT никогда и не было. Админ, насколько я понимаю, это самый обычный юзер, которому дали чуть больше привилегий.
                  Ответить
                  • часть из которых отберет UAC если логин админа был интерактивным
                    Ответить
                  • Именно поэтому я за «Windows 95»: там можно было срать куда угодно, не спрашивая разрешения.
                    Ответить
                    • на сколько дискет помещалась «Windows 95»?
                      Ответить
                      • тринадцать.

                        Но если ты хотел ставить w95, то у тебя скорее всего был multimedia компутер с CD-ROMмом

                        Правда флопик тебе всё равно бы понадобился, ведь грузиться с сидирома биосы не умели: el torro тогда еще не было
                        Ответить
                        • хуйня детская

                          https://docs.microsoft.com/en-us/previous-versions/tn-archive/cc767941(v=technet.10)

                          Microsoft Office 97 Standard edition is provided on a total of 45 diskettes. Microsoft Office 97 Professional edition is provided on a total of 55 diskettes. Depending on the options selected during Setup, you may not be prompted for every diskette.

                          я когда-то даже картонную коробку видел от старого офиса

                          реально здоровая картонная коробка для софта
                          Ответить
                          • Office 97 появился потом
                            А до него был Office 95 а еще Word 6.0.
                            Ответить
                    • В 95 можно было получить окошко ввода логина и пароля, кстати
                      Угадаешь зачем оно было?
                      Ответить
                      • Домен как в 98? Или креды к диалапу?
                        Ответить
                        • ага, домен)
                          его можно было закрыть, и всё

                          ну креды для CHAP и PAP тоже, но я не про них
                          Ответить
          • Чистый более консистентен, но только во-первых чистых дистров с ним нет, во-вторых через неделю там уже опять всё перефигачат
            Ответить
    • У gnu make есть всякие implicit rules, позволяющие не писать копипасту.
      Грубо говоря make знает, что из лекса получается .c, из .c -- .o итд

      Так вот там есть правило и для SCCS
      Ответить
      • А для тайпскрипта есть?
        Ответить
        • нет
          прыщебляди соснули


          зато есть для сборки веба из tex
          Ответить
    • интересно взять windows core, она бесплатна, без проводника, и занимает относительно мало места

      на ней работает far, total commander, и хром. Что еще на ней работает я не знаю, но по идее можно заменить ей десктопную винду
      Ответить
      • Если вы уже достигли успеха, то это замечательно! Вы можете гордиться собой! Оффтоп для тех, кто развивается и ищет мотивацию. Давайте поможем подрастающему поколению поверить в себя
        Ответить
      • Windows Core OS is the future of Windows.

        https://www.windowscentral.com/windows-core-os
        Ответить
        • какой-то скучный водяной лонгрид
          я имел ввиду Windows Server Core
          Ответить
          • > скучный водяной лонгрид

            Итак, что такое Windows Server Core?

            Многие люди интересуются, что такое Windows Server Core. В сети многие сайты пестрят статьями про Windows Server Core, но можно ли им доверять? Чтобы понять про Windows Server Core лучше, прочтите нашу статью об Windows Server Core.

            1. Windows Server Core

            Познакомимся с Windows Server Core. Вас заинтересовал Windows Server Core и вы решили получить опыт с Windows Server Core. С чего лучше всего начать в случае с Windows Server Core?

            Об этом и расскажет наша статья про Windows Server Core.

            2. Где почитать про Windows Server Core

            В интернете по запросу "Windows Server Core" можно встретить множество мошенников, которые предлагают лёгкие знания по Windows Server Core. Однако мы советуем обращаться за информацией про Windows Server Core только на проверенные узлы мировой сети, иначе опыт использования Windows Server Core может быть негативным и оттолкнуть от дальнейшего использования Windows Server Core.

            3. Windows Server Core. Выводы

            Надеемся, вам помогла наша статья про Windows Server Core и вы сможете использовать Windows Server Core более продуктивно и эффективно. Если у вас остались вопросы по Windows Server Core, не стесняйтесь задавать нам их на электронную почту с пометкой "Windows Server Core"!

            Всего наилучшего и удачного использования Windows Server Core.
            Ответить
          • Напридумывают питушни с однотипными названиями, разбирайся потом...
            Ответить
            • на самом деле акелла промахнулся, а макака чуток обосрался
              Ответить
        • Win32 programs, by default, are sandboxed and containerized on Windows Core OS.
          Ответить
    • http://alenacpp.blogspot.com/2017/02/17.html

      Карта C++17
      Ответить
    • А вот поддержу ISO.

      > systemd-oomd(8) — A userspace out-of-memory (OOM) killer

      А ну-ка прыщебляди, расскажите что вне systemd обеспечит мне такой функционал?
      Ответить
      • Там политику можно писать и перечислять что лучше убивать, а что нет?
        Ответить
      • Почему все начали форсить «systemd»?
        Ответить
      • и так, у нас новая утилита oomctl, новый сервис, и новаый файл конфига
        Ответить
        • И что?

          Где привычные прыщеблядские рассказы: «вот у нас всё и так было», «systemd это просто нинужная обёртка», «у нас никаких проблем не было».

          Годами существует проблема: Луникс при OOM намертво подвисает и минут на 10-20 уходит в себя.

          Причём даже при отключенном свопе.
          Ответить
          • >Луникс при OOM намертво подвисает и минут на 10-20
            расскажи про это, кстати

            Я только OOMKillerов видел
            Ответить
            • Попробуй написать небольшую прогу, у которой working set чуть-чуть больше размера оперативки.

              Формально это ещё не OOM, но системе уже пизда.

              З.Ы. Или у меня лапки, а гуру умеют настраивать так, чтобы своп работал нормально?
              Ответить
              • с оверкоммитом або ни?
                Ответить
                • Вот так попробуй:

                  ram < working set < swap + ram

                  Это по идее не оверкоммит ещё, так что должно с любыми настройками выделить...
                  Ответить
                  • не овер, потому что "< swap + ram"

                    начнется активный свопинг и всё станет рачком?
                    Ответить
                    • Как-то так. Я не хочу это пробовать, если честно. В прошлые разы еле-еле получалось убить.

                      Ну ключевое слово "working set", т.е. надо активно эту память перезаписывать, а не просто выделить и молчать.
                      Ответить
                      • волательный указатель и срать внего в цикле пойдет?
                        Ответить
                        • Пойдёт, я вроде так и делала.

                          З.Ы. while (1) memset(p, 0, size) вроде тоже прокатит.
                          Ответить
                          • Лол, OOM-киллер таки пришёл за ним. Но перед этим вся система встала раком: звук лагал, окошки еле-еле переключались.
                            Ответить
                            • Блин, теперь у меня 3 гига какой-то нинужной хуйни лежит в свопе и портит статистику (((
                              Ответить
                              • Это вы радуйтесь что в новом дермиане ядро посвежее и там уже не O(N²).

                                Так бы всё зависло сильнее и тупило гораздо дольше...
                                mm: rid swapoff of quadratic complexity
                                
                                try_to_unuse() is of quadratic complexity, with a lot of wasted effort.
                                It unuses swap entries one by one, potentially iterating over all the
                                page tables for all the processes in the system for each one.
                                
                                This new proposed implementation of try_to_unuse simplifies its
                                complexity to linear.  It iterates over the system's mms once, unusing
                                all the affected entries as it walks each set of page tables.  It also
                                makes similar changes to shmem_unuse.
                                
                                Improvement
                                
                                swapoff was called on a swap partition containing about 6G of data, in a
                                VM(8cpu, 16G RAM), and calls to unuse_pte_range() were counted.
                                
                                Present implementation....about 1200M calls(8min, avg 80% cpu util).
                                Prototype.................about  9.0K calls(3min, avg 5% cpu util).
                                
                                In shmem_unuse(), iterate over the shmem_swaplist and, for each
                                shmem_inode_info that contains a swap entry, pass it to
                                shmem_unuse_inode(), along with the swap type.  In shmem_unuse_inode(),
                                iterate over its associated xarray, and store the index and value of
                                each swap entry in an array for passing to shmem_swapin_page() outside
                                of the RCU critical section.
                                
                                In try_to_unuse(), instead of iterating over the entries in the type and
                                unusing them one by one, perhaps walking all the page tables for all the
                                processes for each one, iterate over the mmlist, making one pass.  Pass
                                each mm to unuse_mm() to begin its page table walk, and during the walk,
                                unuse all the ptes that have backing store in the swap type received by
                                try_to_unuse().  After the walk, check the type for orphaned swap
                                entries with find_next_to_unuse(), and remove them from the swap cache.
                                If find_next_to_unuse() starts over at the beginning of the type, repeat
                                the check of the shmem_swaplist and the walk a maximum of three times.
                                
                                commit b56a2d8af9147a4efe4011b60d93779c0461ca97
                                Ответить
                                • > swapoff

                                  О, спасибо! Пойду передёрну свап, а то как-то неприятно когда там не 0 байт.
                                  Ответить
                                • Ожидание: коммитить в ядро «Линукс» — большая честь, которой удостаиваются только самые лучше программисты с дипломами MIT!

                                  Реальность: try_to_unuse() is of quadratic complexity, with a lot of wasted effort. It unuses swap entries one by one, potentially iterating over all the page tables for all the processes in the system for each one.
                                  Ответить
                                  • Самая мякотка: от этого квадратичного говна все луниксоиды страдали больше десятилетия!
                                    Ответить
                                    • И в это время писали на форумах юным студентам, сортирующих жалкую десятку-сотню элементов (пункты меню, колонки таблицы для вывода) "фу, у тебя пузырёк квадратичный!"
                                      Ответить
                          • Вот так малость тупит, но работает
                            #include <stdio.h>
                            #include <sys/sysinfo.h>
                            #include <stdlib.h>
                            #include <string.h>
                            #include <unistd.h>
                            
                            int main() {
                                struct sysinfo info;
                                if (sysinfo(&info) != 0) {
                                    perror("sysinfo");
                                    return -1;
                                }
                                printf("Total ram: %ld, total swap: %ld", info.totalram, info.totalswap);
                                size_t size = info.totalram + 4096 * 4096;
                                void *data = malloc(size);
                                if (data == NULL) {
                                    perror("malloc");
                                    return -1;
                                }
                                while (1) {
                                    memset(data, 42, size);
                                    sleep(1);
                                }
                            
                                return 0;
                            }


                            А если аллокнуть swap + ram - 4096, то тупит, но быстро OOMится
                            Ответить
              • > так, чтобы своп работал нормально?

                Кстати, ты в курсе что до последнего времени в луниксе своп освобождался за O(N²).

                Из-за этого был ОЧЕНЬ долгий resume from hibernate и парадоксы что проще убить процесс и запустить его заново чем ждать пока он вернётся из свопа в память. Наблюдалось и на сверхбыстрых SSD.
                Ответить
                • > hibernate

                  Если честно, никогда не пробовала... Это вообще работает? У меня и на винде то не получалось в своё время.
                  Ответить
                  • > Это вообще работает?

                    Да, сейчас даже получше (в смысле быстрее). Раньше resume был ооочень долгий.
                    Для сравнения: на XP на HDD (!) было почти мгновенно, а на линуксе и SSD минут 5.

                    Но с нюансами. Реальные примеры: сидел на штеуде, 4.13 всё отлично. Обновился до 4.15: не резюмится и даже suspend не работает.
                    https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1774950

                    https://ubuntu-mate.community/t/hibernation-broken-in-kernel-4-13-0-25/15736


                    Сейчас амд нормально работает.

                    Для ноутбука must-have.
                    Ответить
                  • Потом на одной машине у меня был btrfs

                    Оказалось что при наличии такого раздела в системе hibernate сделать невозможно, т.к. btrfs не дружит со свопом.

                    Btrfs has not allowed swap files since commit 35054394c4b3 ("Btrfs: stop
                    providing a bmap operation to avoid swapfile corruptions"). However, now
                    that the proper restrictions are in place, Btrfs can support swap files
                    through the swap file a_ops, similar to iomap in commit 67482129cdab
                    ("iomap: add a swapfile activation function").


                    https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=ed46ff3d423780fa5173b38a844bf0fdb210 a2a7
                    Ответить
                    • Хм, а зачем делать своп на разделе с файлухой?
                      Ответить
                      • Незачем. Ситуация гораздо гаже.

                        hibernate в принципе невозможен при наличии активного btrfs-раздела (на котором у меня был /home)

                        Иными словами есть btrfs partition и есть swap partition. И btrfs драйвер не давал делать hibernate на swap partition.
                        Ответить
                        • Эээ... т.е. он за себя боялся, а не за своп? Ничерта не понимаю, как драйвер соседней файлухи может устроить "swapfile corruption".
                          Ответить
                          • > Эээ... т.е. он за себя боялся, а не за своп?

                            Ага. Дикое Говнище )))
                            Ответить
                            • А по твоей цитате "bmap", "swapfile corruption", "can support swap files" всё-таки кажется, что речь о swap файле на btrfs...

                              Но видимо они не смогли только этот кейс запретить и отрубили вообще всё нахуй на всякий случай?
                              Ответить
                              • Блять, да я в своё время весь интернет облазил с этой проблемой.

                                И пока не удолил btrfs-tools — оно не работало.

                                > https://websiteforstudents.com/enable-hibernation-ubuntu-17-10-desktop/
                                > The presence of btrfs partitions has proved to make hibernation fail, so check that you’re not using any btrfs partitions. 
                                
                                Besides removing or reformatting such partitions, you may need to remove the btrfs-tools package:
                                
                                sudo apt purge btrfs-tools
                                Ответить
                                • > sudo apt purge btrfs-tools

                                  Напомнило про драйвер амудэ, который по имени игры воркэраунды для проца применяет.

                                  Или там в этом пакете заодно активация драйвера сносится?
                                  Ответить
                          • brfs как zfs включает в себя "софтварный рейд", и предоставляет разделы, и вот их нельзя под свап сипользовать, не?
                            Ответить
                            • Всё гораздо хуже. Помогало только:
                              sudo apt purge btrfs-tools
                              См. выше.
                              Ответить
                              • пиздец какой
                                там драйвер что ли?
                                Ответить
                                • Именно поэтому я за ext'ы.

                                  Хотя ext4 тоже бесился по молодости (поломали классическую идиому write + rename).
                                  Ответить
                                  • Вообще файлухи с логом это уже не айс
                                    Ответить
                                    • > не айс

                                      Любишь сортировать файлы из lost & found?
                                      Ответить
                                      • Люблю делать fsck по пятнадцать минут:)
                                        Если soft updates (как в старых bsd), то скорее всего всё и починится нормально
                                        Ответить
            • Hello,
              
              There's this bug which has been bugging many people for many years
              already and which is reproducible in less than a few minutes under the
              latest and greatest kernel, 5.2.6. All the kernel parameters are set to
              defaults.
              
              Steps to reproduce:
              
              1) Boot with mem=4G
              2) Disable swap to make everything faster (sudo swapoff -a)
              3) Launch a web browser, e.g. Chrome/Chromium or/and Firefox
              4) Start opening tabs in either of them and watch your free RAM decrease
              
              Once you hit a situation when opening a new tab requires more RAM than
              is currently available, the system will stall hard. You will barely  be
              able to move the mouse pointer. Your disk LED will be flashing
              incessantly (I'm not entirely sure why). You will not be able to run new
              applications or close currently running ones.
              
              This little crisis may continue for minutes or even longer. I think
              that's not how the system should behave in this situation. I believe
              something must be done about that to avoid this stall.
              
              I'm almost sure some sysctl parameters could be changed to avoid this
              situation but something tells me this could be done for everyone and
              made default because some non tech-savvy users will just give up on
              Linux if they ever get in a situation like this and they won't be keen
              or even be able to Google for solutions.
              
              https://lkml.org/lkml/2019/8/4/15
              Ответить
              • > Disable swap

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

                      А когда был hdd пришось часов через шесть после изнасилования диска просто сделать reset.
                      Ответить
              • https://www.reenigne.org/blog/the-fundamental-differences-between-windows-and-linux/

                > Windows has no OOM killer - it will just keep swapping memory to disk and back until you get bored and kill the offending process yourself or reboot the machine. It's very easy to bring a Windows machine to its knees this way - just allocate more virtual address space than there is physical RAM and cycle through it, modifying each page as rapidly as possible. Everything else quickly gets swapped out, meaning that even bringing up the task manager to kill the program takes forever.
                Ответить
                • > Windows has no OOM killer - it will just keep swapping memory to disk and back until you get bored and kill the offending process yourself

                  Винда (когда она у меня была) не лагала с отключенным свопом.

                  Она обычно крашила группу вкладок хрома.

                  > just allocate more virtual address space than there is physical RAM and cycle through it
                  > Everything else quickly gets swapped out

                  Есть одна проблемка: на винде у меня будет отключён своп и эта анскильная программа просто не заработает.
                  Ответить
      • OOM Killer - это компонент ядра Linux, призванный решать проблему недостатка памяти. Известно, что виртуальной памяти может быть бесконечно много (в пределах адресации), а вот физической - вполне конечное число. Ядро выделяет память процессам "с запасом" в сумме превышающую физическую память системы. В основном, всё разруливается нормально (вся выделенная память одновременно редко требуется), но бывает ситуация когда становится нужно памяти больше, чем ее физически есть. И системе тогда нужно завершить какой-то процесс, чтобы продолжить работу. Вот этим и занимается OOM Killer.

        Текущая реализация OOM Killer в Linux стремится выбрать наименее важный процесс. Он выбирается среди всех процессов, кроме init и kernel threads, на основе подсчета для всех процессов очков и тот, что набрал больше всех очков - убивается. Алгоритм анализа достаточно сложен и я не буду его приводить здесь.


        Systemd-oomd это уже часть ядра, или это просто какая-то нахуй не нужная переделка того, что уже есть в ядре? Я только закончил ебаться с «Gentoo», поэтому мог не правильно понять портянку, которую притащил (я очень устал).
        Ответить
        • Это всё прыщавая кукаретика.

          Реально система даже без свопа останавливается на очень долгое время.
          Ответить
          • Всё равно системдэ нинужно, ведь есть:

            https://github.com/rfjakob/earlyoom/

            А вообще-то мне было похуй на «SystemD», но я вас тут наслушался и решил стать не «инцелом», не «геймером», а «врагом SystemD», почему теперь здесь все за «SystemD»? Вы меня флеймите троллом?
            Ответить
            • the Chrome people made their browser (and all electron-based apps - vscode, skype, discord etc) always be the first (innocent!) victim by setting oom_score_adj very high.








              АХАХАХА
              Ответить
        • We have developed oomd, a faster, more reliable solution to common out-of-memory (OOM) situations, which works in userspace rather than kernelspace. We designed oomd with two key features: pre-OOM hooks and a custom plugin system. Pre-OOM hooks offer visibility into an OOM before the workload is threatened. The plugin system allows us to specify custom policies that can handle each workload running on a host.

          We find that oomd can respond faster, is less rigid, and is more reliable than the traditional Linux kernel OOM killer. In practice, we have seen 30-minute livelocks completely disappear. We wish to contribute oomd to the open source community to help others find a more flexible solution for OOM situations.
          Ответить
          • Вообще соглашусь, что OOM это политика,и лучше ее вынести в узерленд
            Ответить
    • Что лучше, Уругвай или Парагвай?
      Ответить
      • Я иду по Уругваю,
        Ночь - хоть выколи глаза.
        Слышны крики попугаев
        И мартышек голоса.

        Над цветущею долиной,
        Где не меркнет синева,
        Этой песенки старинной
        Мне припомнились слова.

        Я иду по Уругваю,
        Где так жарко в январе,
        Про бомбёжки вспоминаю,
        Про сугробы на дворе.

        Мне над мутною Ла-Платой
        Вспоминаются дрова,
        Год далёкий сорок пятый,
        Наш отважный пятый "А".

        Малолетки и верзилы
        Пели песню наравне.
        Побывать нам не светило
        В этой сказочной стране.

        Я иду по Уругваю,
        В субтропическом раю,
        Головой седой киваю,
        Сам с собою говорю.

        Попугаев пёстрых перья,
        Океана мерный гул...
        Но линкор немецкий "Шпее"
        Здесь на рейде затонул.

        И напомнит, так же страшен,
        Бывшей мачты чёрный крест,
        Что на шарике на нашем
        Не бывает дальних мест.

        Я иду по Уругваю
        В годы прошлые, назад,
        Вспоминаю, вспоминаю,
        Вспоминаю Ленинград...

        Я иду по Уругваю,
        Ночь - хоть выколи глаза.
        Слышны крики попугаев
        И мартышек голоса.
        Ответить
        • В про Парагвай? Ап, что никто не знает?
          Ответить
        • Городницкий чтоль? Который про атлантов сказал: "не боги -- человеки, привыкшие к труду"
          Ответить
      • Чем Нигер отличается от Нигерии?
        Ответить
      • Уругвай лучше намного.

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

        Парагвай беднее, и там больше индейцев
        Ответить
    • История развивается по спирали. На хакерской конференции DEF CON 29 в 2021 году состоялся анонс новой версии PunkSpider — поисковой системы по уязвимостям в веб-приложениях, своеобразного аналога Shodan, только для веб-сайтов. Сканер уязвимостей с фаззингом (перебор всех вариантов) проверяет сайты на наличие самых распространённых, удобно эксплуатируемых багов — и сообщает о них всему интернету.

      PunkSpider успешно работал с 2014 по 2018 годы. Потом его пришлось закрыть из-за множества жалоб от компаний, чьи сайты становились лёгкими мишенями для взлома. Но сейчас разработчики разобрались с юридическими проблемами и готовы возобновить проект.

      На данную минуту PunkSpider ещё не запустили, на сайте висит заглушка, опубликована только ссылка на расширение для Chrome.


      Как вы думаете, это круто или не очень? Теперь даже какой-нибудь ламер-виндузятник (арендатор своей OS) сможет взломать любой, даже самый популярный, сайт.
      Ответить
      • >> опубликована только ссылка на расширение для Chrome

        ... которое будет сообщать твои пароли всему интернету.
        Ответить
        • Логично, когда запустится веб версия, там будет отдельный раздел «идиоты, которые ставят непроверенное расширение от посторонних петухов»
          Ответить
          • Ну как, ещё не запустилась?
            Ответить
          • > непроверенное

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

        https://www.shodan.io/host/213.227.38.134

        Alwon E20 Telnet
        Input password (defaul 1234):
        Ответить
        • > 2021
          > Telnet
          Ответить
          • Всё хуже, чем ты думаешь. Это telnet от роутера. У чувака панель управления роутером наружу торчит. Какой-нибудь анонимный хакер набрутит пароль и отключит его от интернетов.
            Ответить
    • Короче говоря, телефон в вашей руке существует в состоянии вечной незащищённости. Он всегда открыт для заражения кем угодно, у кого достаточно денег. Весь бизнес этой «индустрии информационной безопасности» заключается в создании новых инфекций, которые обходят последние обновления безопасности. Эти инструменты затем продают странам, которые остро нуждаются в самых изощрённых средствах угнетения своего населения.

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


      Даже если завтра NSO Group и всех представителей этой индустрии внезапно сотрёт с лица земли вулканом общественного возмущения, это не изменит того факта, что мы в разгаре величайшего кризиса компьютерной безопасности в истории. И разработчики Apple, Google, Microsoft, которые хотят продавать продукт, а не доводить его до совершества, и их полная противоположность — благонамеренные разработчики Linux, которые хотят доводить продукт до совершенства, а не продавать его — все они спокойно пишут код на небезопасных языках, потому что… ну, потому что так привыкли, а модернизация требует значительных усилий, не говоря уже о расходах. Подавляющее большинство уязвимостей, которые потом эксплуатируются индустрией небезопасности, появляются по техническим причинам, связанным с управлением памятью. Поэтому выбор более безопасного языка — критически важная мера защиты… но мало кто об этом думает.
      Ответить
      • > все они спокойно пишут код на небезопасных языках
        На этом моменте сразу понял, что статью писал дrustня-сектант. Открыл источник — и правда, сектант!
        Ответить
        • > все они спокойно пишут код на небезопасных языках
          Именно по этому я за "PHP"
          Ответить
      • >разработчики Linux, которые хотят доводить продукт до совершенства, а

        то-то я смотрю в линуксе всё доведено до свершенства: особенно конечно документация (к ss, ip, tc итд)
        Ответить
        • >разработчики Linux, которые хотят доводить продукт до совершенства, а

          >> -Werror
          >> introduce Q3 2021
          Ответить
    • Перекат!

      https://govnokod.ru/27648
      https://govnokod.xyz/_27648/
      Ответить
    • %.d: %.c
              @set -e; rm -f $@; \
               $(CC) -M $(CPPFLAGS) $< > $@.$$$$; \
               sed 's,\($*\)\.o[ :]*,\1.o $@ : ,g' < $@.$$$$ > $@; \
               rm -f $@.$$$$

      давайте течь от "UNIX way"
      Ответить
      • Я боюсь использовать код, в котором есть «rm -f» и непонятные знаки.
        Ответить
        • Попробуй понять, что тут написано
          Я знаю, ты сможешь
          Ответить
          • Смогу. Но я каждый раз лезу в справку, когда нужно что-то поправить в мейкфайлах, потому что эти доллары с закорючками в памяти не откладываются.

            Мне аргумент sed'а проще понять.
            Ответить
            • Тут ``$$$$`` это, на самом деле, ``$$``, сиречь пид процесса (man/info bash, ищи \$\$)


              %.d: %.c это pattern rule, говорящая, что например petuh.d зависит от petuh.c.
              https://www.gnu.org/software/make/manual/html_node/Pattern-Rules.html

              $@ это алиас для таргета (например для petuh.d)
              https://www.gnu.org/software/make/manual/html_node/Automatic-Variables.html

              "set -e" это падать при ошибке (См "help set")

              -M у gcc это генерация депенденсов по сишным файлам.

              $< это список всех зависимостей

              Ну а sed c нетипичным разделителем -- запятой -- ты наверное и сам расшифруешь
              Ответить
    • Жабаёб брат пыхоёба

      "An OGNL injection vulnerability exists that would allow an authenticated user, and in some instances unauthenticated user, to execute arbitrary code on a Confluence Server or Data Center instance.

      https://www.zdnet.com/article/us-cybercom-says-mass-exploitation-of-atlassian-confluence-vulnerability-ongoing-and-expected-to-accelerate/

      Знаете, что такое OGNL?
      Это жабий XPATH, его пидарасы во всякие шаблоны пихают
      https://struts.apache.org/tag-developers/ognl-basics
      Ответить
    • https://pbs.twimg.com/media/E-f_b9XXMAIEZp7?format=jpg&name=900x900
      Ответить
    • #на правах оффтопа
      Ответить
    • #на правах оффтопа
      Ответить
    • #на правах оффтопа
      Ответить
    • #на правах оффтопа
      Ответить
    • #на правах оффтопа
      Ответить
    • #на правах оффтопа
      Ответить
    • #на правах оффтопа
      Ответить
    • #на правах оффтопа
      Ответить
    • #на правах оффтопа
      Ответить
    • #на правах оффтопа
      Ответить
    • #на правах оффтопа
      Ответить
    • #на правах оффтопа
      Ответить
    • #на правах оффтопа
      Ответить
    • #на правах оффтопа
      Ответить
    • #на правах оффтопа
      Ответить
    • #на правах оффтопа
      Ответить
    • #на правах оффтопа
      Ответить
    • #на правах оффтопа
      Ответить
    • #на правах оффтопа
      Ответить
    • #на правах оффтопа
      Ответить
    • #на правах оффтопа
      Ответить
    • #на правах оффтопа
      Ответить
    • #на правах оффтопа
      Ответить
    • #на правах оффтопа
      Ответить
    • #на правах оффтопа
      Ответить
    • #на правах оффтопа
      Ответить
    • #на правах оффтопа
      Ответить
    • #на правах оффтопа
      Ответить
    • #на правах оффтопа
      Ответить
    • #на правах оффтопа
      Ответить
    • #на правах оффтопа
      Ответить
    • #на правах оффтопа
      Ответить
    • #на правах оффтопа
      Ответить
    • #на правах оффтопа
      Ответить
    • #на правах оффтопа
      Ответить
    • #на правах оффтопа
      Ответить
    • #на правах оффтопа
      Ответить
    • #на правах оффтопа
      Ответить
    • #на правах оффтопа
      Ответить
    • #на правах оффтопа
      Ответить
    • #на правах оффтопа
      Ответить
    • #на правах оффтопа
      Ответить
    • #на правах оффтопа
      Ответить
    • #на правах оффтопа
      Ответить
    • #на правах оффтопа
      Ответить
    • #на правах оффтопа
      Ответить
    • #на правах оффтопа
      Ответить
    • #на правах оффтопа
      Ответить
    • #на правах оффтопа
      Ответить
    • #на правах оффтопа
      Ответить
    • [color=whirw]t5Eh4Kf0Zz2Fw0Tp9Wf6Fu6Qu3Cg8Xf1Ij6Qj9Sn 7Vl9Rh7Ox6Ua8Kq7Jw8Ac7Ls3Pz5Ao7Nx7Ry3Hl8 Qq4Iq7Bm8Aa5Sr9Ce0Qq[/color]
      Ответить
    • [color=whirw]n7Hp9Ym8Qa0Sw4Te6Xp1Cg1Sq4Qh4Zs0Gh8Vh2Bj 9Tq4Du7Td5Fz9Sd5We9Gg4Pl9Rf6Bf0Qd1Df5Nm6 In8Nr7Eo6Ju9Hl2Fc3Fs[/color]
      Ответить

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