Обновить
1024K+

Python *

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

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

Ускоряем игру «Жизнь» с помощью CUDA / Triton

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

Давайте рассмотрим реализацию конвеевской игры «Жизнь» при помощи графической карты. Я хочу поэкспериментировать с разными библиотеками и методиками, чтобы понять, как обеспечить наилучшую производительность. Начнём мы с простого и постепенно будем повышать сложность.

Игра «Жизнь» — это простой клеточный автомат, поэтому она должна хорошо поддаваться GPU-ускорению. Правила просты: каждая ячейка в двухмерной сетке или жива, или мертва. На каждом шаге мы подсчитываем живых соседей ячейки (включая диагонали). Если ячейка жива, она остаётся живой, если живы два или три её соседа. В противном случае она умирает. Если клетка мертва, она оживает, если живы ровно три соседа. Из этих простых правил возникает потрясающий объём сложности, о котором написаны подробные статьи.

Для простоты я буду рассматривать только сети N×N и пропущу вычисления на краях. Всё будет работать на Nvidia A40, а бенчмарк производительности я буду проводить при N=216. Пока мы будем хранить каждую ячейку в виде 1 байта, поэтому весь массив займёт 4 ГБ.

Весь код выложен в репозитории GitHub.

Читать далее

Кастомная аналитика для Wildberries и Ozon — WBOZYA-dash

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

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

В течение последнего года я занимался разработкой аналитической панели для продавцов на маркетплейсах Wildberries и Ozon, а в перспективе планируется интеграция с Яндекс.Маркет. Я хотел бы поделиться своим опытом и представить систему WBOZYA-dash, которая предназначена для анализа продаж через эти маркетплейсы. До конца весны 2026 выпущу, думаю, с десяток статей на эту тему, а пока сделаю общий обзор своей системы.

Читать далее

Как я уместил «Войну и мир» в 10 ГБ видеопамяти, или почему нейросеть убивает героев и выдумывает Пьера Бездаровского

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

Что делать, если по литературе задали два тома "Войны и мира", а времени (или желания) читать нет? Конечно, запрячь нейросеть! Но как быть, если в твоем распоряжении всего 10 ГБ видеопамяти, а модель упорно пытается "убить" выживших героев и переименовывает Пьера Безухова в Бездаровского?

В этой статье я поделюсь опытом запуска Saiga Llama 3 8B на домашнем железе, расскажу, как бороться с галлюцинациями через промпт-инжиниринг, и почему 7500 символов текста Толстого иногда весят столько же, сколько одна строчка жесткого правила в системном промпте. Внутри - анализ вероятностей токенов, лог работы модели и готовый код для суммаризации длинных текстов.

Узнать, как я спас Николая Ростова от LLM

YOLOv11 и RF-DETR для object detection в видео. Добавление временных характеристик с помощью суперкадра

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

Если ввести в поиск запрос object detection, почти сразу среди результатов окажутся модели семейства YOLO в разных версиях. Это неудивительно: они популярны, быстры, достаточно просты в использовании и хорошо подходят для прикладных задач. Модели вроде YOLO и RF-DETR обычно работают по одной и той же схеме: на вход подается изображение, на выходе мы получаем предсказания объектов.

Такой подход удобен и хорошо работает для картинок. Но видео — это не просто набор независимых кадров.

Читать далее

Рейтинг языков программирования на GitHub: анализ 2024–2025 в JupyterLab и Anaconda

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

Мы не стали спорить с TIOBE и RedMonk и собрали свой рейтинг языков программирования на основе GitHub. Данные за 2024–2025 показывают неожиданные вещи: JavaScript впереди, TypeScript резко растёт, а Rust и Go выигрывают по качеству проектов. Разбираем, что стоит за цифрами и где могут быть искажения.

Читать далее

0.3 секунды на фургонный флот. 3D-упаковщик грузов, который понимает LIFO и не давит коробки

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

Представьте логиста, у которого перед глазами 400 разных коробок и 8 машин. У него есть Excel, калькулятор и два часа времени. Я решил, что это несправедливо, и написал веб-сервис на Django, который делает это мгновенно. Внутри: 3D MaxRects, полная свобода вращения (6 осей) и учет суровой реальности — от очередности выгрузки до предельной нагрузки на нижние ряды.

Для тех, кто предпочитает один раз увидеть: вот 3-минутное демо работы интерфейса и визуализации на Three.js

https://youtu.be/JP80ESX0YiQ

Читать далее

Место Питона, Си и Паскаля в образовательном процессе

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

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

Подробнее

