jj converge: Jujutsu 0.45 сводит расходящиеся коммиты одной командой
В
▪️ Ломающее:
▪️ Ломающее:
▪️ Git HEAD теперь хранится отдельно для каждого worktree, репозитории мигрируют сами.
▪️ Обновление:
Полный список изменений и что проверить после обновления, разобрали на сайте.
В
jj, системе контроля версий поверх Git, у изменения постоянный change ID, и когда одно изменение оказывается переписано дважды по разным веткам истории операций, в логе появляются два коммита с одним ID. Раньше это разгребали руками через abandon, squash и rebase. В версии 0.45.0, вышедшей сегодня, появился jj converge: группирует ревизии по change ID, собирает из расходящихся одну новую, перебазирует на неё потомков и переносит закладки. Спрашивает только когда эвристики не справились: слить ли описания, каких родителей взять. Результат смотрят через jj op show -p, откатывают через jj undo.▪️ Ломающее:
jj config edit/set/unset --user правит первый загруженный конфиг без вопроса; нужный файл указывать через --file <PATH>.▪️ Ломающее:
jj git import в неколоцированных репозиториях не импортирует коммиты с detached HEAD.▪️ Git HEAD теперь хранится отдельно для каждого worktree, репозитории мигрируют сами.
▪️ Обновление:
cargo binstall --strategies crate-meta-data jj-cli или brew install jj.Полный список изменений и что проверить после обновления, разобрали на сайте.
❤2
ИИ-агент для админа прямо в терминале, с моделью на серверах Selectel
aish появился в SELECTOS, дистрибутиве Linux от Selectel. Это терминальный агент: описываете проблему словами, он сам собирает контекст с сервера, предлагает команды и выполняет их только после вашего согласия.
🔘 установка:
🔘 сценарии из документации: не стартует сервис, кончилось место, надо посмотреть логи или конфиг;
🔘 каждая команда показывается до выполнения, автономных действий нет;
🔘 модель развёрнута на серверах Selectel, контекст не уходит зарубежным провайдерам;
🔘 подключение других моделей обещано в будущих релизах.
Против Warp AI и ассистентов в облачных консолях главный аргумент юрисдикция данных, а не качество: что за модель внутри и сколько это будет стоить, Selectel не раскрыл. Работает только в SELECTOS, про Ubuntu и другие дистрибутивы ни слова. Что проверить перед запуском на боевом сервере, на сайте.
@prog_tools
aish появился в SELECTOS, дистрибутиве Linux от Selectel. Это терминальный агент: описываете проблему словами, он сам собирает контекст с сервера, предлагает команды и выполняет их только после вашего согласия.
sudo apt update, sudo apt install aish, запуск aish;Против Warp AI и ассистентов в облачных консолях главный аргумент юрисдикция данных, а не качество: что за модель внутри и сколько это будет стоить, Selectel не раскрыл. Работает только в SELECTOS, про Ubuntu и другие дистрибутивы ни слова. Что проверить перед запуском на боевом сервере, на сайте.
@prog_tools
Please open Telegram to view this post
VIEW IN TELEGRAM
❤6
Dawarich хранит историю ваших перемещений у вас на сервере и теперь тянет миллион точек
Это открытая self-hosted замена Google Timeline: Rails, PostgreSQL, Docker, импорт Google Takeout, трекинг через OwnTracks и мобильные приложения. В 1.14.1 точки, треки и маршруты отдаются картами-тайлами, как в OpenStreetMap: набор из 957 350 точек грузится меньше секунды, JSON ужался с 590 МБ до 150 КБ.
🔘 определение посещений переписано с нуля;
🔘 метаданные устройств переехали в таблицу
🔘 OwnTracks в HTTP-режиме показывает членов семьи, перелёты из AirTrail считаются отдельно;
🔘 для перетаскивания точек режим тайлов нужно выключить.
Против облака самого проекта: self-hosting бесплатен со всеми функциями, облачный тариф от 59,99 евро в год с лимитом истории в 12 месяцев. Против Google Timeline: данные у вас; отрисовка по-прежнему в браузере, сервер отдаёт только тайлы. Русского интерфейса нет. Подробнее на сайте.
@prog_tools
Это открытая self-hosted замена Google Timeline: Rails, PostgreSQL, Docker, импорт Google Takeout, трекинг через OwnTracks и мобильные приложения. В 1.14.1 точки, треки и маршруты отдаются картами-тайлами, как в OpenStreetMap: набор из 957 350 точек грузится меньше секунды, JSON ужался с 590 МБ до 150 КБ.
point_sources: перед обновлением бэкап базы;Против облака самого проекта: self-hosting бесплатен со всеми функциями, облачный тариф от 59,99 евро в год с лимитом истории в 12 месяцев. Против Google Timeline: данные у вас; отрисовка по-прежнему в браузере, сервер отдаёт только тайлы. Русского интерфейса нет. Подробнее на сайте.
@prog_tools
Please open Telegram to view this post
VIEW IN TELEGRAM
slotstream: локальный сервер для MoE-модели, которая не влезает в память вашего Mac
Инструмент на Swift запускает Qwen3.8-Flash-Next на 125 млрд параметров на Mac с 48 ГБ: веса лежат на SSD (105 ГБ), а в память подгружаются только нужные для текущего токена эксперты, через
🔘 постоянно в памяти 3,8 ГБ, процесс около 33 ГБ, генерация около 12 токенов в секунду на M5 Pro;
🔘 промпт 8000 токенов около 39 секунд, 32 000 около трёх минут, контекст до 32 768;
🔘 требования: Apple Silicon, macOS 14, около 110 ГБ на диске; MIT;
🔘 работают
Против Ollama и LM Studio: те дают модели, которые целиком помещаются в память, и быстрый prefill; slotstream даёт модель на класс больше ценой минут ожидания на длинном промпте. Linux и дискретных GPU нет и не планируется. Почему
@prog_tools
Инструмент на Swift запускает Qwen3.8-Flash-Next на 125 млрд параметров на Mac с 48 ГБ: веса лежат на SSD (105 ГБ), а в память подгружаются только нужные для текущего токена эксперты, через
pread в фиксированный пул слотов. Наружу торчит HTTP API, совместимый с Ollama и OpenAI.curl, Open WebUI и OpenAI SDK; в slotstream 0.2.0 Ollama CLI пока не подключался.Против Ollama и LM Studio: те дают модели, которые целиком помещаются в память, и быстрый prefill; slotstream даёт модель на класс больше ценой минут ожидания на длинном промпте. Linux и дискретных GPU нет и не планируется. Почему
mmap здесь не работает, на сайте.@prog_tools
Please open Telegram to view this post
VIEW IN TELEGRAM
🤣1
Помнишь бумажные анкеты, которые ходили по классу на переменах — «любимый цвет», «любимая песня», «твой лучший друг»? SpaceWeb, которому в этом году исполнилось 25, вместе с Типичным программистом пересобрали этот формат: вместо тетрадки — сайт, вместо заполненных анкет — вся история рунета с 2001 года.
Есть только появившийся биткоин, GTA 3, Diablo 2 и другие легендарные игры на рабочем столе. Между вопросами покажем, как развивались веб и компания. В конце — промокод на услуги SpaceWeb и результат: на что записаны твои воспоминания.
Есть только появившийся биткоин, GTA 3, Diablo 2 и другие легендарные игры на рабочем столе. Между вопросами покажем, как развивались веб и компания. В конце — промокод на услуги SpaceWeb и результат: на что записаны твои воспоминания.
🔥1
Как сделать свою CLI такой, чтобы агент не уходил за документацией в веб
Автор ведёт открытые утилиты aqua, pinact, tfcmt и ghalint и описывает проблему: про малоизвестный проект модель ничего не знает, уходит в веб-запрос, а тот ещё и возвращает пересказ вместо текста. На примере ghtkn, утилиты для восьмичасовых токенов GitHub App, показано, что с этим делать.
🔘 класть сообщения для агентов прямо в вывод
🔘 привести документацию в порядок и разложить по отдельным документам;
🔘 добавить подкоманды, которые перечисляют документы и печатают их содержимое;
🔘 поставить указатели на эту подкоманду в README,
#инструменты
Автор ведёт открытые утилиты aqua, pinact, tfcmt и ghalint и описывает проблему: про малоизвестный проект модель ничего не знает, уходит в веб-запрос, а тот ещё и возвращает пересказ вместо текста. На примере ghtkn, утилиты для восьмичасовых токенов GitHub App, показано, что с этим делать.
🔘 класть сообщения для агентов прямо в вывод
--help и в логи;🔘 привести документацию в порядок и разложить по отдельным документам;
🔘 добавить подкоманды, которые перечисляют документы и печатают их содержимое;
🔘 поставить указатели на эту подкоманду в README,
--help, --version и текстах ошибок.#инструменты
DEV Community
Developing AI-Friendly CLIs
I publish a variety of CLIs as OSS (aqua, pinact, tfcmt, ghalint, ghir, etc). These days AI handles...
👍2
duckboard открывает CSV и даёт писать по нему SQL прямо в терминале
Ритуал знакомый: новый файл открывается в Excel, чтобы понять, что внутри, потом пишется быстрый сниппет на pandas ради одного вопроса, и уже на середине выясняется, что в колонке мусор. Десять минут ушло на то, что должно было занять две. Автор собрал duckboard, чтобы этого не делать.
🔘 команда, файл, SQL: ни блокнота, ни импортов, ни настройки окружения;
🔘 плохие данные инструмент ловит сам, а не ждёт, пока вы на них наткнётесь.
#инструменты
Ритуал знакомый: новый файл открывается в Excel, чтобы понять, что внутри, потом пишется быстрый сниппет на pandas ради одного вопроса, и уже на середине выясняется, что в колонке мусор. Десять минут ушло на то, что должно было занять две. Автор собрал duckboard, чтобы этого не делать.
🔘 команда, файл, SQL: ни блокнота, ни импортов, ни настройки окружения;
🔘 плохие данные инструмент ловит сам, а не ждёт, пока вы на них наткнётесь.
#инструменты
DEV Community
I built a terminal SQL workspace for CSV, Parquet, PSV and JSON — and it catches bad data automatically
Every time I get a new data file, I do the same three things. Open it in Excel to get a feel for it....
Минимальный CI на голых git-хуках, без раннеров и YAML
У автора личный сервер с его репозиториями: новый заводится через
🔘 хук на стороне сервера ловит пуш и запускает проверку;
🔘 ни платформы, ни раннеров, ни конфигурации в YAML;
🔘 вся схема помещается в несколько строк.
Взрослый пайплайн это не заменит, но для пет-проекта или своего хостинга рабочий минимум.
#инструменты
У автора личный сервер с его репозиториями: новый заводится через
ssh server git init --bare, клонируется обычным git clone server:repo. Дальше выясняется, что для простого CI ничего больше и не нужно.🔘 хук на стороне сервера ловит пуш и запускает проверку;
🔘 ни платформы, ни раннеров, ни конфигурации в YAML;
🔘 вся схема помещается в несколько строк.
Взрослый пайплайн это не заменит, но для пет-проекта или своего хостинга рабочий минимум.
#инструменты
mccd.space
Minimal Git CI using hooks
Personal blog of Marc Coquand.
Из Open VSX убрали 77 расширений-двойников: девятнадцать уносили полный путь к вашей рабочей папке
Расширения загружали в маркетплейс с 26 июля по 1 августа 2026 года и сняли 3 августа. Все выдавали себя за легитимные инструменты разработчика. Домен для утечки у всех общий, код и поведение схожи.
🔘 58 штук лёгкие: уходит имя хоста, иногда имя рабочей папки и версия редактора;
🔘 остальные 19 это полноценная разведка;
🔘 у них утекает имя хоста и пользователь ОС, имя, версия, тип хоста и идентификатор машины редактора, платформа и архитектура, локаль и часовой пояс;
🔘 плюс имя открытой рабочей папки и полный путь к ней в файловой системе.
#инструменты
Расширения загружали в маркетплейс с 26 июля по 1 августа 2026 года и сняли 3 августа. Все выдавали себя за легитимные инструменты разработчика. Домен для утечки у всех общий, код и поведение схожи.
🔘 58 штук лёгкие: уходит имя хоста, иногда имя рабочей папки и версия редактора;
🔘 остальные 19 это полноценная разведка;
🔘 у них утекает имя хоста и пользователь ОС, имя, версия, тип хоста и идентификатор машины редактора, платформа и архитектура, локаль и часовой пояс;
🔘 плюс имя открытой рабочей папки и полный путь к ней в файловой системе.
#инструменты
🤯2
include-tidy следит, чтобы файл на C и C++ включал ровно те заголовки, что использует
Принцип include-what-you-use простой: файл напрямую включает каждый заголовок, из которого ссылается на символы, и ровно по одному разу. Лишние включения раздувают время сборки, недостающие ломают её при первой перестановке заголовков.
🔘 инструмент проверяет оба случая автоматически, вместо памяти разработчика;
🔘 это вторая часть рассказа автора, с деталями реализации поверх базовой идеи.
🔘 лишние включения раздувают время сборки, недостающие ломают её при перестановке заголовков.
#инструменты
Принцип include-what-you-use простой: файл напрямую включает каждый заголовок, из которого ссылается на символы, и ровно по одному разу. Лишние включения раздувают время сборки, недостающие ломают её при первой перестановке заголовков.
🔘 инструмент проверяет оба случая автоматически, вместо памяти разработчика;
🔘 это вторая часть рассказа автора, с деталями реализации поверх базовой идеи.
🔘 лишние включения раздувают время сборки, недостающие ломают её при перестановке заголовков.
#инструменты
DEV Community
include-tidy: A Tool to Enforce Include-What-You-Use, Part 2
Describes include-tidy, a tool to enforce the include-what-you-use principle in C and C++, and how much harder doing this for C++ is.
🤣1
Forwarded from Мобильная разработка
Media3 1.11 добавил слоты Player в Compose и предзагрузку коротких видео через PlayerPool
Media3 это библиотека, на которой работает подавляющее большинство топовых медиаприложений под Android. В 1.11 изменения затронули воспроизведение, редактирование и UI-компоненты сразу.
Для тех, кто на Compose, главное в UI-модулях: настраиваемые слоты
Помимо этого интеграцию с Cast обновили под SystemUI Output Switcher, добавили сетевое расширение на клиенте Ktor и утилиты муксинга для Ogg и WAV.
#android
Media3 это библиотека, на которой работает подавляющее большинство топовых медиаприложений под Android. В 1.11 изменения затронули воспроизведение, редактирование и UI-компоненты сразу.
Для тех, кто на Compose, главное в UI-модулях: настраиваемые слоты
Player с готовыми дефолтами, интерактивные жесты, наблюдатели состояния и предзагрузка коротких видео через PlayerPool. Последнее прямо про ленты в стиле Reels, где следующий ролик должен стартовать мгновенно.Помимо этого интеграцию с Cast обновили под SystemUI Output Switcher, добавили сетевое расширение на клиенте Ktor и утилиты муксинга для Ogg и WAV.
#android
Android Developers Blog
Media3 1.11 - What's new?
News and insights on the Android platform, developer tools, and events.
CleanSlate запускает агента для кода в IDE, терминале и через SDK, без привязки к вендору
Открытая платформа для агентов на локальной машине и в облаке. Агент понимает кодовую базу, вносит правки, выполняет команды, ходит в веб и проверяет собственную работу.
🔘 доступ через IDE, командную строку и SDK;
🔘 провайдер модели выбирается: платформа не завязана на одну экосистему;
🔘 дальше обещают долгоживущих облачных агентов, которые работают без включённой машины.
Проект ранний, и автор прямо просит честной обратной связи от тех, кто уже пользуется агентами.
#инструменты
Открытая платформа для агентов на локальной машине и в облаке. Агент понимает кодовую базу, вносит правки, выполняет команды, ходит в веб и проверяет собственную работу.
🔘 доступ через IDE, командную строку и SDK;
🔘 провайдер модели выбирается: платформа не завязана на одну экосистему;
🔘 дальше обещают долгоживущих облачных агентов, которые работают без включённой машины.
Проект ранний, и автор прямо просит честной обратной связи от тех, кто уже пользуется агентами.
#инструменты
DEV Community
I built CleanSlate, an open-source coding agent for the IDE, CLI, and SDK
CleanSlate is an open-source platform for running coding agents across your local machine and the...
Скрытая инструкция в issue на GitHub довела до доступа Editor во внутреннем проекте Google Cloud
Pillar Security показала цепочку целиком: в issue положили скрытые инструкции, а разбирал этот баг-репорт ИИ-агент через рабочий процесс Gemini CLI.
🔘 инъекция привела к выпуску учётных данных Workload Identity Federation;
🔘 одна из них позволила выдать себя за более привилегированную учётную запись;
🔘 итог — доступ уровня Editor к внутреннему проекту Google Cloud.
Вывод для тех, у кого агент разбирает входящие тикеты: текст из внешнего источника попадает в контекст наравне с вашими инструкциями, а права агента становятся правами автора этого текста.
#инструменты
Pillar Security показала цепочку целиком: в issue положили скрытые инструкции, а разбирал этот баг-репорт ИИ-агент через рабочий процесс Gemini CLI.
🔘 инъекция привела к выпуску учётных данных Workload Identity Federation;
🔘 одна из них позволила выдать себя за более привилегированную учётную запись;
🔘 итог — доступ уровня Editor к внутреннему проекту Google Cloud.
Вывод для тех, у кого агент разбирает входящие тикеты: текст из внешнего источника попадает в контекст наравне с вашими инструкциями, а права агента становятся правами автора этого текста.
#инструменты
DevOps.com
Cybersecurity Researchers Uncover Flaw in Google AI Coding Tool
Cybersecurity researchers from Pillar Security demonstrated how a prompt injection in a GitHub repository could be used to gain Editor-level access to an internal Google Cloud project. By filing a malicious "bug report" with hidden instructions, the researchers…
🤣1
Как свести path, query, заголовки и тело запроса в одну схему инструмента MCP
Операция API принимает вход сразу из нескольких мест, а инструмент MCP должен отдать клиенту одну понятную входную схему. Разбор проходит по каждому виду параметров.
🔘 параметры пути опознают запись;
🔘 параметры строки запроса фильтруют и разбивают на страницы;
🔘 заголовки несут метаданные и аутентификацию;
🔘 тело содержит структурированные данные для создания и обновления.
Полезно, если у вас уже есть REST и вы прикидываете, как отдать его агенту без потери смысла параметров.
#инструменты
Операция API принимает вход сразу из нескольких мест, а инструмент MCP должен отдать клиенту одну понятную входную схему. Разбор проходит по каждому виду параметров.
🔘 параметры пути опознают запись;
🔘 параметры строки запроса фильтруют и разбивают на страницы;
🔘 заголовки несут метаданные и аутентификацию;
🔘 тело содержит структурированные данные для создания и обновления.
Полезно, если у вас уже есть REST и вы прикидываете, как отдать его агенту без потери смысла параметров.
#инструменты
DEV Community
Mapping API Path, Query, Header, and Body Parameters to MCP Tool Schemas
An API operation can receive input from several places. Path parameters identify the record. Query...
Восемь дыр в семи консольных ИИ-агентах: репозиторий сам называет команду для запуска
Manifold Security раскрыла класс уязвимостей, где конфигурация Git внутри репозитория указывает команду, а агент её выполняет: от вашего пользователя, вне песочницы и без запроса подтверждения. Четыре из восьми на момент публикации не закрыты.
🔘 срабатывает, только если репозиторий приехал файлами с целой директорией
🔘 пофикшено в goose, Claude Code и Cursor; на 1 сентября Hermes Agent, Qwen Code, Grok Build и второй путь в Claude Code всё ещё выполняли команды из репозитория;
🔘 в Claude Code и Hermes нагрузка срабатывает до подтверждения доверия к папке, в Qwen Code до аутентификации, в Grok Build на первом нажатии клавиши;
🔘 OpenAI в тот же день выпустила три своих CVE на тот же класс в Codex.
#инструменты
Manifold Security раскрыла класс уязвимостей, где конфигурация Git внутри репозитория указывает команду, а агент её выполняет: от вашего пользователя, вне песочницы и без запроса подтверждения. Четыре из восьми на момент публикации не закрыты.
🔘 срабатывает, только если репозиторий приехал файлами с целой директорией
.git: архив, общий диск, папка синхронизации, флешка. Обычный clone не воспроизводит;🔘 пофикшено в goose, Claude Code и Cursor; на 1 сентября Hermes Agent, Qwen Code, Grok Build и второй путь в Claude Code всё ещё выполняли команды из репозитория;
🔘 в Claude Code и Hermes нагрузка срабатывает до подтверждения доверия к папке, в Qwen Code до аутентификации, в Grok Build на первом нажатии клавиши;
🔘 OpenAI в тот же день выпустила три своих CVE на тот же класс в Codex.
#инструменты
Dependabot умеет сам собирать десяток пул-реквестов в один: три строки в dependabot.yml
В GCToolkit от Microsoft на июль 2026 года 92 из 578 коммитов, каждый шестой, оказались бампами от Dependabot, причём 61 за последние двенадцать месяцев, иногда по нескольку в день. GitHub показывает, как проект превратил эту капель в месячный батч.
🔘 группировка обновлений по экосистемам вместо одного пул-реквеста на зависимость;
🔘 снижение частоты: ежедневный опрос меняется на еженедельный или месячный;
🔘 обновления безопасности при этом остаются быстрыми и идут отдельно от плановых.
Всё три правки лежат в
#инструменты
В GCToolkit от Microsoft на июль 2026 года 92 из 578 коммитов, каждый шестой, оказались бампами от Dependabot, причём 61 за последние двенадцать месяцев, иногда по нескольку в день. GitHub показывает, как проект превратил эту капель в месячный батч.
🔘 группировка обновлений по экосистемам вместо одного пул-реквеста на зависимость;
🔘 снижение частоты: ежедневный опрос меняется на еженедельный или месячный;
🔘 обновления безопасности при этом остаются быстрыми и идут отдельно от плановых.
Всё три правки лежат в
dependabot.yml и переносятся в свой репозиторий копированием.#инструменты
The GitHub Blog
Tame Dependabot: Group your updates, slow the cadence, keep security fast
Here's how grouping updates, slowing the cadence, and keeping security fixes fast cut the noise on a Microsoft open source project.
🤓1
Стековые пул-реквесты разбирают один гигантский диф от агента на ревьюабельные куски
Выбор знаком каждому: либо один огромный пул-реквест, ревью которого превращается в мучение, либо цепочка мелких, которую надо синхронизировать руками и распутывать конфликты при каждой правке снизу. Агенты выбор не убирают, а обостряют: по оценке Gartner к 2028 году они дадут 50% прироста производительности на каждом этапе разработки.
🔘 GitHub разбирает приём на конкретном примере: добавление поиска по товарам в помощника для магазина;
🔘 каждый пул-реквест в стеке остаётся маленьким и читаемым;
🔘 синхронизация нижних изменений с верхними перестаёт быть ручной работой.
#инструменты
Выбор знаком каждому: либо один огромный пул-реквест, ревью которого превращается в мучение, либо цепочка мелких, которую надо синхронизировать руками и распутывать конфликты при каждой правке снизу. Агенты выбор не убирают, а обостряют: по оценке Gartner к 2028 году они дадут 50% прироста производительности на каждом этапе разработки.
🔘 GitHub разбирает приём на конкретном примере: добавление поиска по товарам в помощника для магазина;
🔘 каждый пул-реквест в стеке остаётся маленьким и читаемым;
🔘 синхронизация нижних изменений с верхними перестаёт быть ручной работой.
#инструменты
The GitHub Blog
Turn one giant AI-generated pull request to a reviewable stack
Instead of one huge, un-reviewable pull request, teach coding agents to decompose work into a clean, ordered stack with GitHub stacked pull requests.
В архиве настоящий Notepad++ 8.8.3 и одна лишняя библиотека: так работает MATCHBOIL.V2
CERT-UA предупреждает о кампании, где вредонос притворяется плагином к Notepad++. Атрибуция ведёт к кластеру UAC-0099, активному с середины 2022 года и ранее эксплуатировавшему уязвимости в WinRAR.
🔘 письмо с картинкой, сокращённая ссылка, файлообменник, ZIP со скриптом VBScript под видом PDF;
🔘 запуск показывает настоящий PDF как отвлекающий манёвр и тихо тянет второй архив Evernote.zip;
🔘 внутри полная легитимная копия редактора версии 8.8.3 и вредоносная библиотека
Проверка по имени файла и наличию самого редактора тут не помогает: подменён именно плагин.
#инструменты
CERT-UA предупреждает о кампании, где вредонос притворяется плагином к Notepad++. Атрибуция ведёт к кластеру UAC-0099, активному с середины 2022 года и ранее эксплуатировавшему уязвимости в WinRAR.
🔘 письмо с картинкой, сокращённая ссылка, файлообменник, ZIP со скриптом VBScript под видом PDF;
🔘 запуск показывает настоящий PDF как отвлекающий манёвр и тихо тянет второй архив Evernote.zip;
🔘 внутри полная легитимная копия редактора версии 8.8.3 и вредоносная библиотека
NppExport.dll.Проверка по имени файла и наличию самого редактора тут не помогает: подменён именно плагин.
#инструменты
Forwarded from Zen of Python
Бэкап, украденный сегодня, расшифруют квантовой машиной через десять лет, и в Python от этого уже есть пакет
Зашифрованный архив можно скачать сейчас и спокойно подождать, пока появится машина, которая его вскроет: файлы на диске живут дольше, чем стойкость нынешних алгоритмов. На этот случай сделана библиотека Quipu: гибридное шифрование, где классическая схема X25519 и постквантовая ML-KEM-1024 работают вместе, так что контейнер откроется, только если падут обе сразу.
Питонисту она приезжает как
Заодно автор объясняет, почему из проекта исчезли слой C ABI и биндинги для Node и Go, которые были в первой версии.
Зашифрованный архив можно скачать сейчас и спокойно подождать, пока появится машина, которая его вскроет: файлы на диске живут дольше, чем стойкость нынешних алгоритмов. На этот случай сделана библиотека Quipu: гибридное шифрование, где классическая схема X25519 и постквантовая ML-KEM-1024 работают вместе, так что контейнер откроется, только если падут обе сразу.
Питонисту она приезжает как
pip install quipu-crypto, нативным колесом на PyO3; внутри Rust без сборщика мусора и без собственного unsafe. API короткий: encrypt_stream с decrypt_stream шифруют по паролю, generate_keypair с encode_to_recipient закрывают данные под конкретного получателя.Заодно автор объясняет, почему из проекта исчезли слой C ABI и биндинги для Node и Go, которые были в первой версии.
❤1✍1
Cloudflare открыла pvcli, инструмент, которым сама отлаживает Oblivious HTTP
Oblivious HTTP это протокол, где запрос проходит через реле и шлюз так, чтобы ни одна сторона не знала одновременно и отправителя, и содержимое. Отлаживать его тяжело: несколько шагов между четырьмя сторонами, бинарное кодирование HTTP и детали, размазанные по нескольким черновикам RFC. Cloudflare выложила под Apache-2.0 инструмент, свёрнутый из опыта эксплуатации на миллионах запросов в секунду.
🔘 полный запрос через реле, шлюз и origin помещается в одну команду с флагами
🔘 поддерживаются обычные HTTP-флаги: метод через
🔘 проект открыт для контрибьюций.
#инструменты
Oblivious HTTP это протокол, где запрос проходит через реле и шлюз так, чтобы ни одна сторона не знала одновременно и отправителя, и содержимое. Отлаживать его тяжело: несколько шагов между четырьмя сторонами, бинарное кодирование HTTP и детали, размазанные по нескольким черновикам RFC. Cloudflare выложила под Apache-2.0 инструмент, свёрнутый из опыта эксплуатации на миллионах запросов в секунду.
🔘 полный запрос через реле, шлюз и origin помещается в одну команду с флагами
--ohttp, --first-hop и --proxy;🔘 поддерживаются обычные HTTP-флаги: метод через
-X, заголовки, тело;🔘 проект открыт для контрибьюций.
#инструменты
Cloudflare Blog
We’re open sourcing our privacy proxy CLI
pvcli is a curl-like tool designed to simplify the testing of complex privacy protocols like OHTTP.
❤2
GitFarm: Git-операции по сети вместо клона монорепозитория
GitFarm — внутренний сервис Uber, который выполняет команды Git за другие сервисы: не система контроля версий, а централизованный Git-клиент. Клиент не держит копию репозитория, а шлёт запрос по gRPC, и команда отрабатывает в одноразовой песочнице на готовом чекауте.
Зачем: автоматика Uber дёргает Git миллионы раз в сутки, и раньше каждому сервису был нужен полный чекаут. Клон Go-монорепозитория занимает 15 минут, шесть ядер, 32 ГБ памяти и больше 40 ГБ диска. GitFarm отдаёт чекаут меньше чем за 500 мс, а расход ресурсов на стороне клиентов упал более чем на 80%.
Наружу GitFarm не выложен, но схема понятна: bare-клоны, которые сервис держит в синхроне с апстримом, плюс пулы прогретых чекаутов и песочниц. Если ваши CI-джобы стартуют с полного клона большого репозитория, повторить можно и у себя. Разбор в InfoQ.
#инструменты
GitFarm — внутренний сервис Uber, который выполняет команды Git за другие сервисы: не система контроля версий, а централизованный Git-клиент. Клиент не держит копию репозитория, а шлёт запрос по gRPC, и команда отрабатывает в одноразовой песочнице на готовом чекауте.
Зачем: автоматика Uber дёргает Git миллионы раз в сутки, и раньше каждому сервису был нужен полный чекаут. Клон Go-монорепозитория занимает 15 минут, шесть ядер, 32 ГБ памяти и больше 40 ГБ диска. GitFarm отдаёт чекаут меньше чем за 500 мс, а расход ресурсов на стороне клиентов упал более чем на 80%.
Наружу GitFarm не выложен, но схема понятна: bare-клоны, которые сервис держит в синхроне с апстримом, плюс пулы прогретых чекаутов и песочниц. Если ваши CI-джобы стартуют с полного клона большого репозитория, повторить можно и у себя. Разбор в InfoQ.
#инструменты