Обновить
256K+

Python *

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

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

Apache Superset — боремся с фильтрами по дате. Часть 1

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

В этой статье хотелось бы начать раскрытие больной для многих пользователей Apache Superset темы — фильтры по дате. Начнем с малого: как суперсет выбирает колонку даты; как выбрать желаемую колонку вместо той, которую он выбирает; каким образом это реализовано; какие баги породили этим решением; почему КОП не доведет до добра.

Читать далее

От Dependency Hell до изоляции: эволюция и внутреннее устройство виртуальных сред в Python

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

До 2007 года установка двух версий одной библиотеки на одном сервере была невозможной миссией. Появление virtualenv, а затем и нативного venv, изменило ландшафт Python-разработки навсегда. Но как именно работает этот механизм на уровне операционной системы и интерпретатора? Разбираем путь от копирования бинарников до современных симлинков, анализируем роль sys.path и реализуем собственный аналог venv.

Читать далее

Проксирование в UI автотестах с mitmproxy

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

Прокси — один из основных инструментов в арсенале QA-инженера. Charles Proxy, Fiddler и Proxyman давно стали стандартом для анализа и изменения сетевого трафика в процессе ручного тестирования. Их принцип работы хорошо известен и подробно описан во множестве материалов.

Однако возникает вопрос: как использовать подобные возможности в UI-автотестах? Как перехватывать или мокать трафик в автоматизированных сценариях?

Давайте разберёмся ->

Вышел открытый проект Cambalache 1.0 — инструмент для разработки GTK-интерфейсов

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

20 марта 2026 года состоялся релиз открытого проекта Cambalache 1.0. Это инструмент для быстрой разработки интерфейсов для GTK 3 и GTK 4, использующий визуальное проектирование (WYSIWYG), парадигму MVC и философию первостепенного значения модели данных. Исходный код решения написан на Python и опубликован под лицензией LGPLv2.1. Для установки доступен пакет в формате flatpak.

Читать далее

Часть 4: Обучение и валидация модели — 250 эпох, 94.55% точности и борьба с переобучением

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

Эпоха 1: Точность на обучении 21.10%, на валидации 94.55%
Высокая валидация на первой эпохе — случайное совпадение. Модель ещё не обучилась, но случайная инициализация весов дала хороший результат на маленькой валидационной выборке.

Эпоха 2-3: Точность на валидации упала до 0%
Модель начала переобучаться на обучающей выборке. Это нормальное явление на ранних этапах обучения.

Эпоха 20: Стабилизация на уровне 78.90% (train) и 27.27% (val)
Начало сходимости модели. После этой эпохи точность на валидации начинает расти.
....
и это всё было на ресурсах Goole-Colab, даже не всегда получалось попасть на GPU. От сюда и выбор размерности батча, для обучения

Читать далее

Генеральный директор не делает холодные звонки: как мы разделили роли LLM и сэкономили бюджет на AI-разработке

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

Попытка внедрить популярных AI-агентов (вроде Aider) в реальный продакшен обернулась для нас провалом: бесконечные циклы ошибок, потеря контекста и счета за API, от которых дергается глаз. Мы поняли, что стандартный паттерн «Оркестратор + Кодеры» не работает.

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

Читать далее

Мета-модель для диагностики обучения нейросетей

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

Когда мы обучаем модели машинного обучения, почти всегда возникает один и тот же вопрос:

Что именно происходит во время обучения?

Обычно мы смотрим на графики метрик и пытаемся вручную интерпретировать происходящее.

Можно посмотреть на learning curves и понять, что происходит:

