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

    −6

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

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

    Запостил: nepeKamHblu_nemyx, 21 Декабря 2021

    Комментарии (538) 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://parsiya.net/blog/2021-12-20-rce-in-visual-studio-codes-remote-wsl-for-fun-and-negative-profit/

      RCE in Visual Studio Code's Remote WSL for Fun and Negative Profit

      это должнобыло случиться
      Ответить
      • Блядь, ремоут то как? У него порты наружу торчат?
        Ответить
        • The dialog appears because VS Code server wants to listen on all interfaces (bound do 0.0.0.0).

          >наружу
          в смысле у него на винде?
          Ответить
          • > bound to 0.0.0.0

            Какой промискуитет )))

            И аутентификации как всегда никакой?
            Ответить
            • ну так

              при том что IP wslя они прекрасно знают, и могут только на том интерфейсеслушать
              Ответить
            • >И аутентификации как всегда никакой?

              нет, и даже сейм ориджин не проверяют, хотя даже если бы и проверяли, то непомоглобы
              Ответить
      • https://i.imgur.com/dcOPjzN.png
        Ответить
    • Вот про этот что скажете?
      https://www.citilink.ru/product/noutbuk-lenovo-ideapad-5-pro-16ach6-ryzen-7-5800u-16gb-ssd1tb-rtx-3050-1545375/properties/
      Ответить
      • симпатично
        Проверь бенчмарки проца 5800H тока

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

          upd. нашел, называется umis

          https://www.notebookcheck.net/Lenovo-UMIS-AM620-RPJTJ512MEE1OWX-SSD-Benchmarks.515773.0.html
          Ответить
      • может сразу так?

        https://www.citilink.ru/product/noutbuk-lenovo-legion-s7-15ach6-ryzen-9-5900hx-32gb-ssd1tb-rtx-3060-ma-1561108/
        Ответить
      • та хуйня, от которой я обблевался - это именно ideapad 5, модель гораздо проще и дешевле, но если у этой такой же экран, то деньги на ветер
        Ответить
        • Что именно не так?
          Ответить
          • я в жизни не видел более блеклого экрана, который ходуном ходит от простой печати
            кто делает клавиши перемещения не квадратными - тоже хороший вопрос, но здесь хотя бы не ужали вверх и вниз в размер одной клавиши, как у меня
            жирные следы на пластмассе просто пиздец
            Ответить
            • А OLED питуха взял бы? https://market.yandex.ru/product--16-noutbuk-asus-vivobook-pro-16x-oled-m7600qc-l2041t-3840x2400-amd-ryzen-7-3-2-ggts-ram-16-gb-ssd-1024-gb-geforce-rtx-3050-win10-home/1492390534
              Ответить
              • Я и взял олед питуха в итоге (и теперь страдаю, потому что мне нужен icc, который шел с поставленной виндой, а я просто взял и сразу бахнул линукс). Но я в плане цветов разбираюсь только на уровне "пиздец блекло", "пиздец сатурировано" и "норм".
                Ответить
                • OLED - возврат к традиционным ценностям ЭЛТ с постепенно выгорающим люминофором.
                  Ответить
      • Доплати лучше до 7 серии если есть возможность
        Ответить
        • А блядь, обосрался не увидел, Ваниш
          Ответить
    • Можно ли считать свободной систему, собранную проприетарным конпелятором?
      Ответить
      • Конечно

        Каким компилятором собирается GIMP под винду?
        Ответить
        • Мы можем прпоустить этот вопрос?
          Ответить
        • Я беру подсказку 50/50. Какие варианты остались?

          З.Ы. Поди оставишь студию и гцц...
          Ответить
          • да, ты прав

            но есть например вот
            https://www.gnu.org/software/gsl/extras/native_win_builds.html
            Several packages are available for building GSL on Windows using Microsoft Visual Studio with the native Microsoft and Intel compilers.
            Ответить
        • > Конечно

          А если вендор конпелятора -- монополист для своих чипов? Или всё равно остаётся свобода портануть куда-то ещё, и на том спасибо?
          Ответить
          • Ох, тонкие материи
            Спроси лоеров FSF

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

              Прыщи для её ARM'овских ядер есть, исходники дров на гитхабе, исходники видюхи там же.

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

              Будет ли такая система свободной?

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

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

                      Содержимое пакета высыпать в рот, и запить большим количеством горячей воды
                      Ответить
    • Если не играть в игры и не обучать сетки, но нахуй вообще в принципе может понадобиться дискретная видеокарта?
      Ответить
      • Майнить и греться холодными зимними вечерами.
        Ответить
        • На ноуте как раз клава с подогревом получится.
          Ответить
        • А для дизайнерских питухов («автокады», «фотошопы») нужна мощная видеокарта?
          Ответить
          • Для фотореалистичного рендеринга нужна.
            Ответить
            • Вот кстати интересно, научился ли блендер юзать RTX на современных видюхах.

              З.Ы. Да, и походу даже для реалтайм превьюшек.
              Ответить
          • У «фотошопа» гуйня уже давно зачем-то на «OpenGL». А в любом CADе четвертая панель с превью - прямая необходимость.
            Ответить
      • может быть что-то подбирать, хеш какой-нить ломать?
        Ответить
      • На видеокартах еще можно всякую физическую-химическую поебень моделировать. Вот например GROMACS умеет GPU задействовать http://www.gromacs.org/GPU_acceleration
        Ответить
      • Если не играть в игры и не обучать сетки, но нахуй вообще в принципе может понадобиться дискретная видеокарта?
        Ответить
        • ХУЕсли хуе хуиграть в хуигры хуи хуе хуёбучать хуетки, хуё хуяхуй хуёобще в хуинципе хуёжет хуёнадобиться хуискретная хуидеокарта?
          Ответить
    • Тестирую
      Ответить
    • Тестирую
      Ответить
    • хуестирую
      Ответить
    • хуюря хуёю хуебо хуёет,
      хуихри хуежные хуютя,
      хуё хуяк хуерь хуёна хуявоет,
      хуё хуяплачет, хуяк хуитя.
      Ответить
      • Хуехапэ Хуи-плюс-плюс Хуюча Хуяваскрипт
        Хуи-с-решёткой Хуява Хуи Хуяскаль
        Хуитон Хуёдин-эс Хуескуэль Хуякшнскрипт
        Хуёбжектив-си Хуерл Хуяш Хуюби
        Хуижал-бейсик Хуяссемблер Хуюа Хуифт
        Хуяскель Хуё Хуётлин
        Ответить
        • ХУЯ хуязу хуязал хуярту хуюдня,
          хуеснувши хуяску хуиз хуякана,
          ХУЯ хуёказал хуя хуюде хуюдня
          хуёсые хуюлы хуёкеана,
          хуя хуешуе хуестяной хуибы,
          хуёчёл хуя хуёвы хуёвых хуюб,
          ХУЯ хуи хуёктюрн хуиграть хуёгли хуи
          хуя хуейте хуёдосточных хуюб.
          Ответить
    • показать все, что скрытоЯ настроил «cups» на «Gentoo» и распечатал страницу...
      Ответить
    • Итак, у меня важный вопрос.

      Nim's memory model for threads is quite different from other common programming languages (C, Pascal): Each thread has its own (garbage collected) heap and sharing of memory is restricted. This helps to prevent race conditions and improves efficiency. See the manual for details of this memory model.

      И что теперь? Как мне сделать так, чтобы в одном потоке в фоне у меня крутился бесконечный цикл в числодробилке, а из другого потока я мог брать результаты из первого потока и отсылать их по «UDP» в свой скрипт на «Python»?
      Ответить
      • Так как это говнокод, вот несколько достойных вариантов:
        * Раз у тебя уже сети, передавай данные между процессами через localhost
        * Найди библиотеку, реализующую COM и передавай по ней.
        * Файловая передача! Старше, чем ты!
        Ответить
        • * NoSQL: memcached, redis. Или вообще ZeroMQ.
          Ответить
          • Кстати, redis хорош тем, что если система нанякнется, то в базе сохранятся результаты промежуточных вычислений.

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

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

                так что ты, верно, говорил о постгресе
                Ответить
                • показать все, что скрытоЯ как-то раз поставил себе постгресе, но не знаю, стоит ли он у меня до сих пор: я им не пользуюсь.
                  Ответить
                  • Если долго чем-то не пользоваться, то оно может потеряться или забыться
                    use it or loose it.

                    Срочно сделай так
                    $ sudo -u postgres -- createuser $(whoami)
                    $ sudo -u postgres -- createdb $(whoami) -O $(whoami)
                    $ psql
                    Ответить
                • постгрес такое же уебище, как и мускул
                  я не знаю, каким образом он и редис завоевали репутацию чего-то надежного
                  с точки зрения корректности обработки запросов он может и подисциплинированней, но ты попробуй погуглить что-нибудь навроде "постгрес потерял данные" или "corrupted page file", удивишься насколько дырявое говно. это еще не затрагивая вопросы типа того что бородатые челы из девяностых никак не могут инт64 для транзакций завезти.
                  Ответить
                  • >постгрес такое же уебище, как и мускул
                    лол, кто тебе такую глупость сказал?

                    >постгрес потерял данные" или "corrupted page file"
                    лолшто? нук дай пожалуйста ссылку

                    >инт64 для транзакций завезти.
                    про фриз знаешь?
                    Ответить
                    • Ну что, никто про фриз не знает?
                      Ответить
                      • Про антифриз знаю. Ну это в России все знают.

                        А ты правда не знаешь про wraparound problem в MVCC?
                        Ответить
                        • показать все, что скрытоЯ не знаю. Расскажи, а я сделаю вид, что что-то понял. Потом буду этим знанием выёбываться на семинаре.
                          Ответить
                          • вот тут пачитай
                            https://habr.com/ru/company/postgrespro/blog/455590/
                            Ответить
                          • Когда ты изменяешь строку в БД, старая никуда не девается, потому что с ней работает старая транзация. У строки есть версия транзакции, с которой она видна. Так работает MVCC.

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

                            Чтобы этого избежать, оче старые числа "замораживаются" помечаются как "старше всех существующих".

                            Подобную проблему для протокола OSPF решала Радья Перльман, и придумала Лолипоп Сиквенс Намберинг.

                            Но потом его тоже обоссали.
                            https://en.wikipedia.org/wiki/Lollipop_sequence_numbering
                            Ответить
                    • https://i.postimg.cc/NFHLtrjT/image.png

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

                      > про фриз знаешь?

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

                      нет, я не знаю что это такое и знать не хочу. у базы данных вообще не должно быть такой проблемы как wraparound. а судя по названию, ты и вовсе предлагаешь мне её остановить. спасибо, нет, я возьму ту технологию, которая просто работает.
                      Ответить
                      • ссылка 1:
                        >I seem that a failed vmotion occured in the same time frame.
                        Причем тут постгрес?

                        вторая не открывается


                        ссылка 3: совершенно не понятно схуя бы дата corrupted. Опять с диском проблемы?
                        В качестве решения предлагается переиграть WAL, как и нужно делать нормальной субд.


                        >ты должен знать снизу донизу какие-то ебанутые настройки
                        А у других СУБД не так

                        Я просто заливаю в MySQL восемь терабайт данных, и теку, правда?
                        А Percona просто так существует и книжки пишет


                        ------
                        ps: на всяк случай: mysql хуже постгри не потому что перформанс (хотя разумеется оптимизатор мускуля сосет у генетических алгоритмов постгри) а потому что мускуль изначально наколенное говно которое ничего не умеет, и коммуники вокруг него тоже говно, которое ничего не умеет

                        мускуль это такое пэ ха пэ
                        Ответить
                        • > А у других СУБД не так

                          > Я просто заливаю в MySQL восемь терабайт данных, и теку, правда?

                          другие субд это не только мускуль, привет
                          восемь терабайт это действительно тот объем современных данных, который хранилище должно сожрать и не испытывать проблем
                          если мне нужна выборка по первичному ключу, то я могу залить это в кассандру, не дернуть ни одной настройки, и не иметь проблем
                          если мне нужен поиск, то я могу залить это в эластик, не дернуть ни одной настройки, и не иметь проблме
                          если мне нужна будет кастомизация работы с данными, то я буду дергать настройки, связанные с хранением данных, но не с движком как таковым
                          Ответить
                          • By writing to memory mapped files, MongoDB can improve its write-throughput factor by 10.
                            If /dev/null is fast in web scale I will use it. Is it web scale?
                            Ответить
                          • Конечно не только мускуль

                            Я заливаю в Oracle или в MS-SQL и теку, а DBA и толстенные книги по тонким настройкам кеша/оптимизатора/индексов не нужны.

                            >кассандра
                            >эластик

                            Ты сравниваешь реляционки и эластик? Реально? Ты капкейк скушал?
                            Ответить
                            • > Конечно не только мускуль

                              так а нахера ты его тогда в пример приводишь, лол

                              > Ты сравниваешь реляционки и эластик? Реально? Ты капкейк скушал?

                              я привожу разные решения для разных паттернов доступа к данным
                              потому что если бы я этого не сделал, ты бы начал про вторичные индексы
                              Ответить
                              • Есть ли база лучше мускуля?
                                Ответить
                                • Да, MsAccess.

                                  Во-первых он САМ генерит гуи и формочки
                                  Во-вторых он генерит отчеты
                                  В-третьих его можно через OLE вставить в Word
                                  И наконец он хранится в одном файле


                                  Access рулит, я серьезно
                                  Ответить
                                  • Именно поэтому я за «MsAccess».
                                    Ответить
                                  • А что лучше: «Access» или «Excel»?
                                    Ответить
                                    • > А что лучше: «Access» или «Excel»?

                                      По-моему можно и так, и так.
                                      Ответить
                                    • Это разные инструменты для разных задач.

                                      Excel позволяет автоматически считать значения в ячейках, крутить таблицы, делать сводные (как по русски pivot tables?) и быть клиентом к MSASS, сответственно можно легко получить отчет или график просто набросав мышкой нужные поля.

                                      А MSAccess это настольная база данных на основе jet blue (или red?) (но excel может быть и ее клиентом тоже, разумеется)
                                      Ответить
                                      • > А MSAccess это настольная база данных

                                        Знаю людей которые до сих через ODBC драйвера используют Access именно как sql-клиент к нормальным бд (чтобы sql запросы руками не писать и не делать update/delete без where).
                                        Ответить
                                    • ХУЯ хуя "Word".
                                      Ответить
                                • SQLite. Даже ничего устанавливать и настраивать не нужно, просто слинковать библиотеку с твоей программой.
                                  Ответить
                                  • > SQLite
                                    csv. Даже ничего линковать не надо.
                                    Ответить
                                  • >SQLite

                                    SQLite не является аналогом Access.

                                    SQLite это просто база, а Access это база плюс движок для генерации форм и отчетов и поиска

                                    Короче, база и гуй
                                    Ответить
                                    • Jet
                                      Ответить
                                      • Джета есть два
                                        Синий и красный
                                        Один в аксеесе, другой в ntds в AS
                                        или в эксчендже
                                        вечно их путаю
                                        Ответить
                              • потому что ты пришел, и сказал "постгрес такое же говно как муслкуль" и привел два пруфа:

                                * если сломать storage, то дата покораптится
                                * чтобы база хорошо работала с 8ТБ, приходится читать документацию

                                Эти "проблемы" относятся к любой РСУБД, и к не реляционным СУБД тоже.

                                >я привожу разные решения для разных паттернов доступа к данным

                                PostgreSQL (как реляционка) дает некоторые возможности, которых у эластика нет, но эти возможности тебе не нужны.

                                Ок.

                                Я предлагаю использовать стример, и читать данные последовательно.

                                * он надежен: выключили электричество, ты снова включи, и дальше читай
                                * там ничего тюнить не надо
                                Ответить
                                • > если сломать storage, то дата покораптится

                                  не надо ничего ломать. он сам. зайди в телеграмный чатик по нему, поищи в истории
                                  Ответить
                                  • лолшто? какой чатик?

                                    ты принес ссылку где у один питух мигрирорвал виртуальную машину живую, и у него упал процесс миграции, и почему-то покораптилась машина


                                    другой не говорит что и когда у него покораптилось, но говорит, что достаточно проиграть WAL чтобы починилось (что верно)

                                    я неебу что у него там было, может RAID без батареек вырубили

                                    что база-то должна была сделать?
                                    Ответить
                                    • телеграмный, гест6, телеграмный
                                      Ответить
                                      • у меня нет телеграма, а если бы и был, то зачем мне его читать? что там за информация?

                                        Ты заявл
                                        [quote]
                                        попробуй погуглить что-нибудь навроде "постгрес потерял данные" или "corrupted page file", удивишься насколько дырявое говно.
                                        [/quote]

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

                                        Ну так дай пожалуйста ссылку, где написано: "из за такой-то баги в стабильной версии постгри пострадало 10000 инсталляций, и все они навсегда проебли данные"

                                        Иначе это напоминает "брат жены слышал на работе, что у постгреса вроде есть какие-то баги, так что вероятно постгрес говно"
                                        Ответить
                                        • так, дошли до стадии торгов, хорошо
                                          Ответить
                                          • Дошли до стадии "не нужно говорить случайные фразы, лишенные смысла. Могут доебаться, и придется выкручиваться"
                                            Ответить
                                            • Странно что выкручиваюсь не я :smirk:

                                              У меня ощущение, что баги вообще не ищут, лично я постоянно вижу юзеров с сообщением "бля, ERROR: invalid page in block". У них в ответ спрашивают, не выключили ли они фсинк, и некоторые из них признаются, что да, выключили - и здесь безусловно никакой ответственности за данные хранилище уже не несет - но в остальных случаях мы видим вот эту хуйню (заметьте, 2019, мир уже не первый год как ссытся от постгре в качестве "надежной" замены мускулу): https://www.zabbix.com/forum/zabbix-troubleshooting-and-problems/378225-postgresql-log-file-shows-error-invalid-page-in-block-in-history_uint-table

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

                                              Про то что чексуммы довольно долго были опциональными, потому что бородатые деды из девяностых истерили по поводу пространства, тоже молчу.
                                              Ответить
                                              • Баг -- это когда есть steps to reproduce.
                                                Когда какой-то хуй на форуме заббикса написал что у него что-то сломалось, это не баг.

                                                У Сёмы регулярно не работают прыщи. Это значит, что Linux говно, и баги там никто не чинит.

                                                И да, я не удивлюсь, если у него выключен fsync.

                                                Пока что ты не привел ни одного примера бага в стабильной версии постгрес, приведшего с потере данных.


                                                ps:
                                                >CentOS7, Disk image space is a ZFS pool
                                                понятно
                                                Ответить
                                                • > CentOS7
                                                  > ZFS pool

                                                  Азаза, нищуки анскильные. На Солярку денех не хватило — поставили сырое гогно на сервак.
                                                  Ответить
                                                  • Солярис для x86 бесплатный ващето (но не открытый).

                                                    И да, там ZFS из коробки. Просто для него админа хер найдешь, там всё ОЧЕ сильно отличается от Linux


                                                    > сырое гогно на сервак.
                                                    В центоси 7 нет ZFS кстати. Его нужно явно ставить добавляя левый реп, а чуть ли не драйвер ядра компилировать.

                                                    Короче, постгрес виноват
                                                    Ответить
                                                    • >В центоси 7 нет ZFS
                                                      Понятно. Драйвер же не в mainline. А в целом это такой же дистр как и все остальные.

                                                      Не могу не вспомнить классику (автора думаю все угадают)
                                                      https://www.realworldtech.com/forum/?threadid=189711&curpostid=189841

                                                      If somebody adds a kernel module like ZFS, they are on their own. I can't maintain it, and I can not be bound by other peoples kernel changes.

                                                      And honestly, there is no way I can merge any of the ZFS efforts until I get an official letter from Oracle that is signed by their main legal counsel or preferably by Larry Ellison himself that says that yes, it's ok to do so and treat the end result as GPL'd.

                                                      Other people think it can be ok to merge ZFS code into the kernel and that the module interface makes it ok, and that's their decision. But considering Oracle's litigious nature, and the questions over licensing, there's no way I can feel safe in ever doing so.

                                                      And I'm not at all interested in some "ZFS shim layer" thing either that some people seem to think would isolate the two projects. That adds no value to our side, and given Oracle's interface copyright suits (see Java), I don't think it's any real licensing win either.

                                                      Don't use ZFS. It's that simple. It was always more of a buzzword than anything else, I feel, and the licensing issues just make it a non-starter for me.

                                                      The benchmarks I've seen do not make ZFS look all that great. And as far as I can tell, it has no real maintenance behind it either any more, so from a long-term stability standpoint, why would you ever want to use it in the first place?


                                                      > Просто для него админа хер найдешь
                                                      И стоить он будет...
                                                      Ответить
                                                • потому что в религии никто не ищет, в чем верховное божество ошибается?

                                                  ссылки на баг не будет, потому что в Особом постгресе помимо всего прочего еще нет и публичного трекера.
                                                  Ответить
                                                  • Потому что взрослые люди заводят баг, или пишут вот сюда:
                                                    https://www.postgresql.org/list/pgsql-bugs/

                                                    "памагите у меня не работает" это не баг.

                                                    > нет и публичного трекера
                                                    это пиздеж, см выше
                                                    Ответить
                                                    • ты правда не различаешь меилинг лист с багтрекером?
                                                      Ответить
                                                      • Ты очень сильно удивишься, но многие старые проекты используют мейлинг листы как баг трекеры, потому что у них есть архивы, и туда можно писать через почту
                                                        Ответить
                                                • бля, да там dml оказывается параллельно выполнять нельзя https://granicus.if.org/pgbugs/17042
                                                  Ответить
                                                  • >там dml оказывается параллельно выполнять нельзя

                                                    --ПОСТГРЕС ГАВНО ТАМ ТЕРЯЮТСЯ ДАННЫе
                                                    --пруф?
                                                    --там DML нельзя выполнять параллельно

                                                    /thread
                                                    Ответить
                                                • https://granicus.if.org/pgbugs/17268

                                                  на любую операцию с серваком вообще походу надо останавливать запись

                                                  какой зеро даунтайм )))
                                                  Ответить
                                                  • > https://www.postgresql.org/message-id/CAH2-Wznen2nOrUB32LrsuF4uGfDF1s_VZzDjhOYfLKo5 [email protected]

                                                    > I wonder if it's a coincidence that that number (~4.04 billion) is not
                                                    that far from 2^32-1 (~4.294 billion).

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

                                                    Он правда пока не знает что такое индексы, и что перестройка индексов не имеет отношения к потере данных.

                                                    Но скоро он найдет баг трекер эластика, и узнает, что там тоже есть баги
                                                    https://github.com/elastic/elasticsearch/issues
                                                    Ответить
                                                    • это не багтрекер
                                                      это чей-то парсер меилинг листа, к которому деды так привыкли в девяностых, что не заметили как начались двадцатые
                                                      появился он очевидно из-за того, что никакого багтрекера и близко нет, а он нужен
                                                      в котором я просто сделал ctrl + f corrupted, открыл первые два сообщения, охуел и затем вышел
                                                      Ответить
                                                      • И так, пострес говно, такое как майсиквл, потому что:
                                                        * у него багтрекер в мейл листе, а файк не умеет им пользоваться (хотя тут есть форма поиска https://www.postgresql.org/list/pgsql-bugs/)
                                                        * файк постгреса не знает (а эластик знает)
                                                        * у какого-то чувака на форуме на нестабильной ФС что-то упало


                                                        По этому прямо сейчас замените постгрес в своем проекте на эластик серч, и все станет отлично
                                                        Ответить
                                                        • > пострес говно, такое как майсикв

                                                          А почему это MySql прям такое говно?
                                                          Я помню тот же багор Борманда c ||. Но есть ли какие-то скилльные аргументы?
                                                          Ответить
                                                          • Исторически мускуль был кастрированной базой, сделанной на коленке для неосиляторов. А постгрес старался реализовать бОльшую часть стандарта.

                                                            В результтате в мускуле выросло пыхокоммунити очень слабых разработчиков, и там всё стало очень плохо: глупые инструменты, фиговые программисты, глупые форумы.

                                                            Со времеем мускуль стал пытаться что-то уметь, но также хаоьтично и глупо, как пых.

                                                            На данный момент вот так с ходу

                                                            * нет GEQO, тупой оптимизатор
                                                            * нет GiST индексов (может уже есть)
                                                            * нет ренжей
                                                            * хуёвые констреинты
                                                            * нет Materialized Views
                                                            * нет Generated Columns

                                                            самое печальное, что 99% пользователей мускуля не понимает, зачем это надо
                                                            Ответить
                                                            • > * нет GEQO, тупой оптимизатор
                                                              > * нет GiST индексов (может уже есть)
                                                              > * нет ренжей
                                                              > * хуёвые констреинты
                                                              > * нет Materialized Views
                                                              > * нет Generated Columns

                                                              > самое печальное, что 99% пользователей мускуля не понимает, зачем это надо

                                                              GEQO, GiST, ренджи-хуенджи, я вообще не ебу что это. Про SQL я знаю только что это какой-то говноязык для запросов в БД, и что там в БД хранится некое говно, которое этими говнозапросами можно как-то вытягивать по каким-то критериям типа "выбери мне сотрудников которые работают в нашей говноконторе более 1 года, у которых зарплата больше X и которые не привиты от короновируса" - и типа каким-то говноSQL запросом SELECT можно получить список этих вот сотрудников.
                                                              У меня этого SQL в контроллерах нет, поэтому я за контроллеры.
                                                              Ответить
                                                              • Ты имеешь право этого не знать. А вот когда это не знают энтерпрайз питухи, и на голубом глазу пиздят мне что "mysql ничем не отличается от postgres", потому что они никогда в жизни не писали ничего сложнее запроса "выбрать сотрудников у которых зарплата больше N", вот это печально
                                                                Ответить
                                                                • >>>"никогда в жизни не писали ничего сложнее запроса "выбрать сотрудников у которых зарплата больше N", вот это печально"

                                                                  Если информационная система требует написания более сложных запросов, имеет смысл задуматься, нужна ли вообще эта информационная система.
                                                                  Ответить
                                                            • >В результтате в мускуле выросло пыхокоммунити очень слабых разработчиков

                                                              Это какое-то предубеждение и пропаганда. Мускуль сильно прибавил с тех пор.

                                                              > нет GiST индексов (может уже есть)
                                                              Какая-то питушня которая есть только в постгресе. Если нужно селектить расстояние по 2Д координатам в других бд давно есть аналогичный функционал, просто называется он по-другому.

                                                              > 99% пользователей мускуля не понимает, зачем это надо
                                                              Я тоже не понимаю.

                                                              >* нет Generated Columns
                                                              Это есть.
                                                              >* нет Materialized Views
                                                              Это тоже есть.

                                                              > * нет ренжей
                                                              > * хуёвые констреинты
                                                              Это нужно конкретизировать.

                                                              В общем синдром Блаба какой-то.
                                                              Ответить
                                                              • >я тоже не понимаю

                                                                Тогда предлагаю всё таки файл, разделенный запятыми.

                                                                Generated columns are supported by the NDB storage engine beginning with MySQL NDB Cluster 7.5.3.

                                                                Что это такое?
                                                                В обычной нет?

                                                                Does MySQL 8.0 have materialized views?
                                                                No
                                                                https://dev.mysql.com/doc/refman/8.0/en/faqs-views.html#faq-mysql-have-materialized-views

                                                                >ренжи
                                                                https://www.postgresql.org/docs/13/rangetypes.html

                                                                >В общем синдром Блаба какой-то.
                                                                у мускульщиков-то?
                                                                возможно
                                                                Ответить
                                                                • > Generated Columns

                                                                  В этой фигне ничего особенного.
                                                                  Синтаксический сахарок, который легко заменит вьюха.

                                                                  >Что это такое?
                                                                  https://dev.mysql.com/doc/refman/5.7/en/create-table-generated-columns.html

                                                                  >> В общем синдром Блаба какой-то.
                                                                  > у мускульщиков-то?
                                                                  Нет, есть набор какой-то постгрес питушни. Половина из которой есть только в postgres, другая половина есть mysql.
                                                                  Ответить
                                                                  • > ничего особенного.
                                                                    Понятно

                                                                    Всё не нужно, что сломалось
                                                                    Всё не нужно, чего нет.
                                                                    Ответить
                                                                    • Нет, не понятно.

                                                                      Во-первых, Generated Columns там есть.
                                                                      Во-вторых, этот функционал не киллер фича, а синтаксический сахар, который с легкостью заменяется вьюхой.

                                                                      >GEQO
                                                                      >GiST
                                                                      Postgres specific buzzwords, которых нет ни в оракле, ни в ms-sql.
                                                                      Ответить
                                                                      • >Во-первых, Generated Columns там есть.

                                                                        там -- это где? в каком-то особом движке?

                                                                        >Во-вторых, этот функционал не киллер фича, а синтаксический сахар

                                                                        Совершенно не понятно почему так.
                                                                        Ты так считаешь, а я эдак.
                                                                        А Ротойоб считает, что можно сидеть на MyISAM и 3.23, а все остальное это синтаксический сахар, который легко эмулируется PHP.

                                                                        >Postgres specific buzzwords, которых нет ни в оракле, ни в ms-sql.

                                                                        GEQO позволяет джойнить очень много таблиц за разумное время. У SQL и Oracle есть аналогичные технологии.

                                                                        MySQL has a limit of 61 tables in a join.

                                                                        Вообще было бы интересно увидеть табличку со списком фич и галочек:
                                                                        * фича описана в стандарте
                                                                        * реализована в постгре
                                                                        * реализована в мускуле


                                                                        тогда можно будет сравинить
                                                                        Ответить
                                                          • А вобще вот

                                                            PostgreSQL supports most of the major features of SQL:2016. Out of 177 mandatory features required for full Core conformance, PostgreSQL conforms to at least 170.

                                                            MySQL цифр не дает вообще
                                                            им стыдно
                                                            Ответить
                                                        • ладно, давайте искать corrupted:
                                                          https://www.postgresql.org/search/?m=1&ln=pgsql-bugs&q=corrupted

                                                          >Concurrent Modifications of PostgreSQL Function Can Corrupt Database

                                                          Чувак бекапит базу одновременно изменяя код хранимки

                                                          портится БЕКАП а не база, причем ошибка падает сразу

                                                          >Relation mapping file "global/pg_filenode.map" contains invalid data

                                                          ооо, наверное это оно?
                                                          Но, нет: We went through a hacker attack at our company, and corrupted some data folders.

                                                          > postgresql 13.1 process crash every hour

                                                          корпатнулся индекс, после перестройки всё заработало (хотя и постыдно)

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

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

                                                            Я думал услышать какие-то технические объяснения проблемы постгреса, что-то про тормоза MVCC итд.

                                                            Вместо этого я получил истерику с рассказом про "разрабатывается дедами", "неудобный мейл лист", "не использует треды" (почитай на досуге чем тред от процесса отличается на линуксе)

                                                            На всякий случай добавлю, что Cassandra это noSQL, и она нужна для совершенно иных задач. Сравнивать её с Posgtres мягко говоря странно, чтобы не сказать жеще.

                                                            Постгрес надо сравнивать с другими РСУБД.
                                                            С MySQL (который у постгреса сосет) или с Ораклом или MS-SQL, но тут надо смотреть на цену.

                                                            MS-SQL круче, Оракл вероятно тоже, но из бесплатных постгрес однозначно рулит.

                                                            И последнее: мы так и не увидели ни одной истории про потерю данных на стабильной базе по вине базы.

                                                            Ты сказал неправду, чувак. Постгрес не теряет данные
                                                            Ответить
                                                          • > Relational databases have impotence mismatch.
                                                            Ответить
                                    • > RAID

                                      Ну так нужно иметь репликацию на несколько машин )
                                      Ответить
                                      • >Ну так нужно иметь репликацию на несколько машин )

                                        Верно. Но кроме того RAIDу нужна батарейка, если он в режиме writeback. Если в write through, то не надо, но это медленно.
                                        Ответить
                          • твоя кассандра такое же говно, как файл, разделенный запятыми

                            у нее проблемы с перформансом
                            https://sysdig.com/blog/column-selection-effects-query-performance/

                            с физикал интегрити
                            https://www.pluralsight.com/guides/disaster-recoverable-data-persistence-with-apache-cassandra-prepare-for-the-unexpected

                            И еще ее нужно тюнить
                            https://thelastpickle.com/blog/2018/08/08/compression_performance.html

                            какие-то ебанутые настройки
                            Ответить
                            • Надо было сразу ссылку на Афира кидать с 20% write loss на ровном месте.
                              Ответить
                            • Кстати, не первый раз вижу, как долбоёбы постят текстовый аутпут картинкой
                              https://thelastpickle.com/files/2018-08-08-compression-performance/sjk-64.png

                              Это теперь мода такая от создателей "трехчасовой ток вместо документации" и "wiki с экзамплом вместо референса"?
                              Ответить
                            • и вообще
                              ваш эластик -- всё
                              http://zsv-elastik.ru/
                              Ответить
                            • сходил по ссылкам, какие-то ебланы не прочитали как она работает и предъявляют претензии

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

                                И не задолго до того
                                [quote]
                                ты должен знать снизу донизу какие-то ебанутые настройки, которые в любом адекватном ПО уже были бы выставлены в нормальные значения
                                [/quote]

                                clown.jpg
                                Ответить
                                • так там не надо читать документацию, чтобы знать что выборки по partition key это не выборки по primary key
                                  Ответить
                                  • В смысле ты родился с этим знанием?
                                    Ок.

                                    А я родился со знанием про freeze
                                    Ответить
                                    • Это то же самое, как использовать рдбмс без знания что такое праймари ки
                                      Ответить
                              • > сходил по ссылкам, какие-то ебланы не прочитали как она работает и предъявляют претензии

                                Ладно, кидаю ссылку на Афира (для непосвящённых — он автор jepsen, тест-тулы которая поставила раком все существующие БД):

                                https://aphyr.com/posts/294-jepsen-cassandra

                                Самый сочок:

                                > Losing 28% of your supposedly committed data is not linearizable by any definition. Next question.

                                > So if you do 100,000 writes/sec, on any given read you’ve got a 5% chance of seeing corrupt data. If you do 10 writes/sec and 1 read/sec, in each day you’ve got about a 1/3 chance of seeing corrupt data in any given day.

                                > The second thing you’ll notice is deadlocks. In my Jepsen tests, the cluster would go unresponsive after the first 10 or so transactions–and it would never recover. Any further attempts to modify a cell via transaction would spin endlessly in failed transactions, until I manually truncated the system.paxos table.
                                Ответить
                                • Словно в туалет сходил
                                  Ответить
                                • Для контраста, анализ постгри: http://jepsen.io/analyses/postgresql-12.3
                                  Выжимка для ленивых:
                                  In most respects, PostgreSQL behaved as expected: both read uncommitted and read committed prevent write skew and aborted reads. We observed no internal consistency violations. However, we have two surprising results to report. The first is that PostgreSQL’s “repeatable read” is weaker than repeatable read, at least as defined by Berenson, Adya, Bailis, et al. This is not necessarily wrong: the ANSI SQL standard is ambiguous. The second result, which is definitely wrong, is that PostgreSQL’s “serializable” isolation level isn’t serializable: it allows G2-item during normal operation.

                                  Где потеря данных, Fike?
                                  Ответить
                                  • А можно пожалуйста такое же про майсцыкуль?
                                    Ответить
                                • No. Cassandra lightweight transactions are not even close to correct. Depending on throughput, they may drop anywhere from 1-5% of acknowledged writes–and this doesn’t even require a network partition to demonstrate. It’s just a broken implementation of Paxos.

                                  If partitioned for about half of the test run, I found counters could drift by up to 50% of the expected value.

                                  В общем, Cassandra примерно на 50% надёжнее, чем /dev/null, неплохо!
                                  Ответить
                                  • > В общем, Cassandra примерно на 50% надёжнее, чем /dev/null, неплохо!
                                    В смысле? Есть какие-то данные о расхождении результата с ожиданием при использовании dev/null?

                                    У меня такое только раз было, когда я права сломал и у меня доступа к dev/null не было.
                                    Ответить
                                  • Годный блог.

                                    По сути NoSQL животные годами пытаются оспорить CAP теорему (любые 2 и 3).

                                    А он спускает всю эту мечтательную мразоту на землю.
                                    Ответить
                                • > Cassandra is a Dynamo system; like Riak, it divides a hash ring into a several chunks, and keeps N replicas of each chunk on different nodes. It uses tunable quorums, hinted handoff, and active anti-entropy to keep replicas up to date. Unlike the Dynamo paper and some of its peers, Cassandra eschews vector clocks in favor of a pure last-write-wins approach.

                                  > > So if you do 100,000 writes/sec, on any given read you’ve got a 5% chance of seeing corrupt data. If you do 10 writes/sec and 1 read/sec, in each day you’ve got about a 1/3 chance of seeing corrupt data in any given day.

                                  Столько вумных слов, а обосрались так, будто они там данные в файлик «data.json» пишут.
                                  Ответить
                                  • Я могу ошибаться, но помоему надо иметь универсальный сурс данных в сильно нормализированной OLTP базе, а все эти базы на 100500 колонок уже генерить по ней, и делать по ним отчеты
                                    Ответить
                                • Куда делся файк? Я требую продолжения треда!
                                  Ответить
                                  • У меня есть сомнения что статья 2013 года актуальна
                                    Ответить
                                    • Ты файка Файка?
                                      Ожидаемый ответ. Однако он разбивается чисто по индукции. Чтобы доказать утверждение "Cassandra написана ротоняками", нужно сначала доказать базис индукции. Базис индукции даёт эта статья. Затем мы приме-ня-ем утверждение, что принципы разработки существенно не изменялись, к гипотезе индукции, и получаем, что в 2021м году Cassandra всё ещё является ротонякской DB.
                                      Qed.
                                      Ответить
                                      • >"Cassandra написана ротоняками"

                                        Ты этот тезис только что придумал.

                                        Тезис был что Кассандра лучше посгри как key-value store
                                        Ответить
                                        • У меня доказательство обратного by contradiction.
                                          Ответить
                                          • Статья 2013 не является опровержением того что Кассандра лучше посгри как key-value store

                                            Особенно если с момента релиза Кассандры до момента написания статьи прошло меньше лет чем с момента написания статьи дл времени комента файка
                                            Ответить
                                            • Сразу обозначу что я естественно за mysql
                                              Ответить
                                            • Ой там ещё в конце довесочек:
                                              Additional consistency examples:

                                              You do a write at ONE, the replica crashes one second later. The other messages are not delivered. The data is lost.
                                              You do a write at ONE, and the operation times out. Future reads can return the old or the new value. You will not know the data is incorrect.
                                              You do a write at ONE, and one of the other replicas is down. The node comes back online. The application will get old data from that node until the node gets the correct data or a read repair occurs.
                                              You do a write at QUORUM, and then a read at QUORUM. One of the replicas dies. You will always get the correct data.



                                              > Cassandra does not use employ traditional mechanisms like locking or transactional dependencies when concurrently updating multiple rows or tables.

                                              Звучит страшно. Я бы важные данные там не хранил. И не особо важные тоже.
                                              Ответить
                                              • Ты можешь хоть до утра обсирать Кассандру, это все еще не будет опровержением тезиса файка что Кассандра лучше посгри как key-value store
                                                Ответить
                                                • Вот статья 2016 года:

                                                  http://datanerds.io/post/cassandra-no-row-consistency/
                                                  В ней описывается проблема консистентности уже в рамках одной (!) записи.

                                                  > Кассандра лучше посгри как key-value store

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

                                                  Однако если мне понадобится key-value store я возьму сишный Redis.

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

                                                Неизбежная плата за скорость и масштабируемость.

                                                В общем-то если в РСУБД отключить флаш лога транзакций и юзать dirty read, они тоже на скорости memcached'а работать начнут... ACID -- это дорого.
                                                Ответить
                                    • Говно за десятилетие не тонет не устаревает. РНР актуален, недобаза ихняя тоже, Рутноп актуален еще как, разве что Delhi из ротоебского языка переместился в ницшу для фриков и энтузиастов всякого кобола.
                                      Ответить
                                    • >есть сомнения что статья 2013 года актуальна

                                      Официальная документация пойдёт?

                                      Note: It is not possible to "tune" Cassandra into a completely CA system. See You Can't Sacrifice Partition Tolerance for a more detailed discussion.
                                      https://docs.datastax.com/en/cassandra-oss/3.x/cassandra/dml/dmlAboutDataConsistency.html

                                      Кстати я забыл отметить что у Афира в блоге лалкохранилища не всегда могли держать даже 1 из 3!
                                      То есть у этой хипстерской NoSql швали вроде как супербыстрые транзакции, а в итоге получается 1 гарантия из 3, у особо анскильных даже 0 из 3.

                                      Для внеклассного:

                                      https://stackoverflow.com/questions/47465360/lightweight-transcation-in-cassandra#47466910
                                      Ответить
                  • ладно, я погуглил.

                    "постгрес потерял данные": 1 ссылка
                    >postgres потерял данные из-за изменений поведения с tmpfs.

                    Понятия не имею что несет аноним с лора, то вероятно речь о переносе tempdb на tmpfs, что когда-то у кого-то привело к каким-то проблемам, но мы не знаем.

                    По теме "дагестанец выебал казака" в Интернете больше информации.

                    Ищем теперь postgres "corrupted page file"
                    Два резулттата

                    NOT FOUND is an indication of a corrupted page file. ... Driver" jdbc_driver_library => "/tmp/logstash/vendor/postgresql-42.1.4.jar" jdbc_connection_string ..

                    и

                    ... Start Full Stack Web Development: Build Secure Asynchronous Single-Page Apps with Flask, React, and PostgreSQL ... How you can Fix a Corrupted Page File.

                    -------------


                    Файк, ты оказывается троллил. А я думал, ты серьезно.
                    извини))
                    Ответить
                • А пригоревший питух (Firebird) подойдёт?
                  Ответить
                  • у меня недостаточно компетентности в вопросе и опыта с ним, чтобы что-либо заявлять
                    Ответить
                  • Конечно. Очень надёжная СУБД
                    К ней даже тула для выковыривания данных из развалившейся базы есть...
                    Ответить
                    • Самая надёжная это внутренняя файловая СУБД 1С.
                      К ней тулз для её ворошения очень много.
                      Ответить
                      • Кстати, 1C работает и с MS-SQL, и с Oracle и Postgres, но очень забавно: создает порядка тридцати тысяч таблиц с нечитаемым говном внутри

                        Причем постгрес у нее свой, своя сборка. на обычной потсгрес не работает
                        Ответить
              • Да, он вытесняет записи, потому что его разрабатывали чисто как кэш.
                Ответить
              • Мне ещё RRDtool нравится. Если данных оказалось больше размера кольца, то... ну, бывает.
                Ответить
                • со времен muninа ничего о нем не слышал
                  Ответить
                  • Хугин и Мунин
                    над миром всё время
                    летают без устали;
                    мне за Хугина страшно,
                    страшней за Мунина, —
                    вернутся ли вороны!
                    Ответить
          • > memcached, redis
            PHP-way.

            Кстати благодаря тому что пыхерам это приходится делать сразу — их системы хорошо масштабируются на несколько машин.
            Ответить
            • ..и потом стоят в очереди в одну mysql, да.

              Но я согласен с тем, что они не могут, как жавушки запустить 3000 долгоиграющих тредов и шедулер кварц внутри (а вынуждены ебаца с кроном, лалки) так что в теории их приложения stateless.
              Ответить
        • Фу как не современно

          Во-первых можно сделать общую MySQL базу
          Во-вторых можно посылать друг другу REST запросы с JSON
          Ответить
          • Надо что-нибудь понавороченнее типа Protobuf, чтобы продемонстрировать знания технологий. JSON сейчас даже школьники знают.
            Ответить
            • херня на постном масле ... юзай BSON
              Ответить
              • WBXML ещё круче.
                Ответить
                • Голосую за синхронизацию по SMTP. Это умели и биззток и контроллеры домена.

                  Один тред шлет емейл, другой его получает.

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

        А какой официальный IPC у твоего Nim?
        Ответить
        • показать все, что скрыто{eq его знает, вроде бы есть какие-то "channels", low-level thread API. Но с ними есть один нюанс:

          # Note that objects passed through channels will be deeply copied.

          Это, получается, плохо и неперфомансно. Похоже, придётся через "channel" гонять "deepcopies" моих данных по чуть-чуть, хотя можно и всё сразу.

          Хотя, если верить вот этому туториалу, то выглядит всё довольно неплохо:

          https://nim-lang.org/docs/channels_builtin.html
          Ответить
          • Ну конечно дипли, какой смысл копировать шеллоу, и передавать ссылку на недоступное адресное пространство? Фолта соснуть хочеца?

            Сделай спец структуры (типа жавушных DAO) и передавай их через ченнелы. Будует чисто и понятно
            Ответить
            • показать все, что скрытоТак, вроде бы с каналами я разобрался. А как пердолить данные туда-обратно?

              Допустим, я хочу приостановить числодробилку, чтобы успеть переписать некоторые результаты в блокнот, либо ввести ещё одну переменную.

              Получается, что мне нужно два канала, через один ЧД будет срать мне в консоль, а через другой будут сообщаться команды для ЧД.

              Я думаю сделать это так:

              1. Можно вставить неблокирующий вызов channel.tryRecv(), чтобы считать команду, если таковая есть, а потом посчитать формулу. И так снова и снова...

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

              Как принято поступать, разрабатывая солидные распределённые "highload" системы реального времени? Лично я больше склоняюсь к первому варианту.
              Ответить
              • >. И так снова и снова...
                бизивейт что ли?
                не надотак

                Знаешь как работает kqueue/select/pool/epoll в никсах или completion ports в пинде?

                Общая мысль такая: "я жду когда просрутся вот эти восемь каналов. Разбудите меня когда хотя-бы один просрется, а я пока посплю"

                >два потока
                см 10k problem
                Ответить
                • показать все, что скрыто> >два потока
                  > см 10k problem

                  Да, тогда потоки не нужны, получается.

                  > Знаешь как работает kqueue/select/pool/epoll в никсах или completion ports в пинде?

                  Нет, но догадываюсь. Ковырял недавно async/await питушню, но она мне не подошла для моей задачи. Всё-таки потоки более гибкие в плане одновременного выполнения.

                  > бизивейт что ли?

                  Это тот, который "while(time() < t + 100) {};"? Конечно, ТАКОГО у меня не будет, потому что "highload".

                  Алгоритм в первом случае будет такой:

                  1. Во входящий канал насрали?
                  1.1. Если да, то обработать команду.
                  2. Посчитать хуиту.
                  3. Насрать хуитой в исходящий канал.

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

                    Потоков нужно __примерно__ столько, сколько ядер. 10к потоков не нужно.

                    >Это тот, который


                    ну ты написал "1. Можно встав", я и испугался

                    >1. Во входящий канал насрали?
                    а если нет?
                    Ответить
                    • показать все, что скрытоА если не насрали, то ничего не будет. Там есть питуля, чтобы проверять, насрато ли в канал:

                      # This time, use a non-blocking approach with tryRecv.
                      # Since the main thread is not blocked, it could be used to perform other
                      # useful work while it waits for data to arrive on the channel.
                      while true:
                        let tried = chan.tryRecv()
                        if tried.dataAvailable:
                          echo tried.msg
                          break
                        
                        echo "Kokoko pokpok!!"
                        computeImportantThingsQuickly()
                        sleep(400)

                      Но я же правильно понимаю, что если ``computeImportantThingsQuickly'' будет вовсе не ``Quickly'', то программа встанет, и будет нехорошо?

                      А если бы был ``epoll'', то можно было бы ему передать какой-нибудь "коллбек", и он бы его 100% вызвал, вне зависимости от загруженности потока с числодроблением.
                      Ответить
                      • > sleep(400)
                        лол)
                        А почему не 98 и не 732?

                        >о программа встанет, и будет нехорошо?
                        Ага

                        >коллбек
                        Это скорее в win completion ports.

                        С epoll ты бы избавился от sleep.



                        Я бы сделал так (псевдокот)
                        while channel.opened:
                          task = channel.recieve_blocking() # блочимся до первой доступной задачи
                          another_thread.send_task(task)


                        если тебе нужно получать еще и ответы от "another_thread" тогда так
                        # спим, пока не появится одно или другие
                        channel, data = select(client_channel, another_thread_channel)
                        if channel == client_channel:
                            # ставим задачу в другой поток
                            another_thread.send_task(data)
                        else if channel == another_thread_channel:
                           print(f"Другой поток задачу выполнил, просил передать {data}")


                        Более нрмальный вариант с несколькими another_threadами предлагаю тебе сделать самому
                        Ответить
                        • показать все, что скрыто> А почему не 98 и не 732?

                          Если поставить 98, то консоль будет слишком быстро засираться. А если 732, то наоборот, слишком медленно.

                          Это пример, так что похуй. В чистовом варианте sleep-ов не будет, т.к. мне нужен перфоманс. Это же "highload"!

                          В итоге, знатно попердолившись, у меня получилось сделать вот такое:
                          proc worker(t: threadData) =
                            for i in 0..100:
                              let tried = t.chin[].tryRecv()
                              if tried.dataAvailable:
                                echo "Command: {tried.msg}".fmt
                              sleep(400)
                              t.chout[].send($i)
                          
                          proc worker_net(t: threadData) =
                            while true:
                              let tried = t.chin[].tryRecv()
                              if tried.dataAvailable:
                                echo "Main received: {tried.msg}".fmt
                              t.chout[].send("Koko! >:V")
                              sleep(400)


                          Всё работает как надо и, похоже, довольно перфомансно! Как тебе такое решение? Говно или не очень?

                          Как по мне, оно полностью подходит под мою задачу: бекенд бекенда через два канала передает данные и получает команды в и из фронтенда бекенда, который будет заворачивать данные в UDP-сокет и высирать их на клиента, который всё это будет рендерить в реальном времени.

                          А ещё я нашел вот такую питулю:

                          https://nim-lang.org/docs/selectors.html

                          В "Nim", оказывается, столько всего есть!
                          Ответить
    • Кто-то когда-то пользовался «MMS»? У меня ни разу не удавалось отправить картинку.
      Ответить
    • Питух утверждает, что создал сортировку быстрее, чем std::sort в 2 раза

      https://habr.com/ru/company/wunderfund/blog/597113/
      Ответить
      • показать все, что скрыто> Malte Skarupke

        > I can program and like games

        > These days it’s a pretty bold claim if you say that you invented a sorting algorithm

        > C++20 added minimal support for coroutines. I think they’re done in a way that really doesn’t fit into C++

        > One of my favorite things to have worked on was the Getting Over It easter egg in Just Cause 4.

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

          О, я читал этого типа.

          Он кажись на крестах царские мапы делал, быстрее stlных.

          > Мне кажется, что он клинический дебил & долбоёб

          Ничего страшного. Это первое впечатление нормального человека, о том кто пишет на крестах.
          Ответить
      • Ну да, сортировку целых чисел можно сделать быстрее сортировки общего назначения.
        Только для обеспечения этой сортировки придётся perfect hash, который сохраняет порядок, писать для своего класса. И вычислять при каждой сортировке. И если у тебя возможных состояний больше чем влазит в size_t, то сосёшь. Или если у тебя нетривиальные требования к сортировке. Список файлов им не отсортируешь...
        Ответить
      • О, там в комментах к параллельной статье есть прекрасный вид сортировки
        https://desu-usergeneratedcontent.xyz/g/image/1494/01/1494018902076.png
        O(n), где n — максимальное значение чисел на входе.
        Ответить
        • показать все, что скрытоСайт не работает: там наркотики, детское порно и экстримизм, получается? Что же это за сортировка такая...
          Ответить
          • Decision 1з-38247/2021 made on 2021-09-22 by Минкомсвязь.
            This block affects IP 104.21.235.35 and domain emb.apl67.me.

            Decision 2-2836/16 made on 2016-07-29 by Первореченский районный суд г. Владивостока - Приморский край.
            This block affects IP 104.21.235.35 and domain www.pornoskazka.net.

            Decision 498359-URL-on made on 2018-08-28 by Роскомнадзор.
            This block affects IP 104.21.235.35, domain desu-usergeneratedcontent.xyz and URL https://desu-usergeneratedcontent.xyz/d/image/1505/98/1505989605089.jpg
            Ответить
            • показать все, что скрыто> www.pornoskazka.net
              > Первореченский районный суд г. Владивостока

              Торт настучал.

              > emb.apl67.me
              > Минкомсвязь

              Алкаши настучали.

              > https://desu-usergeneratedcontent.xyz/d/image/1505/98/1505989605089.jpg

              Пиздец. Как хорошо, что этот сайт запретили законом.
              Ответить
        • >desu

          напомнило
          fun getTomorrowDate()  {
           sleep(86400);
            return now();
          }
          Ответить
        • > O(n), где n — максимальное значение чисел на входе.
          > sleep (arr[i])

          По-моему на заре ГК обсуждали подобные вореанты сортировок, использующих сисколы.

          Дошли до того, что O(logN*N) скрыто в шедулере процессов.
          Ответить
          • когда-то для отмеров времени использовали такты CPU (потом такие игры летали в плохомсмысле на 486х)

            давайте так же считать по квантам шедулеравремя
            Ответить
            • > давайте так же считать по квантам шедулеравремя
              Причём тут это?

              Для того чтобы узнать когда кого разбудить, всё-равно придётся делать priority queue(heap) с упорядочиванием. На получение одного элемента там нужно log(n).
              А всего как раз O(n*log(n)).
              Ответить
    • Читал сегодня за завтраком форумы и наткнулся на упоминание того, что в России (СССР) когда-то было напряжение 127 вольт. Причём, относительно недавно было-то ещё, на памяти наших родителей:
      Ответить
      • В моём детстве на технике были переключатели 127/220.

        Мои родители рассказывали, что в Московской области перешли на 220 вольт раньше, чем в Москве. Был какой-то период, когда в столице и в области было разное напряжение. Но это было задолго до моего рождения. Может быть, в 1960-х.

        А недавно прочитал, что в центре Питера в кварталах с плотной застройкой в некоторых домах 127 вольт сохранялось до XXI века, потому что новые трансформаторные подстанции размещать негде, а если разобрать старую, то жильцы будут долго без электричества вообще.
        Ответить
      • Я намного страшнее реальный пример нашёл. Мужик один пишет, что его фирма получила заказ на электрооборудование для «Русала». Увидел в ТЗ напряжение 500 вольт. Удивился, перезвонил. Нет, не опечатка.

        Оказывается, в «Русале» в 2021-м году куча трофейного оборудования. 500 вольт было в Третьем Рейхе, потому что Гитлер любил всё большое. Вот под это оборудование, вывезенное из гермашки, сделали электросеть.
        Ответить
        • P.S. Вот тут на форуме обсуждают 500 вольт:
          http://www.electrik.org/forum/index.php?showtopic=16892
          Ответить
    • показать все, что скрытоВ "Nim", если открыть каналы в одном порядке, а закрыть в другом, нихуя не скококомпилируется. Узнал я об этом методом тыка.

      А почему так может быть?
      Ответить
    • https://www.meme-arsenal.com/memes/79bc1cef14312418404a7f02042e96cb.jpg
      Ответить
      • показать все, что скрыто— Ты нахуя короткие то купил
        — небыло длинных
        Ответить
        • Программистские носочки?
          Ответить
          • показать все, что скрытоДа, тебе нужно открыть и посмотреть.
            Ответить
            • Я боюсь разадресовывать ссылки. Вдруг там NULL или уже освобождённая память?
              Ответить
              • Волков бояться — в лес не ходить.
                Ответить
              • Наверное, ты имел в виду «разыменовываиь указатели»? Именно поэтому я за стек и передачу по ссылкам.
                Ответить
                • У меня в Си нет никаких "ссылок", да и вообще, так называемые "ссылки" это довольно банальный сахарок над указателями (если мы о крестоговне говорим).
                  Ответить
                  • Ну и обмазывайся теперь проверками if (pituh_ptr == NULL) {error("pituh is NULL"); exit(1);} как гошник ебаный.
                    Ответить
                  • >анальный сахарок

                    напиши мне на си такую функцию, которая получает параметр по значению, а потом ты меняешь в ней один символ, и она начинает получать его по указателю, а все 100400 мест её использования можно не менять (просто перекомпилировать)
                    Ответить
                    • показать все, что скрытоЭто эндофунктор.
                      Ответить
                    • #include <stdio.h>
                      #include <stdlib.h>
                      
                      // менять тут 1 на 0
                      #define PO_ZNACHENIU 1
                      
                      #if PO_ZNACHENIU == 1
                        #define SHIT(x) x
                        #define SHIT2(x) x
                      # else
                        #define SHIT(x) *x
                        #define SHIT2(x) &x
                      #endif
                      
                      int f(int SHIT(x))
                      {
                        return ++SHIT(x);
                      }
                      
                      int main(void)
                      {
                        int a = 555;
                        printf("%d\n", a);
                        printf("%d\n", f(SHIT2(a)));
                        printf("%d\n", a);
                        return EXIT_SUCCESS;
                      }
                      Ответить
                    • > меняешь в ней один символ и она начинает получать по указателю

                      По-моему это пиздец...

                      Или ты const ссылку имеешь в виду? Но там уже не 1 символ, а 7.
                      Ответить
                      • > По-моему это пиздец...
                        Ну почему сразу пиздец. Просто нужно помнить, где данные можно менять, где нельзя.

                        K&R C в этом на питон похож, кстати. const нужен только анскильным лалкам, которые не в состоянии разобраться, можео ли менять данные, или нельзя
                        Ответить
                        • Мне кажется, Борманд намекала на то, что добавление одного амперсанда поломает API функции: в неё больше нельзя будет передать временный объект:
                          struct Foo {};
                          
                          void foo_val(Foo foo) {}
                          void foo_ref(Foo & foo) {}
                          void foo_cref(const Foo & foo) {}
                          
                          // ...
                          
                          foo_val(Foo{});  // OK
                          foo_ref(Foo{});  // FAIL
                          foo_cref(Foo{});  // OK: произошла материализация: https://en.cppreference.com/w/cpp/language/implicit_conversion#Temporary_materialization

                          А вот добавление «const &» действительно ничего не поломает.
                          Ответить
                          • Тогда да, я всё ещё читал про сишку и указатели. В С++ ломаются временные объекты и неявные преобразования.

                            Кстати, преобразования и в Сишке сломаются, если на указатель поменять.
                            Ответить
                          • > ничего не поломает

                            А вдруг кто-то ждал, что x станет пустым после вызова?

                            foo_val(std::mov(x));
                            foo_cref(std::mov(x));

                            Или я туплю?
                            Ответить
                            • Действительно, коньструктор перемещения во втором случае не вызывается.
                              Но я не помню, что там Стандарт по этому поводу говорит (гарантируется ли вообще его вызов, может ли он вызываться при конверсии && -> const & и так далее), а нырять в него лень.
                              Ответить
                              • Конверсии-хуерсии, как всё сложно. Именно поэтому я за Си.
                                Ответить
                                • Да и в сишке хуй сломать можно. Замени на вызов по указателю, и никто не гарантирует, что short* переданный в long* не распидорасит память.

                                  void foo(long l)
                                  {}
                                  . . .
                                  short bar = 0;
                                  foo(bar);
                                  Ответить
                                  • Он же не скомпилится.
                                    Ответить
                                    • На ideone собирался. Я подозреваю, что там по умолчанию какой-то флаг -не_давать_творить_хуйни не стоит.
                                      https://ideone.com/EkKj9C
                                      Ответить
                              • > лень

                                Всё, последний оплот крестоблядства пал.
                                Ответить
                                • Мгновенная карма: bormand получает по заслугам...

                                  https://www.meme-arsenal.com/create/chose?type=all&tag=%D0%BC%D0%B3%D0%BD%D0 %BE%D0%B2%D0%B5%D0%BD%D0%BD%D0%B0%D1%8F% 20%D0%BA%D0%B0%D1%80%D0%BC%D0%B0%20%D0%B 1%D1%8B%D0%B4%D0%BB%D0%BE%20%D0%BF%D0%BE %D0%BB%D1%83%D1%87%D0%B0%D0%B5%D1%82%20% D0%BF%D0%BE%20%D0%B7%D0%B0%D1%81%D0%BB%D 1%83%D0%B3%D0%B0%D0%BC&sort=latest
                                  Ответить
                              • > Но я не помню, что там Стандарт по этому поводу говорит

                                https://i.imgur.com/Nel5RR5.jpg
                                Ответить
                                • Почему не имеет смысла?
                                  Ответить
                                  • Во-первых, не с С++14, а с С++17 — в С++14 его только ввели. Комикс рисовали анскильные лалки.

                                    Во-вторых, make_unique решал следующую проблему:
                                    func_1( unique_ptr<Foo>(new Foo), unique_ptr<Baz>(new Baz) );
                                    func_2( make_unique<Foo>(), make_unique<Baz>() );

                                    В func_1 может произойти следующее: new Foo вычисляется, выделяется память и создаётся объект, затем вычисляется new Baz и где-то там выкидывается эксепшен. Ошмётки недоделанного Baz подчищаются, память освобождается, но созданный Foo утекает, потому что Foo* не имеет специфического поведения при разрушении и развертке стека.

                                    В func_2 вычисляется make_unique<Foo>(), который внутре создаёт и упаковывает объект в unique_ptr, который освободит память, если Baz кинет исключение. Поэтому так делать было безопасней.

                                    В С++17 гарантировано, что один аргумент вычислится полностью, перед тем как начнёт вычислятся другой. То есть после new Foo начнёт вычислятся unique_ptr<Foo>(...), а не что-то другое, так что когда Baz кинет эксепшени, Foo* будет уже надёжно завёрнут в unique_ptr и память освободится при развёртке стека.
                                    Ответить
                                    • Всегда писала аллокацию отдельной строчкой, так что не понимаю этот срач про make_xxx, если честно...
                                      Ответить
                                    • Как боженька расписал.
                                      Ответить
                          • > намекала

                            У него хуй есть.
                            Ответить
                        • > const нужен только анскильным лалкам, которые не в состоянии разобраться, можео ли менять данные, или нельзя

                          У меня в контроллерах глобальные const массивы (и статические const массивы) могут быть размещены только лишь в флеше, т.е не надо просирать на это оперативную память, которой сравнительно мало. Т.е. если есть большой инициализированный не-const массив, данные для инициализации этого говномассива таки будут в флеше, и потом некая хуйня просто перекопирует байтики из флеша в оперативку (т.е. проебывается и место в флеше, и место в оперативке).
                          Ответить
                          • Ну вообще это ортогональные вещи...

                            Ты всегда можешь отправить не-const массив в секцию для флешки. Да и конпелятор не обязан пихать const массивы в секцию для флешки.

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

                              Да, какими-то флагами, прагмами, линкер-скриптом это можно сделать, только вот зачем? Зачем? Если я его делаю не-const, я его наверное буду менять, верно? А если я его буду менять, то изменения в этом массиве сохранятся после перезагрузки контроллера, а нахуй мне это надо? Да и к тому же флеш-память изнашивается
                              Ответить
                              • > наверное буду менять

                                Ну т.е. ты в основном для читателя это пишешь, чтобы показать свои намерения.

                                И вроде есть конпеляторы, которые этот хинт не понимают и надо явно прагму ебашить.
                                Ответить
                                • > Ну т.е. ты в основном для читателя это пишешь )))

                                  Почему "в основном"? Я это еще и для компилятора пишу, чтобы он ругался при попытке менять этот массив. И еще чтобы компилятор не прогондонивал оперативную память на этот массив.
                                  Ответить
                                  • > ругался

                                    Дык это тоже для себя. Емейл протектед как раз про это и пишет.

                                    > не прогандонивал

                                    А вот это стандарт не гарантирует. Но разрешает конпелятору так делать, да.
                                    Ответить
                                    • > А вот это стандарт не гарантирует.

                                      Стандарт может и не гарантирует, а вот некоторые реализации гарантируют.
                                      Ответить
                                      • А некоторые -- нет. Ну например если флешки с random access нету.
                                        Ответить
                                        • > А некоторые -- нет. Ну например если флешки с random access нету.

                                          У некоторых контроллеров флеш памяти вообще нет, т.е. там программа тупо вгружается в оперативную память и там исполняется https://govnokod.ru/27525#comment648694
                                          Ответить
                                          • Я с stm'ками так и играюсь, закидывая весь код в ram...

                                            Правда на cortex m0 это не прокатило -- он не фон-неймановский.
                                            Ответить
                                • >> наверное буду менять

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

                                  Если уж разобраться детальнее, наличие модификатора const позволяет компилятору делать некоторые оптимизации, которые без этого const он бы не имел права делать. Ну например, если есть функция int foo(const int *a), в нее передается указатель на константу и компилятор точно знает, что такая функция ничего не насрет по адресам, компилятор что-то может заоптимизировать. Реальный пример https://gcc.godbolt.org/z/9ebWKhfq5
                                  Ответить
                                  • Мудификаторы могут себя по разному вести с алиасингом.

                                    Хотя Стандарт говорит о «are distinct types that belong to the same type category».

                                    Each unqualified type has several qualified versions of its type, corresponding to the combinations of one, two, or all three of the const, volatile, and restrict qualifiers. The qualified or unqualified versions of a type are distinct types that belong to the same type category and have the same representation and alignment requirements. A derived type is not qualified by the qualifiers (if any) of the type from which it is derived.
                                    Ответить
                          • неумение пользоваться инструментами валидации ведет к деградированию программиста
                            Ответить
                            • умение пользоваться инструментами валидации ведет к деградированию программиста
                              Ответить
                              • как увеличение знаний может вести к деградации?
                                Ответить
                                • Начинаешь полагаться на валидатор и часть знаний забывается.
                                  Ответить
                                  • как можно забыть как пользоваться if?
                                    Ответить
                                    • Писать на языке, где он нинужен.
                                      Ответить
                                      • В той же сишке можно использовать тернарник или «ленивые» операторы (|| и &&), можно использовать «computed goto» или массив указателей на функции; можно использовать формулы, где слагаемое умножается на логическое выражение (которое сишка приведёт к 1 или 0).

                                        Можно вообще использовать упоротую технику с косвенной адресацией:
                                        https://govnokod.ru/26351#comment553808
                                        Ответить
                                        • опишите процесс забытия "if" что должно произойти (ну кроме лоботомии) что бы забылось "if"?
                                          Ответить
                                          • чтение статьи про страшный бранч предикшен
                                            Ответить
                                          • > опишите процесс забытия "if" что должно произойти
                                            branch-misses             #    12,34% of all branches
                                            Ответить
                                          • И все-таки, сэр, я действительно великан. Самый настоящий! Понимаю, в это трудно поверить, но это так… Я опустился…

                                            Это самое страшное из всех наказаний. Всякий знает, как трудно взбираться наверх, но обратный путь всегда тяжелей… Не спрашивайте, как я это делал. Специальная гимнастика, диета, разнообразные поклоны, приседания… Я спускался вниз, как по тропинке, фут за футом, ежедневно приближаясь к уровню сограждан. С головой было труднее всего, но тут помог алкоголь. Ежедневный трехкратный прием алкоголя – и ты очищаешь свою башку от ненужных знаний и мыслей… Первый год я с трудом забывал все то, что усвоил в академии, затем пошло легче… За месяц я забыл колледж, за неделю – гимназию… На забывание философии ушло дня три, на историю – сутки… Потом на эту… как ее… ох, господи… В общем, ее забыл почти без напряжения часа за два… Одним словом, постепенно превратился в нормального господина средних размеров.
                                            Ответить
                                        • > можно использовать формулы, где слагаемое умножается на логическое выражение

                                          Всегда так делаю.
                                          В сочетании арифметикой указателей на char * получается тернарник для строк "true" и "false".
                                          Без ветвления.

                                          https://govnokod.ru/27882#comment750905
                                          #define print(bool) printf("false\n\0true\n" + 7 * (bool&1));
                                          Ответить
                                      • Отдельного внимания заслуживает упоротая сортировка без ифов:

                                        https://govnokod.ru/24496
                                        Ответить
                      • Почему пиздец?

                        fuck(you);
                        
                        //// было
                        fuck(You u);
                        
                        //стало
                        fuck(You& u);
                        Ответить
                        • Потому что раньше ты не мог насрать мне в переменную, а теперь можешь...

                          Ну и сломались все точки, где передавали константы и временные объекты.

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

                  Оказалось, что я сделал вот такое:

                  shit_ptr = cast[ptr Shit](allocShared0(sizeof(ptr Shit)))

                  Кто угадает, почему не работает?
                  Ответить
    • https://pbs.twimg.com/media/FHWM3PGXMBcHKpv.jpg
      Ответить
      • ахаха
        ну да, конечно же программисты специально делают баги. могли бы и не делать, но просто не хотят
        Ответить
        • Разумеется. Как ещё можно остаться незаменимым сотрудником, который найдёт и исправит баг?
          Ответить
    • Эдик, Вася, Миша. Сокращённо — ЭВМ.

      https://pbs.twimg.com/media/DsD2HOJWsAA-EZT.jpg
      Ответить
      • «ну как, получилось»

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

          Надо будет погуглить сканы, вдруг кто-то все выпуски отсканировал.
          Ответить
          • Это мурзилка за какой год? 85-й?
            Ответить
          • А позже еще был антропоморфный компьютер "Менатеп". Учил Мурзилку основам бизнеса. Ручной труд малоэффективен, нужно взять кредит и закупить оборудование, тогда дело пойдет.
            Ответить
            • >Менатеп
              Так это компания Менатеп и проплатила же поди.

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

              Потом путин суркова перекупил, а ходора на кукан посадил
              Ответить
              • Только сейчас узнал, что Владислав Сурков в детстве был Асланбеком Дудаевым.
                Ответить
      • Пека - ящур
        Ответить
    • Vanished
      Ответить
    • Vanished
      Ответить
    • Vanished
      Ответить
    • Vanished
      Ответить
    • Чем Страуструп отличается от Штрауструпа?
      Ответить
      • Что, никто не знает?
        Ответить
        • Когда тебе нравится С++ и ты уважаешь Бьерне, ты называешь его Страуструп.

          Когда ты сёма, и ненавидишь всё, что не понимаешь (а это примерно всё), то коверкаешь имена людей: Штульман, Штауштруп, Швабодка (думаю, это чешская фамилия)
          Ответить
      • Так же, как Штраус от страуса.
        Ответить
    • Republican congressional candidate Martin Hyde faces daily fines from his Homeowner’s Association (HOA) after installing Christmas lights that read, “Let’s Go Brandon” on his home’s balcony.
      Ответить
    • https://archive.teletextarchaeologist.org/

      https://github.com/ali1234/vhs-teletext


      Если вдруг кому-то...
      Ответить
      • Жалко, в их архиве только бриташка и Польша, а их программа требует /dev/vbi0, а у меня нет никакого /dev/vbi0.
        Ответить
        • > vbi

          Карта видеозахвата?
          Ответить
          • в нормальной ОС ты бы сделал man vbi и всё бы узнал
            в прыщах нет

            но ты прав, vbi это video4liux, сиречь плата видеозахвата
            Ответить
    • https://wiki.snk-games.net/Космические_рейнджеры_HD:_Революция

      Помимо этого, в универсальную библиотеку OKGF был включён огромный класс из VirtualDub ветки 1.2x (размером более 1 Мб исходного кода), из которого применялась всего-навсего одна функция для программного рескейла видео на весь экран.

      Это обман чтобы набрать мегабайтный класс )))
      Ответить
    • https://imgur.com/a/7BlH7pX
      Ответить
      • If you're seeing this message, that means JavaScript has been disabled on your browser, please enable JS to make Imgur work.
        Ответить
    • Помните, в 2009-м исходники трёх тысяч сайтов утекли, потому что админы не закрыли директории .svn?

      https://habr.com/ru/post/70330/

      Приготовьтесь. В 2021-м Госуслуги утекли, потому что не закрыли директорию .git:

      https://habr.com/ru/news/t/598121/

      12 лет технического прогресса коту под хвост.
      Ответить
      • Нахуй они вообще репозиторий в document root клали? Его же можно положить отдельно, а в document root тянуть через git pull. Или им места жалко?
        Ответить
      • Ну почему, вот, перешли с свн на гит. Прогресс.
        Ответить
      • блядь:) нахуя на продакшене .git?
        Ответить
        • У меня сложилось впечатление, что у них нет продакшена, а мы для них бесплатные тестеры.
          Ответить
          • из мастера тягают?:)

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

            А вот вопрос: как можно так настроить сервер, чтобы он отдал неизвестные контенттайпы, да еще и из .git?
            Ответить
            • binary/octetstream для неизвестных.
              Ответить
              • Неизвестные расширения не отдают обычно сервера
                Ответить
                • Приведи реальные примеры таких серверов.
                  Ответить
                  • IIS
                    https://stackoverflow.com/questions/10919137/unknown-extensions-blocked-by-iis

                    nginx и правда отдает
                    ну и дырявое же говно этот ваш nginx!
                    Ответить
              • image/x-ms-application
                Ответить
            • А как ты копируешь, и почему .git не копируется?
              Ответить
              • Копирую скриптом только нужные файлы по расширениям. Но это ебланский способ, и надо бы переделать на ``git -C``.
                Ответить
      • и почти 2гб исходного кода битрикс, который, тебе, мой друг и предстоит изучить.
        Ответить
        • Потом они спрашивают, почему я за «PHP». Да вот хотя бы поэтому.
          Ответить
          • Действительно, PHP тут помог.

            Один блек хэт искал уязвимость в 24 миллионах пхп файлов, сошел с ума, и теперь его лечат галоперидолом, а сайт так и остался невзломанным
            Ответить
            • 2G ÷ 24M = 89 байт средний размер functiya.php? Подозрительно.
              Ответить
        • какой пиздец)))
          Ответить
      • Не утекли, а перешли в опенсурс*.

        * опен != фри.
        Ответить
      • > при помощи утекших сертификатов

        Блядь. Ещё один хакер, который не отличает ключа от сертификата...

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

          Если же приватные ключи пользователей лежали на сервере госуслуг, то следует как можно скорее обоссать и сжечь в полном составе всех, кто имел к созданию этого говна хоть какое-то отношение
          Ответить
        • Наташа, ВСЁ утекло
          Ответить
        • Серятификату вроде бы не запрещено содержать в себе приватключ, не?
          Ответить
          • Если они pfx'ы боевых ключей в репе хранят -- то они совсем отморозки.
            Ответить
          • какой же это отгда сертификат? нахуй он нужен? кому его показывать?
            серт содержит ПУБЛИЧНЫЙ ключ и подпись.


            Собссно серт это

            "Вот публичный ключ лошади Маруси. Он подписан CA, и справка дана Марусе в том, что она лошадь".

            Я могу зашифровать им письмо Марусе, а она его прочтет.
            А подпись CA мне нужна чтобы знать, что публичный клдюч и правда Марусин.



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

          Хуефикатов.
          Ответить
        • Про сертификаты:
          <?php
          /**
           * Created by PhpStorm.
           * User: super
           * Date: 27.05.2016
           * Time: 17:02
           */
          require_once($_SERVER["DOCUMENT_ROOT"] . "/bitrix/modules/main/include/prolog_before.php");
          require_once($_SERVER["DOCUMENT_ROOT"] . '/esia_vendor/autoload.php');
          
          
          $config = [
              'clientId' => '008201581',
              'redirectUrl' => 'http://gosuslugi.pnzreg.ru/rest3.php?esiaBackUrl=' . $_SERVER["HTTP_REFERER"],
              'portalUrl' => 'https://esia.gosuslugi.ru/',
              'privateKeyPath' => $_SERVER["DOCUMENT_ROOT"] . '/esia/inf/penza58_gos_service.pem',
              'privateKeyPassword' => '12345678',
              'certPath' => $_SERVER["DOCUMENT_ROOT"] . '/esia/inf/penza58_gos_service.crt',
              'tmpPath' => $_SERVER["DOCUMENT_ROOT"] . '/esia/tmp',
              'scope' => "http://esia.gosuslugi.ru/usr_inf"
          ];
          
          $esia = new \evolenta\esia\OpenId($config);
          Ответить
          • А ты ещё спрашиваешь, почему я за "смарт-карты" и "HSM".
            Ответить
            • Я даже не знаю, что это такое. У меня ничего из этого нет.
              Ответить
            • Вот ещё похожий код:
              <?
              require_once $_SERVER["DOCUMENT_ROOT"] . "/bitrix/modules/main/include/prolog_before.php";
              require_once $_SERVER["DOCUMENT_ROOT"] . "/smev/ElkSID0004138.php";
              require_once $_SERVER["DOCUMENT_ROOT"] . "/esia_vendor/autoload.php";
              
              use evolenta\esia\OpenId;
              
              global $USER;
              
              $user = CUser::GetByID($USER->GetID());
              if (!$userInfo = $user->GetNext()) {
                  LocalRedirect("/");
              }
              
              $configToken = [
                  'clientId' => '008201581',
                  'redirectUrl' => $_SERVER["SERVER_NAME"] == "gosuslugi.pnzreg.ru"
                      ? 'https://gosuslugi.pnzreg.ru/lk/elk-subscribe.php'
                      : 'http://test-rpgu.pnzreg.ru:1280/lk/elk-subscribe.php',
                  'portalUrl' => 'https://esia.gosuslugi.ru/',
                  'privateKeyPath' => $_SERVER["DOCUMENT_ROOT"] . '/esia/inf/penza58_gos_service.pem',
                  'privateKeyPassword' => '12345678',
                  'accessType'=>"offline",
                  'certPath' => $_SERVER["DOCUMENT_ROOT"] . '/esia/inf/penza58_gos_service.crt',
                  'tmpPath' => $_SERVER["DOCUMENT_ROOT"] . '/esia/tmp',
                  'scope' => "http://lk.gosuslugi.ru/elk?oid=" . $userInfo["LOGIN"]
              ];
              
              $esiaToken = new OpenId($configToken);
              
              if (!$_GET['code']) {
                  header("Location: " . $esiaToken->getUrl());
              } else {
                  if (!(bool)$userInfo["UF_ELK"]) {
                      $resultResponse = ElkSID0004138::subscribe($esiaToken->getToken($_GET['code']));
                      if ($resultResponse["AppData"]["Error"]["code"] == 0) {
                          $arFields["UF_ELK"] = true;
                          $arFields["UF_ELK_LOG"] = json_encode($resultResponse, JSON_UNESCAPED_UNICODE);
                          $arFields["UF_ELK_SUB_DATE"] = date("d.m.Y H:i:s", time());
                          (new CUser())->Update($userInfo["ID"], $arFields);
                      }
                  }
              
                  LocalRedirect("/");
              }
              Ответить
            • Очень полезная функция:
              <?php
              /*класс сертификата*/
              class Certificate {
              
                  static public function extractCertificateFromSign ($sign) {
                      $sign = "-----BEGIN CERTIFICATE-----\n".$sign."\n-----END CERTIFICATE-----";
              
                      //СОХРАНИТЬ СЕРТИФИКАТ ВО ВРЕМЕННЫЙ ФАЙЛ
                      //$path = $_SERVER['DOCUMENT_ROOT']."/temp_cerificate.txt";
                      $path = tempnam("/tmp", "user_cerificate.txt");
                      $fp = fopen($path, "w"); 
                      fwrite($fp, $sign);
                      fclose($fp);
                      
                      // ИЗВЛЕЧЕНИЕ СЕРТИФИКАТОВ ИЗ ПОДПИСИ
                      $certificates = shell_exec('openssl pkcs7 -in '.$path.' -inform PEM -print_certs');
                      preg_match_all('/\n-----BEGIN CERTIFICATE-----.*?-----END CERTIFICATE-----\n/is', $certificates, $certificatesArray);
                      //личный сертификат - последний из иерархии сертификатов
                      $certificate = openssl_x509_parse(end($certificatesArray[0]));
                      // УДАЛИТЬ ВРЕМЕННЫЙ ФАЙЛ
                      //unlink($path);
              
                     return $certificate;
                  }
              
              }
              ?>
              Ответить
      • Собственно архив:

        https://anonfiles.com/vbX2e5Wew9/gosuslugi.pnzreg.ru_rar

        И по традиции:

        Decision 840048-URL-on made on 2019-11-15 by Роскомнадзор.
        This block affects IPs 104.18.38.170, 104.18.39.170, 104.24.116.23, 104.24.117.23, 104.31.94.24, 104.31.95.24, 172.64.110.7, 172.64.111.7, 172.64.138.6, 172.64.139.6, 172.64.174.29, 172.64.175.29, 172.64.206.36, 172.64.207.36, 172.67.218.209, 2606:4700:3030::68, 2606:4700:3031::68, 2606:4700:3033::68, 2606:4700:3034::68, 2606:4700:3037::ac, 2606:4700:30::6812, 2606:4700:e0::ac40, 2606:4700:e2::ac40, 2606:4700:e4::ac40, 2606:4700:e6::ac40, domain anonfiles.com and URL https://anonfiles.com/g9P6z5Abn1/RWPAck_rar.

        Decision 1424457-URL-on made on 2021-09-07 by Роскомнадзор.
        This block affects IPs 172.64.192.30, 172.64.193.30, 2606:4700:e6::ac40, domain anonfiles.com and URL https://anonfiles.com/xeCc4aFfu8.
        Ответить
        • > багры чекистов-путинистов
          Тащемта этот код по определению бублик домен.
          Ответить
        • Из-за нестабильной связи пока удалось скачать только 2 первых гигабайта. Скорость не больше 100 килобайт/с (0,8 мегабит/с). Судя по скриншотам, у всех так.

          2 гига разжимаются в почти 7 гигов. Там в основном пыхокал, преобладающий размер файла — один килобайт. Вот типа такого:
          <?php
          require_once($_SERVER["DOCUMENT_ROOT"] . "/bitrix/header.php");
          
          if (!$USER->IsAuthorized()) {
              LocalRedirect("/rest.php");
          }
          
          $APPLICATION->SetPageProperty('title', "История | Личный кабинет");
          $APPLICATION->AddChainItem("История", "/lk/history.php");
          
          $APPLICATION->AddHeadScript('/lk/js/script.js');
          $APPLICATION->IncludeComponent("oep-components:page.history", "template_for_history");
          
          require_once($_SERVER["DOCUMENT_ROOT"] . "/bitrix/footer.php");
          ?>


          Немножко двоичных файлов типа «vaccination_memo_covid.pdf».
          Ответить
          • <?php
            
            define("DO_URL", "http://192.168.0.7:8083/mnhtn");
            define("DO_PASSWORD", "portal:0OQJK_NLqVe4Y1a");
            
            // define("DO_ACCESS_KEY", "db35f735-e271-4839-84f4-0a17cffe190b");
            define("DO_ACCESS_KEY", "68a5d801-4162-44e2-a7a5-345d6218b396");
            
            use Helpers\DIContainer\DIContainer;
            
            
            class FgisDoApi
            {
                /**
                 * Операция предназначена для загрузки файла в ФГИС ДО. Файл прикрепляется к учётному объекту (например, к жалобе),
                 * в ФГИС ДО
                 *
                 * @param $fileContent
                 * @param $mimeType
                 * @param $fileTitle
                 * @param $sourceUUID
                 * @param string $attrCode
                 * @return mixed
                 */
                static function addFile($fileContent, $mimeType, $fileTitle, $sourceUUID, $attrCode = 'fileFromApplic')
                {
            
                    $request = [
                        "AppData" => [
                            "addFileRequest" => [
                                "accessKey" => DO_ACCESS_KEY,
                                "content" => base64_encode($fileContent),
                                "mimeType" => $mimeType,
                                "sourceUUID" => $sourceUUID,
                                "title" => $fileTitle,
                                "attrCode" => $attrCode
                            ]
                        ]
                    ];
                    //echo json_encode($request, JSON_UNESCAPED_UNICODE);
            
                    return self::sendSyncRequest("/api/v1/envelope/syncReq/FgisDo-addFile/0", $request);
                }
            Ответить
            • <?php
              /**
               * Created by PhpStorm.
               * User: super
               * Date: 11.08.2016
               * Time: 12:26
               */
              require_once __DIR__ . "/smevClientApi.php";
              require_once __DIR__ . "/userHelper.php";
              
              
              class GisGmpApi
              {
              
                  // test
                  static $smevTestAddress = '/mnhtn/proxy/smev/gateway/services/SID0003663';
              
                  // prod
                  static $smevAddress = '/mnhtn/proxy/smev_prod/ws/r58/SID0000286';
              
                  static $login = 'portal';
                  static $password = '0OQJK_NLqVe4Y1a';
              
                  static $systemCode = '008201581';
              
                  static $senderIdentifier = '3ed531';	//'363566' '00281f' /*'36576f'*/;
              
                  static function getTestSmevDomain() {
                      return SMEV_URL_ADDR . self::$smevTestAddress;
                  }
              
                  static function getSmevDomain() {
                      return SMEV_URL_ADDR. self::$smevAddress;
                  }
              Ответить
              • > phpstorm

                Зачем это жабоговно пишет рекламу о себе в каждом файле?

                З.Ы. Это же юнит-тест какой-нибудь, я надеюсь?
                Ответить
                • Наверное. Я надеюсь, что это вообще подставной код, чтобы отвлечь хакеров.
                  Ответить
              • <?
                require($_SERVER["DOCUMENT_ROOT"] . "/bitrix/header.php");
                
                CModule::IncludeModule("iblock");
                
                function toRusDate($date)
                {
                
                //    2010-10-28
                    $date = explode(' ', $date);
                    $date = explode('-', $date[0]);
                
                //    var_dump($date);
                
                    $MonthNames = array("января", "февраля", "марта", "апреля", "мая", "июня", "июля", "августа", "сентября", "октября", "ноября", "декабря");
                    $rusmouth = $MonthNames[$date['1'] - 1];
                    $rusdate = $date['2'] . ' ' . $rusmouth . ' ' . $date['0'];
                
                    return $rusdate;
                }
                
                function deleteTag($str)
                {
                    $str = strip_tags($str, '<p><li><ul><br></br>');
                    $str = str_replace("<li>", "<li><p>", $str);
                    $str = str_replace("</li>", "</p></li>", $str);
                    $str = str_replace("&nbsp;", "", $str);
                    $str = preg_replace("#(</?\w+)(?:\s(?:[^<>/]|/[^<>])*)?(/?>)#ui", '$1$2', $str);
                    return $str;
                }
                
                function srokRU($str)
                {
                    $str = str_replace("paper", "Бумажный", $str);
                    $str = str_replace("electronic", "Электронный", $str);
                    $str = str_replace("min", "минут", $str);
                    $str = str_replace("wd", "раб. дн", $str);
                    $str = str_replace("h", "час", $str);
                    $str = str_replace("d", "календ. дн.", $str);
                    $str = str_replace("m", "месяц", $str);
                    return $str;
                }
                Ответить
                • gEKA6PbCKuu_nemyx слил исходники.
                  Всё, теперь говнокод тоже попадёт в реестр. Какой багор )))
                  Ответить
                  • Не может быть, чтобы это были настоящие исходники. Наверняка это какой-то мусор.

                    Вряд ли такой серьёзный сервис как «Госуслуги» поддерживают полные идиоты.
                    Ответить
                • > rusmouth

                  Ротоеб, ты?
                  Ответить
              • Какой «манхеттен» )))
                Ответить
            • Пароли хранятся в гите? Заебись.
              Ответить
              • А как по-другому можно?
                Ответить
                • В файлике wp-config.php
                  Ответить
                  • А разве wp-config.php не попадёт в гит?
                    Ответить
                    • Нет. Он хранится в корне сайта вместе с самим вордпрессом. А вордпресс не нужно коммитить в гит. Коммитить имеет смысл только темы и плагины, которые ты разрабатываешь.
                      Ответить
                      • А если ты сам вордпресс допиливаешь? Или так не бывает?
                        Ответить
                        • Это очень редкий кейс, совсем хак. Файлы перезатираются при обновлении.
                          Ответить
              • Платежи:
                <?
                /**
                 * @var CUser $USER
                 * @var CMain $APPLICATION
                 */
                use Bitrix\Main\Page\Asset;
                
                class B2bPayApi
                {
                    static public $SECTOR = '735';
                    static public $PASSWORD = 'L0i5Fnwn5';
                    static public $HOST = 'https://pay.best2pay.net/webapi/';
                
                    static public function register($request)
                    {
                        $request["sector"] = self::$SECTOR;
                        $request["signature"] = base64_encode(
                            md5(
                                self::$SECTOR
                                . $request["amount"]
                                . $request["currency"]
                                . self::$PASSWORD));
                
                        $ch = curl_init();
                
                        curl_setopt($ch, CURLOPT_HEADER, FALSE);
                        curl_setopt($ch, CURLOPT_VERBOSE, true);
                        curl_setopt($ch, CURLOPT_POST, true);
                        curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($request));
                
                
                        curl_setopt($ch, CURLOPT_URL, self::$HOST . 'Register');
                        curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
                
                        $response = curl_exec($ch);
                
                
                        curl_close($ch);
                        return (array)simplexml_load_string($response);
                
                    }
                
                    static public function purchase($id) {
                        $signature = base64_encode(
                            md5(
                                self::$SECTOR
                                . $id
                                . self::$PASSWORD));
                
                        return self::$HOST . "Purchase?sector="
                        . self::$SECTOR
                        . "&id="
                        . $id
                        . "&signature=" . $signature;
                
                    }
                Ответить
                • > md5

                  Блядь... В 2021 году? Но это не их вина, а платёжки, конечно.
                  Ответить
                  • Как видишь, это не изобретение «Госуслуг» и даже не изобретение портала городских услуг Пензы. Это часть протокола платёжной системы «best2pay».

                    Предлагаешь использовать HMAC для подписи запросов?
                    Ответить
                    • > HMAC

                      Ну да, там не надо думать каким концом приложить пароль чтобы не словить length extension attack.
                      Ответить
                      • Самое интересное, что в «PHP» готовая функция для «HMAC» была ещё в 5.1, т. е. в первой половине нулевых:
                        https://www.php.net/manual/ru/function.hash-hmac.php
                        Ответить
                        • Поэтому я за PHP.
                          Ответить
                          • «Платёжный сервис Best2Pay был основан в 2012 году.»

                            То есть когда даже в «PHP» были готовые функции, чтобы подписать нормально.
                            Ответить
                            • Именно поэтому ты за "PHP"?
                              Ответить
                              • Нашёл у себя на диске древнюю версию «PHP»:
                                PHP 5.2.17 (cli) (built: Jan  6 2011 17:28:41) 
                                Copyright (c) 1997-2010 The PHP Group
                                Zend Engine v2.2.0, Copyright (c) 1998-2010 Zend Technologies


                                Смотрим, что она умеет:
                                php -r "var_dump(hash_algos());"

                                Выхлоп:
                                array(38) {
                                  [0]=>
                                  string(3) "md2"
                                  [1]=>
                                  string(3) "md4"
                                  [2]=>
                                  string(3) "md5"
                                  [3]=>
                                  string(4) "sha1"
                                  [4]=>
                                  string(6) "sha256"
                                  [5]=>
                                  string(6) "sha384"
                                  [6]=>
                                  string(6) "sha512"
                                  [7]=>
                                  string(9) "ripemd128"
                                  [8]=>
                                  string(9) "ripemd160"
                                  [9]=>
                                  string(9) "ripemd256"
                                  [10]=>
                                  string(9) "ripemd320"
                                  [11]=>
                                  string(9) "whirlpool"
                                  [12]=>
                                  string(10) "tiger128,3"
                                  [13]=>
                                  string(10) "tiger160,3"
                                  [14]=>
                                  string(10) "tiger192,3"
                                  [15]=>
                                  string(10) "tiger128,4"
                                  [16]=>
                                  string(10) "tiger160,4"
                                  [17]=>
                                  string(10) "tiger192,4"
                                  [18]=>
                                  string(6) "snefru"
                                  [19]=>
                                  string(4) "gost"
                                  [20]=>
                                  string(7) "adler32"
                                  [21]=>
                                  string(5) "crc32"
                                  [22]=>
                                  string(6) "crc32b"
                                  [23]=>
                                  string(10) "haval128,3"
                                  [24]=>
                                  string(10) "haval160,3"
                                  [25]=>
                                  string(10) "haval192,3"
                                  [26]=>
                                  string(10) "haval224,3"
                                  [27]=>
                                  string(10) "haval256,3"
                                  [28]=>
                                  string(10) "haval128,4"
                                  [29]=>
                                  string(10) "haval160,4"
                                  [30]=>
                                  string(10) "haval192,4"
                                  [31]=>
                                  string(10) "haval224,4"
                                  [32]=>
                                  string(10) "haval256,4"
                                  [33]=>
                                  string(10) "haval128,5"
                                  [34]=>
                                  string(10) "haval160,5"
                                  [35]=>
                                  string(10) "haval192,5"
                                  [36]=>
                                  string(10) "haval224,5"
                                  [37]=>
                                  string(10) "haval256,5"
                                }


                                Семейство SHA-2 уже поддерживалось.
                                Ответить
                    • Я предлагаю использовать аутентификацию с помощью асиметричной криптографии, а шифровать данные симметричным сессионным временным ключом.

                      Хорошая новость в том, что это всё реализовано в TLS, и не нужно писать
                      gnature = base64_encode(
                                  md5(
                                      self::$SECTOR
                                      . $id
                                      . self::$PASSWORD));
                      Ответить
                      • > TLS

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

                          >Например если ты не особо доверяешь своим хттп сервакам
                          как это?
                          Ответить
                          • если они тебя кидали по мелочи в прошлом, например ты их за сигаретами послал, а они сдачу зажали, ну и т.п.
                            Ответить
                  • Нагуглил документацию. md5 без вариантов:
                    https://best2payapi.docs.apiary.io/#reference/0/webapipurchase-
                    Ответить
                    • PHP. PHP never changes.
                      Ответить
                    • >cvc
                      лолшто?

                      Про PCI слышали, не?
                      Ответить
                      • CVC/CVV НЕ надо хранить и кому-то передавать. Надо показывать пользователю страницу банка, чтобы он туда его вводил.

                        А PCI — это что такое?
                        Ответить
                    • В формировании подписи участвуют параметры ... pan_token_sha256

                      вы просили - мы добавили!
                      Ответить
                  • Напомните, чем он плох?
                    Ответить
                    • Ну что, никто не знает?
                      Ответить
                    • В данном контексте (для подписи сообщений) он плох тем, что очень легко отстрелить себе ногу и заюзать неправильно. В общем-то и sha2 тут будет плох. Лучше всего взять HMAC, а не голый хеш.

                      Ещё он плох тем, что коллизии можно генерить. Но в данной задаче это не страшно.
                      Ответить
                      • Как именно в этом контексте его можно заюзать неправильно, и почему с HMAC такой проблемы нет?
                        Ответить
                        • Ты знаешь, что правильнее использовать,
                          1) signature = md5( key + data )
                          2) signature = md5( data + key )

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

                            Это про chosen plaintext attack?
                            Ответить
                            • Вкратце: для многих алгоритмов, если у тебя есть хэш от X+Y и Y, то можно досчитать хэш от X+Y+Z не зная X. Если Y — это сообщение, к нему можно приписать ещё что-то, пересчитать хэш и отослать на сервер.
                              Ответить
                              • То есть первый вариант правильный, получается?
                                Ответить
                                • я вот как раз подумал про наоборот, потому что зная Y и хэш Y + X, легче подобрать X, потому что можно получить вышеописанный стейт хэш-функции от Y и дальше подбирать рандомным инпутом до совпадения с хэшем от Y + X.
                                  Ответить
                                  • Я вот тоже не понял. От алгоритма зависит, наверное.
                                    Ответить
                                    • >Я вот тоже не понял.

                                      именно по-этому я за то, чтобы брать TLS, и не реализовывать вручную какие-то наколенные говны

                                      Если вы случайно не эксперт по криптографии (а вы точно нет) то стопудово где-то обосрётесь
                                      Ответить
                                      • У best2pay ссылка на https:, т. е. TLS используется.

                                        Подпись параметров — это дополнительный слой защиты.
                                        Ответить
                                        • А клиентский сертификат там используется?
                                          Ответить
                                        • > дополнительный

                                          Единственный, если у них TLS не по серту. Что мешает кому-то другому подключиться по TLS и передать аргументы?
                                          Ответить
                                      • { вы случайно не эксперт по криптографии? }
                                        Ответить
                          • что бы быстро размотать лучше key первым ставить. а если так что бы забадался разматывать тогда "дату" в начале :)
                            Ответить
                          • key + separator + data, наверное лучше использоваться
                            Ответить
        • Файл, который вы ищете, не существует!
          Файл, который вы искали, не найден.

          Удалили. Теперь не докачаю.
          Ответить
      • Перед этим сдампили «Мираторг»:

        https://cybersec.org/hack/svinskij-githab-lomaem-git-na-primere-miratorga.html

        В заметке обсуждаются инструменты для расковыривания чужих гитов.
        Ответить
        • Это в хрюкни
          Ответить
        • Собственно инструменты:

          https://github.com/arthaud/git-dumper

          https://github.com/0xHJK/dumpall

          https://github.com/lijiejie/GitHack

          https://github.com/admintony/svnExploit

          https://github.com/trufflesecurity/truffleHog

          https://github.com/zricethezav/gitleaks

          И пара ссылок с «Х-ра»:

          https://github.com/deletescape/goop

          https://github.com/WangYihang/GitHacker

          По последней ссылке есть таблица сравнения возможностей подобных программ.
          Ответить
          • У меня знакомый питух с помощью fabric, ssh и rsync доставлял на прод копии
            гляжу, он был прав))
            Ответить
            • > ssh и rsync доставлял на прод копии

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


        https://gosuslugi.pnzreg.ru/
        Ответить
      • https://ag.mos.ru/.git/

        Forbidden

        Именно Forbidden, а не Not Found.

        Для сравнения:

        https://ag.mos.ru/.xyu/

        А тут идёт редирект на главную, потому что директории «.xyu» нету.

        Т. е. сегодня они поддиректории «.git» закрыли, но не удалили.

        И тут тоже: https://transport.mos.ru/.git/
        Ответить
        • У «ЕМИАС» и у «mos.ru» есть локальный «Gitlab»:
          https://git.emias.mos.ru/users/sign_in
          https://git.mos.ru/users/sign_in
          Ответить
        • http://avangard.mos.ru/.git/
          https://cafap.mos.ru/.git/
          https://dt-window.mos.ru/.git/
          http://gp210.mos.ru/.git/
          http://gp46.mos.ru/.git/
          Ответить
          • https://help.mos.ru/.git/
            http://kpugs.mos.ru/.git/
            https://mediabank.duma.mos.ru/.git/
            https://op.mos.ru/.git/
            https://study.mos.ru/.git/
            https://ulk.mos.ru/.git/
            https://rostokino.mos.ru/.git/
            https://babushkinsky.mos.ru/.git/
            https://beskudnikovo.mos.ru/.git/
            https://uzao.mos.ru/.git/
            https://uzhnoport.mos.ru/.git/
            https://koptevo.mos.ru/.git/
            https://cao.mos.ru/.git/
            https://molzhaninovskiy.mos.ru/.git/
            https://hamovniki.mos.ru/.git/
            https://tsaricino.mos.ru/.git/
            https://112.mos.ru/.git/
            https://10.arts.mos.ru/.git/
            Ответить
            • Какой опенсорс )))
              Ответить
              • Они уже закрыли:
                https://tsaricino.mos.ru/.git/HEAD

                Заметь, 403, а не 404. Есть шанс, что в вебархиве или в кэшах поисковиков что-то осталось.
                Ответить
      • Не знаю, зачем это вам, но пусть будет:
        [remote "old-origin"]
        	url = http://gitlab.rosoperator.ru/gosuslugi/rpgu.git
        	fetch = +refs/heads/*:refs/remotes/old-origin/*
        [remote "origin"]
        	url = http://gitlab.br.pnzreg.ru/gosuslugi/rpgu.git
        	fetch = +refs/heads/*:refs/remotes/origin/*
        Ответить
      • Петухи, что означает «ref: refs/heads/master» в файле «HEAD»?
        Ответить
      • Комбо:
        #### Установка MySQL 
        ```
        Для установки на ubuntu 20.04 mysql версии 5.7.33 необходимо следовать инструкции https://computingforgeeks.com/how-to-install-mysql-on-ubuntu-focal/
        
        apt-get install mysql-server
        mysql --defaults-file=/etc/mysql/debian.cnf
        ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '1';
        create database bitrix_82;
        exit
        ```
        #### База данных
        ```
        mysql -uroot -p bitrix_82 < pgupnz.sql
        ```
        
        #### Исходный код 
        ```
        cd /var/www
        git clone http://gitlab.br.pnzreg.ru/gosuslugi/rpgu.git
        cd rpgu 
        git config core.filemode false
        git config --global core.filemode false
        git checkout -b test origin/test
        
        cp bitrix/.settings.example.php bitrix/.settings.php
        cp bitrix/php_interface/dbconn.example.php bitrix/php_interface/dbconn.php
        cp bitrix/php_interface/after_connect_d7.example.php bitrix/php_interface/after_connect_d7.php
        cp .config.example.php .config.php
        
        chown $USER.www-data -R /var/www/rpgu
        chmod 777 -R /var/www/rpgu
        ```
        
        При возникновении ошибки:
        ```
        PHP Fatal error:  Uncaught Error: Class 'Helpers\Console\FactoryApplication' not found in /var/www/rpgu/console:7
        ```
        необходимо обратить внимание на версию PHP CLI, она должна быть 7.0. 
        
        Также в файле /etc/php/7.0/cli/php.ini необходимо изменить параметр short_open_tag на On.
        Ответить
        • by 1?
          by 123 же
          Ответить
        • только дикие звери юзают mysql сейчас.... переходите на mongodb
          Ответить
          • «Битрикс» умеет работать с «mongodb»?
            Ответить
          • mongodb не надежен
            переходите на Linux
            Ответить
            • в Linux не поддерживаются игры
              переходите на ASP.NET
              Ответить
              • сейчас везде мобилки
                рекомендую перейти на андроид
                Ответить
                • Андроид от гугла
                  переходите на кокаин
                  Ответить
                  • кокаин вызывает отупение
                    переходите на «пшп»
                    Ответить
                  • как у него с БЖУ? не потолстею?
                    Ответить
                    • ёжик похудел
                      потом правда вышел с балкона, но был период, когда он был худым и живым
                      Ответить
                      • нихуя он не похудел
                        бимба стокилограммовая упала на мостовую в Москве
                        А потом ее еще решеткой для гриля прикрыло

                        >живым

                        Свиногитлер умер
                        Свиногитлер умер
                        За пару минут до своей смерти он был еще жив
                        За пару минут до своей смерти он был еще жив
                        Ответить
                        • Кстати, если сейчас в строку поиска «Яндекса» ввести слово «сдох», то первой же подсказкой можно увидеть, кто именно сдох.
                          Ответить
                        • извините за ссылки на всякую хуйню, но я тоже сначала не верил

                          https://twitter.com/DemocratRussian/status/1444777638434852865
                          Ответить
                          • В реплаях заметили, что такое внезапное похудение бывает из-за онкологии.

                            От каких-то наркотиков тоже высыхают.
                            Ответить
                            • В Южном Парке чувак хвастал, что похудел, потому что унего AIDS: Advanced Individual Diet System

                              В русском варианте Специальная Персональная Индивидуальная Диета
                              Ответить
                              • Только что нагуглил, что от «спидов» (метамфетамина) тоже худеют.
                                Ответить
                                • Вообще я не знаю от каких наркотиков можно стать толстым и розовощеким и 120 кг от груди жать

                                  Кажется, что не от каких
                                  Ответить
                      • чет пропустил в 2015

                        https://vk.com/wall-73664556_10281
                        Ответить
                        • туда же (на самом деле в хрюкни) https://sun9-86.userapi.com/impg/2pKhKYdgWwPjOJ2EzOITpa6hzG0ieF1GY5MUWA/EJeQOqdjMqo.jpg?size=607x1080&quality=96 &sign=2c026247fa2701b7b9519723f5c85ac5&t ype=album
                          Ответить
                          • Подстроку «impf/» или «impg/» удаляем, ВСЕ get-параметры тоже.

                            Проверяем:
                            https://sun9-86.userapi.com/2pKhKYdgWwPjOJ2EzOITpa6hzG0ieF1GY5MUWA/EJeQOqdjMqo.jpg
                            Ответить
                            • проститет пока не было сил и интеллекта ознакомиться с высококлассным а пи...
                              Ответить
                      • Это в хрюкни.
                        Ответить
            • Кстати, есть утилиты для выковыривания данных из упавшей «mongodb»?

              А «phpmongodbadmin» существует?
              Ответить
          • > X — говно, всем срочно мимигрировать на еще большее говно, Y

            Вся парадигма уэб-разовой работки в крации.
            Ответить
          • MySQL is slow as a dog. MongoDB will run circles around it, it's so fast and scalable!
            Ответить
            • Отличный пример сектантской пропаганды.

              — "..... If you were stupid enough to totally ignore durability just to get benchmarks, I suggest you pipe your data to /dev/null. It will be very fast."

              — If /dev/null is fast in web scale I will use it. Is it web scale?

              — "If you're happy writing to a database that doesn't give you any idea that your data is actually written just because you want high performance numbers, why not write to /dev/null? It's fast as hell."

              — Does /dev/null support sharding?

              — "Do you even know what a shard is?"

              — I'm a web programmer.
              Ответить
              • Великие, бессмертные строки.
                Ответить
              • > web scale

                В масштабах пыхосайтика?
                Ответить
                • пыхосайты отлично скейлятся, если двойные кавычки не использовать
                  Ответить
                  • MySQL разве не скейлится? А без него и подавно бесконечно скейлится.
                    Ответить
                    • а phpmyadmin скелйится?
                      Ответить
                      • Да. Ты можешь запустить сколько угодно инстансов.
                        Ответить
                        • но у меня на хостинге в valuehost куплено только пять сайтов!
                          Ответить
      • >>>"В 2021-м Госуслуги утекли, потому что не закрыли директорию .git:"

        Слабенько. Утёк только их региональный вариант, работающий тупо на вызовах API ЕАИС и ЕПГУ. Центрального портала "Госуслуг" (ЕПГУ) это никак не коснулось. У меня было поинтереснее:

        https://www.rbc.ru/technology_and_media/11/11/2021/618d42109a7947252fe7d448
        https://xakep.ru/2021/11/12/gosuslugi-attack/


        Там в минифицированном JS-коде ещё летом спалили незакрытую от клиентской части переменную окружения NodeJS с URL-ом доступного для записи сервера Elasticsearch.
        Ответить
        • К сожалению, я не успел докачать архив (его удалили с anonfiles), поэтому я не знаю всего, что там было.

          В скачанном только какие-то дополнения к «Битриксу» типа контроллеров и вьюшек, т. е. чисто клиентская часть, да ключи к API локальных серверов, которые наружу не торчат.

          В скачанном ещё куча пэдээфок и картинок.
          Ответить
          • Долбоёб забыл исключить из архивации ненужные директории "upload" и "bitrix", из-за этого архив и имеет такие размеры.
            У меня скачивание архива тоже шло медленно, но потом я допедрил скачивать архив не на свой ПК, а wget-ом на сервер, где он уже через полчаса и был разархивирован unrar-ом. Два часа изучал - и вручную, и с помощью grep-а; в итоге пришёл к выводу, что ничего по-настоящему вкусного там нет. Взаимодействие с центром состоит в основном в авторизации и получении персональных данных через ЕСИА (сраный OAuth); а всякая хрень, связанная со школами, автомобилями, записью к докторам и прочим, реализована локально, чисто для Пензы.

            Смешно было читать напыщенный пост автора, гордящегося своим детским взломом какого-то говноскрипта на PHP...
            Ответить
            • Есть раздающие в торрентах:
              magnet:?xt=urn:btih:827786d5e72af16a7d34c5732774ba30a28a49ab&dn=gosuslugi.pnzreg.ru.rar&tr=udp%3A%2F%2Fopen.stealth.si%3A80%2Fannounce&tr=udp%3A%2F%2Ftracker.cyberia.is%3A6969%2Fannounce


              Тут есть сидеры:
              udp://open.stealth.si:80/announce
              udp://tracker.cyberia.is:6969/announce
              Vuze DHT

              В mainline DHT только личеры.

              Скорость даже больше, чем была на «anonfiles».
              Ответить
              • > личеры

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

                    Так зовут могущественного мага, у которого усы в форме херов.
                    Ответить
                  • Да https://static.wikia.nocookie.net/heroesofmightandmagic/images/a/a9/Лич.gif/revision/latest/top-crop/width/360/height/450?cb=20160101201430&path-prefix=ru
                    Ответить
                • Кстати: http://www.cyberia.is/tracker.html

                  «We only support IPv6 connections at the moment.»

                  Тут кто-то спрашивал, зачем нужен «IPv6».

                  Вот stealth.si поддерживает оба протокола.
                  Ответить
      • Скриншот «gitk»:

        https://i.imgur.com/eINNLpu.png
        Ответить
        • Merge branch 'test' into 'master'
          Ответить
        • Надеюсь хоть на РНР пишут?
          Ответить
        • Настоящие мыла у всех. Кто-нибудь хоть поздравил разработчиков с новым годом?
          Ответить
          • Не успел. Может быть, со Старым Новым годом поздравить? Ещё есть время.

            У кого тут больше развит писательский талант? Кто сможет придумать текст поздравления?
            Ответить
            • Добрый вечер. С Новым годом!

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

              Индекс оффтопов: 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 (резервный чат)

              Примечание: автоматические поздравления в настоящее время осуществляются только с аккаунта HoBorogHuu_nemyx.
              Остерегайтесь подделок. Берегите себя и своих близких. Кок!
              Ответить
            • Я знаю, какая рассылка им понравится ко дню влюбленных.
              Ответить
            • > У кого тут больше развит писательский талант? Кто сможет придумать текст поздравления?

              Можно ascii-открытку прислать.
              Ответить
              • atse?
                Ответить
              • ▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒
                ▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒
                ▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒┌═══════════════════════════════════════════┐▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒
                ▒▒▒▒▒▒┌════┐▒▒▒▒│   ▄▄▄   ▄▄▄     ▄▄▄▄▄▄▄▄▄     ▄▄▄▄▄▄▄▄▄   │░░▒▒┌════┐▒▒▒▒▒▒▒
                ▒▒▒▒▒▒│1   │░░▒▒│   ███   ███     ███           ███▄▄▄      │░░▒▒│1   │░░▒▒▒▒▒
                ▒▒▒▒▒▒│ 9  │░░▒▒│   ███▄  ███     ███▄          ███         │░░▒▒│ 9  │░░▒▒▒▒▒
                ▒▒▒▒▒▒│  9 │░░▒▒│   ▀▀▀▀▀▀▀▀▀     ▀▀▀▀▀▀▀▀▀     ▀▀▀         │░░▒▒│  9 │░░▒▒▒▒▒
                ▒▒▒▒▒▒│   4│░░▒▒│ ───────────────────────────────────────── │░░▒▒│   7│░░▒▒▒▒▒
                ▒▒▒▒▒▒└════┘░░▒▒│  u N I T E D  c R Т C K I N G  f O R C E  │░░▒▒└════┘░░▒▒▒▒▒
                ▒▒▒▒▒▒▒▒░░░░░░▒▒└═══════════════════════════════════════════┘░░▒▒▒▒░░░░░░▒▒▒▒▒
                ▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒
                ▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒
                ▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒
                Ответить
              • ▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓
                ▓▓▓▓▓┌──────────────────────────────────────────────────────────────────╖▓▓▓▓▓▓
                ▓▓▓▓▓│▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓║░░▓▓▓▓
                ▓▓▓▓▓│▓▓▓▓▓▓▓▓▓▓▓▓╪╪╪╪╪╪╪╪░▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓ Москва 1997 г.▓▓▓▓▓║░░▓▓▓▓
                ▓▓▓▓▓│▓▓▓▓▓▓▓▓▓▓╪╪╪╪╪╪╪╪╪╪░░▓▓▓╪╪╪╪╪╪╪╪░▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓║░░▓▓▓▓
                ▓▓▓▓▓│▓▓▓▓▓▓▓▓▓╪╪╪░░░░░╪╪╪░░▓╪╪╪╪╪╪╪╪╪╪╪░░▓▓╪╪╪░▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓║░░▓▓▓▓
                ▓▓▓▓▓│▓▓▓▓▓▓▓▓╪╪╪░░▓▓▓╪╪╪░░▓╪╪╪░░░░░░╪╪╪░░▓╪╪╪░░▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓║░░▓▓▓▓
                ▓▓▓▓▓│▓▓▓▓▓▓▓╪╪╪╪╪╪╪╪╪╪╪░░▓╪╪╪░░▓▓▓▓╪╪╪░░▓▓░░░░▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓╪╪╪╪╪╪░▓▓║░░▓▓▓▓
                ▓▓▓▓▓│▓▓▓▓▓▓╪╪╪╪╪╪╪╪╪╪╪░░▓╪╪╪░░▓▓▓▓╪╪╪░░▓╪╪╪░▓▓╪╪╪╪╪╪╪░▓▓▓▓▓▓▓╪╪╪╪╪╪░░▓▓║░░▓▓▓▓
                ▓▓▓▓▓│▓▓▓▓▓╪╪╪░░░░░╪╪╪░░▓╪╪╪░░▓▓▓▓╪╪╪░░▓╪╪╪░░▓╪╪╪╪╪╪╪╪╪░▓▓▓▓▓╪╪╪░░░░░▓▓▓║░░▓▓▓▓
                ▓▓▓▓▓│▓▓▓▓╪╪╪░░▓▓▓╪╪╪░░▓╪╪╪░░▓▓▓▓╪╪╪░░▓╪╪╪░░▓╪╪╪░░░░╪╪╪░▓▓▓▓╪╪╪░░▓▓▓▓▓▓▓║░░▓▓▓▓
                ▓▓▓▓▓│▓▓▓╪╪╪░░▓▓▓╪╪╪░░▓╪╪╪╪╪╪╪╪╪╪╪░░▓▓╪╪╪░░▓╪╪╪░░▓▓╪╪╪░░╪╪╪╪╪╪╪╪╪░▓▓▓▓▓▓║░░▓▓▓▓
                ▓▓▓▓▓│▓▓▓▓░░░▓▓▓▓▓░░░▓╪╪╪╪╪╪╪╪╪╪░░▓▓▓╪╪╪░░▓╪╪╪░░▓▓╪╪╪░░▓▓░╪╪╪░░░░▓▓▓▓▓▓▓║░░▓▓▓▓
                ▓▓▓▓▓│▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓░░░░░░░░░░▓▓▓╪╪╪░░▓╪╪╪░░▓▓▓╪╪╪░░▓▓╪╪╪░░▓▓▓▓▓▓▓▓▓▓║░░▓▓▓▓
                ▓▓▓▓▓│▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓░░▓▓╪╪╪░░▓▓▓▓▓╪╪╪░░╪╪╪░░▓▓▓▓▓▓▓▓▓▓▓║░░▓▓▓▓
                ▓▓▓▓▓│▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓░░░▓▓▓▓▓▓▓░░░╪╪╪░░▓▓▓▓▓▓▓▓▓▓▓▓║░░▓▓▓▓
                ▓▓▓▓▓│▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓╪╪╪░░▓▓▓▓▓▓▓▓▓▓▓▓▓║░░▓▓▓▓
                ▓▓▓▓▓│▓▓(c) Мостовой Дмитрий Юрьевич ▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓╪╪╪░░▓▓▓▓▓▓▓▓▓▓▓▓▓▓║░░▓▓▓▓
                ▓▓▓▓▓│▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓░░░▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓║░░▓▓▓▓
                ▓▓▓▓▓│▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓║░░▓▓▓▓
                ▓▓▓▓▓╘══════════════════════════════════════════════════════════════════╝░░▓▓▓▓
                ▓▓▓▓▓▓▓░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░▓▓▓▓
                ▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓
                Ответить
              • ▄
                        ▄▄█████▄                                         ▄
                   ▓▄▄███▀ ▀████▄ ▀███▄▓▄                            ▄▄████▄   ▀███▄▄▄ ▀█▄▄▄
                 ▀▀████▀    ▐█▄██▄ ▐████                   █     ▓▄████▀████▄   ▐████   ▐█▓███▄
                   ▐██▌     ██████▀ ▓██▌    ▄          ▄▄████▄  ▀████▀  ▐█▓███▀  ▓██▌   ████▀
                   ███     ▄█▀▀▀    ▐████▄███▓▄   ▓▄▄███▀ ▀███▄   ██▌  ▄█▀▀▀     ▐███▓▄████▀
                 ▄█████▄▄▄           ████▀▀████▄ ▀████▓    ▐███▄  ▐██     ▀█▄▄▄  ▄████▀███▄▄
                     ▀▀▀▀███▄▓▄▄▄▄  ▀███    ▓███▄  ███      ▐████▄████▄    ▐████▄ ███   █████
                   ▄▓▄█▀   ▀▀████   ▐██▌    ▐████▀ ▐██▌     ▓███▓  ▀▀▓███▄▄█████ ▐███▌   ████▓
                ▄█████▓     ▐███▌   ████▄  ▀▓▀▀   ▄████▄  ▄████▀       ▀▀█████▀  ██▀██   ▐████▄
                 ▀████▌    ▄█████▄ ▐███▀▀▀  ▒       ▀▀▀██▓█▀▀               ▀   ▐████▀▀ ▄█▀▀▀
                  ▀████▄ ▄▓██▀▀▓  ▄█▀▀      ░            ▀      -p0lygon       ▄█▀▀
                   ▀█████▀▀
                     ▀                      ---*-+ Shock '96 +-*---
                Ответить
              •   █▀▀▀▀▀▀█ █▀▀▀▀▀▀▀▀▄ ── █▀▀▀▀▀▀▓ ── ▄▀▀▀▀▀▀▀▀▀▀▀▀▀▄ ─═══─ ▄▀▀▀▀▀▀▀▀▀▀▀▀▀▄ ──
                  ▓ ▒▒▒▒ ▓ ▓ ▒▒▒▒░▒  ▀▄  ▓ ▒░░░ ▒  ▄▀  ▒▒░░  ░ ░▒▒  ▀▄ ─ ▄▀  ▒▒░░  ░ ░▒▒  ▀▄
                  ▓ ▒░▒░ ▓ █▄▄▄  ▒░░░  ▓ ▒ ░▒░▒ ▓ ▓▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▓ ▓▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▓
                  ▓ ░░░░ ▒ ─── ▀▄  ░ ░ ▒ ▓▄▄▄▄▄▄█ ─────────────────────═─────────────────────
                  ▓ ░ ░  ░ ─══─ ▓   ░  ░ ──────── █▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▄ ── █▀▀▀▀▀▀▓ ─══════════─
                  ▒  ░     ─── ▄▀ ░    ▒ █▀▀▀▀▀▀▓  ▀▄  ▒▒▒▒▒▒░▒░░░  ▀▄  ▓ ▒▒▒▒ ▒ ─══════════─
                  ░      ░ ▓▀▀▀  ░ ░░  ▓ ▓ ▒▒▒▒ ▒ ── ▀▄▄▄▄▄▄▄▄  ░░░   ▓ ▒ ▒░▒░ ░ ─══════════─
                      ░  ▒ ▒ ▒▒░▒░░  ▄▀  ▒ ▒░▒░ ░ ─══──────── ▀▄ ░ ░  ▒ ░ ░ ░  ▒ ─══════════─
                  ░  ░ ░ ▓ ▓▄▄▄▄▄▄▄▄▀▄ ─ ░ ░ ░    ─══════════─ ▓      ░    ░ ░ ▓ ─══════════─
                  ▒ ░░░░ ▓ ──── ▄▄▄▄▀ ▀▄    ░ ░ ░ ─────────── ▄▀ ░ ░  ▒ ░ ░▒░▒ ▀▄ ───────────
                  ▓ ░▒░▒ ▓ ─══─ ▓   ░░ ▓ ░ ░▒░▒ ▒ ▓▀▀▀▀▀▀▀▀▀▀▀  ░ ░   ▓ ▓  ▒▒▒▒  ▀▀▀▀▀▀▀▀▀▀▀▓
                  ▓ ▒▒▒▒ ▓ ─══─ ░ ▒▒▒░ ▓ ▒ ▒▒▒▒ ▓  ▀▄  ▒▒▒▒░▒░░░░░  ▄▀ ─ ▀▄  ▒▒▒▒░▒░░░░░  ▄▀
                  █▄▄▄▄▄▄█ ─══─ ▓▄▄▄▄▄▄█ ▓▄▄▄▄▄▄█ ── ▀▄▄▄▄▄▄▄▄▄▄▄▄▄▀ ─═══─ ▀▄▄▄▄▄▄▄▄▄▄▄▄▄▀ ──
                Ответить
              • ┌─┤thru the darkness this file emerged from├─┐
                │╔═════════╗  ╔══════╗ ╔══════╗ ╔════╗  ╔═══╗│
                │╚╗  ╔═══╗ ╚╗ ║ ╔══╗ ║─║ ╔══╗ ║ ╚╗  ╔╝ ╔╝ ╔═╝│
                │ ║  ║   ║  ║─║ ╚══╝ ║ ║ ╚══╝ ║──║  ║ ╔╝ ╔╝  │
                │ ║  ║ ┌─║  ║ ║ ╔══╗ ║ ║ ╔═╗ ╔╝  ║  ╚═╝  ╚═╗ │
                │ ║  ║┌┘▓║  ║ ║ ║  ║ ║ ║ ║ ║ ╚╗  ║  ╔═══╗  ║ │
                │ ║  ║┘▒▓║  ║ ╚═╝  ╚═╝ ╚═╝ ╚══╝  ║  ║▓▒└║  ║ │
                │╔╝  ╚═══╝ ╔╝   SiteOp: Shorty  ╔╝  ╚╗▒╔╝  ╚╗│
                │╚═════════╝   CoSiteOp: Ryche  ╚════╝░╚════╝│
                │   │░░░░┌─  T1/25gb/O-Day/iSO/Mp3 ─┐░░░░│   │
                │   └┐░┌─┘█████████        █████████└─┐░┌┘   │
                │    │┌┘█┌───────┐██████████┌───────┐█└┐│    │
                │     │█┌┘       └───┬██┬───┘       └┐█│     │
                │     │█└┐       ■ ┌─┘██└─┐ ■       ┌┘█│     │
                │     └┐█└─────────┘██████└─────────┘█┌┘     │
                │      │█████████████┌┤├┐█████████████│      │
                │      └┐█┌─┬███████┌┘││└┐███████┬─┐█┌┘      │
                │       └─┤█│██████─┴─┤├─┴─██████│█├─┘       │
                │         │█├┬┐████████████████┌┬┤█│         │
                │         │█├┼┼┬┬┬┐████████┌┬┬┬┼┼┤█│         │
                │         │█└┴┼┼┼┼┼┬┬┬┬┬┬┬┬┼┼┼┼┼┴┘█│         │
                │         └┐██└┴┴┴┼┼┼┼┼┼┼┼┼┼┴┴┴┘██┌┘         │
                │          └─┐████└┴┴┴┴┴┴┴┴┘████┌─┘          │
                │ ╔═════════╗└─┐██████████████┌─┘╔════════╗  │
                │ ╚╗  ╔═══╗ ╚╗ └──────────────┘  ║  ╔══╗  ║  │
                │  ║  ║   ║  ║ ╔══════╗ ╔═════╗  ║  ║  ║  ║  │
                │  ║  ║   ║  ║ ║ ╔══╗ ║ ╚═╗ ╔═╝  ║  ╚══╝  ║  │
                │  ║  ║   ║  ║ ║ ╚══╝ ║   ║ ║    ║  ╔══╗  ║  │
                │  ║  ║   ║  ║ ║ ╔══╗ ║   ║ ║    ║  ║  ║  ║  │
                │ ╔╝  ╚═══╝ ╔╝ ║ ║  ║ ║   ║ ║   ╔╝  ╚╗╔╝  ╚╗ │
                │ ╚═════════╝  ╚═╝  ╚═╝   ╚═╝   ╚════╝╚════╝ │
                └──────────────────────┤Affiliated with HoW├─┘
                Ответить
              • ​  
                                     _,,,-------,, ,-----,,_
                                  ,''             `         ``,
                                ,'               /\            ',
                              ,'             ,-''  ``-,          \
                             /          ,,--'          `-,        |
                            /      ,--''                  `-,      |
                           |      |   -,___          ___,-  |      |
                          |      |    _____`-_    _-'____    |     |
                          |     |    /     \        /    \   |     |
                          |     |   |    O  |   \  |   O  |  |     |
                         |      |    \_____/     \  \____/   |     |
                         |      |                 \          |     |
                        |       |                  \         |     |
                       /         |              ---`         |      |
                      |           \     `:---______---:`     |      |
                      |            \     `,| |  |  | |'     |       |
                     |              \      ``''''''''      /         |
                     |               ',,                ,,'          |
                    |                   ''------------''              |
                    |                     |          |                |
                   |                      |          |                 |
                   |                     |            |                |
                Ответить
            • Ну как, поздравил? Ещё не поздно.
              Ответить
          • сёр явно ненастоящий, фильтр надо поправить
            Ответить
      • Из api/index.php:
        <?php
        require_once($_SERVER["DOCUMENT_ROOT"]
            . "/bitrix/modules/main/include/prolog_before.php");
        
        use Doctrine\Common\Annotations\AnnotationReader;
        use Doctrine\Common\Annotations\AnnotationRegistry;
        use Helpers\DIContainer\DIContainer;
        use Helpers\HttpKernel\AnnotatedRouteControllerLoader;
        use Helpers\HttpKernel\HttpEventDispatcher\FactoryHttpEventDispatcher;
        use Helpers\HttpKernel\ValueResolver\ServiceValueResolver;
        use Symfony\Component\Config\FileLocator;
        use Symfony\Component\Config\Loader\DelegatingLoader;
        use Symfony\Component\Config\Loader\LoaderResolver;
        use Symfony\Component\HttpFoundation\Request;
        use Symfony\Component\HttpFoundation\RequestStack;
        use Symfony\Component\HttpKernel\Controller\ArgumentResolver;
        use Symfony\Component\HttpKernel\Controller\ArgumentResolver\RequestAttributeValueResolver;
        use Symfony\Component\HttpKernel\Controller\ArgumentResolver\RequestValueResolver;
        use Symfony\Component\HttpKernel\Controller\ContainerControllerResolver;
        use Symfony\Component\HttpKernel\ControllerMetadata\ArgumentMetadataFactory;
        use Symfony\Component\HttpKernel\Exception\NotFoundHttpException;
        use Symfony\Component\HttpKernel\HttpKernel;
        use Symfony\Component\Routing\Exception\MethodNotAllowedException;
        use Symfony\Component\Routing\Exception\ResourceNotFoundException;
        use Symfony\Component\Routing\Loader\AnnotationDirectoryLoader;
        use Symfony\Component\Routing\Loader\AnnotationFileLoader;
        use Symfony\Component\Routing\RequestContext;
        use Symfony\Component\Routing\Router;
        Ответить
      • #!/usr/bin/env php
        <?php
        /*
         * Interactive script to generate password hashes.
         *
         */
        
        
        /* This is the base directory of the simpleSAMLphp installation. */
        $baseDir = dirname(dirname(__FILE__));
        
        /* Add library autoloader. */
        require_once($baseDir . '/lib/_autoload.php');
        
        
        echo "Enter password: ";
        $password = trim(fgets(STDIN));
        
        if(empty($password)) {
        	echo "Need at least one character for a password\n";
        	exit(1);
        }
        
        $table = '';
        foreach (array_chunk(hash_algos(), 6) as $chunk) {
        	foreach($chunk as $algo) {
        		$table .= sprintf('%-13s', $algo);
        	}
        	$table .= "\n";
        }
        
        echo "The following hashing algorithms are available:\n" . $table . "\n";
        echo "Which one do you want? [sha256] ";
        $algo = trim(fgets(STDIN));
        if(empty($algo)) {
        	$algo = 'sha256';
        }
        
        if(!in_array(strtolower($algo), hash_algos())) {
        	echo "Hashing algorithm '$algo' is not supported\n";
        	exit(1);
        }
        
        echo "Do you want to use a salt? (yes/no) [yes] ";
        $s = (trim(fgets(STDIN)) == 'no') ? '' : 'S';
        
        echo "\n  " . SimpleSAML_Utils_Crypto::pwHash($password, strtoupper( $s . $algo ) ). "\n\n";
        Ответить
    • Научись собрать постгрю, и получи бюджетного бабла в подарок
      https://jatoba.ru/

      Функциональные возможности СУБД Jatoba!!

      журналирование
      Point-in-time recovery (PITR)
      наличие планировщика запросов,
      поддержка права доступа к объектам
      поддержка транзакций
      Ответить
      • мы поддерживаем транзакции и другие религии
        Ответить
      • Преимущества СУБД Jatoba
        Datasafe
        – утилита с WEB UI для контроля ряда аспектов СУБД:

        эт жорошо ведь веб такая защищенная платформа
        Ответить
        • Какой phpmyadmin )))
          Ответить
        • у постгри есть pgAdmin на самом деле

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

        Что произойдет, если дать автоматике кидать туда-сюда мастера как ей захочется? Правильно, расхождение историй.

        (оно правда может и при первом флипе произойти, другое дело что с ним разбираться будет куда проще, чем когда сеть поморгала, а оно сотню раз туда-сюда мастера перекинуло)
        Ответить
        • Имеется ввиду видимо что hot standby станвится мастером, если тот не доступен. Но что будет делать мастер, когда проснется, эт вопрос, Да
          Ответить
        • > Что произойдет, если дать автоматике кидать туда-сюда мастера как ей захочется?

          Отвечают админы гитхаба.
          Ответить
    • В январе 2017 года компания Intel выпустила обновленные спецификации для семейства процессоров Intel Atom C2000, в которых указала на «новую» проблему с синхронизирующим сигналом. Об этом сказано на 34-й странице обновления спецификации в примечании AVR54. Написано, что сигналы LPC_CLKOUT0 и/или LPC_CLKOUT1 (выходные синхросигналы шины Low Pin Count) могут перестать функционировать. В этом случае устройство больше невозможно будет загрузить, поскольку без синхронизации не работает другая электроника.

      чиница впайкой 100омного резистора
      https://miketabor.com/fixing-a-synology-ds1515-not-powering-on/
      Ответить
    • Перекат!

      https://govnokod.ru/27900
      https://govnokod.xyz/_27900/
      Ответить

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