Forwarded from Zen of Python
Свежий пет-проект от (видимо) скучающего на досуге питониста — терминальный Git‑клиент на чистом Python, вдохновлённый LazyGit; ставится через pip и работает без внешнего git CLI. Попробовать:
Что даёт: навигация по коммитам, просмотр diff, панель статусов файлов в стиле VSCode, ветко‑зависимая история и индикаторы «пушнуто/локально» без вызова системного git.
Зачем: когда в окружении нельзя ставить ничего кроме Python‑пакетов, нужен «чисто Python» инструмент для Git с удобной навигацией и минимумом интеграций.
Автор просит фидбек по недостающим функциям и удобству UI, так что можете отписаться в репозитории. Вам плюсик в карму, автор порадуется.
Проект, послуживший вдохновением: https://github.com/jesseduffield/lazygit
Ну и, конечно, кто-то написал аналог на Rust, чтобы было ультра-быстро, а скорее просто потому что может: https://github.com/gitui-org/gitui
Как вам такие поделки? Как минимум романтично же, консольные клиенты как будто пахнут старыми добрыми временами, вы не находите?
@zen_of_python
pip install pygitzen.Что даёт: навигация по коммитам, просмотр diff, панель статусов файлов в стиле VSCode, ветко‑зависимая история и индикаторы «пушнуто/локально» без вызова системного git.
Зачем: когда в окружении нельзя ставить ничего кроме Python‑пакетов, нужен «чисто Python» инструмент для Git с удобной навигацией и минимумом интеграций.
Автор просит фидбек по недостающим функциям и удобству UI, так что можете отписаться в репозитории. Вам плюсик в карму, автор порадуется.
Проект, послуживший вдохновением: https://github.com/jesseduffield/lazygit
Ну и, конечно, кто-то написал аналог на Rust, чтобы было ультра-быстро, а скорее просто потому что может: https://github.com/gitui-org/gitui
Как вам такие поделки? Как минимум романтично же, консольные клиенты как будто пахнут старыми добрыми временами, вы не находите?
@zen_of_python
👍4❤1🔥1
Windows 10/11 по умолчанию содержит кучу лишних программ: 3D Paint, XBox Game Bar, Bing web search, Phone Link и т.п. С годами и очередными обновлениями их становится всё больше, а система начинает заметно подтормаживать, особенно не на самых современных компьютерах.
Существует целый набор инициатив по очистке всего лишнего быстро и одним махом. Гуглится по Windows Debloat.
Вот один быстрый проверенный вариант:
1. Открыть PowerShell от имени администратора.
2. Вбить
3. Выбрать вариант 1 — быстрое применение рекомендуемых изменений.
Или вот ещё один инструмент с графическим интерфейсом (на картинке к посту), можно кнопочки потыкать.
Если же хотите ультимативное ускорение — попробуйте кастомные сборки, из которых энтузиасты уже предварительно выкинули всё лишнее. Это самый действенный способ, Windows становится заметно отзывчивей.
@prog_tools
Существует целый набор инициатив по очистке всего лишнего быстро и одним махом. Гуглится по Windows Debloat.
Вот один быстрый проверенный вариант:
1. Открыть PowerShell от имени администратора.
2. Вбить
& ([scriptblock]::Create((irm "https://debloat.raphi.re/")))3. Выбрать вариант 1 — быстрое применение рекомендуемых изменений.
Или вот ещё один инструмент с графическим интерфейсом (на картинке к посту), можно кнопочки потыкать.
Если же хотите ультимативное ускорение — попробуйте кастомные сборки, из которых энтузиасты уже предварительно выкинули всё лишнее. Это самый действенный способ, Windows становится заметно отзывчивей.
@prog_tools
🔥2👎1
This media is not supported in your browser
VIEW IN TELEGRAM
Бро, ты можешь тут реализоваться и т.д.
Став частью ОТП Банка, именно ты сделаешь сильнее всю команду! Расти, учись и пробуй новое — это твой шанс создать что-то по-настоящему крутое.
Присоединяйся к ребятам и делись роликом с теми, кто тоже готов к переменам 🚀
Став частью ОТП Банка, именно ты сделаешь сильнее всю команду! Расти, учись и пробуй новое — это твой шанс создать что-то по-настоящему крутое.
Присоединяйся к ребятам и делись роликом с теми, кто тоже готов к переменам 🚀
👎4❤1
Супер-простой гайд, как поднять себе локальный ИИ на Mac и Windows. Получится инструмент для подстраховки, если нет интернета или для простых задач, когда не обязательна мощь облачных LLM.
В качестве бонуса: как добавить файлы со своего компьютера, чтобы модель при ответе учитывала их. Можно сделать такой супер-современный поиск по своим документам.
@prog_tools
В качестве бонуса: как добавить файлы со своего компьютера, чтобы модель при ответе учитывала их. Можно сделать такой супер-современный поиск по своим документам.
@prog_tools
Tproger
Персональный ИИ: запускаем Llama и Mistral локально на Mac и Windows
Пошаговая инструкция по установке локальных языковых моделей на ваше устройство. Узнайте, как выбрать подходящую версию, настроить параметры и решить типичные проблемы. Работайте с ИИ офлайн без подписок и ограничений.
❤3👍3👎1
Numbat — статически типизированный язык программирования для научных вычислений, написанный на Rust, где физические размерности работают как типы.
Использовать можно прямо в консоли, примеры на картинке. Установите по инструкции, затем просто вбиваете
В системе типов Numbat умеет работать с размерностями и автоматически отслеживать ошибки в вычислениях. Например, если попытаетесь использовать длину вместо времени, компилятор сразу скажет, что что-то не так.
И это и есть главная фишка! Парсер работает строго: либо получите понятное сообщение об ошибке, либо можете доверять результату расчёта. Язык заточен под «одноразовые» вычисления для учёных и инженеров, которым нужна высокая точность и автоматическая конвертация между единицами измерения.
Использовать можно прямо в консоли, примеры на картинке. Установите по инструкции, затем просто вбиваете
numbat и вводите что вам нужно посчитать или перевести в другие единицы.В системе типов Numbat умеет работать с размерностями и автоматически отслеживать ошибки в вычислениях. Например, если попытаетесь использовать длину вместо времени, компилятор сразу скажет, что что-то не так.
И это и есть главная фишка! Парсер работает строго: либо получите понятное сообщение об ошибке, либо можете доверять результату расчёта. Язык заточен под «одноразовые» вычисления для учёных и инженеров, которым нужна высокая точность и автоматическая конвертация между единицами измерения.
👍3
Media is too big
VIEW IN TELEGRAM
Диспетчеру задач Windows исполнилось 30 лет — первый коммит утилиты, написанной Дейвом Пламмером дома на выходных, датирован 10 ноября 1995 года. Формально в составе системы Task Manager появился в Windows NT 4.0 (1996), но «днём рождения» считают момент, когда автор занёс свой личный проект в исходники NT.
Поздравляем этот ультраполезный инструмент программиста и самого Пламмера — того самого инженера, который ещё портировал Space Cadet Pinball и сейчас ведёт YouTube‑канал Dave’s Garage.
История у диспетчера задач очень «юниксовая»: Пламмеру просто хотелось нормальный ps/top для Windows NT, чтобы видеть процессы и что именно грузит систему. NT уже умела отдавать эту информацию, но никакой удобной панели не было, поэтому он собрал утилиту, принёс её в команду, и идея так зашла, что Task Manager в итоге прописали в продукт. Первая версия для NT 4 весила всего 85 КБ и запускалась с высоким приоритетом, чтобы иметь шанс откликаться, когда всё остальное давно висит, хотя этот трюк позже выпилили ради общей производительности.
Есть даже видео с обзором исходников таск-менеджера!
Из всего этого получается хороший разработческий вывод: небольшой сайд‑проект, написанный «для себя» с дисциплиной и вниманием к деталям, может пережить десятки релизов ОС и стать стандартным инструментом для миллионов. Параллельно рядом выросла экосистема «продвинутых диспетчеров», вроде тулов Sysinternals от Марка Руссиновича (Process Explorer, Autoruns и прочие), которые закрывали те задачи, для которых встроенного Task Manager уже не хватало. И пока в свежих версиях Windows 11 умудряются завести баг, где закрытие диспетчера задач внезапно порождает ещё несколько его копий, старый компактный дизайн Пламмера напоминает, что главное в таких утилитах — простота, надёжность и хорошие привычки автора, а не модный стек.
Поздравляем этот ультраполезный инструмент программиста и самого Пламмера — того самого инженера, который ещё портировал Space Cadet Pinball и сейчас ведёт YouTube‑канал Dave’s Garage.
История у диспетчера задач очень «юниксовая»: Пламмеру просто хотелось нормальный ps/top для Windows NT, чтобы видеть процессы и что именно грузит систему. NT уже умела отдавать эту информацию, но никакой удобной панели не было, поэтому он собрал утилиту, принёс её в команду, и идея так зашла, что Task Manager в итоге прописали в продукт. Первая версия для NT 4 весила всего 85 КБ и запускалась с высоким приоритетом, чтобы иметь шанс откликаться, когда всё остальное давно висит, хотя этот трюк позже выпилили ради общей производительности.
Есть даже видео с обзором исходников таск-менеджера!
Из всего этого получается хороший разработческий вывод: небольшой сайд‑проект, написанный «для себя» с дисциплиной и вниманием к деталям, может пережить десятки релизов ОС и стать стандартным инструментом для миллионов. Параллельно рядом выросла экосистема «продвинутых диспетчеров», вроде тулов Sysinternals от Марка Руссиновича (Process Explorer, Autoruns и прочие), которые закрывали те задачи, для которых встроенного Task Manager уже не хватало. И пока в свежих версиях Windows 11 умудряются завести баг, где закрытие диспетчера задач внезапно порождает ещё несколько его копий, старый компактный дизайн Пламмера напоминает, что главное в таких утилитах — простота, надёжность и хорошие привычки автора, а не модный стек.
❤3🔥3
Forwarded from Типичный программист
С кем знакомятся типичные программисты: 2D-тян или живая девушка?
Согласно недавним исследованиям Vantage Point Counseling Services, треть американцев хотя бы раз состояла в романтических отношениях с ИИ. Появилось даже приложение Loverse для виртуальных знакомств, где вместо реальных людей роль партнёров выполняют чат-боты с искусственным интеллектом.
Мы решили провести своё исследование и выяснить где и с кем сегодня знакомятся пользователи стран СНГ. Пожалуйста, пройдите наш небольшой опрос. Это поможет нашему исследованию.
Пройти опрос.
Согласно недавним исследованиям Vantage Point Counseling Services, треть американцев хотя бы раз состояла в романтических отношениях с ИИ. Появилось даже приложение Loverse для виртуальных знакомств, где вместо реальных людей роль партнёров выполняют чат-боты с искусственным интеллектом.
Мы решили провести своё исследование и выяснить где и с кем сегодня знакомятся пользователи стран СНГ. Пожалуйста, пройдите наш небольшой опрос. Это поможет нашему исследованию.
Пройти опрос.
caniscrape — это инструмент, который по URL оценивает, насколько вообще реально скрейпить сайт. Он проверяет защиту: Cloudflare и другие WAF, капчи, лимиты по запросам, необходимость рендерить JavaScript, honeypot‑ловушки, TLS‑фингерпринтинг и в конце выдаёт оценку сложности от 0 до 10 плюс рекомендации, как лучше забирать информацию с сайта.
Код открыт в репозитории на GitHub. Установка через
Затем запускаете
Внутри caniscrape делает как обычные HTTP‑запросы, так и запросы через браузер на базе Playwright, а для определения веб‑фаерволов использует wafw00f. По ответам он понимает, на каком уровне стоит защита (WAF, JS‑челлендж, капча, лимит и т.д.) и подсказывает, что вам потребуется: сессии, прокси, браузер, внешнее scraping‑API или, может, вообще не связываться.
Нужно учитывать, что на тяжёлых сайтах защита ведёт себя динамически, поэтому результаты могут отличаться между запусками. Логичный сценарий применения — включить caniscrape в пайплайн перед основным парсером, чтобы заранее понять, во что вы вписываетесь, и не тратить часы на скрипт, который будет сразу получать блок.
@prog_tools
Код открыт в репозитории на GitHub. Установка через
pip install caniscrape, плюс установите зависимости: sudo apt install pipx # если нет pipx
pipx install wafw00f
playwright install chromium
Затем запускаете
caniscrape scan https://example.com
Внутри caniscrape делает как обычные HTTP‑запросы, так и запросы через браузер на базе Playwright, а для определения веб‑фаерволов использует wafw00f. По ответам он понимает, на каком уровне стоит защита (WAF, JS‑челлендж, капча, лимит и т.д.) и подсказывает, что вам потребуется: сессии, прокси, браузер, внешнее scraping‑API или, может, вообще не связываться.
Нужно учитывать, что на тяжёлых сайтах защита ведёт себя динамически, поэтому результаты могут отличаться между запусками. Логичный сценарий применения — включить caniscrape в пайплайн перед основным парсером, чтобы заранее понять, во что вы вписываетесь, и не тратить часы на скрипт, который будет сразу получать блок.
@prog_tools
👍5🔥4🙏2
ironmount — это обёртка над restic с нормальным веб‑GUI для тех, кто сам хостит сервисы и не хочет руками лепить пачку скриптов для бэкапов. Запускаете один контейнер через docker compose, заходите в веб‑панель на порту 4096 и уже там добавляете:
🟣 volume, они же источники, откуда данные забирать: NFS/SMB/WebDAV/локальные директории;
🟣 repository, они же цели, куда данные копировать: локальный диск, S3, GCS, Azure и rclone‑совместимые сервисы.
А дальше всё крутится по расписанию.
Под капотом за сами бэкапы отвечает restic: он шифрует всё содержимое (включая метаданные), режет данные на чанки и делает дедупликацию, чтобы инкрементальные бэкапы занимали минимум места. За счёт этого запуски можно делать часто и держать нормальную историю версий, а при восстановлении restic проверяет хэши и гарантирует, что данные корректны.
ironmount поверх этого добавляет удобные штуки для живого админа: в вебке настраиваете расписание, retention‑политику (сколько дневных/недельных снапшотов хранить), смотрите статус бэкапов и при необходимости запускаете восстановление файлов из конкретного снапшота. Плюс есть интеграция с rclone и режим Docker volume plugin: можно хранить данные где угодно и монтировать их как обычные Docker‑тома im-<volume-name> прямо в другие контейнеры.
Код в репо, на картинке интерфейс. Инструмент ещё не дошёл до официального релиза с версией 1.0, но уже вполне себе работает.
@prog_tools
🟣 volume, они же источники, откуда данные забирать: NFS/SMB/WebDAV/локальные директории;
🟣 repository, они же цели, куда данные копировать: локальный диск, S3, GCS, Azure и rclone‑совместимые сервисы.
А дальше всё крутится по расписанию.
Под капотом за сами бэкапы отвечает restic: он шифрует всё содержимое (включая метаданные), режет данные на чанки и делает дедупликацию, чтобы инкрементальные бэкапы занимали минимум места. За счёт этого запуски можно делать часто и держать нормальную историю версий, а при восстановлении restic проверяет хэши и гарантирует, что данные корректны.
ironmount поверх этого добавляет удобные штуки для живого админа: в вебке настраиваете расписание, retention‑политику (сколько дневных/недельных снапшотов хранить), смотрите статус бэкапов и при необходимости запускаете восстановление файлов из конкретного снапшота. Плюс есть интеграция с rclone и режим Docker volume plugin: можно хранить данные где угодно и монтировать их как обычные Docker‑тома im-<volume-name> прямо в другие контейнеры.
Код в репо, на картинке интерфейс. Инструмент ещё не дошёл до официального релиза с версией 1.0, но уже вполне себе работает.
@prog_tools
👍3❤1
Есть классный менеджер паролей именно под разработчиков — gopass. Все секреты лежат в виде файлов, шифруются через GPG и версионируются в Git, так что вы можете хранить их локально, синхронизировать через любой git‑ремоут и при этом всегда иметь историю изменений.
Рабочий цикл выглядит очень по консольному: из терминала листаете хранилище, смотрите пароли, генерируете новые, копируете в буфер, всё командами вроде
GPG при этом даёт нормальное асимметричное шифрование: секреты зашифрованы вашим ключом, приватная часть не покидает машину, а расшаривание в команде сводится к добавлению ключей коллег в хранилище. Для кроссплатформенности gopass написан на Go и работает на macOS, Linux и Windows, так что можно настроить один git‑репозиторий с зашифрованными секретами и пользоваться им с любых рабочих машин.
Код в репо, на картинке ламповый пример работы.
@prog_tools
Рабочий цикл выглядит очень по консольному: из терминала листаете хранилище, смотрите пароли, генерируете новые, копируете в буфер, всё командами вроде
gopass ls, gopass show, gopass generate. Поверх этого есть плагины: интеграция с браузером через gopass‑bridge, помощь с Git‑кредами, проверка паролей через Have I Been Pwned и т.п., так что одним инструментом можно закрыть и личные пароли, и секреты для проектов.GPG при этом даёт нормальное асимметричное шифрование: секреты зашифрованы вашим ключом, приватная часть не покидает машину, а расшаривание в команде сводится к добавлению ключей коллег в хранилище. Для кроссплатформенности gopass написан на Go и работает на macOS, Linux и Windows, так что можно настроить один git‑репозиторий с зашифрованными секретами и пользоваться им с любых рабочих машин.
Код в репо, на картинке ламповый пример работы.
@prog_tools
🔥5❤1
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️⃣
3️⃣ Скопируйте
3️⃣
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
Для тех, кто проспал последний год, NotebookLM — это
Что делает SurfSense:
Быстрый старт:
git clone https://github.com/MODSetter/SurfSense.env.example в .env, добавьте API‑ключи (OpenAI, Tavily и т.д.).docker compose up -dГде попробовать:
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
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
Суть простая: берёшь готовую модель из каталога (GigaChat, Qwen, Llama и другие) или загружаешь свою с HuggingFace, и сразу получаешь к ней API. Без заморочек с настройкой GPU-серверов, кластеров и безопасности — всё уже настроено и работает в облаке.
Внутри Evolution AI Factory шесть сервисов:
Соответствует ФЗ-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
Ключевые возможности:
Под капотом: веб‑клиент на 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:
Для каждой страницы создается JSON с массивом блоков:
Для таблиц добавляются
Как использовать
Можно писать в файлы:
Полезно, когда:
— требуется предсказуемая структура для векторных баз;
— нужно различать заголовки, списки, таблицы при чанкинге;
— скорость критична: C-реализация быстрее Python-аналогов;
— работаешь с документами, где важна иерархия и расположение элементов.
Перед использованием нужно собрать:
@zen_of_python
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 подъехало несколько реально полезных штук, которые можно трогать руками уже сейчас:
🔘 Появилась команда
🔘 В
🔘 Новый экспериментальный
🔘 Для тех, кто живёт на
Под капотом 2.52 закладывает фундамент под Git 3.0: продолжается переход к SHA‑256 с возможностью работать между репозиториями на разных хешах, расширено использование Bloom‑фильтров для ускорения path‑запросов, а ещё появилась опциональная сборка с
С Git 3.0 по умолчанию поменяется и имя первой ветки:
Для ценителей — оригинальные релиз-ноутсы. На картинке пример использования
Инструкции по установке и обновлению там же где и всегда.
@prog_tools
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 ГБ рекомендуют для продакшена), а деплой по сути сводится к
Этот пример повторяет базовые шаги из официальной инструкции, но в проде всё равно стоит дочитать доку про туннели, домен и вебхуки.
Проект свежий, активно развивается, уже есть десятки релизов и несколько сотен звёзд на GitHub, так что сейчас самое время попробовать и, если зайдёт, накидать issues или pull request.
@prog_tools
Что умеет Kurrier как веб‑почта:
Технически внутри это 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
🔥8❤1
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
Полгода назад эта поделка стала опенсорсной, теперь можно поднять на своём сервере.
В центре — доска на базе 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, улучшил навигацию, прокачал поиск и работу с несколькими торрентами сразу, плюс почистил интеграцию с индексаторами и полирнул раскладку интерфейса.
Установить можно через
Поведение можно подкрутить через
Код в репо, на видео демонстрация работы.
@prog_tools
Можно подключаться к своим индексаторам 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
👍4❤3
Два топовых проекта для безопасной передачи файлов
1️⃣ LocalSend — опенсорсный AirDrop внутри одной сети, где устройства просто находят друг друга по локальному бродкасту. Про это вы скорее всего слышали уже. А вот дальше интереснее.
3️⃣ AltSendme — свежий p2p‑AirDrop через интернет: создаёте тикет, второй человек вводит его у себя, оба клиента идут в сеть iroh, находят друг друга по этому идентификатору и устанавливают зашифрованный QUIC‑туннель напрямую, минуя любые облачные хранилища.
Чтобы всё это работало за NAT, iroh сначала пытается пробить прямое соединение (NAT hole punching), а если не получается — временно использует релей‑сервер: он просто прокидывает зашифрованный трафик, пока нельзя выйти на прямой маршрут, после чего трафик идёт уже только между пир‑клиентами. Публичные релеи держит команда iroh и даёт их по умолчанию всем желающим, но код релея открыт: есть crate iroh-relay, если хочется полностью контролировать инфраструктуру и не зависеть от чужих узлов.
@prog_tools
Чтобы всё это работало за 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
🔥5❤1