Как стать автором
Поиск
Написать публикацию
Обновить
534.55

Python *

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

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

Разбираем архитектуру. Часть 2. Чистая архитектура на примере FastAPI приложения

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

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

Функционально проект реализует систему сбора и анализа вакансий с агрегаторов вроде HeadHunter. Но гораздо важнее не то, какие задачи решает система, а то — как именно она это делает. Этот проект — прежде всего о структуре, архитектуре и принципах.

Основные используемые технологии: Python 3.13, FastAPI, Nginx, Uvicorn, PostgreSQL, Alembic, Celery, Redis, Pytest, FileBeat, LogStash, ElasticSearch, Kibana, Prometheus, Grafana, Docker, Docker Compose.

Читать далее

Разворачиваем нейросеть на бесплатном VPS: FastAPI + Hugging Face за 15 минут

Уровень сложностиПростой
Время на прочтение5 мин
Количество просмотров9.1K

Хотите запустить свою нейросеть в облаке, но нет бюджета на мощный сервер? В этой статье я покажу, как развернуть модель с Hugging Face на бесплатном VPS с помощью Docker и FastAPI. Вы получите работающий HTTP-сервис всего за 15 минут, даже если раньше не работали с развертыванием ML-моделей.

Мы разберем каждый шаг: от создания Space на Hugging Face до написания API-интерфейса на Python. В качестве примера используем модель TinyLlama, но подход подойдет для любой модели, укладывающейся в ограничения бесплатного тарифа. Я постараюсь рассказать, как обойти типичные проблемы с памятью и производительностью на слабых серверах, а также как избежать "засыпания" вашего сервиса. В статье есть готовые Dockerfile, код на Python и примеры запросов — просто повторяйте за мной и получите свой работающий AI-сервис!

Читать далее

Как я ускорил анализ логов в мобильной игре с помощью Python-конвертера

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

Привет, Хабр! Меня зовут Владлен Кузнецов, я QA Lead в компании, которая разрабатывает мобильные игры. Однажды я потратил более 2 часов, разбирая логи, чтобы локализовать весьма коварный баг с начислением ресурсов. Это был сигнал: пора что‑то менять. В этой статье я расскажу, как мой конвертер логов на Python ускорил для нашей команды анализ логов в разы, и поделюсь советами, как вы можете сделать то же самое.

Проблема: утонуть в логах

У нас в игре клиентские логи содержат аналитические события (например CurrencyChanged, KeysChanged) и технические записи (инициализация Unity, вызовы Firebase). Один лог может достигать 100 тысяч строк и более, но QA нужны только 1–2% — ключевые события и их параметры. Найти их вручную — это как искать иголку в стоге сена.

Читать далее

Программирование на уровне идей

Уровень сложностиСредний
Время на прочтение7 мин
Количество просмотров7.8K

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

У меня это бывает часто. Вообще на проверку всех моих гипотез нужно минимум человека 3-4. И вот, они появились! Правда это 3-4 нейросети, ну ок, пойдет)

Сегодня каждому предоставляется такая возможность...

Читать далее

Самодельный балансировщик «Колибри»

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

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

Началось всё с того, что я задумался о возможности создания собственного прибора для балансировки. Как оказалось, это задача не из лёгких. Она потребовала глубокого погружения в такие области, как микроконтроллеры, цифровая обработка сигналов (ЦОС), программирование, разработка печатных плат, компоновка корпуса и многое другое.

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

Принцип балансировки, как мне показалось, довольно прост: необходимо измерить частоту вращения вала, амплитуду и фазу дисбаланса. Однако на практике это оказалось гораздо сложнее, чем я предполагал.

Для начала рассмотрим основные определения, которые будут использоваться в дальнейшем:

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

Балансировка — процедура, в ходе которой проводится оценка распределения масс ротора и, при необходимости, их корректировка для минимизации дисбаланса и вибрации.

Читать далее

Bash, Python, PowerShell — что выбрать сисадмину в 2025 году

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

