Инструменты программиста
13.7K subscribers
1.55K photos
137 videos
4 files
1.81K links
Полезные инструменты для программистов — бесплатные и платные

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

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

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

Регистрация в перечне РКН: https://tprg.ru/mX0S
Download Telegram
Есть классный менеджер паролей именно под разработчиков — gopass. Все секреты лежат в виде файлов, шифруются через GPG и версионируются в Git, так что вы можете хранить их локально, синхронизировать через любой git‑ремоут и при этом всегда иметь историю изменений.​

Рабочий цикл выглядит очень по консольному: из терминала листаете хранилище, смотрите пароли, генерируете новые, копируете в буфер, всё командами вроде gopass ls, gopass show, gopass generate. Поверх этого есть плагины: интеграция с браузером через gopass‑bridge, помощь с Git‑кредами, проверка паролей через Have I Been Pwned и т.п., так что одним инструментом можно закрыть и личные пароли, и секреты для проектов.​

GPG при этом даёт нормальное асимметричное шифрование: секреты зашифрованы вашим ключом, приватная часть не покидает машину, а расшаривание в команде сводится к добавлению ключей коллег в хранилище. Для кроссплатформенности gopass написан на Go и работает на macOS, Linux и Windows, так что можно настроить один git‑репозиторий с зашифрованными секретами и пользоваться им с любых рабочих машин.

Код в репо, на картинке ламповый пример работы.

@prog_tools
🔥51
SurfSense — это open‑source альтернатива NotebookLM, Perplexity и Glean: AI‑агент для исследований, который подключается к вашим личным источникам (поисковые движки, Slack, Linear, Jira, ClickUp, Confluence, Notion, Gmail, YouTube, GitHub, Discord, Airtable, Google Calendar, Luma, Elasticsearch и другие).​

Для тех, кто проспал последний год, NotebookLM — это сервис Google, где вы загружаете свои документы, и AI (Gemini) помогает вам суммировать, отвечать на вопросы, создавать FAQ, учебные материалы и подкасты, опираясь только на ваши источники.​

Что делает SurfSense:
🔘Поддерживает 100+ LLM (включая локальные Ollama) и 6000+ моделей эмбеддингов.​
🔘Продвинутый RAG: иерархические индексы (2‑уровневый), гибридный поиск (семантический + полнотекстовый), ранжирование (Pinecone, Cohere, Flashrank).​
🔘Подкаст‑агент: создаёт 3‑минутный подкаст менее чем за 20 секунд, поддерживает локальные TTS (Kokoro) и облачных провайдеров.​
🔘Поддержка 50+ форматов файлов (PDF, DOCX, видео, аудио, email и т.д.).​
🔘Self‑hostable: можно поднять через Docker Compose или вручную.​

Быстрый старт:
1️⃣git clone https://github.com/MODSetter/SurfSense
3️⃣Скопируйте .env.example в .env, добавьте API‑ключи (OpenAI, Tavily и т.д.).
3️⃣docker compose up -d
4️⃣Откройте https://localhost:3000

Где попробовать:
GitHub: https://github.com/MODSetter/SurfSense
Сайт: https://surfsense.com
Discord: https://discord.gg/ejRNvftDp9

Технический стек: FastAPI, PostgreSQL (pgvector), LangGraph, LangChain, Celery, Redis, Next.js 15, React 19, TypeScript, Docker.

@prog_tools
Media is too big
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
3🔥2
Программист смотрит, как ИИ-инструменты делают за него работу, которую он раньше любил
😁15😢6💯3💔1
Forwarded from Нейроканал
Cloud․ru открыл свою платформу, на которой можно запускать LLM и строить AI-решения внутри РФ: что-то вроде Replicate, но без проблем с доступностью и с оплатой в рублях.

Суть простая: берёшь готовую модель из каталога (GigaChat, Qwen, Llama и другие) или загружаешь свою с HuggingFace, и сразу получаешь к ней API. Без заморочек с настройкой GPU-серверов, кластеров и безопасности — всё уже настроено и работает в облаке.

Внутри Evolution AI Factory шесть сервисов:
🔘ML Inference — запуск моделей по API, совместимому с OpenAI.
🔘Foundation Models — каталог популярных моделей, готовых к использованию.
🔘AI Agents — конструктор для создания агентов, которые могут взаимодействовать с системами и принимать решения.
🔘Evolution Notebooks — JupyterLab для экспериментов.
🔘ML Finetuning — дообучение моделей на своих данных.
🔘Managed RAG — подключение внутренних баз знаний, чтобы модель отвечала только по документам компании.