Но этот анализ почти всегда выполняется вручную или с помощью простейших эвристических правил. А ведь сколько времени, сил и нервов можно было бы сэкономить, если обучить до 100 эпохи а не до 500 (см картинка выше) :-(

Но можно задать интересный вопрос:

А можно ли автоматически определить состояние обучения модели?

Читать далее

Ищи работу правильно — как не ошибиться в важном выборе

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

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

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

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

В результате решение об оффере принимается почти вслепую.

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

За время регулярных выходов на рынок я выработал несколько простых практик, которые позволяют существенно снизить вероятность подобных сюрпризов.

Поделюсь основными из них, надеюсь, что всем будет полезно 👇

Читать далее

Система рекомендаций для изображений: пример на Python и CLIP

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

В этой статье я делюсь реальным кейсом построения системы рекомендаций для картин. Сначала мы реализовали простой поиск по тегам, а затем перешли к эмбеддингам изображений с помощью CLIP и хранению в Elasticsearch. Также я показываю, как строим персонализированные рекомендации на основе лайков и просмотров пользователя. Статья будет полезна тем, кто хочет понять, как создать рабочую систему рекомендаций на Python и постепенно улучшать её точность.

Читать далее

Шаблонный сервис на FastAPI

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

Я всячески люблю, когда разработка идёт предсказуемо – и многое для этого делаю.
Давно хотел написать пост о важности шаблонного сервиса, но не было хорошего примера под рукой. И тут мой коллега выложил наш шаблонный сервис на FastAPI, который мы долгое время использовали и развивали.

Так зачем же нужен шаблонный сервис?

Читать далее

Как я поймал Трансформер на читерстве: гроккинг, математика и Mechanistic Interpretability

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

Феномен Grokking и Mechanistic Interpretability — главные тренды в исследованиях лабораторий уровня OpenAI и Anthropic. Я решил потрогать эти концепции своими руками на уровне тензоров. Цель казалась тривиальной: заставить кастомный микро-Трансформер (всего 1М параметров) выучить базовую арифметику с нуля. Однако вместо математического гения я получил ленивого мошенника. Эта статья — инженерный детектив о том, как нейросети пытаются нас обмануть (Specification Gaming), и как вскрытие Attention-матриц помогает поймать их за руку.

Вскрыть Трансформер

Тёмная сторона крипты, аномалии и управление тысячами роботов

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

Перед вами третья и последняя часть моей статьи про конференцию алготрейдеров в Москве. Часть 1 была про инфраструктуру, а часть 2 про практическое применение ИИ.

Третья часть будет о последствиях. Перед вами будут четыре доклада на одну тему:

* неэффективности,
* уязвимости,
* масштабирование систем.

А ещё в статье интересная торговая идея с дисбалансом внутри синтетического инструмента — целой корзины акций Мосбиржи.

Всё плохо?

Команда разработчиков языка программирования Python визуализировала изменение кодовой базы интерпретатора CPython...

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

Команда разработчиков языка программирования Python визуализировала изменение кодовой базы интерпретатора CPython в привязке к основным событиям, произошедшим за 36 лет существования проекта. За последние 10 лет объём кода на языках Python и Си в CPython практически удвоился. Для подсчёта числа строк кода использовалась утилита cloc.

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

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

Робот с видеонаблюдением и отслеживанием объекта

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

Введение

Данный проект, является логическим продолжением развития темы "Солнечный трекер на Arduino".

Используя базу солнечного трекера (его конструкцию) и web-камеру можно собрать роботизированную конструкцию, которая будет отслеживать в режиме реального времени назначенный маркер или группу маркеров в определённой области пространства.

Распознавать маркеры можно по разным критериям: выбранному цвету, текстуре, форме и т.д.

Я выбрал второй вариант. Делаю фото объекта web-камерой, с выбранным однородным цветом, которую буду использовать на роботе.

Подготовка ПО

Для корректной работы программы вам нужно:

1. Установить Python https://www.python.org/

2. Установить модули numpy, opencv и pyserial используя инструмент pip https://pypi.org/project/numpy/

https://pypi.org/project/opencv-python/

https://pypi.org/project/pyserial/

3. Установить Arduino ide

https://learnlange.blogspot.com/p/blog-page_28.html

Сборка робота

Система представляет стационарную установку с двумя степенями свободы, которые позволяют вращаться в пространстве цилиндрической формы. На верхней части системы закреплена USB web-камера (её можно заменить на smart камеру или ip камеру).

Для быстрого создания прототипа использую образовательный набор КЛИК: базовый и ресурсный
Поворотные механизмы реализованы с использованием DC моторов с понижающей передачей.

Читать далее

PEP — это не стиль, это язык, которым ты думаешь о коде

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

Я долго думала, что PEP — это про оформление. PEP 8: называй переменные вот так, PEP 257: пиши докстринги вот так.

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

Читать далее

Я устал каждый раз собирать проект с нуля — и сделал универсальный Docker+Python-шаблон

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

Всем привет! Это моя первая статья на Хабре и я надеюсь и рассчитываю на вашу критику, дельные замечания, внимание и аплодисменты. Сим я начинаю серию статей посвящённых тому как создавать SaaS продукты, как подбирать нишу, как его собственно программировать и отлаживать, как выводить на рынок и всё в таком духе. Поделюсь своим опытом, так сказать.

Эта статья (и несколько последующих) будет посвящена сугубо технической части вопроса. Я расскажу о своём шаблоне для разработки и тестирования MVP, который ускоряет дело. Он у меня появился потому, что я любитель экспериментов и много раз делал разные микропроекты — боты, игры, сайты, парсеры и тому подобное В какой‑то момент я заметил что таскаю между проектами один и тот же кусок кода, который здорово ко всему подходит и с которого начинается каждый мой новый проект.

Итак, вашему внимаю представляю МЕГА ШАБЛОН УДОБНОГО БЫСТРОГО ПРОГРАММИРОВАНИЯ

«Чем же он так хорош?», спросите вы. И правильно сделаете что спросите! А я вам отвечу.

Читать далее более сильнее погнале

Как я определял дистрибутивы Linux по установленным пакетам, и при чем тут KUMA?

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

Как определить дистрибутив Linux? А что, если имеется только информация о пакетах, установленных на устройстве? История одного «велосипеда» или мы не нашли готового решения.

Представьте, что вам нужно определить дистрибутивы, опираясь исключительно на установленные пакеты. Инвентаризация есть, но данные неполные — часто известно только имя хоста, IP и список установленных пакетов. Операционная система может быть указана как «Linux» без уточнения дистрибутива и версии. О создании алгоритма, работе с KUMA и написании код в данной статье.

Читать далее

Векторный поиск в PostgreSQL: PGVector, SQLAlchemy и FastAPI

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

Реализуем сервис семантического поиска на базе PostgreSQL с расширением PGVector. В статье: настройка БД через Docker, миграции Alembic, асинхронный слой на SQLAlchemy и API на FastAPI. Иллюстрация на обложке - нейрослоп для привлечения внимания

Читать далее

Экономия памяти со __slots__ В Python атрибуты классов по-умолчанию хранятся в специальном dunder-атрибуте __dict__....

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

Экономия памяти со __slots__

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

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

Execution completion

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

Во время инференса LLM не выполняется побочных эффектов, вместо этого генерируется последовательность токенов, которые можно интерпретировать как намерение вызвать инструмент. Это напоминает мне ту часть шаблона transactional outbox, в которой намерение сущности (entity) отправить запрос внешней системе записывается в специальную таблицу, а не реализуется сущностью самостоятельно.

В статье приведен proof-of-concept модели выполнения, вдохновленной chat completion, в которой управление возвращается вызывающей стороне при необходимости выполнить побочный эффект.

Читать далее