prog_tools | Unsorted

Telegram-канал prog_tools - Инструменты программиста

12930

Полезные инструменты для программистов — бесплатные и платные Разместить рекламу: @tproger_sales_bot Правила общения: https://tprg.ru/rules Другие каналы: @tproger_channels Регистрация в перечне РКН: https://tprg.ru/mX0S

Subscribe to a channel

Инструменты программиста

Как быстрее освоить tcpdump и dig по man-страницам

В официальных руководствах tcpdump и dig появились базовые примеры для тех, кто редко пользуется этими утилитами или запускает их впервые. Команды можно сразу повторить, а их корректность проверили сопровождающие проектов.

Практическая находка для tcpdump: при сохранении пакетов командой tcpdump -w out.pcap стоит добавить -v. Тогда утилита выводит сводку о количестве уже захваченных пакетов, пока запись продолжается.

В разборе обновления man-страниц также показано, как автор подготовил примеры в Markdown и преобразовал их в формат roff собственным скриптом. Полезный материал, если обычно вместо официальной документации приходится искать подходящую команду по блогам и комментариям.

Читать полностью…

Инструменты программиста

KernelLens: трассировка системных вызовов Linux с нагрузкой менее 1%

KernelLens — eBPF-трассировщик, который показывает системные вызовы, их длительность и ошибки. В отличие от strace, он не останавливает процесс дважды на каждом вызове, а запускает обработчики во встроенных точках ядра. Нагрузку strace автор оценивает примерно в 40%.

Фильтры по PID и списку вызовов работают в ядре, поэтому ненужные события не попадают в кольцевой буфер и пользовательскую программу. Переполнение буфера считают отдельно для каждого ядра процессора, а при высокой нагрузке отправляют только каждое N-е подходящее событие.

В статье на DEV Community разобраны код обработчиков, измерение задержки и чтение строк из памяти процесса. Полезная основа для собственной утилиты наблюдения за Linux-серверами.

Читать полностью…

Инструменты программиста

Dust показывает, что занимает место на диске

Dust — написанная на Rust альтернатива du, которая сразу выводит крупнейшие каталоги и файлы. Утилита рекурсивно проходит дерево, выбирает самые тяжёлые элементы и рисует полосы с долями. Оттенки полос показывают, к какой родительской папке относится вложенная. Поэтому не придётся отдельно сортировать вывод и обрезать его через head.

По умолчанию Dust показывает чуть меньше строк, чем помещается в терминале. Глубину можно ограничить командой dust -d 2, число элементов задать через dust -n 10, а оставить только файлы через dust -F.

Установить утилиту через Cargo можно командой cargo install du-dust. Она пригодится, когда нужно быстро найти каталог или файл, который съел место на рабочей машине или сервере.

Читать полностью…

Инструменты программиста

Helix вместо Vim: что меняется при переходе

Helix даёт переход к определению и переименование символов через встроенные языковые серверы, без сборки конфигурации Vim или Neovim. После нажатия g редактор показывает подсказку по переходам.

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

Компромиссы тоже есть: редактор пока не сохраняет историю отмены после выхода, не перезагружает изменённые на диске файлы автоматически и хуже Vim переформатирует списки Markdown. Автору статьи «Notes on switching to Helix from vim» оказалось проще освоить сочетания Helix, чем переносить привычные клавиши Vim.

Читать полностью…

Инструменты программиста

Rust Glancer тратит в 100 раз меньше памяти при анализе Rust-кода

Rust Glancer — работающий языковой сервер для Rust. По данным статьи, он использует примерно в 100 раз меньше оперативной памяти, чем rust-analyzer. Это может пригодиться в больших рабочих пространствах, где нужно учитывать тысячи функций, структур, трейтов и связей между ними.

Автор разбирает возможную архитектуру: индексировать все объявления, но тела функций анализировать по запросу, например только в открытом файле. Сведения о зависимостях можно читать из компактных файлов компилятора .rmeta, а подробный анализ включать лишь для открытого или изменяемого кода.

