Обновить
512K+

Python *

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

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

Погружение в многозадачность Python: процессы, потоки, GIL и асинхронность

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

Многозадачность кажется простой темой, пока дело не доходит до Python и GIL. В статье разбирается: чем процесс отличается от программы, зачем нужны потоки, что такое ядро процессора и в чём разница между конкурентностью и параллелизмом. Затем – специфика Python: как GIL влияет на потоки, когда стоит использовать процессы, асинхронность или корутины, и чем они отличаются от green threads. Материал сопровождается схемами, рабочими примерами кода и реальными замерами производительности для CPU-bound и I/O-bound задач, а в конце – практические выводы о том, что и когда выбирать.

Читать далее

Квантовая монетка на IBM Quantum: как я переложил выбор свидания на 8 кубитов

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

Когда не можешь выбрать, куда пойти на свидание, можно мучиться между кофейней, баром и прогулкой. А можно поступить взросло: отправить задачу на квантовый компьютер IBM и переложить ответственность на физику. Внутри — Qiskit, 8 кубитов, реальный job_id и самый пафосный способ заменить подбрасывание обычной монетки.

Github репо по ссылке

Читать далее

Как я случайно открыл функцию активации с багом, побеждающую Swish

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

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

Формула у неё довольно простая:

Дальше

Почему мы до сих пор неправильно пишем физические движки и 3D-графику

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

Стоит открыть исходники любого современного игрового движка – неважно, это C++-рендер, сделанный на коленке, или какая-нибудь гигантская экосистема вроде Unity или Unreal Engine – вы первым делом натыкаетесь на одни и те же знакомые сущности. Все вокруг живет в Vector3: координаты, направления движения, точки столкновений. Каждая частица указывает, куда она смотрит, с помощью Quaternion. А если требуется что-то покруче – переносить и одновременно крутить объект, то Matrix4x4. Это уже как стандарт де-факто: кто пробовал крутить объекты руками, тот точно переписывал код с этими структурами. Ещё конечно же отдельно существуют лучи, плоскости, сферы, bounding boxes, а между ними тянутся километры функций вроде dot()cross()normalize()lookAt()inverse()project() и бесконечных преобразований типов.

Привыкаешь к этому быстро. Нам кажется совершенно естественным тасовать эти типы между собой – уж слишком давно так делается по всей индустрии. Но стоит лишь чуток задуматься, и начинает прорезаться легкий когнитивный диссонанс: выходит, вся наша графика построена на наборах несовместимых между собой математических запчастей. Для одного действия нам нужен один тип данных, для второго – другой, а пересчитать простое столкновение луча со сферой или плоскостью без пятого велосипеда никак не получается. Вроде бы всё работает и даже неплохо работает… Но ощущение конструктора из костылей не отпускает.

И самое интересное заключается в том, что так было не обязательно.

Читать далее

Оптический компьютер из телефона и зеркала: считаем нейросеть светом

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

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

Читать далее

Парадокс Open-Source: Единственный способ победить корпорации — раздать свой код бесплатно

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

Вступление: Финал эксперимента и ответ скептикам. Как мы с ИИ написали Open-Source убийцу SaaS-ботов на 280 000 строк кода, и почему я отдаю его даром.

В своих прошлых статьях я рассказывал, как научился использовать ИИ вместо команды сеньоров («Почему для одних ИИ — гений, а для других — идиот») и почему классическая команда сегодня только тормозит разработку из-за бюрократии и потери контекста («Парадокс инвестиций: Почему $1,000,000 и команда сеньоров убили бы мой стартап»).

В комментариях на меня вылили ушат холодного и вполне обоснованного скепсиса. Мне писали: «Где метрики? Кому нужен твой пет-проект?».

И знаете что? Вы абсолютно правы. ©

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

Читать далее

Код в эпоху AI: как перестать бороться за качество и начать контролировать деградацию

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

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

Читать далее

Базовые нейросетевые модели для кредитного скоринга физических лиц

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

Всем привет! Мы команда прикладных исследований и разработки моделей глубокого обучения Альфа-банка. В этой статье мы хотели бы рассказать о наших самых актуальных разработках в области нейросетевых подходов к решению задачи кредитного скоринга физических лиц. Ранее мы уже писали на эту тему, но последняя статья предыдущего цикла датирована 2023 годом. За это время мы смогли значительно продвинуться в исследовании способов решения данной задачи.

Читать далее

Обзор релиза 4.20 NodaLogic

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

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

Читать далее

Почему +0.3% к ROC‑AUC почти всегда шум, и как это проверить

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

ROC‑AUC вырос с 0,871 до 0,874 — модель стала лучше или вам просто повезло с разбиением?

Разберём, почему прирост на третьем знаке часто оказывается шумом, как измерить разброс метрики и сравнивать модели так, чтобы «улучшение» не исчезло на свежих данных.

Читать далее

Prompt injection нельзя запатчить: год «летальной триады» и лента CVE 2026 года

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

В марте 2026-го бэкдор пролежал на PyPI около трёх часов. За это время заражённый пакет скачали почти 47 тысяч раз. Пакет назывался LiteLLM — это шлюз к языковым моделям, на котором держатся CrewAI, DSPy, Microsoft GraphRAG и ещё десятки агентных фреймворков. Тот, кто за эти три часа обновлял зависимости, вместе с обновлением затащил к себе автономного бота-атакующего по имени hackerbot-claw.

