Обновить
1024K+

Python *

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

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

Автоматизация PetKit Smart Spray K3 через Bluetooth и интеграция с Home Assistant

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

Всем привет. Это моя первая статья, так что не судите строго (да, да, заезженная фраза).

Я думаю у всех есть домашние питомцы и за всеми так или иначе надо убирать - разбросанный силикагель (для кошек как пример). В один из дней, знатно наступив на один из силикагелевых шариков, которые разбросала моя кошка, я понял, что мне это надоело и установив Home Assistant, а так же датчик движения в кошачий лоток (который, к слову, выглядит как пуфик с дыркой для входа кошки) я написал простенький скрипт на то, чтобы робот-пылесос убирал определенную зону после того как кошка сделает свои грязные дела. Все заработало и мои, а так же моей жены телесные травмы свелись к минимуму (все же задержка перед уборкой аж целых 5 минут), но я начала думать о том что было бы неплохо еще и запах убивать после особо пахучих дел, но времени на это не было (да и желания, так как готовых решений не было, тем более появился ребенок и время на подобные дела вообще свелось к минимуму).
Шло время и вопрос о запахе из лотка становился все острее.

Читать далее

«Danil OS» или локальные веб интерфейсы

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

Эта статья расскажет о моём эксперименте по оптимизации моего рабочего пространства в macOS.

Примерно 10 лет назад я придумал одну идею — канбан-рабочий стол. Я понял, что иконки на рабочем столе были крутыми… в 1984 году. и втом числе поэтому 1984 не был как 1984) Но камон, за 40 лет кроме виджетов почти ничего не изменилось. Марк…

10 лет назад, узнав о системе канбан, я начал пользоваться Illustrator’ом и рисовал себе 4 колонки прямо на рабочем столе. Поверх них размещал стандартные стикеры, полностью отключив иконки рабочего стола.

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

Во-первых, Plash — программулька, которая ставит Chrome вместо бэкграунда.
Я также сделал на Python с FastAPI и Jinja и запустил себе уже настроенный канбан-рабочий стол.

Но как вы понимаете, на этом дело не кончилось.

Гуляя по интернету, я нашёл несколько исходников с открытыми лицензиями, которые я использовал в своём проекте.

Читать далее

Не доверяйте groupby().first()

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

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

В этой статье рассмотрим, почему groupby().first() в pandas — не такая уж безопасная и очевидная штука, как может показаться. Особенно когда нужно достать первую строку группы в точности, как она была в датафрейме — с NaN, с порядком, без сюрпризов.

Но для начала рассмотрим отличия first от других подобных методов.

Читать далее

Оповещение о РО через колонки Яндекса (Ну или в целом получение сигналов в УДЯ)

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

Система и алгоритм оповещения о ракетной опасности с использованием Яндекс Станций. Пользователь вручную создает сценарии для устройств «Умного дома Яндекса» с использованием «Лампочки», которая включается при сигнале о РО и выключается при сигнале ОТБОЙ.

Стэк: Python, telethon, aiogram 3.x, mqtt, postgresql.

Читать далее

LitestarCatsCV. Тренируемся на кошках. Расширяем возможности и готовимся к продакшену. Часть 3

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

Привет, котики и котолюбы! В первой части нашего кошачьего приключения мы выбрали инструменты (Litestar вместо FastAPI, Granian вместо Gunicorn, KeyDB вместо Redis), настроили uv и заложили фундамент проекта. Во второй части мы построили полноценное CRUD API для резюме котиков (или людей, если вам так ближе), подружили его с PostgreSQL через SQLAlchemy, настроили миграции с Alembic и написали тесты с Pytest. У нас уже есть стены и фундамент, но пора ставить крышу и готовиться к продакшену! 🏠

Сегодня мы сделаем наш API ещё круче: вынесем конфиги в отдельный модуль с помощью msgspec, добавим аутентификацию через встроенный JWT в Litestar, ускорим API с KeyDB, проверим покрытие тестами с coverage, упакуем всё в Docker и нарисуем резюме котиков с помощью Jinja. К концу статьи наш кошачий проект будет готов к реальной жизни — поехали! 🚀

Читать далее

