Обновить
256K+

Python *

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

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

Экономия памяти со __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, в которой управление возвращается вызывающей стороне при необходимости выполнить побочный эффект.

Читать далее

Автоматизация браузера и развёртывание функций прямо из терминала

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

Notte — платформа для автоматизации браузера. Недавно мы выпустили CLI, который позволяет управлять браузерными сессиями, запускать AI-агентов, извлекать структурированные данные и развёртывать функции автоматизации — всё это прямо из терминала.

В этой статье разберём, что он умеет и как устроен.

Какую проблему мы решали

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

Notte CLI подключается напрямую к облачным браузерным сессиям. Браузер запущен не у вас — он работает у нас. Это означает, что то, что вы делаете в терминале, в точности совпадает с тем, что будет работать в продакшне.

Как работают сессии

Весь CLI построен вокруг сессий. Сессия — это живой экземпляр браузера (headless или headed), запущенный в облаке.

Запустить её можно так:

notte sessions start --headless

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

При запуске сессии поддерживается широкий набор настроек: кастомные viewport'ы, user agent'ы, ротация прокси, решение капч, файловое хранилище, переопределение CDP URL и сохранение профиля браузера.

Видимость

При запуске headless-сессии в выводе появляется viewer URL. Откройте его в браузере — и вы наблюдаете за живой сессией в реальном времени, пока команды выполняются в терминале. Удобно для отладки без переключения в отдельный интерфейс.

Читать далее

CDC Consumer с криптографической подписью: от Kafka до Hive

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

Шестая статья цикла о построении CDC-пайплайна с нуля. Данные уже текут из PostgreSQL в Kafka, но дальше просто исчезают по retention. Сегодня пишем Consumer на Python, реализуем криптографическую верификацию сообщений и строим трёхслойную архитектуру данных.

Читать далее

Представлен открытый проект rembg — легковесный скрипт на Python, который поможет убрать фон даже...

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

Представлен открытый проект rembg — легковесный скрипт на Python, который поможет убрать фон даже с самых сложных картинок. Удаляет фон за секунды и не грузит ПК.

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

Метрики для задач NLP. Часть 2. Генерация текста: BLEU, ROUGE, METEOR, BERTScore

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

В этой статье будет рассказано о популярных метриках оценки для задач генерации текста: BLEU, ROUGE, METEOR, BERTScore. Рассказ будет сопровождаться визуализацией, примерами и кодом на Python.

🔥 Начинаем 🔥

Шаблонные строки в Python 3.14: как получить контроль над интерполяцией данных

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

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

В Python 3.14 появился новый инструмент — t-строки (шаблонные строки). На первый взгляд они выглядят как еще одна вариация f-строк. Но на самом деле это принципиально другой механизм: строка больше не собирается автоматически, а передается разработчику в виде структуры, где отдельно хранится статический текст и отдельно — значения для интерполяции.

Меня зовут Алексей Макаров, я инженер по информационной безопасности в Лиге Цифровой Экономики. В этой статье разберемся, как работают t-строки в Python 3.14, чем они отличаются от привычных f-строк и в каких сценариях действительно помогают писать более безопасный код, а где использовать их не стоит.

Читать далее

ЧАСТЬ 2 — Мониторинг МФУ на Flask: новые функции, проблемы и планы

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

Опубликовал ЧАСТЬ 2: проект вырос из простого SNMP‑опрашивателя в рабочий инструмент для парка принтеров. Теперь есть склад картриджей, журнал ТО, отдельная страница парка и удобные экспорты в Excel. Пишу про реальные боли (цветные МФУ, разные прошивки, потеря данных в CSV) и о том, что планирую доделать

Читать далее

Heavy Digital: Как я создал синтетический датасет завода, который заставил профи потратить 3 суток на анализ

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

Некоторое время назад я опубликовал статью про генерацию синтетических данных для электродуговых печей (EAF). Идея была проста: реальных промышленных данных нет (они стоят миллиарды или засекречены), а учить ML‑модели на чем‑то надо.

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

Читать далее

Индикация смены раскладки клавиатуры в виде лампы с RGB-светодиодом для Gnome и Windows

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

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

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

Читать далее

Не смогли смириться с поражением - и к чему нас это привело. Как мы воскресили ИИ-помощника для поиска работы Привет,...

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

Не смогли смириться с поражением - и к чему нас это привело. Как мы воскресили ИИ-помощника для поиска работы

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

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

Самый логичный вариант был простой:

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

Цветаева и Ахмадулина. Связь поэтических миров проявляет Python

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

C помощью Python ищу цветаевские следы в творчестве Ахмадулиной и обнаруживаю диалог поэтических миров двух авторов.

Читать далее

Визуализация 2+1D в Виртуальной Вселенной

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

Предыдущие части:

«Геометрическая головоломка на выходные»,
«Электродинамика виртуальной Вселенной»,
«Механика виртуальной Вселенной»,
«Квантовая механика виртуальной Вселенной (Часть I)»,
«Квантовая механика виртуальной Вселенной (Часть II)»
«Релятивизм виртуальной Вселенной»
«Космология виртуальной Вселенной (Часть I)»
«Космология виртуальной Вселенной (Часть II)»
«Электричество, проводимость и сверхпроводимость в виртуальной Вселенной»
«Атом в Виртуальной Вселенной (Часть I)»
«Атом в Виртуальной Вселенной (Часть II)»
«Атом в Виртуальной Вселенной (Часть III) [Химия]»

Здравствуйте, мои уважаемые читатели.

Следующим шагом я хотел приступить к описанию ядра атома в рамках описанной ранее теории. Но по комментариям и при личном обсуждении, пришёл к выводу, что теория хоть и является минималистичной, но всё-же, интуитивному её пониманию сильно мешает то, что всё обсуждение строится в 3+1 геометрических измерениях. С одной стороны — их не 11, как в теории суперструн, но и 4 — это сложно для понимания для неподготовленного человека. Да и, кого я обманываю — даже подготовленному проще оперировать формулами, чем образами в пространствах, размерностью выше трёх. Но в этой модели очень важно понимать её онтологию, суть процесса. Формулы являются лишь языком, позволяющим (вот тут будет тавтология) описать формализм системы и дать возможность оценить её качественно и количественно.

Эти размышления привели меня к мысли о необходимости дать расширенное визуальное описание системы. Я не придумал ничего лучше, чем понизить размерность. Исходно, у нас система представляет собой трёхмерную сферу S3. А давайте рассмотрим такую же модель, но на сфере S2. Да, удастся показать не всё — например, спин 1/2 здесь показать не выйдет. Но кое что должно проявиться и дать интуицию.

Читать далее

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

Я автоматизировал поиск работы, чтобы пройти тест Тьюринга у HR. Открытый эксперимент

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

Привет, Хабр. Я Вадим, QA-инженер.

Все мы знаем, как работает найм. Твое резюме может быть идеальным, но если в нем нет нужного ключевого слова или оно не понравилось алгоритму первичного отсева (ATS) — ты в пролете.

Я решил взломать эту систему. Инженерно.

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

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

Читать далее

Telegram‑бот для (само)дисциплины на Python: aiogram 3, APScheduler и деплой на VDS

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

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

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

Что имеем as is - пет‑проект о том, как я с нуля собрал и выкатил в прод Telegram‑бота, который напоминает о фокусе дня, считает выполнения, дает ачивки, мягко мотивирует, работает по таймзонам и крутится на VDS под systemd.

Заценить

MCPHero: MCP tools как native tools в openai

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

MCPHero - новая библиотека/проект для Python для использования MCP tools как native tools в ИИ библиотеках типа openai, которые не поддерживают MCP сами по себе.

Читать далее

Приложение на коленке! Почему Vial и QMK — шляпа?

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

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

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

И теперь пришло время рассказать про софт.

Почему лично для меня софт — это очень важная часть клавиатуры.

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

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

Если на упаковке сделали всё спустя рукава, то и на производстве, скорее всего, не заморачивались. Не факт конечно! но ощущение возникает именно такое.

С софтом всё работает точно так же. Он либо вызывает доверие и желание работать дальше, либо сразу оставляет чувство «ну такое».

Читать далее

Как построить дерево метрик? Разбираем на примере сервиса доставки еды

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

Как не потеряться в сотнях графиков и найти реальные рычаги влияния на бизнес? В статье представлен подробный разбор Дерева метрик на примере FoodTech-сервиса (доставки еды). Мы уходим от простого мониторинга цифр к системной декомпозиции North Star Metric.

Читать далее

Последовательный анализ в AB-тестировании: ускоряем принятие решений с помощью mSPRT

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

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

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

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

Такой метод позволяет сократить время проведения тестов на 30-50%, не жертвуя при этом достоверностью. Это способ сделать процесс проверки гипотез более гибким и быстрым, сохраняя безупречную математическую строгость в каждой точке принятия решения.

Читать далее

CI/CD для карьеры: как я написал бота, который проходит HR-фильтры вместо меня

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

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

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

Но когда дело доходит до поиска работы, мы превращаемся в биороботов.

Заходим на hh. Вбиваем фильтры. Читаем описание (которое на 90% копипаста). Пишем сопроводительное (которое никто не читает). Жмем кнопку. Повторить 100 раз.

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

Попытка №1: Тупой парсер (Python + Requests)

Сначала я решил задачу в лоб. Написал воркер, который:

Читать далее