Все потоки
Поиск
Написать публикацию
Обновить
428.64

Python *

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

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

Атрибут или Dunder-метод slots в Python. Что нужно о нём знать?

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

Всем привет! Меня зовут Дима. Я являюсь Backend Python Developer'ом. Сегодня расскажу Вам про «волшебный» инструмент __slots__ в Python.

Читать далее

Событийный заказ: Python и Kafka

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

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

В этой статье рассмотрим, как на примере магазина котиков — кейса, где каждый заказ превращается в событие — создать событийно‑ориентированную систему обработки заказов с использованием Python, Kafka и Django REST Framework. Создадим REST API для приёма заказов, настроим Kafka‑продюсеры, консьюмеры и реализуем компенсационные транзакции по принципу Saga.

Читать далее

Устройство Re-Act ИИ агента

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

Как научить языковую модель не только «думать», но и «действовать»? В этой статье я расскажу о Re-Act (Reason + Act) — подходе, который объединяет логические рассуждения и вызовы внешних инструментов, превращая обычную языковую модель в гибкого и эффективного помощника при решении самых разных задач.

Читать далее

Решение hcaptcha в современных реалиях или Мавр ушел и его место занял новый? Разбираемся в деталях

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

Некоторые крупные игроки рынка распознавания капчи прекратили поддержку распознавания hcaptcha и как теперь быть простому обывателю? Как сказал классик на обложке - "Давайте думать, #&%, подсказывайте, че вы тут мозги..."

Давайте разберемся, как выйти из сложившейся ситуации!

Читать далее

Классификация с CNN. Перевод статьи 2012: «ImageNet Classification with Deep Convolutional Neural Networks»

Уровень сложностиСложный
Время на прочтение20 мин
Количество просмотров1.4K

Мы обучили большую глубокую сверточную нейронную сеть для классификации 1.2 миллиона изображений высокого разрешения из конкурса ImageNet LSVRC-2010, распределённых по 1000 различных классов. На тестовых данных мы достигли показателей ошибок top-1 и top-5, равных 37.5% и 17.0%, что значительно лучше предыдущих рекордов. Нейронная сеть, содержащая 60 миллионов параметров и 650 000 нейронов, состоит из пяти сверточных слоёв, некоторые из которых сопровождаются слоями подвыборки (max-pooling), а также трёх полносвязных слоёв с итоговым softmax на 1000 классов. Для ускорения обучения мы использовали нейроны, не насыщаемые на больших значениях, и очень эффективную GPU-реализацию операции свертки. Чтобы уменьшить переобучение в полносвязных слоях, мы применили недавно разработанный метод регуляризации под названием «dropout», который оказался очень эффективным. Мы также представили вариант этой модели на конкурсе ILSVRC-2012 и добились победы с ошибкой top-5 на тестовых данных 15.3%, в то время как второй лучший результат составил 26.2%.

Читать далее

Dagster: новый стандарт для ETL в 2025?

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

Мы живем в век данных и data-driven подхода. Есть продуктовые компании, где даже минимальные изменения в продукте обязаны пройти A/B-тест перед релизом (который из-за этого может и не состояться). С бумом данных и AI произошел и бум ETL (Extract, Transform, Load) инструментов. Сейчас, в 2024 году, выбор действительно впечатляет, даже если ограничиться только open source-решениями:

Читать далее

Простые лайфхаки для автоматизации работы с помощью Python

Уровень сложностиПростой
Время на прочтение24 мин
Количество просмотров34K

Если какое-то действие приходится выполнять слишком часто — значит, пора его автоматизировать.

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

Читать далее

Poetry vs UV: удобство или скорость?

Время на прочтение8 мин
Количество просмотров7.3K

Привет! Это Леша Жиряков, техлид backend-команды витрины онлайн-кинотеатра KION. В прошлый раз я писал про Msgspec vs DataClasses, а сегодня поговорим о пакетных менеджерах. 

