Обновить
788.93

Python *

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

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

Дескрипторы Python: механизм, на котором держится половина крутости языка

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

Дескрипторы — одна из тех фич Python, о которых многие слышали, но мало кто использует напрямую. При этом они лежат в основе @property, @classmethod, @staticmethod, слотов и даже обычного доступа к методам.

Разберём, что такое дескрипторы, как их писать и когда они реально полезны.

Понять механизм

Новости

Как я ML-ку делал

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

Введение: Проблема ручного контроля

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

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

Первая версия модели

Читать далее

Вайбкодинг в 2026: вы всё проспали (или почему «в прод нельзя» — это уже стыдно)

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

Пока на Хабре пишут очередной лонгрид о том, почему нейронки «никогда не заменят настоящего инженера», EPAM и intive молча переводят 50 000 своих сотрудников на AI-рельсы.

Спойлер: поезд уже ушел. Вы либо в нём, либо стоите на перроне и кричите, что «код грязный».

Ну, грязный. А ваш прям чистый?)

Читать далее

Чистим аудиокниги от шума нейросетями

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

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

Читать далее

Как я сделал свой АИС-Налог и для чего он нужен

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

Эта статья — описывает проект, по созданию универсальной системы для бизнеса «АIS NP», которая решает проблемы сопровождения налоговых проверок и налогового контроля в целом.

AIS NP это единое рабочее пространство, где проверки, мероприятия, сроки и документы не разлетаются по чатам, почте и «тридцати папкам на диске», а живут в одной логике. Чтобы ты в любой момент мог открыть нужную организацию и быстро понять: что сейчас происходит, какие документы уже есть, что ещё нужно собрать, какие сроки горят, где ответ готовится, а где уже отправлен.

У AIS NP очень конкретная задача: навести порядок в налоговом сопровождении, когда ты работаешь с большим объёмом разрозненной информации и вынужден держать слишком много в голове. По сути это программа, которая помогает:

Читать далее

Книга: «Анализ данных с помощью GenAI и Python»

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

Привет, Хаброжители! Эта книга — практическое руководство для тех, кто превращает данные в решения. Шаг за шагом вы разберетесь, как современные методы искусственного интеллекта помогают не просто интерпретировать массивы информации, но и находить скрытые закономерности, позволяют прогнозировать будущее и создавать конкурентные преимущества для бизнеса. Вы получите системное понимание инструментов анализа, узнаете о лучших практиках применения машинного обучения и научитесь интегрировать ChatGPT в ежедневные рабочие процессы.

Читать далее

Улучшаем Backend-разработку в Cline на примерах

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

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

Какие задачи идеально подходят для оптимизации с помощью ИИ, а какие не стоит отдавать агенту.

Читать далее

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

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

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

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

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

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

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

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

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

Читать далее

Как один индекс на created_at сократил время ответа API с 12 секунд до 40 мс

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

«Страница заказов грузится вечность», — такой тикет прилетел в понедельник утром. На проде 800 тысяч записей, а типичный запрос с фильтрацией и сортировкой заставлял менеджеров ждать по 12 секунд. В этой статье разберем, почему стандартный индекс по одному полю не сработал, как EXPLAIN ANALYZE помог найти «бутылочное горлышко» и почему порядок полей в составном индексе имеет решающее значение

Читать далее

Работа с несбалансированными данными: SMOTE мёртв, что работает

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

Бывали у вас датасеты, где класс «1» встречается в 100 раз реже класса «0»? У меня — постоянно. Модель радуется высокой точности, а на деле совершенно промахивается по редкому классу. Давайте обсудим, почему старый добрый SMOTE уже не торт, и что помогает в таких случаях.

Разобраться глубже

Антикейс — в нестандартном понимании! Клоакинг зло — а со злом надо бороться

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

Вокруг только и разговор про успешные кейсы обхода каких либо ограничений. Обошли тут, обошли там. А что насчет - антикейса? Нет, не кейс с негативным окрасом, как не получилось, а кейс с позитивным уклоном, о том, как обернуть оружие серой зоны, против них самих?

Читать далее

Мемоизация в Python: как заставить код помнить

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

Проблема многих программ не в медленном процессоре, а в том, что они «забывчивы». Каждый раз, когда вы вызываете функцию с одними и теми же данными, она честно считает всё с нуля. Если внутри сложные расчеты или рекурсия — всё начинает тормозить.

Решение — Мемоизация.

Это техника, при которой функция запоминает результат своих вычислений. Если вы вызываете её снова с теми же аргументами, она не считает, а просто достает готовый ответ из памяти (словаря).

Читать далее

Оптимизация маршрутов доставки заказов маркетплейса или как мы победили в E-CUP 2025

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