Ограничение Rust Glancer: полная поддержка сборочных скриптов и процедурных макросов, требующих запуска реального кода, маловероятна. Инструмент стоит попробовать, если rust-analyzer упирается в память, а эти возможности проекту не нужны.

Читать полностью…

Инструменты программиста

Как переходить между каталогами с zoxide

zoxide запоминает, какие каталоги вы открываете чаще. Команда z foo переводит в каталог с самым высоким рейтингом среди совпадений по foo. Обычные переходы тоже работают: z .. поднимает на уровень, а z - возвращает в предыдущий каталог.

Для неоднозначного запроса есть zi foo: команда открывает интерактивный выбор через fzf. Например, так можно выбрать нужный каталог, если одному запросу соответствуют несколько путей.

Установить утилиту можно командой cargo install zoxide --locked, затем её нужно подключить к используемой командной оболочке. В репозитории zoxide есть инструкции для Bash, PowerShell и других основных оболочек и платформ.

Читать полностью…

Инструменты программиста

Три вещи, которые невозможно объяснить человеку, родившемуся после 2005-го: зачем нужен был счётчик посещений, почему интернет нельзя было включить одновременно с телефоном и что такое «превед медвед». Всем остальным объяснять ничего не надо — просто пройдите анкету к 25-летию SpaceWeb.

Читать полностью…

Инструменты программиста

Как запускать и тестировать HTTP-запросы с Hurl

Hurl — командная утилита для HTTP-запросов, описанных в простом текстовом формате. В том же файле можно проверить код ответа, заголовки и содержимое тела.

Запросы связываются в сценарий: например, сначала получить HTML-страницу, извлечь из неё CSRF-токен, затем подставить значение в форму входа и ожидать ответ со статусом 302. Hurl также работает с HTML, REST, SOAP, GraphQL и API на основе XML или JSON.

На официальном сайте Hurl есть установка, справочник, примеры и учебный раздел: от первого файла и проверок ответа до цепочек запросов, отладки, захвата значений и раздела о безопасности.

Читать полностью…

Инструменты программиста

Как искать файлы с fd и запускать команды по результатам

fd ищет файлы и каталоги рекурсивно, но предлагает более короткий синтаксис, чем find. Например, fd netfl находит имена с фрагментом netfl, а fd -e md оставляет только Markdown-файлы.

Утилита распараллеливает обход каталогов, не показывает скрытые файлы и учитывает .gitignore. Эти ограничения отключаются флагами -H и -I, а -u включает оба режима сразу.

Результаты можно сразу передать внешней команде: -x запускает её отдельно для каждого пути, а -X один раз для всей выборки. Так, fd -e zip -x unzip распакует найденные ZIP-архивы параллельно. Больше сценариев и синтаксис заполнителей собраны в репозитории fd на GitHub.

Читать полностью…

Инструменты программиста

VisiData: исследуем табличные данные в терминале

VisiData — интерактивный инструмент с открытым исходным кодом для изучения табличных данных. Он сочетает наглядность электронной таблицы, эффективность терминала и возможности Python. Утилита рассчитана на таблицы с миллионами строк, поэтому подходит для первичного разбора больших CSV и других табличных файлов.

Одной клавишей можно построить гистограмму, а диаграмму рассеяния показать прямо в терминале. Сессию можно сохранить и позднее воспроизвести, чтобы не повторять исследование вручную. Для пакетного режима авторы приводят команду vd -b input.csv.

На сайте VisiData есть обзор возможностей и материалы для начала работы.

Читать полностью…

Инструменты программиста

Difftastic сравнивает код по синтаксису, а не по строкам

Difftastic — консольный инструмент для сравнения файлов. Он распознаёт выражения и скобочные конструкции, затем сопоставляет их между версиями файла. Поэтому перенос выражения на другие строки не прячет реальную правку, а добавленная обёртка отображается отдельно от содержимого, которое осталось прежним.

