Защитный парсер тоже читает опасный файл
Медиафайл ещё не открыли, а защитный парсер уже разбирает его содержимое. Чтобы проверить файл до системной библиотеки, ему самому приходится читать недоверенные данные. После Stagefright в 2015 году WhatsApp добавил в библиотеку wamedia проверку структуры MP4. Исправить уязвимость в самой ОС команда не могла, зато могла отсеять опасный файл до системной библиотеки.
В январском разборе миграции на Rust WhatsApp описывает, как проверяли совместимость: новую реализацию делали параллельно C++, затем кормили обе одинаковыми входами через differential fuzzing и сравнивали поведение. Плюс обычные unit- и интеграционные тесты.
Rust здесь нужен, чтобы снизить риск ошибок памяти в самом защитном парсере. Проверка формата при этом не остановит все файловые атаки.
Медиафайл ещё не открыли, а защитный парсер уже разбирает его содержимое. Чтобы проверить файл до системной библиотеки, ему самому приходится читать недоверенные данные. После Stagefright в 2015 году WhatsApp добавил в библиотеку wamedia проверку структуры MP4. Исправить уязвимость в самой ОС команда не могла, зато могла отсеять опасный файл до системной библиотеки.
В январском разборе миграции на Rust WhatsApp описывает, как проверяли совместимость: новую реализацию делали параллельно C++, затем кормили обе одинаковыми входами через differential fuzzing и сравнивали поведение. Плюс обычные unit- и интеграционные тесты.
Rust здесь нужен, чтобы снизить риск ошибок памяти в самом защитном парсере. Проверка формата при этом не остановит все файловые атаки.
☃7🔥6❤5👌2👀2🙊2🎉1🌭1🍌1🤝1🗿1
Redis жив, соединение есть, ответа нет
Выключить Redis в тесте полезно. Но неприятность бывает хитрее: соединение установилось и просто висит. Обработчик ошибки подключения при этом может и не сработать.
Toxiproxy от Shopify ставят между приложением и зависимостью. Это TCP-прокси, условия в котором тест меняет через HTTP API. Можно задержать ответ, ограничить полосу или перестать передавать данные. При timeout = 0 данные не передаются, а соединение остаётся открытым до снятия ограничения.
В Rails-примере проекта unit-тест проверяет, что при недоступном Redis метод tags возвращает пустой массив вместо исключения. Для проверки всей страницы авторы отдельно предлагают интеграционный тест.
Задержка направленная. По умолчанию она действует от сервера к клиенту, для обратного направления нужна отдельная настройка.
Выключить Redis в тесте полезно. Но неприятность бывает хитрее: соединение установилось и просто висит. Обработчик ошибки подключения при этом может и не сработать.
Toxiproxy от Shopify ставят между приложением и зависимостью. Это TCP-прокси, условия в котором тест меняет через HTTP API. Можно задержать ответ, ограничить полосу или перестать передавать данные. При timeout = 0 данные не передаются, а соединение остаётся открытым до снятия ограничения.
В Rails-примере проекта unit-тест проверяет, что при недоступном Redis метод tags возвращает пустой массив вместо исключения. Для проверки всей страницы авторы отдельно предлагают интеграционный тест.
Задержка направленная. По умолчанию она действует от сервера к клиенту, для обратного направления нужна отдельная настройка.
❤8👍8🎉5👏4🕊2🎃2🤩1🏆1👨💻1🦄1👾1
Указатель нельзя просто записать на диск
При сортировке память заканчивается, и часть данных уезжает на диск. После загрузки блок может оказаться по другому адресу, а указатели внутри всё ещё ведут на старое место.
В разборе внешней сортировки DuckDB 2021 года показано, как это обходят. Строки переменной длины живут в отдельном блоке, string heap. Перед выгрузкой 8-байтовый указатель заменяют смещением внутри блока. Когда данные понадобятся снова, адрес восстанавливают.
Особенно удобно, что смещения строковых значений относительно начала своей строки в heap не меняются при её переносе. Можно переставлять данные во время сортировки, не чиня каждый внутренний адрес заново.
Выгрузка требует места на диске и дополнительных чтений и записей. При этом для сортировки за пределами RAM не нужно совершенно другое представление строк. Выгрузкой блоков в описанной реализации занимается buffer manager.
При сортировке память заканчивается, и часть данных уезжает на диск. После загрузки блок может оказаться по другому адресу, а указатели внутри всё ещё ведут на старое место.
В разборе внешней сортировки DuckDB 2021 года показано, как это обходят. Строки переменной длины живут в отдельном блоке, string heap. Перед выгрузкой 8-байтовый указатель заменяют смещением внутри блока. Когда данные понадобятся снова, адрес восстанавливают.
Особенно удобно, что смещения строковых значений относительно начала своей строки в heap не меняются при её переносе. Можно переставлять данные во время сортировки, не чиня каждый внутренний адрес заново.
Выгрузка требует места на диске и дополнительных чтений и записей. При этом для сортировки за пределами RAM не нужно совершенно другое представление строк. Выгрузкой блоков в описанной реализации занимается buffer manager.
👍8❤7🤯6☃3🎉3👻3✍2🤨2💊2🌚1🗿1
Чем заменить Oracle и MS SQL Server? Даже если переезда пока нет в планах, стоит иметь в виду альтернативы.
На Tproger разобрали четыре российские СУБД и сравнили их по понятным параметрам: для каких задач подходят, насколько совместимы с PL/SQL и T-SQL, чем переносить данные, что придётся дорабатывать вручную, есть ли сертификат ФСТЭК и бесплатные версии, сколько стоят.
Одна из них исполняет T-SQL и PL/SQL напрямую, а SSMS и DBeaver видят её как обычный MS SQL Server.
Обзор поможет понять, какой вариант может вам больше подойти.
На Tproger разобрали четыре российские СУБД и сравнили их по понятным параметрам: для каких задач подходят, насколько совместимы с PL/SQL и T-SQL, чем переносить данные, что придётся дорабатывать вручную, есть ли сертификат ФСТЭК и бесплатные версии, сколько стоят.
Одна из них исполняет T-SQL и PL/SQL напрямую, а SSMS и DBeaver видят её как обычный MS SQL Server.
Обзор поможет понять, какой вариант может вам больше подойти.
👍6👏5🆒5💊4👎2🎉2😐2☃1😁1🤩1🍌1
Форматтер поработал, а что поменялось по делу?
Выражение осталось тем же, но вокруг появилась обёртка, а строки разъехались. Обычный diff честно показывает удалённые и добавленные строки. Читателю ещё предстоит мысленно собрать из них изменение.
Difftastic разбирает код через tree-sitter и сопоставляет синтаксис. Поэтому может показать новую обёртку, сохранив связь с прежним выражением внутри. Перенос строки тоже не обязан выглядеть как замена всего блока. Номера строк при этом настоящие: до изменения и после него.
Сходство синтаксиса ещё не доказывает, что поведение программы осталось прежним, и не гарантирует безопасный рефакторинг.
В скрипте стоит учесть код завершения: по умолчанию 0 не означает «изменений нет». Чтобы синтаксические изменения давали 1, нужен флаг
Выражение осталось тем же, но вокруг появилась обёртка, а строки разъехались. Обычный diff честно показывает удалённые и добавленные строки. Читателю ещё предстоит мысленно собрать из них изменение.
Difftastic разбирает код через tree-sitter и сопоставляет синтаксис. Поэтому может показать новую обёртку, сохранив связь с прежним выражением внутри. Перенос строки тоже не обязан выглядеть как замена всего блока. Номера строк при этом настоящие: до изменения и после него.
Сходство синтаксиса ещё не доказывает, что поведение программы осталось прежним, и не гарантирует безопасный рефакторинг.
В скрипте стоит учесть код завершения: по умолчанию 0 не означает «изменений нет». Чтобы синтаксические изменения давали 1, нужен флаг
--exit-code.🔥9👍4🤔4🏆2🍾2👨💻2🙈2👎1😁1🤪1🆒1
Симулятор, который портит жизнь настоящей базе
Диск тормозит, сеть теряет пакеты, процесс падает. По отдельности такие тесты ещё можно расписать руками. Дальше начинаются сочетания: что, если всё случилось в неудобном порядке?
В TigerBeetle для этого есть симулятор VOPR. В его среде работает целый кластер с настоящим кодом базы. Симулятор подбрасывает сетевые, дисковые и процессные сбои. Так можно искать и ошибку алгоритма, и баг в его реализации. Проверяется тот самый код, которому потом предстоит работать с данными.
Авторы в том же документе отдельно проговаривают: абсолютной долговечности нет. Пострадать могут все копии. И симулятор исследует только те отказы, которые в него заложили.
Диск тормозит, сеть теряет пакеты, процесс падает. По отдельности такие тесты ещё можно расписать руками. Дальше начинаются сочетания: что, если всё случилось в неудобном порядке?
В TigerBeetle для этого есть симулятор VOPR. В его среде работает целый кластер с настоящим кодом базы. Симулятор подбрасывает сетевые, дисковые и процессные сбои. Так можно искать и ошибку алгоритма, и баг в его реализации. Проверяется тот самый код, которому потом предстоит работать с данными.
Авторы в том же документе отдельно проговаривают: абсолютной долговечности нет. Пострадать могут все копии. И симулятор исследует только те отказы, которые в него заложили.
❤12🎉6🔥5🤔5👍4👌2⚡1🍾1😴1😘1🙊1
Контейнеру подставили другое ядро
Приложение делает системный вызов и ожидает ответа Linux. В gVisor первым его встречает Sentry — ядро приложения в пользовательском пространстве, написанное на Go.
Оно обслуживает вызов само, а не просто пересылает каждый запрос ядру хоста. Для собственной работы Sentry всё равно нужны системные вызовы хоста, но их набор ограничен. Доступ к внешней файловой системе вынесен в отдельный процесс Gofer. В документации gVisor разобрана эта граница доверия.
В контейнерные инструменты всё это встраивается через OCI-рантайм
У такого слоя есть цена: поддержаны не все интерфейсы, а нагрузка с частыми системными вызовами может заметно замедлиться.
Приложение делает системный вызов и ожидает ответа Linux. В gVisor первым его встречает Sentry — ядро приложения в пользовательском пространстве, написанное на Go.
Оно обслуживает вызов само, а не просто пересылает каждый запрос ядру хоста. Для собственной работы Sentry всё равно нужны системные вызовы хоста, но их набор ограничен. Доступ к внешней файловой системе вынесен в отдельный процесс Gofer. В документации gVisor разобрана эта граница доверия.
В контейнерные инструменты всё это встраивается через OCI-рантайм
runsc. Меняется то, какой код отвечает на запросы программы, хотя для неё интерфейс стараются сохранить похожим на Linux.У такого слоя есть цена: поддержаны не все интерфейсы, а нагрузка с частыми системными вызовами может заметно замедлиться.
❤12👍5👏4🤔4🤨2☃1🤩1😴1👻1🗿1💊1
Чтобы двигать образец, микроскоп сгибает пластик
С 3D-печатной механикой есть проблема: соединение должно двигаться плавно, без люфта и заеданий. А принтер не обязан выдавать идеальные поверхности.
У открытого микроскопа OpenFlexure столик двигается за счёт гибких элементов. Тонкие части пластика деформируются и дают нужное движение. Большая часть механизма печатается одной деталью, то есть собирать точность из множества отдельных шарниров не приходится.
Проект заявляет шаги заметно меньше 100 нм с небольшими шаговыми моторами. Это данные авторов. Любопытен сам подход: использовать упругость материала там, где обычно борются с трением в соединении. Оптику можно поставить от веб-камеры или взять лабораторный объектив с резьбой RMS. На фото проекта показан v7.0.0-alpha1.
С 3D-печатной механикой есть проблема: соединение должно двигаться плавно, без люфта и заеданий. А принтер не обязан выдавать идеальные поверхности.
У открытого микроскопа OpenFlexure столик двигается за счёт гибких элементов. Тонкие части пластика деформируются и дают нужное движение. Большая часть механизма печатается одной деталью, то есть собирать точность из множества отдельных шарниров не приходится.
Проект заявляет шаги заметно меньше 100 нм с небольшими шаговыми моторами. Это данные авторов. Любопытен сам подход: использовать упругость материала там, где обычно борются с трением в соединении. Оптику можно поставить от веб-камеры или взять лабораторный объектив с резьбой RMS. На фото проекта показан v7.0.0-alpha1.
❤15👍6🔥6☃2🤝2⚡1🎉1🐳1😨1🆒1🤷1
QOI экономит ещё и на сложности кодека
Разработчик Доминик Шаблевски разбирался с упрощением видеокодека, а в итоге придумал lossless-формат для картинок — Quite OK Image Format. Занятно свернул.
QOI проходит RGB/RGBA-пиксели по порядку за один проход. Повторился предыдущий — запишем повтор. Цвет уже есть в индексе на 64 позиции — сошлёмся на него. Изменился ненамного — сохраним разницу. Не подошло ничего — положим полное значение.
Блоки выровнены по байтам, поэтому декодеру не приходится разбирать переходы между ними по отдельным битам. Весь формат строится на этом коротком наборе приёмов.
В статье 2021 года автор сделал ставку на скорость и простоту реализации. QOI не гарантирует файл меньше PNG на любой картинке, зато восстанавливает исходные пиксели без потерь.
Разработчик Доминик Шаблевски разбирался с упрощением видеокодека, а в итоге придумал lossless-формат для картинок — Quite OK Image Format. Занятно свернул.
QOI проходит RGB/RGBA-пиксели по порядку за один проход. Повторился предыдущий — запишем повтор. Цвет уже есть в индексе на 64 позиции — сошлёмся на него. Изменился ненамного — сохраним разницу. Не подошло ничего — положим полное значение.
Блоки выровнены по байтам, поэтому декодеру не приходится разбирать переходы между ними по отдельным битам. Весь формат строится на этом коротком наборе приёмов.
В статье 2021 года автор сделал ставку на скорость и простоту реализации. QOI не гарантирует файл меньше PNG на любой картинке, зато восстанавливает исходные пиксели без потерь.
🤔7🏆7👏5👍4🎉4👌3👎2🔥2🤣2🆒2🤗1
Для восстановления файла не обязательно держать его копию
Backblaze в разборе Reed–Solomon 2015 года описала схему 17+3. Файл делят на 17 равных фрагментов данных и вычисляют ещё три фрагмента избыточности. Всего 20, а для восстановления достаточно любых 17.
Здесь нет двадцати полных копий. Дополнительные фрагменты получаются из исходных через кодирование. Когда часть потерялась, оставшиеся дают достаточно информации, чтобы вычислить пропавшее.
Речь об известных потерях или фрагментах, которые уже признали испорченными. Поиск и исправление произвольных неизвестных битовых ошибок — отдельная задача.
В статье это разбирают на меньшем примере 4+2: вычёркивают строки матрицы для двух потерянных фрагментов, находят обратную матрицу и с её помощью восстанавливают исходные данные.
Backblaze в разборе Reed–Solomon 2015 года описала схему 17+3. Файл делят на 17 равных фрагментов данных и вычисляют ещё три фрагмента избыточности. Всего 20, а для восстановления достаточно любых 17.
Здесь нет двадцати полных копий. Дополнительные фрагменты получаются из исходных через кодирование. Когда часть потерялась, оставшиеся дают достаточно информации, чтобы вычислить пропавшее.
Речь об известных потерях или фрагментах, которые уже признали испорченными. Поиск и исправление произвольных неизвестных битовых ошибок — отдельная задача.
В статье это разбирают на меньшем примере 4+2: вычёркивают строки матрицы для двух потерянных фрагментов, находят обратную матрицу и с её помощью восстанавливают исходные данные.
👍11❤6🤔5😇3👏2💋2🙈2🤝2👾2👨💻1👀1
Изменения в бэкапе есть, нужной точки восстановления уже нет
Litestream может сохранить изменение, но со временем потерять возможность восстановить базу ровно до него.
В описании v0.5 страницы SQLite WAL собираются в файлы LTX. Один такой пакет может содержать несколько транзакций SQLite. Его TXID — идентификатор пакета, а не каждой прикладной транзакции.
При восстановлении берут подходящий snapshot и применяют целые LTX по порядку. Половину файла применить нельзя. После слияния пакетов и удаления старых мелких файлов часть прежних границ исчезает. Данные внутри большого файла остаются, а остановиться посередине уже не выйдет.
Сам по себе нужный
Litestream может сохранить изменение, но со временем потерять возможность восстановить базу ровно до него.
В описании v0.5 страницы SQLite WAL собираются в файлы LTX. Один такой пакет может содержать несколько транзакций SQLite. Его TXID — идентификатор пакета, а не каждой прикладной транзакции.
При восстановлении берут подходящий snapshot и применяют целые LTX по порядку. Половину файла применить нельзя. После слияния пакетов и удаления старых мелких файлов часть прежних границ исчезает. Данные внутри большого файла остаются, а остановиться посередине уже не выйдет.
Сам по себе нужный
max_txid не подтверждает возможность восстановления: нужны snapshot и непрерывная цепочка LTX до него. И репликация асинхронная: последние изменения могут ещё не доехать.❤9👍8🔥4👏4🤩2👾2🤷♀1😁1🌭1💋1🤪1
Трассу можно расспрашивать через SQL
Записать побольше событий — ещё не значит понять, почему программа тормозит. Формат трассы рассчитан на быструю запись с небольшими накладными расходами. Для анализа эти данные ещё нужно разобрать и связать.
В Perfetto этим занимается Trace Processor. Он читает трассы в форматах Perfetto, ftrace и Chrome JSON, структурирует события и даёт запрашивать их через PerfettoSQL. Найденную проверку можно повторять на других трассах, не разыскивая события на временной шкале вручную.
Документация предлагает начать с интерактивного исследования, а затем автоматизировать запросы через Python или C++. Когда понятно, что искать, Trace Summarization позволяет задать стабильный структурированный результат для мониторинга производительности и поиска регрессий. Выбор проверки и вывод о причине торможения остаются за человеком.
Записать побольше событий — ещё не значит понять, почему программа тормозит. Формат трассы рассчитан на быструю запись с небольшими накладными расходами. Для анализа эти данные ещё нужно разобрать и связать.
В Perfetto этим занимается Trace Processor. Он читает трассы в форматах Perfetto, ftrace и Chrome JSON, структурирует события и даёт запрашивать их через PerfettoSQL. Найденную проверку можно повторять на других трассах, не разыскивая события на временной шкале вручную.
Документация предлагает начать с интерактивного исследования, а затем автоматизировать запросы через Python или C++. Когда понятно, что искать, Trace Summarization позволяет задать стабильный структурированный результат для мониторинга производительности и поиска регрессий. Выбор проверки и вывод о причине торможения остаются за человеком.
🎉7❤6👍5👎3🔥3🤷♂1🤔1🍌1🙉1
Маленькая модель пишет черновик для большой
Маленькая модель может накидать несколько токенов, а большая — проверить весь блок одним проходом.
В разборе Hugging Face 2023 года разобран случай с greedy-декодированием. Пока варианты совпадают с выбором большой модели, префикс принимается. На первом расхождении берут токен большой модели, а оставшийся черновой хвост отбрасывают: он продолжал последовательность с другим токеном.
Так можно сэкономить часть дорогих проходов, не меняя greedy-выбор целевой модели. Но помощник тоже тратит время. Если часто ошибается или сам слишком тяжёлый, суммарная задержка вырастет.
Ускорение на конкретном GPU нужно измерять. При случайном семплировании отдельно нужно разбирать распределение вероятностей: переносить эту схему без изменений нельзя.
Маленькая модель может накидать несколько токенов, а большая — проверить весь блок одним проходом.
В разборе Hugging Face 2023 года разобран случай с greedy-декодированием. Пока варианты совпадают с выбором большой модели, префикс принимается. На первом расхождении берут токен большой модели, а оставшийся черновой хвост отбрасывают: он продолжал последовательность с другим токеном.
Так можно сэкономить часть дорогих проходов, не меняя greedy-выбор целевой модели. Но помощник тоже тратит время. Если часто ошибается или сам слишком тяжёлый, суммарная задержка вырастет.
Ускорение на конкретном GPU нужно измерять. При случайном семплировании отдельно нужно разбирать распределение вероятностей: переносить эту схему без изменений нельзя.
👏5🔥4🎉3❤2👍2⚡1🤯1😭1
Спокойное море героя не воспитает
Одиссей хотел услышать пение сирен и услышал. Но сначала велел команде привязать его к мачте, чтобы не свернуть с курса. Любое большое внедрение устроено похоже: голосов вокруг много, и каждый хочет чего-то своего.
На ИТ-Одиссее Евгений Зубков, начальник управления развития ИИ-решений и внешних партнёрств Альфа-Банка, расскажет, как провести масштабный ИТ-проект через бурю и не потерять из виду свою Итаку.
В докладе:
— как перевести компьютеры банка на новую ОС;
— как вернуть команды в офис в гибридном формате после пандемии;
— как внедрить новые метрики для ML-команды;
— почему любые изменения встречают сопротивление и как услышать всех, но не сменить курс.
Онлайн, 18 ноября, 11:00–18:00 МСК
Регистрация
Одиссей хотел услышать пение сирен и услышал. Но сначала велел команде привязать его к мачте, чтобы не свернуть с курса. Любое большое внедрение устроено похоже: голосов вокруг много, и каждый хочет чего-то своего.
На ИТ-Одиссее Евгений Зубков, начальник управления развития ИИ-решений и внешних партнёрств Альфа-Банка, расскажет, как провести масштабный ИТ-проект через бурю и не потерять из виду свою Итаку.
В докладе:
— как перевести компьютеры банка на новую ОС;
— как вернуть команды в офис в гибридном формате после пандемии;
— как внедрить новые метрики для ML-команды;
— почему любые изменения встречают сопротивление и как услышать всех, но не сменить курс.
Онлайн, 18 ноября, 11:00–18:00 МСК
Регистрация
👍8🤔6❤3🔥3🤩1🙏1🕊1💋1👀1🙈1💅1
Где учиться на инженера, если хочется с первых курсов работать с реальным железом и связью? Рассказываем, какие вузы запустили программы вместе с индустрией. В МФТИ готовят разработчиков микропроцессоров и специалистов по беспроводным сетям, в МИЭТ — инженеров по RTL-проектированию и верификации на RISC-V, в ИТМО — экспертов по компиляторам, фаззингу и беспроводным технологиям. В СибГУТИ учат писать ПО для 4G и 5G, а в питерской Вышке — Verilog, Go и помехоустойчивое кодирование. Собрали магистратуры и бакалавриаты, где преподают практики, студенты получают стипендии и оплачиваемые стажировки.
3❤13😘4😁2🍓2🆒2⚡1😱1😢1🤩1😇1🤪1
GitHub заменит имя enterprise на slug в событиях аудита
12 ноября поле
Изменение касается событий
В анонсе GitHub советуют заранее принимать оба формата либо опираться на
12 ноября поле
business в событиях secret scanning начнёт содержать slug enterprise вместо отображаемого имени. Тип останется строкой, названия событий тоже прежние. То есть обработчик может успешно разобрать JSON и при этом перестать узнавать нужную организацию.Изменение касается событий
secret_scanning_alert.* и secret_scanning_push_protection.bypass. Если по ним строятся уведомления или правила в SIEM, стоит проверить именно сравнение значений, а не только схему.В анонсе GitHub советуют заранее принимать оба формата либо опираться на
business_id. Его значения не меняются.🤔6❤4🔥4🎅3🌚2🤷♀1❤🔥1⚡1😢1😍1🦄1
Управление GPU-кластерами можно попробовать без GPU
У NVIDIA есть NVKE — управляющий слой для Kubernetes-кластеров на серверах с GPU NVIDIA. Жизненным циклом кластеров можно управлять через API и
Для такого стенда нужны Linux или виртуалка, 6 CPU, 12 ГиБ свободной RAM, 100 ГиБ диска, Docker и виртуальный TPM.
NVKE пока в preview. Из провайдеров инфраструктуры подходит только NICo. После установки API по умолчанию работает по HTTP с выключенной аутентификацией. Защищённый доступ придётся настраивать отдельно. У управляющего слоя пока нет процедур обновления самого себя и backup/restore, поэтому авторы прямо не рекомендуют продакшен.
У NVIDIA есть NVKE — управляющий слой для Kubernetes-кластеров на серверах с GPU NVIDIA. Жизненным циклом кластеров можно управлять через API и
nvkectl. Познакомиться с устройством системы можно без видеокарты, на симулированных машинах.Для такого стенда нужны Linux или виртуалка, 6 CPU, 12 ГиБ свободной RAM, 100 ГиБ диска, Docker и виртуальный TPM.
NVKE пока в preview. Из провайдеров инфраструктуры подходит только NICo. После установки API по умолчанию работает по HTTP с выключенной аутентификацией. Защищённый доступ придётся настраивать отдельно. У управляющего слоя пока нет процедур обновления самого себя и backup/restore, поэтому авторы прямо не рекомендуют продакшен.
👍7🔥5✍2😱2🐳2🍾2🎄2🤷2👏1😢1😐1
Новый уровень ИТ-практик: Импульс Т1 снова в Москве 🚀
19 ноября столица примет ИТ-конференцию Импульс Т1. Мы создаём среду, где специалисты получают не просто полезную информацию, а рабочие инструменты, применимые в проектах уже на следующий день.
Импульс Т1 2026 — это:
Уникальный формат — учимся через действие: каждый участник собирает индивидуальный трек, объединяя доклады и практические тренажеры. Среди них⬇️
🔘 код-ретрит – оттачиваем инженерные практики, парное программирование и TDD;
🔘 зона арх-каты – разбираем архитектурные кейсы, ищем уязвимости и моделируем решения на интерактивной карте;
🔘 ресурсные игры – проверяем командные коммуникации и скорость принятия решений в условиях жестких ограничений;
🔘 стенд доступности – тестируем интерфейсы и сценарии с точки зрения инклюзивности и доступной среды.
Ваше участие — это возможность:
✔️ прокачать практические навыки на реальных задачах;
✔️ поделиться опытом и создать сильное профессиональное окружение вокруг себя;
✔️ забрать передовые практики раньше конкурентов.
📆 Дата: 19 ноября 2026 года.
📍 Место: г. Москва, ул. Волочаевская, д. 48, стр. 1, Дворец культуры завода «Серп и молот» (LOFT#8).
Покажите экспертизу на деле, осваивайте новейшие подходы и двигайте ИТ-индустрию вперёд! Регистрация по ссылке.
О рекламодателе
19 ноября столица примет ИТ-конференцию Импульс Т1. Мы создаём среду, где специалисты получают не просто полезную информацию, а рабочие инструменты, применимые в проектах уже на следующий день.
Импульс Т1 2026 — это:
🔹 5 направлений деловой программы;🔹 130+ экспертных спикеров;🔹 70+ прикладных активностей;🔹 2 000+ участников сообщества.
Уникальный формат — учимся через действие: каждый участник собирает индивидуальный трек, объединяя доклады и практические тренажеры. Среди них
Ваше участие — это возможность:
Покажите экспертизу на деле, осваивайте новейшие подходы и двигайте ИТ-индустрию вперёд! Регистрация по ссылке.
О рекламодателе
Please open Telegram to view this post
VIEW IN TELEGRAM
💊7🔥4🆒3💔2💋2😨2😎2☃1🙈1🙉1🙊1
Почему Python срочно обновил сразу пять веток
В Python 3.15.2, 3.14.10, 3.13.18, 3.12.16 и 3.11.18 добавили блокировку скомпрометированных ключей промежуточных CA eMudhra в
В том же срочном выпуске исправили обход
Для 3.15.2 и 3.14.10 выпустили бинарные установщики. Для трёх более старых веток вышли только исходники.
В Python 3.15.2, 3.14.10, 3.13.18, 3.12.16 и 3.11.18 добавили блокировку скомпрометированных ключей промежуточных CA eMudhra в
ssl. Это дополнительная защита на уровне интерпретатора. Она распространяется и на обычные операции pip, включая обновление самого pip, даже если установленная версия менеджера пакетов старая.В том же срочном выпуске исправили обход
tarfile.tar_filter через ссылки, заменяющие каталог назначения, и обработку cookies с отрицательной версией в http.cookiejar.Для 3.15.2 и 3.14.10 выпустили бинарные установщики. Для трёх более старых веток вышли только исходники.
⚡7🙊5😍4🎉3💅2😁1🐳1😭1👀1🙈1🤷1
Процессор не загружен, а сервер всё равно тормозит
Низкая загрузка CPU ещё не означает, что у сервера есть свободные ресурсы. Запросы могут ждать диск, память или сеть. Даже load average в Linux учитывает задачи в непрерываемом ожидании I/O, так что читать его как «занятость процессора» опасно.
У Брендана Грегга есть чек-лист USE для Linux. Он предлагает пройтись по каждому ресурсу с тремя вопросами: насколько он занят, есть ли очередь на его использование и случаются ли ошибки. Именно очередь помогает заметить, что ресурса уже не хватает, а не просто узнать процент его использования.
Это старый чек-лист, ориентированный прежде всего на физические Linux-машины. Конкретные утилиты и метрики нужно сверять со своей системой. Проверка всех ресурсов помогает не закончить диагностику на одном графике CPU.
Низкая загрузка CPU ещё не означает, что у сервера есть свободные ресурсы. Запросы могут ждать диск, память или сеть. Даже load average в Linux учитывает задачи в непрерываемом ожидании I/O, так что читать его как «занятость процессора» опасно.
У Брендана Грегга есть чек-лист USE для Linux. Он предлагает пройтись по каждому ресурсу с тремя вопросами: насколько он занят, есть ли очередь на его использование и случаются ли ошибки. Именно очередь помогает заметить, что ресурса уже не хватает, а не просто узнать процент его использования.
Это старый чек-лист, ориентированный прежде всего на физические Linux-машины. Конкретные утилиты и метрики нужно сверять со своей системой. Проверка всех ресурсов помогает не закончить диагностику на одном графике CPU.
👍7🎉2❤1🔥1👌1🌭1🙈1🤗1