Обновить
512K+

Python *

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

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

Локальный ассистент для зумов, часть 8: модель, ради которой я поменял диаризацию за один вечер

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

В третьей части я написал, что не вижу чужой модели, ради которой стоит менять связку. sherpa-onnx на диаризации, свой второй проход поверх, канал собеседников двадцатиминутного звонка размечается минут семь. Жить можно.

23 сентября NVIDIA выложила Nemotron 3 Diarization. Вечером 28-го я включил её в разбор своих созвонов. Тот же канал — три секунды.

Читать далее

Новости

Pillow для обработки изображений: все фильтры от А до Я

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

Это вторая часть разбора библиотеки Python Pillow. В прошлой статье был сделан упор на общее направление и примеры, теперь же давайте разберём конкретный инструментарий: отвечу на вопросы, что вообще можно использовать и каким образом. Можно назвать это так: прошлая статья – введение в ремонт, эта – хранилище инструментов. Стоит учесть, что всю более подробную информацию можно найти в сети, а с целями (зачем, для чего) придётся определяться самим. Впрочем, это и так очевидно.

Вся суть, благодаря которой нога моя ступила на территорию Pillow, можно описать следующим образом: желание автоматизации однотипной обработки нескольких файлов подряд. Через Photoshop можно обработать одно фото, но если у вас есть определённый шаблон, придётся долго возиться с каждым отдельным изображением. Нужен был инструмент, который был бы достаточно гибким, чтобы при желании и менять параметры, и создавать из последовательностей – функции. Таким инструментом оказалась библиотека Python, форк PIL, – Python Pillow.

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

Разобьём инструментарий на типы: равно как и отвёртки лежат отдельно от болтов... В Pillow есть три типа фильтров: готовые пресеты (те, что не требуют указания дополнительных значений), регулируемые фильтры (те, что требуют указания), и «ImageEnhance» (для регуляции контраста, яркости, резкости). Первые два типа объединены в единое семейство: «ImageFilter». Рассмотрим сначала их.

Читать далее

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

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

Я взял 139 имён пакетов, которые пять свежих ИИ-моделей выдумывают одинаково, и 22 сентября проверил каждое по живым PyPI и npm. Это реестры, откуда ставятся библиотеки для Python и JavaScript. Список ценен тем, что не привязан к одной нейросети: раз имя выдумывают все пять, под ударом пользователи любой из них. Список раскрыли 30 апреля 2026 года.

Занято 7 имён из 139. Под одним из них, metro-evaluator, в декабре 2025 года лежал вредоносный код: npm снял его через пять дней и поставил заглушку. Это было ещё до раскрытия списка, и совпадение это или расчёт на выдуманное имя, по реестру не видно. Остальные шесть имён заняли четыре чужих настоящих проекта, владелец бренда своей заглушкой и пустой пакет в 53 байта, который появился уже после раскрытия. По совету нейросети pip install odf поставит чей-то другой инструмент вместо нужной библиотеки.

Читать далее

От Excel‑макроса до RapidTag: как электрик с помощью ИИ собрал инструмент для маркировки проводов

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

История о том, как обычный электрик без профильного IT образования попытался автоматизировать рутинную задачу и в итоге собрал рабочий MVP для работы с PDF файлами.

Читать далее

Шестнадцать обещаний и две модели, которые пытались их нарушить: как мы выпускали skillmem 0.12

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

В 0.11 мы сорок раундов гоняли ИИ-ревьюеров по коду и нашли много багов. Но у каждого ревьюера было своё представление о том, что значит «правильно». В 0.12 мы начали с другого конца: записали шестнадцать инвариантов, которые обещает наша MCP-память, а затем две модели из разных лабораторий десять дней искали контрпримеры. Засчитывалась только находка с воспроизведением. Рассказываю, что они сломали (Windows посчитала NUL терминалом), во что это обошлось и что мы сознательно оставили в Known issues.

Читать далее

Достучаться до небес: астроном-любитель с ИИ-агентом анализируют данные телескопа Евклид

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

С запуском Астры я тянула. Не потому, что не было времени. Просто знала, что стоит запустить и она утянет меня в бездну. Задаешь один вопрос, спрашиваешь, а это можно? И модель выдает такое, что уже не остановиться и часы на экране показывают полночь, а утром на работу. Поэтому я ждала. Еще хотела, чтобы в голове загорелась идея и любопытство, которые уже ничем не сдержать. Так что, когда в пятницу после обеда я почувствовала это, решила, пора. Ровно в пять захлопнула рабочий ноутбук, повернулась к домашнему Маку, справа поставила айпад с чатом GPT, слева - большой стакан воды. Дело предстояло не шуточное. Даже скажем так, сумасшедшее – решили программным путем достучаться до данных Евклида (Euclid) – нового телескопа, висящего в полутора миллионах километров от Земли в районе точки Лагранжа L2, пропустить его данные через новую модель GPT 6 – Astra Extra High и…