Утилита показывает номера строк до и после изменений и работает с Git. Среди поддерживаемых языков есть C++, Go, JavaScript, Python, Rust и TypeScript; среди форматов — HCL, HTML, JSON и YAML. Проект распространяется по лицензии MIT.

Попробуйте его на изменении после автоформатирования: так проще отделить новую логику от переставленных переносов. На сайте Difftastic есть минутное демо, полный список языков и инструкция по настройке Git.

Читать полностью…

Инструменты программиста

Как перехватывать и изменять HTTPS-трафик через mitmproxy

mitmproxy — бесплатный инструмент с открытым исходным кодом для отладки и тестирования веб-трафика. Он перехватывает HTTP/1, HTTP/2, HTTP/3 и WebSocket-сообщения, показывает их содержимое и позволяет изменить запрос или ответ до отправки адресату.

Для работы есть интерактивная командная строка и mitmweb с графическим интерфейсом, похожим на Chrome DevTools. Сценарий можно автоматизировать на Python через mitmdump: например, перенаправлять запросы на другой хост или возвращать подготовленный ответ для выбранного пути.

Установить инструмент можно командой brew install mitmproxy. На странице mitmproxy есть другие варианты загрузки, примеры дополнений и описание возможностей.

Читать полностью…

Инструменты программиста

hexyl: цветной просмотр байтов в терминале

hexyl показывает содержимое файла в шестнадцатеричном виде и окрашивает разные категории байтов. Отдельные цвета получают нулевые байты, печатные ASCII-символы, пробелы и переносы строк, прочие ASCII-символы и байты вне ASCII. Так категории можно различать прямо в выводе терминала.

В Ubuntu и Debian утилита ставится командой sudo apt install hexyl, в Fedora через sudo dnf install hexyl, а в macOS через brew install hexyl. Сборка из исходников доступна через Cargo при Rust 1.56 или новее.

Цвета категорий и смещения настраиваются переменными окружения: можно выбрать стандартные цвета терминала, их яркие варианты или значение RGB. Команды для других систем и список настроек собраны в репозитории hexyl на GitHub.

Читать полностью…

Инструменты программиста

jless: как читать и искать JSON в терминале

jless показывает JSON в терминале с форматированием и подсветкой синтаксиса. Объекты и массивы можно сворачивать и раскрывать, чтобы сначала увидеть структуру документа, а затем перейти к нужным значениям.

Полнотекстовый поиск поддерживает регулярные выражения: так можно найти фрагмент внутри длинной строки или перейти между значениями одного ключа. Инструмент пригодится при изучении ответов внешних API и отладке содержимого запросов. Управление включает набор команд в стиле Vim.

На macOS и Linux jless можно поставить через несколько пакетных менеджеров. Для Homebrew команда одна: brew install jless. Другие варианты установки и полный список возможностей собраны на сайте jless.

Читать полностью…

Инструменты программиста

Плагин для GitHub Accessibility Scanner ловит alt-текст, который проходит обычные проверки

Проверки доступности отвечают на один вопрос: есть ли у картинки атрибут alt. Поэтому alt="IMG_2847.png" проходит, и одинаковое alt="3/5 stars" на пяти разных иконках тоже. По отчёту WebAIM Million за 2026 год alt нет у 16,2% изображений на миллионе главных страниц, а ещё у 10,8% он ничего не описывает.

Плагин GitHub для Accessibility Scanner добавляет пять правил, которым не нужна сама картинка: атрибут отсутствует или состоит из пробелов; вместо описания имя файла вроде hero.png; забытая заглушка TODO или tbd; одно общее слово вместо описания: image, logo, chart; один и тот же alt у соседних изображений.

Где пригодится: прогнать по своей вёрстке и увидеть места, где alt формально есть, а незрячему пользователю не даёт ничего.

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

Читать полностью…

Инструменты программиста

shot-scraper 1.10 научился записывать видеодемонстрации веб-приложений