Самое неприятное здесь даже не масштаб. А то, что человека в этой цепочке практически не было. Бот сам, без ручного управления после запуска, отравил инфраструктуру, на которой работают другие боты. Сначала, в феврале, он находил неправильно сконфигурированные GitHub Actions в открытых репозиториях. Потом через скомпрометированную сборку Trivy у Aqua Security увёл токен публикации LiteLLM на PyPI. И залил две версии с бэкдором напрямую в реестр. Никакого нуля-дня в традиционном смысле, никакого переполнения буфера. Просто агент, которому дали достаточно прав и достаточно автономии.

Я начинаю с этой истории не ради хайпа, а потому что она хорошо показывает, во что превратился prompt injection к 2026 году. Это уже не лабораторный курьёз и не «а что если модель послушает злую инструкцию из письма». Это рабочий класс атак с собственной лентой CVE, своими supply-chain инцидентами и — что важнее всего — без понятного способа «взять и починить». В этой статье я разберу, почему так вышло, пройдусь по конкретным дырам прошедшего года и покажу, какие защиты реально работают, а какие только выглядят убедительно.

Читать далее

Как я ускорил dependency injection в Python в 130 раз: от рефлексии до компиляции графа

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

«Контейнер для DI — это лишний оверхед, передай зависимость руками и не выдумывай». Я тоже так считал, пока не замерил: наивный контейнер резолвил типичный сервис-граф примерно в 200 раз медленнее ручной сборки.

Рассказываю, как тремя шагами — кэш плана, удаление проверки, которая всё равно не срабатывает, и компиляция графа в одну плоскую функцию — довёл резолв с 52.9 до 0.40 мкс/оп, почти как руками. И как при этом не дал exec-кодогенерации тихо собирать не те объекты в проде.

Приёмы переносимые: профилирование микрооверхеда, выкидывание мёртвой защиты, фаззинг на эквивалентность.

Читать разбор

Property-based testing на практике: как находить баги, о которых вы не подумали

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

Тридцать зелёных юнит‑тестов ещё не означают, что код готов к продакшену. Баги часто прячутся в данных, которые никто не догадался проверить вручную: пустых строках, дубликатах, редком Unicode и неожиданных последовательностях операций.

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

Читать далее

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

ПростоГраф: как я сделал глубокий форк LightRAG под свои (и, возможно, ваши) нужды

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

ПростоГраф — мой глубокий форк LightRAG под реальные нужды: self‑hosted graph‑RAG для отделов с ролями, физическим разграничением доступа к документам, промптами под каждый отдел. Готовый инструмент. Бери — пользуйся. Более подробно что это, зачем это, как это, в статье...

Читать далее

Создаём простого ИИ-агента с нуля. Часть 2

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

Что произойдёт, если дать языковой модели доступ к терминалу, файловой системе и интернету? Она перестанет быть болтливым ассистентом и превратится в агента, который сам читает код, правит файлы и запускает команды — примерно так под капотом и работают Claude Code и Codex. В этой части добавляем нашему агенту семь базовых инструментов и разбираемся, как модель сама решает, какой из них вызвать.

Читать далее

Как мы построили систему аналитики для детской спортивной школы на базе Alfa CRM и Yandex DataLens

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

Всем привет!

Меня зовут Никита, я CEO компании VSL BI. Мы занимаемся внедрением BI-аналитики и автоматизацией отчетности для бизнеса.

Недавно к нам обратилась спортивная школа для детей.

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

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

Читать далее

Конформные предсказания: интервалы с гарантией покрытия без предположений о распределении

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

Модель уверенно выдаёт прогноз, но насколько ему можно доверять на конкретном объекте? Конформные предсказания добавляют к результату интервал или набор классов с формальной гарантией покрытия — почти поверх любой ML‑модели и без предположений о распределении данных.

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

Читать далее

Создаём графику, как будто на дворе 1993 год

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

Catlantean 3D — это хобби-проект, который я неспешно пишу в своё свободное время уже больше года. В следующем году я планирую выпустить его в Steam.

Я хочу создать завершённый, готовый к выпуску шутер от первого лица при помощи методик, характерных для начала 90-х, при этом позволив себе роскошь пользования современным компилятором и слоем абстракций платформы.

Читать далее

Создаём простого ИИ-агента с нуля. Часть 1

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

Часто можно услышать «ИИ-агент», но мало кто объясняет, что это такое, если разбирать на уровне кода. Спойлер: магии меньше, чем кажется — цикл, вызов моделей для истории сообщений. Соберём минимального агента на Python с нуля, чтобы увидеть механику своими глазами.

Читать далее

Слепая дегустация для кода

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

Привет, Хабр. Я Полина, продакт и главный редактор медиа-платформы «Своё Вино» от Россельхозбанка. Помните, не так давно мы говорили с вами о том, что общего у вина и ИТ? На платформе «Своё вино» мы с редакцией обычно говорим о терруарах, стилях и винтажах, но в этот раз попробуем применить ту же оптику к языкам программирования. Попробуем угадать язык по пяти строкам кода и заодно понять, по каким «ароматам» и «танинам» наш мозг так быстро их различает.

Дегустируйте код