Обновить
256K+

Python *

Высокоуровневый язык программирования

359,9
Рейтинг
Сначала показывать
Период
Уровень сложности
Формат публикации

nORM — ORM, но есть одно «no»

Уровень сложностиСредний
Время на прочтение3 мин
Охват и читатели8.1K

Если вы работаете с базами данных и используете ORM, вы, вероятно, сталкивались с той же проблемой, что и я. ORM отлично подходят для отображения таблиц на объекты. Но они начинают мешать, когда запрос становится сложным: агрегации, тщательно продуманные JOIN’ы, формы отчетов, которые не соответствуют одной модели на таблицу. Вы боретесь с ORM, переходите на сырой SQL, а затем вручную пишете связующий код (маппинг).

Не каждый SELECT возвращает то, что подходит под одну ORM-модель. SQL - это лучший язык для доступа к данным. Лучшие ORM, которые я использовал, такие как Drizzle, побеждают, потому что они остаются близки к SQL. Я хотел пойти дальше: хранить SQL в системе контроля версий и генерировать из него типизированный Python.

Именно поэтому я создал nORM (no ORM - не ORM) и выпустил версию v0.1.0 на этой неделе (мой первый опенсорс проект).

Читать далее

Как я сделал локальный RAG-сервис для SRE: ищем по документации, ранбукам и коду через Ollama

Уровень сложностиСредний
Время на прочтение6 мин
Охват и читатели7.9K

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

Но довольно быстро стало понятно, что с временными и ресурсными ограничениями лучше не пытаться написать маленький PagerDuty. Поэтому я сузил задачу до более реалистичного ядра: локального RAG-сервиса, который ищет по документации, ранбукам и коду, а затем передаёт найденный контекст в LLM.

Так появился llmortem — FastAPI-сервис, который можно подключить к OpenWebUI как OpenAI-compatible backend.

В статье расскажу, как устроена архитектура, почему я начал с BM25, зачем индексировать docstring’и и какие ограничения у такого подхода.

Читать далее

Qwen3.5 на двух V100, reverse SSH вместо Cloudflare в Telegram Mini App: собираю AI-репетитора английского

Время на прочтение13 мин
Охват и читатели7.2K

У меня в углу комнаты стоит сервер с двумя Tesla V100 32GB. Они доcтались мне для другой задачи, которая отвалилась, и полгода стояли мёртвым грузом. Параллельно я в очередной раз пробовал заниматься английским — Simpler, Doalingo, ещё пара продуктов. Хорошие, но мне не подходил формат: я хотел сценарий «открыл телефон дома на семь минут, поговорил, закрыл». Без расписания, без камеры, без поиска тьютора, который понимает мой акцент с пятого раза.

Сошлось.

Идея: Telegram Mini App, в нём кнопка «говорить», за ней — AI-репетитор, который слышит, что я сказал, отвечает голосом, помнит контекст разговора, тыкает в мои повторяющиеся ошибки и подбрасывает слова, которые я пытаюсь выучить. Полностью бесплатно.

Модель Qwen3.5 вышла 25 февраля , я её гоняю всего несколько недель, продукт сырой. Эта статья — про архитектурные решения и про то, на какие грабли я уже успел наступить.

Читать далее

UAV Human Detector

Уровень сложностиСредний
Время на прочтение4 мин
Охват и читатели8.3K

В статье рассматривается один из компонентов системы управления БЛА для поисково-спасательных работ — обнаружение людей на изображениях с бортовой камеры. Описан процесс выбора датасета, подготовки данных, обучения модели YOLOv8 и оценки её качества на тестовой выборке. Также приведены полученные метрики, примеры работы модели и обсуждаются возможные направления дальнейшего повышения точности обнаружения людей.

Читать далее

AI-интегратор: профессия, которой нет в учебнике — я собрал её руками на n8n

Уровень сложностиПростой
Время на прочтение4 мин
Охват и читатели10K

