Инструменты программиста
12.9K subscribers
1.67K photos
158 videos
4 files
2.07K links
Полезные инструменты для программистов — бесплатные и платные

Разместить рекламу: @tproger_sales_bot

Правила общения: https://tprg.ru/rules

Другие каналы: @tproger_channels

Регистрация в перечне РКН: https://tprg.ru/mX0S
Download Telegram
jj converge: Jujutsu 0.45 сводит расходящиеся коммиты одной командой

В 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. Это терминальный агент: описываете проблему словами, он сам собирает контекст с сервера, предлагает команды и выполняет их только после вашего согласия.

🔘 установка: sudo apt update, sudo apt install aish, запуск aish;
🔘 сценарии из документации: не стартует сервис, кончилось место, надо посмотреть логи или конфиг;
🔘 каждая команда показывается до выполнения, автономных действий нет;
🔘 модель развёрнута на серверах Selectel, контекст не уходит зарубежным провайдерам;
🔘 подключение других моделей обещано в будущих релизах.

Против 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 КБ.

🔘 определение посещений переписано с нуля;
🔘 метаданные устройств переехали в таблицу point_sources: перед обновлением бэкап базы;
🔘 OwnTracks в HTTP-режиме показывает членов семьи, перелёты из AirTrail считаются отдельно;
🔘 для перетаскивания точек режим тайлов нужно выключить.

Против облака самого проекта: 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 ГБ), а в память подгружаются только нужные для текущего токена эксперты, через pread в фиксированный пул слотов. Наружу торчит HTTP API, совместимый с Ollama и OpenAI.

🔘 постоянно в памяти 3,8 ГБ, процесс около 33 ГБ, генерация около 12 токенов в секунду на M5 Pro;
🔘 промпт 8000 токенов около 39 секунд, 32 000 около трёх минут, контекст до 32 768;
🔘 требования: Apple Silicon, macOS 14, около 110 ГБ на диске; MIT;
🔘 работают 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 и результат: на что записаны твои воспоминания.
🔥1
Как сделать свою CLI такой, чтобы агент не уходил за документацией в веб

Автор ведёт открытые утилиты aqua, pinact, tfcmt и ghalint и описывает проблему: про малоизвестный проект модель ничего не знает, уходит в веб-запрос, а тот ещё и возвращает пересказ вместо текста. На примере ghtkn, утилиты для восьмичасовых токенов GitHub App, показано, что с этим делать.

🔘 класть сообщения для агентов прямо в вывод --help и в логи;
🔘 привести документацию в порядок и разложить по отдельным документам;
🔘 добавить подкоманды, которые перечисляют документы и печатают их содержимое;
🔘 поставить указатели на эту подкоманду в README, --help, --version и текстах ошибок.

#инструменты
👍2
duckboard открывает CSV и даёт писать по нему SQL прямо в терминале

Ритуал знакомый: новый файл открывается в Excel, чтобы понять, что внутри, потом пишется быстрый сниппет на pandas ради одного вопроса, и уже на середине выясняется, что в колонке мусор. Десять минут ушло на то, что должно было занять две. Автор собрал duckboard, чтобы этого не делать.

🔘 команда, файл, SQL: ни блокнота, ни импортов, ни настройки окружения;
🔘 плохие данные инструмент ловит сам, а не ждёт, пока вы на них наткнётесь.

#инструменты
Минимальный CI на голых git-хуках, без раннеров и YAML

У автора личный сервер с его репозиториями: новый заводится через ssh server git init --bare, клонируется обычным git clone server:repo. Дальше выясняется, что для простого CI ничего больше и не нужно.

🔘 хук на стороне сервера ловит пуш и запускает проверку;
🔘 ни платформы, ни раннеров, ни конфигурации в YAML;
🔘 вся схема помещается в несколько строк.

Взрослый пайплайн это не заменит, но для пет-проекта или своего хостинга рабочий минимум.

#инструменты
Из Open VSX убрали 77 расширений-двойников: девятнадцать уносили полный путь к вашей рабочей папке

Расширения загружали в маркетплейс с 26 июля по 1 августа 2026 года и сняли 3 августа. Все выдавали себя за легитимные инструменты разработчика. Домен для утечки у всех общий, код и поведение схожи.

🔘 58 штук лёгкие: уходит имя хоста, иногда имя рабочей папки и версия редактора;
🔘 остальные 19 это полноценная разведка;
🔘 у них утекает имя хоста и пользователь ОС, имя, версия, тип хоста и идентификатор машины редактора, платформа и архитектура, локаль и часовой пояс;
🔘 плюс имя открытой рабочей папки и полный путь к ней в файловой системе.

#инструменты
🤯2
include-tidy следит, чтобы файл на C и C++ включал ровно те заголовки, что использует

Принцип include-what-you-use простой: файл напрямую включает каждый заголовок, из которого ссылается на символы, и ровно по одному разу. Лишние включения раздувают время сборки, недостающие ломают её при первой перестановке заголовков.

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

#инструменты
🤣1
Media3 1.11 добавил слоты Player в Compose и предзагрузку коротких видео через PlayerPool

Media3 это библиотека, на которой работает подавляющее большинство топовых медиаприложений под Android. В 1.11 изменения затронули воспроизведение, редактирование и UI-компоненты сразу.

Для тех, кто на Compose, главное в UI-модулях: настраиваемые слоты Player с готовыми дефолтами, интерактивные жесты, наблюдатели состояния и предзагрузка коротких видео через PlayerPool. Последнее прямо про ленты в стиле Reels, где следующий ролик должен стартовать мгновенно.