Проверка теории повторяемости биржевых графиков

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

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

Читать далее

Обработка геоданных для ML-задач. Часть 2: пространственные объединения и расстояния

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

Статья продолжает обсуждение пространственных признаков в Python. Здесь мы рассматриваем пространственные объединения — аналог обычного объединения в мире геоданных, основанный на топологических отношениях между объектами, таких как пересечение, вложение или касание. Также мы узнаем, как правильно рассчитывать различные типы расстояний (и иногда это не просто евклидово расстояние между двумя точками). Например, геодезическое расстояние учитывает кривизну Земли, что особенно важно для анализа данных на больших территориях; расстояние маршрута учитывает направление: оптимальный маршрут от A до B не всегда равен маршруту от B до A. 

Читать далее

Генерация цветовых градиентов для дашбордов Dash и отдельных графиков Plotly

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

Создание цветовых градиентов для дашбордов в Dash/Plotly

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

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

В статье вы узнаете:

Как избежать проблем с ручным назначением цветов

Как предотвратить «заканчивание» заранее подготовленных цветовых палитр

Как создать равномерные цветовые градиенты в рамках заданной схемы

Практические примеры реализации на Plotly и Dash

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

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

Читать далее

Контроль времени в Python-тестах: freeze, mock и архитектура Clock

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

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

Время — это одна из самых нестабильных переменных в коде (и не только). Оно безжалостно к CI, случайным багам и здравому смыслу. Особенно если вы пишете логику, где участвует datetime.now(), time.time() или utcnow(): TTL, крон-задачи, дедлайны, отложенные события, idempotency-окна, подписки, отложенная отправка писем, повторная авторизация — всё это работает с временными сдвигами. И всё это будет ломаться, если не заморозить время в тестах.

В этой статье рассмотрим, как выстроить адекватную архитектуру контроля времени: от простых фиксаций до внедрения Clock-абстракции.

Читать далее

Как нам удалось упростить жизнь инженера-сметчика и сократить время на разработку сметы в 20 раз

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

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

С чего все начиналось: с типичного дня сметчика

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

Читать далее

Запускаем FLUX 1 Dev в Google Colab

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

Ранее я уже делал статью про запуск в пару кликов моделей Stable Diffusion в Google Colab с помощью Fooocus (способ актуальный), сегодня мы проделаем похожее с моделью FLUX 1 Dev, но без web интерфейса.

Читать далее

Open-source персистентная память для LLM

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

Задача, которая казалась тривиальной: научить LLM помнить, с кем она разговаривает. Пользователь пишет «я вегетарианец», а через три сообщения модель предлагает стейк-хаус. Знакомо?
Стандартные решения — обрезка истории, суммаризация, внешние векторные базы — всё это костыли. Я пошёл другим путём и сделал NGT Memory — модуль персистентной памяти с открытым исходным кодом.
В статье подробно расскажу про архитектуру, эксперименты и все найденные решения. Если строили чат-ботов или AI-агентов — будет интересно

Читать далее

Гайд: Как работать с форматом PARQUET

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

В прошлом году мы начали публиковать данные в каталоге «Если быть точным» в формате Parquet. Его придумали инженеры Twitter и Cloudera в 2013 году, и сегодня он стал стандартом хранения аналитических данных — его используют Google, Amazon, Netflix и большинство современных data-платформ. В этом гайде мы расскажем, как эффективно работать с данными в формате Parquet с помощью Python.

Читать далее

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

Как я взвесил черную дыру и отменил Темную материю с помощью Python (Анализ данных LIGO и SPARC)

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

Привет, Хабр! Меня зовут Павел, я независимый исследователь. Последние пару недель я находился в состоянии непрерывного потока, в результате которого с нуля написал 100-страничную монографию, вывел математический аппарат и написал Python-скрипты, доказывающие одну безумную, на первый взгляд, гипотезу. Весь этот путь от чистого листа до готовой публикации с DOI занял у меня ровно 15 дней.

Суть гипотезы — Теории Вибрационно-Энергетического Резонансного Континуума (ТВЭРК) — состоит в том, чтобы отказаться от эйнштейновской абстрактной «искривленной пустоты» и описать Вселенную методами строгой механики сплошных сред и нелинейной гидродинамики.