Меня зовут Даниил. Я разработчик интеграций — до этого Kafka, REST, highload. В 2024–2025 мне первый раз поставили задачу, которую HR называет по‑разному: AI automation, n8n integrator, applied AI engineer. Я называю это AI‑интегратор: человек, который собирает бизнес‑процесс из событий, API и LLM — в основном без классического релиза, на no‑code/low‑code оркестраторе.

Я не ML‑инженер. Я не prompt‑инженер в вакууме. Я впервые поднял и довёл до рабочего состояния self‑hosted n8n с LLM внутри pipeline: событие приходит → модель что‑то понимает → данные улетают в Google Sheets, Telegram, amoCRM / Bitrix24.

Читать далее

Энтропия, которая измеряет порядок: IH-анализ находит закономерности в разнотипных данных

Уровень сложностиСредний
Время на прочтение8 мин
Охват и читатели7.2K

Обычно энтропия — мера хаоса. Но наш сегодняшний герой — IH-анализ (Information-Entropy analysis) — вычисляет информационную энтропию, чтобы измерить обратное: степень детерминированности связи между признаками и целевой переменной. Мы будем вычислять: насколько утверждение «если А, то Б, и, если не А, то и не Б» выполняется в наших данных устойчиво. Одновременная работа с категориальными и количественными признаками нас не затруднит.

Читать далее

TorFlash — приложение для Linux: поиск торрентов, скачивание и копирование на флешку в одно нажатие

Время на прочтение2 мин
Охват и читатели10K

У меня телевизор, который читает файлы с USB-флешки. Флешка отформатирована в FAT32, а значит — максимум 4 ГБ на файл. Типичный вечер выглядит так:

Linux-приложение для тех, кто смотрит фильмы с USB-флешки. Поиск торрентов по Rutor, NoNaMe-Club и RuTracker, скачивание через libtorrent и автоматическое копирование на флешку с умным разбиением MKV-файлов под FAT32. Один бинарник, PyQt5, open source.

Читать далее

Разрабатывали решение для автоматизации, а получили универсальный продукт «Мультиплексор для Лабораторных измерений»

Уровень сложностиПростой
Время на прочтение4 мин
Охват и читатели12K

Добрый день, коллеги!

Разрабатывали очередной аутсорсный заказ и в процессе разработки поняли с командой, что это может быть довольно интересным универсальным продуктом. В статье (без подробностей) расскажу, что изначально делали и что получили в итоге.

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

Мы предложили автоматизировать этот процесс, разработать систему измерения, к которой можно будет подключить оба измерителя, до 10 тестовых образцов с механическим креплением на контактирующих устройствах, персональный компьютер с программным обеспечением, которое будет управлять всей системой, автоматически генерировать протокол измерений, собирать статистику и максимально упростит задачу оператора.

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

Читать далее

ОГЭ информатика. 16 задание на Python

Уровень сложностиПростой
Время на прочтение4 мин
Охват и читатели11K

Если вы, смотря 16 задание, закрываете сайт, на котором готовитесь к ОГЭ по информатике, вам стоит прочитать эту статью. Кстати, вам будет полезно, даже если вы хотите структурировать свои знания. Чтобы понять эту статью, вы должны знать: циклы while и for, условные операторы if, elif, else, базовые команды, базовая работа с переменными и типами данных на Python.

Читать далее

Модульный конструктор для дел: собираем свою систему и подключаемся к любой форме организации

Время на прочтение8 мин
Охват и читатели7.8K

Календарь, задачи, заметки, почта. Мы используем десятки инструментов, но они не умеют жить вместе. Данные размазаны по сервисам. Команда в Битрикс24, семья в WhatsApp, клуб в Google Calendar. Везде свой интерфейс, свои правила, своя изоляция.

Читать далее

Вы когда-нибудь задумывались о том, насколько связен наш мир? Насколько сложно пересечь границу между странами? И...

Время на прочтение1 мин
Охват и читатели6.1K

Вы когда-нибудь задумывались о том, насколько связен наш мир? Насколько сложно пересечь границу между странами? И вообще сколько их, этих граничных переходов? А насколько хорош аэропорт Вашего города - в сколько стран или направлений из него можно улететь? А есть ли паромы и периодические водные маршруты между двумя государствами? А ходят ли поезда из одной страны в другую, или ветка уже давно заброшена?