Автоматизация рутинных задач — это не только модная фишка, но и необходимость для любого современного системного администратора. С помощью скриптов можно уменьшить количество ошибок, повысить скорость работы и сосредоточиться на более сложных задачах. Но тут возникает вопрос: какой язык автоматизации выбрать? Bash? Python? PowerShell?

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

Читать далее

Webhook у Harbor или как я оповещения о пушах docker images нашей команды делал часть — 2

Уровень сложностиПростой
Время на прочтение5 мин
Количество просмотров582

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

Читать далее

Бинарная классификация одним простым искусственным нейроном. 2 часть

Время на прочтение6 мин
Количество просмотров1.4K

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

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

Читать далее

Творческая утилизация клавиатур

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

Если вы системный администратор и занимаетесь обслуживанием пользователей, не только в плане исполнения пожеланий по работе программных комплексов, но закупаете, устанавливаете и заменяете компоненты рабочих мест (мониторы, мышки, клавиатуры, системные блоки), то у вас, как и у меня, наверняка скопилось довольно большое количество сломанных клавиатур, где что-то уже не нажимается или стерты буквы. Плюс ко всему, клавиатура это как предмет личной гигиены, как зубная щетка, она хранит историю своего прошлого хозяина, и эта история новому пользователю будет довольно неприятна. Это и крошки под кнопками, частички кожи, грязи, волосы, наконец. Я встречал пользователей, которые работали за клавиатурами покрытыми черным слоем грязи, причем это их совершенно не беспокоило. А мне хотелось пойти и вымыть руки, поработав пару минут за этими рабочими местами.

Таких б/у клавиатур скопилось просто десятки штук, благо в подвале на складе есть место, и они просто лежали в коробке ожидая своей участи.

Читать далее

Оцифровка показаний стрелочного манометра в Home Assistant

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

Делюсь опытом реализации распознавания показаний стрелочного манометра по фотографии и отправки их в Home Assistant.

Давно мучал вопрос передачи показаний давления системы отопления со штатного манометра газового котла. Для этого несколько лет назад была приобретена камера ESP32-CAM и интегрирована в Home Assistant посредством ESPHome.

Читать далее

Python, Java, C++ и Go — как появились популярные языки программирования

Время на прочтение10 мин
Количество просмотров8.7K

Привет! Мы уже рассказывали о «вымерших» языках программирования, пришла очередь самых популярных в 2025 году. Языки не придумывают «чтобы было» — для этого всегда есть предпосылки: рассказываем, кто, когда и зачем их создал. А еще делимся интересными фактами, которых вы могли не знать — а теперь будете :)
Читать дальше →

FastAPI + Keycloak: Простая и безопасная авторизация в веб-приложении на примере реального проекта

Время на прочтение34 мин
Количество просмотров16K

Keycloak - это мощная open-source платформа для аутентификации и авторизации, которую используют даже банки и крупные корпоративные клиенты для защиты своих приложений и данных.

В статье на реальном примере (FastAPI + Python) простым языком объясню, как Keycloak помогает упростить управление доступом и почему его принципы универсальны для любого бэкенда, независимо от выбранного языка программирования

Читать далее

CLIP или SigLIP. База по Computer vision собеседованиям. Middle/Senior

Уровень сложностиПростой
Время на прочтение5 мин
Количество просмотров4.1K

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

Читать далее

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

DI в Python, Easy-DI: спаситель в сложном мире зависимостей

Уровень сложностиСложный
Время на прочтение8 мин
Количество просмотров2.9K

Привет, Хабр! Сегодня я бы хотел вместе с вами погрузится в увлекательный мир зависимостей, а точнее их внедрение.

И так, давайте сначала разберемся что же такое зависимость?

Зависимость - это объект (или функция, в Python все - это объект), который нужен другому объекту или функции для их нормальной работы. Почти в каждого объекта есть одна или несколько зависимостей. Существует 2 основных метода их получение: создание зависимости непосредственно внутри функции либо же инъекция (внедрение).