Соответствует ФЗ-152, с круглосуточной поддержкой и SLA. Для компаний, которым важно держать данные в РФ и не возиться с инфраструктурой — это прямо то, что нужно. Можно быстро прототипировать идею или запустить продакшен-решение без собственной команды DevOps и ML-инженеров.

Прям импортозамещение здорового человека, такое мы любим.

@neuro_channel
Please open Telegram to view this post
VIEW IN TELEGRAM
4👍1
Termix — это опенсорсная полностью self‑hosted альтернатива Termius для управления серверами по SSH через единый веб‑интерфейс. Разворачивается в докере как бекенд и синхронизируется с клиентами под веб, Windows, Linux, macOS, iOS и Android.​

Ключевые возможности:
🔘SSH‑терминал с вкладками и сплитами до 4 панелей, кастомизацией темы и шрифтов.​
🔘SSH‑туннели с автопереподключением и мониторингом состояния.​
🔘Файловый менеджер поверх SSH: просмотр/редактирование кода, картинок, аудио/видео, загрузка/выгрузка и операции над файлами.​
🔘Менеджер хостов с тегами, папками, автозаливкой SSH‑ключей и хранением логинов.​
🔘Мониторинг: CPU, память, диск, сеть, аптайм и системная информация по любому SSH‑серверу, плюс дашборд.​

Под капотом: веб‑клиент на React + Tailwind + Shadcn, бекенд с зашифрованной SQLite, автоматическая настройка SSL, вход с OIDC и 2FA (TOTP), поддержка нескольких языков интерфейса. Проект под Apache 2.0, основной способ установки — docker‑компоуз с томом для данных, остальное — нативные сборки и приложения в сторах под все основные платформы.

Код в репо, на скриншоте как выглядит интерфейс.

@prog_tools
Please open Telegram to view this post
VIEW IN TELEGRAM
4
Forwarded from Zen of Python
pymupdf4llm-C — извлекатель текста из PDF, написанный на C для скорости работы. Обходит PDF-страницы и сериализует блоки в структурированный JSON. Есть безопасные биндинги для Python и Rust без сырых указателей. Установка через pip: pip install pymupdf4llm-c или cargo: cargo add pymupdf4llm-c.

Для каждой страницы создается JSON с массивом блоков:
[
{
"type": "paragraph|heading|table|list|figure",
"text": "content",
"bbox": [x0, y0, x1, y1],
"font_size": 11.0,
"font_weight": "normal",
"page_number": 0
}
]

Для таблиц добавляются row_count, col_count, confidence. Координаты в PDF points, типы блоков для семантической обработки.

Как использовать
from pymupdf4llm_c import to_json

# В память
results = to_json("report.pdf", collect=True)
for page in results:
for block in page:
if block['type'] == 'table':
process_table(block) # свой код для таблиц

Можно писать в файлы: to_json(pdf_path, output_dir=Path("json")). Для Rust есть to_json_collect() и extract_page_json().

Полезно, когда:
— требуется предсказуемая структура для векторных баз;
— нужно различать заголовки, списки, таблицы при чанкинге;
— скорость критична: C-реализация быстрее Python-аналогов;
— работаешь с документами, где важна иерархия и расположение элементов.

Перед использованием нужно собрать: ./build.sh. Проект свежий, но рабочий. Код в репо.

@zen_of_python
3👍1
В свежем Git 2.52 подъехало несколько реально полезных штук, которые можно трогать руками уже сейчас:​

🔘Появилась команда git last-modified, которая за один проход показывает последний коммит для каждого файла в директории и работает примерно в 5,5 раза быстрее типичного скрипта ls-tree + git log -1.

🔘В git maintenance добавили задачу geometric: она делает «геометрические» репаки без огромного all‑into‑one git gc, но периодически всё же запускает полный GC и чистит мусор — это сильно упрощает жизнь большим репозиториям.​

🔘Новый экспериментальный git repo даёт быстрый доступ к сводной информации о репо (git repo info, git repo structure), а git refs list/exists объединяют общие операции с ref’ами в один инструмент.​

🔘Для тех, кто живёт на sparse-checkout, добавили git sparse-checkout clean, который приводит рабочую директорию в порядок, если после изменения масок остались «лишние» файлы.​