Вот это «и» было главным вопросом.

Читать далее

ИИ‑Стоматолог

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

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

Я не ставил задачу заменить стоматолога. На этом этапе речь шла только о вспомогательном инструменте, который может работать как второе мнение и подсвечивать подозрительные участки на ОПТГ.

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

Сначала это выглядело как странная ошибка. Потом стало понятно, что именно такие случаи лучше всего показывают ограничения системы.

Читать далее

PostgreSQL 19 Beta 4: пять изменений, которые я бы проверил на staging до релиза

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

24 сентября вышла PostgreSQL 19 Beta 4. До release candidate осталось совсем немного, и на этом этапе уже интереснее смотреть не на длинный список новых возможностей, а на те изменения, которые реально способны поменять повседневную работу backend-команды.

В релизе есть заметные вещи вроде REPACK, нового WAIT FOR LSN, параллельного autovacuum, репликации sequence и pg_plan_advice. Но почти у каждой из них есть важное «да, но». REPACK (CONCURRENTLY) не означает «VACUUM FULL без блокировок». WAIT FOR LSN не превращает асинхронную реплику в синхронную. Планировщик теперь можно подталкивать, но это не делает hint-ы хорошей идеей по умолчанию.

Именно поэтому вместо обзора «50 новых фич PostgreSQL 19» я выбрал пять изменений, которые стоит прогнать на собственном staging до GA. Не чтобы немедленно включить их в production, а чтобы заранее понять, какие старые костыли после обновления можно будет убрать, а где появятся новые точки контроля.

Читать далее

Модель предлагает, код решает: проверяемые бизнес-решения на Python с маленькими моделями

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

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

Читать далее

Как ускорить асинхронные генераторы в CPython на 40%, выкинув скрытые исключения

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

Недавно я гонял бенчмарки на свежей сборке CPython (ветка с tail-call интерпретатором, PGO + LTO, GCC) и снял флеймграф стандартного бенчмарка async_generators из набора pyperformance (рекурсивный обход дерева на 100 000 нод с глубиной вложенности ~17).

Картина на профиле оказалась фееричной: почти треть всего процессорного времени (29%) сжиралась кодом, который вообще не делал никакой полезной работы.

Рантайм создавал, настраивал, а затем тут же уничтожал объекты исключений StopIteration, о существовании которых Python-код даже не догадывался.

Ниже о том, откуда растут ноги у этой проблемы в Си-коде CPython и как пара правок в genobject.c дали ускорение в 1.33x — 1.53x.

Углубиться в кишки CPython

Claude Code сливает ключи в коммиты вдвое чаще среднего: почему хук PreToolUse их пропускает

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

Агент Claude Code ради одной цифры для статьи запустил платную серию запросов к ИИ-моделям, хотя правило в CLAUDE.md это прямо запрещало: в длинной сессии оно потерялось. Эта ошибка стоила только денег. Ключ в публичном коммите или выкладка без проверки обошлись бы дороже, и такие действия я проверяю хуками — кодом перед каждым вызовом инструмента.

Читать далее

«Переходи на Spark», говорили они. Сравнил pandas, Polars, DuckDB и PySpark на слабой машине

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

Сценарий знакомый: открываешь в pandas файл побольше, ноутбук задумывается, и через минуту всё падает с MemoryError. Следом обычно звучит совет: для больших данных есть Spark. Я решил проверить его цифрами, но не на кластере, а на слабой машине с двумя ядрами и 5,8 ГБ памяти.

Сравнил шесть вариантов: pandas, pandas с pyarrow, Polars, Polars в потоковом режиме, DuckDB и PySpark. Пять типовых операций, объёмы от 6 до 180 млн строк, контроль памяти и автоматическая сверка результатов между библиотеками. Эта сверка по дороге нашла баг, из-за которого Spark терял целый день данных.

Кто сдался первым, кто удивил и почему переход на Spark часто не лучший выход, рассказываю под катом.

Смотреть результаты

Синхронизация Claude Code, месяц спустя: что ещё сломалось, когда машин стало две по-настоящему

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

