Держите версии Node, Python, Go и Terraform в одном файле, и пусть ставятся при первом вызове
В версии 2026.9.0, вышедшей 1 сентября, появилась ленивая установка: у инструмента в конфиге ставится
🔘 зачем: в монорепе с десятком инструментов новый человек получает рабочее окружение за секунды, а редкие утилиты не тянутся, пока не понадобятся
🔘 против
@prog_tools
mise это менеджер версий инструментов на Rust: один файл mise․toml в проекте описывает, какие версии языков и CLI нужны, а при входе в каталог они подхватываются автоматически. Замена nvm, pyenv и asdf разом, у репозитория 33 тысячи звёзд.В версии 2026.9.0, вышедшей 1 сентября, появилась ленивая установка: у инструмента в конфиге ставится
lazy = true, и mise создаёт для него заглушку-шим. Сам бинарник скачивается только при первом запуске команды. mise install такие инструменты пропускает, mise install --include-lazy ставит всё заранее.asdf: тот же формат плагинов, но mise быстрее на старте шелла и умеет ещё задачи и переменные окружения; asdf проще и старше@prog_tools
Please open Telegram to view this post
VIEW IN TELEGRAM
Приложите скриншот к issue одной командой, не открывая браузер
GitHub CLI, официальный терминальный клиент GitHub, до сих пор умел работать только с текстом: картинку к багрепорту приходилось тащить через веб. В версии 2.99.0 появился флаг
🔘
🔘 работает в
🔘 alt-текст после решётки:
🔘 локальная ссылка
🔘 форматы PNG, JPEG, GIF, WebP, SVG, MP4, MOV, WebM; лимит 10 МБ на картинку, видео до 100 МБ на платных планах.
Нужен OAuth-токен от
@prog_tools
GitHub CLI, официальный терминальный клиент GitHub, до сих пор умел работать только с текстом: картинку к багрепорту приходилось тащить через веб. В версии 2.99.0 появился флаг
--attach.gh issue comment --attach ./screenshot.png загружает файл в комментарий;gh issue и gh pr для create, edit и comment, флаг можно повторять;--attach './login.png#The login error state'; в Markdown переписывается на загруженный файл;Нужен OAuth-токен от
gh auth login или classic PAT и право записи в репозиторий. GitHub Enterprise Server пока мимо. Веб-интерфейс всё ещё удобнее для перетаскивания десятка файлов, но для CI и скриптов альтернативы у него нет. Как встроить в пайплайн, разобрали на сайте.@prog_tools
Please open Telegram to view this post
VIEW IN TELEGRAM
👍1
Утилиты, которые показывают, где именно вы опечатались в команде
uutils coreutils, переписанные на Rust
🔘 работает в 28 утилитах, включая
🔘 в пайпах и скриптах остаётся однострочное сообщение, парсеры stderr не сломаются;
🔘
🔘 попробовать можно в песочнице в браузере без установки;
🔘 бонусом PGO-сборки до 31% быстрее и
Против GNU Coreutils: тесты совместимости проходят на 653 из 685, оставшиеся расхождения касаются редких флагов, и в старых скриптах они могут всплыть. Ставить стоит рядом с системными утилитами, а не вместо них. Подробности релиза на сайте.
@prog_tools
uutils coreutils, переписанные на Rust
ls, cp, sort и остальные базовые утилиты Linux, в версии 0.11.0 получили диагностику как у компилятора: под командой печатается сама строка, под ней каретка на неверном символе и подсказка с правильным синтаксисом.cut, chmod, sort, tr;UUTILS_DIAG=always|never|auto переключает режим;cp быстрее на 32,93%.Против GNU Coreutils: тесты совместимости проходят на 653 из 685, оставшиеся расхождения касаются редких флагов, и в старых скриптах они могут всплыть. Ставить стоит рядом с системными утилитами, а не вместо них. Подробности релиза на сайте.
@prog_tools
Please open Telegram to view this post
VIEW IN TELEGRAM
WebLLM запускает языковую модель прямо во вкладке браузера, сервер не нужен
npm-библиотека от команды MLC AI: модель скачивается один раз, кэшируется в браузере и считает на видеокарте пользователя через WebGPU. API совместим с OpenAI. 18,8 тыс. звёзд на GitHub, Apache-2.0.
🔘
🔘
🔘 Web Worker и Service Worker, чтобы не вешать интерфейс; JSON-режим реализован в WASM-части;
🔘 на графике, сколько видеопамяти просят предсобранные модели: от 0,7 ГБ у gemma3-1b до 6,4 ГБ у Qwen3.5-9B.
Против серверного API: промпты не уходят с устройства и инференс бесплатен, но первый запуск ждёт скачивания весов, а на слабом ноутбуке модель не поместится. Попробовать без кода: chat.webllm.ai. Разбор с кодом, замерами и FAQ на сайте.
@prog_tools
npm-библиотека от команды MLC AI: модель скачивается один раз, кэшируется в браузере и считает на видеокарте пользователя через WebGPU. API совместим с OpenAI. 18,8 тыс. звёзд на GitHub, Apache-2.0.
npm install @mlc-ai/web-llm или импорт с CDN https://esm.run/@mlc-ai/web-llm;CreateMLCEngine("Llama-3.2-1B-Instruct-q4f32_1-MLC", { initProgressCallback }), дальше engine.chat.completions.create({ messages, stream: true });Против серверного API: промпты не уходят с устройства и инференс бесплатен, но первый запуск ждёт скачивания весов, а на слабом ноутбуке модель не поместится. Попробовать без кода: chat.webllm.ai. Разбор с кодом, замерами и FAQ на сайте.
@prog_tools
Please open Telegram to view this post
VIEW IN TELEGRAM
❤1👍1
VS Code 1.136: агент сам доводит ваш pull request до зелёных проверок
Agent Merge в новом VS Code берёт открытый PR и крутит цикл: читает замечания ревью, правит код, перезапускает упавшие проверки, разрешает конфликты, пока ветку не станет можно сливать. Функция в Preview.
🔘 включение:
🔘 агенты Copilot и Claude экспериментально работают с multi-root workspace (
🔘 дерево сессий со статусами и ожидающими подтверждениями, уведомления, когда агенту нужен ввод;
🔘 терминальные расширения больше не ждут до 5 секунд при запуске.
Против ручного цикла «прочитал комментарий, поправил, запушил» выигрыш очевиден на быстром CI; на медленных пайплайнах каждая итерация агента стоит минут и токенов, а сколько именно, Microsoft не пишет. Без подписки Copilot остаются Compact layout, ускорение запуска терминальных расширений и мелкие правки редактора и доступности. Подробнее на сайте.
@prog_tools
Agent Merge в новом VS Code берёт открытый PR и крутит цикл: читает замечания ревью, правит код, перезапускает упавшие проверки, разрешает конфликты, пока ветку не станет можно сливать. Функция в Preview.
chat.agentMerge.enabled, запуск из окна Agents;chat.agentHost.copilotAgent.multiRootEnabled, chat.agentHost.claudeAgent.multiRootEnabled), хуки пока в пределах одной папки;Против ручного цикла «прочитал комментарий, поправил, запушил» выигрыш очевиден на быстром CI; на медленных пайплайнах каждая итерация агента стоит минут и токенов, а сколько именно, Microsoft не пишет. Без подписки Copilot остаются Compact layout, ускорение запуска терминальных расширений и мелкие правки редактора и доступности. Подробнее на сайте.
@prog_tools
Please open Telegram to view this post
VIEW IN TELEGRAM
Zed 1.18 вспоминает файлы прошлой сессии и показывает значения переменных в C и C++ прямо в коде
Zed это нативный редактор от авторов Atom, ставка на скорость и встроенную совместную работу; экосистема расширений у VS Code по-прежнему шире. В 1.18.0 117 коммитов, из заметного:
🔘 File Finder показывает недавно открытые файлы из предыдущих сессий, а не только текущей;
🔘 отладчик через CodeLLDB и GDB рисует inline-значения для C и C++, Continue Program и Continue Thread разведены;
🔘
🔘 сломанное подключение внешнего агента перезагружается без рестарта редактора; задержка inline-подсказок настраивается через
🔘 терминал понимает
Установка на Linux и macOS:
@prog_tools
Zed это нативный редактор от авторов Atom, ставка на скорость и встроенную совместную работу; экосистема расширений у VS Code по-прежнему шире. В 1.18.0 117 коммитов, из заметного:
git: toggle diff base переключает базу диффа между HEAD и веткой по умолчанию;edit_predictions.<provider>.prediction_debounce;ctrl-alt-<буква>, на Linux кэшируются шрифты и глифы.Установка на Linux и macOS:
curl -f https://zed.dev/install.sh | sh, для Windows отдельная сборка на сайте.@prog_tools
Please open Telegram to view this post
VIEW IN TELEGRAM
Mantis: Google выложила гайд по своему ИИ-конвейеру для поиска и починки уязвимостей
Mantis это набор скиллов для кодинг-агента, которым Google проверяет собственные репозитории: 16 последовательных стадий плюс вспомогательные скиллы, от
▪️ Установка:
▪️ Агент любой: Google проверяла с Gemini CLI, Antigravity CLI и ADK; модель приносите свою.
▪️ Запуск: открыть агента и написать «I would like to use Mantis framework in path/to/mantis to review my code in path/to/your/code, can you help me get started?».
▪️ Песочница обязательна: gVisor с
▪️ Каждую находку подтверждает человек: README запрещает массово слать непроверенные ИИ-отчёты мейнтейнерам.
Как устроены стадии и что Mantis не обещает, разобрали на сайте.
Mantis это набор скиллов для кодинг-агента, которым Google проверяет собственные репозитории: 16 последовательных стадий плюс вспомогательные скиллы, от
/mantis-history (учится на прошлых security-фиксах в истории коммитов) до /mantis-reproduce (воспроизводит уязвимость в контейнере без сети) и /mantis-patch. Репозиторий google/mantis открыт с июня под Apache-2.0, а 2 сентября Google опубликовала инструкцию по запуску, где представила скилл mantis-advise из репозитория, который подсказывает агенту безопасные решения ещё до правок.▪️ Установка:
git clone https://github.com/google/mantis.git или npx skills add google/mantis.▪️ Агент любой: Google проверяла с Gemini CLI, Antigravity CLI и ADK; модель приносите свою.
▪️ Запуск: открыть агента и написать «I would like to use Mantis framework in path/to/mantis to review my code in path/to/your/code, can you help me get started?».
▪️ Песочница обязательна: gVisor с
--network=none, microsandbox или отдельная VM; флаги вроде --yolo авторы прямо запрещают.▪️ Каждую находку подтверждает человек: README запрещает массово слать непроверенные ИИ-отчёты мейнтейнерам.
Как устроены стадии и что Mantis не обещает, разобрали на сайте.
rustup 1.29.1 ставит компоненты параллельно и раздаёт документацию по HTTP
rustup, установщик и менеджер версий Rust, обновился до 1.29.1. Обновление не эффектное, но два изменения замечает каждый.
🔘
🔘
🔘 неявная установка активного toolchain при вызове
🔘
🔘 новая официальная host-платформа
Обновиться:
@prog_tools
rustup, установщик и менеджер версий Rust, обновился до 1.29.1. Обновление не эффектное, но два изменения замечает каждый.
rustup update сначала проверяет доступные обновления параллельно, а rustup component add с несколькими компонентами ставит их одновременно;rustup doc --serve поднимает локальный HTTP-сервер с документацией, спасение для контейнеров, где нет браузера;rustup и rustup-init объявлена устаревшей и теперь предупреждает;rustup-init больше не оставляет мусор после отменённой установки;aarch64-pc-windows-gnullvm; «target triple» по всему проекту переименован в «target tuple», флаг --target не менялся.Обновиться:
rustup self update. Из подводных камней команда напоминает про антивирусы, которые после каждого релиза по несколько недель блокируют распаковку rust-docs. Анонс в блоге Rust.@prog_tools
Please open Telegram to view this post
VIEW IN TELEGRAM
👍1
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