Инструмент shot-scraper video запускает заданный в storyboard.yml сценарий: открывает страницы, нажимает кнопки, заполняет поля и записывает результат через Playwright. Так кодовый агент может не только изменить приложение, но и подготовить ролик, который показывает работу новой функции.

В разборе в Simon Willison’s Weblog агент GPT-5.5 xhigh по справке команды целиком составил YAML-сценарий для Datasette. Он запустил локальный сервер и записал добавление строк и создание таблицы из CSV.

Для знакомства с форматом достаточно выполнить uvx shot-scraper video --help. В YAML можно задать адрес, размер окна, ожидание элементов, клики, ввод текста и паузы между действиями.

Читать полностью…

Инструменты программиста

Как разбирать пути к файлам модификаторами Zsh

Zsh умеет выделять части пути без отдельных вызовов dirname и basename. Суффикс :h оставляет каталог, :t возвращает имя файла, :r убирает расширение, а :e сохраняет только расширение.

Модификаторы применяются слева направо и складываются в цепочки. Например, для пути talks/robot.png выражение ${f:t:r} сначала оставит robot.png, а затем превратит его в robot.

Практический случай: при пакетном преобразовании PNG в WebP выражение ${i:r}.webp собирает новое имя файла. В разборе Адама Джонсона показан цикл с ImageMagick и объяснено, почему в Zsh имя с пробелами остаётся целым даже без кавычек.

Читать полностью…

Инструменты программиста

Как плагин OpenTelemetry строит карту сервисов

Плагин OpenTelemetry для JetBrains IDE показывает связи сервисов во время работы приложения. Вместо статической схемы он использует спаны: записи об отдельных операциях в трассировке запроса.

Спаны поступают в локальный обработчик. Он распознаёт HTTP-вызовы, запросы к базам данных и работу с очередями, добавляет сервисы на карту и связывает клиентскую операцию с серверной. Если парная запись ещё не пришла, плагин сохраняет первую и обновляет схему позже. Поэтому данные можно обрабатывать по мере поступления, даже не по порядку.

Установите плагин OpenTelemetry, запустите приложение с отправкой спанов и откройте Service Map. Так можно до релиза заметить лишний HTTP-вызов или запрос к базе. Механика разобрана в статье JetBrains Blog.

Читать полностью…

Инструменты программиста

Саймон Уиллисон выпустил Showboat и Rodney для демонстрации кода агентов

Showboat помогает агенту собрать Markdown-документ о новой функции: записывает выполненные команды, их вывод и созданные изображения. После автоматических тестов разработчик может увидеть, что именно запустилось, а не принимать отчёт агента на веру.

Rodney управляет Chrome из командной строки в рамках одной сессии: открывает страницы, нажимает элементы, выполняет JavaScript и делает скриншоты. Вместе с Showboat он позволяет собрать демонстрацию веб-интерфейса.

Быстрый старт: uvx showboat --help и uvx rodney. Есть оговорка: агент иногда редактирует Markdown напрямую, и тогда вывод в документе может не соответствовать запуску. Устройство инструментов и примеры автор разобрал в Simon Willison’s Weblog.

Читать полностью…

Инструменты программиста

Herdr: параллельные ИИ-агенты в одном терминале

Herdr показывает несколько сессий агентов для написания кода рядом и позволяет быстро переключаться между ними. Видно, кто пишет код, ждёт ответа или закончил работу.

Для независимых задач автор статьи создаёт отдельное рабочее дерево Git с собственной веткой. Правки интерфейса он держит локально, чтобы запускать приложение и сразу давать обратную связь. Задачи с чётким описанием отправляет на виртуальный сервер (VPS): там агент выполняет реализацию и автоматические проверки, даже когда ноутбук спит.

VPS не отменяет ограничений: соединение с сервером может оборваться, слабый сервер тормозит при одновременных сборках, а доступ агента к секретам всё равно нужно ограничивать. В разборе рабочего процесса автор советует сначала попробовать Herdr локально на паре ограниченных задач и лишь затем переносить автономные задачи на VPS.

