Обновить
726.69

Python *

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

Сначала показывать
Порог рейтинга
Уровень сложности

Реляционные шарады: превращаем фильмы в таблицы

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

Реляционная модель обычно ассоциируется с аккуратными строками и столбцами, но на практике ей регулярно пытаются скормить то, для чего она будто бы не предназначена. В этой статье — эксперимент на грани здравого смысла: разложить фильм на пиксели, превратить кадры в строки и посмотреть, что получится, если к видео применить привычный SQL. Без обещаний пользы и универсальности — зато с честным разбором того, где такой подход неожиданно работает, а где начинает сопротивляться сама природа данных.

Перейти к материалу

Эксперимент по подстройке Gemma 3 для вызова процедур

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

Практический опыт тонкой настройки текстовой генерации для модели Gemma 3 с использованием QLoRA на видеокарте RTX 4090 (24 GB).

Читать далее

Сколько городов в России начинаются на букву К?

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

Именно этот вопрос возник у нас в процессе игры в "Города" пока мы ехали из Екатеринбурга в Тюмень, а названия городов то и дело заканчивались на "К". В тот момент город Курган был назван уже 25 раз. И нас озарило... Спарсим данные с RuWiki и посмотрим сколько городов в России начинаются и заканчиваются на букву К!

Читать далее

Январский рефакторинг: 7 дней, чтобы почистить Python веб‑проект

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

Январь — самое удобное время разобрать завалы в проекте. Пол‑команды ещё в отпусках, pull‑реквестов меньше, product owner'ы только вспоминают, что планировали делать в этом году — можно спокойно пройтись по коду и навести порядок.

В этой статье пойдёт речь о нескольких косметических действиях, которые, с одной стороны, почти не затрагивают логику программы и не вызывают ненависти у тестировщиков, а с другой — делают код чуть приятнее и дают темы для обсуждения на бэкенд‑созвонах. Мы разложим импорты, перенесём логику из роутов в контроллеры, а из контроллеров — в репозитории и сервисы, избавимся от requirements.txt в пользу нормального менеджера зависимостей и включим mypy.

Читать далее

Machine Learning в экологии, или где живёт снежный человек

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

В экологии происходит настоящая ML-революция. 

Число публикаций с использованием матмоделирования растёт по закону Мура, а наличие ML‑моделей и прогнозов становится стандартом в статьях про биологические виды и их будущее.

Появились модели, предсказывающие распространение видов в пространстве и во времени — на 100 лет вперёд или на 6000 лет назад. Экологи начали моделировать взаимодействие видов, сообществ — и целых экосистем. 

Расскажу, почему это произошло, как работают такие модели на практике — и к чему всё это нас приведёт.

Читать далее

Memory Is All You Need: Активная память для трансформеров — мой новый подход к долгосрочным зависимостям в ИИ

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

Переосмысливаем память в ИИ: от пассивного контекста к активной, "живой" системе. Мой проект MemNet с Hebbian-графом и "сновидениями" решает задачи долгосрочных зависимостей. Код на GitHub + эксперименты внутри!

Читать далее

Kawai-Focus 2.1: переезд на новый стек

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

В данной статье я попытаюсь переписать часть приложения Kawai-Focus на стек: FastAPI + Vue.js + Tauri + Ionic. Также я соберу приложение только с экраном «Таймеры» под Linux в AppImage, которое подойдёт для большинства Linux-дистрибутивов. Реализация одного экрана не будет слишком долгим процессом, а финальная сборка приложения позволит оценить сложность и удобство полного цикла разработки.

Эта cтатья не будет подробным гайдом, так как размер переписанного кода и его описание слишком велики для одной статьи. Однако я покажу часть кода проекта и расскажу о выбранном стеке, а также о трудностях и преимуществах, с которыми я столкнулся в процессе переписывания проекта. Я буду использовать часть кода старого проекта, который не касается Kivy и KivyMD, поэтому его душа не умрёт, а обновится.

