Обновить
1024K+

Python *

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

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

От «Долгого Джонта» Кинга до pip install: пишем HAL для атомного манипулятора

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

Начал с фантазий про телепортацию из рассказа Кинга, закончил Python-пакетом для управления атомным микроскопом. Симулятор вместо оборудования за $500K, замена LabVIEW на asyncio, drop-in для RL-агента.

Читать далее

Новости

Часть 5: Интеграция с устройствами «Умного дома» — от модели к реальному устройству

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

Что сработало хорошо

MQTT — надёжный и простой протокол для умного дома

Плагин-архитектура — легко добавлять новые устройства

Обработка ошибок — система устойчива к сбоям

Очередь команд — предотвращает конфликты

Что можно улучшить

Поддержка больше протоколов — Zigbee, Z-Wave, Matter

Голосовая обратная связь — подтверждение команд голосом

Сценарии — поддержка сложных сценариев (макросов)

Машинное обучение — адаптация под привычки пользователя

Советы для разработчиков

Начинайте с простого — начните с одного устройства, затем масштабируйте

Тестируйте надёжность — тестируйте в реальных условиях

Обрабатывайте ошибки — устройства могут быть недоступны

Документируйте API — облегчает добавление новых устройств

Читать далее

Pygame (Урок № 1)

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

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

Читать далее

Векторный поиск в PostgreSQL: pgvector, pgvectorscale или VectorChord?

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

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

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

Читать далее

Развиваем проект: фильтрация, поиск и экспорт данных

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

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

Читать далее

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

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

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

Читать далее

В каждом JPEG зашита модель вашей сетчатки. Буквально

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

После того как я написал статью про то, что ваш монитор не умеет показывать бирюзовый и 65% видимых цветов для него просто не существуют, один мой знакомый (далекий правда от технической отрасли) спросил: «Окей, монитор врёт, а что тогда делает JPEG с оставшимися 35%?» И это хороший вопрос. Я полез в спеку, а через полчаса забыл, зачем вообще полез. Потому меня уже интересовало другое: ребята, которые в 1992-м финализировали этот стандарт, по сути заревёрсили человеческое зрение и запихнули его в алгоритм сжатия.

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

Читать далее

Бот для отправки графиков из Redash в Mattermost

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

Расскажу, как я автоматизировала регулярную отправку графиков из BI в мессенджер.

Задача была довольно типичная: есть дашборд в redash, на который смотрят каждый день. Данные иногда приходят с задержками и нельзя быть уверенным, что в 9 утра все "доедет", плюс зайти руками и прокликать несколько разрезов это долго и неудобно, хочется сразу все видеть в мессенджере как только данные обновились.

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

Читать далее

GIL в Python для senior interview

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

GIL — самая известная «фича» Python, о которой большинство разработчиков знают ровно одну фразу: «мешает многопоточности». Этого хватает для джуна, но не для сеньора.

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

Читать далее

Когда CUPED не хватает: где помогает VWE

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

Когда A/B-тест не показывает эффект, это не всегда значит, что эффекта нет. Иногда он просто теряется в шуме метрики.

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

Код, графики и все результаты симуляции — в открытом репозитории.

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

Читать далее

Оптимизация сборки Python Docker образа: размер меньше на -43% (-57%)

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

Всем привет. Я Backend разработчик, в основном на Python и немного Go. Хотел бы рассказать про свой опыт оптимизации docker образов и написать некий «туториал». Он скорее будет полезен для разработчиков или начинающим DevOps. Для опытных DevOps инженеров, возможно будет мало интересного и полезного.

Читать далее

Автоматический поиск торговых сигналов с отправкой в Telegram: полный разбор Python-системы

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

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

В этой статье разбирается полностью автоматизированная система, которая:

Читать далее

Идемпотентность в backend: как перестать дублировать операции

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

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

Читать далее

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

Поиск с возвратом

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

Привет, Хаброжители! Мы открыли предзаказ на книгу «Паттерны Coding Interview. Подготовка к сложному техническому интервью» Алекса Сюя и Шона Гунавардана. Предлагаем ознакомиться с главой 14 «Поиск с возвратом».

Основные понятия

Представьте, что вы находитесь на перекрестке в лабиринте и знаете, что один из трех маршрутов впереди ведет к выходу.

Читать далее

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

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

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

Читать далее

Как применяют LLM с RAG в экосистеме ML-моделей поддержки Лемана Тех? Кейс

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

С ростом числа обращений в Service Desk классические ML-решения перестали покрывать все сценарии. Что же с этим делать?

Привет, Хабр! Я — Дмитрий Терентьев, ведущий специалист по науке о данных в Центре компетенций сопровождения IT-продуктов. Работаю с данными больше восьми лет, последние четыре — в Лемана Тех. В этой статье по мотивам доклада с AiConf я расскажу об эволюции моделей машинного обучения в поддержке и как удалось дополнить экосистему поддержки LLM с RAG для человекообразных ответов по Wiki и интеллектуальной эскалации к живым специалистам.

Читать далее

Базовый минимум. Часть 4:  ИИ-агенты

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

Большая языковая модель хорошо отвечает на запросы, но во многих практических задачах одного ответа уже недостаточно. Нужно не просто сгенерировать текст, а выполнить последовательность шагов: получить данные, выбрать инструмент, проверить результат и при необходимости скорректировать действие. Именно поэтому агентный подход быстро становится стандартом современных систем на основе LLM.

В четвертой, завершающей части серии «Базовый минимум» разбирается, что такое ИИ-агенты, чем они отличаются от RAG-систем, как работает ReAct и зачем нужны мультиагентные системы. В конце будет показан простой воспроизводимый пример минимального ИИ-агента-помощника в путешествиях в Google Colab.

Читать далее

Зачем Паустовскому облака? Узнал точно с помощью Python

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

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

Читать далее

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

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

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

Читать далее

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

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

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

Читать далее
1
23 ...