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

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

الذهاب إلى القناة على Telegram

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

إظهار المزيد

📈 نظرة تحليلية على قناة تيليجرام Инструменты программиста

تُعد قناة Инструменты программиста (@prog_tools) في القطاع اللغوي الروسية لاعباً نشطاً. يضم المجتمع حالياً 12 938 مشتركاً، محتلاً المرتبة 9 552 في فئة التكنولوجيات والتطبيقات والمرتبة 50 273 في منطقة روسيا.

📊 مؤشرات الجمهور والحراك

منذ تأسيسه في невідомо، حقق المشروع نمواً سريعاً وجمع 12 938 مشتركاً.

بحسب آخر البيانات بتاريخ 26 أغسطس, 2026، تحافظ القناة على نشاط مستقر. خلال آخر 30 يوماً تغيّر عدد الأعضاء بمقدار -80، وفي آخر 24 ساعة بمقدار -8، مع بقاء الوصول العام مرتفعاً.

  • حالة التحقق: غير موثّقة
  • معدل التفاعل (ER): يبلغ متوسط تفاعل الجمهور 10.43‎%. وخلال أول 24 ساعة من النشر يحصد المحتوى عادةً 5.90‎% من ردود الفعل نسبةً إلى إجمالي المشتركين.
  • وصول المنشورات: يحصل كل منشور على متوسط 1 349 مشاهدة. وخلال اليوم الأول يجمع عادةً 763 مشاهدة.
  • التفاعلات والاستجابة: يتفاعل الجمهور بانتظام؛ متوسط التفاعلات لكل منشور يبلغ 4.
  • الاهتمامات الموضوعية: يركز المحتوى على مواضيع رئيسية مثل github, git, docker, install, api.

📝 الوصف وسياسة المحتوى

يصف المؤلف القناة بأنها مساحة للتعبير عن الآراء الذاتية:
Полезные инструменты для программистов — бесплатные и платные Разместить рекламу: @tproger_sales_bot Правила общения: https://tprg.ru/rules Другие каналы: @tproger_channels Регистрация в перечне РКН: https://tprg.ru/mX0S

بفضل وتيرة التحديث المرتفعة (أحدث البيانات بتاريخ 27 أغسطس, 2026) تحافظ القناة على حداثتها ومستوى وصول مرتفع. وتُظهر التحليلات تفاعلاً نشطاً من الجمهور، ما يجعلها نقطة تأثير مهمة ضمن فئة التكنولوجيات والتطبيقات.

12 938
المشتركون
-824 ساعات
-217 أيام
-8030 أيام
أرشيف المشاركات
PocketBase — бэкенд в одном исполняемом файле: внутри SQLite, пользователи, файлы, REST API, подписки в реальном времени и админка. Рядом не нужны ни отдельная база, ни очередь. 23 августа вышла версия 0.40.0: 🔘 ошибки команд и перехваченные паники доходят до app.Start(): программа завершается ненулевым кодом, но хук app.OnTerminate всё равно отрабатывает; 🔘 появился DELETE /api/logs и кнопка в интерфейсе — удалить все логи, не трогая настройку хранения maxDays; 🔘 размер Log.Data ограничен примерно 16 килобайтами на случай, когда в лог пишут непроверенные пользовательские данные; лишнее помечается флагом __pb_truncated__; 🔘 создание резервной копии больше не держит базу в транзакции; 🔘 в заголовки по умолчанию добавлен Cross-Origin-Opener-Policy: same-origin; 🔘 modernc.org/sqlite обновлён до 1.57.0, а защитный режим SQLite включается по умолчанию через _defensive=1. Порог входа поднялся: нужен Go 1.27 и encoding/json/v2. Автор советует сначала проверить приложение локально — в Go 1.27 старый encoding/json переведён на v2 под капотом и обратно совместим не полностью. Supabase выигрывает как управляемый сервис на PostgreSQL, когда нужны масштабирование и команда. PocketBase выигрывает, когда приложение должно жить одним файлом на одной машине; до версии 1.0 его API ещё меняется. 60,8 тысячи звёзд. Язык: Go. Лицензия: MIT. @prog_tools

