Куча говна / Говнокод #27027 Ссылка на оригинал

0

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

#37: https://govnokod.ru/26524 https://govnokod.xyz/_26524
#38: https://govnokod.ru/26539 https://govnokod.xyz/_26539
#39: https://govnokod.ru/26556 https://govnokod.xyz/_26556
#40: https://govnokod.ru/26568 https://govnokod.xyz/_26568
#41: https://govnokod.ru/26589 https://govnokod.xyz/_26589
#42: https://govnokod.ru/26600 https://govnokod.xyz/_26600
#43: https://govnokod.ru/26604 https://govnokod.xyz/_26604
#44: https://govnokod.ru/26627 https://govnokod.xyz/_26627
#45: https://govnokod.ru/26635 https://govnokod.xyz/_26635
#46: (vanished) https://govnokod.xyz/_26646
#46: (vanished) https://govnokod.xyz/_26654
#47: https://govnokod.ru/26671 https://govnokod.xyz/_26671
#48: https://govnokod.ru/26707 https://govnokod.xyz/_26707
#49: https://govnokod.ru/26750 https://govnokod.xyz/_26750
#49: https://govnokod.ru/26776 https://govnokod.xyz/_26776
#50: https://govnokod.ru/26804 https://govnokod.xyz/_26804
#51: https://govnokod.ru/26809 https://govnokod.xyz/_26809
#52: https://govnokod.ru/26817 https://govnokod.xyz/_26817
#53: https://govnokod.ru/26833 https://govnokod.xyz/_26833
#54: https://govnokod.ru/26840 https://govnokod.xyz/_26840
#55: https://govnokod.ru/26844 https://govnokod.xyz/_26844
#56: https://govnokod.ru/26862 https://govnokod.xyz/_26862
#57: https://govnokod.ru/26890 https://govnokod.xyz/_26890
#58: https://govnokod.ru/26916 https://govnokod.xyz/_26916
#59: https://govnokod.ru/26934 https://govnokod.xyz/_26934
#60: https://govnokod.ru/26949 https://govnokod.xyz/_26949
#61: https://govnokod.ru/26980 https://govnokod.xyz/_26980
#62: https://govnokod.ru/26999 https://govnokod.xyz/_26999
#63: https://govnokod.ru/27004 https://govnokod.xyz/_27004
#64: https://govnokod.ru/27020 https://govnokod.xyz/_27020