Под капотом 2.52 закладывает фундамент под Git 3.0: продолжается переход к SHA‑256 с возможностью работать между репозиториями на разных хешах, расширено использование Bloom‑фильтров для ускорения path‑запросов, а ещё появилась опциональная сборка с WITH_RUST, где часть служебной логики уже переписана на Rust. В третьей версии Rust станет обязательной зависимостью, а новый формат хешей и другие «ломающие» изменения уже тестируются через специальные build‑флаги.​

С Git 3.0 по умолчанию поменяется и имя первой ветки: init.defaultBranch станет main вместо master, так что новые репозитории сразу будут создаваться с main без дополнительной настройки. К этому переходу экосистема уже давно готова: GitHub и GitLab по умолчанию создают новые проекты с веткой main, оставляя master только там, где его явно настроили сами пользователи.​

Для ценителей — оригинальные релиз-ноутсы. На картинке пример использования git last-modified — средняя колонка с листинга файлов на GitHub.

Инструкции по установке и обновлению там же где и всегда.

@prog_tools
Please open Telegram to view this post
VIEW IN TELEGRAM
6👍4
Если вы не хотите поднимать свой почтовый сервер с DNS, SPF, DKIM и прочим цирком, но хотите нормальный веб‑клиент под своим контролем, то есть один любопытный проект. Это современный самописный веб‑мейл, который не заменяет почтовый хостинг, а подключается к существующим провайдерам вроде IMAP/SMTP, SES, SendGrid, Mailgun, Postmark и собирает всё в один быстрый интерфейс. Данные и учётки лежат на вашем сервере, никакой внешней телеметрии, а по ощущениям это «Gmail‑лайк UI», только без привязки к одному вендору.​

Что умеет Kurrier как веб‑почта:​
🔘Подключать сразу несколько источников: IMAP/SMTP, SES, SendGrid, Mailgun и любые совместимые SMTP/IMAP‑шлюзы.​
🔘Давать единый интерфейс для чтения, отправки, поиска и работы с несколькими личностями/адресами.​
🔘Работать как self‑hosted приложение без внешних зависимостей, с фокусом на приватность и контроле данных.​
🔘Быть «дружелюбным к разработчику»: чистые JSON‑структуры, дельта‑синхронизация писем, плагины и готовность к автоматизации.​

Технически внутри это Next.js + Nitro‑воркер, PostgreSQL и Redis, всё упаковано в Docker‑окружение, которое можно поднять на обычном VPS или даже Raspberry Pi. Из требований — по документации достаточно 1 ГБ ОЗУ и 1 vCPU (2 ГБ рекомендуют для продакшена), а деплой по сути сводится к docker compose up и заполнению .env с провайдерами и доменом:
git clone https://github.com/kurrier-org/kurrier
cd kurrier
cp .env.example .env # правим провайдеров и домен
docker compose up -d


Этот пример повторяет базовые шаги из официальной инструкции, но в проде всё равно стоит дочитать доку про туннели, домен и вебхуки.​

Проект свежий, активно развивается, уже есть десятки релизов и несколько сотен звёзд на GitHub, так что сейчас самое время попробовать и, если зайдёт, накидать issues или pull request.

@prog_tools
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥81
pad.ws — это доска для рисования, которая одновременно является полноценной средой разработки прямо в браузере. По сути, у вас один бесконечный холст, где можно рисовать схемы, а рядом открывать терминал и редактор кода, подключённый к облачной Ubuntu‑машине.​

Полгода назад эта поделка стала опенсорсной, теперь можно поднять на своём сервере.

В центре — доска на базе Excalidraw: рисуешь архитектуру, последовательности запросов, схемы баз, заметки — как в Miro. Прикол в том, что можно также кинуть на доску терминал и веб‑IDE (VS Code или Cursor), которые работают поверх облачного dev‑окружения, так что из блок‑схемы можно сразу провалиться в код и запустить его. Это удобно, когда нужно не прыгать между Miro, IDE и SSH, а держать всё в одном окне.​

В репозитории есть docker‑compose с PostgreSQL для хранения досок, Redis для кеша и сессий, Keycloak для входа по OIDC и отдельным контейнером с самим pad (FastAPI + фронтенд). Лицензия MIT, основной стек — TypeScript на фронте, Python на бэкенде, так что при желании можно допилить под свои нужды.​

Код в репо, демо на сайте.