Мышь Logitech умеет больше, чем показывает система: переназначение кнопок, DPI, поведение колеса, жесты. Штатно это настраивается только через Logitech Options+, а под Linux его просто нет. OpenLogi говорит с устройствами по HID++ напрямую — без аккаунта и телеметрии. Вся конфигурация лежит в одном TOML-файле, который можно синхронизировать между машинами, и рядом с интерфейсом есть полноценная командная строка. 23 августа вышла версия 0.7.10: 🔘 ошибки открытия HID теперь видны в статусе агента, а не гасят работу молча; 🔘 интерфейс проверяет код возврата вспомогательного процесса при запуске агента; 🔘 openlogi list читает список устройств у уже запущенного агента; 🔘 нажатие на колесо-качельку перестало вызывать App Exposé, а прокрутка идёт на родную величину колеса; 🔘 корректно пересобранные записи об устройствах больше не выбрасываются. Options+ выигрывает официальной поддержкой и обновлением прошивок, и запускать их одновременно нельзя: приложения дерутся за доступ по HID++, ресивером владеет кто-то один. Сам проект честно пишет, что находится в активной разработке и стабильным пока не является. OpenLogi берёт своё там, где Options+ нет вовсе, и там, где настройки хочется держать текстом. Больше 15 тысяч звёзд. Язык: Rust. Лицензия: Apache-2.0 или MIT на выбор. @prog_tools

tuicr — просмотрщик диффов для терминала, где можно оставлять построчные замечания, как в интерфейсе пул-реквеста, и одной ко
tuicr — просмотрщик диффов для терминала, где можно оставлять построчные замечания, как в интерфейсе пул-реквеста, и одной командой отправить их ревью в GitHub, GitLab или Bitbucket. Управление вимовское, работает поверх git, jj и Mercurial. 🔘 Смотреть можно незакоммиченные правки, диапазон коммитов или чужой пул-реквест. Дифф идёт сплошным потоком по всем файлам, как на вебе. 🔘 Отметки «файл просмотрен» сохраняются между запусками, так что большое ревью можно бросить и вернуться. Клавиша H прячет уже отмеченное. 🔘 20 августа вышла версия 0.23.1, двумя днями раньше — 0.23.0 с командой :summary. git diff универсальнее и не требует авторизации, но построчных замечаний и памяти о прогрессе у него нет. gh pr review выставляет официальный статус ревью, чего локальный просмотр не умеет, зато инлайн-комментарии через него не оставить. Для отправки tuicr нужны авторизованные gh, glab или bkt; у Bitbucket пока нет Request changes и черновиков. Звёзд на GitHub 2820 на 21 августа. @prog_tools

Есть у нас один знакомый разработчик, который давно не отдыхал. Последний отпуск — где-то в районе позапрошлого года. Чемодан
Есть у нас один знакомый разработчик, который давно не отдыхал. Последний отпуск — где-то в районе позапрошлого года. Чемодан на антресолях, паспорт неизвестно где, в комнате — бардак. Сам он не соберётся, нужна ваша помощь → https://tprg.ru/0Q5k

bottom, в командной строке btm, — системный монитор для терминала: процессор, память, swap, сеть, диски, температуры, батарея и дерево процессов графиками на одном экране. 13 августа вышла версия 0.14.8, у проекта 13,9 тыс. звёзд на 17 августа. 🔘 релиз небольшой: починены закрытие меню сортировки по Enter, обработка значения swap в cgroups v1 и ссылки в JSON-схеме конфига; 🔘 графики масштабируются по времени, есть фильтры процессов, темы и собственные раскладки виджетов; 🔘 одна и та же сборка работает на Linux, macOS и Windows. Альтернатива — htop: он есть в каждом дистрибутиве, проще и понятнее с первого взгляда, и для задачи «найти и убить процесс» его хватает. bottom берёт графиками во времени и тем, что показывает всё сразу, включая сеть и температуры; из той же ниши btop с более нарядным интерфейсом. @prog_tools

