Обновить
512K+

Python *

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

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

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

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

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

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

Читать далее

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

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

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

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

Читать далее

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

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

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

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

Читать далее

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

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

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

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

Читать далее

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

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

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

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

Читать далее

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

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

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

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

Подробнее

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

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

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

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

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

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

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

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

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

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

Читать далее

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

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

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

Читать далее

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

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

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

Читать далее

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

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

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

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

Читать далее

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

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

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

Читать далее

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

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

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

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

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

Читать далее

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

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

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

Читать далее

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

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

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

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

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

Читать далее

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

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

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

Читать далее

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

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

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

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

Читать далее

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

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

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

Читать далее

Бизнес-сериал: формируем BI-систему в строительстве почти в прямом эфире. Часть II

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

Привет, друзья!

Продолжаем нашу серию статей о создании BI-системы в компании Sminex. Расскажем о наших дальнейших шагах по построению хранилища с якорной моделью.

Жмяк 🐤

Проигрыватель видео с поддержкой транскрипта

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

Как и многих пользователей Хабра меня интересует вопрос, как можно повысить эффективность изучения иностранных языков. Один из наиболее часто рекомендуемых методов — смотреть фильмы на изучаемом языке. И, естественно, я им пользуюсь. Периодически меня посещают мысли о необходимости оптимизации этого подхода. Сначала я нашел себе проигрыватели, которые поддерживают одновременное отображение субтитров на двух языках: субтитры на изучаемом языке отображаются как обычно внизу экрана, а вверху отображаются субтитры на русском. Но этого мне показалось мало. Я пошел искать проигрыватель, который мог бы отображать не только текущие субтитры, но и «транскрипт» — последовательность, включающую как текущий фрагмент субтитров, так и соседние, что бы из них можно было сложить связанный более крупный фрагмент текста. Это может быть удобно если:

— при просмотре было что‑то непонятно, нужно прочитать субтитр, а он уже скрыт и при этом не хочется перематывать назад и ловить пропущенный кусок

— субтитры разбиты на фрагменты таким образом что каждый из них не является законченной фразой и для того что бы понять смысл нужно иметь перед глазами две‑три строки субтитров

Похожая функциональность есть, например, на YouTube и на Корсэре.

Однако после некоторых изысканий я к своему удивлению обнаружил что этой фичи нет ни в одном Windows‑проигрывателе. (UPDATE: этой фичи в стандартных проигрывателях нет в нужном мне виде, т. е. с параллельным отображением транскрипта на двух языках)

У меня как раз чесались руки попробовать что из себя представляет связка Cursor+o1. Так спонтанно родилось решение использовать такой проигрыватель в качестве объекта для экспериментов с этими инструментами. Сразу скажу, что навыков разработки у меня практически нет (если не считать минимальных фрагментарных представлений о разработке для веба).

Читать далее

Автоматизируем постинг мемов в Telegram без расходов на аренду сервера

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

Предпосылки, или «куда делось всё место на телефоне»

Одним прекрасным днем, обнаружив, что на новом свежем купленном айфоне из 256гб осталось примерно половина места после переноса данных со старого, я задался вопросом — а куда делось место?
Потребление по категориям расставило точки над i — 70гб было занято приложением Photos. Приложение Photos обрадовало наличием 15 000 объектов в галерее.

Быстро проскроллив часть галереи, я пришел к трем фактам:
— Большинство объектов — сохраненные откуда‑то мемы;
— У меня нет желания их удалять;
— У меня нет желания платить за облачное хранилище.

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

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

Читать далее