В жизни каждого разработчика наступает момент, когда нужно воспользоваться сторонней библиотекой — для работы с данными или отправки запросов в БД. А после выбора библиотеки и версии — использовать менеджер пакетов.

Читать далее

Инновации в тестировании САПР: путь к созданию автоматизированного решения для тестирования

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

Автоматизация тестирования в мире САПР – это вызов, который невозможно переоценить. Инженеры, архитекторы и проектировщики создают сложнейшие модели, а разработчики ПО ломают голову, чтобы их инструменты работали без сбоев. Но чем мощнее становится программное обеспечение, тем сложнее его тестировать. Проверять САПР вручную – всё равно что искать иголку в стоге сена, который кто-то ежедневно переворачивает. Мы быстро поняли, что такой подход не работает. Поэтому решили изменить систему и построить свою.

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

Мы использовали Python, VirtualBox, JSON и PowerShell, чтобы тесты запускались в чистой среде, результаты были понятны всем, а интеграция с разработкой максимально простой. Архитектура гибкая, удобная и кроссплатформенная.

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

Читать далее

LitestarCatsCV. Тренируемся на кошках. Пробуем litestar и другое новьё. Часть 1

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

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

Для начала придумаем проект, который не займёт много времени(надеюсь) и над которым будет интересно посидеть пару вечеров.

Читать далее

Как создать систему расшифровки после звонка для Битрикс24

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

Привет, Хабр! Сегодня поговорим о том, как расшифровывать звонки с клиентами через CRM-систему Битрикс24 вместо CoPilot. Для автоматизации подключим платформу МТС Exolve. Вы сможете получать все записи с транскрибацией в личном кабинете и сохранять их в карточке сделки с клиентом.

Читать далее

Автоматизируем учёт облигаций: как избавиться от рутины

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

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

Наше решение использует API Московской биржи для сбора данных и выгружает их в Excel, упрощая работу с облигациями.

В статье - детальный разбор, примеры и пошаговые инструкции. Сам скрипт доступен в open-source и уже готов к использованию. Код - на GitHub!

Собираем, анализируем, удивляемся 📊

Компилятор за выходные: синтаксический анализатор Уорли

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

Изначально, когда я решил написать компилятор за выходные, я решил, что нет смысла заморачиваться, и использовал сторонний лексический / синтаксический анализатор. Мой выбор пал на SLY, довольно известную библиотеку. И действительно, пара часов работы, и мой компилятор прекрасно строил синтаксические деревья из исходного кода на wend. Я пытался было заглянуть под капот, утонул в море технических терминов (LL(1), LR, LALR(1) и тому подобное), и решил, что парсинг своими руками - это не для меня, теория формальных языков меня слабо интересует. Однако же в итоге выяснилось, что базовый синтаксический анализатор - это не так сложно, и я закатал рукава.

Читать далее

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

Проверка IFC моделей по требованиям IDS

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

В сфере строительного проектирования все больше места занимают технологии информационного моделирования (ТИМ). главным форматом обмена данных в ТИМ является формат IFC. Модели в этом формате требуют как коммерческие заказчики, так и государственная экспертиза.

Работа с собственными форматами программных решений для информационного моделирования (такими как RVT) обычно не вызывает затруднений благодаря широкому функционалу, предоставляемому разработчиками программного обеспечения. Однако формат IFC часто вызывает вопросы из-за нехватки специализированных инструментов и знаний.

Одним из таких вопросов является создание чётко сформулированных требований к моделям IFC и последующая их проверка на соответствие этим требованиям.

В этой статье будет подробно рассмотрен данный вопрос. В качестве инструментов будут использованы формат IDS и библиотека ifcopenshell а также предложено готовое решения для валидации моделей IFC на основе этих инструментов.

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

Читать далее

Taigram: Начало работы

Время на прочтение8 мин
Количество просмотров12K

Всем привет!

На этой неделе мы объявили о начале работы над Open Source проектом Taigram, название которому, к слову, выбрали вы в опросе.

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