Network Doctor — консольная утилита, которая отвечает на вопрос «интернет вроде есть, а сервис не работает — где именно рвётся». Одна команда netdoc github.com прогоняет цепочку интерфейс, DNS, TCP, TLS, HTTP, прокси и path MTU и пишет вердикт обычным языком: DNS упал, всё зависимое пропущено, чинить надо запись. 14 августа вышла версия 1.11.4; у репозитория 253 звезды на 17 августа, проект молодой. 🔘 netdoc host:22 проверяет путь до SSH и баннер, netdoc без цели — локальный интерфейс, выход в интернет, прокси и Wi-Fi; 🔘 --watch ловит плавающие сбои, --json и коды выхода 0/1/2 годятся для скриптов и баг-репортов; 🔘 root не нужен даже для path MTU: только непривилегированные сокеты; 🔘 Linux, macOS, Windows; ставится через Homebrew, Scoop и winget. Альтернатива — связка ping, dig, curl -v и mtr: она есть везде и показывает больше деталей, а mtr лучше видит потери по хопам. Network Doctor выигрывает, когда нужен не набор выводов, а ответ, чья это проблема: сети, пути или сервиса. @prog_tools

Подключились по SSH к незнакомой базе, и дальше начинается археология: как называется таблица, какие в ней колонки, не снесёт ли этот UPDATE пол-базы. pgcli — терминальный клиент PostgreSQL, который подсказывает по ходу набора запроса. 🔘 после FROM предлагает таблицы, после WHERE — колонки именно этих таблиц, учитывает псевдонимы; 🔘 подсвечивает синтаксис и печатает результат ровной таблицей; 🔘 \d, \dt, \dn, \du, \dx показывают устройство схемы, пользователей и расширения; 🔘 --warn all предупреждает перед разрушительным запросом, прежде чем выполнить; 🔘 --row-limit не даёт случайно вывалить в терминал миллион строк; 🔘 --auto-vertical-output разворачивает широкие результаты по вертикали, когда они не влезают; 🔘 \watch, \timing и \copy закрывают повторный запуск запроса, замер времени и выгрузку. Для скриптов и полного покрытия возможностей PostgreSQL остаётся psql: он есть везде и ничего лишнего не делает. pgcli удобнее там, где вы руками разбираетесь в чужой базе. 13,3 тысячи звёзд. Язык: Python. Лицензия: BSD-3-Clause. @prog_tools

После выката надо свести три лога: веб-сервера, приложения и системный. Обычно это заканчивается связкой tail | grep | less в трёх окнах и ручным сопоставлением времени. lnav открывает все файлы сразу, распознаёт формат каждого, распаковывает сжатые и показывает записи одной лентой по времени. 🔘 lnav app.log nginx/ syslog.gz — файлы, каталоги и архивы вперемешку, форматы определяются сами; 🔘 e и E прыгают к предыдущей и следующей ошибке, не заставляя искать глазами; 🔘 / ищет регулярным выражением, :highlight подсвечивает совпадения дальше по ленте; 🔘 ; открывает SQL по логам: записи разобраны на поля, и по ним можно считать группировки; 🔘 i рисует гистограмму сообщений по времени — сразу видно всплеск; 🔘 P разворачивает структурированный текст вроде JSON в читаемый вид; 🔘 F5 повторяет текущую операцию, включая последний SQL-запрос, когда логи доехали. Для веб-аналитики с отчётами удобнее goaccess, для потоковой обработки в конвейере — angle-grinder. lnav сильнее именно как интерактивный просмотр разнородных логов на одной машине. 10,5 тысячи звёзд. Язык: C++. Лицензия: BSD-2-Clause. @prog_tools

Баг воспроизводится раз в сотню запусков, а под отладчиком не воспроизводится вообще. rr записывает выполнение программы под Linux целиком, а потом проигрывает эту запись сколько угодно раз — с точностью до инструкции. Тот самый неудачный запуск можно пересматривать, ставить точки останова задним числом и двигаться по времени назад. 🔘 rr record ./program записывает выполнение вместе со всем, что программа получила извне; 🔘 rr replay открывает запись в GDB, где работают привычные команды; 🔘 reverse-cont продолжает выполнение назад — от места падения к причине; 🔘 watch -l ставит аппаратную точку наблюдения за адресом, после чего можно откатиться к предыдущей записи в него; 🔘 повторный run проигрывает тот же след заново, сохраняя расставленные точки останова; 🔘 rr pack делает след самодостаточным, чтобы передать его коллеге; 🔘 записываются деревья процессов и потоки, а режим хаоса помогает выловить редкие варианты планирования. Ограничения честные: только Linux и только на процессорах с подходящими счётчиками производительности. Обычные GDB и LLDB переносимее, но обратной отладки не дают. 10,6 тысячи звёзд. Язык: C++. Лицензия: MIT. @prog_tools