Читать далее

Распознавание орхоно-енисейских рунических надписей методами машинного обучения

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

Орхоно-енисейские руны — это древнейшая система письма тюркских народов, использовавшаяся с VI по X век на территории Центральной Азии (включая современную Монголию, южную Сибирь и часть Казахстана). Это были надгробные и памятные тексты, выбитые на камне. Они отражают политические, военные и культурные события тюркских племён. Их расшифровка началась во второй половине XIX века и остаётся предметом научных исследований и дискуссий. Исследование символов рунической письменности актуально, так как может помочь в понимании истории и культуры народов этой местности. Интерпретация енисейских надписей с памятников – очень сложная задача. Каменная поверхность разрушена временем, из-за чего символы могут быть плохо различимы. Многие памятники находятся в удаленных, диких местах, где долгий процесс исследования слишком трудозатратен. По этой причине надписи с памятников переносятся на бумажные или цифровые носители для последующей расшифровки. Как отмечал Кормушин И. В. – профессор филологии, тюрколог и алтаевед, перед чтением надписей, необходимо идентифицировать ее символы отдельным этапом. Эта ручная обработка надписей с памятников осложнена не только деформацией самих памятников, но и отсутствием строгой определенности с принадлежностью символов к тому или иному алфавиту. Достаточно распространенной оказалась проблема неточного определения состава рунических символов во многих изданиях XX века. Эти неточности приводят к ошибкам чтения и перевода древних текстов. Поэтому целесообразно автоматизировать этот процесс для повышения точности и скорости определения символов.

Читать далее

Псевдослучайный рандом в Python

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

В этой статье хочу рассказать про нерандомность модуля random в стандартной библиотеке Python. С точки зрения криптографии и математики числа, генерируемые этим модулем, случайные лишь на вид — они порождаются детерминированным алгоритмом, что делает их псевдослучайными. Рассмотрим, как устроен генератор на основе алгоритма Mersenne Twister (MT19937), почему его выходы «нерандомны» в формальном смысле и какие практические следствия это имеет.

написано для новичков и плохо посвященных в тему людей…

Читать далее

Создаем свой RAG: введение в LangGraph

Уровень сложностиСредний
Время на прочтение7 мин
Количество просмотров7.1K

Привет, Хабр! В этой статье мы рассмотрим LangGraph — инструмент для построения сложных RAG-систем. Разберём его ключевые концепции и архитектурные принципы. В следующей части перейдём к практической реализации: изучим компоненты RAG-систем и способы их интеграции

Читать далее

«Не бойтесь AI, учитесь им пользоваться»: реальный опыт интеграции нейросетей в детское IT-образование

Время на прочтение9 мин
Количество просмотров4.5K

В 2023 году мы столкнулись с интересной ситуацией: ученики нашей школы программирования начали тайком использовать ChatGPT для выполнения домашних заданий. Многие преподаватели первой реакцией выбрали запрет — стандартный образовательный рефлекс на технологии, которые могут привести к "читерству".

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

Читать далее

DSL для интерактивных рассказов: как я написал язык, чтобы придумывать истории, а не кодить

Уровень сложностиСложный
Время на прочтение3 мин
Количество просмотров2.8K

Многие разработчики мечтают о проектах, в которых можно совместить любовь к программированию и нарративу. В этой статье рассказывается о создании собственного DSL (domain-specific language) для интерактивных историй — от формализации сценарных структур до реализации интерпретатора на Python. Много кода, много боли, немного магии.

Читать далее

Ускоряем стартап Python-приложения: коротко

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

Привет, Хабр!

Сегодня рассмотрим как ускорить стартап Python-приложений. Холодный старт — это прямые потери: в деньгах, в SEO, в отклике для пользователя. Serverless считает миллисекунды, edge-инфраструктура не ждёт, а тяжёлые импорты и неподготовленное окружение легко съедают полсекунды. Будем это чинить.

Читать далее

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