Читать полностью…

Инструменты программиста

Как искать по коду с ripgrep с учётом .gitignore

ripgrep (rg) рекурсивно ищет строки по регулярному выражению. По умолчанию утилита учитывает .gitignore и .ignore, пропускает скрытые каталоги и бинарные файлы. Поэтому выдача сосредоточена на файлах, которые не исключены правилами проекта.

Для точечного поиска rg -tpy foo оставит только файлы Python, а rg -Tjs foo исключит JavaScript. Если нужно проверить вообще всё, rg -uuu отключит автоматические фильтры.

В тесте на собранном исходном коде ядра Linux ripgrep выполнил один и тот же поиск за 0,082 секунды против 0,273 секунды у git grep. README репозитория ripgrep на GitHub предупреждает, что одного теста недостаточно; там же есть другие сравнения, способы установки и руководство пользователя.

Читать полностью…

Инструменты программиста

Task: кроссплатформенный запуск задач проекта

Task — быстрый инструмент сборки для повторяющихся команд. Он поставляется одним бинарным файлом без зависимостей, а один и тот же Taskfile работает на Linux, macOS и Windows. Поэтому команды проекта не придётся отдельно адаптировать под систему каждого разработчика.

Task подходит для генерации кода, форматирования и запуска линтеров. Команды можно связывать в цепочки и задавать зависимости между задачами. Инструмент также отслеживает файлы по времени изменения или содержимому и пропускает ненужные повторные сборки.

На сайте Task перечислены способы установки через Homebrew, Snapcraft и Scoop. Если команде нужен одинаковый набор локальных команд на разных ОС, начните с генерации кода или запуска линтера.

Читать полностью…

Инструменты программиста

Tokei считает строки кода и отделяет их от комментариев

Tokei — утилита командной строки для статистики по репозиторию. Она группирует файлы по языкам и отдельно считает весь объём строк, код, комментарии и пустые строки. Поддерживается более 150 языков, включая разные расширения файлов.

Установить Tokei через Cargo можно командой cargo install tokei. Затем запустите tokei ./project: утилита обойдёт вложенные папки и учтёт правила из .gitignore и .ignore. Ключ --files добавит статистику по каждому файлу, а --sort code отсортирует языки по объёму кода.

Так можно быстро оценить состав незнакомого репозитория и найти языки, на которых написана его основная часть. Все варианты установки и параметры запуска собраны в репозитории Tokei.

Читать полностью…

Инструменты программиста

HTTPie CLI: проверяем HTTP и API из терминала

HTTPie CLI отправляет запросы к API, HTTP-серверам и веб-сервисам через команды http и https. Утилита поддерживает JSON, заголовки, аутентификацию, прокси, формы и загрузку файлов, а ответ форматирует и подсвечивает.

Для быстрой проверки адреса достаточно https httpie.io/hello. С флагом -v можно увидеть отправляемый запрос, а режим --offline собирает и печатает его без отправки. Именованная сессия сохраняет авторизацию и заголовки для следующих запросов к тому же серверу.

В документации HTTPie CLI есть способы установки для разных ОС и примеры запросов с данными, авторизацией, загрузкой и скачиванием файлов.

Читать полностью…

Инструменты программиста

uv: один инструмент для пакетов, проектов и версий Python

uv объединяет задачи pip, pip-tools, pipx, Poetry, pyenv, virtualenv и Twine. Он устанавливает зависимости, создаёт виртуальные окружения, фиксирует точные версии пакетов в едином файле, запускает скрипты с их зависимостями и устанавливает нужные версии Python. Авторы заявляют ускорение в 10–100 раз по сравнению с pip и экономию места благодаря общему кэшу: одинаковые зависимости не хранятся повторно.