Сервис на проде внезапно ест процессор. Перезапускать с профилировщиком нельзя: проблема как раз пропадёт. py-spy подключается к уже работающему процессу Python по идентификатору и показывает, где тот проводит время. Код менять не нужно, перезапускать тоже, сам процесс при этом продолжает работать. 🔘 py-spy top --pid 1234 — живой список горячих функций, как top, только по функциям; 🔘 py-spy record -o profile.svg --pid 1234 — запись flame graph в файл; 🔘 py-spy dump --pid 1234 — стеки всех потоков прямо сейчас, полезно, когда процесс завис; 🔘 --locals добавляет к стекам значения локальных переменных; 🔘 --subprocesses включает дочерние процессы и обработчики очередей; 🔘 --native показывает и нативные расширения, а --gil отделяет время под глобальной блокировкой; 🔘 --nonblocking не приостанавливает процесс ради снимка — чуть менее точно, зато безопаснее на проде. Встроенный cProfile требует запускать программу под собой, pyinstrument — правки кода. Если нужен разбор ещё и памяти с видеокартой, смотрите в сторону Scalene, но для «зайти и посмотреть, что происходит прямо сейчас» py-spy проще. 15,2 тысячи звёзд. Язык: Rust. Лицензия: MIT. @prog_tools

Профилировщик выдал десятки тысяч стеков вызовов. Читать это построчно бессмысленно, и ровно для этого Брендан Грегг придумал флейм-графы — способ свернуть все стеки в одну картинку. Читается она не так, как кажется на первый взгляд. По горизонтали не время, а совокупная частота: ширина блока показывает, в скольких снимках встретился этот кадр. По вертикали — глубина вызовов, родитель снизу, потомки сверху. Верхняя кромка — то, где программа реально находилась в момент снятия. Цвет смысла не несёт, он нужен только чтобы блоки различались. Появилась техника из практической беды: трассировка производительности MySQL оказалась слишком дорогой, и вместо полного трассирования Грегг стал брать выборку стеков. Скрипты работают поверх perf, DTrace, SystemTap, eBPF и профилировщиков Windows. Кроме обычного графа по процессору есть графы по памяти, по времени вне процессора, разностные и горячие-холодные. Отдельно стоит запомнить разницу: во флейм-чарте ось X — это действительно время, во флейм-графе — нет. @prog_tools

Bun — среда выполнения JavaScript и TypeScript, которая заодно работает пакетным менеджером, сборщиком и тест-раннером: один
Bun — среда выполнения JavaScript и TypeScript, которая заодно работает пакетным менеджером, сборщиком и тест-раннером: один бинарник вместо связки node, npm, tsx и jest. 20 августа вышла версия 1.4. Главное в ней — совместимость: в набор, который гоняется на каждом коммите, добавили 1517 тестов из официального тестового набора Node.js; файлов этого набора теперь проходит 3743 против 1450 на версии 1.2. node:events и node:sqlite проходят его на 100%, node:quic на 99%, node:http, node:fs, node:cluster и node:stream на 97%. Под Bun заработали Playwright, vitest и Next.js 16 с Turbopack. Простой процесс ест впятеро меньше процессора, память до 35% меньше, старт на Linux быстрее наполовину. Реализация переписана с Zig на Rust. Релиз задержался на три месяца — самый долгий разрыв между стабильными версиями с 2022 года. Теро Пиирайнен посчитал авторство коммитов за месяц: 15,8 тысячи от бота robobun, 790 от Джарреда Самнера. Полной совместимости с Node.js по-прежнему нет, команда это признаёт. @prog_tools