Работа с Telegram Bot API: https, commands, send или как создать бота

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

Всем привет!

Если вы хоть раз пытались нормально вкатиться в разработку Telegram-ботов, то почти наверняка сталкивались с одной проблемой: информации в интернете много, но она какая-то рваная. То есть где-то вам сразу дают библиотеку, заставляя писать код и даже не объяснив, как бот вообще работает.

В особых сценариях (например разработка userbot) смешивают воедино Telegram Bot API, Telegram API (да, это разные вещи!), api_id, api_hash, token, chat_id, webhook и еще десяток терминов.

А где-то вообще показывают “hello world”, который фактически-то работает, но только ты ступишь на шаг вперед, так всё начинает разваливаться, ведь понимания практически 0.

В этой статье моя цель - разобрать всё это нормально и по-человечески, объяснив как использовать Telegram Bot API для создания ботов.

Читать далее

Более 25 лет в Python не решаются исправить это

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

Сегодня (2026.04.01) прошло ровно 9731 день с тех пор, как сообщество Python узнало об изъяне в работе со строками.

Это было так давно, что у Python еще не было мажорных версий (для холиваров приходилось использовать PHP).

Так давно, что еще не существовало ни pythonchallenge.com, ни его прародителя notpron.com - легендарных убийц времени программистов.

Это было в прошлом тысячелетии. А именно - 1999 году, когда, согласно летописям, реализовали тип string. В том же году ведущий разработчик Jim Fulton опубликовал исследование, где без купюр указал на проблему.

Как ни странно, она не решена до сих пор.

Читать далее

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

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

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

Читать далее

Хватит винить кривые руки. Твой язык программирования энергетически тебе не подходит

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

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

На днях HR-отдел отклонил мое резюме на позицию джуна. Вместо фидбека я получил ответ «В нашей команде слишком много козерогов, и нашему тарологу не понравился ваш Сатурн». Сначала я хотел возмутиться, но потом подумал. Может звезды не врут? Возможно наш звездный язык программирования определяется в зависимости от расположения планет во время первого запуска IDE.

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

И результат меня поразил...

Читать далее

Симулятор JWST на Python: как критика Хабра заставила выучить астрофизику и почему мы сделаем открытие раньше NASA

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

Некотороевремя назад я пришел на Хабр с простеньким ML‑скриптом, который искал обитаемые экзопланеты. Я ждал похвалы, но вместо этого получил в комментариях ведро ледяной воды: «Где валидация? Что будет при сдвиге распределения? Машинное обучение без физических лимитов — это декорация!».

Вызов был принят. Я выбросил наивный подход, запер XGBoost в клетку суровых законов термодинамики и переписал всё с нуля.

Спустя недели разработки и чтения научных статей я представляю ExoLogica AI 2.0. Теперь это не табличный калькулятор, а 14-ступенчатый астрофизический конвейер. Он считает долю железного ядра, оценивает гидродинамическое сдувание атмосферы и — самое главное — генерирует синтетические спектры для телескопа Джеймса Уэбба (JWST) на лету.

Под катом: почему знаменитый индекс подобия Земле (ESI) безнадежно устарел, за что наш скрипт выбросил в мусорку кандидатов от Корнеллского университета, и почему гаражный опенсорс с Хабра имеет все шансы сделать великое открытие раньше, чем бюрократы из NASA.

Читать далее

Интервью Гвидо ван Россума с core-разработчиком Python Бреттом Кэнноном

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

Это интервью Гвидо ван Россума с core‑разработчиком Python Бреттом Кэнноном, в котором они обсудили начало и развитие карьеры Бретта как программиста и активного участника сообщества разработчиков Python, развитие самого языка, сложность управления большим сообществом, кризис PEP 572 >:=, выход Гвидо на пенсию в 2018 г. и к чему это привело.

Читать далее

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

Все об устройстве WSPR с примерами на Python (часть 1)

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

WSPR — цифровой протокол, разработанный Джо Тейлором (K1JT) в 2008-2009 годах, с целью исследования распространения радиосигналов от коротковолновых передатчиков малой и сверхмалой мощности. В этой статье будут рассмотрены устройство и принципы работы протокола.

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

Читать далее

Фабрики в тестировании (Python, Django, pytest, factory_boy)

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

Здесь мы рассматриваем фабрики в тестировании. На очень элементарных примерах, с использованием языка python и инструментов Django, pytest, factory_boy.

Читать далее

Парсинг тарифов интернета и ТВ. Selenium + BeautifulSoup: трудности динамического контента и защиты от ботов

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