Заваривайте чай, доставайте вкусняшки — пора «старый стек превращать в удобрение для новых помидор»! 🍅

Читать далее

Оптимизация и запуск нейронных сетей на React Native: кейс с травой

Уровень сложностиСложный
Время на прочтение26 мин
Охват и читатели9.4K

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

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

Читать далее

Python: Почему строки в if-else — это плохо, переходим на Enum

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

Бывало такое: сидишь час над багом, перебираешь функции, а в итоге выясняется, что ты просто опечатался в одном слове? В одном месте статус заказа был "shipped", а в другом — "shiped" с одной «p».

Python промолчал, потому что для него это просто две разные строки. А для тебя это — потерянный вечер. Сегодня разберем, как модуль enum избавляет от этой боли и делает код в разы чище.

Читать далее

Быстрый старт в мониторинг сервисов с LLM под капотом

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

За прошлый год я запустил 5 сервисов с LLM под капотом. Каждый следующий сервис получался лучше предыдущего: мы оттачивали архитектуру, оптимизировали core микросервиса на FastAPI, быстрее выходили на MVP и ловили меньше багов.

Но довольно быстро стало понятно: LLM‑сервисы сложно интерпретировать. Для бизнес команды они выглядят как black box. Для инженеров — как набор плохо воспроизводимых состояний.

В этой статье я поделюсь практиками, которые:

— упрощают интерпретацию поведения LLM;

— делают работу сервиса прозрачной для Product Owners и SME;

— ускоряют разработку и итерации без передеплоев.

Читать далее

Корпоративный RAG как MCP-сервис: подключаем кодовую базу к IDE

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

В компаниях с несколькими продуктами знания о коде и архитектуре почти неизбежно расползаются. Часть живёт в репозиториях, часть — в статьях с архитектурными решениями, часть — в корпоративной базе знаний (в нашем случае — Confluence). На небольшом масштабе это выглядит как порядок. Но по мере роста начинают проявляться системные эффекты.

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

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

В этой статье я расскажу, как мы построили локальный RAG-сервис, оформили его как MCP-сервер и подключили к IDE. Подход будет полезен командам с большим количеством репозиториев, внутренней документацией и требованиями к безопасности.

Читать далее

Все об устройстве Q65 с примерами на Python (часть 2)

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

Q65 — цифровой протокол, разработанный Джо Тейлором (K1JT) и его командой в 2021 году для проведения минимальных связей в условиях сложных трасс прохождения радиосигнала.

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

Статья может быть интересна радиолюбителям и людям, интересующимся темой цифровой обработки сигналов.

Читать далее

Парсинг тарифов интернета и ТВ: Архитектура БД и бэкенд на SQL

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

За 5 лет работы в B2B и B2C сегментах у телеком-провайдеров я столкнулся с одной из проблем: абоненты годами сидят на архивных дорогих тарифах или пользуются услугами операторов, которые не идут на уступки, не снижают цены на тарифы, пользователи просто не знают, что в их же доме есть альтернативные провайдеры с тарифами более выгодными для них.

Я решил объединить свой опыт в телекоме с навыками в программировании. Так появилась идея по парсенгу тарифов. Цель — создать инструмент, который автоматически мониторит провайдеров, избавляя пользователей от ручного сравнения и помогая им находить оптимальные условия по тарифу.

Сейчас я работаю аналитиком БД, параллельно изучаю архитектуру, построение данных. Решил начать проект с проектирования структуру на PostgreSQL по схеме "Звезда". Таблицей фактов у меня будет таблица со связью города с провайдером, таблицы измерений – таблица с информацией о тарифах, городами и провайдерами.

Читать далее

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

Автоматизация рутины на hh.ru: Как мы учили Headless Chrome притворяться живым человеком (RPA против Anti-Fraud)

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