Это кажется простой задачей, пока мы находимся в Европе или, к примеру, в Северной Америке. Но начинает быть очень интересным исследованием, когда мы переместимся в Африку, Центральную Азию или, положим, в Южную Америку. А в Карибском бассейне вдруг окажется, что этим маленькие острова и не связаны настолько хорошо между собой.

А если включить в это уравнение закрытость границ, визовые и паспортные ограничение, то внезапно окажется, что задачка-то и не из лёгких.

Именно поэтому и возник проект Портулан: portolanmap.com. Чтобы показать доступность территорий для внешнего мира. Ведь хотелось бы, чтобы границы были только у нас в головах, но на деле нам приходится считаться с границами государств и территорий.

Читать дальше →

PLC-Tracer — новый взгляд на Ladder логику

Уровень сложностиПростой
Время на прочтение6 мин
Охват и читатели9.8K

PLC-Tracer новый взгляд на Ladder логику. Это бесплатный браузерный инструмент диагностики для ПЛК Allen-Bradley (ControlLogix, CompactLogix, MicroLogix и PLC-5). Он разбирает и визуализирует лестничную логику как в офлайн-режиме, так и по данным из живого контроллера. Инструмент умеет записывать состояния переменных в реальном времени через прямое подключение к ПЛК и воспроизводить сессии в режиме офлайн.

Читать далее

Возвращение блудного программиста (ч. 4)

Уровень сложностиПростой
Время на прочтение6 мин
Охват и читатели10K

Эта часть про то, как я пилю бэкенд, учусь на этом и получаю эмоциональные качели.

Для начала, напомню о себе: после 12 лет отсутствия в сфере я решил вернуться к своему базовому образованию – инженер-программист. Что-то приходится «вспоминать с нуля», но я не люблю начинать изучение полностью с теории, я больше экспериментатор.

Читать далее

Ближайшие события

Как я сделал «Авиасейлз для логистики»: агрегатор заявок из 16+ источников

Время на прочтение14 мин
Охват и читатели13K

В логистике проблема часто не в том, что нет данных.

Проблема в том, что данные разбросаны по разным местам.

Одни заявки лежат во внутренней системе, другие — в закрытых кабинетах грузоотправителей, третьи — на тендерных площадках, четвёртые приходят через Excel‑выгрузки, пятые доступны только через веб‑интерфейс. Где‑то есть нормальный HTTP‑обмен, где‑то данные спрятаны за фронтендом, где‑то приходится читать DOM‑таблицу, а где‑то сначала кажется, что всё просто, пока не выясняется, что цена приходит в копейках, маршрут состоит из трёх точек, а тип кузова записан как «тент 20т, верхняя загрузка».

Для менеджера всё это выглядит не как единый рынок грузов, а как набор вкладок в браузере.

Открыть один кабинет. Потом второй. Потом третий. Проверить направление. Сравнить цену. Посмотреть дату. Понять, где реф, где тент, где просто «20 тонн». Не забыть про аукцион, у которого скоро истекает время. Потом всё равно перенести результат в таблицу или открыть внутреннюю панель.

В какой‑то момент стало понятно: нам нужен не ещё один парсер, а единая витрина.

Так появился внутренний агрегатор заявок — условный «Авиасейлз для логистики».

Читать далее

Клиент — это тоже вектор? Как мы хотели улучшить ML‑модель, а построили similarity engine

Уровень сложностиСредний
Время на прочтение27 мин
Охват и читатели7.2K

Поговорим о том, как превращать последовательности пользовательских событий в векторы, зачем обучать BERT на «языке» клиентского поведения и почему embedding‑пространство может неожиданно начать отражать будущую ценность пользователей

Читать далее

Production‑стек для мессенджера на 10к пользователей: FastAPI, SQLite в проде и почему монолит

Уровень сложностиСредний
Время на прочтение12 мин
Охват и читатели9.9K

Это восьмая статья из моей серии про инженерные решения в ONEMIX. До этого было про клиентскую часть мессенджера: кэш сообщений, E2E, WebRTC звонки, Electron, outbox‑паттерн. Параллельно про AI‑агента Лиру и мнение про вайб‑кодинг.