На этапе тестирования я отобрал 6 городов (Москва, Санкт‑Петербург, Новосибирск, Екатеринбург, Казань, Красноярск) и двух крупнейших провайдеров России — Ростелеком и Дом.ру. В планах масштабирование на большее количество городов и операторов.

Для парсинга тарифов у провайдеров применял связку Python + Selenium + BeautifulSoup, через хранимую процедуру складывал полученные данные в базу PostgreSQL.

Читать далее

ИИ управляет КОМПАС-3D — и это уже можно трогать руками

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

Два месяца назад я выложил первую версию MCP для КОМПАС-3D. Реакция была предсказуемая: “круто для демо, но в реальной работе не взлетит”. Тогда они были правы.

Сейчас агент получает задачу, строит 3D-деталь, добавляет отверстия, проверяет дерево построения, сохраняет документ и возвращает скриншот. Сам.

Более того, теперь ИИ забирает на себя не только объемную геометрию, но и плоскую документальную рутину. Ему можно делегировать создание чертежа, автоматическое заполнение штампа и экспорт результата в DXF одним запросом.

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

Например:

Можно взять уже открытую деталь, спросить у неё текущее состояние через get_3d_context и узнать, что базовое тело уже создано, а в дереве висит 11 элементов. Агенту не нужно угадывать или строить всё с нуля - он понимает, на каком этапе находится модель, и сразу переходит к следующим шагам.

Можно не высчитывать координаты плоскостей вручную. Инструмент resolve_selection_3d по описанию сам находит нужную грань (например, «верхняя плоская») и возвращает её системный идентификатор. Агент просто берёт эту ссылку, ставит на неё новый эскиз и делает вырез точно там, где нужно.

Можно убедиться, что команды не просто улетели в пустоту, а реально сработали. Тул list_feature_tree_3d отдаёт агенту список шагов: базовый эскиз, выдавливание, вырез, отверстие, фаска. То есть ИИ доводит деталь до конкретной истории построения, которую вы потом можете открыть руками и проверить.

Читать далее

Deploy Tarot — а что если спросить карты, можно ли сегодня деплоить?

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

Привет, я давно не заходил. Лет десять (или даже пятнадцать...) прошло с того момента, как я написал статьи о парсинге бинарных документов, типа doc, pdf или rtf, ради получения текста (кстати, я недавно обновил репозитории, немного пересобрал старые проекты, можете глянуть). Вы бы знали сколько воды с тех пор утекло, но это всё ностальгия и былое - давайте к серьёзному.

С пару недель назад я возвращался домой на метро и в голову пришла идея, которую не возможно было отбросить. А что если есть неуверенные люди (а они есть)? А что если есть неуверенные люди, которым нужен толчок свыше? А что если эти неуверенные люди среди нас, в разработке - на бэкэнде, в devops или среди продактов? А что если им всем помочь?..

И родился проект Deploy Tarot. Да, это расклады таро на успех деплоя. Что если я, техлид, сегодня задеплою новую версию API? Нет проблем, карты расскажут. А что если наш бизнес аналитик захочет обновить документацию? Арканы помогут понять. А вдруг наш CTO возьмётся за старое, вспомнит про порох в этих самых и... сделает масштабный рефактор (ИИ, ну вы знаете)? Колода определённо знает. А если наша офис-леди?.. Ну, вы поняли.

Читать далее

LoRA не помогла: как мы дообучали Mistral 7B на русском и что в итоге сработало

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

Каждый раз после созвона происходит одно и то же самое: кто-то открывает чат и пишет «итак, что мы решили?». Дальше — пятнадцать минут на то, чтобы восстановить то, что только что обсуждали час.

Я ML-инженер, и эта боль мне была знакома лично. Когда появилась идея автоматизировать протоколирование встреч, казалось, что задача решаемая: берешь Whisper для распознавания речи, хорошую LLM для суммаризации — и готово.

Реальность оказалась другой. Готовых русскоязычных решений нужного качества не было. Mistral 7B — одна из лучших открытых моделей на тот момент — на русском ошибался в склонениях, плохо следовал русскоязычным промптам и терял смысл в длинных диалогах. Стало понятно: придётся дообучать самим.

Читать далее

ИИ Workflow для определения и актуализации критериев поиска каскадов ликвидаций на рынке

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

Самоадаптирующаяся ИИ-система, актуализирующая критерии каскада ликвидаций

В 2026 году каскады ликвидаций меняют механику быстрее, чем любой статичный бот. Разбираю полный ИИ-воркфлоу на Claude: от фонового агента до фундаментального анализа рынка на открытых источниках

Читать далее