Запостил: nepeKamHblu_nemyx nepeKamHblu_nemyx, (Updated )

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

  • Добрый день.

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

    Индекс оффтопов: https://index.gcode.space/.
    Зеркала Говнокода и полезные ресурсы:
    * https://govnokod.xyz/ (альтернативный Говнокод)
    * https://gcode.space/ (read-only зеркало Говнокода)
    * @GovnokodBot в «Telegram»
    * https://vorec.space/ (глоссарий Говнокода)
    Ответить
  • зачем заставили сайты просить разрешение на установку куки?
    что будет, если поставить куку без разрешения?
    Ответить
  • дотнетобляди, через DllImport можно загрузить .a файл?
    Ответить
    • .a это нативный unix файл для статической линковки? Откуда там CLR код?
      или ты хочешь нативный через PInvoke?
      Ответить
      • clr-код там быть не обязан, это для загрузки unmanaged dynamic-link library, читни доку

        но, если .a только для статической, тогда получается, что не выйдет
        Ответить
        • .a — это архив, содержащий модули. Чтобы его можно было загрузить в память, из него нужно слинковать .dll/.exe или .so (в зависимости от платформы).
          Ответить
          • Так то можно и самому в памяти слинковать, задачка не особо сложная, если хочется попердолиться. По сути смёржить однотипные секции из всех .o, отрезольвить в них ссылки друг на друга и аккуратно поправить оставшиеся релоки.
            Ответить
            • Да, всего-то вспомнить все типы фиксапов, которые бывают в .o-файлах (или подсмотреть исходники binutils или где там линкер).
              Ответить
              • Да на х86 их не так уж много. Я когда-то не умел юзать линкер скрипты и вручную писал код, который релочит dll'ку. За вечер справился. Не думаю, что в статике фиксапы разнообразнее.
                Ответить
              • Ну дык линкер тоже тогда болта соснёт. Или возьмёт рандомный из них, если атрибуты позволяют. Собственно из-за этого иметь несколько одноименённых объектов в крестах - это нарушение ODR и UB.
                Ответить
                • Я пытался сказать, что писать линкер это не просто смерджиться и порезолвить ссылки и поправить смещения, это еще и обработать кучу ошибок вроде unresolved symbol, и красиво сообщить пользователю. Проще запустить внешний линкер кмк
                  Ответить
                  • > обработать кучу ошибок
                    > красиво сообщить пользователю

                    Нехуй, пусть правильно код пишет.
                    Ответить
        • Я не знаю как .NET core на прыщах работае, но обычно .a это для стат линковки, а .so и еще этот ваш .dyld для динамической

          в винде я могу загрузить .dll через LoadLibrary, вызвав его через PInvoke.

          на юниксах это делает dlopen()

          Можешь ли ты дернуть его через pinvoke -- не знаю, попробуй. Вероятно, можешь.

          Но можешь ли ты dlopenом .a файл?
          Не знаю, думаю нет: .a файл это просто пачка .o файлов, может и без ELF заглловка.
          Ответить
          • .a — это архив. Такой формат какой-то софт использует, но не для библиотек, а для хранения произвольных данных (как tar).

            В .a упакованы (без зожатия) .o-файлы. А вот .o-файлы могут быть в разных форматах (ELF, COFF, OMF, XCOFF, a.out, RDOFF — тысячи их), главное, что в .o-файлах таблица символов не такая, как в экзешниках и в .dll/.so/.dyld.
            Ответить
            • Кстати, а у виндового lib тот же самый формат архива, что и на никсах?
              Ответить
              • Раньше был другой. Раньше, это когда в DOS, OS/2 и Windows для obj-файлов использовали только OMF.

                Начиная с какой-то студии, стали использовать тот же !<arch>, который в никсах, а obj-файлы стали не OMF, а COFF.

                Кажется, смена формата произошла, когда стала популярна Windows NT.
                Ответить
              • Глянул, в MSVC 1998-го года уже COFF и !<arch>, а в «Borland C» по-прежнему OMF и свой формат архива.

                В общем, в 16-битном коде никсовый формат ещё не использовался; в 32-битном коде некоторые компиляторы перешли на никсовый формат, некоторые остались на старом; в 64-битном коде повсеместно уже никсовый формат.
                Ответить
              • А вот с объектными файлами интереснее. В «Линуксе» сейчас повсеместно для экзешников, для .so-файлов и для .o-файлов используется «ELF», раньше использовался «a.out».

                А вот в «Windows» для экзешников и DLL используется «PE», а для объектных файлов используется другой формат («MSVC» использует «COFF», но не в точности тот «COFF», который был в «SYSV», а с некоторыми изменёнными полями). Сам «PE» основан на «COFF» (после сигнатуры "PE\0\0" следует заголовок COFF-файла), но это не тот «COFF», который используется для объектных файлов, а снова модифицированный (некоторые поля отличаются).

                Итого: бывает «COFF» из «SYSV» (его умеет генерировать «gcc»), бывает «COFF» из «MSVC», бывает огрызок «COFF», сидящий внутри «PE».

                А некоторые компиляторы под «Windows» в качестве объектного файла используют вовсе не «COFF» (я уже приводил «Borland C» в качестве реального примера).
                Ответить
            • > таблица символов не такая

              В эльфийских вроде точно такая же, не?
              Ответить
            • Что за хуйню вы тут обсуждаете? В "PHP" нет никаких .a-файлов.
              Ответить
              • Зато в «PHP» есть нативные расширения в виде .so- или .dll-файлов.
                Ответить
                • Для написания типичного сайта на "PHP" мне не нужно знать об их существовании.
                  Ответить
                  • Нужно. Может оказаться, что интерпретатор ругается на отсутствие какой-то функции, например, iconv, и тогда тебе нужно в php.ini добавить строчку extension=php_iconv.so или extension=php_iconv.dll.
                    Ответить
                    • Это сделает администратор хостинга.
                      Зачем программисту знать о какой-то прыщепредолинговой чуши?

                      Инструменты программиста -- язык и фреймоврки, а не прыщеговно
                      Ответить
                      • Ну а как ты будешь запускать сайт у себя на «Денвере»?
                        Ответить
                        • Ну если не заработает -- то буду писать его прямо на сервере. В этом нет проблемы: если нажать F4 в тотал коммандере, то открывшийся редактор будет сохранять файл прямо на сервер по FTP

                          Всегда ржу с дебилов, которые обсуждают какой-то "деплоймент", когда вот же он, прямо перед ними
                          Ответить
                      • Нужно грамотно составить заявку администратору. Например: «Подключи для моего проекта модули gd2, gmp, mbstring, mysqli». Т. е. хотя бы названия модулей нужно знать.
                        Ответить
                        • Зачем? Зачем? Заливаешь код на сервак и обращаешься к администратору, если не заработало.
                          Ответить
                          • А как администратор узнает, что нужно делать? Будет читать код твоего проекта? Администратор должен иметь квалификацию программиста?
                            Ответить
                            • Ну он же администратор, разберётся как-нибудь по логам.
                              Ответить
                              • Я реально знал программиста, у которого если тормозило приложение , то он писал администратору, и просил там что-нибудь подкрутить.

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

                                    Пусть коммивояжёр сам выбирает себе путь в приложении. Не успел - его проблема, вычтем из премии.
                                    Ответить
                                  • Вполне реально, кстати.

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

                                    Разорил все малые города и перекопал дороги, проверь.
                                    Ответить
                                    • >> перекопал дороги

                                      В России есть регионы (в Якутии, например), куда Почта России не отправляет посылки весной и осенью, потому что через реки отсутствуют мосты: летом работает паром, зимой — переправа по льду, а весной и осенью (когда начинается ледоход или ледостав) наземным транспортом реку пересечь невозможно. А аэродром есть не в каждом городе...
                                      Ответить
                        • Обычно я пишу в суппорт "у меня не работает такой-то плагин в "Wordpress"", они сами все понимают
                          Ответить
                • >>>"Зато в «PHP» есть нативные расширения в виде .so- или .dll-файлов."

                  Между прочим. К тому же, их не надо импортировать в начале скрипта (в отличие от маргинальных "Go" и "Python") - просто прописываешь в коде имена соответствующих функций и течёшь.
                  Ответить
                  • Да, все публичные символы загруженных расширений (функции, классы, константы) вываливаются в общее пространство имён. Не нужно думать о неймспейсах.
                    Ответить
                    • Это правда удобно. Все нужные функции всегда под рукой: mysql_real_escape, fpassthru, iconv

                      Всегда ржу с "джава" с этим ее

                      com.bat.batjana.mysuperapp.integraiton.l ogic.SecurityManagerImplementationProvid erImpl
                      Ответить
                      • Комбат-батяня, батяня-комбат, ты сердце не прятал за спины ребят.
                        Летят самолеты, и танки горят, так бьет, ё, комбат, ё, комбат!..
                        Комбат-батяня, батяня-комбат, за нами Россия, Москва и Арбат.
                        Огонь, батарея, огонь, батальон...Комбат, ё, командует он.
                        Огонь, батарея! Огонь, батальон! Огонь, батарея! Огонь, батальон!
                        Огонь, батарея! Огонь, батальон! Огонь, батарея!
                        Огонь! Огонь! Огонь! Агония...
                        Ответить
    • Это статическая либа, по сути просто архив с .o файлами (из каждого .c или .cpp файла получается один .o). Чтобы её загрузить придётся проделать дохуя работы по связыванию этих .o между собой, которую обычно делает линкер. В теории можно, конечно, запинать. Но на практике никто так не делает. И из коробки это точно не взлетит.
      Ответить
        • Если очень надо - можешь сделать свою .so или .dll, залинковать туда эту статическую либу и её зависимости, а потом просто экспортнуть нужные тебе символы и уже юзать из любого языка.
          Ответить
      • А если он слинкует .a в нормальный .so, то потом сможет через pInvoke/dlopen ее подругизть себе в адр пространство, и через опять таки тот же pInvoke ее дергануть?
        Ответить
        • да это слишком много телодвижений и вообще нинужно, учитывая сомнительность затеи (загружать библиотеки Racket'а, чтобы скриптоваться на нём из .net-приложухи)

          проще взять какой-то IronScheme или что-то, на чём дотнетчики обычно скриптуются (я не знаю, шо, если честно)
          Ответить
          • всё проще: https://developers.redhat.com/blog/2019/03/25/using-net-pinvoke-for-linux-system-functions/

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

            Ты хочешь скриптовать именно на схеме? Так-то под .net овердохуя языков, но без острой необходимости я бы не связывался с нативщиной (.h файлы будешь руками переписывать в структуры же).

            Выбирай язык: https://en.wikipedia.org/wiki/List_of_CLI_languages

            Microsoft на PowerShell скриптуется, и всем советует
            https://channel9.msdn.com/Blogs/bruceky/How-to-Embedding-PowerShell-Within-a-C-Application
            Ответить
            • Я думаю интерпретатор схемы в .so по-любому есть. Для питонов, луа и т.п. есть же.
              Ответить
              • дак по идее его и сделать не сложно: нужно взять .c файл, и осознать, какие функции ты экспортируешь, и сообщить об этом тулчейну, не?

                ну вообще я бы всё таки взял повершел. У него нативная поддержка .NET объектов: ты просто вызываешь из скрипта проперти и методы своих классов, и течешь
                Ответить
                • вообще в чём преимущество Racket'а в данном случае было изначально (для obj c)

                  1) ffi из коробки
                  2) возможность взять только те вещи, которые нужны (я обошёлся вообще racket/base), я уже писал как-то об этом

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

                    >бесплатный доступ к промежности
                    Хум хау. PS вполне себе скриптоговно, там много чего можно.

                    Но вообще IronSchemeCore судя по гитхабу жива (а не как айрон пайтон), так что можешь и ее попробовать
                    Ответить
                • кстати нихуя у меня не вышло пока подключить Powershell SDK к проекту на маке

                  System.Management.Automation упорно не появляется в списке using

                  некоторые типы проектов (Cocoa App) вообще не позволяют зареференсить даже обычный System.Management, его нет в списке

                  в интернете мало инфы, хотя можно встретить типа саксес стори, но похоже, что штука очень специфическая

                  так шо рэкет пока удачливее)
                  Ответить
            • Другой вопрос, насколько сложно будет биндинг конкретно под шарпик сделать. Захочется же наверное какую-то рефлексию прокинуть чтобы дёргать дотнетовские классы из схемы.
              Ответить
              • Я как-то в младые годы экспортировал .NET во всякое говно, но делал это через COM Interop: он там был из коробки, и это типа был рекомендованный спосо.

                КОМа у Десктопа нет (бо не виндуос), а насколько это легко сделать через pIvoke, я не знаю.

                Может оказаться, что это больно
                Ответить
            • > В чем проблема ее сликновать?
              - лень)

              мне не так важно, схема там или нет, просто я сделал такое для Swift+Racket; благодаря objc ffi я могу срать из рэкета прямо в обжси/свифт колбеками, если нужно

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

                  библиотеки с самим интерпретатором с приложением линкуются статически

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

                  получается, интерпретатор вшит
                  Ответить
                  • а, понел тебя. То есть ты статически с ними линкуешься.

                    К сожалению, статически слинковаться с .NET нельзя. Ну или я не знаю как (хотя он же опенсурс теперь, в теории верно как-то можно)
                    Ответить
          • > загружать библиотеки Racket'а, чтобы скриптоваться на нём из .net-приложухи

            Скриптуйся Erlang'ом. Запусти свою дотнешню через open_port и шли ей письма. /color
            Ответить
  • Плохо быть единственным человеком в мире, который использует какую-то технологию.
    По возможности избегайте этого.

    https://bugs.openjdk.java.net/browse/JDK-6795562
    А ведь 11 лет назад нас было двое...
    Ответить
  • Фактически управлял царством при Птолемее IV александриец Сосибий, сын Диоскурида
    Ответить
    • Ну кстати прикольная фишка с этим депендаботом. А как они из твоих проектов зависимости достают? По сборочным файлам умеют бегать?
      Ответить
  • Питухи, у вас было так, что человек вам говорит о том, что что-то не работает, и вы ему отвечаете:

    Попробуй:
    1) $action1
    2) $action2
    3) $action3

    Он пробует только $action2, и пишет: "к сожалению, не помогло".

    Ты ему пишешь опять:
    А тогда $action1 или $action3?

    Он пробует только $action3, и пишет: "к сожалению, и это не помогло"
    Ответить
    • Именно поэтому с какой-нибудь бухгалтершей легче общаться по телефону, чем с "программистом". Сука, как же меня бесили эти любители пропускать "очевидные" шаги.
      Ответить
      • Программистам ещё хочется сделать всё немного по-другому, по-своему, поэтому «Я сделал А» нужно понимать как «Я, кажется, понял как сделать А, поэтому сделал Б, вроде должно было получиться» )))
        Ответить
        • Ну кстати я обычно дословно выполняю инструкции от техподдержки. Быстрее отъебутся и соединят с нормальным чуваком, который шарит.
          Ответить
          • А я просто ни в чем не разбираюсь, поэтому делаю всё что говорят )

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

            Я воткнул адаптер покруче и потёк )))
            Ответить
          • >Ну кстати я обычно дословно выполняю инструкции от техподдержки.

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

                Я уже как-то жаловался на ёблю с доксис:

                -- В морде модема я вижу, что на одном канале SNR сильно ниже стандарта, и там много ошибок, и скорость у меня 1 мегабит в секунду. А вот днем у меня SNR номральный, ошибок нет, и скорость нормальная. Можно мне поговорить с инжерером?

                --Так, попробуйте включить комптютер в модем напрямую, мимо роутера.
                Ответить
                • Берёшь и включаешь (ну или делаешь вид). Девочка доходит до конца скрипта и переключает на чувака, который понимает что такое «SNR».

                  Собственно я так и делал этим летом. Чувак через 5 секунд сказал "а, у вас потерь дофига, когда лучше техников прислать?"
                  Ответить
                  • > Девочка доходит до конца скрипта и переключает на чувака, который понимает что такое «SNR».
                    Подтверждаю. Чем меньше выёбываешься умными словами перед заскриптованными девочками на первой линии — тем быстрее и спокойнее переключат на техника.

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

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

                    Но если у тебя SNR на модеме хуевый, то виноват, очевидено, не роутер
                    Ответить
    • Скажи ему что он дебил & дурак.

      Мне, кстати, это напомнило сьому. Я бы такого пристыдил за неуважительное отношение к чужому времени.
      Ответить
  • Как то раз мне сказали на собеседовании, что лямбды в крестах компилятся как inline.
    То есть, если я подставлю её, например в find_if, то конпелятор сольет две функции в одну?
    Или она inline только для использования на том же фрейме стека?
    Ответить
    • Лямбда в крестах — это обычная структура с перегруженным оператором (). Компилятор её оптимизирует ничуть не хуже явно написанных функций.
      Ответить
        • Да. На самом деле, иногда даже функцию переданную по указателю умудряется заинлайнить. Если очевидно, что в этой точке ничего другого подсунуть не могут.
          Ответить
    • Да, если лямбда не слишком навороченная. Как и любую другую достаточно простую функцию, даже если она не помечена как «inline».
      Ответить
        • Скажем так, стандарт не запрещает конпелятору это делать, если семантика твоей проги не изменится. Но и не заставляет.
          Ответить
      • Как компилятор понимает, что дешевле: лишний кол, или лишний код?
        Ответить
        • Выдроченная за годы эвристика. А со всякой мелочью типа begin(), end() или size() всё довольно очевидно - от их инлайна код становится и меньше и быстрее.
          Ответить
        • Я бы сделал так, но это утрированно.
          Вижу что тут цикл, в котором вызов только одной функции - оптимизирую.
          То есть, видит, что между меткой A и условным переходом на нее F есть прыжок на другую метку B, берет всё, что в B и заменяет прыжок на содержимое метки B до ret.
          Ну можно еще топорней: Скомпилить оба варианта, сделать на них тестовый запуск и выбрать тот, который быстрее.
          Ответить
          • > сделать на них тестовый запуск и выбрать тот, который быстрее

            Ты только что изобрёл profile-guided optimization.
            Ответить
            • Осталось перекомпилировать в рантайме то, что тормозит, иу нас будет JIT!
              Ответить
              • PGO уже поддерживается современными компиляторами.

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

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

    хорошо завезли возможность роллбекнуть обновления кроме обновлений безопасности
    Ответить
    • > хорошо завезли возможность роллбекнуть обновления
      Нехорошо это как-то. Надо чтобы роллбекнуть можно было только после обращения в техподдержку с подробным описанием, какие проблемы у тебя это обновление создаёт (и если они не слишком серьёзные — заявка отклоняется). Ну и чтобы через неделю оно обратно ставилось.
      Ответить
      • а вот если бы винда бы написана на php или js можно было бы самому манкипатчить

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

        если можешь скзаать где их смотреть я скину

        к сожалению я не уверенный пользователь пк
        Ответить
          • пишет number of events: 15000 и нихуя не показывает

            кнопка filter показывает окно и там все контролы заблокированы
            Ответить
                  • The DSM service was delayed by 22 seconds for a driver query/download/install on device 'HID\dcc5bec1-0e02-40eb-8cb7-7298ffc76d16'

                    A connection to the Windows Metadata and Internet Services (WMIS) could not be established.

                    The Network List Manager reports no connectivity to the internet.

                    еще у меня вайфай сука вырубается при спящем режиме
                    Bluetooth HID device  either went out of range or became unresponsive.

                    Initial connection to Bluetooth HID device  failed.  The device has been removed as a personal or paired device.  You must reinstall the device.

                    The local adapter does not support Bluetooth Low Energy.

                    и еще есть логи за distributedCOM и клиент впна
                    все логи выше встречаются по несколько раз
                    Ответить
                    • У тебя не заработал интернетик, а без интернетика не смогли скачаца дровишки

                      всё же написино
                      Ответить
  • Приходилось ли вам парсить JSON частично? То есть пришёл обрезанный JSON, но информация достаточно ценная, чтобы достать хотя бы что-то.
    Ответить
    • XML парсил, любой SAX парсер с таким справляется. А вот с JSON - х.з. умеют ли либы такое.

      Закрыть вручную в конце все скобочки не получится?
      Ответить
    • Приведи реальный пример достаточно ценной информации, которую имеет смысл парсить частично.
      Ответить
    • пройдись по строке, стобери в стек открывающие кавычки и скобки, все что не закрылось закрой и спарси как обычно
      Ответить
      • Ага. Только мне наверное не имеет смысл куски массива оставлять. У меня объект, и много полей разной вложенности, только целые имеет смысл оставлять.
        Ответить
      • Зачем? Зачем? Если нужно парсить какие-то важные данные, то огрызки от них будут иметь околонулевую ценность. Даже наоборот, вредными могут быть.
        {
            "type": "perevod babla",
            "target": "+79123456789",
            "currency": "RUB",
            "amount": 10050
        Ответить
        • С числами нельзя, конечно. Ты не знаешь закончилось ли число.
          А вот то, что кто-то пытался перевести бабло и кому - инфа полезная.
          Ответить
                • Написать парсер на буст-спирите на листочке? Небось не все скажут сколько в тупле максимум длина кортежа
                  Ответить
                    • Да потоковый то вообще изи, по сути лексер и всё. Можно на рагулярках навертеть если спирит не вспоминается.
                      Ответить
                      • Если маппить в конкретные модели, то имхо не так уж и изи
                        Ответить
                      • Ну хотя у меня у самого где-то валяется потоковый парсер на Свифте. Там есть один нюанс, но в целом вроде всё работало
                        Ответить
                  • > на листочке

                    Норм, спеку json'а же написали на салфетке.
                    Ответить
                  • Дополнить джейсик до валидного минимальным количеством символов. Правда придётся ебаться с экранированием кавычек.
                    Ответить
                    • И не только с ними. Тебе надо различать недобитый ключ и недобитое значение.
                      Ответить
                      • Пометка на недобитых массивах и хешмапах тоже пригодится. Чтобы сильно им не доверять.
                        Ответить
                        • Т. е. помимо объекта, хранящего распарсенный JSON, придётся ещё составлять объект, хранящий оценку надёжности распознавания каждого значения и каждого ключа.
                          Ответить
          • > А вот то, что кто-то пытался перевести бабло и кому - инфа полезная.
            Ну логгировать-то конечно можно и нужно. А вот использовать в дальнейшей автоматической обработке — ну хуй знает.
            Пусть кто-нибудь другой реальный пример приведёт.
            Ответить
            • В какой-нибудь криминалистике: как неопровержимое доказательство использовать нельзя (данные неполные), но как зацепку для определения направления поиска можно.
              Ответить
    • Именно по этому я за SAX и XML.
      Хотя конечно ничто не мешает написать конченый автомат, который будет колбечить на каждый атрибут

      {
      name: "petuhz" //колбек
      age: 22 //колбек
      }
      Ответить
  • roman-kashitsyn:

    Ребёнок не оставляет свободного времени на всякую ерунду, поэтому к работе начинаешь относиться совсем по-другому. Я после рождения ребёнка уволился с хорошей, но не очень интересной работы чтобы заниматься тем, что действительно по душе. Просадки в "перформансе" не заметил: чем меньше у тебя ресурсов (времени), тем более рационально ты их используешь. Я стал меньше страдать фигнёй и лучше, глубже работать.

    К слову, у SPJ не менее шести детей. Мы все тут перформим гораздо хуже него.

    Также горячо рекомендую книгу Deep Work, она действительно изменила мою жизнь к лучшему.

    https://habr.com/ru/company/vdsina/blog/520478/#comment_22105878
    Ответить
    • А я всегда занимаюсь фигней, вместо того, чтобы глубоко работать
      Ответить
      • Именно поэтому ты на «Говнокоде».
        Ответить
    • SPJ? Это чо ещё за хипстер?

      > чтобы заниматься тем, что действительно по душе
      полгода назад:
      > С прошлого июля я пишу на Rust full-time, скучаю по C++

      Роман совсем сломался
      Ответить
      • Это который глазго хаскель компайлер пишет
        Ответить
          • Роман знает, что в какой-то момент из было шесть. Может быть их кол-во увеличилось, может нет. Откуда он знает?
            Ответить
              • Почему монотонно? Оно может расти, а может и не расти. Хочется думать, что во всяком случае оно не уменьшается
                Ответить
  • Сегодня "Mail.Ru" исполнилось 22 года. Давайте поздравим.
    Ответить
    • > 22

      Сколько туплов в скале? Это классика! Это знать надо!
      Ответить
      • «Technically, Scala 2.x has classes named Tuple2, Tuple3 … up to Tuple22. As a practical matter you rarely need to know this, but it’s also good to know what’s going on under the hood. (And this architecture is being improved in Scala 3.)»

        Какой багор )))

        «Some programming languages, such as ML, Python and Haskell, have built-in tuple constructs. Unfortunately C++ does not. To compensate for this "deficiency", the Boost Tuple Library implements a tuple construct using templates... The current version supports tuples with 0-10 elements. If necessary, the upper limit can be increased up to, say, a few dozen elements»

        Либа на крестах обогнала УБОГИЙ (если качество языка ставить в соответсвие качеству реализации туплов) хаскель.

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

        https://www.scala-lang.org/api/current/scala/Function$.html

        ...

        https://www.scala-lang.org/api/current/scala/Function22.html

        Такой же багор с Product22. Видимо, у того, кто это придумал, не было ситуации «Ого как вы быстро написали лабу... А теперь поменяйте код так, чтобы в массиве было не 10, а 21 элементов, а в векторе было не 3, а 4 координаты!»
        Ответить
        • В бусте ради этого научились метушить на макросах. Целый язык сделали. А потом вариадик шаблоны завезли.
          Ответить
    • > Everyone should definitely stop coding in C++, an ugly and unfriendly language that is often surprisingly inefficient in its code generation.

      > Let’s all get together and kill C++ with a deadly combination of re-write and neglect…

      Ну пиздец )))
      Ответить
      • Everyone should definitely stop coding in Java, an ugly and unfriendly language that is often surprisingly inefficient in its code generation.
        Let’s all get together and kill Java with a deadly combination of re-write and neglect…


        Everyone should definitely stop coding in Rust, an ugly and unfriendly language that is often surprisingly inefficient in its code generation.
        Let’s all get together and kill Rust with a deadly combination of re-write and neglect…


        Everyone should definitely stop coding in PHP, an ugly and unfriendly language that is often surprisingly inefficient in its code generation.
        Let’s all get together and kill PHP with a deadly combination of re-write and neglect…


        Everyone should definitely stop coding in Brainfuck, an ugly and unfriendly language that is often surprisingly inefficient in its code generation.
        Let’s all get together and kill Brainfuck with a deadly combination of re-write and neglect…
        Ответить
        • Напомнило

          New Wave tried to destroy The Metal
          But The Metal had its way
          Grunge then tried to dethrone The Metal
          But Metal was in the way
          Punk Rock tried to destroy The Metal
          But Metal was much too strong
          Techno tried to defile The Metal
          But Techno was proven wrong
          Yeah
          Ответить
  • https://otvet.mail.ru/question/222168788


    Егор Псковыкин, открыт 4 часа назад
    Нужна ли web-программисту высшая математика?
    Я в полном тупике... Не знаю куда поступать, на менеджера по продажам, или на web-программиста. Боюсь поступать на программиста, т. к. там нужна математика, а я ПОЛНЫЙ НОЛЬ в ней.
    Ответить
      • >> Да вы за*бали. Приведи пример что ты там будешь разрабатывать в котором нужна математика.

        Кажется, Сёма погрузился в «Ответы Mail.ru».
        Ответить
    • Боюсь, что у менеджера по продажам математики больше.
      Ответить
    • Без математики трудно поступить в вуз. Теперь же ЕГЭ везде. Но можно в ПТУ.
      Ответить
      • Кстати, можно стать самоучкой. Типичному "веб-программисту" вполне можно без вышки. Я не шучу.

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

          другие поступили на физмат и их там интегралами ебали 4 года

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

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

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

                  Из химии мы магний выносили. А из вышки вынести было нечего, там только книжки да мел.
                  Ответить
                  • мел можно скормить беременной

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

                    Неправильная у вас вышка. Мы из неё вакуум выносили.
                    Ответить
                    • Вакуум же на физике был. Но унести его не удалось, он куда-то испарился когда мы начали его выливать из сосуда. То ли дело спирт.
                      Ответить
                      • Так надо было в голове выносить. Я вот сейчас в жизни не вспомню, как какую-нибудь метрику Шварцшильда вывести, а когда-то на экзамене это делал.
                        Ответить
                        • > Шварцшильда

                          Хм, это чувак, который терминатора играл?
                          Ответить
                          • Вроде Шильда — это сфинкс из повести Лукьяненко и Буркина «Сегодня, мама!»
                            Ответить
  • https://otvet.mail.ru/question/222167012





    фыввввввв ввввввввввввввв, открыт 7 часов назад
    Стоит ли начинать изучать php?
    Без хорошего знания в html css js ?
    Хорошо знаю Python, теперь решил php начать учить.
    Ответить
  • Невероятное событие! На go нашелся проект, которым не только удобно пользоваться, но и который лучше уже существующих аналогов!

    https://github.com/cespare/reflex
    Ответить
    • Шикарно. Пошёл отстирывать жидкого ребёнка от трусиков.
      Ответить
  • Почему мы ещё не обсосали новость про уязвимость прыщеблядикса, которая позволяет через блюпуп выполнять код на уровне ядра?
    Ответить
  • Быть макоблядью иногда больно. Подключил бук к внешнему монитору и клавиатуре (не от яббл)

    1. При той же кириллической раскладке в системе на внешней клавиатуре не набирается буква ё

    2. При смене раскладки на другую кириллическую, где есть буква ё, невозможно набрать обратную одинарную кавычку, которая по умолчанию используется в комбинации для переключения между окнами одного приложения. Вместо кавычки здесь получается § (знак параграфа), который невозможно использовать в комбинациях на родной клаве ноута!

    Допустим, тут можно намаппить на что-то, что удовлетворит всех.

    3. Для CAPS LOCK есть глобальная настройка, чтобы по нему быстро переключаться на английский и обратно. Только для одной кириллической раскладки настройка работает, а для другой игнорируется (и хули толку, что она глобальная) и капс работает как классический капс.

    При этом капс в принципе работает только на внешней клавиатуре. На родной он делает непонятно что: я его какой-то тулой замаппил на какую-то хрень, но не помню, на что, когда и зачем лол )))

    4. В Винде можно в настройках драйвера видюхи указать, нужно ли масштабировать графические приложения до актуального разрешения. В Макоси никаких настроек драйвера толком нет (эппл лучше знает, что тебе делать с ноутбуком, вообще отойди, чудовище, а то ещё что-то сломаешь), а потому как решить проблему на уровне ОСи, да ещё и для приложения, запущенного через вайн, мне пока непонятно. Но есть изящный солюшн: оказалось, что aspect ratio можно задавать на самом мониторе!


    Сука, и это не какие-то прыщи 99-го года
    Ответить
    • Ты просто должен был купить внешнюю клаву и моник от ябла и течь.
      Ответить
      • Моник от яббла мне не поможет

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

              Прыщебляди соснули!
              Ответить
              • о, ещё какой косяк

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

                больше туннельного синдрома богу туннельного синдрома
                Ответить
                • В ебучем гноме 3 точно так же. Раньше в убунте часики и статус были на обоих мониторах, теперь только на главном. Ну хоть иконки приложений на обоих, и на том спасибо.
                  Ответить
                  • не понимаю про какие иконки приложений на обоих ты говоришь, у меня на главном, но на главном каждого воркспейса
                    полагаю, это всё это твикается
                    Ответить
                    • меня гораздо больше бесит дрочь мыши, она не способна выделить большой регион на экране на мультимониторной конфигурации, не потеряв прожатие где-нибудь в середине, горит с этого
                      Ответить
                        • а в убунту у каждого рабочего стола свой стек окон или общий для всех? это если по альт-табу переключаться, например
                          Ответить
                          • сейчас у меня (вроде как дефолт, но это не точно):
                            альт таб все окна насквозь
                            альт тильда окна этого приложения
                            вин таб приложения насквозь

                            но это всё можно поремапить
                            Ответить
                                    • макось опять соснула в общем

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

                                    Super-1 Emacs
                                    Super-2 Browser
                                    Super-3 Консольки для локальных фоновых процессов, типа компиляции
                                    Super-4 Файловый менеджер
                                    Super-5 Консольки с SSH сессиями
                                    Super-6-7 Прочая питушня
                                    Super-8 Консольки, приаттаченные к инстансам симулятора какой-нибудь распределённой опердени в докере
                                    Super-9 Мыло, чатики

                                    Один аккорд моментально и, главное, детерминированно приводит меня к нужным окошкам. Alt-tab'ом или маковскими недодесктопами такой же скорости переключения окошек достигнуть невозможно.
                                    Ответить
                                    • Ты какой-то неправильный emacs'ер.

                                      Super-1 Emacs
                                      Super-2 Emacs Browser
                                      Super-3 Emacs Консольки для локальных фоновых процессов, типа компиляции
                                      Super-4 Emacs dired
                                      Super-5 Emacs Консольки с SSH сессиями
                                      Super-6-7 Прочая питушня Emacs
                                      Super-8 Emacs Консольки, приаттаченные к инстансам симулятора какой-нибудь распределённой опердени в докере
                                      Super-9 Emacs Мыло, чатики
                                      Ответить
                                    • угу, и еще экспиренс одинаковый везде: Одни и те же клавиши для командной строки, файлового менеджера и IDE, и даже bashевые хотки такие же, как в емаксе

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

                      Воркспейсы - вообще неведомая хуйня какая-то. Почему-то только на главном монике переключается набор окон. А на втором всё как лежало так и лежит.

                      З.Ы. А, пишут что это твикается.

                      > иконки приложений

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

            просто опять-таки, например, CK2 на ретине отрисовывается с середины экрана и я в итоге даже не могу настройки поменять, потому что гении из Парадокса умеют только в мышку. EUIV вроде нормально отображалась, но на ретине UI очень мелкий.

            В итоге или надо переключаться на меньшее разрешение, грубо говоря, 1x, тогда всё выглядит как говно из-за мыла. Или искать патчи, которые в конкретной игре скейлят UI.

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

              Эм, а чем ретина в 1х отличается от обычного фуллхд?
              Ответить
                • Хм, прям как мой старый VGA'шный моник. Ну ничего, с таким тоже жили...
                  Ответить
                  • ну для многих игорей на маке это единственный способ

                    или разрешение ретины вообще не поддерживается, или рисуется с артефактами и т.п.

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

                      ну или прыщи
                      ck2 на прыщах почти не тормозит, и имеет ту самую экспериментальную галку (вроде, ползунок), чтобы скейлить УИ на хайдпи
                      Ответить
                      • а я не говорил, что CK2 у меня тормозит. играю на внешнем FullHD, потому экспериментальные галочки по набросу мыла мне не нужны

                        просто мой вендопека всё же помер, судя по всему, потому пока так
                        Ответить
                        • а кто говорит про наброс мыла
                          он скейлит интерфейс (иначе пипки и тексты в окошках слишком малы), а текстуры нормально выгледят, не как хуй

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

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

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

                                чот смогли же для KotOR 2 запилить поддержку HDPI, а там игра вообще 2005-го года
                                Ответить
                              • кстати, CK2 вышел в один год с первым макбуком на ретине, если я правильно понимаю, так шо вопрос не в ретине, а в том, что зачем нужно выдрачивать ради децла рынка
                                Ответить
      • у них кстати у самих на клавиатурах разных видов разное расположение клавиш. та же кавычка-тильда то стандартно под эксейпом, то вдруг возле левого шифта
        Ответить
    • Мошеннические письма часто содержат грамматические ошибки и бывают написаны так глупо, что только слабоумный попадётся на них. Это делается намеренно, как своего рода фильтр от людей, которые могут быстро разобраться, что их пытаются наебать и создать проблемы мошеннику. Touch Bar играет ту же функцию: яббл нарочно запилил эту фичу, чтобы отсеять здравомыслящих людей. Другими словами, макоблядь — это судьба. Удивляться, что дорогой кусок алюминия довольно бесполезен — это как удивляться, что нигерийский принц не прислал денег.
      Ответить
      • у меня нет тачбара на ноуте

        ты промахнулся

        ну впрочем как и во всём остальном
        Ответить
      • Мошеннические письма часто содержат грамматические ошибки и бывают написаны так глупо, что только слабоумный попадётся на них. Это делается намеренно, как своего рода фильтр от людей, которые могут быстро разобраться, что их пытаются наебать и создать проблемы мошеннику. Сочетания клавиш в emacs играют ту же функцию: Столлман нарочно запилил эту фичу, чтобы отсеять здравомыслящих людей. Другими словами, емаксоблядь — это судьба. Удивляться, что мизинец отваливается уже после туториала, и при этом продолжать пользоваться emasc'ом — это как удивляться, что нигерийский принц не прислал денег.
        Ответить
        • Мошеннические письма часто содержат грамматические ошибки и бывают написаны так глупо, что только слабоумный попадётся на них. Это делается намеренно, как своего рода фильтр от людей, которые могут быстро разобраться, что их пытаются наебать и создать проблемы мошеннику. Verilog играет ту же функцию: Gateway Design Automation нарочно запилил этот язык, чтобы отсеять здравомыслящих людей. Другими словами, железкоблядь — это судьба. Удивляться, что для синтеза логики нужно использовать проприетарный софт, работающий только под Windows Vista, и при этом продолжать пользоваться FPGA — это как удивляться, что нигерийский принц не прислал денег.
          Ответить
          • > работающий только под Windows Vista

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

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

                  Такое говно конечно лучше в докере гонять
                  Ответить
                  • Да там интел (или ещё альтера?) просто немного облажался. Они 90% либ у себя в каталоге прикопали, а на остальное почему-то понадеялись. Вот и не прокатило.

                    Из системного хардкора там разве что доступ к usb, а остальное - чистейшая прикладнуха. Пакет для синтеза, их ide для верилога, эклипс для сишки, симулятор для отладки и т.п.
                    Ответить
                    • >почему-то понадеялись.
                      потому что докера тогда не было?

                      на винде старые программы тоже часто хотели кучу сторонних либ (от nvidia, CRT, итд)

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

                        Дистриб то не старый, они его обновляют регулярно. Просто тестируют только на окаменелом редхате, а на остальное им похуй.
                        Ответить
                        • а, ну тогда это простое "работает не трогай"

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

                          Это, кстати, одна из причин, по которой их иногда любит коммерческий софт.
                          Ответить
                          • Ну я надеюсь они когда-нибудь соберутся и засунут всё это в какой-нибудь snap.
                            Ответить
                            • я не трогал снапы еще: там бандлятся все-все-все либы? только ядро нужно?
                              Ответить
                              • Ага, вроде всё бандлится, как в докере.

                                Но в отличие от докера оно всё-таки более юзерфрендли, там не надо быть девочкой-собачкой чтобы образ развернуть.
                                Ответить
                                • Почему всё в это не запихнуть? Зачем вообще что либо кроме голого ядра?
                                  Давайте форсить CoreOS?
                                  Ответить
                                • Снап от докера отличается ещё и возможностями подписываться и срать ивентами. При этом кононикал так и не осилило сторонние репы, только Наш Снапстор будьте любезны. Не знаю где там проще.
                                  Ответить
                                  • огосподи
                                    а там же открытый апи, я могу свой стор поднять?
                                    Ответить
                                    • Открытый
                                      Не можешь

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

                                            ну, это полная хуйня, конечно. Останусь пока с deb
                                            Ответить
          • Мошеннические письма часто содержат грамматические ошибки и бывают написаны так глупо, что только слабоумный попадётся на них. Это делается намеренно, как своего рода фильтр от людей, которые могут быстро разобраться, что их пытаются наебать и создать проблемы мошеннику. C++ играет ту же функцию: Бьярне нарочно запилил этот язык, чтобы отсеять здравомыслящих людей. Другими словами, крестоблядь — это судьба. Удивляться, что для написания hello world нужно изучить 2000 страниц стандарта, который меняется каждую пару лет, при этом продолжая ловить UB'ы и сегфолты — это как удивляться, что нигерийский принц не прислал денег.
            Ответить
            • Шум и гам в этом логове жутком,
              Но всю ночь, напролёт, до зари,
              Я читаю стихи проституткам
              И с бандюгами жарю спирт.
              Ответить
            • Кстати, стертор и ещё кто-то, вроде бы Desktop, были единственными мною замеченными пользователями, которые пишут багруты, используя две собачки, типа вот так:

              «@@ Пишу питон
              @@ так что же делает index наверное что-то связанное с индексацией как в массивах
              @@ ой»

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

              Но я больше склоняюсь к версии, что он просто не смог придумать что-то своё и спиздил такой формат
              Ответить
              • «Стертор» использует @ или @@ для цитирования. Кроме него для цитирования такой символ не использовал никто. «Fomenok» для той же цели использовал #. Прочие пользователи «Говнокода» цитирование выделяют знаком >, кавычками, шрифтом или вообще никак не выделяют.

                Лет десять назад несколько пользователей пытались использовать @ для обращения, как в «Твиттере», но не прижилось.

                Ещё собачка тут использовалась для фраз типа «ВОРУЙ @ УБИВАЙ» (google: advice dog).
                Ответить
          • на клауде предел - это обычно твой депозит

            aws вроде в хард лимит бюджета не умеет, максимум отправит письмо что ты проебался
            Ответить
            • Не помню как амазон, а GCP в конце месяца чарджит. Какой многотысячный багор )))
              Ответить
              • Я на hackernews читал охуительную историю как девопс чето там на ночь и выключил и за ночь прилетел билл на $85k что обанкротило его стартап

                жаль что теперь не могу найти, может мне это приснилось
                Ответить
                • Я нашел другую статью про облачную питушню, но тоже очень даже неплохую:

                  http://www.seoded.ru/articles/hosting.html

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

                  «3. Фермы троллей. Забавно наблюдать, как тысячи живых людей (анализ их поведения говорит о том, что это не боты), словно по команде, прибегают на сайт с российских IP и начинают активно обсуждать президента США или губернатора Калифорнии. И это было бы смешно, если бы не осознание того, что на такие вот «проказы» в России тратятся миллиарды бюджетных денег. Вместо постройки больниц, дорог и школ»

                  «1. Парсеры. Какие-то школьники постоянно пытаются спарсить с твоего сайта какую-нибудь информацию и сделать свою поделку, чтобы заработать 3 цента на тизерной рекламе. Поскольку эти парсеры, обычно, работают достаточно топорно, то подобный сбор данных с сайта может моментально его «перегрузить» (так как программа-парсер начнёт открывать по 1000 страниц в секунду). По факту, получается полноценная DDoS-атака»

                  И ещё там что-то про майнеры, не влезло в 2000 символов.

                  Обожаю такой аутентичный стиль изложения мыслей.

                  «Десятки злоумышленников ежедневно пытаются урвать от вас кусочек и получается ситуация, когда вы, внезапно, можете получить счёт в 10 или даже 50 раз выше привычного. Мне известны случаи, когда людям даже приходилось банкротить компании, после того, как с ними происходила подобная «неожиданность». Забавно, что системы защиты от «ддоса», троллей и прочего — тоже «облачные». И тоже рассчитывают стоимость по факту потребления трафика, который пришёл к вам на сайт за месяц. Так что, даже система защиты может точно так же обанкротить вас или вашу компанию»

                  Какой багор )))

                  Ну а что, казино всегда в выигрыше!
                  Ответить
                  • > Так что, даже система защиты может точно так же обанкротить вас или вашу компанию
                    Именно поэтому я за «VPS», «iptables» и «fail2ban». Купил фиксированное количество ресурсов — и за последствия кривого администрирования отвечаешь исключительно доступностью сервиса, а не десятками тысяч долларов. В облака стоит улетать только тогда, когда убытки от пары часов простоя сервиса будут приближаться к этим самым десяткам тысяч долларов.

                    P. S. Вспоминается занимательная история о том, как в «Гугл.Документах» можно было создать таблицу 100500*100500, в каждую ячейку записать что-то вроде «=url(example.com/green_elephand_4K_HD.avi)» и наблюдать за охулионом гугл-ботов, старательно скачивающих заданный файл. Какой-то наивный лох неразобравшийся гражданин так влетел на десяток тысяч долларов от «AWS».
                    Ответить
                    • >Именно поэтому я за «VPS», «iptables» и «fail2ban».

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

                      как ты это решишь vpsом?
                      Ответить
                      • Магазины — это вообще один из немногих идеальных для облака кейсов (как раз потому, что простой во время распродажи как раз и выльется в те самые десятки/сотни/etc тысяч долларов убытков). Но даже в этом случае спокойно можно обойтись без новомодной хуйни: даты всех распродаж у нас известны заранее, под них всегда можно прикупить сервер помощнее™ на недельку.
                        Более того, если архитектура магазина изначально не заточена под горизонтальное масштабирование а-ля «AWS» (а как ты понимаешь, 95% мелких магазинов написаны ротоёбами в файле magazin.php и горизонтально масштабироваться не могут в принципе), то покупка сервера помощнее™ становится вообще единственным вореантом.
                        Ответить
                        • Сейчас много чего является магазином

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

                        Я просто жал кнопочку "временно добавить ресурсов" и тёк. По сути на vps только увеличение диска необратимо.

                        Ну а рост с 40 на 400кк - это какая-то фантастика из рекламного буклета облакоёбов, имхо.
                        Ответить
                        • какакаких ресурсов?

                          у тебя это в рамках одной ОС не проскейлится, раком станут все процессы и порты кончатся же

                          >фантастика
                          ну 3к в 30к на моих глазах превращалось
                          Ответить
                          • С 40 на 440к? Само собой. Но в реале такое бывает разве что при ддосе. Ты все равно физически их не обслужишь, рук не хватит.

                            З.Ы. И в случае с aws ты скорее всего останешься без магазина, а не без клиентов.
                            Ответить
                            • в моем случае это было при распродаже
                              Ответить
                              • Ну и как потом эти заказы разгребали? Отмасштабировали, наняв сотню-другую китайцев на недельку?
                                Ответить
                                • Ну у нормальных магазинов подобные распродажи планируются далеко заранее, а заранее можно и сотню-другую китайцев нанять (и сервер помощнее купить, ага).
                                  Ответить
                                  • купить сервер помощнее, а потом продать?
                                    Ответить
                                    • Ну вон провайдер Борманда позволяет временно прикупить ядер/оперативы, как раз идеальный вореант. А можно вот так делать (хотя переносить всё туда-сюда это геморрой, конечно): https://i.imgur.com/QgAVlSD.png. Заплатил 3600 деревянных — и получил на день пол терабайта оперативы на 128-ми ядрах, ротоёб одобряет.
                                      Ответить
                                      • > провайдер Борманда

                                        Дык самый обычный DO. Надо было что-то скомпилить или обработать - тупо добавлял проца и оперативки в один клик.

                                        Ну это даунтайм на пару минут, конечно, пока миграция работает. Облако в этом отношении лучше.
                                        Ответить
                                      • В облаке воще ничо делать не надо: был один фронт, стало 22, потом опять один.

                                        А тут надо ОС госить, добавлять проца, и опять таки у мосштабирования "вверх" есть лимит, а у масштабирования в бок -- нету
                                        Ответить
                                        • В облаке воще ничо делать не надо: был один фронт, стало 2200, а потом ни одного. Потому что бабки закончились.

                                          fxd
                                          Ответить
                                • Магазин продавал софт, к счастью
                                  Ответить
                          • > все процессы и порты кончатся же
                            При переходе с 3к до 30к? Сомнительно, разве что приложение написано анскильными макаками (но тогда «AWS» тебе никак не поможет). Порты так точно не кончатся — они на сервере вообще кончиться не могут, если ты исходящие соединения не делаешь.
                            Ответить
                            • разумеется, делаешь: тебе тужно слать почту, ходить в другие сервисы итд.

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

                                > каждому клиенту придется ждать весьма долго, пока до него дойдет очередь
                                Купи ротоёбский сервер на 100500 процессоров — и не придётся.
                                Ответить
                                • >и «юникс-сокеты».
                                  я тоже, но питухи в них не могут.
                                  Посмотри туториалы. Питухи ходят через "TCP" даже в postgres на своей машине, даже в postfix ходит в OpenDKIM через TCP.

                                  >ротоёбский
                                  Это правда.
                                  Но Ротоеб за нее все время платит, а не тока во время распродаж
                                  Ответить
                                  • > Питухи ходят через "TCP" даже в postgres на своей машине
                                    Ну это проблемы питухов. «NGK» тоже по «TCP» к локальной базе подключается 🙁

                                    > Но Ротоеб за нее все время платит, а не тока во время распродаж
                                    Оптимизация Ротоёба!
                                    Ответить
                                    • > «NGK» тоже по «TCP» к локальной базе подключается

                                      Просрали все полимеры! У меня через юникс сокет было (вроде).
                                      Ответить
                                    • У меня всё через уникс сокеты, кроме postfix<->dkim, потому что придется либо smtpd вынимать из чрута (что несекурно) либо слать через эмуляцию sendmail (что медлеенно, и современный софт из коробки не умеет, нужно ставить доп пакеты)
                                      Ответить
                        • > Ну а с 40 на 400кк - это какая-то фантастика из рекламного буклета облакоёбов, имхо.
                          Подтверждаю, кстати. Если в магазин, который рассчитан на сорок посетителей в день, внезапно свалится четыреста тысяч — боттлнек будет далеко не в сайте.
                          Ответить
                          • Ну на самом деле в чём-то он прав.

                            Это не посетители в день и не реальные заказы, это просто бешеная толпа ботов, ждущая начала распродажи и нетерпеливо рефрешащая сайт, чтобы урвать себе что-то по скидке.

                            Т.е. это именно резкий всплеск на несколько минут, который ложит сервер.

                            З.Ы. На твиче одно время банили за F5, лол.
                            Ответить
                            • > бешеная толпа ботов, ждущая начала распродажи и нетерпеливо рефрешащая сайт
                              А, ну так это вообще решается грамотным кэшированием. Статику кэшировать вечно, динамику совать в какой-нибудь «memcache» или что там сейчас популярно с протуханием в минуту — и вуаля, миллионы хомяков могут хоть обжаться своими F5, «nginx» их спокойно обработает даже на днищемашине.
                              Ответить
                  • Где-то была охуительная статья про таких же нищуков, самостоятельно подписавшихся на то, в чем они не могли разобраться, и в один день их стартап наконец взлетел. И влетел, потому что они вышли за границы тогдашнего плана firebase с повышенной стоимостью, и им пришел счет на $25k, что ли.
                    Ответить
            • > лимит бюджета не умеет

              Именно поэтому я против автоматического масштабирования. Ну хоть какие-то лимиты на запросы в секунду (или что там оценивается в этих ваших облаках) можно выставить?
              Ответить
              • Rps обычно никто не считает
                Если ты покупаешь запровиженные ресурсы то имеешь фикс прайс за час или неделю или месяц(впрочем они тоже могут самоапгрейдиться)
                Если serverless то там обычно во всяких тугриках считают потому что подразумевается что скейлиться можно бесконечно

                Лимиты какие-то есть но везде по-разному а одной кнопки "ничо не делать если билл больше Х" нет
                Ответить
    • все логично

      чем ты анскильнее -- тем у тебя всё медленее и дороже

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

        Приходится платить или деньгами, или временем

        Плюс ещё облачная хуйня защищена от самых дебильных атак по дефолту
        Ответить
        • > защищена от самых дебильных атак по дефолту

          > влетел на десяток тысяч долларов
          > пришел счет на $25k
          > что обанкротило его стартап

          Какая защита дефолтом ))) Нет стартапа - нет атак.
          Ответить
      • Проблема не в скилле, а в моде и неумении задать вопрос "Зачем?! Зачем?!". Определённый скилл писать serverless, чтобы он не сильно отсасывал, тоже нужен, там нужна херня типа разогрева и т.д. У меня адекватные вроде в остальном коллеги пытались Erlang в serverless затащить, они аж AWS lambda environment зареверсили, чтобы его туда впилить, т.к. он не поддерживался из коробки. В итоге это решение всасывало сильнее обычного, т.к. BEAM VM только стартует пол-секунды, лол. Т.е. вм-ку, рассчитанную на долгоживущие, блядь, приложения, которые ты в онлайне патчишь, они впилили в систему, рассчитанную на максимально короткоживущие задачи по типу CGI с PHP. 70% решений в IT принимается по принципу "А что я как лох в прошлогоднем фреймворке ходить буду?"
        Ответить
        • А! Ещё я видел, как люди пытались кафку из лямды консьюмить. Если кто-то из вас знает, как там в Kafka протокол балансировки consumer group работает, и как именно она скейлится, наверно уже в стратосферу улетел на багорной тяге. С админами кафки у них произошёл крайне интересный диалог.
          Ответить
          • Эм, я сварщик не настоящий, мануал на помойке нашёл...

            Но неужели там весь топик залипает и пересчитывает кому раздать партишены когда консюмеры приходят и уходят?
            Ответить
            • Продюсеры и консьюмеры полностью независимы, и друг друга не блокируют. Продюсеры просто добавляют записи в один из партишнов топика (партишн это тупо распределённый append-only log), а консьюмеры читают из этого лога со своего оффсета. Проблема в том, что кол-во партишнов более-менее статично, и каждый член consumer group получает как максимум 1 партишн. Т.е. скейлиться на большее кол-во инстасов, чем кол-во партишнов, смысла в принципе нет. Плюс в ходе ребаланса группы кафка просит _всех_ консьюмеров во всей группе рестартовать. Теперь представь, ты запустил это в короткоживущем инстансе...
              Ответить
              • Т.е. да, одна consumer group залипает. Во второй версии протокола допилили частичный ребаланс, но от идиотов с AWS lambda и он не поможет, т.к. и лидер группы долго не выживет, лол.
                Ответить
                • Блин, мне эта "лямбда" всё больше и больше напоминает шаред хостинги на "PHP": та же привязка к событиям, та же ёбля с попытками запустить что-то долгоживущее...

                  > одна consumer group

                  Ну это не так фатально. Только их говнище и трешилось, по сути. Мне почему-то после беглого чтения казалось, что весь топик колом стоит во время ребаланса.
                  Ответить
                  • шаред хостинг и есть

                    дорго, медленно, зависишь от админов и для тупых анскилябров
                    Ответить
                  • > Блин, мне эта "лямбда" всё больше и больше напоминает шаред хостинги на "PHP"

                    Ну так. Я всегда говорил, что serverless ­— это миллениалы открыли shared hosting.

                    > Ну это не так фатально.

                    Выборы лидера группы и распределение ролей идёт через особый служебный топик в кафке, его засирать не очень рекомендуется.
                    Ответить
                    • Кстати, а как они этих "потребителей" спавнили? По "крону", чтобы бабло сэкономить? Родился - разгрёб задачи - сдох?
                      Ответить
                      • > Кстати, а как они этих "потребителей" спавнили?

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

                Хм, я правильно понимаю, что оффсет хранится либо где-то у самого потребителя либо в специальном топике для уже обработанных оффсетов?
                Ответить
                • Можно хранить всё в топике, тогда клиенты будут полностью stateless.
                  Ответить
                  • А кафка пригодна как основное хранилище? Или она больше для временных данных?
                    Ответить
                    • > А кафка пригодна как основное хранилище?

                      Скорее нет, чем да. В теории compacted topic очень похож на key-value storage, но использовать его для чего-то серьёзного — вряд ли хорошая идея.

                      > Или она больше для временных данных?

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

                          > More than 80% of all Fortune 100 companies trust, and use Kafka.
                          - все в мире знают пашу дурова и кафку
                          Ответить
                          • 0mq не хранит доставленные месседжи, не?

                            (или вообще никакие не хранит)
                            Ответить