Сегодня про серверную сторону. Backend ONEMIX — это один файл main.py на 19 603 строки, 379 эндпоинтов, FastAPI + SQLite, держит мессенджер с регистрацией через SMS, звонками через LiveKit, E2E через Double Ratchet, push‑нотификациями на iOS и Android. Этот файл я пишу больше года. За это время он эволюционировал из прототипа на 800 строк в production монолит.

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

Сразу важная оговорка. У меня не было требования держать 100к одновременных пользователей или 10к RPS. Это бэкенд под мобильное приложение с трафиком который для соло‑разработчика разумно поддерживать одному. Если у вас задачи другого масштаба, мой опыт может не подойти.

Читать далее

Спецлаб‑Гамбит: Удобная программа разметки объектов нейросети под системы видеонаблюдения

Уровень сложностиПростой
Время на прочтение3 мин
Охват и читатели7.5K

Для разработчиков умных камер, умных видеорегистраторов и нейросетевой видеоаналитики ПО видеонаблюдения нужна нейросеть, способная работать в реальных условиях наших улиц. А там никто с профессиональной камерой не ходит, правильный ракурс не настраивает, свет не выставляет, без сжатия не снимает и вообще все делает вопреки здравому смыслу учебников ВГИК.

Гамбит, конечно, подойдет для любых других задач, но здесь сделан упор на удобство сбора материала ИЗ систем видеонаблюдения и на разметку датасета с целью создания нейросетей ДЛЯ систем видеонаблюдения.

Гамбит не столько для отшлифованных фоток и рилсов из Интернета, а как раз наоборот – для не особо качественных видеозаписей из архивов видеонаблюдения. В Спецлабе называют такой контент «диким».

Скачать бесплатно...

От XML-отчёта до 3D-обрезки в Revit: как я сделал сервис для управления BIM-коллизиями

Уровень сложностиСредний
Время на прочтение12 мин
Охват и читатели13K

Navisworks хорошо находит BIM‑коллизии, а Revit — инструмент для исправления. Но между ними часто остаётся хаос: XML и HTML‑отчёты, Excel, переписки, ручной поиск ID и вопросы руководителей в стиле «ну как там с коллизиями?».

Я расскажу, как из этой боли вырос внутренний web‑сервис Clash Analytics: импорт XML‑отчётов Navisworks, аналитика по проектам, история коллизий, статусы, комментарии, назначение отделам и локальный Revit Bridge, который открывает проблемное место в модели за один клик.

Читать далее

75 картинок ablation: как Reddit-критика заставила меня переосмыслить FLUX-LoRA пайплайн

Уровень сложностиПростой
Время на прочтение7 мин
Охват и читатели9.7K

Запустил pinock.io — бесплатную ленту AI-генерации животных в стиле советских спичечных коробков. Под капотом FLUX.2-klein + кастомная LoRA + двухпроходный «sandwich»-пайплайн.

Получил детальный технический комментарий на r/StableDiffusion с тремя претензиями. Сел и прогнал ablation: 5 вариантов пайплайна × 5 категорий × 3 сида = 75 картинок.

Нашёл дыры в собственном пайплайне — в том числе кириллицу прямо в выходе LoRA (training-set leakage) и полный коллапс LoRA при scale=2.0. Текущий sandwich оказался патчем поверх плохо обученной LoRA, а не правильным решением.

В статье — все картинки, цифры, и почему оба «правильных» совета критика на текущей модели не сработали. Плюс план переобучения на 1500-датасете.

Читать далее

Как я создал AI-ассистента для трейдинга на T-Invest API Часть 2: Human-In-The-Loop

Уровень сложностиСредний
Время на прочтение5 мин
Охват и читатели8.2K

В предыдущей статье был рассмотрен способ интеграции ИИ-ассистентов в процесс торговли на бирже. Чтобы углубиться в проектирование ИИ‑приложений, я решил доработать проект. В данной части опишу, как реализовал механизм GuardRails, а именно технику Human‑In‑The‑Loop.

Читать далее