Хабр, привет! Недавно завершилось ML-соревнование E-CUP 2025. Наша команда из X5 Tech заняла первое место в треке «Логистика: автопланирование курьеров», где было нужно оптимизировать время, затрачиваемое курьерами на доставку 20 000 заказов. В статье расскажем про подходы, которые использовали для решения этой задачи. Посмотрим, во сколько раз можно сжать JSON с матрицей расстояний. Какой код мы использовали для быстрого решения задачи TSP с помощью LKH-3. Обсудим, на что обращать внимание при кластеризации заказов.

Постановка задачи

Требовалось распределить порядка 20 000 заказов между 280 курьерами и построить для каждого из них маршрут так, чтобы минимизировать их суммарное время работы. Оно складывалось из времени перемещения курьеров между заказами и времени выполнения самих заказов (service time). За каждый невыполненный заказ добавлялся штраф 3000 секунд...

Читать далее

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

Ускорение вычислений в алгоритме DRS-виртуализации через векторизацию

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

Переписать решение с Python на Go и получить ускорение в 35 раз — звучит приятно. Но можно ведь пойти дальше, вспомнить о возможностях современных процессоров и увеличить отрыв Go до 200 раз! Статья написана по мотивам доклада для Golang Conf.

Привет, Хабр! Я — Игорь Вагулин, работаю тимлидом департамента IaaS в Cloud.ru, крупнейшем в России облачном провайдере IaaS- и PaaS-сервисов. Прогресс в производительности процессоров и видеокарт привел к тому, что мы можем использовать полный перебор там, где мы раньше обходились приближениями. Сегодня на примере алгоритма DRS-платформы Cloud.ru Evolution рассмотрим, как он может быть решен на разных версиях операций с плавающей точкой процессоров x86 и Arm, в чем сложности задействования SIMD-операций, почему это сложнее на Go и как это обойти.

Читать далее

Django ORM: как QuerySet ленится, цепляется и генерирует SQL

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

Django ORM прячет SQL за красивым Python-интерфейсом. Пишешь User.objects.filter(active=True).order_by('name')[:10] — получаешь список пользователей. Круто. Но когда запросы тормозят или N+1 пожирает базу, приходится понимать, что вообще происходит.

Разберём внутренности QuerySet: почему он ленивый, как работает chaining, когда запрос реально выполняется, и чем select_related отличается от prefetch_related на уровне SQL.

Читать далее

Mini Tower Kit для Raspberry Pi 5: Переделываем проект под Raspberry Pi 4 с Ubuntu Server

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

Переработка проекта Mini Tower Kit для Rasberry Pi 5 под Rasberry Pi 4 с приятным тюнингом или когда Pi 5 не завезли, а руки всё равно чешутся

Читать далее

Перечень всех «белых» IP-адресов Интернета

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

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

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

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

Ну и как в жизни бывает, автоматизация работы привела к гораздо большим трудозатратам, нежели явная работа руками. Проблема оказалась там, где не ждали — готового перечня внешних IP-подсетей найти не удалось. А раз нет, значит придется делать самому.

Читать далее

Линейная регрессия, встряска рейтинга и первое место. Часть 1: Ёлочка, живи

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

Сказ о том, как после долгого перерыва я "взял в руки шашки" (поучаствовал в ML-соревновании) и дотащил задачу на "таблички" до первого места на финальном "приватном" лидерборде с помощью простейшей подготовки фич и классической линейной регрессии с регуляризацией, внезапно обогнав при этом всех модных катбустеров, банально переобучившихся на "паблике".

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

Узнать, что влияет на "выживаемость" ёлки

Poisk: однофайловый поисковик для изолированной корпоративной сети

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

В изолированной корпоративной сети с полумиллионом файлов стандартный поиск превращается в рутину. Облачные сервисы недоступны, серверные решения избыточны, а встроенные инструменты ОС не справляются с объёмами и разнородностью клиентов (Windows и Linux).

Мы столкнулись с этой задачей и вместо развёртывания сложной инфраструктуры пошли другим путём: упаковали весь поисковик в один HTML-файл. Фоновая индексация на Python раз в сутки — и сотрудники получают мгновенный поиск по путям прямо в браузере.

В статье разбираем архитектуру решения: как относительные пути решают проблему разных точек монтирования, почему плоский JS-массив оказался эффективнее сложных структур, и как уместить индекс 560+ тысяч файлов в 120 МБ без потери скорости.

Не полнотекстовый поиск, а инструмент для навигации по глубокой файловой структуре, где важная информация закодирована в путях. Работает там, где нельзя поставить Elasticsearch, но нужно быстро находить документы.

Читать далее

Генетический алгоритм как инструмент инженера: практический кейс раскроя полотен

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

Генетический алгоритм как инструмент инженера: практический кейс раскроя полотен

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

Читать далее
1
23 ...

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