gram news
Аватар канала Инструменты программиста

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

@prog_tools

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

13,000подписчиков

Открыть канал

Последние посты

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

    22 сент., 09:30

    Helix вместо Vim: что меняется при переходеHelix даёт переход к определению и переименование символов через встроенные языковые серверы, без сборки конфигурации Vim или Neovim. После нажатия g редактор показывает подсказку по переходам.Поиск по репозиторию выводит совпадение вместе с соседними строками. Для массовых правок вместо макросов можно использовать несколько курсоров: выделить документ, выбрать совпадения регулярным выражением и редактировать их одновременно.Компромиссы тоже есть: редактор пока не сохраняет историю отмены после выхода, не перезагружает изменённые на диске файлы автоматически и хуже Vim переформатирует списки Markdown. Автору статьи «Notes on switching to Helix from vim» оказалось проще освоить сочетания Helix, чем переносить привычные клавиши Vim.
    Julia EvansNotes on switching to Helix from vimHello! Earlier this summer I was talking to a friend about how much I love using fish, and how I love that I don’t have to configure it. They said that they feel the same way about the helix text editor, and so I decided to give it a try.
  • Инструменты программиста

    22 сент., 05:02

    Саймон Уиллисон выпустил Showboat и Rodney для демонстрации кода агентовShowboat помогает агенту собрать Markdown-документ о новой функции: записывает выполненные команды, их вывод и созданные изображения. После автоматических тестов разработчик может увидеть, что именно запустилось, а не принимать отчёт агента на веру.Rodney управляет Chrome из командной строки в рамках одной сессии: открывает страницы, нажимает элементы, выполняет JavaScript и делает скриншоты. Вместе с Showboat он позволяет собрать демонстрацию веб-интерфейса.Быстрый старт: uvx showboat --help и uvx rodney. Есть оговорка: агент иногда редактирует Markdown напрямую, и тогда вывод в документе может не соответствовать запуску. Устройство инструментов и примеры автор разобрал в Simon Willison’s Weblog.
    Иллюстрация к посту канала Инструменты программистаИллюстрация к посту канала Инструменты программиста
  • Инструменты программиста

    21 сент., 09:29

    Rust Glancer тратит в 100 раз меньше памяти при анализе Rust-кодаRust Glancer — работающий языковой сервер для Rust. По данным статьи, он использует примерно в 100 раз меньше оперативной памяти, чем rust-analyzer. Это может пригодиться в больших рабочих пространствах, где нужно учитывать тысячи функций, структур, трейтов и связей между ними.Автор разбирает возможную архитектуру: индексировать все объявления, но тела функций анализировать по запросу, например только в открытом файле. Сведения о зависимостях можно читать из компактных файлов компилятора .rmeta, а подробный анализ включать лишь для открытого или изменяемого кода.Ограничение Rust Glancer: полная поддержка сборочных скриптов и процедурных макросов, требующих запуска реального кода, маловероятна. Инструмент стоит попробовать, если rust-analyzer упирается в память, а эти возможности проекту не нужны.
    matklad.github.ioRust GlancerRust Glancer, a functional LSP server for Rust which uses two orders of magnitude less RAM, is incredibly cool. Go check it out! This post started as a comment on lobste.rs, but I figured it out that it's better to publish it somewhat more prominently. Don't…
  • Инструменты программиста

    21 сент., 05:02

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

    20 сент., 09:27

    Как переходить между каталогами с zoxidezoxide запоминает, какие каталоги вы открываете чаще. Команда z foo переводит в каталог с самым высоким рейтингом среди совпадений по foo. Обычные переходы тоже работают: z .. поднимает на уровень, а z - возвращает в предыдущий каталог.Для неоднозначного запроса есть zi foo: команда открывает интерактивный выбор через fzf. Например, так можно выбрать нужный каталог, если одному запросу соответствуют несколько путей.Установить утилиту можно командой cargo install zoxide --locked, затем её нужно подключить к используемой командной оболочке. В репозитории zoxide есть инструкции для Bash, PowerShell и других основных оболочек и платформ.
    Иллюстрация к посту канала Инструменты программистаИллюстрация к посту канала Инструменты программиста
  • Инструменты программиста

    20 сент., 05:00

    Как искать по коду с ripgrep с учётом .gitignoreripgrep (rg) рекурсивно ищет строки по регулярному выражению. По умолчанию утилита учитывает .gitignore и .ignore, пропускает скрытые каталоги и бинарные файлы. Поэтому выдача сосредоточена на файлах, которые не исключены правилами проекта.Для точечного поиска rg -tpy foo оставит только файлы Python, а rg -Tjs foo исключит JavaScript. Если нужно проверить вообще всё, rg -uuu отключит автоматические фильтры.В тесте на собранном исходном коде ядра Linux ripgrep выполнил один и тот же поиск за 0,082 секунды против 0,273 секунды у git grep. README репозитория ripgrep на GitHub предупреждает, что одного теста недостаточно; там же есть другие сравнения, способы установки и руководство пользователя.
    Иллюстрация к посту канала Инструменты программистаИллюстрация к посту канала Инструменты программиста
  • Инструменты программиста

    19 сент., 16:32

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

    19 сент., 13:19

    Task: кроссплатформенный запуск задач проектаTask — быстрый инструмент сборки для повторяющихся команд. Он поставляется одним бинарным файлом без зависимостей, а один и тот же Taskfile работает на Linux, macOS и Windows. Поэтому команды проекта не придётся отдельно адаптировать под систему каждого разработчика.Task подходит для генерации кода, форматирования и запуска линтеров. Команды можно связывать в цепочки и задавать зависимости между задачами. Инструмент также отслеживает файлы по времени изменения или содержимому и пропускает ненужные повторные сборки.На сайте Task перечислены способы установки через Homebrew, Snapcraft и Scoop. Если команде нужен одинаковый набор локальных команд на разных ОС, начните с генерации кода или запуска линтера.
    Иллюстрация к посту канала Инструменты программистаИллюстрация к посту канала Инструменты программиста
  • Инструменты программиста

    19 сент., 05:04

    Как запускать и тестировать HTTP-запросы с HurlHurl — командная утилита для HTTP-запросов, описанных в простом текстовом формате. В том же файле можно проверить код ответа, заголовки и содержимое тела.Запросы связываются в сценарий: например, сначала получить HTML-страницу, извлечь из неё CSRF-токен, затем подставить значение в форму входа и ожидать ответ со статусом 302. Hurl также работает с HTML, REST, SOAP, GraphQL и API на основе XML или JSON.На официальном сайте Hurl есть установка, справочник, примеры и учебный раздел: от первого файла и проверок ответа до цепочек запросов, отладки, захвата значений и раздела о безопасности.
    hurl.devHurl - Run and Test HTTP RequestsHurl, run and test HTTP requests with plain text and curl. Hurl can run fast automated integration tests.
  • Инструменты программиста

    18 сент., 14:00

    Tokei считает строки кода и отделяет их от комментариевTokei — утилита командной строки для статистики по репозиторию. Она группирует файлы по языкам и отдельно считает весь объём строк, код, комментарии и пустые строки. Поддерживается более 150 языков, включая разные расширения файлов.Установить Tokei через Cargo можно командой cargo install tokei. Затем запустите tokei ./project: утилита обойдёт вложенные папки и учтёт правила из .gitignore и .ignore. Ключ --files добавит статистику по каждому файлу, а --sort code отсортирует языки по объёму кода.Так можно быстро оценить состав незнакомого репозитория и найти языки, на которых написана его основная часть. Все варианты установки и параметры запуска собраны в репозитории Tokei.
    Иллюстрация к посту канала Инструменты программистаИллюстрация к посту канала Инструменты программиста
  • Инструменты программиста

    17 сент., 13:55

    Как искать файлы с fd и запускать команды по результатамfd ищет файлы и каталоги рекурсивно, но предлагает более короткий синтаксис, чем find. Например, fd netfl находит имена с фрагментом netfl, а fd -e md оставляет только Markdown-файлы.Утилита распараллеливает обход каталогов, не показывает скрытые файлы и учитывает .gitignore. Эти ограничения отключаются флагами -H и -I, а -u включает оба режима сразу.Результаты можно сразу передать внешней команде: -x запускает её отдельно для каждого пути, а -X один раз для всей выборки. Так, fd -e zip -x unzip распакует найденные ZIP-архивы параллельно. Больше сценариев и синтаксис заполнителей собраны в репозитории fd на GitHub.
    Иллюстрация к посту канала Инструменты программистаИллюстрация к посту канала Инструменты программиста
  • Инструменты программиста

    17 сент., 09:28

    HTTPie CLI: проверяем HTTP и API из терминалаHTTPie CLI отправляет запросы к API, HTTP-серверам и веб-сервисам через команды http и https. Утилита поддерживает JSON, заголовки, аутентификацию, прокси, формы и загрузку файлов, а ответ форматирует и подсвечивает.Для быстрой проверки адреса достаточно https httpie.io/hello. С флагом -v можно увидеть отправляемый запрос, а режим --offline собирает и печатает его без отправки. Именованная сессия сохраняет авторизацию и заголовки для следующих запросов к тому же серверу.В документации HTTPie CLI есть способы установки для разных ОС и примеры запросов с данными, авторизацией, загрузкой и скачиванием файлов.
    Иллюстрация к посту канала Инструменты программистаИллюстрация к посту канала Инструменты программиста
  • Инструменты программиста

    16 сент., 20:29

    VisiData: исследуем табличные данные в терминалеVisiData — интерактивный инструмент с открытым исходным кодом для изучения табличных данных. Он сочетает наглядность электронной таблицы, эффективность терминала и возможности Python. Утилита рассчитана на таблицы с миллионами строк, поэтому подходит для первичного разбора больших CSV и других табличных файлов.Одной клавишей можно построить гистограмму, а диаграмму рассеяния показать прямо в терминале. Сессию можно сохранить и позднее воспроизвести, чтобы не повторять исследование вручную. Для пакетного режима авторы приводят команду vd -b input.csv.На сайте VisiData есть обзор возможностей и материалы для начала работы.
    Иллюстрация к посту канала Инструменты программистаИллюстрация к посту канала Инструменты программиста
  • Инструменты программиста

    16 сент., 16:02

    uv: один инструмент для пакетов, проектов и версий Pythonuv объединяет задачи 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.
    Иллюстрация к посту канала Инструменты программистаИллюстрация к посту канала Инструменты программиста
  • Инструменты программиста

    16 сент., 10:35

    Difftastic сравнивает код по синтаксису, а не по строкамDifftastic — консольный инструмент для сравнения файлов. Он распознаёт выражения и скобочные конструкции, затем сопоставляет их между версиями файла. Поэтому перенос выражения на другие строки не прячет реальную правку, а добавленная обёртка отображается отдельно от содержимого, которое осталось прежним.Утилита показывает номера строк до и после изменений и работает с Git. Среди поддерживаемых языков есть C++, Go, JavaScript, Python, Rust и TypeScript; среди форматов — HCL, HTML, JSON и YAML. Проект распространяется по лицензии MIT.Попробуйте его на изменении после автоформатирования: так проще отделить новую логику от переставленных переносов. На сайте Difftastic есть минутное демо, полный список языков и инструкция по настройке Git.
  • Инструменты программиста

    16 сент., 05:08

    Delta делает вывод Git, diff и grep удобнее для чтенияDelta — настраиваемая программа для просмотра вывода в терминале. Она подсвечивает синтаксис и изменения внутри строк, показывает версии рядом, добавляет номера строк и позволяет переходить между файлами клавишами n и N. Работает с Git, diff, grep и ripgrep.Для Git установите пакет git-delta и настройте delta как программу просмотра. Delta определяет светлый или тёмный фон; темы подсветки берёт из набора bat. Можно улучшить отображение конфликтов слияния и превратить хеши коммитов в ссылки на GitHub, GitLab, SourceHut или Codeberg.В репозитории Delta есть начальная конфигурация и полное руководство. Попробуйте инструмент, если в больших diff сложно быстро найти нужный файл и изменённую строку.
    Иллюстрация к посту канала Инструменты программистаИллюстрация к посту канала Инструменты программиста
  • Инструменты программиста

    15 сент., 16:07

    Как перехватывать и изменять HTTPS-трафик через mitmproxymitmproxy — бесплатный инструмент с открытым исходным кодом для отладки и тестирования веб-трафика. Он перехватывает HTTP/1, HTTP/2, HTTP/3 и WebSocket-сообщения, показывает их содержимое и позволяет изменить запрос или ответ до отправки адресату.Для работы есть интерактивная командная строка и mitmweb с графическим интерфейсом, похожим на Chrome DevTools. Сценарий можно автоматизировать на Python через mitmdump: например, перенаправлять запросы на другой хост или возвращать подготовленный ответ для выбранного пути.Установить инструмент можно командой brew install mitmproxy. На странице mitmproxy есть другие варианты загрузки, примеры дополнений и описание возможностей.
  • Инструменты программиста

    15 сент., 10:40

    Как попробовать Zellij без установкиZellij — бесплатное рабочее пространство для терминала с открытым исходным кодом. На сайте Zellij есть отдельные команды пробного запуска для Bash, Zsh, fish и PowerShell. Для Bash и Zsh команда выглядит так:bash <(curl -L https://zellij.dev/launch)Перед запуском откройте и проверьте сценарий, который собираетесь выполнить. На сайте можно отдельно посмотреть его варианты для Linux и Mac или Windows. Так получится оценить Zellij до установки и затем решить, подходит ли инструмент для вашей работы в терминале.Разработчики также предлагают платный размещённый сервис для совместного доступа к сессиям. Пока он находится в бета-версии.
    Иллюстрация к посту канала Инструменты программистаИллюстрация к посту канала Инструменты программиста
  • Инструменты программиста

    15 сент., 05:13

    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.
    Иллюстрация к посту канала Инструменты программистаИллюстрация к посту канала Инструменты программиста
  • Инструменты программиста

    14 сент., 16:40

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