DuckDB — аналитическая база, которая живёт внутри вашего процесса, как SQLite. Отличие в том, что SQLite заточена под много мелких операций со строками, а DuckDB под запросы, которые читают миллионы строк и считают агрегаты. Практический смысл: SQL прямо по файлам Parquet и CSV, без поднятия сервера и без загрузки данных куда-либо. Именно из-за этого сценария важен свежий выпуск 1.5.5 от 22 июля: файлы часто приходят извне, а база встроена в приложение, поэтому падает не отдельный сервер, а весь процесс. 🔘 перенесены исправления чтения за границами выделенной памяти; 🔘 разбор Parquet отклоняет страницы DATA_PAGE_V2 с несогласованным полем сжатого размера; 🔘 исправлена взаимная блокировка в управлении временной памятью; 🔘 в журнал HTTP-запросов добавлены длина тела и ошибки транспорта — полезно при чтении данных прямо из S3. Выпуск целиком про исправления, ломающих изменений нет. @prog_tools

В университетах учат алгоритмам и системам, но не учат пользоваться инструментами, на которых стоит вся работа. MIT сделал под это отдельный курс — The Missing Semester of Your CS Education: одиннадцать лекций примерно по часу, с конспектами, упражнениями и видео, бесплатно. Что разбирают: устройство оболочки и почему пробелы и кавычки ведут себя так странно; перенаправление потоков и конвейеры; сценарии на bash с переменными, циклами и кодами возврата; редактор Vim по режимам; управление процессами, сигналы, jobs, fg, bg, nohup; модель git как ориентированного графа из объектов; отладка через логи, gdb, strace и профилировщики; сборку и Makefile; хеши, энтропию и ssh; обработку данных стандартными утилитами. Это тот случай, когда курс полезнее не студенту, а практикующему разработчику: большинство пробелов в этих темах закрываются годами по крупицам, а тут они собраны в один заход с упражнениями. Ссылка ведёт на архив 2020 года — самодостаточный и без современных дополнений. @prog_tools

k6 гоняет нагрузочные тесты, которые пишутся обычным JavaScript и запускаются одной командой из терминала. Сценарий лежит в репозитории рядом с кодом, порог вида «99-й перцентиль меньше трёх секунд» описывается прямо в файле, а результат печатается в консоль или уезжает в дашборд. 🔘 HTTP, WebSockets, gRPC и браузерные сценарии в одном инструменте; 🔘 в версии 2.2.0 от 10 августа появился chromium.connectOverCDP(), то есть тест можно подключить к уже запущенному Chromium и брать адрес сессии во время выполнения; 🔘 TextEncoder и TextDecoder стали глобальными, а в экспериментальных потоках появился WritableStream; 🔘 SharedArray перестал замораживать примитивы и оборачивать длинные строки в объекты: в присланной репродукции потребление памяти упало примерно с 1 ГБ до 100 МБ. Очевидная альтернатива это JMeter, и по ряду пунктов он лучше: графический редактор тест-планов, запись сценариев и протоколы, которых у k6 нет вовсе, вроде JDBC, LDAP, FTP и JMS. k6 берёт другим: тест это код в git, запускается в CI одной командой и ревьюится как обычный пул-реквест. Оговорка из документации: на больших тестах узким местом становится сама машина-генератор, и завышенная задержка окажется вашей собственной. Авторы советуют оставлять около 20% процессора свободными.

brew install k6
@prog_tools

just — запускальщик команд проекта. Ту же роль обычно играет Makefile, но make всё-таки система сборки: он думает про файлы и зависимости, ругается на пробелы вместо табов и норовит не выполнить цель, если рядом лежит одноимённый файл. В justfile пишутся просто именованные команды с аргументами, и это всё, что нужно, когда цель — собрать в одном месте «прогнать тесты», «поднять окружение», «выложить». 3 августа вышла версия 1.58.0, небольшая: 🔘 у рецепта появился атрибут [timestamp], печатающий время выполнения, — удобно для долгих сборок, где раньше приходилось обкладывать команду вызовами date; 🔘 у него же есть аргумент формата; 🔘 --justfile-name теперь принимает несколько имён через запятую; 🔘 при форматировании вокруг выражений подстановки добавляются пробелы. Ломающих изменений нет. @prog_tools