Помимо этого интеграцию с Cast обновили под SystemUI Output Switcher, добавили сетевое расширение на клиенте Ktor и утилиты муксинга для Ogg и WAV.

#android
CleanSlate запускает агента для кода в IDE, терминале и через SDK, без привязки к вендору

Открытая платформа для агентов на локальной машине и в облаке. Агент понимает кодовую базу, вносит правки, выполняет команды, ходит в веб и проверяет собственную работу.

🔘 доступ через IDE, командную строку и SDK;
🔘 провайдер модели выбирается: платформа не завязана на одну экосистему;
🔘 дальше обещают долгоживущих облачных агентов, которые работают без включённой машины.

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

#инструменты
Скрытая инструкция в issue на GitHub довела до доступа Editor во внутреннем проекте Google Cloud

Pillar Security показала цепочку целиком: в issue положили скрытые инструкции, а разбирал этот баг-репорт ИИ-агент через рабочий процесс Gemini CLI.

🔘 инъекция привела к выпуску учётных данных Workload Identity Federation;
🔘 одна из них позволила выдать себя за более привилегированную учётную запись;
🔘 итог — доступ уровня Editor к внутреннему проекту Google Cloud.

Вывод для тех, у кого агент разбирает входящие тикеты: текст из внешнего источника попадает в контекст наравне с вашими инструкциями, а права агента становятся правами автора этого текста.

#инструменты
🤣1
Как свести path, query, заголовки и тело запроса в одну схему инструмента MCP

Операция API принимает вход сразу из нескольких мест, а инструмент MCP должен отдать клиенту одну понятную входную схему. Разбор проходит по каждому виду параметров.

🔘 параметры пути опознают запись;
🔘 параметры строки запроса фильтруют и разбивают на страницы;
🔘 заголовки несут метаданные и аутентификацию;
🔘 тело содержит структурированные данные для создания и обновления.

Полезно, если у вас уже есть REST и вы прикидываете, как отдать его агенту без потери смысла параметров.

#инструменты
Восемь дыр в семи консольных ИИ-агентах: репозиторий сам называет команду для запуска

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 показывает, как проект превратил эту капель в месячный батч.

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

Всё три правки лежат в dependabot.yml и переносятся в свой репозиторий копированием.

#инструменты
🤓1
Стековые пул-реквесты разбирают один гигантский диф от агента на ревьюабельные куски

Выбор знаком каждому: либо один огромный пул-реквест, ревью которого превращается в мучение, либо цепочка мелких, которую надо синхронизировать руками и распутывать конфликты при каждой правке снизу. Агенты выбор не убирают, а обостряют: по оценке Gartner к 2028 году они дадут 50% прироста производительности на каждом этапе разработки.

🔘 GitHub разбирает приём на конкретном примере: добавление поиска по товарам в помощника для магазина;
🔘 каждый пул-реквест в стеке остаётся маленьким и читаемым;
🔘 синхронизация нижних изменений с верхними перестаёт быть ручной работой.

#инструменты
В архиве настоящий Notepad++ 8.8.3 и одна лишняя библиотека: так работает MATCHBOIL.V2

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 работают вместе, так что контейнер откроется, только если падут обе сразу.

Питонисту она приезжает как pip install quipu-crypto, нативным колесом на PyO3; внутри Rust без сборщика мусора и без собственного unsafe. API короткий: encrypt_stream с decrypt_stream шифруют по паролю, generate_keypair с encode_to_recipient закрывают данные под конкретного получателя.

Заодно автор объясняет, почему из проекта исчезли слой C ABI и биндинги для Node и Go, которые были в первой версии.
11
Cloudflare открыла pvcli, инструмент, которым сама отлаживает Oblivious HTTP

Oblivious HTTP это протокол, где запрос проходит через реле и шлюз так, чтобы ни одна сторона не знала одновременно и отправителя, и содержимое. Отлаживать его тяжело: несколько шагов между четырьмя сторонами, бинарное кодирование HTTP и детали, размазанные по нескольким черновикам RFC. Cloudflare выложила под Apache-2.0 инструмент, свёрнутый из опыта эксплуатации на миллионах запросов в секунду.

🔘 полный запрос через реле, шлюз и origin помещается в одну команду с флагами --ohttp, --first-hop и --proxy;
🔘 поддерживаются обычные HTTP-флаги: метод через -X, заголовки, тело;
🔘 проект открыт для контрибьюций.

#инструменты
2
GitFarm: Git-операции по сети вместо клона монорепозитория

GitFarm — внутренний сервис Uber, который выполняет команды Git за другие сервисы: не система контроля версий, а централизованный Git-клиент. Клиент не держит копию репозитория, а шлёт запрос по gRPC, и команда отрабатывает в одноразовой песочнице на готовом чекауте.

Зачем: автоматика Uber дёргает Git миллионы раз в сутки, и раньше каждому сервису был нужен полный чекаут. Клон Go-монорепозитория занимает 15 минут, шесть ядер, 32 ГБ памяти и больше 40 ГБ диска. GitFarm отдаёт чекаут меньше чем за 500 мс, а расход ресурсов на стороне клиентов упал более чем на 80%.

Наружу GitFarm не выложен, но схема понятна: bare-клоны, которые сервис держит в синхроне с апстримом, плюс пулы прогретых чекаутов и песочниц. Если ваши CI-джобы стартуют с полного клона большого репозитория, повторить можно и у себя. Разбор в InfoQ.

#инструменты