Проектом занимаемся мы вдвоём: Иван и Виктор, а также с логотипом нам помог наш бессменный дизайнер Евгений. (Больше никто не захотел к нам присоединиться 😭)

Начнём мы, как водится, с самого начала...

Читать далее

Простыми словами о методе максимального правдоподобия и информации Фишера

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

Всем привет👋🏻

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

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

Присаживайтесь поудобнее, заварите кофейку и запаситесь печеньки, нам предстоит интересный путь🍪

Go little rockstar⭐

Смогу ли я уложить оптимизирующий компилятор в тысячу строк питона? Прогон первый: mem2reg

Уровень сложностиСредний
Время на прочтение22 мин
Количество просмотров4.5K

Год назад мне пришлось взять на себя курс лекций по теории компиляторов. Вы встречались некомпетентными преподавателями? Это я, здравствуйте! Прежде чем учить других, я всё-таки решил заглянуть в учебник сам, и это вылилось в серию статей "компилятор за выходные" (да, я помню, что за мной должок с описанием лексера/парсера). В итоге я уложил компилятор со мной придуманного си-подобного языка на GNU ассемблер в шестьсот строк кода, причём без внешних зависимостей, включая парсинг.

Всё бы хорошо, вроде работает, но кажется, самое веселье осталось за бортом. Мой компилятор, по факту, это простой pretty print вокруг синтаксического дерева, подумаешь. А как работают оптимизирующие компиляторы? И поставил я себе задачу попробовать уложить игрушечный, но всё же рабочий оптимизирующий компилятор в тысячу строк кода. Как думаете, получится?

Итак, тема сегодняшнего разговора - вынос переменных из памяти в регистры, оно же оптимизационный проход mem2reg, см. кпдв.

Читать далее

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

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

Привет! Меня зовут Владимир Морозов, я старший дата-сайентист в отделе автоматической модерации Авито. Раньше мы блокировали объявления, которые нарушают правила публикации, а теперь исправляем — с помощью ML-системы. Так мы сохраняем количество контента, сокращаем стоимость модерации и улучшаем пользовательский опыт. В статье подробно расскажу обо всех этапах внедрения новой ML-механики: от идеи и исследования подходов до оптимизации нейронок и вывода в продакшен.

Читать далее

Телеграм-бот для бронирования столов на вебхуках: FastAPI, Aiogram Dialog, FastStream и RabbitMQ в единой экосистеме

Время на прочтение64 мин
Количество просмотров19K

В этой статье мы создадим функционального Telegram-бота для бронирования столиков в ресторане «Binary Bites» с использованием современных Python-инструментов. Бот будет работать через вебхуки, взаимодействовать с брокером сообщений RabbitMQ и поддерживать фоновое выполнение задач с помощью FastStream и APScheduler.

Проект объединит FastAPI, SQLAlchemy, Alembic, Uvicorn и другие библиотеки, обеспечивая гибкость и масштабируемость. Готовый бот позволит пользователям бронировать столики, просматривать и отменять брони, а администраторам — управлять заказами.

Читать далее

Как создать скрипт-beautifier в Ghidra на Python?

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

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

Если вы уже имели опыт работы с дизассемблером, то заметили, что читать его вывод не так легко, если целью является понять более высокие абстракции, заложенные в нём. Возможно, вы даже пытались декомпилировать его в псевдокод, но работать с переменными типа local_1-999 – то ещё удовольствие. Да, можно щёлкнуть на каждую из них и присвоить имя на основе логики. А что, если у вас 2000 строк и более?

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

Все манипуляции были проделаны на версии 11.1.2. Чтобы попасть в список доступных скриптов, откройте меню Window → Script Manager и там же создайте новый скрипт, нажав в правом верхнем углу кнопку Create New Script и выбрав язык Python.

Важное ограничение: Ghidra использует внутреннюю реализацию языка Python версии 2.7.

Читать далее

Вклад авторов