Продолжение статьи о синхронизации Claude Code между машинами через git: пять новых граблей за месяц эксплуатации на двух реальных машинах — от веток в транскрипте сессий до секретов, которые чуть не стёрлись сами.

Читать далее

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

CryptoLab: как я превратил лабораторную по криптографическим протоколам в стенд с Alice, Bob и Mallory

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

В этом учебном году мне потребовалось подготовить лабораторные работы по дисциплине «Криптографические протоколы». Самый очевидный вариант практической работы – дать студентам Python и предложить что-нибудь зашифровать: сгенерировать ключ, вызвать AES-GCM из библиотеки, получить ciphertext, затем расшифровать его обратно.

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

encrypt() → decrypt()

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

Что видит атакующий в зашифрованном пакете? Что будет, если изменить ciphertext? Можно ли повторить старый, но совершенно корректный пакет? Что произойдёт при повторном использовании nonce? Как поведёт себя система после отзыва ключа?

Из этих вопросов постепенно появился CryptoLab – учебный стенд, который я сейчас развиваю параллельно с преподаванием курса.

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

Читать далее

Один мок — три проблемы

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

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

Читать далее

Как я научил Steam Deck скачивать игры по ссылке с телефона: Steam через CEF, Mega на stdlib и один файл

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

Я люблю игры, которых нет в Steam: DRM-free игры с GOG и itch.io, визуальные новеллы, фанатские переводы и патчи к ним. На Steam Deck всё это прекрасно запускается, но каждый раз через одну и ту же рутину: скачать, переключиться в режим рабочего стола, распаковать, добавить в Steam как стороннюю игру, выбрать Proton, поискать обложки, вернуться в игровой режим. Переключаться туда ради каждой игры было лень, да и просто геморройно.

Отсюда и выросла идея DeckDrop: один раз зайти в режим рабочего стола, поставить его и больше туда не возвращаться. Дальше всё делается с телефона или компьютера: вставил ссылку, и через пару минут игра уже в библиотеке Steam с нормальным названием и обложками. А скриншоты и длинные записи с дека можно просто скачать на телефон.

Читать далее

Локальный ассистент для зумов, часть 7: семь пакетов в плане, один в коде

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

19 сентября в одной папке src/ лежало 29 тысяч строк, около шестидесяти файлов, и ни одного пакета. pyproject.toml с пустым списком модулей, всё запускается из репозитория. Я сел писать план.

Хотелось простого. У нас есть поиск по графу встреч: ссылки между узлами, русская морфология, досье по людям и системам. Отдать его отдельно нельзя. Возьмёшь поиск, получишь в придачу запись звука, диаризацию и onnxruntime.

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

По плану переезд занимал один день. Ушло восемь дней, переехало восемь модулей.

Читать далее

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

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

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

Читать далее

Pony ORM: толстая пачка фич и улучшений

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

DISCLAIMER: Это неофициальный форк. Но, по моим сведениям, и в официальный pony эти фичи скоро подъедут в каком‑то виде.

Некоторое время назад, я решил испробовать программирование с помощью ИИ‑агентов и решил выбрать pony в качестве пет‑проекта. О pony я уже писал в предыдущей статье. Теперь хочу поделиться результатами своего недельного спринта.

В pony добавилось:
— поддержка асинхронности
— поддержка миграций
— разные улучшения из серии quality‑of‑life

Так что, фреймворк pony теперь чрезвычайно важен и сердит — что можно понять по этой картинке. Всё — благодаря DeepSeek 4.1 Flash и Kimi K3 (последняя — умная, но дорогая — она делала ревью).

Читать далее

Продвижение интернет‑магазина в ответах ИИ: почему нейросети почти не ссылаются на карточку товара

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

Я задал Алисе AI и Perplexity 14 вопросов, которые покупатель задаёт перед покупкой техники: где купить оригинальный айфон с гарантией, где забрать макбук сегодня, где дают рассрочку. Потом посмотрел, на какие страницы магазинов ведут ссылки в ответах. Из 243 ссылок на карточку товара пришлось 10. Чаще всего нейросеть ссылается на ту страницу, которая отвечает на вопрос целиком: спросили про айфоны — на раздел каталога с айфонами, спросили про рассрочку — на страницу рассрочки. Карточка попадает в ответ, только когда покупатель ищет одну модель или наличие сегодня. Поэтому SEO интернет-магазина под ответы нейросетей стоит начинать с разделов каталога и страниц условий, а карточки оставить на потом.

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