@prog_tools
🤯7🔥3
Вышла вторая версия Torrra — это TUI‑клиент, который позволяет искать и качать торренты прямо из консоли, без браузера и без отдельного GUI‑клиента. Сделан на Python, интерфейс собран на Textual, так что всё выглядит аккуратно и отзывчиво.​

Можно подключаться к своим индексаторам Jackett или Prowlarr, смотреть результаты поиска и выбирать чем качать — через встроенный движок на базе libtorrent или передать внешний magnet в свой любимый клиент. Автор утверждает, что в версии v2 серьёзно ускорил UI, улучшил навигацию, прокачал поиск и работу с несколькими торрентами сразу, плюс почистил интеграцию с индексаторами и полирнул раскладку интерфейса.​

Установить можно через pipx install torrra, либо взять пакеты из AUR, Homebrew, докер‑образ или готовые бинарники под основные платформы. После установки минимальный сценарий такой: поднимаете Jackett или Prowlarr, запускаете torrra jackett --url https://localhost:9117 --api-key <ключ>, а дальше стрелками ходите по списку, Enter — скачать, p — пауза, r — продолжить, q — выйти.​

Поведение можно подкрутить через config.toml: задать дефолтные индексаторы, пути, какие клиенты использовать, чтобы каждый раз не вбивать одно и то же в аргументах. Проект кроссплатформенный (Linux/macOS/Windows) и живой: есть документация и регулярные релизы.

Код в репо, на видео демонстрация работы.

@prog_tools
This media is not supported in your browser
VIEW IN TELEGRAM
👍43
Два топовых проекта для безопасной передачи файлов

1️⃣LocalSend — опенсорсный AirDrop внутри одной сети, где устройства просто находят друг друга по локальному бродкасту. Про это вы скорее всего слышали уже. А вот дальше интереснее.

3️⃣AltSendme — свежий p2p‑AirDrop через интернет: создаёте тикет, второй человек вводит его у себя, оба клиента идут в сеть iroh, находят друг друга по этому идентификатору и устанавливают зашифрованный QUIC‑туннель напрямую, минуя любые облачные хранилища.​

Чтобы всё это работало за NAT, iroh сначала пытается пробить прямое соединение (NAT hole punching), а если не получается — временно использует релей‑сервер: он просто прокидывает зашифрованный трафик, пока нельзя выйти на прямой маршрут, после чего трафик идёт уже только между пир‑клиентами. Публичные релеи держит команда iroh и даёт их по умолчанию всем желающим, но код релея открыт: есть crate iroh-relay, если хочется полностью контролировать инфраструктуру и не зависеть от чужих узлов.

@prog_tools
This media is not supported in your browser
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥51
CameraLink — это минималистичная опенсорс‑приложуха, которая превращает старый Android‑смартфон (Android 12+) в IP‑камеру с обычным HTTP и MJPEG‑стримом. Оно поднимает на телефоне встроенный веб‑сервер, даёт поток по /stream, кадры по /snapshot и продолжает стримить даже с выключенным экраном, плюс умеет пинговать Tailscale‑пиры, чтобы телефон не засыпал для удалённого доступа.​

Как пользоваться
1️⃣Установите APK (или соберите сами), запустите, выдайте доступ к камере и foreground‑сервисам, нажмите Start Streaming — на экране появится URL вида https://IP_телефона:8080.​
3️⃣Откройте этот адрес с любого устройства в той же сети (браузер или VLC) и смотрите /stream (видео) или /snapshot (кадры).​
3️⃣Для удалённого доступа через интернет настройте Tailscale: приложение будет раз в N секунд пинговать указанные MagicDNS‑имена/100.64.x.x‑адреса, чтобы туннель не простаивал.​

Быстрый старт из исходников:
1️⃣git clone https://github.com/onepersonhere/camera-link && cd camera-link;
3️⃣./gradlew assembleDebug && ./gradlew installDebug (или запуск через Android Studio);
3️⃣На телефоне отключите оптимизацию батареи для CameraLink — тогда foreground‑сервис с wake lock будет стабильно держать камеру и сеть часами.​

Дальше можно тонко настроить порт HTTP, выбор фронтальной/тыловой камеры, JPEG‑качество, FPS и список Tailscale‑пиров через константы в CameraStreamingService, StreamingServer и TailscalePinger. Это готовый код для домашнего видеонаблюдения, умного дверного глазка или своей NVR‑системы без облаков и сторонних серверов.​

@prog_tools
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥4