Обновить
758.93

Python *

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

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

Как настроить ежедневную сводку о работе Яндекс.Директа в Телеграм?

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

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

Разберем, как автоматизировать сбор статистики и отправлять ежедневные отчеты в Telegram с помощью Python. Основная цель — помочь оперативно и точно оценивать эффективность рекламы за текущий период. Для этого мы используем средние показатели рекламы за 7, 30 и 90 дней, чтобы данные были объективны и при этом отражали общую картину.

Читать далее

Mount — ещё один способ уменьшения размера Docker-образа

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

Делюсь лайфхаком по уменьшению размеров Docker-образов. Как-то нам попалась на поддержку и развитие CRM-система, написанная на Ruby...

Обновили Ruby-пакеты и под них код, написали Dockerfile. Первая сборка была удручающей: образ в 2Гб. Это нормальный размер, если ты собираешь образ с Torch и другой ML-штуковиной, но CRM - нет. В результате дальнейших действий, удалось сократить размер образа до 200Мб.

Cделали следующее, чтобы сократить размер

Как пакет с пакетами помог аналитику решить задачу для бизнеса, или keep calm and import statsmodels

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

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

Читать далее

Плюс в резюме: оркестрация масштабных приложений для Python-разработчиков

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

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

Всем привет! Я Рома Володин, ведущий разработчик в Т-Банке и человек-оркестр на курсе по разработке на Python. Я и автор, и техлид, и наставник, и немножко ревьюер, но в большей мере всё-таки техлид: руковожу направлением и его развитием. Расскажу, почему мы добавили новый модуль, из чего он состоит и в чём его польза для разработчиков. 

Читать далее

Как идеи Аристотеля применяются в GenAI. Разбираем вопросы этики ИИ в образовании и создаем философский чат-бот

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

Учёные Лаборатории цифровой философии Санкт-Петербургского государственного университета на протяжении нескольких лет занимаются глубоким исследованием цифрового мира. Проект объединяет междисциплинарные исследования и занимается вопросами, которые задают философам представители цифровых технологий, статусом традиционных философских вопросов в сфере технологий и разработкой цифровых инструментов в изучении философии. Исследование генеративных нейронных сетей и их использование в педагогике вообще и в философии в частности – одна из сфер интересов учёных Лаборатории. Опыт применения этих сетей на семинарах показал ряд интересных особенностей использования GenAI (Generative Artificial Intelligence) в философии.

Об этике применения генеративных нейронных сетей в образовании, а также о философском чат-боте рассказывает координатор семинара «Лаборатория цифровой философии» Дмитрий Ярочкин.

Читать далее

Корутины: stackful vs stackless

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

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

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

Читать далее

Открытие TortoiseORM: Асинхронная ORM глазами Python-разработчика

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

Недавно я столкнулся с задачей выбора ORM для нового проекта на Python, и мое внимание привлекла TortoiseORM. Скажу честно, я был удивлен тем, насколько эта ORM упрощает работу с базами данных в асинхронных приложениях.

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

Читать далее

Рекомендатель кино или как я писал свое DIY-решение для поиска новых фильмов

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

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

В статье покажу, что получилось написать за 2 дня. Писал всё «на коленке» по доступным библиотекам и данным. Получилcя DIY-рецепт. Всё платформозависимое работает в Docker, чтобы повторить и развернуть можно было везде. 

Читать далее

От звука к смыслу: распознавание речи в видеоконтенте

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

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

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

Подробнее

Асинхронный SQLAlchemy 2: пошаговый гайд по управлению сессиями, добавлению и извлечению данных с Pydantic

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

Продолжаем цикл статей по асинхронной SQLAlchemy в стиле ORM!

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

Что нас ждёт сегодня?

- Сессии и фабрики сессий: Узнаем, как эффективно управлять сессиями для взаимодействия с базой данных.

- Добавление данных в таблицы: Освоим безопасные методы добавления новых записей с использованием ORM-методов.

- Извлечение данных из таблиц: Погрузимся в мир извлечения данных. Рассмотрим простые запросы и более сложные фильтры для работы с данными.

После прочтения этой статьи вы сможете уверенно добавлять и извлекать данные с помощью SQLAlchemy для любых табличных баз данных.

Не пропустите, будет интересно и полезно!

Читать далее

Сервис для обхода блокировки OpenAI API в России или ваш первый API

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