Для первого проекта установите uv командой pip install uv, затем выполните uv init example и добавьте пакет через uv add ruff. Команда uv run ruff check запустит установленный инструмент в окружении проекта. Остальные сценарии и варианты установки собраны в репозитории uv от Astral.

Читать полностью…

Инструменты программиста

Delta делает вывод Git, diff и grep удобнее для чтения

Delta — настраиваемая программа для просмотра вывода в терминале. Она подсвечивает синтаксис и изменения внутри строк, показывает версии рядом, добавляет номера строк и позволяет переходить между файлами клавишами n и N. Работает с Git, diff, grep и ripgrep.

Для Git установите пакет git-delta и настройте delta как программу просмотра. Delta определяет светлый или тёмный фон; темы подсветки берёт из набора bat. Можно улучшить отображение конфликтов слияния и превратить хеши коммитов в ссылки на GitHub, GitLab, SourceHut или Codeberg.

В репозитории Delta есть начальная конфигурация и полное руководство. Попробуйте инструмент, если в больших diff сложно быстро найти нужный файл и изменённую строку.

Читать полностью…

Инструменты программиста

Как попробовать Zellij без установки

Zellij — бесплатное рабочее пространство для терминала с открытым исходным кодом. На сайте Zellij есть отдельные команды пробного запуска для Bash, Zsh, fish и PowerShell. Для Bash и Zsh команда выглядит так:

bash <(curl -L https://zellij.dev/launch)


Перед запуском откройте и проверьте сценарий, который собираетесь выполнить. На сайте можно отдельно посмотреть его варианты для Linux и Mac или Windows. Так получится оценить Zellij до установки и затем решить, подходит ли инструмент для вашей работы в терминале.

Разработчики также предлагают платный размещённый сервис для совместного доступа к сессиям. Пока он находится в бета-версии.

Читать полностью…

Инструменты программиста

Как direnv переключает переменные окружения между проектами

direnv загружает настройки окружения для текущего каталога и убирает их при выходе. Так переменные проекта не приходится складывать в общий ~/.profile.

Перед выводом очередной командной строки утилита ищет разрешённый .envrc в текущем и родительских каталогах. Затем запускает файл в отдельном процессе Bash, сравнивает экспортированные переменные до и после запуска и переносит изменения в текущую оболочку. Поэтому такой файл может менять переменные, но не передаёт наружу функции и псевдонимы команд.

После установки подключите direnv к своей оболочке, создайте .envrc в проекте и разрешите его командой direnv allow .. Инструмент подойдёт для отдельных настроек разработки, секретов развёртывания и дополнений к PATH. Команды установки, интеграция с bash, zsh и fish, а также готовые функции для .envrc собраны в документации direnv.

Читать полностью…

Инструменты программиста

Dependabot теперь выжидает перед обновлением: причина в двух часах сентября 2025 года

В сентябре 2025-го атакующий выудил учётные данные одного мейнтейнера npm и выложил заражённые версии chalk, debug и ещё примерно десятка пакетов с суммарными двумя миллиардами загрузок в неделю. Код переписывал адреса криптокошельков в любом браузерном приложении, которое его подгружало.

🔘 отравленные версии прожили около двух часов, пока сообщество их не заметило и npm не снял;
🔘 двух часов хватает, чтобы ночная сборка в CI утянула их к вам;
🔘 отсюда период ожидания: Dependabot выдерживает паузу перед тем, как предложить свежую версию.

GitHub объясняет, как это соотносится со скоростью закрытия настоящих уязвимостей.

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

Читать полностью…

Инструменты программиста

С днем программиста, коллеги!

Желаем, чтобы код компилировался с первого раза, баги находились до релиза, а таски «на пять минут» действительно занимали пять минут. 

И конечно, пусть в жизни будет больше приятных сюрпризов — один из них мы уже подготовили. Скорее переходите по ссылке, трясите коробку и забирайте свой подарок ко Дню программиста: https://tprg.ru/2mAD

Читать полностью…
Subscribe to a channel