Опять пересрались с HR в LinkedIn. HR сейчас деградировали как и все остальное и 99% стали синонимом спамера. Естественно, на этот спам в соцсетях ведутся полтора джуна и выхлоп почти нулевой.
А как было раньше? Помню HRы конкурента вычисляли нашу курилку и ходили туда с нашим персоналом. Учитывая, что курить нужно было почти с каждым, а HRов было мало, в среднем один HR выкуривал несколько пачек за рабочий день. Одного даже забрала скорая. Ещё их вычисляли и били. Тогда они ротировались.
В другой раз HR устроился к нам админом на RedHat и *BSD и успешно работал месяца три. HR'а хвалили, обещали премию. Но внезапно он пропал. С ним пропали два наших админа и главный джавист, который писал подключение к биллингам.
Мы злились, конкурент торжествовал.
А как было раньше? Помню HRы конкурента вычисляли нашу курилку и ходили туда с нашим персоналом. Учитывая, что курить нужно было почти с каждым, а HRов было мало, в среднем один HR выкуривал несколько пачек за рабочий день. Одного даже забрала скорая. Ещё их вычисляли и били. Тогда они ротировались.
В другой раз HR устроился к нам админом на RedHat и *BSD и успешно работал месяца три. HR'а хвалили, обещали премию. Но внезапно он пропал. С ним пропали два наших админа и главный джавист, который писал подключение к биллингам.
Мы злились, конкурент торжествовал.
Смотрю как сейчас младшее поколение учится в контру играть - какие-то йотубы смотрят, дискорд читают. Читы ищут.
Помню в 7 классе мы с Андрюхой пришли к Витьке, посмотреть первый раз на Денди (для зумеров - такой клон NES). Витька включил нам контру, бросил "А - прыгать, Б - стрелять, остальное разберетесь" и ушел за пивом.
К моменту когда он принес пиво, мы уже брали вторую базу. Причем Андрюха еще держал кабель ногой.
Чтоб картинка меньше фонила.
Помню в 7 классе мы с Андрюхой пришли к Витьке, посмотреть первый раз на Денди (для зумеров - такой клон NES). Витька включил нам контру, бросил "А - прыгать, Б - стрелять, остальное разберетесь" и ушел за пивом.
К моменту когда он принес пиво, мы уже брали вторую базу. Причем Андрюха еще держал кабель ногой.
Чтоб картинка меньше фонила.
"ИИ заменит программистов, а вот людям творческих профессий бояться нечего"
OFF Radio Kraków увольняет всех ведущих, теперь вместо них программы будут вести несколько голосовых моделей
OFF Radio Kraków увольняет всех ведущих, теперь вместо них программы будут вести несколько голосовых моделей
Текущее состояние PLCOpenXML.
PLCOpen были основаны еще в 1992 году, как организация открытых стандартов для PLC. Самый популярный - PLCOpenXML, формат, позволяющий мигрировать код между разными платформами автоматизации. Между прочим входит в IEC 61131-10. Честно говоря, никогда им не интересовался, но сейчас нужно выбрать какой-то формат для хранения Ladder Logic и решил посмотреть.
Ради эксперимента поигрался в TwinCAT 3.1.4026.10 (последний), попробовал сохранить XML, который он сгенерит для LD, а потом считать им же обратно.
Результат:
- Простой LD "как у дидов" - более-менее открывает
- Более новомодный, с edge detection - теряет edges полностью (в XML у всех элементов записывает edge="none").
- Современный, с функциональными блоками - не может прочитать обратно, говорит в XML ничего нет. Достаточно поставить один блок, чтобы перестал читаться полностью.
Примеры с сайта PLCOpen - ни TwinCAT, ни CodeSYS открывать не желают. Интересно, а как у Сименса и прочих? Похоже, очередной стандарт поддерживают "для галочки", как всегда.
PLCOpen были основаны еще в 1992 году, как организация открытых стандартов для PLC. Самый популярный - PLCOpenXML, формат, позволяющий мигрировать код между разными платформами автоматизации. Между прочим входит в IEC 61131-10. Честно говоря, никогда им не интересовался, но сейчас нужно выбрать какой-то формат для хранения Ladder Logic и решил посмотреть.
Ради эксперимента поигрался в TwinCAT 3.1.4026.10 (последний), попробовал сохранить XML, который он сгенерит для LD, а потом считать им же обратно.
Результат:
- Простой LD "как у дидов" - более-менее открывает
- Более новомодный, с edge detection - теряет edges полностью (в XML у всех элементов записывает edge="none").
- Современный, с функциональными блоками - не может прочитать обратно, говорит в XML ничего нет. Достаточно поставить один блок, чтобы перестал читаться полностью.
Примеры с сайта PLCOpen - ни TwinCAT, ни CodeSYS открывать не желают. Интересно, а как у Сименса и прочих? Похоже, очередной стандарт поддерживают "для галочки", как всегда.
Мужчина из Усти-над-Лабем (Чехия) поверил ИИ-аналазитору грибов и набрал зеленых мухоморов. Сейчас лежит в реанимации с отравлением.
Очередная атака киборгов-убийц.
Очередная атака киборгов-убийц.
Новый malware под Android "FakeApp.AFZ" мало того, что нужно установить самому - чтобы он украл деньги, нужно их ему послать тоже самостоятельно.
Малварь мотивирует это сделать, обещая прибыли от криптовалют. Многие верят.
Малварь мотивирует это сделать, обещая прибыли от криптовалют. Многие верят.
Делаю OAuth2 вход
- Google: works
- Github: works
- Microsoft: unknown error
unknown, Карл!
- Google: works
- Github: works
- Microsoft: unknown error
unknown, Карл!
Немец из города Квикборн получил за один раз 1700 заказных писем из налоговой. 27 октября в 2 часа ночи он обнаружил, что забыл пароль от личного кабинета и отправил заявку на восстановление.
Из-за перевода времени, скрипт отработал 1700 раз. Потому что в Германии ночью лучше спать.
Из-за перевода времени, скрипт отработал 1700 раз. Потому что в Германии ночью лучше спать.
В последнем BUS/RT у клиентов появился "странный" для pub/sub метод publish_for. Зачем нужно писать "приватные" сообщения в топики? Рассмотрим ситуацию.
Алиса имеет значение сенсора и публикует его в топик при изменениях или с некторым интервалом.
Боб хочет при запуске клиента получить значения сенсора как можно быстрее. Он высылает запрос и Алиса публикует значение специально для него, не заставляя других подписчиков процессить значение, которое у них уже есть.
Боб мог бы использовать RPC-вызов и получить значение сенсора в нем. Но в реальности существует несколько факторов:
- Бобу лень вызывать RPC. У него уже настроена логика процессинга данных из топиков и городить еще один велосипед не имеет смысла.
- Бобу лень разбираться с data races, в случае если pull некоторого старого значения и push нового придут примерно одновременно. В случае запроса на publish_for, Алиса может временно залочить изменения сенсора, пока Бобу не уйдет анонс по каналу и датарейса не возникнет.
Лень - двигатель прогресса. Как всегда.
Алиса имеет значение сенсора и публикует его в топик при изменениях или с некторым интервалом.
Боб хочет при запуске клиента получить значения сенсора как можно быстрее. Он высылает запрос и Алиса публикует значение специально для него, не заставляя других подписчиков процессить значение, которое у них уже есть.
Боб мог бы использовать RPC-вызов и получить значение сенсора в нем. Но в реальности существует несколько факторов:
- Бобу лень вызывать RPC. У него уже настроена логика процессинга данных из топиков и городить еще один велосипед не имеет смысла.
- Бобу лень разбираться с data races, в случае если pull некоторого старого значения и push нового придут примерно одновременно. В случае запроса на publish_for, Алиса может временно залочить изменения сенсора, пока Бобу не уйдет анонс по каналу и датарейса не возникнет.
Лень - двигатель прогресса. Как всегда.
Forwarded from Блог*
#prog #amazingopensource
ripgrep-all — ripgrep, but also search in PDFs, E-Books, Office documents, zip, tar.gz, etc.
Поддерживает добавление пользовательских адаптеров для поиска внутри файлов других типов.
ripgrep-all — ripgrep, but also search in PDFs, E-Books, Office documents, zip, tar.gz, etc.
Поддерживает добавление пользовательских адаптеров для поиска внутри файлов других типов.
GitHub
GitHub - phiresky/ripgrep-all: rga: ripgrep, but also search in PDFs, E-Books, Office documents, zip, tar.gz, etc.
rga: ripgrep, but also search in PDFs, E-Books, Office documents, zip, tar.gz, etc. - phiresky/ripgrep-all
На данный момент WebTransport (вещь over HTTP/3) выглядит самым перспективным протоколом для новых проектов. Уже довольно неплохо гоняется в продакшне.
Из плюсов:
- У вас есть UDP. Как только клиент и сервер создают соединение, датаграммы могут гоняться в обе стороны, не важно что клиент сидит за тремя натами. Натопробивалка в комплекте.
- У вас есть потоки, которые внутри тоже UDP, но по API очень похожи на TCP. Кто в HTTP/2 игрался с потоками, тот в курсе, кто нет - можно разделять один TCP (в данном случае reliable UDP) сокет на несколько виртуальных. Основное отличие WT - потоки работают независимо, и если один остановился/оборвался - другие продолжают работу.
- У этого всего довольно минимальный overhead, если делать свое решение по любому пункту на коленке, скорее всего выйдет явно хуже.
- У вас сразу из коробки шифрование.
Из минусов:
- Шифрование принудительное. Микросервисы на локалхосте будут тоже шифроваться от админа и друг от друга.
- Пока что это - draft, со всеми вытекающими. в Chromium-based работает более-менее стабильно, в Firefox могут быть сюрпризы (вплоть до креша процесса)
- Оттуда же - под Rust-std оно работает вполне прекрасно. Под Rust-wasm - очень похоже на то, как выглядел embedded-hal или Tokio 5 лет назад - ад, пиздец и исключительно для энтузиастов. Под всякий bare-metal embed - просто не существует.
Из плюсов:
- У вас есть UDP. Как только клиент и сервер создают соединение, датаграммы могут гоняться в обе стороны, не важно что клиент сидит за тремя натами. Натопробивалка в комплекте.
- У вас есть потоки, которые внутри тоже UDP, но по API очень похожи на TCP. Кто в HTTP/2 игрался с потоками, тот в курсе, кто нет - можно разделять один TCP (в данном случае reliable UDP) сокет на несколько виртуальных. Основное отличие WT - потоки работают независимо, и если один остановился/оборвался - другие продолжают работу.
- У этого всего довольно минимальный overhead, если делать свое решение по любому пункту на коленке, скорее всего выйдет явно хуже.
- У вас сразу из коробки шифрование.
Из минусов:
- Шифрование принудительное. Микросервисы на локалхосте будут тоже шифроваться от админа и друг от друга.
- Пока что это - draft, со всеми вытекающими. в Chromium-based работает более-менее стабильно, в Firefox могут быть сюрпризы (вплоть до креша процесса)
- Оттуда же - под Rust-std оно работает вполне прекрасно. Под Rust-wasm - очень похоже на то, как выглядел embedded-hal или Tokio 5 лет назад - ад, пиздец и исключительно для энтузиастов. Под всякий bare-metal embed - просто не существует.
Криптография в Rust и кровавый ентерпрайз. Поскольку rustls - библа без сертификаций, люди годами мучались с openssl, а на винде дёргали системное криптоапи напрямую или через кривые прокладки.
К счастью, с февраля этого года rustls позволяет использовать амазоновское libcrypto как бекенд, а оно, в свою очередь, сертифицировано на FIPS-140-3.
В этом месяце начали новый проект уже с rustls а не openssl и я по этому поводу весьма счастлив. Из нюансов - на винде libcrypto в fips-режиме для сборки требует nasm.
К счастью, с февраля этого года rustls позволяет использовать амазоновское libcrypto как бекенд, а оно, в свою очередь, сертифицировано на FIPS-140-3.
В этом месяце начали новый проект уже с rustls а не openssl и я по этому поводу весьма счастлив. Из нюансов - на винде libcrypto в fips-режиме для сборки требует nasm.
Вчера вспомнил внезапно про Master of Orion (1993), решил сыграть партейку, в результате воевал до утра. Вот был же баланс нормальный в играх, и был интерес.
Кстати права на MOO прямо с первого выкупила внезапно Wargaming. А как вы играете в DOS-игры?
Кстати права на MOO прямо с первого выкупила внезапно Wargaming. А как вы играете в DOS-игры?
Anonymous Poll
28%
Dosbox
3%
Комп с DOS на bare-metal
3%
VMWare/VirtualBox/etc.
4%
Веб-эмулятор
63%
Дед, таблетки...
Ехал сегодня на убере, водила рассказал, что Трамп опять разрешит писать критические приложения на C++