Звучит амбициозно и попахивает «теорией всего», я знаю. Но любая теория — это просто слова, пока она не подтверждена цифрами. Поэтому я отложил философию, взял Python и пошел проверять свою математику на реальных, сырых данных из открытых астрофизических баз.

В этой статье я покажу, как мне удалось смоделировать кинематику 175 галактик одним набором параметров (без Темной материи) и «услышать» резонансный гул черной дыры Cygnus X-1 в данных интерферометров LIGO.

Смотреть расчеты и Python-код

От вет-ИИ для коров до имперского глянца: хардкорный MLOps на бесплатных GPU

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

В начале 2026 года ленты новостей принесли тревожные сообщения из Сибири: массовые вспышки опасных заболеваний у КРС (крупного рогатого скота) привели к необходимости вынужденного забоя тысяч голов. Для многих фермеров это означало потерю бизнеса и средств к существованию.

Мы задались вопросом: может ли доступный Computer Vision стать первой линией обороны? Инструментом, который позволит фермеру в отдаленном районе провести первичный скрининг (триаж) животного с помощью обычного смартфона и вовремя вызвать ветеринара, не дожидаясь начала эпидемии.

Так родился проект AI-Vet-Scanner (наше пространство на Hugging Face), определяющий признаки заболеваний по фотографии.

Читать далее

Проект Hornbeam — новый способ задеплоить ваше приложение на питоне

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

Здравствуйте, дорогие читатели! Сегодня я расскажу вам о проекте hornbeam, который переводится на русский язык как "граб" - это такое дерево, похожее на дуб. Он позволяет деплоить сервисы на питоне, используя для этого виртуальную машину эрланга, BEAM (!) А также, позволяет удобно запускать код на питоне, если вы уже используете Erlang или Elixir.

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

Проект задумал и осуществил автор широко известного веб-сервера gunicorn, он адресован широкому сообществу программистов на питоне и эрланге.

Читать далее

Apache Superset 2026. Как работает Drill Down и Drill By

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

Работая с аналитикой, мы часто сталкиваемся с одной и той же проблемой: данные есть, но исследовать их неудобно.

Представим типичную ситуацию. Есть таблица с десятками колонок и миллионами строк. Нужно понять, почему изменился какой-то показатель — например, выручка или конверсия. Обычно это превращается в цепочку SQL-запросов: сначала агрегируем данные по стране, потом по городу, потом по конкретному сегменту пользователей и тд.

Если таких гипотез несколько, количество запросов быстро растёт с геометрической прогрессией. Каждый новый уровень детализации требует отдельного SQL.

В какой-то момент хочется просто кликнуть по графику и мгновенно увидеть более детальные данные. Без написания нового запроса.

Именно здесь на помощь приходят BI-инструменты. Один из самых популярных open-source инструментов для аналитики — Apache Superset.

Читать далее

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

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

По данным Data Insight 30% отказов от покупок связано с заказным негативом. Раньше ботов вычисляли по шаблонным фразам, но сейчас спамеры массово генерируют жалобы через LLM. Модерация геосервисов пропускает такой контент. Формально отзывы уникальны и не нарушают правила площадок. Ручная проверка тысяч комментариев требует десятков часов работы аналитика и не исключает человеческий фактор. Визуально отличить качественный фейк от мнения реального клиента стало невозможно.

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

Читать далее

Замыкания, декораторы и nonlocal в Python: Путешествие от переменной до элегантного кода

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

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

В этой статье мы проследим эволюцию: начнем с глобальных переменных, разберемся с замыканиями (closures), поймем магию nonlocal, а затем соберем всё это вместе, чтобы понять, как работают декораторы — один из самых элегантных механизмов Python.

Читать далее

Наблюдаемость LLM-агентов: Часть 2. Разработка и отладка графа

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

Привет, Хабр! Меня зовут Владимир и это вторая часть материала о трассировке LLM-агентов. В первой части мы настроили инфраструктуру: подняли LangFuse, организовали трассировку и научились управлять промптами как кодом. Если вы ещё не читали — рекомендую начать с неё.

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

Читать далее