Всем привет! Сегодня я расскажу вам, как я сделал сервис для обхода блокировки OpenAI в россии со стороны OpenAI (не Роскомнадзор даже) с использованием FastAPI и Docker. Мотивация проста. У меня в РФ есть сервер на котором работают сервисы и я хочу подключить к ним OpenAI, но они не дают доступ, распознавая IP из россии. Подумал что напишу сервер для пересылки запроса. Если вам интересно, как за несколько шагов запаковать работу с ИИ в красивую и простую оболочку, то устраивайтесь поудобнее. Мы вместе погрузимся в этот увлекательный процесс!

Читать далее

Я создал самый быстрый способ поиска делителей числа

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

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

Читать далее

Дизайн и реализация виртуальной машины CPython

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

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

В этой статье мы обсудим формат инструкций байт‑кода CPython, а также реализацию цикла обработки байт‑кода в интерпретаторе, где он и исполняется.

Читать далее

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

Как устроены серийники для Windows, и как восстановить стёршийся COA

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

Эта история начинается с того, что я попытался переустановить Windows на ноутбуке, доставшемся мне вот с такой наклейкой Certificate of Authenticity (COA): часть символов серийника видны хорошо, остальные – в большей или меньшей степени угадываются; но несколько попыток ввести серийник «на глаз» успехом не увенчались. Пришлось углубляться в вопрос подробнее.

Читать далее

Её величество Сортировка

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

Можно ли сортировать несортируемое? Почему декоратор в питоне называется "total_ordering"? Как отсортировать тексты по смыслу? Надо ли сохраняться, перед использованием "compare function"?

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

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

Читать далее

Изучение различных видов сортировок

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

Цель данной лабораторной работы – посмотреть на алгоритмы с различной асимптотикой, научиться анализировать время работы алгоритмов и включать разные степени оптимизации.

Читать далее

Обзор библиотеки RxPY

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

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

Сегодня поговорим о хорошей библиотеке для управления потоками данных в Python – RxPY — реализации Reactive Extensions для нашего любимого языка. В версии 4.0.4 эта библиотека получила ряд улучшений, и сегодня мы разберем её основной функционал.

Читать далее

Как извлечь квадратный корень из перестановки чисел?

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

В этой статье мы исследуем проблему извлечения квадратного корня из перестановки p, иными словами задачу нахождения всех таких перестановок x, что x \cdot x = p. Будет сформулирован критерий возможности извлечения квадратного корня, алгоритм нахождения корней и формула их подсчёта в общем виде.

Читать далее

Асинхронный SQLAlchemy 2: простой пошаговый гайд по настройке, моделям, связям и миграциям с использованием Alembic

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

Наконец-то пришло время взяться за то, что я давно планировал — подробный гайд по асинхронной версии SQLAlchemy 2.0 в стиле ORM. В этой серии статей я подробно расскажу обо всех аспектах: от создания моделей и установления связей между ними до миграций с Alembic и взаимодействия с данными в базе. Мы будем шаг за шагом разбирать ключевые моменты работы с асинхронной базой данных, что позволит вам глубже понять SQLAlchemy и применить эти знания на практике.

Для начала, давайте разберёмся, что такое SQLAlchemy и почему каждый разработчик, работающий с реляционными базами данных (такими как SQLite, PostgreSQL, MySQL и т. д.), должен знать о ней. После этого — настройка. Мы будем работать с PostgreSQL, но не переживайте: код, который мы напишем, универсален для всех реляционных баз данных. Мы начнем с базовой настройки SQLAlchemy для асинхронного взаимодействия, а затем перейдём к созданию таблиц в современном декларативном стиле.

Читать далее

Я ускорил генерацию blurhash в 3̶6̶ 8̶7̶ 128 раз

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

Старую собаку новым трюкам не обучишь, вот и я взялся за старое. Blurhash — это компактный способ представления размытой превьюшки изображения в виде ASCII-строки. Разработан финской компанией Wolt (аналог Delivery Club). Давно хотелось внедрить такое к себе в API, чтобы любой клиент мог более плавно и изящно делать загрузку контент на своем сайте. Но сколько я на него смотрел — всегда не давала покоя скорость работы, уж больно медленно и «в лоб» он был написан. Но вот время пришло наконец-то разобраться, что же он так медленно работает.

Читать далее