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

Всем привет! Меня зовут Дима. Я являюсь Backend Python Developer'ом. Сегодня расскажу Вам про «волшебный» инструмент __slots__
в Python.
Высокоуровневый язык программирования
Всем привет! Меня зовут Дима. Я являюсь Backend Python Developer'ом. Сегодня расскажу Вам про «волшебный» инструмент __slots__
в Python.
Привет, Хабр!
В этой статье рассмотрим, как на примере магазина котиков — кейса, где каждый заказ превращается в событие — создать событийно‑ориентированную систему обработки заказов с использованием Python, Kafka и Django REST Framework. Создадим REST API для приёма заказов, настроим Kafka‑продюсеры, консьюмеры и реализуем компенсационные транзакции по принципу Saga.
Как научить языковую модель не только «думать», но и «действовать»? В этой статье я расскажу о Re-Act (Reason + Act) — подходе, который объединяет логические рассуждения и вызовы внешних инструментов, превращая обычную языковую модель в гибкого и эффективного помощника при решении самых разных задач.
Некоторые крупные игроки рынка распознавания капчи прекратили поддержку распознавания hcaptcha и как теперь быть простому обывателю? Как сказал классик на обложке - "Давайте думать, #&%, подсказывайте, че вы тут мозги..."
Давайте разберемся, как выйти из сложившейся ситуации!
Мы обучили большую глубокую сверточную нейронную сеть для классификации 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%.
Мы живем в век данных и data-driven подхода. Есть продуктовые компании, где даже минимальные изменения в продукте обязаны пройти A/B-тест перед релизом (который из-за этого может и не состояться). С бумом данных и AI произошел и бум ETL (Extract, Transform, Load) инструментов. Сейчас, в 2024 году, выбор действительно впечатляет, даже если ограничиться только open source-решениями:
Если какое-то действие приходится выполнять слишком часто — значит, пора его автоматизировать.
Разбираю полезные скрипты — от работы с файлами до DevOps. В каждом разделе есть примеры для новичков и более опытных разработчиков. А в конце статьи — несколько простых правил, которые помогут писать удобный и надёжный код.
Привет! Это Леша Жиряков, техлид backend-команды витрины онлайн-кинотеатра KION. В прошлый раз я писал про Msgspec vs DataClasses, а сегодня поговорим о пакетных менеджерах.
В жизни каждого разработчика наступает момент, когда нужно воспользоваться сторонней библиотекой — для работы с данными или отправки запросов в БД. А после выбора библиотеки и версии — использовать менеджер пакетов.
Автоматизация тестирования в мире САПР – это вызов, который невозможно переоценить. Инженеры, архитекторы и проектировщики создают сложнейшие модели, а разработчики ПО ломают голову, чтобы их инструменты работали без сбоев. Но чем мощнее становится программное обеспечение, тем сложнее его тестировать. Проверять САПР вручную – всё равно что искать иголку в стоге сена, который кто-то ежедневно переворачивает. Мы быстро поняли, что такой подход не работает. Поэтому решили изменить систему и построить свою.
Нашей целью было – создать решение, которое избавит от рутины, ускорит тестирование и обеспечит его стабильность, а также будет легко масштабируемым. Одна из главных проблем – повторяющиеся проверки. Тестировать одни и те же функции вручную после каждого обновления – долго, монотонно и неэффективно. Можно что-то упустить, ошибиться и просто устать. Мы пошли дальше: наша система не просто заменяет тестировщиков на скрипты, а полностью автоматизирует весь процесс – от запуска тестов до анализа результатов.
Мы использовали Python, VirtualBox, JSON и PowerShell, чтобы тесты запускались в чистой среде, результаты были понятны всем, а интеграция с разработкой максимально простой. Архитектура гибкая, удобная и кроссплатформенная.
В этой статье мы расскажем, каким образом мы создали систему, как эта система работает и какие задачи она позволяет решить.
Иногда хочется попробовать что-то новое, но в рабочих проектах это не всегда возможно. Поэтому предлагаю всем вместе пощупать несколько относительно новых фреймворков и посмотреть, что это такое и с чем их едят.
Для начала придумаем проект, который не займёт много времени(надеюсь) и над которым будет интересно посидеть пару вечеров.
Привет, Хабр! Сегодня поговорим о том, как расшифровывать звонки с клиентами через CRM-систему Битрикс24 вместо CoPilot. Для автоматизации подключим платформу МТС Exolve. Вы сможете получать все записи с транскрибацией в личном кабинете и сохранять их в карточке сделки с клиентом.
Облигации - это не только надёжный источник дохода, но и актив, который требует чёткого учёта. Без него сложно эффективно управлять портфелем и точно оценивать доходность. Вместе с Екатериной Кутняк мы разобрали, как автоматизировать учёт купонных выплат и погашений с помощью Python-скрипта.
Наше решение использует API Московской биржи для сбора данных и выгружает их в Excel, упрощая работу с облигациями.
В статье - детальный разбор, примеры и пошаговые инструкции. Сам скрипт доступен в open-source и уже готов к использованию. Код - на GitHub!
Изначально, когда я решил написать компилятор за выходные, я решил, что нет смысла заморачиваться, и использовал сторонний лексический / синтаксический анализатор. Мой выбор пал на SLY, довольно известную библиотеку. И действительно, пара часов работы, и мой компилятор прекрасно строил синтаксические деревья из исходного кода на wend. Я пытался было заглянуть под капот, утонул в море технических терминов (LL(1), LR, LALR(1) и тому подобное), и решил, что парсинг своими руками - это не для меня, теория формальных языков меня слабо интересует. Однако же в итоге выяснилось, что базовый синтаксический анализатор - это не так сложно, и я закатал рукава.
В сфере строительного проектирования все больше места занимают технологии информационного моделирования (ТИМ). главным форматом обмена данных в ТИМ является формат IFC. Модели в этом формате требуют как коммерческие заказчики, так и государственная экспертиза.
Работа с собственными форматами программных решений для информационного моделирования (такими как RVT) обычно не вызывает затруднений благодаря широкому функционалу, предоставляемому разработчиками программного обеспечения. Однако формат IFC часто вызывает вопросы из-за нехватки специализированных инструментов и знаний.
Одним из таких вопросов является создание чётко сформулированных требований к моделям IFC и последующая их проверка на соответствие этим требованиям.
В этой статье будет подробно рассмотрен данный вопрос. В качестве инструментов будут использованы формат IDS и библиотека ifcopenshell а также предложено готовое решения для валидации моделей IFC на основе этих инструментов.
Кроме того, статья включает пошаговую инструкцию по созданию спецификаций IDS и автоматизацию процесса проверки IFC-моделей. Для удобства читателей представлены полезные ссылки и готовый исходный код программы.
Всем привет!
На этой неделе мы объявили о начале работы над Open Source проектом Taigram, название которому, к слову, выбрали вы в опросе.
Для удобства отслеживания актуальных изменений по проекту рекомендуем заглядывать в тематическую рубрику у нас на сайте, где мы рассказываем о процессе разработки, объясняем наш выбор технологий, архитектуры и код.
Проектом занимаемся мы вдвоём: Иван и Виктор, а также с логотипом нам помог наш бессменный дизайнер Евгений. (Больше никто не захотел к нам присоединиться 😭)
Начнём мы, как водится, с самого начала...
Всем привет👋🏻
Сегодня я хотел бы рассказать про метод максимального правдоподобия и информацию Фишера и еще несколько смежных тем, которые активно используются в машинном обучении и анализе данных. Расскажу я об этом просто, понятно и без воды, но с практическими примерами, в том числе на Python.
В данной статье я постараюсь изложить информацию таким образом, чтобы даже относительно малоподготовленный читатель смог понять как все устроено и работает на практике, и так, как предпочел бы, чтобы тему объяснили мне, то есть предоставлю инструментарий, объясню как им пользоваться в разных ситуациях и покажу это на практике.
Присаживайтесь поудобнее, заварите кофейку и запаситесь печеньки, нам предстоит интересный путь🍪
Год назад мне пришлось взять на себя курс лекций по теории компиляторов. Вы встречались некомпетентными преподавателями? Это я, здравствуйте! Прежде чем учить других, я всё-таки решил заглянуть в учебник сам, и это вылилось в серию статей "компилятор за выходные" (да, я помню, что за мной должок с описанием лексера/парсера). В итоге я уложил компилятор со мной придуманного си-подобного языка на GNU ассемблер в шестьсот строк кода, причём без внешних зависимостей, включая парсинг.
Всё бы хорошо, вроде работает, но кажется, самое веселье осталось за бортом. Мой компилятор, по факту, это простой pretty print вокруг синтаксического дерева, подумаешь. А как работают оптимизирующие компиляторы? И поставил я себе задачу попробовать уложить игрушечный, но всё же рабочий оптимизирующий компилятор в тысячу строк кода. Как думаете, получится?
Итак, тема сегодняшнего разговора - вынос переменных из памяти в регистры, оно же оптимизационный проход mem2reg, см. кпдв.
Привет! Меня зовут Владимир Морозов, я старший дата-сайентист в отделе автоматической модерации Авито. Раньше мы блокировали объявления, которые нарушают правила публикации, а теперь исправляем — с помощью ML-системы. Так мы сохраняем количество контента, сокращаем стоимость модерации и улучшаем пользовательский опыт. В статье подробно расскажу обо всех этапах внедрения новой ML-механики: от идеи и исследования подходов до оптимизации нейронок и вывода в продакшен.
В этой статье мы создадим функционального Telegram-бота для бронирования столиков в ресторане «Binary Bites» с использованием современных Python-инструментов. Бот будет работать через вебхуки, взаимодействовать с брокером сообщений RabbitMQ и поддерживать фоновое выполнение задач с помощью FastStream и APScheduler.
Проект объединит FastAPI, SQLAlchemy, Alembic, Uvicorn и другие библиотеки, обеспечивая гибкость и масштабируемость. Готовый бот позволит пользователям бронировать столики, просматривать и отменять брони, а администраторам — управлять заказами.
Приветствую, дорогой читатель. Хочу представить вашему вниманию пример, как можно упростить себе жизнь при исследовании кода программ, используя скриптинг в Ghidra.
Если вы уже имели опыт работы с дизассемблером, то заметили, что читать его вывод не так легко, если целью является понять более высокие абстракции, заложенные в нём. Возможно, вы даже пытались декомпилировать его в псевдокод, но работать с переменными типа local_1-999 – то ещё удовольствие. Да, можно щёлкнуть на каждую из них и присвоить имя на основе логики. А что, если у вас 2000 строк и более?
Чтобы не натереть мозоль, давайте разберёмся, как написать скрипт, который сделает большую часть работы за нас.
Все манипуляции были проделаны на версии 11.1.2. Чтобы попасть в список доступных скриптов, откройте меню Window → Script Manager и там же создайте новый скрипт, нажав в правом верхнем углу кнопку Create New Script и выбрав язык Python.
Важное ограничение: Ghidra использует внутреннюю реализацию языка Python версии 2.7.