blitcp копирует файлы по карте диска: сначала строит карту, потом читает данные в том порядке, в каком они физически лежат. Задача та же, что у cp и rsync, разница проявляется на множестве мелких файлов и на медленных носителях, то есть на HDD, флешках и NAS. 🔘 склеивает мелкие файлы в один поток чтения; 🔘 пропускает дубликаты по хешу xxHash-128; 🔘 умеет reflink и жёсткие ссылки, понимает разрежённые файлы; 🔘 после копирования сверяет результат с исходником. Цифры авторы приводят в заметках к версии 4.0.2: 85 ГБ с NVMe на USB скопировались за 44 минуты 47 секунд вместо часа и четырёх минут, а построение карты диска в Windows для 6600 файлов ускорилось с 12 минут 48 секунд до 0,7 секунды, потому что теперь файл открывается только на чтение атрибутов и Windows Defender не сканирует его содержимое. На тесте в Linux с 12 347 мелкими файлами вышло 5,93 секунды против 14,14 у rsync и 14,99 у cp -ar. Автор сам говорит, где его инструмент не нужен: на быстром SSD без дубликатов обычный cp лучше, потому что хеширование и анализ диска добавляют накладные расходы. Для инкрементальной синхронизации с удалённым сервером rsync тоже остаётся более подходящим, и автор это признаёт.

mkdir -p ~/.local/bin && curl -fsSL https://raw.githubusercontent.com/gekap/blitcp/v4.0.2/blitcp.py -o ~/.local/bin/blitcp && chmod +x ~/.local/bin/blitcp
Для работы по SSH дополнительно нужен paramiko. @prog_tools

Проблема с git не в командах, а в том, что непонятно, что они делают с графом коммитов. Learn Git Branching решает это буквально: вы вводите команду, и на экране двигаются кружочки и стрелки. Песочница живёт целиком в браузере, ничего ставить и регистрироваться не нужно. Уровни идут от простого к сложному: создание веток, движение HEAD, разница между merge и rebase, cherry-pick, отличие reset от revert, работа с удалённым репозиторием, разрешение конфликтов. Есть свободный режим, где можно ломать что угодно и откатывать через undo. Особенно полезно тем, кто уже несколько лет пользуется git по трём заученным командам и каждый раз боится перебазирования. После пары уровней становится видно, что ветка — это просто указатель на коммит, и половина страха уходит. Проекту тринадцать лет, и он не устарел: модель коммитов и ссылок с тех пор не менялась, а тренажёр учит именно ей, а не кнопкам конкретного интерфейса. @prog_tools

DuckDB — база данных, которая живёт прямо внутри вашего процесса: ставится как библиотека, читает Parquet и CSV с диска и счи
DuckDB — база данных, которая живёт прямо внутри вашего процесса: ставится как библиотека, читает Parquet и CSV с диска и считает по ним аналитические запросы, без сервера и настройки. Примерно как SQLite, только заточенная не под строки, а под колонки и тяжёлые агрегаты. Авторы показали превью версии 2.0, релиз обещают осенью. Главная перемена в том, что база перестаёт быть только внутрипроцессной: расширение quack даёт сетевой протокол, и через CONNECT один DuckDB подключается к другому, запрос выполняется на сервере, а результат течёт обратно. Кроме этого — триггеры BEFORE и AFTER, тип VARIANT как полноценный, асинхронный ввод-вывод, новый парсер SQL и новый формат хранения. Рекурсивный обход графа из миллиона рёбер в замерах авторов ускорился с 4,90 до 0,12 секунды. @prog_tools

⚡️ О!Хакатон возвращается — на кону миллион Приглашаем Go- и Python-разработчиков, аналитиков и продакт-менеджеров на тревел-
⚡️ О!Хакатон возвращается — на кону миллион Приглашаем Go- и Python-разработчиков, аналитиков и продакт-менеджеров на тревел-тех хакатон от Островка. Вам предстоит решить одну из двух AI-задач в сфере тревел-теха и побороться за главный приз — 1 000 000 ₽. Присоединиться к хакатону можно из любой точки мира. Участвуйте командой до пяти человек и выбирайте один из двух треков: ✔️ «О!дин запрос». Цель для junior-специалистов — создать AI-агента для путешествий и отелей. ✔️ «О!дин шаг до идеального отеля». Задача для специалистов уровней middle и senior — «переизобрести» опыт бронирования пользователя с помощью AI и новых интерфейсных механик. 📎 Регистрация открыта до 16 октября 2026 года. Стартуем 23 октября. Скорее присоединяйтесь по ссылке!