С инженерной точки зрения поиск работы — это процесс с низкой энтропией. Есть входящий поток данных (JSON с вакансиями) и есть необходимость отправить ответный сигнал (POST-запрос с откликом). Задача кажется тривиальной для автоматизации: написал парсер, настроил cron, пошел пить кофе.

Однако, если вы попробуете автоматизировать отклики на крупных job-board платформах (особенно на hh.ru) в 2026 году, вы столкнетесь с серьезным противодействием. WAF (Web Application Firewall), анализ TLS-отпечатков, поведенческая биометрия и теневые баны — это реальность, которая убивает скрипты на requests за пару часов.

В этой статье разберем архитектуру решения, которое позволяет автоматизировать процесс отклика, используя подходы RPA (Robotic Process Automation), мимикрию под поведение пользователя (Human Mimicry) и LLM для обхода смысловых фильтров.

(Дисклеймер: Статья носит исследовательский характер. Мы не призываем нарушать правила площадок, а разбираем технические методы эмуляции браузера).

Читать далее

Тестирование gRPC на Python в системах промышленной автоматизации

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

Добрый день, утро, вечер или ночь. Меня зовут Константин, я тестировщик, занимаюсь написанием авто-тестов на Python и в данной статье опишу пример тестирования gRPC и подготовки авто-тестов на примере программного обеспечения для сбора, обработки и передачи данных в системах промышленной автоматизации.

Читать далее

Ритуал создания API в традициях древних ацтеков

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

Всем привет!

Статья на 15-20 минут осознанного чтения. Будет интересна начинающим и, надеюсь, продолжающим увлекательное путешествие людям во вселенной python. Рассмотрен один из великого множества подходов к написанию web приложения с API + автоматизированной документацией на OpenAPI (в недалеком прошлом Swagger).

Читать далее

FastAPI: 5 практичных архитектурных решений, о которых я пожалел, что не узнал раньше

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

Привет, Хабр! Когда начинаешь новый проект на FastAPI, всё кажется простым: пара моделей Pydantic, несколько эндпоинтов — и готово. Но через полгода и 20 000 строк кода оказывается, что базовая валидация размазана по всему приложению, бизнес-логика перемешана с обращениями к БД, а тесты пишутся со скрипом.

Сегодня я хочу поделиться конкретными архитектурными паттернами и приёмами, которые я неоднократно использовал в своих проектах. Они не усложняют простые задачи, но делают жизнь в долгосрочной перспективе несоизмеримо легче.

Читать далее

LLM — просто «говорящий рот» у правильного ИИ-агента. Мы забрали у языковой модели рассуждение

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

Когда ваш AI говорит «я подумал и решил» — кто решил? Веса модели? Рандом?
У нас есть лог принятия решения в Python.

А у вас?

Читать далее

10 полезных Python-библиотек для автоматизации повседневных задач

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

Каждый раз, когда мы пишем «быстрый скрипт на коленке», мы тратим время на одни и те же вещи: настройку логов, парсинг конфигов и создание прогресс-баров. В этой статье разберем 10 легковесных утилит (от tqdm до beartype), которые закроют рутинные задачи и позволят вам сфокусироваться на логике, а не на «обвязке».

Читать далее

Что такое фандинг арбитраж и как сделать автоматический поиск спредов

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

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

Одна из таких стратегий - арбитраж ставок финансирования (funding rate arbitrage). Это безопасная стратегия с небольшим количеством рисков, которая доступна каждому. Из навыков тут при наличии автоматической системы тут нужно лишь умение открывать позиции на разных биржах.

Этот материал - не обещание лёгких денег. Это разбор реальной рабочей системы, которую я сначала писал для себя, а позже обернул в Telegram-бота. Итоговый продукт - полноценная рабочая торговая система, которая отслеживает активы на биржах, получает информацию о фандинге и в случае, если расхождение можно отработать и заработать на нём - присылает уведомление с помощью телеграм бота.

Читать далее

Вклад авторов