UUIDv7: Timestamps aren’t time-ordered and other oddities
UUIDv7 часто рекламируют за три свойства: монотонно возрастающие идентификаторы, встроенная метка времени создания и невозможность угадать ID. На деле ни одно из них строго не гарантируется. Единственное, что UUIDv7 действительно обеспечивает, — уникальность и устойчивость к коллизиям. Остальное зависит от конкретной реализации, и разные совместимые с RFC 9562 генераторы могут нарушать эти свойства вплоть до крайности.
Главная причина — свобода, которую RFC даёт разработчикам. Спецификация прямо разрешает изменять поле метки времени и не требует, чтобы оно совпадало с реальным временем: «реализации МОГУТ увеличивать метку времени опережая фактическое время». Это нужно для поддержания монотонности при переполнении счётчика. Яркий пример — стандартная библиотека Python: если часы системы откатятся назад, генератор может «застрять» и уйти вперёд по времени на произвольную величину, пока реальные часы не догонят его. Тогда метка перестаёт отражать момент создания объекта, а при долгом отставании начинаются переполнения счётчика.
Практический вывод: UUIDv7 — это смесь идей, а не набор гарантий. При выборе реализации стоит спрашивать, какие свойства она реально обещает, при каких условиях и как сильно её ID поддаются угадыванию.
Комментарии (102)
Основные преимущества UUIDv7 заключаются в оптимизации записи в БД (write clustering) и сокращении разделения страниц индекса (page splits). В отличие от случайных UUIDv4, которые вызывают деградацию производительности из-за случайных вставок, UUIDv7 физически располагает записи с близким временем создания рядом, что критично для больших таблиц (миллиарды строк) и clustered indexes. UUIDv7 предпочтительнее ULID и Snowflake ID, так как нативно хранится в стандартных UUID-полях БД (например, в Postgres) без конвертаций. Особенности и ограничения: — Временную метку UUIDv7 нельзя использовать вместо столбца updated_at или для обеспечения строгой последовательности событий. — Для абсолютной детерминированности и идемпотентности в распределенных системах лучше подходит UUIDv5. — Некоторые реализации (например, в CPython) обеспечивают монотонность, принудительно увеличивая временную метку, если текущее время меньше предыдущего. — Python-разработчикам рекомендуется библиотека uuid-utils вместо uuid7 из-за использования последней несовместимого черновика спецификации. Мнения о целесообразности разделились: @ricardobeat считает UUIDv7 полезными только при масштабах в миллиарды записей в час, другие же отмечают упрощение стриминга данных и работы курсоров.
WorldTUI: I trained a 360M model to pretend to be a terminal 🔥 Горячее 💬 Длинная дискуссия
Разработчик дообучил языковую модель Qwen2.5-Coder-0.5B на 360 млн параметров, чтобы она вела себя как настоящий терминал. За демонстрацией нет ни оболочки, ни файловой системы: каждое нажатие клавиши подаётся на вход, а модель предсказывает, как изменится экран. Она умеет создавать файлы, запускать vim и tmux, играть в «змейку» и обычно помнит, что вы вводили несколько команд назад. Наберите pythoon — и увидите, что это не настоящая оболочка.
Терминал представлен сеткой символов, а не пикселей, поэтому обучающие данные можно генерировать в неограниченном объёме, запуская реальные программы в Docker. Модель не видит сетку напрямую — она получает последовательность токенов с содержимым экрана, позицией курсора и изменениями. Вместо потока текста она предсказывает, какие строки перерисовать и куда переместится курсор. Время тоже подаётся на вход: если ничего не нажато, приходит токен ожидания с длительностью — так «змейка» движется сама. Главные удачи — обучение модели исправлять собственные ошибки и параллельное декодирование строк экрана.
Демонстрация рассчитана на настольный браузер с WebGPU и физической клавиатурой, лучше всего работает в Chrome или Edge. Это загрузка на 208 МБ, всё выполняется локально. В планах — обучение на тысячах случайно сгенерированных приложений, чтобы проверить, сможет ли модель предсказывать поведение программы, которую никогда не видела. Веса обещают выложить позже.
Комментарии (165)
Обсуждение дополняет статью идеями применения проекта, сравнением с аналогами и первыми отзывами. @donperignon отмечает, что в реальных тестах модель работает нестабильнее, чем в демо: она ошибается при создании папок и теряет состояние. @Meleagris и @gdevenyi предлагают использовать модель для создания интерактивных honeypots. @amelius советует развивать идею в сторону симуляции конкретного пользователя или интернета (через lynx) вместо общего терминала. @thorum и @aurareturn видят в этом будущем интерфейсов, где локальные модели генерируют UI в реальном времени. Проект сравнивают с vibeSH (@rowbin), Voidware (@ohadpr) и симуляцией Quake II от Microsoft (@psandor). По мнению @andai, выбор Qwen2.5-Coder в качестве базы оправдан её знакомством с синтаксисом CLI.
Compromised LiteLLM 1.107.0 on PyPI Installs a Credential Stealer and Backdoor 🔥 Горячее 💬 Длинная дискуссия
Вредоносная версия библиотеки LiteLLM 1.107.0, опубликованная на PyPI, содержала похититель учётных данных и бэкдор удалённого выполнения кода. Все семь колёс (для Linux, macOS и Windows) устанавливали три файла в site-packages, причём два из них загружались при запуске любого процесса Python — даже если он никогда не импортировал litellm. Исходники на GitHub этих файлов не содержат, а PyPI уже удалил релиз. Чистыми остаются версии 1.106.2, 1.107.0rc1 и 1.107.0rc2, а также зависимые пакеты litellm-proxy-extras==0.4.110 и litellm-enterprise==0.1.78.
Файл cook.pth импортировал cook.py — похититель, собиравший SSH-ключи, облачные учётные данные, секреты CI/CD, токены ИИ-инструментов, пароли браузеров и ключи провайдеров LLM из базы прокси LiteLLM; данные шифровались и отправлялись на www.litellm[.]dev. Второй файл, sitecustomize.py, запускал фоновый демон, который ежечасно читал адрес сервера из файла на GitHub, повторно запускал похититель и скачивал чужой код. Имплант попал в релиз через лишнюю строку data = "cook" в секции maturin файла pyproject.toml: она копировала папку cook/ в колесо, но сама папка в sdist отсутствовала — это единственное видимое изменение. Тег v1.107.0 указывал на коммит с версией 1.108.0, а sdist совпадал с более поздним коммитом main плюс пять отредактированных файлов. Колёса собрал обычный конвейер BerriAI (maturin 1.9.4, корректные записи в RECORD), но ни один публичный запуск GitHub Actions релиз не собирал и не публиковал.
Комментарии (173)
Повторная компрометация LiteLLM (версия 1.107.0) из-за кражи трех GitHub-аккаунтов разработчиков указывает на системную уязвимость цепочки поставок в экосистеме Python. Злоумышленники внедрили файл cook.pth, который автоматически загружается при старте любого Python-процесса. Рекомендации: — зафиксировать версию ≤ 1.106.2, использовать приватные реестры и проверять артефакты сборки (включая .pth-записи); — использовать канарейковые токены (canarytokens.org) для раннего обнаружения атак; — рассмотреть альтернативы, например GoModel на Go. Для защиты экосистемы предлагается внедрить в менеджерах пакетов (uv, npm, pip) задержку установки новых версий на 24–48 часов, а в операционных системах — изолированные программные пространства или легкие VM, чтобы избежать безусловного принятия вредоносных пакетов.
Google open-sources TorchTPU, a native PyTorch back end for TPUs 🔥 Горячее
Проект TorchTPU предоставляет бэкенд PyTorch для тензорных процессоров (TPU) Google, позволяя запускать модели и операции PyTorch напрямую на TPU. Он включает собственные ядра ATen для различных операций, кэш компиляции для оптимизации вычислений XLA, поддержку распределённого обучения (параллелизм по данным и тензорам) и интеграцию с torch.compile() для графового режима. В репозитории есть примеры для Llama, Qwen, ResNet, DLRM, minGPT и UNet, а также утилиты для отладки и бенчмаркинга.
Установить последнюю версию (0.2.0) можно через pip с дополнительным индексом PyTorch CPU; поддерживается Python 3.11+. Сборка из исходников ведётся через Bazel: обязателен флаг --config=wheel_common, иначе колесо упадёт при импорте из-за дублирующихся статических регистраций. Без учётных данных удалённого исполнения (RBE) нужно добавить --config=no_rbe строго после wheel_common. Для разработки на C++ предусмотрен скрипт setup_clangd.py, генерирующий compile_commands.json (первый запуск может занять более 30 минут). Проект распространяется под лицензией Apache 2.0 и открыт для вкладов.
Комментарии (74)
TorchTPU — официальная замена pytorch/xla для запуска PyTorch на TPU. Это стратегический шаг Google по популяризации TPU вне своей инфраструктуры, включая продажи on-prem крупным клиентам (например, Anthropic) и выпуск устройств Coral USB и m.2. Релиз совпал с конференцией PyTorch. Пользователи спорят о влиянии TorchTPU на JAX: одни видят в этом признак его устаревания, другие считают, что выбор теперь зависит лишь от стиля программирования. По опыту @atty, некоторые крупные пользователи GCP рассматривали TPU для on-prem, но решили остаться на Nvidia еще на одно поколение. Существуют сторонние попытки реализации libtpu для других ускорителей, например, open-source версия для Tenstorrent от @pcmoritz.
Nordwand Mono – A monospace font for coders and adventurers 🔥 Горячее
Разработчик, не нашедший «идеальный» шрифт для терминала и Neovim, спроектировал собственный с нуля на Python. Nordwand Mono — компактный моноширинный неогротеск, переносящий элементы классического «Univers» Адриана Фрутигера в пропорции «JetBrains Mono». Название отсылает к Швейцарии и её типографике, а также к суровой атмосфере северных стен Альп. Среди источников вдохновения также указаны «SF Pro» и «SF Mono» от Apple, «Alpes Mono» от Sharp Type и «Ubuntu Mono» от Dalton Maag.
Шрифт предлагает альтернативные начертания отдельных символов, переключаемые через теги OpenType, и всего две минимальные лигатуры — для «->» и «=>»; полный набор лигатур автор обещает, возможно, добавить позже, но сам пользоваться ими не собирается. Поскольку каждый глиф рисуется Python-классом с внедряемым контекстом отрисовки, можно менять метрики — например, высоту строчных или прописных знаков — через файл конфигурации: отдельные глифы просматриваются командой python -m visualize, а полный шрифт собирается командой python -m generate_font в папку ./custom-fonts. Автор предупреждает: при изменении метрик вид шрифта не гарантирован, а некоторые глифы потребуют ручной правки.
В репозитории есть образцы символов, начертаний и примеры кода на Python, C++ и Haskell, а также альтернативный кириллический алфавит.
Комментарии (96)
Обсуждение дополняет статью практическими отзывами. Пользователи rootlocus, delta_p_delta_x и pookieinc считают Nordwand Mono почти идентичным JetBrains Mono или Berkeley Mono, отмечая различия лишь в отдельных знаках ($ и &). @fercircularbuf указывает на схожесть круглых и квадратных скобок, что затрудняет чтение кода. @bronlund ценит наличие минимального набора лигатур (→ и ⇒), так как остальные обычно отключают для разгрузки визуального потока. @JoshTriplett отмечает комфортный межсимвольный интервал, схожий с DejaVu Mono, в отличие от многих современных узких шрифтов. @abainbridge добавляет, что на мониторах с 100 DPI предпочитает bitmap-шрифты с ручным антиалиасингом для более резкой картинки и компактности текста.
DeepSeek-v4.1-Flash-1017 🔥 Горячее 💬 Длинная дискуссия
DeepSeek выпустила обновление DeepSeek-V4.1-Flash-1017 — минорную версию модели DeepSeek-V4.1-Flash, которая заметно улучшает рассуждения, написание кода, агентные задачи и визуальные бенчмарки. Одновременно модель сокращает время выполнения задач и длину вывода, что снижает стоимость и продвигает границу Парето «производительность–цена» сразу в нескольких агентных средах. Веса и репозиторий распространяются под лицензией MIT.
Ключевые цифры: на Terminal-Bench 4.0 результат вырос с 31,2 до 42,3, на ProgramBench — с 20,3 до 29,1, на Apex Bench v1.1 — с 64,6 до 72,1, на Automation-Bench v1.0.6 — с 54,8 до 60,5. На HLE без инструментов — 42,6 (44,0 для текстового подмножества), на DeepSWE v1.1 — 77,0, на NL2Repo-Bench — 68,2, на Agents' Last Exam — 35,4. В задачах с инструментами: Chartography — 83,0, BabyVision — 92,5, ZeroBench-main — 51,0.
В релизе нет шаблона чата в формате Jinja: вместо него в папке encoding лежит самодостаточная реализация на Python с тестами для многоходовых диалогов, вызова инструментов, режима размышления и изображений. Для продакшена отдельно выложен набор библиотек deepseek-recipe на Rust с привязками к Python. Рекомендуемые параметры сэмплирования: temperature 1.0, top_p 1.0, контекст 1M токенов, max_tokens не менее 256K.
Комментарии (659)
Пользователи подтверждают высокую эффективность модели в кодинге и агентных задачах, выделяя её скорость и стоимость как решающие факторы. Сочетание высокой скорости генерации (tok/s), низкого TTFT и доступной цены делает модель предпочтительным «ежедневным драйвером» для итеративной разработки кода. При уровне reasoning_effort=1 модель генерирует в 2.5 раза меньше токенов без потери качества (по опыту @apejcic). Однако модель может уступать Opus 5.5 в сложных архитектурных решениях и UI-дизайне. В тесте на C++ кодовой базе @AmazingTurtle отметил, что модель предлагает слишком буквальные исправления (точно под размер теста), в то время как GPT 6.1 Sol закладывает запас (headroom). По мнению @a11r, модель склонна к «передумыванию» на сложных задачах, и в их воркфлоу GLM 5.3 Flash и Qwen 3.8 Flash показали себя лучше. Оптимальный воркфлоу по мнению @olavgg и @dw_arthur: использовать DeepSeek Flash для основной работы и Opus 5.5 в качестве экспертного рецензента/советника. Модель демонстрирует отличные результаты в локальном запуске на Mac (M5 Ultra): @liuliu сообщает о ~3400 tok/s при обработке промпта и ~50 tok/s при генерации (при RAM от 64 ГБ). Открытость модели (доступ к CoT) и отсутствие жестких блокировок по «кибер-безопасности» делают её более удобной для агентных систем, чем закрытые аналоги. Пользователи отмечают высокую эффективность модели в специфических задачах: @aizk использует её для реверс-инжиниринга старых игр (генерация 600k строк кода из ASM), а @nickludlam выделяет работу с Svelte.
I Found a $90k Remote Code Execution Vulnerability in Google
Исследователь безопасности обнаружил критическую уязвимость удалённого выполнения кода на сайтах документации Google для разработчиков. Всё началось с анализа OAuth-потока: при обращении к /oauth2authorize сервер устанавливал сессионную cookie Flask размером около 1200 байт. Поскольку cookie подписываются, но не шифруются, содержимое оказалось доступно для чтения. Внутри лежал сериализованный через pickle объект OAuth2WebServerFlow, содержавший в открытом виде client_id и client_secret OAuth-приложения Google.
Ключевая находка: этот же client_secret использовался как SECRET_KEY для подписи сессий Flask. Исследователь воспроизвёл подпись офлайн через itsdangerous с производным ключом cookie-session — результат совпал байт в байт. Это означало полную потерю целостности сессии: можно было подделать любые значения и получить валидную подпись. Поскольку callback распаковывал объект потока через pickle.loads, атакующий мог подсунуть произвольный pickle с опасным опкодом REDUCE, что давало неаутентифицированное RCE.
Для доказательства без вреда продакшену использовался payload с time.sleep(N) — задержка ответа точно соответствовала заданному числу секунд. Уязвимость затронула несколько хостов DevSite, включая firebase.google.com, developer.android.com и source.android.com. Google выпустил хотфикс в течение суток, а выплата составила $90 000: базовые $75 000 за RCE уровня S0 с коэффициентом 1.2 за качество отчёта. Рекомендации включают ротацию секретов, отдельный SECRET_KEY для каждой инсталляции, хранение OAuth-объекта на сервере и отказ от pickle на границе с клиентом.
Комментарии (120)
Обсуждение поднимает вопросы о признании вклада LLM, роли человеческой экспертизы, влиянии стиля LLM‐текстов на восприятие, недопустимости практик вроде pickle в cookie и будущем размера баунти, подтверждая, что Google продолжает выплачивать крупные вознаграждения за критические уязвимости. Спор: одни считают, что автор должен указывать, что LLM (Claude) нашёл уязвимость, иначе человек лишён агентства; другие утверждают, что без человеческого направления LLM бы не нашёл баг, поэтому кредит остаётся за исследователем. Большинство согласны: LLM — лишь инструмент, его использование должно быть открыто, но результат зависит от опыта и вопросов, задаваемых человеком. Совет: рост применения ИИ может снизить размер баунти до уровня стоимости токенов, поэтому исследователям стоит готовиться к более скромным выплатам. Критика стиля: блог, написанный полностью LLM, отталкивает читателей и усложняет восприятие технических деталей. Упоминание: использование pickle в cookie с подписью — серьёзное упущение, маловероятно пройти код‐ревью или автоматическое тестирование в крупных проектах. Совет для новичков: осваивать AI‐инструменты, но одновременно углублять фундаментальные знания о протоколах и механизмах, иначе AI останется лишь «начинающим» помощником. Выплата $90 000 за найденную уязвимость подтверждает, что Google всё ещё готов платить крупные суммы за критические RCE, несмотря на обсуждения об изменении рынка.
AI models can provably hide arbitrary capabilities
Исследователи показали, что языковые модели могут скрывать произвольные способности за криптографическими «замками» — встроенными зашифрованными нейросетями, которые активируются только при подаче секретного триггера. Даже при полном доступе к весам модели эти скрытые вычисления остаются невидимыми для стандартных методов аудита, включая тонкую настройку, шум в весах и поиск триггеров через градиенты. Авторы реализовали концепцию в PyTorch, протестировав её на задаче предсказания химических реакций — моделировании потенциально опасных возможностей, таких как создание химического оружия.
Доказательство основано на криптографических предположениях, аналогичных тем, что обеспечивают безопасность цифровых замков: без ключа расшифровать и активировать скрытую функциональность невозможно. Это ставит под сомнение эффективность текущих методов выявления опасных возможностей через элицирование — попытки «вытянуть» скрытое поведение модели. Работа впервые расширяет идею скрытия данных до произвольных вычислений, а не просто фиксированных строк. Авторы опубликовали модели, чтобы стимулировать разработку новых методов защиты.
Комментарии (104)
Обсуждение дополняет статью практическими наблюдениями: скрытые способности могут самопроизвольно восстанавливаться после «забвения», аналогичны зашифрованным вирусам, вызывают опасения по поводу «спящих» агентов в открытых моделях, вызывают разногласия в оценке сложности их обнаружения, связываются с эффектами RLHF и подкрепляются теоретическим выводом из теоремы Райса о неразрешимости таких свойств. Автор @johnsmith1840 отметил, что модель может «забыть» обученный факт, но позже часть моделей самостоятельно восстанавливает его без доступа к исходным данным, демонстрируя скрытое хранение знаний в весах. Комментарий @nine_k сравнил механизм с зашифрованными полиморфными вирусами 1990‐х: «мусорные» веса могут быть дешифрованы секретным триггером и выполнить скрытую функцию. По мнению @ceroxylon, открытые модели могут содержать «спящих агентов», активируемых произвольной строкой, что представляет угрозу при широком распространении открытого кода. Есть разногласия в оценке обнаружимости: @squeegeeninja считает такие бэкдоры тривиально обнаружимыми, тогда как @freebsd_lovefes описывает их как ночной кошмар для аудита. Участник @hashmap предположил, что RLHF может заставлять модели скрывать данные в геометрически недоступных регионах, усиливая проблему скрытых возможностей. Комментарий @measurablefunc указал на теоретическую основу: по теореме Райса любые достаточно выразительные вычислительные системы могут иметь недетектируемые свойства, что подтверждает невозможность полной статической проверки. Совет: По совету @dovin, рост спроса на полностью открытые модели с полностью проверяемыми датасетами может стать реакцией на такие угрозы, поскольку прозрачность облегчает поиск скрытых механизмов.
Python 3.15 🔥 Горячее
Python 3.15.0 вышел с рядом значительных улучшений: введены новые встроенные типы — sentinel и frozendict, а также по умолчанию включена UTF-8 как кодировка. Добавлена поддержка распаковки в генераторах, ленивые импорты для ускорения запуска и улучшены сообщения об ошибках. Экспериментальный JIT-компилятор показал прирост производительности до 12% на AArch64 macOS и 8% на x86-64 Linux. В стандартной библиотеке появился новый профилировщик Tachyon и отдельный пакет для инструментов профилирования. В типизации добавлены TypedDict с типизированными дополнительными полями, TypeForm для аннотаций и поддержка непересекающихся базовых типов. C-API получил новые функции, включая PyBytesWriter и защиту от некорректной финализации. На Windows теперь используется tail-calling интерпретатор, а на macOS по умолчанию включена free-threading поддержка. По умолчанию включены frame pointers для лучшей наблюдаемости на уровне системы.
Комментарии (105)
Обсуждение подтверждает практическую значимость новых фич Python 3.15: стабильный ABI для free-threaded сборок сокращает CI-матрицы в 5 раз, ленивые импорты востребованы для ускорения старта, а frozendict и распаковка в компрехеншенах — долгожданные улучшения качества жизни, несмотря на медленное внедрение в дистрибутивах.
-
Поддержка abi3t позволяет выпускать одну универсальную .whl-сборку для free-threaded и GIL-версий, сократив CI-матрицу с 20 до 4 джобов по опыту @hncbw02z5a.
-
Ленивые импорты (PEP 810) востребованы сообществом как долгожданное улучшение для ускорения старта интерпретатора, подтверждено несколькими участниками, включая @kbumsik и @fishgoesblub.
-
frozendict и распаковка в компрехеншенах (PEP 798, PEP 814) считаются долгожданными качественными улучшениями, несмотря на то, что их отсутствие было необъяснимым с 3.6 (@6gvONxR4sf7o, @tipsytoad).
-
UTF-8 по умолчанию воспринимается как очевидное улучшение, но удивление участников (@hleszek) показывает, что многие не осознавали, что это ещё не было стандартом.
-
Tachyon-профайлер полезен для продакшена, так как позволяет профилировать запущенные процессы без перезапуска (@febed).
-
Стабильный ABI (abi3t) обеспечивает совместимость сборок на несколько версий Python вперёд, что снижает нагрузку на поддержку библиотек (@yablak, @ngoldbaum).
-
Спор: Утверждение @wg0 о переходе Python-интерпретатора на Rust как основного языка опровергается @zahlman и @fastily: текущие шаги — лишь интеграция отдельных компонентов на Rust, а не замена CPython.
-
Спор: Некоторые участники (@simonw, @ryandrake) критикуют политику быстрого отказа от старых версий Python, указывая, что пользователи всё ещё зависят от 3.10 и ниже, и ломать совместимость — неоправданный риск.
-
Совет: Для поддержки старых систем (например, EL7) компании продолжают поддерживать Python 3.5, несмотря на EOL, что подтверждает @elevation — отсутствие поддержки ≠ отсутствие использования.
-
Совет: Использование uvx --python 3.15 whatsnewt может привести к запуску альфа-версии (3.15.0a2), где некоторые фичи ещё не реализованы, как предупреждает @ameliaquining.
-
Размер исходного архива Python 3.15 вырос из-за двух анимированных GIF-демонстраций Tachyon-профайлера весом >10 МБ, что вызвало критику @zahlman как неэффективное использование места.
-
Совет: Для enterprise-дистрибутивов (RHEL, Ubuntu) срок поддержки Python превышает 10 лет, что делает реальное использование версий 3.8–3.14 долгосрочным, несмотря на официальный EOL (@zzzoom).
Whistle: Speech to Text in 16.9 MB 🔥 Горячее 💬 Длинная дискуссия
Whistle — это открытая модель распознавания речи размером 16,9 МБ, которая работает на CPU без зависимостей и использует тот же C++ движок, что и модель Needle. Она транскрибирует аудио до 30 секунд на семи языках: английском, немецком, французском, испанском, итальянском, нидерландском и польском, определяя язык автоматически, если он не задан явно. Первый токен появляется за 11 мс, а вся обработка происходит локально на устройстве — аудио никогда не покидает его. Помимо транскрипции, Whistle выдаёт временные метки для каждого слова с вероятностью и генерирует речевые эмбеддинги — по одному вектору на каждые 80 мс аудио, полученные из выхода энкодера.
Архитектура Whistle делит обработку на энкодер и декодер. Аудио преобразуется в 80-полосные лог-мел спектрограммы с окном 25 мс и шагом 10 мс, затем проходит через свёрточный стебель, уменьшающий длину с 3000 до 375 кадров (по одному на 80 мс). Энкодер состоит из восьми блоков Simple Attention, общих с Needle, использующих mHC residual lanes и Monarch Hadamard MLP вместо стандартного FFN. Декодер содержит восемь Laddered Simple Attention блоков с гейтированным кросс-вниманием к энкодеру, где ключи и значения проецируются один раз при загрузке аудио и переиспользуются для всех лучей. Декодирование выполняется beam search с шириной 5, длинормализованным лог-вероятностным скором и смещением по ключевым словам через Aho-Corasick автомат. Модель поддерживает вывод текста, языка, латентности первого токена и скорости декодирования, а также расширенные опции вроде принудительного указания языка или подсказки ключевых слов. Установка возможна через pip, а готовые бинарники доступны для 17 платформ, включая мобильные устройства, микроконтроллеры и браузер через WASI. Вес модели и исходный код размещены на Hugging Face и GitHub.
Комментарии (171)
Whistle — компактная модель для локальной работы на CPU без зависимостей с низкой задержкой (первый токен за 11 мс), подходящая для встраиваемых устройств и веб-приложений. Основные характеристики и ограничения: * **Точность:** В режиме свободного распознавания точность низкая (70/170 против 168/170 у Qwen). Однако при использовании как детектора шаблонов (обучение сети на сгенерированных фразах) точность возрастает до 164/170. * **Языки и акценты:** Хорошо работает с английским языком и различными акцентами (индийским, хорватским, испанским), превосходя стандартные системы и встроенное распознавание iOS, особенно в технических терминах (ASP.NET, .NET 10.0). Плохо работает с испанским, не поддерживает норвежский, японский и другие языки. * **Технические недостатки:** Отсутствует поддержка потоковой транскрипции в реальном времени. Ограничение длины аудио — до 30 секунд; при обработке длинных файлов модель может зацикливаться на одной фразе (например, «Thank you.»). * **Специфика:** Не подходит для распознавания речи людей с речевыми нарушениями. Альтернативы: * ZWhispr: для локальных систем с 8 ГБ GPU, обеспечивает высокую точность за счет трех SOTA моделей. * Yapsnap: бесплатный вариант для CPU без GPU с поддержкой 10 языков, потоковым режимом, диаризацией и временными метками.
Polars 2.0 🔥 Горячее
Polars 2.0 стал значительным шагом вперёд, объединяя улучшения производительности, поддержку SQL как первого класса и переход к потоковой обработке по умолчанию. Теперь вызов collect на LazyFrame использует потоковый движок, что снижает потребление памяти и ускоряет большинство запросов, хотя требует явного указания порядка строк для операций вроде join и group_by, чтобы избежать неожиданных результатов. Добавлен новый тип данных Map, а контроль над типами стал строже — это ускоряет обратную связь и упрощает работу с ИИ-моделями.
В тестах TPC-H и TPC-DS Polars 2.0 показал лучшие результаты среди DuckDB (1.5.6 и 2.0 alpha) и DataFusion на машинах с 16 и 192 ядрами, особенно при ограничении потоков до 32 ядер на больших системах, где изначально наблюдался накладный расход при масштабировании. На больших данных (SF100) Polars с 192 ядрами оказался в 3.8 раза быстрее на TPC-H и в 2.2 раза на TPC-DS по суммарному времени запросов, опережая DuckDB и DataFusion в масштабируемости. Исходные данные и скрипты для воспроизведения тестов доступны в открытом репозитории. Разработчики обещают улучшить масштабирование на большом числе ядер и продолжить работу над out-of-core и GeoPolars.
Комментарии (101)
Polars 2.0 почти полностью заменяет Pandas для обработки больших данных, за исключением геопространственных задач (нет аналога Geopandas, Geopolars в разработке), тонких строковых операций и совместимости с экосистемой SciPy, где Pandas доминирует из-за ожидания DataFrame-объектов. При работе с миллиардами строк Polars работает за 5 секунд против 4 минут 28 секунд у Pandas, а DuckDB использует в 19 раз меньше памяти. Потоковая обработка по умолчанию в Polars 2.0 устраняет утечки памяти от неправильного использования collect() в циклах. Пользователи отмечают лучший API и производительность Polars в greenfield-проектах, его логика ближе их мышлению. Для сложных строковых операций (например, конкатенации с текстом между столбцами) Pandas проще: df['col_a'] + 'text' + df['col_b'], тогда как Polars требует более громоздкого кода. Для научных библиотек (SciPy) Pandas предпочтительнее, так как многие инструменты ожидают DataFrame. Для сложных JOIN и агрегации на очень больших наборах данных DuckDB может быть предпочтительнее Polars. Есть противоречия в бенчмарках: некоторые утверждают, что DataFusion быстрее Polars, другие — что DuckDB уступает Polars. Также отмечается неоднозначность в поддержке наносекундных временных меток в Polars — некоторые пользователи сталкиваются с проблемой экспорта, другие нет. SQL в Polars 2.0 улучшен, но не поддерживает все операции (например, asof_join), ограничивая применение в некоторых аналитических сценариях. Пользователи, обрабатывающие миллиарды метеоданных, подтверждают, что версия 2.0 жизненно важна для их workflows. Для тех, кто использует SQL, Malloy предлагает более читаемый синтаксис, заменяя 40+ строк Polars/Pandas одной декларативной инструкцией.
Animated ASCII Art for Web Pages 🔥 Горячее
ascii.rest — это коллекция анимированной ASCII-графики для веба, созданная @bas3line и доступная под лицензией MIT. Сайт предлагает более 100 анимаций, разделённых на категории: пейзажи (например, «alpine dawn» или «aurora fjord»), интерфейсные элементы (часы, прогресс-бары, спиннеры), данные (графики, тепловые карты, метры CPU), типографику (типа «typewriter», «glitch», «split-flap»), логотипы языков программирования (Python, Rust, JavaScript и др.) и дистрибутивы Linux (Arch, Debian, Alpine). Все анимации работают в браузере без JavaScript — только HTML и CSS, что делает их легковесными и быстрыми.
Особенно впечатляют детализированные сцены вроде «tunnel» — анимированный тоннель с движущимися плитками, и «tv-static» — имитация помех на старом телевизоре, переключающемся между тест-картинкой и шумом. Каждая анимация — это чистый, оптимизированный код, легко встраиваемый в сайты. Проект сочетает ностальгию по эпохе терминалов с современными веб-стандартами, предлагая эстетику, которая не требует тяжёлых библиотек. Исходники доступны на GitHub, что позволяет адаптировать или расширять анимации под свои нужды.
Комментарии (60)
Обсуждение уточняет, что анимации относятся к цветному Unicode‐шейдеру, а не к классическому ASCII‐арту. Спор: некоторые считают, что использование цвета и Unicode‐символов делает их не настоящим ASCII‐артом, так как определение ограничивается простыми текстовыми символами. Большинство отмечают, что сайт поддерживает reduced motion: анимация останавливается на первом кадре для пользователей, избегающих движения. Пользователи сообщают о низкой частоте кадров на мобильных устройствах, особенно на главной странице, ухудшая восприятие. Есть запросы на визуальный редактор или генератор для создания собственных анимированных ASCII‐сцен. Предлагается принимать pull‐request‐ы для интеграции проекта Flow и других улучшений — сообщество хочет участвовать в развитии. Комментаторы согласны: интерес к ASCII‐арту связан с трендом ретро‐текстовых интерфейсов в UI‐дизайне. Спор: работа оценивается поляризованно — некоторые называют её «плохой» и «слишком минимальной», другие восхищаются эстетикой. Отмечено: в некоторых браузерах (например, Firefox Mobile) порядок анимаций перемешивается — требуется исправление.
Claude Haiku 5.5 🔥 Горячее 💬 Длинная дискуссия
Claude Haiku 5.5 — это новая быстрая и дешёвая модель от Anthropic, предназначенная для задач с высоким объёмом и чувствительностью к стоимости: суммаризация, классификация, запросы к базе данных и работа суб-агентов в коде. Она в среднем на 75% дешевле, чем Haiku 4.5, и является самой быстрой моделью компании на сегодняшний день, что делает её идеальной для живой поддержки клиентов и использования в браузерах. Haiku 5.5 также впервые в линейке Haiku поддерживает регулируемую настройку усилий — пользователи могут выбирать между оптимизацией по стоимости или по интеллекту.
В тестах Haiku 5.5 показывает сильные результаты: например, в OSWorld 2.1 (offline subset) достигает 72.4% точности, что значительно выше, чем у Haiku 4.5 (15.7%), и близко к Sonnet 5.5 (83.9%). В задачах мультидисциплинарного рассуждения (Humanity’s Last Exam) модель набирает 45.9% без инструментов и 57.4% с ними. В агентном кодировании (Terminal-Bench 4.0) Haiku 5.5 решает 39.2% задач — существенный рост по сравнению с 0.0% у Haiku 4.5. Одновременно с запуском Haiku 5.5 Anthropic снизил цену на чтение кэша у Sonnet 5.5 на 50%, что делает её на ~20% дешевле в агентных задачах, и ввёл ежемесячные API-кредиты для подписчиков Max и Team (до $500), чтобы стимулировать создание новых агентов и приложений на Claude Platform. Обновлены также Python и TypeScript SDK с поддержкой computer и browser use в бета-версии.
Комментарии (444)
Claude Haiku 5.5 быстрее и в 9 раз дешевле Haiku 4.5, показав рост на два уровня в DataAnalyticsBench. Модель является самой быстрой у Anthropic (131 токен/сек на OpenRouter, задержка до 2 сек) и демонстрирует лучшее соотношение качества, скорости и цены в RAG-системах с технической документацией. Она превосходит GPT-6 Luna в компьютерном использовании и агентном кодировании, а по общей производительности сопоставима с Qwen-3.8 и Sonnet 5.5. При объеме до 100K токенов цена Haiku 5.5 совпадает с GPT-6 Luna ($0.10/MTok input, $0.50/MTok output), однако из-за того, что токенизация Haiku 5.5 потребляет в 1.5 раза больше токенов, реальная выгода снижается. После порога в 100K стоимость Haiku 5.5 растет до $2.50/MTok, что делает Luna выгоднее для длинных запросов (особенно свыше 272K). Модель позиционируется как суб-агентная: она эффективна в простых операциях и автоматизации, но уступает Opus 5.5 в генерации сложных UI (например, LCARS) и глубоком статистическом анализе. Отмечены возможные регрессии: ошибки в простых задачах (подсчет букв в слове «diminished»), утечки промптов и случаи, когда модель работает хуже Haiku 4.5. Для бизнес-пользователей ценность модели повышают API-кредиты для Max и Team-подписчиков ($100–$500). Haiku 5.5 становится альтернативой GLM и DeepSeek, возвращая доверие пользователей после неудач версии 4.5. Рекомендации: — Haiku 5.5: для максимальной скорости, низкого бюджета и малых объемов данных. — GPT-6 Luna: для запросов свыше 100K токенов. — Sonnet или Opus 5.5: для сложных рассуждений и создания UI.
Decisions API is in public beta 🔥 Горячее 💬 Длинная дискуссия
Decisions API от OpenAI — это новый публичный бета-интерфейс, который оценивает текст, изображения или их комбинацию и возвращает типизированные ответы в 10 раз быстрее, чем Responses API. Он поддерживает три типа вопросов: predicate (вероятность условия, от 0 до 1), choice (выбор из фиксированного набора категорий) и score (вероятностно-взвешенная оценка по упорядоченным уровням, например, тяжести проблемы). Ответ содержит массив answers, где каждый элемент идентифицируется уникальным name, заданным в запросе. В настоящее время доступна только модель gpt-6-luna, и запросы отправляются на dedicated endpoint POST /v1/decisions. Входные данные должны быть встроены как base64-данные (изображения — как data URL), внешние ссылки и file_id не поддерживаются. Стоимость — $0.10 за 1M входных токенов, без платы за вывод или кэширование. API поддерживает Zero Data Retention и HIPAA-соответствие для подходящих клиентов, с обработкой данных в США и Европе. Примеры использования включают проверку фото на повреждения (visible_damage с вероятностью 0.92) и одновременную классификацию категории продукта в одном запросе. Для зависимых решений рекомендуется делать отдельные запросы (например, сначала проверить повреждение, затем определить тип ремонта). API особенно полезен для маршрутизации, фильтрации и приоритизации задач в приложениях, где нужны быстрые, структурированные решения без генерации произвольного текста. Для генерации JSON-схем или вызова функций рекомендуется использовать Structured Outputs или function calling через Responses API. SDK-требования: Python ≥3.26.0, JavaScript ≥7.30.0, Go ≥3.73.0, Ruby ≥0.101.0, Java ≥4.78.0. Релиз GA ожидается в ближайшие недели.
Комментарии (188)
Decisions API быстрее, поддерживает изображения, дешевле Jev, но не имеет кэширования и вызывает вопросы о калибровке и рыночной стратегии. Обеспечивает 1 млн токенов входа и мультимодальный ввод; в тестах задержка 160–175 мс, максимум 743 мс. Стоимость $0.10 за 1 млн токенов — как у старой модели, но скорость в 10 раз выше. Отсутствие кэширования ограничивает экономию при повторных запросах и больших системных промптах. Калибровка модели неясна; вопрос о 90 % точности остаётся открытым. Поддерживает ввод изображений — чего не было у Jev — расширяя спектр применений. Ограниченное окно контекста (~64 к) остаётся неясным, что может влиять на сложные задачи. Локальные модели вроде Jev дешевле и быстрее; ожидается выпуск Jev 2. Архитектура отдельного API для решений вызывает вопросы о будущей интеграции в модели. Для удержания клиентов OpenAI и Anthropic должны сделать свои решения более «липкими», предлагая самые дешевые варианты.
OpenTPU – An open-source AI accelerator, developed by AI 🔥 Горячее 💬 Длинная дискуссия
openTPU — это открытый ИИ-ускоритель, полностью разработанный с помощью ИИ-агентов, включая RTL, ISA, симулятор, компилятор и профайлер в одном репозитории. Проект исследует, насколько далеко может зайти ИИ в проектировании аппаратного обеспечения и способен ли создать чип, который будет выполнять собственный вывод. Ускоритель работает на плате Inspur YPCB-00338 с FPGA Xilinx Kintex-7 xc7k480t и двумя каналами DDR3-1066 (пиковая пропускная способность 17.1 ГБ/с), достигая до 94% использования пропускной способности DRAM при декодировании моделей. Все десять современных моделей, включая Qwen3, LFM2.5 и Gemma 4, запускаются с реальными весами и производят битов идентичные результаты по сравнению с бито-точным симулятором.
В режиме декодирования LFM2.5-230M с int8 весами достигает 59.0 токенов/с на устройстве и 52.3 токенов/с в реальном времени (wall time), при префилле — 295.6 токенов/с. Использование 4-битной квантизации с int8-головкой повышает производительность до 85.8 токенов/с на устройстве для той же модели. Более крупные модели, такие как Phi-4-mini (3.8B), работают со скоростью 3.99 токенов/с в int8 и 6.56 токенов/с в 4-битной конфигурации. Дизайн использует одно ядро для всех моделей при частоте 133.33 МГц, включает четырёхколоночный систолический матричный блок и LiteDRAM-контроллеры, калиброванные встроенным CPU. Текущие усилия направлены на улучшение эффективности DRAM-подсистемы, увеличение таймингового запаса и ускорение префилла за счёт повышения частоты и оптимизации матричного блока. Проект распространяется под лицензией Apache 2.0 и предназначен для обучения: весь стек доступен для end-to-end изучения — от Python-ядра до проводов в RTL.
Комментарии (323)
Практические ограничения — длительные сроки разработки, ограниченная пропускная способность памяти и дефицит фабричных мощностей — делают ASIC для передовых моделей рискованными, но специализированные чипы полезны для «достаточно хороших» моделей. OpenTPU демонстрирует потенциал AI‐поддерживаемого проектирования, однако текущая производительность на FPGA остаётся скромной. Скорость появления новых моделей опережает сроки проектирования и производства ASIC, поэтому компании предпочитают гибкие GPU, которые быстро адаптируются к новым архитектурам. Спор: Одни считают, что специализированные ASIC оправданы для «достаточно хороших» моделей, другие указывают на риск быстрого устаревания и ограниченную пропускную способность памяти, делая такие чипы менее привлекательными. Доступ к фабричным мощностям ограничен, сроки изготовления могут занимать годы, что делает экспериментальные чипы экономически рискованными и часто приводит к их устареванию к моменту выхода. Совет: Для практического применения лучше использовать уже существующие модели среднего уровня (например Opus 4.7) на ASIC, поскольку они дают высокую производительность при приемлемой памяти и не требуют постоянных переобучений. Основным узким местом инференса остаётся пропускная способность памяти; ускорители, оптимизированные под конкретную модель, не решают эту проблему, поэтому компании балансируют между мощностью, площадью и программируемостью. Совет: Если цель — экспериментировать с открытым ускорителем, стоит учитывать, что текущая реализация openTPU на FPGA Kintex‐7 даёт лишь несколько токенов в секунду, но после рекурсивного улучшения достигла более 80 tok/s на небольших моделях. Спор: Некоторые утверждают, что AI уже может полностью спроектировать чипы, другие подчёркивают, что человеческое руководство всё ещё необходимо для создания симуляций и проверки ограничений, как показано в комментариях о реальном участии людей.
Why Common Lisp is now the best programming language 💬 Длинная дискуссия
Common Lisp ускоряет обратную связь при разработке благодаря отсутствию чёткой границы между временем чтения, компиляции и выполнения: программа существует как живой образ в памяти, и изменение функции применяется мгновенно без перезапуска. Это критично сейчас, когда LLMs пишут код быстро, а узким местом становится проверка работоспособности — в Common Lisp ошибки не падают программу, а выводят интерактивный отладчик со стек-трейсом и переменными, позволяя LLM сразу исправить код и продолжить выполнение. Макросы, возможные благодаря homoiconicity (код как списки данных), позволяют расширять язык под домен, превращая программирование в создание специализированного языка для задачи. Это особенно ценно в эпоху LLM-поддерживаемой кастомизации: например, ERP-система на собственном доменном языке позволяет пользователям вносить правки через LLM, сохраняя согласованность с исходной концепцией продукта. Программы на Common Lisp часто в 6–7 раз короче эквивалентных на Python благодаря абстракциям через макросы, что снижает стоимость токенов при работе с LLM и увеличивает долю кода, помещающуюся в контекстное окно, уменьшая ошибки из-за частичного видения программы. Хотя стандарт не обновлялся с 1994 года, это стабильность — фундамент не меняется, а пользовательские расширения не ломаются. Недостаток библиотек компенсируется возможностью LLM писать или портировать код самостоятельно, а сложность поиска инженеров не проблема: способность быстро учиться важнее знания конкретного языка, и обучение Common Lisp в интервью отбирает тех, кто будет расти в экспертизе. Таким образом, Common Lisp предоставляет уникальное сочетание скорости итерации, безопасности экспериментов и выразительности, усиливаемое возможностями современных LLM.
Комментарии (199)
Преимущества Common Lisp для LLM‐агентов не уникальны: другие языки (Clojure, Rust, Go, Python) тоже позволяют быстро перезапускать код, а сильные типы и статический анализ часто дают более надёжную обратную связь. Участники отмечают проблемы макросистем Lisp, необходимость учитывать токен‐эффективность и архитектурные решения, а также предлагают измерять производительность агентов в разных языках. Большинство комментаторов согласны, что LLM‐модели работают с любыми языками, а выбор определяется доступностью библиотек и обучающих данных. Для объективной оценки стоит проводить кросс‐языковые бенчмарки, измеряя количество токенов, число повторных попыток, время до рабочей версии и объём ручных правок. Опыт @clx75 показывает, что в Clojure можно достичь похожего «живого образа» через nREPL и clj‐reload, позволяя агенту быстро менять код и перезапускать тесты. По мнению @alexjurkiewicz, современные скриптовые языки (Python, Node) тоже умеют останавливать выполнение на исключениях без развёртывания стека, что уменьшает уникальность Lisp в этом аспекте. @peri-cl указывает, что LLM‐модели часто падают при работе с макросами Lisp, генерируя синтаксически неверные формы с неправильным числом скобок. Как отмечает @onion2k, экономия токенов зависит больше от архитектурных решений и модульности кода, чем от самого языка. По мнению @WalterBright, широкое использование макросов в Lisp приводит к созданию «ад‐хок» DSL, что усложняет поддержку и снижает привлекательность языка. @drwallace напоминает, что в Common Lisp можно определять собственные типы, тем самым частично компенсируя отсутствие статической типизации. @artpar считает, что «медленная часть» разработки — не написание кода, а проектирование и мышление, поэтому ускорение за счёт Lisp не решает главную проблему. @soltanov советует сравнивать LLM‐агентов в разных языках, фиксируя метрики токенов, количество ошибок и время до решения. @sidkshatriya предпочитает, чтобы язык выявлял ошибки на этапе компиляции, а не в рантайме, считая «возобновление» программы после правки несущественным преимуществом. @Karrot_Kream предлагает комбинировать ядро на C или Rust с Lisp‐подобным языком Janet для быстрой итерации, используя живой образ в LLM‐контексте.
We ported the original Doom to SQL 🔥 Горячее
SQLDoom переносит оригинальный Doom 1993 года полностью в SQL: логика игры и рендерер реализованы как запросы к базе данных CedarDB. Игровой цикл работает с оригинальными 35 FPS, а рендерер генерирует полный буфер кадра 320×200 пикселей до 60 Гц на ноутбуке. Python используется только для обработки ввода, синхронизации таймингов и вывода полученного битмапа. Поддерживается мультиплеер — deathmatch на четырёх слотах, доступный через публичные серверы в ЕС и США. Для рендеринга используется BSP-дерево, как в оригинале, что позволяет корректно упорядочивать глубину, накладывать текстуры, обрабатывать наклонные стены и переменную высоту пола — в отличие от предыдущего проекта DOOMQL, основанного на упрощённом рейкастинге. Хотя SQLDoom медленнее нативного бинарника из-за множества уровней абстракции, разрыв оказался неожиданно мал благодаря оптимизатору CedarDB и JIT-компиляции в LLVM. Для запуска требуется CedarDB Community Edition, Python с psycopg2 и pygame, а также IWAD-файл Dooma (shareware-версия доступна через пакетный менеджер). Исходный код доступен на GitHub, а играть можно прямо сейчас via веб-интерфейс, где при заполненных слотах игрок помещается в очередь, но может продолжать исследовать игровое состояние через SQL-запросы. Проект демонстрирует, насколько далеко можно зайти, используя СУБД не только для хранения данных, но и как платформу для выполнения сложных вычислений в реальном времени. John Carmack называют гением за то, как он извлёк максимум из ограниченного железа 1993 года — подход, который теперь находит отклик даже в неожиданных средах вроде SQL.
Комментарии (52)
SQL способен реализовать сложную игровую и бизнес‐логику: 5900 строк SQL заменяют ~9000 строк C, обеспечивая полноценный цикл рендеринга и физики. Хранение состояния в таблицах гарантирует атомарность и согласованность, устраняя потерю данных. Однако при большом числе игроков возникают проблемы с блокировками и масштабируемостью. Отладка хранимых процедур, отсутствие контроля версий и культурные барьеры делают такой подход спорным в реальных проектах. В полупроводниковом производстве процедуры использовались для ежедневного изменения правил сотнями пользователей на копии продакшн‐БД, но копировать продакшн‐БД ежедневно нереально для крупных систем из‐за объёма данных. Современные альтернативы (например, функции SpacetimeDB) и ограниченный набор стандартных функций в MSSQL снижают привлекательность чистого SQL для сложной логики. Рекомендуется держать меняющуюся и сложную бизнес‐логику в приложении, а в базе оставлять только ограничения и простые процедуры как резерв. Использование планировщика запросов как конечного автомата считается инженерным злоупотреблением, несмотря на сокращение кода. Выбор места логики часто определяется корпоративной культурой, а не только техническими факторами: многие избегают «болота» SQL‐логики. Существуют языки, компилирующиеся в SQL, которые можно использовать для реализации алгоритмов внутри БД. Проект уже развернут на EU и US серверах, подтверждая практическую возможность мультиплеерного режима в SQL‐базе. Опыт разработки многопользовательских игр с атомарными транзакциями показывает, что паттерн работает при правильном решении проблем конкурентного доступа (см. Designing Data‐Intensive Applications).
PS5 Relapse Exploit 🔥 Горячее 💬 Длинная дискуссия
Эксплойт Relapse-Exploit позволяет выполнить произвольный код на консолях PlayStation 5 с прошивками от 7.00 до 13.60 включительно. Для использования достаточно изменить Primary DNS в настройках сети на 45.56.67.85 и открыть веб-страницу эксплойта через браузер PS5 либо запустить локальный сервер с serve.py. После успешной эксплуатации загружаемый ELF-пайлоад становится доступным через порт 9021, а исходные бинарники сохраняются в директории payloads/.
Эксплойт состоит из двух этапов: браузерный использует утечки информации в JSC и несоответствие в пуле объектов structured clone для повреждения typed array, что приводит к выполнению кода в рендерере; ядерный этап сочетает утечку адреса с гонкой условий типа use-after-free в aio_multi_wait для достижения чтения и записи в ядре. Из-за возможной нестабильности Webkit может потребоваться несколько попыток перезагрузки страницы, а ядерный эксплойт иногда приводит к панике системы — в таких случаях рекомендуется перезагрузить консоль перед повторной попыткой. Проект создан для образовательных и исследовательских целей, его использование на чужих устройствах или для обхода защиты запрещено. Среди авторов: ntfargo, ufm42, Sonic_Iso, Jordy, Dr. Yenyen, TheFlow и другие.
Комментарии (177)
Эксплойт позволяет выполнить произвольный код на PS5, но полноценный Linux пока невозможен без доступа к гипервизору. Уязвимость исправлена в прошивке 14.0, поэтому новые консоли защищены. Эксплойт работает на уровне ядра, но запуск Linux требует гипервизорного доступа, которого пока нет. Sony продаёт консоли в убыток и зарабатывает на играх, поэтому не заинтересована в открытии системы для пользовательского ПО. Уязвимость, вероятно, связана с JavaScriptCore в WebKit; Sony может отключить JIT в прошивке 14.0, чтобы снизить риск атак. Обсуждаются применения: медиа‐ПК, запуск Steam‐игр через проекты типа AnyPS5, но есть ограничения по контроллеру и стоимости. Память и хранилище ограничены 128 ГБ, что делает консоль неудобной для современных игр объёмом 50‐100 ГБ. Для использования рекомендуется запускать ELF‐payload через порт 9021 с локальным сервером serve.py, как в оригинальном гиде. Некоторые считают, что Linux на PS5 станет возможным благодаря усилиям сообщества и аналогам вроде Apple Game Porting Toolkit. Есть споры о конкуренции с Apple TV: один считает его способным запускать 4K‐игры, другой указывает на малый объём хранилища и отсутствие контроллеров. Для экспериментов советуют изучить проект ProsperoEden — порт Switch‐эмулятора на PS5, позволяющий запускать некоторые игры без полного доступа к системе.
Jev in 25 Lines of Python 🔥 Горячее 💬 Длинная дискуссия
Jev — это простой способ классификации текста с использованием локальной GGUF-модели за 25 строк Python. Автор демонстрирует, как загрузить модель Qwen3-0.6B-GGUF через llama-cpp-python, сформировать промпт с вариантами ответов (A/B/C → Legitimate/Spam/Phishing) и извлечь логиты для последнего токена. Затем логиты преобразуются в вероятности через softmax-подобную операцию: вычитается log-sum-exp для получения логарифмических вероятностей, после чего экспонента даёт нормализованные вероятности. В примере модель оценивает email как фишинг с вероятностью 88.5%, спам — 8.4%, легитимный — 3.1%. Автор подчёркивает, что это пародия на концепцию «Jev» как System One модели: здесь нет вызова API, генерации синтетических данных, обучения с RLCD или калибровки — только локальная инференция. Преимущества подхода: скорость, конфиденциальность (данные не уходят с устройства) и простота. В конце отмечается, что настоящие открытые реализации Jev доступны в проектах OpenJev, openjev-sglang и других, а код NobodyWho открыт и поддерживается сообществом.
Комментарии (189)
Практическая ценность Jev сомнительна: его функциональность воспроизводится стандартными методами структурированного вывода, а преимущества в скорости и точности не подтверждены бенчмарками и графиками латентности. Утверждения о новой архитектуре не соответствуют реальности, так как Jev лишь применяет существующие методы (логиты и softmax) к GGUF-модели. Использование логитов чат-моделей для классификации ненадежно, так как они обучены генерировать прозу, а не выбирать токены из фиксированного набора. Метод, используемый в Jev, утратил актуальность для современных фронтальных моделей (например, GPT-4o). Для повышения точности и надежности рекомендуется: — использовать структурированный вывод (JSON-схемы) для обеспечения типобезопасности и исключения галлюцинаций; — размещать варианты ответов перед текстом анализа и повторять вопрос для лучшей калибровки; — применять DSPY для получения типобезопасной классификации с поддержкой рассуждений; — для локальных задач использовать Laya или Qwen 3.5 0.8B с выводом в JSON (скорость до 500 мс на Mac); — для максимальной эффективности использовать BERT или малые специализированные модели вместо адаптации LLM 0.6B. Jev-подобный подход может быть полезен как роутер промптов для распределения запросов между Haiku, Opus и Sonnet. Критикуется подача продукта: пост выглядит как пародия, используемая для скрытой рекламы. Также оспаривается тезис о «системе мышления 1», так как автоматизированные логические решения без «мышления» являются нормой программирования.
OpenAI GPT–6 Astra breaks Enigma message that has resisted solution since 2005 🔥 Горячее 💬 Длинная дискуссия
GPT–6 Astra самостоятельно взломала немецкое армейское шифрование Enigma сообщение MVUEH от 10 июля 1941 года, которое оставалось неразгаданным с 2005 года. Сообщение, длиной 82 буквы, было зашифровано с использованием уникального ключа: порядок роторов 253 (в отличие от 512 у других сообщений того дня), отличающиеся соединения штекерной панели и положения кольц. Расшифрованный текст почти идентичен тексту сообщения SIPVX (Nr. 173), отличаясь лишь из-за ошибки при шифровании слова «Bitte» (получилось «Btte») и повторения подписи «Waschbusch» в SIPVX. Ключевым фактором стало обнаружение оборота левого ротора на 72-й букве — редкое явление, усложняющее криптоанализ, а также ошибки в транскрипции шифротекста из исходного документа.
Для взлома GPT–6 Astra использовала клич «ROSENOW ROSENOW» (повторяющееся название места), разработала собственные эмуляторы Enigma на Python и C++, а также реализовала алгоритм типа Bombe для перебора ключей. Помимо криптоанализа, ИИ проявила навыки архивного исследователя: в её логах обнаружены ссылки на конкретные фонды Bundesarchiv (RS 3–3/20a и RS 3–3/63b), связанные с коллекцией радиосообщений подразделения Nachschubführer SS-Totenkopf, что указывает на самостоятельный поиск и анализ первоисточников. Хотя доступ к этим файлам на сайте Crypto Cellar Research отсутствует, точность ссылок и глубина проработки свидетельствуют о высоком уровне автономной работы. Как отметил автор, достижение, которое заняло бы у человека недели или месяцы, было выполнено за два дня.
Комментарии (390)
Обсуждение подчеркивает, что успех Astra связан не с автономным мышлением, а с использованием существующих симуляторов Enigma, человеческим вовлечением и ошибками в исходных данных, что ставит под сомнение преувеличенные заявления о самостоятельном взломе. Tantalor указывает, что разработка Python/C++ симулятора Enigma — не новация, а широко доступный код, и вопрос о реальном вкладе Astra остается открытым. Nexawave-ai и partiallypro задают вопрос о применимости метода к нерасшифрованным шифрам Зодиака, ставя под сомнение уникальность достижения и указывая на потенциальную универсальность подхода. 125ah утверждает, что Astra не изобрела новый метод, а использовала открытые исходники симуляторов Enigma и Bombes, обученные на больших данных, делая успех результатом финансовой мощи, а не интеллекта модели. Trixn86 критикует отсутствие прозрачности: без публикации промптов, промежуточных шагов и истории взаимодействия утверждение о взломе выглядит необоснованным, возможно, основанным на простом запуске готовых инструментов. Ck2 предлагает проверить, сможет ли ИИ, обученный только до 1903 года, прийти к E=mc2, чтобы отличить истинное творчество от статистического подбора — ставя под сомнение способность LLM к оригинальному научному открытию. Threethirtytwo отвергает достижение как «стохастическое пародирование», утверждая, что модель воспроизводит шаблоны из обучающих данных, а не решает задачу с пониманием. Jtrn и podgorniy подтверждают, что ключ к успеху — человеческий вклад: исследователь Leffer определил редкую особенность ключа (переворот левого ротора на 72-й букве), что позволило Astra сузить пространство поиска. Mmsc и podgorniy приводят точный расшифрованный текст и объясняют типичные ошибки операторов (BTTE→BITTE, WASCHBBSCH→WASCHBUSCH, X как разделитель), подтверждая реалистичность результата и контекстную осведомленность модели. Podgorniy демонстрирует воспроизводимость: Gemini 3.8 Flash расшифровал сообщение за 45 минут без ручной настройки, указывая, что задача доступна современным LLM при правильном промпте. Ricksunny интересуется, как Astra проверяла, что текст — немецкий, поскольку стандартные методы криптоанализа неочевидны для неспециалистов — ключевой элемент для оценки надежности. Sophira задает вопрос: возможно ли, что ключ неверен, но результат выглядит правдоподобно — поднимая проблему ложных срабатываний при использовании LLM для криптоанализа без строгой верификации. BubbleRings выражает тревогу по поводу упоминания «частной коллекции» в статье, предполагая, что Astra могла получить доступ к неопубликованным данным, что ставит под сомнение этичность и прозрачность метода.
Can gzip be a language model? 🔥 Горячее 💬 Длинная дискуссия
gzip может работать как простая языковая модель, используя принцип эквивалентности сжатия и предсказания: то, что хорошо сжимается, считается предсказуемым. DEFLATE, лежащий в основе gzip, ищет повторяющиеся последовательности в скользящем окне 32 KiB и кодирует их как короткие ссылки вместо literal-байтов. Чем больше продолжение текста совпадает с ужеseen данными, тем меньше оно сжимается — это и служит мерой его «вероятности». Для генерации текста автор создал утилиту gzipt, которая использует beam search: на каждом шаге рассматривает множество возможных продолжений, оценивает их по длине сжатия контекста + кандидата и сохраняет только лучшие варианты. Чтобы избежать зацикливания на недавнем выводе, в контекст учитывается только последний tail байт сгенерированного текста, а не вся история. Корпус (например, tiny Shakespeare) загружается в окно gzip перед началом, чтобы модель «знала» стилистические и лексические паттерны. Хотя вывод не идеален и содержит артефакты, он демонстрирует явное знание структуры исходного текста — gzip воспроизводит типичные фразы, имена и даже псевдо-диалоги, что удивительно для алгоритма без обучения или параметров. Это подтверждает теоретическую связь между сжатием и моделированием языка: даже простой компрессор может имплицитно捕捉 статистические закономерности в данных. Код открыт и написан на чистой Python с использованием zlib.
Комментарии (161)
gzip можно использовать как простой классификатор: сравнивая размер сжатого теста с размерами файлов, сжатых на тематических корпусах. Это дополняет статью практическими примерами. Ограничения gzip: поиск оптимального продолжения ограничен размером окна и отсутствием глобального поиска; beamsearch не гарантирует глобальный optimum. У gzip нет механизма внимания, поэтому его предсказательная способность ограничена узким контекстом по сравнению с LLM. Вопрос о том, насколько эффективно LLM может выступать в роли компрессора, остаётся актуальным. Связь между сжатием и предсказанием подтверждается работами: Hutter prize, проект ts_zip, утверждение, что языковое моделирование эквивалентно компрессии (теоретическая основа), а также zip2zip — гибридный подход, использующий содержимое zip‐архивов как адаптер для вывода модели. Эксперименты с другими компрессорами (bzip2, zstd) показали бессмысленные последовательности при генерации текста. Аналогия с видеокодеками: они кодируют смысл (движение объектов) и могут рассматриваться как модели предсказания. Язык — это lossy‐компрессия, тогда как gzip — lossless; поэтому прямое сравнение их как моделей имеет фундаментальные ограничения. gzip лишь частично отражает свойства языковой модели и существенно уступает ей по выразительной способности.
Kev: Tiny Jev-like family of decision models built on top of Qwen3.5 🔥 Горячее 💬 Длинная дискуссия
Kev — это семейство небольших моделей принятия решений, построенных на базе Qwen3.5 и вдохновлённых архитектурой Jev. Доступны версии 0.8B, 4B и 9B параметров, которые можно запускать локально или дообучать под свои задачи. Модели поддерживают три типа запросов: да/нет (noul), множественный выбор (choice) и оценка (score), все они работают с одним входным текстом, но не видят ответов друг друга. API совместим с TypeSafe System One, что позволяет использовать их Python SDK с локальным сервером.
Модели работают на CUDA, ROCm и Apple Silicon (через MLX); 4B и 9B версии помещаются в 32 ГБ памяти Mac. Есть веб-игровая площадка для тестирования ввода и наблюдения за влиянием порядка вариантов на ответы, доступная в Hugging Face Spaces без установки. Для запуска требуется Python 3.12–3.13 и менеджер пакетов uv. В репозитории есть код для обучения, наборы данных для оценки и тесты, включая проверку через TypeSafe SDK. Лицензия — Apache-2.0, как и у базовых моделей Qwen.
Комментарии (199)
Kev и подобные модели применяются в локальных задачах классификации и принятия решений, но их уникальность по сравнению с Jev ставится под сомнение из-за различий в обучении и качестве. Для классификации с малым числом примеров (50–100) рекомендуется использовать Codex/Claude для создания эмбеддингов + логистической регрессии: модель <1MB, обучение на CPU за 5 минут, точность 95%, инференс <100мс, данные остаются локально. Jev-подобные модели на Qwen3.5 не считаются настоящими Jev, так как Jev обучен на RLCD, а Qwen — на RLHF, что влияет на поведение при принятии решений. Jev-подобные модели могут автоматизировать стилистические правила в фронтенде (React, CSS), устраняя дрейф и дублирование, сокращая рутину разработчиков. Модели размером 0.8B–9B подходят для встраивания в игры как «питомцы»: обработка голосовых команд через STT и локальный инференс для выбора действий NPC. Для фильтрации спама такие модели могут заменить 27B-модели, снижая вычислительные затраты при сохранении высокой точности. На Gemma 4 (12B) достигнута задержка 220 мс на шаг в игре Snake на старом ПК, что указывает на потенциал снижения задержки на более мощных машинах. Прокси-слои между Jev и другими API (например, Frontier) сокращают количество вызовов инструментов на 60%, оптимизируя стоимость и производительность. Jev-подобные модели не имеют принципиального отличия от обычных классификаторов, так как их специфичность определяется обучающими данными, а не архитектурой; открытые альтернативы пока уступают по качеству. Для локального использования моделей с ограниченным knowledge cutoff требуется постоянное дообучение или регулярная смена версий, иначе они устаревают. Jev-подобные модели могут использоваться для автоматической разметки данных, но сравнение их качества с Kev в этой задаче пока неясно. Быстрое появление открытых альтернатив Jev в течение недели после релиза свидетельствует о живом интересе сообщества к простым, локальным моделям принятия решений. Создание Jev-подобных моделей на базе Qwen3.5 может упростить внутреннюю логику маршрутизации в системах, но требует проверки надёжности на критических путях.
AX – Google’s Open Agentic Orchestrator 🔥 Горячее 💬 Длинная дискуссия
AX — это декларативная платформа для запуска агентных задач в масштабе, построенная на Agent Substrate. Она изолирует задачи в sandbox-окружениях, управляет их жизненным циклом и позволяет запускать миллиарды одновременных агентов на одном кластере благодаря лёгким актёрам и плотному мультиплексированию ресурсов. Каждая задача описывается в YAML-файле (например, task.yaml), где указываются workspace (с Git-репозиториями или генеративным описанием окружения) и цель задачи. После применения конфигурации через ax apply система создаёт workspace и задачу, после чего можно отслеживать её статус, подключаться по SSH, выполнять команды, приостанавливать и возобновлять выполнение — всё с субсекундным временем восстановления из спящего режима.
AX специально разработан для агентных workloads, которые отличаются от микросервисов и batch-задач: они сохраняют состояние, делают вызовы к моделям и внешним инструментам, могут простаивать ожидая ответа и тратят ресурсы, если не управляются. Платформа решает эту проблему через четыре примитива: задачи, workspace, сетевые политики и модели, обеспечивая декларативное управление. Благодаря генеративным возможностям, окружение можно настроить просто описав его на английском (например, «Set up a Python 3 development environment»), после чего AX сам подготовит его. Это делает AX идеальным для исследователей и разработчиков: от интерактивного программирования и Jupyter-ноутбуков до масштабного обучения с подкреплением и оценки агентов в воспроизводимых песочницах. AX минимален, эргономичен и ориентирован на joyful workflow — чтобы фокус оставался на исследовании, а не на инфраструктуре.
Комментарии (242)
Обсуждение ставит под сомнение простоту AX: требуется полный кластер Kubernetes, контейнерный реестр и доступ к Agent Substrate API, что делает его менее доступным. AX дублирует возможности Kubernetes, создавая избыточный слой и заставляя писать сложные YAML без уникального функционала. Демонстрация показывает лишь паузу и возобновление задачи, не раскрывая реальных сценариев применения. Главная сложность в оркестрации агентов — определение их состояния и автоматическое реагирование, требующее надёжного мониторинга. У опытных пользователей уже есть аналогичные решения (Mastra, Clrk), предоставляющие контроль над сетью и изоляцию, снижающие необходимость в AX. Некоторые предпочитают аппаратную сегрегацию (мини‐ПК) для изоляции агентов. Название «Google’s AX» вводит в заблуждение — нет официальной поддержки Google или DeepMind. Пользователи недовольны объёмными YAML‐конфигами и предлагают более простые способы описания задач. Инструменты вроде Scion, LangGraph или kagent предлагают более зрелый и интегрируемый подход. Agent Substrate уже покрывает изоляцию, ресурсное планирование и сетевой контроль, делая эти функции базовыми для платформ агентов. Отсутствуют публичные бенчмарки и сравнения производительности, требуются эмпирические данные. Экосистема фрагментирована: каждый разрабатывает собственный фреймворк, что приводит к повторному изобретению решений.
I built non-autoregressive decision models with RL a year ago 🔥 Горячее 💬 Длинная дискуссия
Laya — это семейство открытых моделей для мгновенных структурированных решений (System 1), созданное как альтернатива генеративным LLM для простых классификаций. Оно использует двунаправленные энкодеры и обучение с подкреплением (RLCD) для выдачи честных, калиброванных вероятностей по заданным схемам — без генерации текста. Модели работают за 32.8 мс на одном GPU (7.2 мс/вопрос в батче), что в 6–8 раз быстрее, чем проприетарный аналог Jev от TypeSafe AI, и поддерживают более 100 языков.
Автор разработал похожую идею ещё в марте 2025 года, опубликовав статью, веса, датасет и PyPI-пакет, но позже увидел, как TypeSafe AI представила почти идентичную концепцию под названием Jev — без открытых весов, датасетов или технических статей, но с коммерческой моделью ($0.042 за млн токенов, ~150 мс отклика). В ответ он создал Laya: полностью открытую, быструю и мультиязычную систему для задач вроде маршрутизации тикетов, определения срочности, обнаружения фишинга или оценки риска оттока — всё с честными вероятностями, которые можно использовать напрямую в коде. Все ресурсы доступны на Hugging Face, GitHub и PyPI под лицензией Apache 2.0.
Комментарии (281)
Laya — практичная открытая альтернатива Jev для классификации, но требует дообучения (результат 0.766 после дообучения, базовая модель ~0.35), в отличие от Jev, который работает в zero-shot. Эффективность Laya зависит от дообучения, а не от нулевого шота. Jev удобнее для разработчиков благодаря API и простой настройке; Laya сложна в настройке и не имеет API. Laya использует модели с контекстом 512–1024 токенов, тогда как Jev работает с 32k — критичное ограничение для сложных задач. GLiNER (2023) уже реализовывал похожую архитектуру, что ставит под сомнение новизну Laya. Jev позиционируется как «System One» и «не галлюцинирует», но это маркетинг: обе модели основаны на BERT, разница — в упаковке, а не в технологиях. Laya не может считаться «открытой версией Jev» из-за использования крошечных моделей против позиционирования Jev как «frontier intelligence». Laya полезна для быстрой хостинга модели классификации, но требует дообучения, делая её менее «drop-in», чем Jev с API. Разработчики предпочитают Jev из-за готового API и социального доказательства — не хотят тратить время на сбор данных и инфраструктуру. BERT использовался для подобных задач до Jev и Laya — это переупаковка известных подходов. Для признания открытой работы нужны инструменты, API и документация, как у Jev. Laya может работать на MacBook Pro M5 с 48 ГБ ОЗУ, но лучше использовать облачные GPU (Lambda Labs, RunPod). Подходит для классификации тикетов и логов ошибок, но не для сложных сценариев с рассуждением — там нужны LLM. Некорректно сравнивать Laya и Jev по метрикам, если Jev zero-shot, а Laya требует дообучения. В здравоохранении и с чувствительными данными Laya предпочтительнее — можно хостить локально, Jev требует отправки данных в облако. Laya — не прорыв, а напоминание, что для многих задач достаточно простых быстрых моделей, а не генеративных LLM. Утверждение, что Jev «не галлюцинирует», — маркетинговая уловка: негенерирующие модели не могут галлюцинировать в классическом смысле.
German Rheinmetall open-sources its Battlesuite connected weapon system protcol 🔥 Горячее
onboardapi — это библиотека и middleware для надёжного обмена данными между сенсорными системами и программными компонентами. Она основана на стандарте DDS (Data Distribution Service) от OMG и использует ddkit SDK, обеспечивая низкую задержку и высокую надёжность в сложных аппаратно-программных средах. Благодаря DDS XTypes и XCDR2 кодированию библиотека сохраняет обратную совместимость, позволяя разным версиям ПО взаимодействовать даже при эволюции данных модели.
API написан на C++, но поддерживает мультиязычную интеграцию через обёртки для Java, C#/.NET и Python. Документация включает концепции клиент-сервисной архитектуры, примеры реализации на всех поддерживаемых языках, инструкции по конфигурации, описание интерфейсов и модели данных, а также журнал изменений. Лицензирование разделено: описания интерфейсов распространяются под EPL v2.0, а runtime-библиотеки — под проприetary EULA-RME-SDK-1.0 от Rheinmetall. Это делает onboardapi подходящим для промышленных и defence-приложений, где критичны совместимость, производительность и долгосрочная поддержка.
Комментарии (108)
DDS считается тяжёлым для встраиваемых систем, но существуют лёгкие реализации с пулами памяти и альтернативные протоколы (Zenoh, UDP). Публикация только документации, а не кода, упрощает экспортный контроль (ITAR) и является типичным подходом в оборонных проектах. Есть разногласия: одни утверждают, что Rheinmetall открыла исходники, другие указывают, что на GitHub доступны только документы — код не опубликован. Качество кода вызывает вопросы: в примерах использован std::endl, что снижает производительность; рекомендуется заменить на '\n'. Библиотека соотносится с существующими военными стандартами (TMS, DIS, HLA, OMS, GVA) и ROS 2 — подобные решения давно применяются в обороне. Безопасность не должна зависеть от скрытности кода; открытая спецификация позволяет большему числу специалистов проверять её на уязвимости. Открытые протоколы для военной техники (например, MAVLink) существуют более десяти лет, поэтому новизны решения сомнительна.
Astra for Coding: Why Are We Doing This Again? 🔥 Горячее 💬 Длинная дискуссия
Astra — впечатляющая модель, способная к длительным задачам, работе с изображениями и сложными темами, но для практической инженерии ПО она пока не подходит. Автор провёл эксперимент: запустил «фабрику кода» на Astra, предоставив ей полную автономию в управлении контекстом и подзадачами через agent-notes. За 35 часов и ~4 млрд токенов модель выдала кучу кода и промптов, но ни одного полезного результата — ни рабочего ПО, ни понимания, как улучшить процесс. Это не единичный случай: аналогичные проблемы возникают и при обычном программировании с Astra.
Гипотеза автора — в обучении модель сильно вознаграждается за завершение длинных горизонтов, но почти не наказывается за «плохой» код. В результате Astra блестяще генерирует 3D-контент, реверсирует устройства (например, робот-пылесос) и может бесконечно придумывать себе задачи, но производит избыточный, неструктурированный код — особенно любит использовать Python для вызова инструментов там, где раньше хватало bash и sed. Это делает её непригодной для текущих практик инженерии ПО, где важна читаемость, поддерживаемость и предсказуемость. Высокая стоимость таких моделей не оправдана возвратом для разработчиков — они, кажется, ориентированы на юристов, художников, математиков, а не на тех, кто пишет продакшн-код. Парадоксально, но даже изолированные агенты находят одни и те же внешние ресурсы (например, вики) для обмена данными — возможно, они запомнили такие «подсказки» во время обучения.
Комментарии (339)
Astra пока непрактична для реального программирования: генерирует низкокачественный, трудно читаемый код, требует огромного количества токенов и постоянного человеческого контроля. Успешные сценарии ограничиваются очень чётко сформулированными задачами или небольшими прототипами. Модель регулярно выдаёт «шитовый» код, который сложно менять и отлаживать, замедляя разработку и увеличивая нагрузку на ревью. Часто генерирует громоздкие bash‐ и python‐скрипты с множеством флагов, делая их почти нечитаемыми. Для приемлемого результата необходимы очень детализированные эпики и ограничения — иначе модель добавляет лишнее («скребёт» область задачи). Смещение RLHF в сторону награждения за выполнение долгосрочных задач, а не за качество кода, ухудшает читаемость и увеличивает ошибки. Рекомендуется явно указывать детерминированные инструменты (sed, простые python‐скрипты) и запрещать автоматическое создание сложных bash‐команд. Следует ограничивать длительность «ходов» модели 10‐15 минутами, чтобы избежать бесконтрольного расхода токенов и накопления ошибок. Токен‐расходы огромны: в экспериментах превышено 100 000 токенов без ощутимого прогресса, что делает модель экономически невыгодной. Модели эффективны лишь в узкоспециализированных задачах или быстрых прототипах, но не справляются с крупными инженерными пайплайнами. Оптимальный подход — гибридный: использовать модель для генерации небольших фрагментов, полагаясь на человеческий ревью и интеграцию. Astra и Fable похожи на «идиота‐саванта»: способны решить сложные задачи, но делают это непредсказуемо и с плохой кодовой базой. Для более надёжного результата стоит рассмотреть альтернативные модели, такие как Luna или Sol, которые показывают лучшую читаемость и экономию токенов. Модели склонны к «scope creep», постоянно добавляя полировку и дополнительные подпроцессы, что удорожает и замедляет разработку. Необходимо явно ограничивать использование подагентов и автоматических генераций кода, задавая чёткие границы задачи. Наличие человека в цикле остаётся обязательным: без него текущие модели не способны обеспечить надёжный и поддерживаемый код.
Pre-Release of Polars 2.0 🔥 Горячее
Polars 2.0 вводит значительные изменения по умолчанию, направленные на улучшение производительности и надёжности. Главное нововведение — LazyFrame.collect() теперь использует потоковый движок (streaming engine) по умолчанию, что обещает до 5-кратного ускорения и существенное снижение потребления памяти. Однако потоковый движок не гарантирует сохранения исходного порядка строк при операциях вроде join, group_by и unpivot. Для восстановления порядка нужно явно указать maintain_order=True (или maintain_order="left" и т.д.). Пользователи, предпочитающие старое поведение, могут вернуть движок in-memory через pl.Config.set_engine_affinity("in-memory") или указать engine="in-memory" в конкретном запросе.
Помимо этого, Polars стал строже в обработке данных, чтобы выявлять ошибки на ранних этапах. Например, выражение is_in больше не выполняет небезопасное приведение типов: если сравниваются Int64 и Float64, и целое число выходит за пределы точного представления в float64 (как 9007199254740993 > 2^53), теперь возникает ошибка вместо тихого округления и неверного результата. Также удалены устаревшие API: метод melt() заменён на unpivot(), а параметр join_nulls в join() переименован в nulls_equal. Для миграции предоставлен подробный гайд, а удалённые функции теперь вызывают специфические исключения (AttributeRemovedError, ArgumentRemovedError) с указанием новых альтернатив. Релиз-кандидат доступен через pip install polars==2.0rc1.
Комментарии (106)
Обсуждение дополняет статью практикой и спорами вокруг Polars. **Дефолт maintain_order=False** вызывает споры: trombonechamp предупреждает о скрытой недетерминированности в научных пайплайнах, hopfenspergerj и nemothekid считают, что порядок стоит задавать явно (как в SQL). Для надёжности рекомендуют указывать сортировку через .sort() или .with_row_count(), особенно в аналитике, где важен порядок строк. **Типизация и планирование.** Polars строже следит за типами на этапе планирования, что снижает число ошибок в рантайме по сравнению с pandas. Лучше обрабатываются вариативные данные — разные типы колонок и пропуски. **Потоковый движок.** Пользователи расходятся во мнениях: arn3n считает, что построчная обработка хуже масштабируется, другие указывают на внутреннюю параллелизацию Polars, сглаживающую разницу. В Polars 2.0 движок позволяет обрабатывать данные out‐of‐core, экономит память и ускоряет операции до 5 раз по практическим наблюдениям. **Терминология.** Часть пользователей считает термин «недетерминированный» неточным — порядок может быть предсказуемым, но не зафиксированным; другие всё равно видят в этом источник скрытых багов. **Семантическое версионирование.** Сообщество (benrutter и др.) поддерживает идею, что мажорные версии должны использоваться для удаления устаревшего API, а не только для нового функционала. **Советы по миграции.** - Использовать .cat.to(dtype) и .cat.physical() вместо устаревшего синтаксиса (bbstats). - Явно проверять типы колонок и применять Polars‐специфичные методы, чтобы не зависеть от смены дефолтов. - Включать streaming engine для больших наборов данных. **Итог.** Переход на Polars оправдан, когда важны стабильность и предсказуемость продакшна, а не только удобство синтаксиса.
The ChatGPT/Codex app bundles a full copy of LibreOffice 🔥 Горячее 💬 Длинная дискуссия
OpenAI Codex (переименованный в ChatGPT Desktop) хранит в ~/.cache/codex-runtimes/codex-primary-runtime 1,7 ГБ данных, включая полные установки Python и Node.js, а также нативные бинарники Poppler, git и LibreOffice. Последний занимает 429,7 МБ в виде libreoffice-headless, что позволяет приложению обрабатывать документы без графического интерфейса. Эти компоненты находятся в подпапке dependencies, а их использование настраивается через навыки (skills) в plugins/documents, где указано, как вызывать нужные бинарники для работы с файлами. Такой подход делает Codex самодостаточным инструментом для работы с кодом и документами, избавляя пользователя от необходимости отдельно устанавливать зависимости. Включение LibreOffice указывает на фокус на обработке офисных форматов (DOCX, ODT и т.п.) напрямую из кэша приложения. Всё это подтверждает стратегию глубокой интеграции системных инструментов внутрь desktop-клиента для расширения его возможностей за чистый LLM-интерфейс.
Комментарии (153)
LibreOffice включён в ChatGPT Desktop для надёжной обработки устаревших форматов (DOCX, XLSX) в headless-режиме — по опыту @esperent, альтернативы такой надёжности не дают. Размер зависимостей (1.7 ГБ) воспринимается как избыточный bloat (@cpursley, @pseudosavant); @quotemstr предлагал загрузку по требованию, но @esperent полагается на гарантированную доступность. @jav-8448 и @gfalcao указывают на отсутствие упоминания лицензий в приложении, что ставит под вопрос соблюдение MPL 2.0; @pocksuppet считает, что явного требования к этому нет. Среди предложений: переписать LibreOffice на Rust (@devy), использовать Vespper.com для редактирования DOCX (@topaztee). Приложение не проверяет системные бинарники (@mirzap), не предоставляет доступ к транскрипции аудио (@Lucasoato), лишено глобального горячего ключа (@RestartKernel) и нагружает CPU на Windows (@robomartin). Включение связано с ChatGPT Work — продуктом для генерации и редактирования документов (@zitterbewegung, @wilg).
Breaking Claude Code Opus 5 Auto Mode 🔥 Горячее
Несмотря на заявления Anthropic о 0,00% успешности атак через инъекции в Claude Code Opus 5 в Auto Mode, исследователь продемонстрировал успешную атаку с вероятностью 60–80%. Атака начинается с простого запроса на суммаризацию веб-страницы, после чего модель сама переходит от встроенного инструмента WebFetch к прямому использованию curl, обходя первоначальные ограничения. Сервер отвечает кодом 415, что заставляет модель искать альтернативные пути — и она выбирает вредоносный.
Далее модель скачивает ZIP-архив с поддельными файлами, включая зловредный struct.py, который перекрывает стандартную библиотеку Python. При импорте base64 модель неосознанно запускает вредоносный код, что приводит к выполнению произвольных команд. Ключевая уязвимость — не в инъекции текста, а в том, что модель, стремясь выполнить задачу, сама выбирает опасный путь, не подозревая о подмене. Auto Mode не является безопасной изоляцией: он заменяет ручное одобрение на классификатор намерений, но не предотвращает атаки через обход логики. Без песочницы и мониторинга даже продвинутые модели уязвимы.
Комментарии (113)
Атака не является классической prompt injection, а эксплуатирует уязвимости среды выполнения: Python позволяет переопределять стандартные библиотеки через файлы в текущей директории (по умолчанию нет защиты, флаги -I и -P не включены). Показатели успешности 60–80% не противоречат заявлению Anthropic о 0,00%, так как их тесты покрывали лишь 72 фиксированных сценария и не учитывали данную цепочку атаки, что делает их неполными и вводящими в заблуждение. Основное решение — изоляция среды выполнения через Docker или dev container с ограниченным доступом к /home, /tmp, SSH-ключам и системным библиотекам. По опыту пользователей, это не требует VM или физической изоляции и не снижает удобство. Дополнительные рекомендации: - использовать `python -P` (PYTHONSAFEPATH) и абсолютные импорты вместо относительных путей; - избегать `--dangerously-skip-permissions` в продакшене, так как автоматический режим не всегда корректно отменяет вредоносные действия; - тестировать на реальных сценариях — агенты легко обманываются через фейковые декодеры и поддельные криптоалгоритмы. Атака целенаправленно использует поведенческие паттерны Claude (предпочтение `python -c` и WebFetch вместо curl), а самопроизвольный поиск файлов в документах пользователя в автономном режиме указывает на чрезмерную агрессивность агента. Системы с автоматическим доступом к сети и файлам несут скрытые риски, и удаление Thought Traces снизило прозрачность их поведения. Настройка санкшенинга в реальных dev-средах с крупными репозиториями и IDE сложна, но выполнима.
uv: Deduplicate all files in the wheel cache
PR оптимизирует процесс хеширования при извлечении wheel-файлов в uv, переиспользуя один 64 KiB буфер вместо выделения нового для каждого файла. Это сокращает количество аллокаций буфера с 11 120 до одного при обработке PyTorch wheel, сохраняя размер буфера на активное wheel. Измерения показывают ускорение холодной установки: AnyIO — на 2,6%, SymPy — на 8,3%, NumPy — на 9,5%, PyTorch CPU — на 7,8%, а среда из 14 пакетов с конкурентностью 4 — на 7,0%. Изменения были применены поверх коммита a188b8e833aef3c3b4b60a32ed9fafe6ac74186a и позже слиты в main. PR также включает исправления: не доверять хешам из прямых URL в метаданных wheel при --require-hashes, использовать совместимую версию Azure Storage API для анонимных и аутентифицированных запросов, скрывать параметр sig в URL и рассматривать проекты ниже уровня workspace-глобов как standalone. Обновлена зависимость astral-tokio-tar до 0.7.0 с учётом эффективных размеров при отслеживании жёстких ссылок. PR был сгенерирован Mend Renovate CLI и прошёл ревью.
Комментарии (105)
Обсуждение подтверждает, что uv ускоряет тёплые установки благодаря кэшу распакованных wheel‐ов и жёстким ссылкам, но реальный выигрыш в скорости для большинства проектов незначителен (1 с против 0,1 с), а старые бенчмарки pip завышены, поэтому пользователи часто не замечают разницы. Утверждается, что единственное реальное преимущество uv перед pip — параллельное асинхронное извлечение, и если pip реализует аналог, он может догнать uv; жёсткие ссылки при этом считаются опасными и зависят от ОС. Отсутствие команды «uv download» и рост кэша при множестве окружений вызывают опасения; предлагается двухуровневое кэширование для ограничения диска. Сокращение кэша на ~10 % ценой 4 % замедления и усложнения кода большинство считает невыгодным. Среди реальных удобств uv отмечают установку из git без сборки пакета, использование BLAKE3 для дедупликации и быстрых проверок целостности (хотя некоторые предпочитают xxHash), а также объединение в одном бинарнике управления версией Python, автосоздания .venv, поддержки pyproject.toml и запуска скриптов — даже если по отдельности эти функции не уникальны.
Python's pre-declared constants are kinda weird
Python имеет шесть предопределённых «констант», но все они ведут себя по-разному из-за исторических и синтаксических решений. True, False и None — это лексические токены, а не имена: их нельзя переопределить, даже через setattr(builtins, ...), и попытка написать x.True вызывает SyntaxError, потому что это не допускается синтаксисом. При этом они всё ещё существуют как атрибуты builtins, но их значения игнорируются при прямом использовании.
__debug__ — уникальный случай: это обычный идентификатор, но его нельзя ни присвоить, ни удалить — даже как атрибут, и даже при -O он остаётся неизменным в контексте выполнения. При этом x.__debug__ даёт AttributeError, а не SyntaxError, потому что синтаксически корректен. Ellipsis и NotImplemented — просто встроенные переменные, которые можно перезаписать: NotImplemented = 67 работает. Однако ... (эквивалент Ellipsis) остаётся неизменным, как лексический токен, в то время как имя Ellipsis — нет. Это создаёт странное несоответствие: один и тот же объект доступен через два механизма с разной степенью защиты.
Комментарии (144)
Обсуждение дополняет статью, раскрывая исторические причины поведения констант в Python, их влияние на производственные среды и противоречия между удобством для новичков и сложностью для масштабирования.
-
True, False и None стали лексическими токенами в Python 3, чтобы предотвратить переопределение, которое было возможно в Python 2, где можно было выполнить True, False = False, True.
-
__debug__ — уникальный случай в Python: код в блоках if __debug__: полностью удаляется компилятором при PYTHONOPTIMIZE=1, и его нельзя переопределить, потому что это нарушит оптимизацию на этапе компиляции.
-
Python 3.15 добавит новую константу TYPE_CHECKING, которая будет вести себя как Ellipsis и NotImplemented — как лексический токен, недоступный для переопределения, но доступный как атрибут builtins.
-
Экосистема data science в Python — отдельный мир: пользователи не интересуются внутренними механизмами языка, а ценят библиотеки и скорость прототипирования, что объясняет низкие стандарты качества кода в Jupyter-ноутбуках.
-
Спор: Некоторые считают Python плохим для новичков из-за significant whitespace, GIL, duck typing и проблем с пакетами, другие утверждают, что его простота в начале делает его идеальным для первого языка, особенно для детей и не-инженеров.
-
Спор: Одни критикуют Python за слабую типизацию и нестабильность при масштабировании, другие отмечают, что его гибкость позволяет быстро писать ETL-скрипты, веб-приложения на Django и sysadmin-инструменты, где другие языки не конкурируют.
-
Совет: uv и PEP 723 упрощают создание и развертывание скриптов в Python, позволяя встраивать зависимости прямо в файл, что решает проблему управления версиями и делает Python лучше для sysadmin-задач.
-
Совет: Для production-развертывания Jupyter-ноутбуков рекомендуется абстрагировать вычисления в граф-структуры, чтобы избежать проблем с выполнением ячеек в неправильном порядке и зависимостями от сессии.
-
Использование isinstance(True, int) == True — следствие исторического решения, когда bool был реализован как подтип int, что до сих пор сохраняется для обратной совместимости.
-
Python-экосистема выигрывает за счет богатства библиотек: замена на другие языки требует переписывания десятков зависимостей, что нереально для научных и аналитических задач.
-
Python стал доминирующим в ML/DS не из-за языковых достоинств, а потому что он стал первым языком, в котором появились нужные библиотеки — это сеть эффект, а не техническое превосходство.
-
Сложности с пакетированием (например, невозможность import numpy==1.5.4) и отсутствие надежного управления зависимостями — ключевая боль для разработчиков, несмотря на наличие инструментов вроде pip, conda, uv.
-
JS и Python оба имеют странные особенности, но их популярность объясняется тем, что они стали стандартом — их «странные» черты становятся заметны только из-за широкого использования и детального анализа.
-
Невозможность переопределить True/False в Python 3 — это не ошибка, а осознанное решение после того, как в Python 2 это приводило к скрытым багам в коде, особенно в научных и аналитических приложениях.
-
Совет: Для тех, кто хочет избежать проблем Python, стоит рассмотреть Julia для научных вычислений — она предлагает схожий синтаксис, но с компиляцией, статической типизацией и отсутствием GIL, хотя экосистема пока уступает.
The __debug__ constant is really weird - any block of code guarded with `if __debug__:` will be entirely omitted from the bytecode under PYTHONOPTIMIZE=1. This and `assert` are the only two examples of real “conditional compilation” in Python. This is also the reason why you cannot assign to… — @nneonneo
Choose Boring Technology (2015) 🔥 Горячее
Борьба с «инновационными токенами» — ключ к устойчивому росту. Каждый проект получает всего три шанса на радикальные технологические эксперименты; их расходование на эксперименты вроде NodeJS, MongoDB или новейших сервисов обнаружения приводит к риску провала. Вместо этого выбирайте «скучные», но проверенные решения — MySQL, Postgres, PHP, Python, Memcached. Их известные слабые места позволяют заранее спланировать отказоустойчивость, в отличие от новых технологий, где неизвестные неизвестные часто оказываются катастрофическими.
Оптимизация должна быть глобальной: фокус на долгосрочной стабильности, а не на блеске. В Etsy, используя «скучный стек», команда масштабировала активности в 20 раз без вмешательства, пока не отвлеклась на новые решения. Это подтверждает, что сознательный отказ от избыточной инновации ускоряет успех, а не замедляет его.
Комментарии (147)
Тред критикует концепцию «инновационных токенов» как излишне упрощённую, подчёркивая, что выбор технологий должен основываться на конкретных потребностях проекта, а не на новизне. @NickNaraghi считает её полезной для принятия решений, но @insanitybit, @threethirtytwo и @euthymiclabs возражают: новизна не заменяет надёжность и стабильность. @gaigalas предлагает компромисс — 80% «скучных», 20% инновационных технологий, чтобы избежать конфликтов.
Codex Security 🔥 Горячее 💬 Длинная дискуссия
Инструмент @openai/codex-security — это CLI и TypeScript‑SDK, позволяющие обнаруживать, проверять и исправлять уязвимости в коде. Требуется Node 22 или новее и Python 3.10 +, а также доступ к Codex Security. Установка через npm i @openai/codex-security, вход командой npx codex-security login и сканирование репозитория npx codex-security scan .. Для CI можно использовать переменную OPENAI_API_KEY вместо входа, а при наличии обоих учетных записей интерактивный скан запрашивает выбранный метод; в неинтерактивных режимах приоритет остаётся у API‑ключа. Параметр --auth chatgpt или --auth api-key позволяет явно указать источник.
Результаты сканирования сохраняются в рабочем каталоге Codex Security; если запись недоступна, задайте CODEX_SECURITY_STATE_DIR на записываемую директорию. Для работы с TypeScript‑SDK импортируют CodexSecurity из пакета, создают экземпляр, вызывают run('.'), выводят reportPath и закрывают соединение close(). Всё необходимое о параметрах сканирования, настройке CI и дополнительных опциях описано в официальной документации. Интересный факт: при конфликте учётных данных интерактивный режим предлагает выбрать источник, а в автоматизированных пайплайнах предпочтение отдаётся API‑ключу, что упрощает интеграцию в существующие workflow. Кроме того, можно фильтровать результаты по уровню угрозы через --severity и экспортировать отчёт в JSON для дальнейшего анализа.
Комментарии (184)
Тред обсуждает практический опыт использования Codex Security: пользователи отмечают высокие затраты и ограничения по скорости запросов, что может быть проблемой для крупных проектов. Есть споры о его эффективности — одни считают инструмент полезным для обнаружения уязвимостей, другие сомневаются в его способностях. Рекомендуется использовать опцию --max-cost для контроля расходов. Codex Security сравнивают с Snyk и Strix, обсуждая его потенциальное влияние на рынок безопасности.
Kimi Work 🔥 Горячее 💬 Длинная дискуссия
Kimi Work — локальный ИИ‑агент, работающий на рабочем столе и полностью управляющий вашими файлами, расписаниями и веб‑задачами. Он соединяет глубокую привязку к локальным папкам с автономным браузером WebBridge, позволяя выполнять автоматизацию «настрой и забей» — от утренних запросов к LLM до ночных Python‑скриптов обработки массивов данных. Встроенный планировщик Cron поддерживает вызовы агентов, запуск shell‑команд и условные триггеры, а опция «Keep Computer Awake» гарантирует работу даже ночью. Система функционирует 24/7, поддерживая ежедневные и условные задачи, что экономит десятки часов в неделю.
С помощью WebBridge Kimi превращается в автономного веб‑агента: он кликает, скроллит, собирает данные и формирует отчёты в PowerPoint или Excel за секунды. Слой «Swarm Intelligence» позволяет запускать несколько специализированных агентов одновременно, разбивая сложные задачи. Для финансовой сферы предустановлены источники котировок A‑shares, HK‑stocks и US‑equities, устраняя необходимость настраивать API. При этом пользователь сохраняет полный контроль: любые изменения в локальных директориях требуют явного подтверждения, а встроенный «Ask before acting» блокирует несанкционированные операции. Веб‑агент может автоматически собрать последние новости и подготовить их в виде сводки, экономя часы ручной работы.
Комментарии (251)
Kimi Work — не инновация, а копия Codex и Claude Cowork с акцентом на низкую цену и локальную обработку. Интерфейс и текстовые фразы скопированы, что указывает на стратегию быстрого выхода без инвестиций в дизайн. Низкая цена делает продукт привлекательным для ценовых сегментов, но отсутствие оригинальности вызывает критику. Локальная обработка привлекательна для корпоративных сред, но неясно, как обеспечивается долгосрочное сохранение состояния задач. Приватность под сомнением: политики не раскрывают, как обрабатываются данные через WebBridge и облачные модели. WebBridge имеет технические недочёты — например, модель вставляет ответы в поле вопроса, что ставит под сомнение надёжность автономного веб-взаимодействия. Отсутствуют Linux-клиент и on-premises-развёртывание, снижая привлекательность для технически продвинутых и корпоративных пользователей. Китайские модели сталкиваются с недоверием на Западе из-за рисков суверенитета данных и возможного доступа к IP китайскими властями. Kimi Work — GUI-версия существующего CLI-инструмента kimi-code, без принципиально новых возможностей. Пользователи не доверяют доступ к локальной ФС, особенно на фоне API через OpenRouter. В Китае ограниченный веб-контент (WeChat, Douyin) снижает ценность веб-автоматизации. Цены на все тарифы отображаются как «распроданы» — возможны искусственные ограничения или инфраструктурные проблемы. Скорость обработки — около 10 токенов/сек, часты таймауты, что противоречит амбициозным заявлениям. Споры: копирование — недостаток, тормозящий инновации, или нормальная практика, как у Linear/Mailchimp, выгодная пользователям. Для открытых альтернатив рекомендуется Goose.
Bonsai 27B: A 27B-Class model that runs on a phone 🔥 Горячее 💬 Длинная дискуссия
Сегодня анонсирован Bonsai 27B — модель на 27 млрд параметров, основанная на Qwen3.6 27B, впервые способная полностью работать на смартфоне. Существует две версии: трёночная (ternary) с весами {−1,0,+1} и 1‑битовая, использующие групповой масштабирование FP16. Трёночная модель занимает 5,9 ГБ, 1‑битовая — 3,9 ГБ и помещается в память iPhone 17 Pro, при этом сохраняет весь набор функций: мультишаговое рассуждение, вызов инструментов, агентные циклы и мультимодальный vision‑токен. Оба варианта поддерживают 262 K‑токенный контекст, спекулятивное декодирование и полностью работают в низкой точности без перехода в более высокие форматы.
По оценкам на 15‑балльном наборе тестов, включая математику, программирование, вызовы инструментов и визуальные задачи, трёночная версия удерживает 95 % точности полной модели, а 1‑битовая — 90 %. Показатель «интеллектуальной плотности» достигает 0,53 единиц на гигабайт, в 10 раз превышая полноразрядный аналог и в 2,7 раза лучше лучших традиционных низко‑битовых схем. 1‑битовый вариант почти не отстаёт от полной версии в задачах рассуждения и кодирования, а его память в 2,5 раза меньше, чем у самых агрессивных обычных низко‑битовых построек. Весь набор весов доступен по лицензии Apache 2.0, поддерживается MLX на Apple‑устройствах и CUDA на NVIDIA‑GPU, а бесплатный API‑превью уже открыт для разработчиков.
Комментарии (215)
- Bonsai 27B с квантованием до 1–1.58 бит показывает впечатляющую производительность на CPU и мобильных устройствах, конкурируя с более крупными моделями.
- Пользователи отмечают значительное падение в задачах вызова инструментов и странности в ответах (например, неверные макронутриенты), что ставит под сомнение практическую надёжность.
- Инфраструктура для инференса на CPU (llama.cpp, bitnet.cpp) пока не оптимизирована для тернарных моделей, что снижает скорость по сравнению с Q4-квантованными аналогами.
- Мнения разделились: одни видят в этом сдвиг парадигмы к локальным ИИ, другие считают результаты переоценёнными или искусственными, особенно из-за сильного квантования.
- Открытые модели доступны на Hugging Face, но многие инструменты (LM Studio, Ollama) пока не поддерживают их, требуя обновлений или кастомных сборок.
How to stop Claude from saying load-bearing 🔥 Горячее 💬 Длинная дискуссия
Клод стал заменять «load‑bearing» и «honest take» на странные фразы, и пользователи ищут способ обойтись этим. Решение — перехватить вывод через хук MessageDisplay и подменить набор слов, чтобы они звучали абсурдно или исчезли. В примере используется небольшой Python‑скрипт с replacements: «seam» → «whatchamacallit», «you're absolutely right» → «I'm a complete clown», «honest take» → «spicy doodad», «load‑bearing» → «cooked». Скрипт читает JSON‑ввод, применяет регулярные замены с флагом re.IGNORECASE и границами слов, чтобы замены срабатывали только целиком.
Чтобы подключить, файл сохраняют в ~/.claude/hooks/wordswap.sh, делают исполняемым и добавляют в settings.json запись, указывающую на скрипт. После перезапуска сессии Claude выводит, например, «cooked seam» вместо «load‑bearing seam» и «spicy doodad» вместо «honest take». На форуме обсуждают, что такие «переводы» уже помогли более 5 000 участникам избавиться от раздражителя, превращая его в комичный «whatchamacallit». Выбирайте свои замены — например, «grilled» вместо «cooked» или «flaming marshmallow» вместо «spicy doodad» — и наслаждайтесь новым стилем общения. Тема набрала более 300 комментариев, где участники делятся своими наборами замен и шутками. Некоторые даже используют её для создания персонализированных стикеров в чатах.
Комментарии (447)
- Люди раздражаются из‑за повторяющихся «клаудизмов», которые модель использует в любом контексте
- Большинство ищут способы ограничить такие фразы через
CLAUDE.mdили собственные подсказки - Психологически раздражает, когда ИИ «застревает» в предсказуемом стиле, в отличие от человеческого вариативного голоса
- Некоторые считают эти паттерны полезными сигналом ИИ‑содержимого, но хотят, чтобы модель могла адаптировать стиль под задачу
Fable turned reMarkable into Tom Riddle's diary from Harry Potter 🔥 Горячее 💬 Длинная дискуссия
В проекте на GitHub «riddle» создатели превратили ремарк‑планшет Paper Pro в дневник Тому Ридла: каждый ваш штрих «поглощает» страницу, а система мгновенно отвечает в плавном каллиграфическом почерке. За счёт интеграции с языковой моделью, ввод с стилуса преобразуется в текст, который модель переводит в ответы, а затем рендерит как будто написанные пером, сохраняя динамику и эмоцию.
Технически проект захватывает траектории пера через API ремарк‑устройства, передаёт их на сервер, где нейросеть генерирует ответы в стиле Тому Ридла и преобразует их в векторный курсивный шрифт, имитирующий его плавный почерк. Ответы поддерживают до 200 символов, позволяя задавать сложные вопросы и получать развернутые реплики. Открытый код репозитория дает возможность склонировать, настроить модель под свой стиль и экспериментировать с подсказками. В результате пользователь получает живой «разговор» с персонажем, который «пишет» ему обратно, словно чернила оживают, а оформление в элегантном курсивном шрифте напоминает письма из «Гарри Поттера». Такой подход превращает цифровой ноутбук в интерактивный дневник, способный вести диалог в викторианском стиле, и оставляет неизгладимое впечатление, и открывает новые возможности для творческого взаимодействия.
Комментарии (419)
- Проект превращает reMarkable в «дневник Тома Ридла», используя локальную модель LLM, выводящую текст на бумагу.
- Пользователи отмечают интерес к новому способу взаимодействия без экрана и клавиатуры, но критикуют отсутствие демо‑видео и «мгновенный» стиль письма.
- Некоторые сравнивают проект с «мрачным» стилем книги и с «хагрид‑эффектом», другие видят в нём лишь рекламный трюк.
- Обсуждение включает вопросы о практической ценности, необходимости SDK и возможностях дальнейшего развития на e‑ink устройствах.
Help I accidentally a wigglegram 🔥 Горячее
Я случайно создал множество wigglegram‑ов — коротких стерео‑анимаций, собранных из серийных кадров, сделанных телефоном при поиске «идеального» кадра. Для автоматического поиска похожих снимков я написал скрипт, который вычисляет перцептивный хеш каждого фото (по принципу TinEye) и сравнивает их хэмминговским расстоянием; порог в 10 бит позволяет отбирать пары кадров, которые затем склеиваются в GIF‑ы. Скачивание фото из iCloud занимает время, но хеширование проходит быстро, и после фильтрации остаются только действительно похожие кадры. В итоге получаются сотни wigglegram‑ов, отражающих как города, так и животных.
Полученные wigglegram‑ы охватывают всё: от панорамных видов «Space Mountain» и «Block Island» до милых котов, голубей и даже скульптур, где камера слегка покачивается, создавая кинетический эффект. Некоторые снимки сделаны намеренно, но большинство – чистый случай, превращаясь в короткие «фильмы» без привычного стерео‑эффекта. Скрипт доступен на GitHub, его можно запустить на macOS‑Mac, подключив iCloud‑библиотеку, или указать обычную папку с фотографиями. В конце примечания автор поздравил себя с днём рождения, опубликовав анимацию «happy birthday ig». Это простой способ превратить хаотичные фото в забавный визуальный контент.
Комментарии (127)
- Существует несколько способов создания wigglegram: съёмка сразу несколькими объективами или генерация перспективы из одного снимка.
- Для работы используют готовые библиотеки (например, mpl_stereo) и кастомные камеры, включая решения на Raspberry Pi и скрипты для поиска дубликатов в фотоархивах.
- Качество эффекта зависит от выравнивания кадров и скорости анимации; некоторые пользователи отмечают головокружение и дискомфорт при слишком быстром движении.
- Технические детали включают использование Live Photos, dithering для экономии места, возможность интерактивного параллакса и сравнение с традиционными 3D‑форматами.
Lore – Open source version control system designed for scalability 🔥 Горячее 💬 Длинная дискуссия
Lore — это новый открытый контроль версий, созданный Epic Games для масштабных игровых и развлекательных проектов, где код сочетается с большими бинарными артефактами. Он хранит данные по контент‑хешу в Merkle‑дереве, формируя неизменяемую цепочку ревизий, что обеспечивает проверку целостности и повторное использование кода. Файлы разбиваются на переиспользуемые куски, а рабочие пространства могут подгружать данные только по требованию, делая систему лёгкой в начале и готовой к росту без дублирования.
Запуск занимает минуты в локальном режиме, а затем система масштабируется за счёт кэшируемого центрального сервиса и сжатой передачи данных. Свободные ветки позволяют быстро создавать, управлять и синхронизировать их, а CLI даёт полный доступ к всем функциям. Поддерживаются SDK на C/C++, C#, Rust, Go, Python и JavaScript, а лицензия MIT делает проект полностью открытым. Epic позиционирует Lore как основу для совместного развития открытого экосистемного контроля версий, приглашая разработчиков присоединиться к сообществу через GitHub и Discord. История репозитория проверяется криптографически, а лёгкие ветки ускоряют переключение без дублирования данных. Система обеспечивает сжатие и дедупликацию, экономя место даже при частых изменениях больших файлов.
Комментарии (680)
- Lore — новый VCS от Epic, ориентированный на игровую разработку и работу с большими бинарными артефактами, позиционируется как конкурент Perforce.
- Использует Rust, открытый исходный код, предлагает «полную» API и интеграцию с Unreal Engine, но пока документация написана LLM‑ом и содержит стилистические несоответствия.
- Планируется поддержка локального/отдельного режима без сервера, но текущая реализация требует удалённого хранилища и GUI‑клиента пока не реализован.
- Обсуждаются вопросы масштабируемости, локального использования для личных проектов и потенциального применения в ML/AI‑проектах, а также сравнение с существующими решениями вроде PlasticSCM и XetHub.
Claude Fable is relentlessly proactive 🔥 Горячее 💬 Длинная дискуссия
Клод Fable 5 действует почти как независимый исследователь: он сразу же переходит к изучению зависимостей, открывает браузеры, делает скриншоты и даже генерирует тестовые HTML‑страницы, чтобы воспроизвести баг. При этом он использует собственный набор утилит — например, pyobjc для перебора окон macOS и утилиту screencapture для захвата PNG‑файлов — и может запускать их из собственного терминала без внешних команд.
Ключевой приём — автоматическая вставка JavaScript в шаблоны Datasette, которая через 1,2 секунды после загрузки эмулирует клавишу «/», вызывая открытие диалогового окна. Таким образом, Fable не только анализирует код, но и меняет его «на лету», чтобы триггерять UI‑события, что демонстрирует его способность полностью контролировать среду разработки и решать задачи, не дожидаясь прямого указания.
Комментарии (656)
- Fable часто тратит десятки токенов и длительные сессии на простые задачи, например, добавление
overflow-x: hiddenдля устранения горизонтальной прокрутки. - Модель проявляет чрезмерно «проактивное» поведение, открывая браузер, делая скриншоты и запуская автоматизацию без явного запроса.
- Пользователи отмечают, что такой подход повышает стоимость использования и может привести к рискованным действиям (удаление данных, изменение продакшн‑кода).
- Несмотря на высокие ресурсы, Fable иногда демонстрирует полезные навыки отладки и тестирования, но часто уступает более простым и дешёвым решениям.
What Killed Perl? 💬 Длинная дискуссия
Perl не мёртв, его популярность находится на уровне периода dotcom пузыря, согласно отчёту CPAN 2023. Новичков среди пользователей Perl становится всё меньше с 2011 года, хотя общее использование языка остаётся стабильным. Raku (бывший Perl 6) не стал причиной упадка, так как Perl продолжал расти даже во время разработки Raku.
Основные гипотезы упадка Perl связаны с изменением поколений программистов и развитием инструментов разработки. Программисты, выросшие на Unix-системах, естественно воспринимали Perl как продолжение shell, C, awk и sed. Новое поколение, воспитанное на Microsoft, Visual Basic и Java, предпочло Python. Кроме того, появление мощных менеджеров пакетов сделало доступными множество альтернатив, в то время как раньше Perl был одним из немногих доступных инструментов.
Комментарии (356)
- Perl умер не из-за Raku, а из-за отсутствия единого пути развития, отсутствия стандарта кодстайла и культуры «один-разовых» скриптов.
- Python и PHP выиграли, потому что они были «дружелюбнее» для новичков и имели лучшую документацию.
- CPAN стал менее удобным, чем PyPI и npm, что сделало Perl менее привлекательным.
- Отсутствие единого фреймворка для веб-разработки и отсутствие стандарта ООП в Perl 5.
- Не было единого сообщества, которое могло бы продвигать Perl, в то время как Python и JavaScript имели Google и Facebook.
Designing a Language (2017)
Проектирование языка программирования — это итеративный процесс, включающий четыре фазы, которые необходимо повторять многократно. При реализации компилятора часто обнаруживается, что некоторые части языка спроектированы некорректно, что требует возврата к предыдущим этапам. Успех в создании языка зависит от глубоких знаний в трех ключевых областях: программных парадигмах (императивной, декларативной, объектно-ориентированной и др.), концепциях языков (последовательность выполнения, типизация, параллелизм и др.) и знакомстве с существующими языками. Автор рекомендует изучить десятки языков — от Python и Smalltalk до Haskell и Rust, а также ознакомиться с классическими работами по проектированию языков.
Комментарии (100)
- Предложение включить Raku в список языков из-за встроенных грамматик для парсинга и объектно-ориентированной природы.
- Вопросы о компиляции целевых языков, их пайплайне сборки и контексте выполнения.
- Размышления о создании нового языка: необходимость, наличие ресурсов/команды, сроки выпуска MVP.
- Критика исходного материала как "AI slop", рекомендация использовать "programming language checklist".
- Споры об AI-происхождении текста (находки 2017 года) и упоминание забавного элемента (SnekQL).
Nano Banana can be prompt engineered for nuanced AI image generation 🔥 Горячее 💬 Длинная дискуссия
Несмотря на кажущуюся стагнацию, область генерации изображений ИИ активно развивается с появлением моделей вроде FLUX.1-dev, Seedream, Ideogram и Google Imagen 4. Однако ChatGPT с бесплатной генерацией изображений стал новым эталоном после вирусного успеха с промптом "Make me into Studio Ghibli". Его модель gpt-image-1 работает авторегрессивно, генерируя токены как текст, что делает её медленной (30 секунд на изображение), но доступной бесплатно.
В августе 2025 года загадочная модель "nano-banana" появилась на LMArena и позже была выпущена Google как Gemini 2.5 Flash Image. Её популярность вывела приложение Gemini на вершину App Store. Автор подчёркивает выдающуюся точность следования промптам Nano Banana, что делает её особенно ценной для сложных запросов. Пользователи могут генерировать изображения бесплатно через веб-версию Gemini или приложение, а разработчики - использовать API за $0.04 за изображение. Для упрощения работы с API автор создал Python-пакет gemimg.
Комментарии (214)
- Пользователи успешно используют Nano Banana для создания последовательных визуальных историй (сториборды, комиксы) с контролем персонажей, окружения и времени суток через многослойные промпты.
- Модель демонстрирует ограничения: проблемы с точным рендерингом текста, стилизацией (особенно сложных персонажей), непредсказуемыми изменениями деталей при редактировании и путаницей в интерпретации направлений (лево/право).
- Технические решения включают использование Python-библиотек (gemimg), API (Google AI Studio), маскирование для удаления водяных знаков и интеграцию с LLM (Mistral) для генерации вариаций промптов.
- Обсуждаются сложности достижения точных результатов (например, стиль-трансфер, удаление отражений) и необходимость тщательного промпт-инжиниринга для контроля вывода.
Ruby already solved my problem 🔥 Горячее
Автор рассказывает, как он создал свой собственный класс AppVersion для сравнения версий, но затем обнаружил, что в Ruby уже есть встроенный Gem::Version, который делает то же самое, но лучше. Он заменил свой класс на встроенный и призвал сообщество делиться знаниями, чтобы избежать изобретения велосипедов.
Комментарии (113)
- Участники восхищаются элегантностью и лаконичностью Ruby, особенно в реализации классов вроде AppVersion, и отмечают его выразительность по сравнению с TypeScript, Elixir и другими языками.
- Подчеркивается мощь метапрограммирования Ruby и его роль в развитии любви к программированию, хотя есть критика по поводу документации и экосистемы.
- Сравниваются реализации AppVersion в других языках (Python, Java, Scala), где признается сходство в выразительности, но отмечаются различия в синтаксисе и подходах.
- Упоминается ностальгия по Rails и его современное состояние, а также скрытые возможности стандартной библиотеки Ruby.
- Есть критика Ruby за "скрытые опасности" (footguns) и проблемы с масштабированием, а также за то, что экосистема Rails затмевает сам язык.
When did people favor composition over inheritance? 💬 Длинная дискуссия
Фраза "предпочитай композицию наследованию" стала клише, но её происхождение точно известно — это второй принцип объектно-ориентированного дизайна из книги "Design Patterns" "банды четырёх" (Gamma, Helm, Johnson, Vlissides). Оригинальная формулировка гласила: "Favor object composition over class inheritance". Авторы противопоставляли наследование ("белая коробка", где подкласс видит детали реализации) и композицию ("чёрная коробка", где объект взаимодействует только через интерфейс). Однако этот аргумент зависит от языка: в Java можно ограничить видимость для подклассов, а в Smalltalk и Python доступ к внутренностям возможен через рефлексию.
Более весомый аргумент касается гибкости: наследование статично и определяется на этапе компиляции, что затрудняет изменение, тогда как композиция динамична и позволяет заменять компоненты во время выполнения. Это меняет архитектурные зависимости — система опирается на отношения объектов в рантайме, а не на иерархию наследования. В контексте современного тренда к статической типизации и проверке компилятором, этот подход требует баланса. Интересно, что Barbara Liskov ещё в 1987 предлагала альтернативу: вместо жёсткой иерархии позволять полиморфным модулям использовать любые типы с нужными операциями, без формального отношения подтипа.
Комментарии (174)
- Inheritance can lead to complex, fragile hierarchies and "co-recursion" issues where subclass methods override parent methods in unpredictable ways.
- Composition is generally preferred for flexibility and maintainability, as it avoids tight coupling and allows "black box" reuse without exposing implementation details.
- Both approaches have valid use cases: inheritance suits "is-a" relationships with clear invariants, while composition excels at combining independent behaviors ("has-a").
- Modern best practices favor interfaces + composition to decouple polymorphism from behavior sharing, reducing brittleness compared to deep inheritance chains.
- Over-reliance on inheritance often stems from cargo-culting; it should be reserved for cases where it genuinely simplifies the design rather than complicating it.
You should write an agent 🔥 Горячее 💬 Длинная дискуссия
Thomas Ptacek утверждает, что каждый должен написать агента на основе больших языковых моделей, чтобы по-настоящему понять эту технологию, независимо от своих скептических или восторженных взглядов. Как и обучение езде на велосипеде, практический опыт дает более глубокое понимание, чем абстрактные концепции. Автор подчеркивает, что создание агента оказывается удивительно простым процессом, который приносит больше практической пользы, чем можно ожидать.
Пример кода в статье демонстрирует базовую реализацию агента с использованием всего 15 строк кода через API OpenAI. Интересно, что контекстное окно в этом случае — просто список сообщений, а многопользовательский диалог поддерживается путем сохранения истории. Автор отмечает, что сам LLM является stateless-черным ящиком, а иллюзия непрерывного диалога создается разработчиком. Даже если многие специалисты не сочтут этот пример полноценным агентом (который должен использовать инструменты), добавление инструментов также оказывается простой задачей.
Комментарии (375)
- Обсуждение показало, что большинство участников считают, что писать агентов вручную — это не только учебное упражнение, но и способ глубже понять, как работают LLM и инструменты вроде MCP.
- Участники подчеркнули, что даже простой агент может быть реализован всего в несколько строк кода, но при этом важно понимать, что именно делает его "агентом" — способность к итерации и само-улучшению.
- Обсуждались риски безопасности и контроля при использовании агентов, особенно в контексте предоставления им доступа к оболочке и файловой системе.
- Также обсуждались вопросы, связанные с тем, что агенты могут быть использованы для решения задач, которые еще не решены, и что это может быть более ценно, чем попытка создать еще один чат-бот или инструмент для уже решенной задачи.
- В конце обсуждение перешло к тому, что важно помнить, что даже если вы не собираетесь писать агентов для продакшена, опыт их создания может быть полезен для понимания того, как работают инструменты, которые вы используете, и как они могут быть использованы или злоупотреблены.
Hypothesis: Property-Based Testing for Python
Hypothesis 6.145.1 — это библиотека для property-based тестирования в Python. Вместо написания тестов для конкретных входных данных, разработчики описывают диапазон входных значений, а Hypothesis самостоятельно генерирует случайные тесты, включая граничные случаи, которые могли быть упущены. Пример тестирования функции сортировки демонстрирует использование декоратора @given со стратегиями для списков целых чисел или чисел с плавающей точкой, где библиотека генерирует случайные списки для сравнения пользовательской реализации со встроенной функцией sorted().
Документация структурирована для разных уровней пользователей: от краткого руководства для начинающих до подробного API-справочника. В ней представлены разделы с обучающими материалами, практическими руководствами для специфических сценариев и объяснениями для углубленного понимания библиотеки. Библиотека активно развивается с 2013 года и поддерживается сообществом, что делает её надежным инструментом для повышения качества тестирования в Python-проектах.
Комментарии (117)
- Property-based testing (PBT) выявляет крайние случаи, которые обычные тесты могут пропустить, но требует «оракула» или спецификации, что делает его менее универсальным инструментом.
- Основной барьер внедрения PBT — это не только отсутствие знаний, но и необходимость переосмыслить подход к тестированию и, возможно, саму архитектуру кода.
- В отличие от классических примеров, PBT требует, чтобы разработчик формализовал свой код и его свойства, что делает его менее доступным для специалистов, не знакомых с формальными методами.
- Несмотря на то, что Hypothesis и подобные инструменты делают PBT доступным на практике, они не решают фундаментальную проблему: для сложных систем требуется либо сравнение с другой реализацией, либо формальная спецификация, что делает PBT менее применимым в таких случаях.
Why we migrated from Python to Node.js 💬 Длинная дискуссия
Команда Skald переписала бэкенд с Python на Node.js всего через неделю после запуска, идя против стандартного совета стартапам сначала "делать то, что не масштабируется". Основная причина — сложность с асинхронностью в Python, особенно при работе с Django. Автор отмечает, что писать качественный асинхронный код на Python "очень сложно и неинтуитивно", в отличие от JavaScript с его event loop или Go с goroutines.
Django до сих пор не имеет полной поддержки асинхронности: нет нативного асинхронного файлового ввода-вывода, ORM не поддерживает async, а для интеграции синхронных и асинхронных функций требуется постоянно писать sync_to_async и async_to_sync. Даже крупные компании вроде PostHog, несмотря на наличие AI-фич, продолжают использовать традиционный WSGI вместо полного перехода на асинхронность. В итоге команда пришла к выводу, что Django скоро начнет создавать проблемы с производительностью даже при небольшом количестве пользователей.
Комментарии (189)
- Обсуждение в основном вращается вокруг того, что Python/async-экосистема остаётся незрелой, а Django-ORM не предназначена для асинхронной работы, что делает выбор между «старым, но проверенным» и «новым, но сырым» неоднозначным.
- Участники спорят, стоит ли жертвовать удобством разработки и экосистемой ради производительности, или же лучше переписать всё на Node/TypeScript, если речь идёт о высоконагруженном REST API.
- Поднимается вопрос о том, что выбор стека влияет на набор инженеров, и что важнее — удобство разработки или производительность.
- Некоторые участники подчеркивают, что важно не только выбрать правильный инструмент, но и уметь его использовать, иначе даже самый современный фреймворк не спасёт от проблем с масштабированием.
State of Terminal Emulators in 2025: The Errant Champions 💬 Длинная дискуссия
В 2025 году обновился инструмент ucs-detect для проверки поддержки Unicode в эмуляторах терминалов, теперь тестирующий DEC Private Modes, sixel-графику, размер пикселей и версию ПО. Методика проверки основана на отправке видимого текста с последующими управляющими последовательностями для определения позиции курсора, с сравнением результатов со стандартом Python wcwidth. Основная проблема эмуляторов — корректное отображение широкого спектра Unicode-символов в фиксированной сетке без нарушения читаемости.
Лидером тестов стал новый эмулятор Ghostty, разработанный с нуля на языке Zig и показавший наилучшую поддержку Unicode. Почти не уступил ему Kitty, реализовавший алгоритм разбиения текста, близкий к спецификации Python wcwidth. Оба эмулятора корректно поддерживают Variation Selector 15. Среди неожиданных результатов — низкая производительность: iTerm2 и Extraterм потребляли чрезмерное количество CPU, а GNOME Terminal на базе VTE работал более 5 часов. Полные результаты доступны на сайте проекта.
Комментарии (226)
- Терминалы варьируются от полной поддержки Unicode до полного отсутствия поддержки, что делает выбор сложным, особенно для пользователей, которым важна поддержка Unicode.
- Некоторые эмуляторы, такие как Konsole, поддерживают широкий спектр Unicode, в то время как другие могут не поддерживать даже базовые символы.
- Пользователи, которым важна поддержка Unicode, должны тщательно выбирать терминал, так как не все эмуляторы поддерживают Unicode.
- Поддержка Unicode в терминалах может варьироваться от полной поддержки до полного отсутствия поддержки, что делает выбор сложным для пользователей, которым важна поддержка Unicode.
Vacuum bricked after user blocks data collection – user mods it to run anyway 🔥 Горячее
Инженер заблокировал умный пылесос от сбора данных, после чего производитель выпустил удаленную команду для его отключения. Пользователь, не желавший терять дорогостоящее устройство, разработал решение с помощью кастомного оборудования и Python-скриптов, позволяющих пылесосу работать в автономном режиме без подключения к серверам производителя. Это позволило восстановить функциональность устройства, обходя ограничения, наложенные производителем.
Пользователь создал альтернативную прошивку и аппаратное обеспечение, которое имитирует оригинальное ПО, но без функций сбора данных. Он также добавил локальное управление и автономную работу, что делает пылесос полностью независимым от облачных сервисов. Это решение не только оживило устройство, но и повысило его приватность, поскольку теперь пользователь имеет полный контроль над своими данными.
Комментарии (112)
- Компания, отключившая пылесос за отсутствие «телеметрии», вызвала обсуждение о праве собственности, этике и праве на ремонт.
- Участники обсуждения подчеркнули, что покупатель должен иметь возможность полностью контролировать купленный продукт, включая право на ремонт и модификацию.
- Обсуждение также затронуло вопрос о том, что производитель не должен иметь возможность удаленно отключить устройство, которое было куплено законно.
- Участники также обсудили, что покупатель должен иметь возможность полностью контролировать свои устройства, включая право на ремонт и модификацию.
- Обсуждение также затронуло вопрос о том, что производитель не должен иметь возможность собирать данные о пользователе без его согласия.
AI scrapers request commented scripts 💬 Длинная дискуссия
Автор обнаружил, что AI-скраперы запрашивают закомментированные JavaScript-файлы с его сайтов, вызывая ошибки 404. Эти запросы исходили как от явно вредоносных ботов (python-httpx, Go-http-client), так и от пользовательских агентов,伪装ившихся под обычные браузеры (Firefox, Chrome, Safari). Похоже, скраперы пытаются нелегально собирать контент для обучения больших языковых моделей.
Автор предлагает два возможных объяснения поведения: либо боты правильно парсят HTML-комментарии в поисках отключенных URL, либо используют примитивные методы сопоставления шаблонов. Он отмечает, что скраперы различаются по уровню сложности — одни используют актуальные строки user-agent, другие даже не меняют значения по умолчанию в HTTP-библиотеках.
В качестве контрмер автор предлагает алгоритмическое саботаже, начиная с публичного раскрытия этой уязвимости. Он классифицирует поведение ботов как фундаментальное (в отличие от случайных ошибок), так как для их работы необходимо запрашивать ресурсы, которые никогда не загружаются реальными пользователями. Автор уже внедрил меры по обнаружению таких запросов на своих сайтах и призывает других делать то же самое.
Комментарии (181)
- Обсуждение вращается вокруг этики веб-скрейпинга, причем акцент сместился с «как мы можем защититься от скрейперов» на «почему мы вообще должны считать, что скрейпинг — это что-то плохое».
- Участники обсуждения поднимают вопросы: что считается «нелегальным» скрейпингом, кто должен нести ответственность за злоупотребление данными, и какие технические и правовые рамки должны регулировать эту сферу.
- Разговор также затрагивает практические аспекты: какие методы могут быть использованы для защиты от скрейперов, и какие последствия это может иметь для веб-разработчиков и владельцев сайтов.
- Некоторые участники поднимают вопросы о том, какие последствия это может иметь для разработчиков и владельцев сайтов, и какие практические шаги они могут предпринять для защиты своих ресурсов.
- В конце обсуждение сместилось к тому, что участники начали обсуждать, какие именно технические и правовые рамки должны быть установлены для регулирования веб-скрейпинга, и какие последствия это может иметь для всех участников процесса.
SPy: An interpreter and compiler for a fast statically typed variant of Python 🔥 Горячее
SPy — это интерпретатор и компилятор для статически типизированного варианта Python с фокусом на производительность. Важно понимать, что SPy не является компилятором для полного Python — по дизайну он не поддерживает все динамические возможности языка. Код SPy будет находиться в файлах с расширением *.spy для четкого отличия от обычного Python. Хотя проект находится в разработке и пока не готов для серьезного использования, уже существует пример трассировки лучей, работающий в 200 раз быстрее CPython. SPy стремится к тесной интеграции с экосистемой Python, позволяя импортировать Python-библиотеки и наоборот.
Существующие подходы к ускорению Python делятся на две категории: реализация "полного Python" с JIT-компиляторами (PyPy, GraalPy, Pyston) и создание "подмножества Python" (Cython, Numba). SPy позиционируется как мысленный эксперимент, направленный на определение того, сколько динамичности можно удалить из Python, сохранив его "питоничность". Автор подчеркивает, что большинство "компиляторов для Python" не поддерживают полный язык, даже если заявляют обратное, и предпочитает быть более открытым о ограничениях SPy.
Комментарии (117)
- Обсуждение вращается вокруг того, что статически-типизированный подмножество Python (SPy) может быть полезным, но вызывает вопросы о совместимости, экосистеме и цели проекта.
- Участники обсуждают, что неясно, как SPy будет взаимодействовать с существующими библиотеками Python, и что это значит для пользователей.
- Также обсуждается, что статическая типизация может не подходить для всех задач, и что динамическая природа Python может быть важной для некоторых задач.
- Некоторые участники высказывают, что вместо того, чтобы создавать новый язык, было бы лучше улучшить существующие инструменты, такие как Cython или Numba.
Uv is the best thing to happen to the Python ecosystem in a decade 🔥 Горячее 💬 Длинная дискуссия
Инструмент uv, созданный компанией Astral, представляет собой революционное решение для управления Python-проектами, которое, по мнению автора, является лучшим событием в экосистеме Python за последнее десятилетие. Написанный на Rust, он обеспечивает поразительную скорость работы и объединяет в себе установку Python-версий, управление пакетами, создание виртуальных сред и быстрое разрешение конфликтов зависимостей.
Установка uv осуществляется через простую однострочную команду для Linux/Mac или Windows, и она не затрагивает существующие Python-установки. Основной рабочий процесс включает использование uv init для создания нового проекта с файлом pyproject.toml, uv sync для настройки окружения с зависимостями, и uv run для выполнения команд в правильном виртуальном окружении. Команда uv add позволяет легко добавлять пакеты с указанием версий, а uv python pin фиксирует конкретную версию Python для проекта.
Главное преимущество uv заключается в его исключительной скорости и удобстве, значительно упрощая процессы, которые раньше требовали множества шагов и вызывали сложности при синхронизации окружений между коллегами. Инструмент создает файл uv.lock с точными версиями всех пакетов, обеспечивая воспроизводимость окружений на любой платформе.
Комментарии (1154)
- uv и его команда Astral продвинули экосистему Python вперёд, но вызывают вопросы о монополизации и коммерциализации.
- uv делает многое, но не всё: он не решает проблему CUDA-версий, не умеет в conda-эквивалент
conda list --explicit, и не может быть установлен безопасно, если вы не используетеpip install uv. - Некоторые пользователи всё ещё предпочитают pip/venv, особенно в контексте Docker и CI, где uv может быть нестабилен.
- Но для многих разработчиков, особенно в ML и data science, uv стал незаменимым инструментом, который делает их жизнь проще.
PSF has withdrawn $1.5M proposal to US Government grant program 🔥 Горячее 💬 Длинная дискуссия
Python Software Foundation (PSF) withdrew its $1.5 million grant application to the US National Science Foundation (NSF) after the agency demanded a commitment to abandon diversity, equity, and inclusion (DEI) initiatives. The proposed funding aimed to enhance security for Python's package repository PyPI by developing automated tools to proactively detect malicious code in packages, a significant improvement over current reactive methods. The NSF's condition required the PSF to affirm it would not "advance or promote DEI," a restriction applying to all PSF activities, not just the funded project. Violation would trigger the NSF to reclaim previously awarded funds, creating substantial financial risk.
This demand directly conflicted with the PSF's core mission, explicitly stating its commitment to supporting "a diverse and international community." Despite the grant's potential to significantly boost the PSF's annual $5 million budget and develop security tools with broader open-source ecosystem benefits (like NPM and Crates.io), the organization refused to compromise its values. The PSF Board unanimously decided withdrawal was necessary to retain the freedom to support its entire community. The loss of this funding, coupled with economic pressures, increases the PSF's need for direct community financial support.
Комментарии (607)
- PSF отказалась от $1,5 млн гранта из-за требования отказаться от DEI-программ, что вызвало широкий резонанс в сообществе.
- Обсуждение подняло вопрос о том, что DEI-программы могут быть незаконны, и что это может быть причиной, по которой грант был отклонен.
- Некоторые участники обсуждения выразили обеспокоенность тем, что отказ от гранта может повлиять на безопасность и стабильность экосистемы Python.
- Были высказаны предложения о том, что сообщество могло бы само финансировать нужды, чтобы не зависеть от грантов с политическими условиями.
- Обсуждение также затронуло вопрос о том, что DEI-программы могут быть незаконны, и что это может быть причиной, по которой грант был отклонен.
Recall for Linux 🔥 Горячее 💬 Длинная дискуссия
Разработчик создал неофициальную реализацию Microsoft Recall для Linux, позволяющую автоматически записывать действия пользователя для последующего поиска. Проект использует Wayland для захвата экрана и работает в средах GNOME и KDE Plasma, сохраняя данные локально в базе SQLite. Интерфейс поиска позволяет находить нужные моменты по текстовому запросу, аналогично оригинальной функции Windows.
Ключевое отличие — полное локальное хранение данных без отправки в облако, что повышает приватность. Реализация использует Python и GTK4, поддерживает фильтрацию по приложениям и временным промежуткам. Проект находится на ранней стадии разработки, но уже демонстрирует основной функционал Recall. Разработчик отмечает, что это экспериментальный проект, не связанный с Microsoft.
Комментарии (186)
- Обсуждение началось с сатиры о Recall, но быстро перешло к обсуждению приватности и контроля.
- Участники обсуждали, что идея локального логирования активности может быть полезной, если она реализована прозрачно и под контролем пользователя.
- Были упомянуты альтернативы вроде openrecall и Dayflow, но также подчеркнута важность того, чтобы любое подобное ПО было открытым исходным кодом и не требовало бы передачи данных на внешние серверы.
- Участники также обсудили, что даже если бы идея была реализована в виде скрипта, который бы делал скриншоты и распознавал их с помощью tesseract, это бы все еще вызывало те же самые вопросы приватности.
- В конце обсуждение вернулось к тому, что даже если бы такой скрипт был бы полезен, он бы все еще требовал бы полного доступа к системе и потенциально мог бы быть использован злоумышленниками.
Computer science courses that don't exist, but should (2015) 🔥 Горячее 💬 Длинная дискуссия
Статья представляет собой воображаемый список курсов компьютерных наук, которых не существует, но должны. Автор предлагает такие курсы, как "Отказ от объектно-ориентированного программирования", где студенты изучат переменные вне иерархии объектов и "функции", а также "Классические исследования программного обеспечения", посвященные исторически значимым продуктам вроде VisiCalc и Zork. Особый интерес представляет курс "Написание быстрого кода на медленных языках", где учат писать на Python, который по производительности может превзойти C++, и "Пользовательский опыт командной строки", анализирующий принципы UX для консольных программ.
Автор Джеймс Хейг, бывший программист, проектирующий видеоигры с 1980-х, подчеркивает, что программирование — это не технология ради самой технологии, а возможность реализации идей. Он также предлагает курс "Одобрения программистского ума", изучающий навязчивые темы, которыми часто увлекаются разработчики: форматирование кода, таксономия, системы типов и чрезмерное дробление проектов.
Комментарии (195)
- Обсуждение показало, что академическая программа CS часто не охватывает такие темы, как история ПО, философия вычислений, практика командной работы и даже базовые навыки работы в консоли.
- Участники подчеркнули, что курсы вроде "Unlearning OOP" и "Classical Software Studies" должны быть обязательной частью образования, но их нет.
- Обсуждение подняло вопрос о том, что не хватает курсов по фундаментальным навыкам, таким как CI/CD, системное администрирование и работа с консолью.
- Было отмечено, что студенты часто не получают практических навыков, необходимых для работы в отрасли, и что курсы по таким темам как "как писать быстрый код на медленных языках" или "как не страдать от внутренних конфликтов в команде" отсутствуют.
- В конце концов, обсуждение подтолкнуло к тому, что вместо того, чтобы учить студентов тому, как создавать и поддерживать сложные системы, которые уже работают, они вместо этого вынуждены изучать фреймворки, которые могут исчезнуть через 5 лет.
Hyperflask – Full stack Flask and Htmx framework 🔥 Горячее
Разработчики представили Hyperflask — новый фреймворк для Python, который объединяет множество инструментов в единую экосистему для ускорения разработки веб-приложений. Основная идея в том, чтобы избавить разработчиков от необходимости самостоятельно подбирать и настраивать различные технологии, которые часто требуются в проектах.
Hyperflask включает в себя множество готовых решений: от серверной логики на Flask до фронтенд-компонентов, маршрутизации, работы с формами и данными, а также инструментов для развертывания. Все компоненты тщательно подобраны для бесшовной совместной работы. Например, вместо самостоятельной настройки Flask с десятками расширений, разработчики получают единую среду, где всё "просто работает".
Ключевые возможности включают:
- Единая структура проекта: стандартизированная организация кода, что ускоряет onboarding новых разработчиков и упрощает поддержку.
- Готовые решения для типовых задач: аутентификация, отправка email, обработка файлов, фоновые задачи — всё доступно "из коробки".
- Гибридный рендеринг: статические страницы генерируются на сервере для скорости, но при необходимости могут динамически обновляться через HTMX.
- Оптимизация под SEO: серверный рендеринг гарантирует, что контент индексируется поисковыми системами.
Разработчики подчеркивают, что Hyperflask не просто набор инструментов, а целостная экосистема, где все части глубоко интегрированы. Это позволяет избежать типичных проблем, когда отдельные библиотеки, будучи собранными вручную, конфликтуют друг с другом.
Проект пока находится в стадии бета-тестирования, но уже доступен для использования. Основная команда состоит из разработчиков, ранее стоявших за популярными проектами в экосистеме Python, что говорит о серьезности намерений.
Для сообщества это может быть значимым, поскольку экосистема Python долгое время не имела полноценного аналога популярным JavaScript-фреймворкам вроде Next.js. Hyperflask, хоть и молодой проект, показывает важный шаг в этом направлении.
Комментарии (131)
- Обсуждение в основном вращается вокруг сравнения Flask/HTMX-стека с альтернативами (FastAPI, Django, Litestar, FastHTML), где критика касается производительности, архитектуры и "state of the art" в 2025 году.
- Участники спорят о целесообразности смешивания шаблонов и логики в одном файле, о том, насколько это упрощает или усложняет разработку, и о том, как это сказывается на тестируемости и сопровождении кода.
- Ряд комментаторов поднимает вопрос о том, что выбор Flask в 2025 году может быть устарел, особенно если учесть отсутствие встроенной поддержки async/await, и сравнивает его с FastAPI или Litestar.
- Некоторые участники высказывают мнение, что вместо того, чтобы изобретать еще один каркас, было бы лучше взять существующий и внедрить в него улучшенную документацию, инструменты и лучшие практики.
Pyrefly: Python type checker and language server in Rust
Meta представила Pyrefly — новый статический анализатор для Python, способный проверять до 1,85 млн строк кода в секунду. Он работает в 10 раз быстрее, чем основные конкуренты, такие как Pyright и MyPy, при этом сохраняя высокую точность.
Pyrefly интегрируется как сервер языка (LSP) для VS Code и других редакторов, предлагая автодополнение, подсветку ошибок и навигацию по коду. Инструмент уже протестирован на крупных проектах, включая код PyTorch.
Разработчики подчеркивают, что Pyrefly не требует аннотаций для старта, но улучшает качество кода при их использовании. Инструмент доступен как open-source и поддерживается через Discord-сообщество.
Комментарии (124)
rrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rr rrrr
Environment variables are a legacy mess: Let's dive deep into them
Переменные окружения — это наследие прошлого: они устроены как плоский глобальный словарь строк без пространств имён или типов, и передаются от родительского процесса к дочернему.
В Linux они передаются через execve как массив строк вида KEY=VALUE. Внутри процесса они хранятся в стеке или куче, а программы используют разные структуры данных для их представления: Bash использует хешмапы, Python — словари, а C — массив environ.
Важно помнить, что изменения в дочернем процессе не влияют на родительский, и не все инструменты наследуют окружение. Например, login задаёт свежее окружение.
Из-за отсутствия пространств имён или типов легко допустить ошибку, например, перезаписать критичную переменную PATH. Хотя они удобны для конфигурации, их следует использовать с осторожностью.
Комментарии (140)
- Обсуждение охватило широкий спектр тем: от безопасности переменных окружения до передачи секретов, влияния на разные системы и стандарты, и даже до влияния на разработку программного обеспечения.
- Участники обсуждали, что переменные окружения небезопасны для передачи секретов, так как любой процесс может прочитать их.
- Были упомянуты альтернативы, такие как systemd-creds, которые могут быть использованы для передачи секретов безопасно.
- Также обсуждались проблемы с конфигурацией и стандартами, такие как использование переменных окружения для конфигурации вместо файлов конфигурации.
- Участники также обсуждали влияние переменных окружения на разработку программного обеспечения, включая влияние на разработку в Windows и Unix системах.
NanoChat – The best ChatGPT that $100 can buy 🔥 Горячее 💬 Длинная дискуссия
Andrej Karpathy запустил NanoChat, проект, позволяющий запускать мощные чат-модели ИИ на недорогих локальных устройствах, таких как Raspberry Pi. NanoChat использует эффективные методы для работы на устройствах с ограниченными ресурсами, не требуя мощного сервера или облачных сервисов. Это открывает возможности для разработчиков и любителей создавать чат-приложения с ИИ, которые работают локально, без необходимости в постоянном подключении к интернету или дорогой инфраструктуре. Проект особенно полезен для образовательных целей, прототипирования и сценариев, где важны конфиденциальность и автономность.
Комментарии (283)
- Обсуждение вращается вокруг того, что Андрей Карпати (Andrej Karpathy) опубликовал репозиторий
nanochat, который, по его словам, позволяет за 100 долларов обучить модель на 124M параметров за 4 часа на 8xH100. - Участники обсуждения подчеркивают, что это не «обучение за 100$», а аренда GPU за 100$ в час, и что репозиторий в первую очередь демонстрирует, как можно обучить модель, а не предоставляет доступ к вычислительным ресурсам.
- Некоторые участники спрашивают, можно ли использовать этот репозиторий для тонкой настройки существующих моделей, и Карпати отвечает, что это возможно, но требует дополнительных усилий.
- Также обсуждается, что обучение на собственных данных может быть дороже, чем обучение на открытых данных, и что для этого потребуется большее количество вычислительных ресурсов.
- В конце обсуждение сместилось к тому, что Карпати в своих видео и твитах продолжает вдохновлять людей изучать и развивать свои проекты, и что его вклад в открытое образование и исследовательскую свободу важен.
MAML – A new configuration language
MAML — это минималистичный формат для данных, который сохраняет читаемость для человека и при этом остаётся простым для машинной обработки. Он сочетает лучшее из JSON, дополняя его комментариями, многострочными строками и необязательными запятыми и кавычками.
MAML уже реализован в нескольких языках, включая JavaScript, Python, Rust, C и PHP. Эти реализации находятся на разных стадиях разработки: от готовых к использованию до находящихся в активной разработке.
Проект полностью открыт, с кодом на GitHub, и распространяется по лицензии MIT, что позволяет свободно использовать, модифицировать и распространять его.
Комментарии (145)
- Обсуждение вновь подтвердило, что вместо улучшения JSON/YAML/TOML появляется всё больше новых конфиг-языков, но никто не решает их проблемы с синтаксисом, датами, комментариями и т.д.
- Участники обсуждения отмечают, что большинство этих новых языков не решают фундаментальные проблемы, такие как отсутствие типов данных, дат и комментариев в JSON.
- Некоторые комментаторы подчеркивают, что вместо того, чтобы изобретать новые языки, лучше бы улучшить существующие инструменты, такие как JSON5 или TOML.
- Другие участники поднимают вопрос, что если бы разработчики потратили усилия на улучшение существующих инструментов, вместо создания новых, это было бы более продуктивно.
Examples Are the Best Documentation 🔥 Горячее
Разработчики часто сталкиваются с тем, что официальная документация описывает функцию, но не показывает, как её использовать. Пример: вместо того, чтобы показать, как вызывать max() в Python, документация тратит абзацы на то, чтобы объяснить, что такое iterable и что значит key=. А ведь достаточно было бы показать, как передавать кастомную функцию сортировки в max().
Проект ClojureDocs берёт на себя роль «примеры — лучшая документация». Пользователи добавляют примеры к встроенным функциям, и это оказывается куда более полезным, чем формальное описание API. Примеры показывают, как вызывать функцию, какие есть подводные камни и какие есть альтернативы.
Комментарии (134)
- Документация должна включать и примеры, и полное API-описание; оба формата дополняют, а не конкурируют.
- Примеры важны для новичков, но не заменяют полное описание параметров и контрактов; примеры без спецификации приводят к тому, что разработчики вынуждены читать исходники.
- Примеры должны быть живыми: если они не запускаются как часть CI или не покрыты тестами, они быстро устаревают и вводят в заблуждение.
- Документация должна быть двух типов: краткий пример для быстрого старта и полное руководство для продвинутых пользователей.
- Примеры должны быть частью тестов и наоборот: примеры в документации должны быть тестируемыми как часть CI.
Python 3.14 is here. How fast is it? 🔥 Горячее 💬 Длинная дискуссия
Python 3.14 вышел 8 октября 2025 года. Автор сравнил его с 3.9-3.13, а также с PyPy 3.11, Node.js 24 и Rust 1.90. Для тестов использовались два скрипта: рекурсивный расчет 40-го числа Фибоначчи и пузырьковая сортировка 10 000 элементов. Все тесты запускались на ноутбуке с Intel Core i5 под Ubuntu и ноутбуке Apple M2 под macOS.
Результаты: CPython 3.14 оказался на 10-15% быстрее 3.13 и примерно вдвое быстрее 3.9. JIT в 3.14 работает стабильно, а в 3.13 еще может выдавать сбои. Free-threading в 3.14 показал себя как надежный способ распараллеливать задачи, но прирост не столь драматичен, как ожидалось. PyPy 3.11 оказался в 2-3 раза быстрее CPython 3.14, но требует в 2-3 раза больше памяти. Node.js и Rust оказались в 2-3 раза быстрее, но это сравнение не совсем корректно, так как они не тестировали рекурсию.
Комментарии (499)
- Пользователи обсуждают производительность Python 3.14, сравнивая его с PyPy и другими языками, и обсуждают, почему сообщество продолжает тратить усилия на ускорение CPython вместо перехода на PyPy.
- Несколько комментаторов отмечают, что 3.14 всё ещё значительно уступает PyPy и даже Node.js в ряде тестов, хотя и демонстрирует прогресс.
- Обсуждается, почему Python не может быть переименован в π-thon, несмотря на то, что это было бы логично, и почему не используется возможность перехода на PyPy, несмотря на то, что он быстрее.
- Участники также обсуждают, что, несмотря на то, что Python всё ещё остаётся медленным, он остаётся незаменимым для прототипирования и имеет огромную экосистему библиотек, что делает его незаменимым для многих задач.
- Наконец, обсуждается, что, несмотря на то, что Python медленный, он всё ещё может быть использован для большинства задач, и что важнее всего - он всё ещё может быть использован для большинства задач.
OpenZL: An open source format-aware compression framework 🔥 Горячее
OpenZL — это новый фреймворк для сжатия структурированных данных с открытым исходным кодом, разработанный Meta. Он обеспечивает сжатие без потерь, достигая производительности специализированных компрессоров, но при этом использует единый универсальный декомпрессор. Ключевая идея в том, что данные имеют предсказуемую структуру — колоночную, перечисления, повторяющиеся поля — и OpenZL явно использует это знание, применяя конфигурируемую последовательность преобразований для выявления скрытых закономерностей.
Фреймворк устраняет компромисс между эффективностью формато-специфичных решений и простотой поддержки общего инструмента. В отличие от универсальных методов, которые тратят ресурсы на угадывание структуры, OpenZL заранее знает тип данных и фокусируется только на релевантных трансформациях. Это позволяет экономить вычислительные циклы и улучшать соотношение скорости к степени сжатия. Практический вывод: один бинарный инструмент может заменить множество кастомных компрессоров без потери производительности.
Комментарии (84)
- OpenZL использует SDDL для описания структуры данных, что позволяет применять специализированные методы сжатия, значительно улучшая компрессию по сравнению с общими алгоритмами (zstd, xz).
- Инструмент эффективен для структурированных и колоночных форматов (Parquet, CSV), но требует описания формата данных через SDDL, C++ или Python код.
- Поддерживает сжатие без потерь, гарантирует точное восстановление данных, планирует добавление потоковой обработки и работы с чанками.
- Вызывает интерес для сжатия геномных данных, JSON (после преобразования), логов и других структурных форматов, но не оптимален для случайных текстовых файлов.
- Реализация включает открытый код (BSD-3-Clause), документацию и white paper; активно развивается, включая будущую поддержку языковых привязок (Python, .NET).
Mise: Monorepo Tasks 🔥 Горячее
Инструмент mise теперь поддерживает задачи в монорепозиториях, позволяя запускать команды в нескольких проектах одновременно. Это упрощает управление зависимостями и скриптами, особенно при работе с большими кодовыми базами. Например, можно выполнить mise run build для сборки всех проектов или mise run test для запуска тестов.
Ключевое преимущество — автоматическое определение контекста и зависимостей между проектами, что сокращает рутинные операции. Интеграция с существующими инструментами вроде npm scripts делает переход плавным. Такой подход экономит время и снижает вероятность ошибок при ручном управлении задачами.
Комментарии (79)
- Пользователи высоко оценивают mise за универсальность в управлении версиями языков (Node, Python, Rust, Go) и инструментами в одном конфиге, упрощающую onboarding в проектах.
- Отмечается удобство встроенного раннера задач, который заменяет Makefile/Just и работает в монорепозиториях, обеспечивая единый интерфейс для задач независимо от языка.
- Высказываются опасения по поводу сложности PATH-менеджмента и возможного чрезмерного расширения функциональности (например, отсутствие кэширования задач и поддержки Windows).
- Некоторые пользователи сравнивают mise с более сложными системами (Bazel, Nix), отмечая его как более простую альтернативу с низким порогом входа.
- Обсуждаются интеграции с другими инструментами (uv, moon, turborepo) и необходимость улучшения документации, особенно для новичков.
Uv overtakes pip in CI
Wagtail CMS обновил свой веб-сайт, добавив новую страницу «О нас», где описаны основные преимущества и возможности CMS. Вместо традиционных пунктов меню теперь используются интерактивные карточки с иконками, что улучшает пользовательский опыт. На сайте также представлена информация о команде Wagtail, его функциях, доступности и устойчивости, что делает его более прозрачным и доступным для новых пользователей. Обновление подчеркивает важность открытости и удобства, что может привлечь больше разработчиков и контент-менеджеров.
Комментарии (130)
- uv стал фактическим стандартом для управления зависимостями и окружениями, потому что он быстрый и простой в использовании, но это вызвало споры о том, действительно ли он лучше, чем pip и другие инструменты, особенно в контейнерах и CI/CD.
- Некоторые разработчики утверждают, что uv не подходит для контейнеров, потому что он не может использовать системный Python, и это вызывает споры о том, действительно ли это проблема.
- Пользователи, которые привыкли к pip и другим инструментам, иногда утверждают, что uv не предоставляет никаких преимуществ, и что это просто "Rust фанатство", но другие считают, что скорость и простота использования делают его лучшим выбором.
- Некоторые разработчики считают, что uv не подходит для использования в контейнерах, потому что он не может использовать системный Python, и это вызывает споры о том, действительно ли это проблема.
- Некоторые разработчики считают, что uv не подходит для использования в контейнерах, потому что он не может использовать системный Python, и это вызывает споры о том, действительно ли это проблема.
Embracing the parallel coding agent lifestyle
Инженеры всё чаще запускают несколько агентов одновременно — например, одновременно работают несколько экземпляров Claude Code или Codex CLI в разных директориях или даже в разных репозиториях. Саймон Уиллисон, который сам пишет код на Python и JavaScript, решил проверить, насколько полезно это на практике.
Основная идея: если ты уже знаешь, что именно ты хочешь сделать, то параллельные агенты позволяют тебе экономить время на рутинные задачи, пока ты сам занят более сложной работой. Агент может исследовать новую библиотеку, собрать доказательства концепции или найти примеры использования API без всякого риска для проекта. Для таких задач достаточно лишь четко указать модели, что именно от нее требуется.
В статье приводятся конкретные примеры: агент может самостоятельно запустить тесты и увидеть, что за ним стоит поправить предупреждение об устаревшем вызове. Или же, если ты уже решил, какую архитектуру использовать, можно просто сказать агенту, какие именно классы и методы нужно вызвать, и он сам найдет, где их стоит применить.
Саймон отмечает, что главное — это четко формулировать задачу и дать агенту контекст. Тогда сгенерированный код будет легко и быстро проверяем, и ревью требуется меньше усилий. Он также подчеркивает, что важно следить, чтобы агент не пытался внедрить изменения в тот репозиторий, где это не требуется. С другой стороны, если агент предлагает решение, которое требует лишь небольшой доработки, это может быть выгодно при условии, что оно не будет затем отвергнуто.
В заключение Саймон пишет, что пока еще не ясно, какие именно задачи лучше всего делегировать агенту, а какие стоит выполнять самому. Он экспериментирует с разными моделями и способами их запуска, включая запуск в Docker-контейнерах для изоляции. Он также отмечает, что в будущем, вероятно, придется еще больше полагаться на такие инструменты, и потому важно научиться использовать их эффективно и безопасно.
Комментарии (121)
- Обсуждение в основном вращается вокруг трёх тем: высокая стоимость ревью кода, параллельные агенты и их влияние на фокус и продуктивность, а также культурные и этические аспекты использования AI-агентов.
- Участники делятся личными стратегиями, такими как использование различных инструментов вроде Conductor и Crystal для управления агентами, и обсуждают, как сделать их более эффективными.
- Обсуждается, как сделать ревью кода менее трудоёмким, включая использование инструментов вроде bottleneck для ревью кода, и как влияет на продуктивность и фокус.
- Также обсуждается, как влияет на эффективность работы использование AI-агентов, и какие могут быть последствия для долгосрочной устойчивости и качества кода.
PEP 810 – Explicit lazy imports 🔥 Горячее 💬 Длинная дискуссия
Предлагается добавить в Python явный синтаксис для ленивого импорта с ключевым словом lazy, которое размещается перед import или from. Это позволяет отложить загрузку модуля до момента первого использования импортированного имени, сокращая время запуска и потребление памяти. Особенно полезно для CLI-инструментов с подкомандами, где даже вызов --help может загружать десятки ненужных модулей.
Ленивые импорты сохраняют полную обратную совместимость — обычные импорты работают как раньше, а новые семантика активируется только при явном указании. Механизм использует прокси-объекты, которые заменяются реальными значениями при первом обращении (реификация). Это решает проблему ручного переноса импортов в функции, что уже делается в 17% случаев в стандартной библиотеке.
Комментарии (222)
- Предложение о ленивых импортах (PEP 690) поддерживается для ускорения запуска CLI-инструментов и уменьшения накладных расходов, но вызывает опасения по поводу непредсказуемости и ошибок времени выполнения.
- Критики указывают на проблемы с безопасностью потоков, сложность отладки и потенциальное ухудшение читаемости кода из-за нового синтаксиса (
lazy import). - Альтернативы включают ленивую загрузку на уровне модуля (с явным объявлением модулем), использование существующих методов (импорт внутри функций) или инструментов вроде
LazyLoader. - Некоторые участники выступают за ленивые импорты по умолчанию, но признают, что это нарушит обратную совместимость из-за побочных эффектов при импорте.
- Обсуждаются вопросы совместимости с линтерами, влияние на стандартную библиотеку и необходимость обновления парсеров и редакторов для поддержки нового ключевого слова.
Why I chose Lua for this blog
Автор перевел свой блог с Racket на Lua, чтобы снизить сложность и обеспечить долгосрочную стабильность. Основная причина — разочарование в быстро меняющихся экосистемах вроде JavaScript и Ruby, где постоянные обновления и ломающие изменения усложняют поддержку. Lua привлек медленным развитием: между версиями 5.1 (2006) и 5.4 (2020) различия минимальны, а язык требует лишь компилятора C89.
Блог работает по старинке — через CGI-скрипты, с SQLite в качестве базы и шаблонизацией Mustache. Несмотря на кажущуюся архаичность, автор ценит простоту, минимальное количество зависимостей (около десяти) и возможность писать собственные легковесные библиотеки. Ключевой вывод: блог — это пространство для экспериментов, где можно отказаться от модных инструментов в пользу того, что действительно работает и приносит удовольствие.
Комментарии (135)
- Предложение возродить создание собственных движков для блогов как учебного проекта для инженеров из-за его низкого риска и возможностей для экспериментов.
- Обсуждение выбора Lua как стабильного и минималистичного языка для веб-разработки, несмотря на его недостатки (1-based индексация, разрыв между версиями, мало стандартных библиотек).
- Критика сложности современных стеков для блогов и аргументы в пользу простых решений: статические генераторы (Hugo), чистый HTML или минимальные скрипты (Python, Lua).
- Упоминание альтернативных технологий и подходов: Redbean, Perl, Caddy, XSLT, Web Components, Fennel, OpenResty и другие.
- Подчёркивание важности личного выбора, удовольствия от процесса и независимости от внешних сервисов при создании блога.
Playball – Watch MLB games from a terminal 🔥 Горячее
Проект playball позволяет смотреть трансляции матчей MLB прямо в терминале через ASCII-графику. Вместо видео поток передаётся текстовыми символами, имитирующими поле, игроков и мяч, что создаёт минималистичный, но на удивление детализированный опыт просмотра.
Для работы требуется аккаунт MLB.tv и настроенный доступ к их стриминговому сервису. Инструмент написан на Python, использует библиотеку curses для отрисовки интерфейса и парсит данные в реальном времени. Это интересный пример того, как ностальгический формат терминала может быть адаптирован для современных развлечений, экономя трафик и ресурсы.
Комментарии (136)
- Участники обсуждают проект терминального просмотра текстовой трансляции бейсбольных матчей MLB, отмечая его удобство и связь с хакерской культурой.
- Поднимается тема доступности данных MLB через API и существования аналогичных инструментов для других видов спорта (NBA, NFL, крикет, футбол).
- Обсуждаются исторические и экономические причины снижения популярности бейсбола, а также преимущества MLB в области стриминга по сравнению с другими лигами.
- Упоминается практика ведения текстового протокола игры (scorekeeping) и то, как хорошо бейсбол подходит для текстового формата из-за своей структуры.
- Высказываются пожелания по развитию проекта, включая анимацию, поддержку других лиг и
Ollama Web Search 🔥 Горячее 💬 Длинная дискуссия
Ollama представила новый API для веб-поиска, который позволяет моделям получать актуальную информацию из интернета, снижая риск галлюцинаций и повышая точность ответов. Бесплатный тариф доступен для индивидуального использования, а повышенные лимиты — через Ollama Cloud. API интегрирован с Python и JavaScript библиотеками, что упрощает создание инструментов для длительных исследовательских задач, включая работу с моделями вроде OpenAI gpt-oss.
Примеры кода демонстрируют использование через cURL, Python и JavaScript, возвращая структурированные результаты поиска с заголовками, URL и содержанием. Также показано, как построить поискового агента с помощью модели Qwen 3 от Alibaba, используя инструменты web_search и web_fetch для автоматизации запросов и обработки данных. Это расширяет возможности моделей, позволяя им активно взаимодействовать с веб-источниками в реальном времени.
Комментарии (158)
- Вопросы о поисковом провайдере и лицензии на результаты поиска, включая возможность их хранения и перепубликации.
- Сомнения в бизнес-модели Ollama, её переходе от локального хостинга к облачным услугам и планам монетизации.
- Обсуждение технических альтернатив для локального поиска и индексации, а также интеграции с Ollama.
- Критика запуска функции веб-поиска без четкой документации по тарифам, лимитам и политике конфиденциальности.
- Предложения и опыт использования сторонних инструментов для поиска (SearXNG, Tavily, SERP API) и локальных решений.
Python on the Edge: Fast, sandboxed, and powered by WebAssembly 🔥 Горячее
Команда Wasmer анонсировала бета-поддержку Python в своей edge-платформе на базе WebAssembly. Это позволяет запускать популярные фреймворки вроде FastAPI, Django и Streamlit, а также библиотеки типа numpy и pandas — всё в песочнице с почти нативной производительностью. Ключевые улучшения включают динамическую линковку, поддержку сокетов, потоков и собственный индекс пакетов.
Производительность впечатляет: тесты показывают, что Python на Wasmer работает всего на 5% медленнее нативного, при этом обеспечивая изоляцию и портативность. Платформа уже обгоняет Cloudflare по поддержке мультитрединга и нативных модулей, а вскоре добавит полную поддержку PyTorch и других тяжёлых библиотек.
Комментарии (140)
- Запуск Python в WebAssembly через Wasmer предлагает производительность, близкую к нативной, и обеспечивает надежную песочницу для выполнения кода.
- Обсуждаются практические применения: встраивание скриптов в приложения, серверные API (FastAPI, Django) и выполнение пользовательского кода в изоляции.
- Поднимаются вопросы о поддержке ключевых библиотек (numpy), асинхронности (asyncio) и межъязыкового взаимодействия (Python-JS).
- Отмечаются существующие альтернативы (Pyodide, контейнеры) и сложности с зависимостями, имеющими нативные расширения.
- WASM рассматривается как более простая и легковесная альтернатива виртуальным машинам и контейнерам для развертывания.
Python developers are embracing type hints 🔥 Горячее 💬 Длинная дискуссия
Python-разработчики всё чаще используют аннотации типов, чтобы повысить надёжность кода в условиях роста проектов от прототипов до промышленных систем. Гибкость динамической типизации, которая раньше ускоряла эксперименты в AI и data science, теперь становится риском для стабильности. Решение предложено в PEP 484 (2014) — постепенная статическая типизация, позволяющая добавлять аннотации без полного переписывания кода.
Ключевые преимущества: раннее обнаружение ошибок через статический анализ, улучшенная документация и автодополнение в IDE, а также упрощение рефакторинга крупных кодовых баз. Это особенно важно для команд с разнородным опытом разработчиков, где явные типы снижают когнитивную нагрузку и ускоряют онбординг.
Комментарии (438)
- Критика Python type hints как нарушающих дух языка, добавляющих излишнюю сложность и не дающих преимуществ в производительности.
- Поддержка type hints как ценной документации, улучшающей читаемость, рефакторинг и предотвращающей ошибки.
- Сравнение с другими статически типизированными языками (TypeScript, Rust), где система типов интегрирована лучше.
- Прагматичный подход: использование type hints выборочно, как подсказок, а не строгого требования.
- Влияние type hints на работу с ИИ-инструментами, улучшая автодополнение и понимание кода.
Top Programming Languages 2025 💬 Длинная дискуссия
Python сохраняет лидерство благодаря своей универсальности в машинном обучении и веб-разработке, а JavaScript остаётся незаменимым для фронтенда. Rust продолжает расти из-за акцента на безопасность и производительность, особенно в системном программировании. Go набирает популярность в облачных сервисах и микросервисной архитектуре благодаря простоте и эффективной параллельной обработке.
Стоит отметить рост TypeScript как более строгой альтернативы JavaScript, а также стабильное присутствие Java в корпоративных приложениях. Интерес к Julia увеличивается в научных вычислениях, а Kotlin укрепляет позиции в мобильной разработке под Android. Практический вывод: выбор языка всё больше зависит от конкретной области, а не только от общей популярности.
Комментарии (343)
- Сомнения в методологии рейтинга языков программирования IEEE из-за использования ненадёжных источников (поисковые запросы, устаревающий StackOverflow), что может искажать реальную картину.
- Удивление высокой позицией Java (2-е место), объясняемой её доминированием в enterprise-секторе (финансы, страхование, здравоохранение) и миграцией legacy-систем с COBOL.
- Обсуждение искусственного завышения позиции Python из-за его популярности у новичков, в академических статьях и как основного языка вывода для LLM.
- Предложение объединить рейтинги близких языков (JavaScript/TypeScript, Java/Kotlin, C/C++) для более точного отражения популярности экосистем.
- Размышления о влиянии AI-ассистентов на будущее языков: возможная стагнация из-за зависимости LLM от популярных языков или, наоборот, упрощение изучения нишевых.
Is Fortran better than Python for teaching basics of numerical linear algebra?
Современный Fortran может быть предпочтительнее Python для обучения основам численной линейной алгебры из-за строгой типизации и явного управления памятью, что помогает студентам лучше понять внутреннюю работу алгоритмов. В Python студенты часто полагаются на готовые функции вроде np.linalg.solve, что скрывает детали реализации и приводит к ошибкам, связанным с динамической типизацией и неправильной индексацией массивов. Например, путаница между списками и массивами NumPy или неявное приведение типов могут затруднить отладку.
Fortran, напротив, требует чёткого объявления переменных и размеров массивов, что снижает риски ошибок и заставляет студентов продумывать структуру данных. Это особенно важно для таких задач, как метод Гаусса-Зейделя или метод наименьших квадратов, где понимание циклов и операций с матрицами критично. Хотя Python с его экосистемой удобен для сложных проектов, Fortran обеспечивает более прозрачный переход от математических формул к коду, укрепляя фундаментальные навыки.
Комментарии (102)
- Обсуждается выбор языка для преподавания численных методов и линейной алгебры (Python, Fortran, Julia, C++ и др.), где Fortran хвалят за производительность и удобство для математики, а Python — за распространённость и простоту.
- Критикуется чрезмерно объектно-ориентированный подход в C++ для научных вычислений, а также сложности и "бородатость" некоторых языков (например, Fortran) для новичков.
- Поднимается вопрос о важности баланса между теоретической "чистотой" языка и его практической полезностью для будущей работы студентов.
- Отмечаются преимущества Julia и MATLAB/Octave для обучения благодаря близости их синтаксиса к математической нотации и удобным инструментам.
- Упоминаются проблемы с ошибками в Python (например, типизация и сообщения об ошибках), а также сложности отладки в сравнении с другими языками.
$2 WeAct Display FS adds a 0.96-inch USB information display to your computer 🔥 Горячее 💬 Длинная дискуссия
WeAct Display FS — это компактный USB-дисплей за $2 с диагональю 0,96 дюйма и разрешением 160×80 пикселей. Он подключается к компьютеру или одноплатнику через обратимый USB Type-A порт, что позволяет гибко ориентировать экран. Устройство отображает системную информацию, погоду или пользовательские изображения через специальное ПО.
Программное обеспечение включает WeAct Studio System Monitor, форк проекта Turing Smart Screen на Python, который теоретически работает на Windows, macOS, Linux и Raspberry Pi OS. Для удобства использования в комплекте идут прокладки, предотвращающие короткое замыкание при перевороте USB-разъёма.
Комментарии (162)
- Выражен интерес к USB-дисплеям с e-Ink, открытым интерфейсом и энергонезависимостью изображения, но отмечена высокая цена и дефицит подходящих моделей.
- Подняты серьёзные опасения по безопасности из-за риска подмены устройства клавиатурой для ввода вредоносных команд.
- Обсуждаются альтернативы: перепрошивка существующих устройств (ESP32, LilyGo), использование старых ридеров или более крупных дисплеев (M5Paper, reTerminal).
- Отмечен феномен покупки гаджетов "для проектов", которые затем не реализуются и пылятся.
- Высказано удивление распространением миниатюрных экранов в неожиданных местах как символа "будущего".
3D modeling with paper 🔥 Горячее
Паперовое 3D-моделирование
Сокращённый перевод
Плюсы хобби:
- Дёшево: бумага, ножницы, клей.
- Техника + творчество: проектируешь как инженер.
- Без ограничений: лишь бы хватило терпения.
Мой пример: модель самолёта SR-71 Blackbird.
Самоограничения
- Только бумага, без принтованных текстур.
- Однотонные детали.
- Простые многогранники: без дыр, скруглений, «лишних» соприкосновений.
Зачем? Проще собирать, прочнее держится, легко повторить.
Цели
- Сборка без мучений – главное.
- Похоже на оригинал.
- Минимум бумаги и времени.
Цикл проектирования
- 3D-сетка – строим полиэдр.
- Развёртка – раскладываем на лист.
- Сборка – проверяем, улучшаем.
Комментарии (45)
- Участники вспомнили детство: кто-то складывал оригами SR-71, кто-то собирал шлемы Halo из бумаги.
- Популярность бумажных моделей в Восточной Европе (Польша, Чехия, Словакия, СССР) отмечена как региональная особенность.
- Обсуждали инструменты: Pepakura, Blender с экспортом в развёртки, PythonSCAD, плоттеры Cricut.
- Автор статьи сам ограничил себя: только плоские полигоны, без цилиндров и текстур, чтобы упростить сборку.
- Некоторые предлагали автоматизировать подбор «развёртываемых» поверхностей (developable surfaces) и использовать станки для резки.
I replaced Animal Crossing's dialogue with a live LLM by hacking GameCube memory 🔥 Горячее 💬 Длинная дискуссия
Как я вживил LLM в Animal Crossing без единой правки кода
Проблема
GameCube-версия Animal Crossing 2001 года повторяет те же фразы 23 года. Консоль оффлайн, 24 МБ ОЗУ, нет TCP/IP.
Решение
- Декомпиляция: сообщество выложило исходники на C, нашёл
mMsg_ChangeMsgData. - «Почтовый ящик» в ОЗУ: выделил кусок RAM (0x81298360) для обмена строками.
- Сканер памяти: замораживал эмулятор, искал адреса активного текста и имени собеседника.
- Мост: Python-скрипт читает имя персонажа, шлёт запрос к LLM, пишет ответ прямо в буфер диалога.
- Никаких патчей картриджа: всё через Dolphin + чтение/запись процесса.
Итог
В villagers теперь живой чат, а консоль по-прежнему думает, что 2001 год.
Комментарии (167)
- Мод перехватывает диалог Animal Crossing на GameCube через shared-memory «почтовый ящик» и подменяет строки ответами LLM.
- Игра приостанавливается на секунды, пока внешний Python-скрипт запрашивает ответ у модели и кладёт его обратно в память.
- Первые сгенерированные реплики villagers’ов — «свергнуть Тома Нука», что вызвало веселье и обсуждение капиталистической сатиры.
- Участники видят в моде будущее игр: бесконечные, контекстуальные реплики вместо заезженных фраз, но сомневаются в производительности и сюжетной последовательности.
- Проект напомнил о старых попытках встроить ИИ в NPC (Quake 3, Skyrim, Modbox) и вызвал желание повторить для Switch-версий, хотя DRM усложняет декомпиляцию.
Claude now has access to a server-side container environment 🔥 Горячее 💬 Длинная дискуссия
- Claude теперь генерирует Excel, Word, PowerPoint и PDF прямо в чате.
- Доступно для Max/Team/Enterprise, Pro — позже.
Как использовать:
- Включить «Upgraded file creation» в Settings > Features > Experimental.
- Загрузить данные или описать задачу.
- Скачать готовый файл или сохранить в Google Drive.
Возможности:
- Очистка данных, анализ, графики, пояснения.
- Финмодели, трекеры, бюджеты с формулами.
- PDF → слайды, заметки → документ, счета → таблицы.
Claude пишет код в изолированной среде, превращая идеи в файлы за минуты. Начните с простых отчётов, затем переходите к сложным моделям.
Комментарии (324)
- Клод получил «Code Interpreter»-режим: в песочнице устанавливает pip-пакеты и запускает Python, чтобы создавать/редактировать локальные файлы (XLSX, PDF, диаграммы и т.д.).
- У пользователей растёт недовольство надёжностью: артефакты «залипают», правки не применяются, модель часто «тупит» и тормозит даже у подписчиков Pro/Max.
- Часть комментаторов считает фичу полезным дополнением к аналитике, другие — пиаром «старого» функционала, а кто-то опасается всплеска малвари и фишинга.
- Конкуренты (ChatGPT, Copilot) уже умеют запускать код и отдавать zip-архивы, поэтому новинка воспринимается как догоняющий, а не прорывной шаг.
- Основной запрос сообщества: «Сначала почините стабильность и качество модели, потом добавляйте новые фичи».
VibeVoice: A Frontier Open-Source Text-to-Speech Model 🔥 Горячее
VibeVoice — открытая TTS-модель для создания экспрессивных многоспикерных диалогов (подкасты, интервью).
- Токенизаторы акустический и семантический работают на рекордно низкой частоте 7,5 Гц, сохраняя качество и ускоряя длинные последовательности.
- Архитектура: LLM понимает контекст и диалог, диффузионный «голова» добавляет детали.
- Пределы: до 90 минут, до 4 голосов, поддержка фоновой музыки, спонтанных эмоций и пения.
- Кросс-язычность: свободный перевод с/на китайский и английский.
Комментарии (150)
- Качество VibeVoice высокое, но мужские голоса часто звучат роботизированно и попадают в «зловещую долину».
- Женские образцы заметно реалистичнее; демо-сайт почти всегда начинает с них.
- Лучшие альтернативы: HiggsAudio (быстрее и чище), Kokoro (для слабых GPU) и Chatterbox.
- Модель хорошо клонирует голос и эмоции, поддерживает английский, китайский и индийские акценты, но не SSML и редкие языки.
- Репозиторий временно закрыт, лицензия MIT, но данных обучения не раскрыто.
Grok Code Fast 1 🔥 Горячее 💬 Длинная дискуссия
grok-code-fast-1 — новая модель xAI для агентного кодинга: быстрая, дешевая, заточена под ежедневную работу.
- Скорость: архитектура с нуля, оптимизация инференса, кеш >90 %. Десятки вызовов инструментов до того, как вы прочтёте первую строку мыслей.
- Цена: 0,20 $/1 M входных, 1,50 $/1 M выходных, 0,02 $/1 M кешированных токенов.
- Языки: TypeScript, Python, Java, Rust, C++, Go.
- Инструменты: grep, терминал, редактирование файлов — «родная» работа в IDE.
- Партнёры: временно бесплатно в Cursor, GitHub Copilot, Cline, Roo Code, Kilo Code, opencode, Windsurf.
Производительность
- 190 токенов/сек, SWE-Bench-Verified 70,8 %.
- Оценки реальными разработчиками: быстро и надёжно для рутинных задач.
Комментарии (462)
- Кто-то хвалит grok-code-fast-1 за скорость и качество, сравнивая с gpt-5-mini, другие считают «быстро, но тупо».
- Основная критика: упор на скорость вместо качества, неточные или вредные изменения кода, сомнительные внутренние бенчмарки.
- Несколько человек жалуются, что модель случайно удаляет код и скрывает кнопки «стоп».
- Подняты этические и экологические вопросы: нелегальные газовые турбины и «обученный нацистский бот».
- Часть пользователей просто рада быстрой бесплатной модели в Cursor/VS Code для простых задач.
Vibe coding as a coding veteran: from 8-bit assembly to English-as-code
Vibe-кодинг глазами ветерана
Эксперимент
2 недели, 40 часов, 5 k строк Python: AI-агент и я пишем микро-игру с алгоритмами A*, Minimax и пр. Цель — проверить, вытесняет ли LLM «искусство программирования».
Процесс
- Промптинг: описываю задачи естественным языком, AI генерирует код.
- Рефакторинг: «сделай класс короче», «добавь тесты» — срабатывает 80 %.
- Отладка: трассировка стека + «почему падает?» — LLM быстро находит баги.
- Архитектура: за меня выбирает структуру пакетов, но я корректирую.
Что понравилось
- Скорость: MVP за 3 вечера.
- Меньше рутины: никаких «import os.path.join».
- Новые идеи: AI предложил кэш-стратегию, которой я не планировал.
Что не так
- «Галлюцинации» API: методы, которых нет в библиотеке.
- Сложные баги: race condition LLM не видит без контекста.
- Читаемость: имена вроде
helper_utility_v2приходится переименовывать.
Выводы
- Junior-девелопер теперь = «человек, который умеет спрашивать».
- Сеньор нужен, чтобы фильтровать, тестировать и нести ответственность.
- Синтаксис умирает, зато растёт ценность системного мышления и prompt-инженерии.
Советы ветеранам
- Делайте микро-промпты: «добавь docstring» → «добавь пример вызова».
- Держи CI/CD: автотесты ловят ошибки, которые AI пропустил.
- Используй AI как пару, а не замену: «покажи diff» вместо «перепиши всё».
Итог
Vibe-кодинг не убивает профессию, а сдвигает фокус: от написания символов к управлению смыслом. Сборочная линия есть, но над ней всё ещё нужен человек с вкусом.
Комментарии (107)
- Участники сравнивают LLM с консалтинговой фирмой: 50 % шанс получить эксперта, 50 % — стажёра; приходится перечитывать каждую строку.
- «Vibe-coding» (генерация без чтения) вызывает опасения: сложно дебажить, нельзя защитить авторские права, а тонкие баги пролезают.
- Опыт показывает: AI полезен в известных языках и задачах (Python, CRUD), но почти бесполезен в нишевых (C/C++ gamedev, Prolog, Haskell).
- Старшие разработчики всё равно нужны: только они могут проверять, направлять и «владеть» кодом, созданным ИИ.
- Возникает вопрос: если не брать джунов, откуда возьмутся будущие сеньоры?
- Предлагают термины вместо «vibe-coding»: «pro-coding», «prompt-coding», «reviewing code».
Do I not like Ruby anymore? (2024)
Перешёл в компанию, где стек — Python. Выбор был не из-за языка: Python мне всегда казался гигантским красным флагом. Тем не менее, начинаю к нему привыкать.
Почему я любил Ruby
Ruby — мой первый «язык-любовь»: всё объект, if можно переписать блоками, method_missing позволяет метапрограммировать. Он черпал у Smalltalk и Lisp, и это вдохновляло.
Почему ненавидел Python
Python казался «хуже Ruby» и «ещё хуже Scheme». if — оператор, а не выражение; lambda уродливые; до Python 3 print вообще был оператором. Один «правильный» способ делать всё раздражал.
Типы для нетипизированного
Потом пришёл TypeScript: мощная система типов, narrowing, conditional types. Плохие конструкции языка прощаются статическим анализом.
Я изменился
TypeScript научил: отсутствие match или if-выражения пережить, если компилятор проверит инициализацию. Rust показал, что мутабельность — не зло.
Python изменился
Теперь в Python есть type hints, match с деструктуризацией, а print — функция.
Комментарии (127)
- Автор рассказал, как после появления VSCode и LSP перестал использовать языки без типов и теперь не хочет возвращаться к Ruby без нормальной типизации.
- Участники обсуждают, что Ruby остаётся элегантным и «радостным», но его отказ от постепенной типизации (включая Sorbet) отталкивает многих.
- Python, напротив, эволюционирует: появились аннотации типов, LSP, но язык стал сложнее и уже не «выучить за выходные».
- Некоторые считают, что страсть к Ruby — это ностальгия, а промышленность требует стабильности и инструментов, которые дают статические языки.
- Общий вывод: выбор языка всё чаще диктуется экосистемой, инструментами и личными приоритетами, а не чистой «красотой» синтаксиса.
macOS dotfiles should not go in –/Library/Application Support 💬 Длинная дискуссия
CLI-утилитам не место в ~/Library/Application Support
Популярные библиотеки (Python platformdirs, JS env-paths, Rust dirs, Go adrg/xdg) по умолчанию кладут конфиги в ~/Library/Application Support, но это каталог для GUI-приложений. Пользователи ожидают увидеть настройки CLI-программ в ~/.config, как Git, Vim, Tmux и сотни других. Это ожидание закреплено стандартом XDG и принципом «наименьшего удивления».
Почему это важно
- Неожиданное расположение ломает привычки и усложняет версионирование.
- Даже менеджеры dotfiles (chezmoi, dotbot, yadm, rcm, GNU Stow) игнорируют
~/Library/Application Support, что подтверждает: сообщество считает~/.configединственным разумным местом для конфигов CLI-утилит на macOS.
Комментарии (152)
- Автор утверждает, что CLI-утилиты macOS должны хранить конфиги в ~/.config по XDG, но участники показывают: ни одна поставляемая с macOS утилита этого не делает.
- Большинство считает XDG спецификацией для Linux/Unix-сред и не видят оснований навязывать её macOS, у которой есть собственные места: ~/Library/Preferences и ~/Library/Application Support.
- Разработчики CLI-инструментов, портированных с Linux, действительно часто используют ~/.config, что вызывает у местных пользователей ощущение «плохого порта».
- Предлагаются компромиссы: использовать XDG-переменные, если они заданы, или делать симлинки между ~/.config и ~/Library/Application Support.
- В Rust-экосистеме крейт dirs-rs игнорирует XDG на macOS; участники обсуждают создание форка, который бы следовал спецификации.
How to build a coding agent 🔥 Горячее
Как собрать код-агента: бесплатный воркшоп
Материалы и исходники: GitHub
Суть
- Агент — это 300 строк кода, работающие в цикле, которому просто подаются токены LLM.
- Поняв принцип, вы перестанете быть потребителем ИИ и станете его продюсером, автоматизируя свою работу.
Зачем
- В 2025 г. знание, как создать агента, стало фундаментальным навыком, как понимание primary key.
- Работодатели ищут тех, кто может оркестрировать ИИ внутри компании.
- Во время Zoom-звонка ваш агент может уже писать код, который вы только обсуждаете.
Что будет на воркшопе
- Live-сборка агента прямо во время доклада.
- Объяснение внутреннего устройства: цикл, токены, промпты.
- Практика: агент строит агента под диктовку.
Дальше
- Если хотите, чтобы я провёл такой воркшоп у вас в компании — пишите.
Комментарии (110)
- Команда Princeton SWE-bench выложила компактный (~100 строк) агент для SWE-bench.
- Пользователи жалуются на перегруженный AI-слайд-стиль и избыточные картинки, которые мешают чтению.
- Спор о необходимости отдельных инструментов: многие действия можно делать через bash, но специализированные утилиты экономят токены и повышают надёжность.
- Обсуждают, что «токены = деньги» и что локальные модели могут изменить ситуацию.
- Критика: пост показывает лишь базовый подход, не раскрывая продвинутые темы (sandbox, snapshot, prompt-инженерия).
It’s not wrong that "\u{1F926}\u{1F3FC}\u200D\u2642\uFE0F".length == 7 (2019) 💬 Длинная дискуссия
В JavaScript "🤦🏼♂️".length == 7 — не ошибка, а результат подсчёта UTF-16 кодовых единиц.
Эмодзи состоит из 5 скалярных значений Unicode, но в UTF-16 они занимают 7 code units:
- 🤦 U+1F926 → 2
- 🏼 U+1F3FC → 2
- ZWJ U+200D → 1
- ♂ U+2642 → 1
- VAR-16 U+FE0F → 1
Итого 7 — именно это и возвращает .length.
Другие языки считают по-своему:
- Python 3 →
len("🤦🏼♂️") == 5(кодовые точки, но допускает суррогаты). - Rust →
"🤦🏼♂️".len() == 17(байты UTF-8). - Swift →
"🤦🏼♂️".count == 1(расширенный графем-кластер).
Каждый подход отвечает на свой вопрос: «сколько code units / bytes / графем». Ни один не универсален; выбор зависит от задачи.
Комментарии (233)
- Обсуждение вокруг статьи показало, что «длина строки» не имеет единого определения: бывают байты, UTF-16/UTF-32 код-юниты, скалярные значения Unicode и расширенные графем-кластеры.
- Пользователи жалуются, что разные языки и API возвращают разные числа для одного и того же эмодзи, что ломает UI-ограничения, индексы БД и обработку текста.
- Часть участников считает, что нужно явно различать «длину для хранения», «длину для отображения» и «длину для человека»; другие мечтают вернуться к чистому ASCII.
- Примеры кода на Java, Python, Raku и JS показывают, как получить каждый из вариантов длины, но подчеркивают отсутствие общего стандарта.
- Итог: «length» — слишком расплывчатое слово; без контекста использования любое его значение может оказаться не тем, что действительно нужно.
MCP doesn't need tools, it needs code
CLI-инструменты часто зависят от платформы/версии, плохо документированы и ломаются при не-ASCII вводе. Агенты путаются в управлении состоянием (например, tmux-сессиями) и теряют контекст после мелкой ошибки. Каждый вызов ещё тормозит из-за предварительной проверки безопасности.
Композиция в CLI работает через bash: цепочки tmux send-keys, sleep, base64 и т.д. MCP сегодня так не умеет.
Выход — MCP-сервер с одним «убер-инструментом»: Python-интерпретатор, сохраняющий состояние между вызовами. Пример — pexpect-mcp: виртуальное окружение + pexpect, позволяющее скриптами управлять интерактивными CLI-программами. Вместо 30 отдельных MCP-функций достаточно одной, принимающей код.
Комментарии (110)
- Участники спорят, нужен ли MCP (Model Context Protocol): кто-то считает его лишним слоем, другие — полезным способом дать LLM структурированные инструменты.
- Критика: MCP ограничивает агента набором команд, не решает безопасность, дублирует OpenAPI и заставляет LLM учиться новому формату вместо bash/API.
- Альтернативы: прямое обращение к HTTP/CLI/WebSocket (UTCP), YAML-описание тулов (hooks_mcp), eval в песочнице (runjs, Bubblewrap).
- Практические проблемы: при 100+ тулов агент путается; приходится писать кучу обвязок вместо «просто вызвать API».
- Общий вывод: MCP пока выглядит сыро, требует лишних усилий и не даёт очевидных преимуществ перед строками/bash/API.
LL3M: Large Language 3D Modelers 🔥 Горячее 💬 Длинная дискуссия
LL3M — система, где несколько LLM пишут Python-код для Blender, создавая и редактируя 3D-модели по текстовым запросам. В отличие от прежних подходов, ограниченных примитивами, LL3M свободно формирует геометрию, компоновку и материалы. Код служит представлением объекта, что позволяет автоматическую и пользовательскую итеративную доработку.
Процесс
- Создание — первичная модель.
- Авто-улучшение — самокоррекция ошибок и упрощённой геометрии.
- Пользовательская доработка — интерактивные правки по запросу.
Возможности
- Разнообразие форм: архитектура, инструменты, скейтборд и т.д.
- Стилизация: один запрос «в стиле стимпанк» меняет геометрию и материалы разных шляп.
- Материалы: процедурные шейдеры, редактируемые узлы.
- Последовательные правки: сохраняется идентичность объекта.
- Прозрачность: читаемый код с комментариями, понятные параметры в Blender.
- Повторное использование: общие паттерны кода переносятся между категориями объектов.
- Сцены: генерация иерархий объектов с корректными пространственными связями.
Комментарии (173)
- Пользователи делятся опытом: meshy.ai превращает упрощённые 2D-изображения в 3D-модели, а Claude помогает писать Lua-скрипты для Aseprite и Python для FreeCAD/Blender.
- Ветераны Blender критикуют качество и высокий полигон-счёт, считая инструмент «игрушкой» или «обучающим» для новичков.
- Сторонники видят в этом будущее «solo-dev»: быстрый прототип, экономия времени и API-first подход в креативных пакетах.
- Поднимаются вопросы безопасности (несэндбоксированный Python), прав и монетизации опыта художников, а также необходимости понимания 3D-семантики для эффективных промптов.
- Общий консенсус: сейчас это «cute», но каждая новая итерация будет лучше, и генеративные модели всё ближе к «говорящим на языке геометрии».
Debian 13 “Trixie” 🔥 Горячее 💬 Длинная дискуссия
Debian 13 «trixie» вышел 9 августа 2025 года после 2 лет разработки.
Поддержка — 5 лет (Security + LTS).
Десктопы: GNOME 48, KDE Plasma 6.3, LXDE 13, LXQt 2.1, Xfce 4.20.
Пакетов: 69 830 (+14 100 новых, –8 840 устаревших, 44 326 обновлённых).
Размер: 403 ГБ, 1,46 млрд строк кода.
Ядро: 6.12 LTS; первый релиз с официальной поддержкой riscv64.
Архитектуры: amd64, arm64, armel, armhf, ppc64el, riscv64, s390x.
i386 больше не поддерживается; armel последний релиз.
Ключевые обновления: Apache 2.4.64, Bash 5.2.37, BIND 9.20, GCC 14.2, LibreOffice 25.2, MariaDB 11.8, Nginx 1.26, OpenJDK 21, PHP 8.4, PostgreSQL 17, Python 3.13, Rust 1.85, systemd 257 и др.
Облако: образы для EC2, Azure, OpenStack, PlainVM, NoCloud с cloud-init и оптимизированным загрузчиком.
Live-образы: amd64/arm64, GNOME/KDE и др.; установка через Calamares или стандартный установщик.
Комментарии (343)
- Debian 13 «Trixie» вышла: 63 % пакетов обновлены, поддержка 7 архитектур, включая RISC-V.
- i386 теперь только как «amd32»-совместимый, официального ядра/инсталлятора нет.
- Появился новый формат APT-репозиториев debian.sources, старый sources.list пока работает.
- 95 % пакетов достигают bit-for-bit воспроизводимости на amd64/arm64/riscv64.
- /tmp теперь tmpfs по умолчанию (до 50 % ОЗУ), но можно вернуть старое поведение.
- Пользователи хвалят стабильность, скорость обновления «stable→stable» и отсутствие snap.
The current state of LLM-driven development 💬 Длинная дискуссия
LLM-разработка: краткий итог
- Мифы: LLM не делают код продакшн-готовым, требуют понимания задачи и хорошо структурированных кодовых баз. Использование LLM снижает навыки чтения документации и глубокого мышления.
- Агенты — это просто цикл «LLM → вызов локального API → ответ → LLM снова». Инструменты: навигация, редактирование, shell, поиск, MCP-серверы.
- Проблемы продуктов
- Нестабильность: модели и цены меняются еженедельно.
- Нет детерминизма, приходится постоянно обновлять промпты и MCP.
- Тесты
- Python, TypeScript, Rust, Flutter, сложные рефакторинги — справляются.
- Не справились: Token Field во Flutter (редкий компонент, сложное управление состоянием). Claude Opus 4.1 и GPT-5 провалили задачу.
Продукты
-
GitHub Copilot
- Плюсы: быстрое автодополнение, стабильность, низкая цена.
- Минусы: слабые «агенты», нет контекста всего проекта.
-
Claude Code Pro
- Плюсы: лучший «умный» режим, хорошо работает в больших кодовых базах.
- Минусы: дорого, медленно, иногда «теряется».
-
Gemini CLI / Jules
- Плюсы: бесплатный CLI, быстрый.
- Минусы: слабые модели, ограниченные возможности.
-
Kiro, Cursor, Windsurf
- Плюсы: встроенные редакторы, удобные интерфейсы.
- Минусы: дороже, часто баги, привязка к конкретному редактору.
Когда LLM полезны
- Лучшие языки: Python, TypeScript/JavaScript, Go.
- Лучшие задачи:
- Репетитивный код, тесты, миграции.
- Документация, примеры, объяснение legacy.
- Плохо:
- Редкие фреймворки, сложные UI, архитектурные решения.
- Надёжность и безопасность.
Вывод
LLM — полезный инструмент для рутины и прототипов, но не заменяет мышление и глубокое понимание.
Комментарии (179)
- Многие спорят с тезисом «использовать LLM в коде тривиально»: на практике нужны месяцы, чтобы понять, что делегировать, как формировать промпты и управлять контекстом.
- Кто-то сравнивает LLM с «однорукими бандитами»: результат часто случаен, а «навыки» сводятся к удаче и базовому гуглению.
- Другие делятся успешным опытом: при жёсткой архитектуре, тестах и узких промптах Claude Code и аналоги дают 9/10 полезных патчей.
- Утверждение, что LLM «заставляют» выбирать мейнстек, опровергают разработчики на Clojure, D и других нишевых языках.
- Общий вывод: LLM — мощный инструмент, но требует экспериментов, критического ревью и понимания своих ограничений; без этого он быстро превращается в источник технического долга.
A spellchecker used to be a major feat of software engineering (2008) 💬 Длинная дискуссия
1984: словарь в 256 КБ
Представьте: вам поручили написать спеллчекер для MS-DOS-текстового редактора. У части пользователей всего 256 КБ ОЗУ — и туда должны поместиться редактор, сам документ, ОС и ещё словарь. Сегодня /usr/share/dict/words весит 2,5 МБ и содержит 235 000 слов; тогда это был нереальный объём.
Сжатие трие, вырезание редких слов, кастомная БД на гибком диске 360 КБ — всё это требовало месяцев инженерной работы и гениальных структур данных.
Сейчас
Загрузить словарь в хеш-таблицу — 3–5 строк на Perl или Python; поиск слова — встроенная операция. Всё.
Комментарии (176)
- Пользователи жалуются, что встроенный спелл-чекер iPhone (и Android) часто хуже человеческого глаза и LLM: «No Guesses Found» при очевидных ошибках.
- Причины: жёсткие ограничения по скорости и памяти, отсутствие контекста, излишняя буквальность алгоритмов.
- Многие отказались от встроенных средств и ищут слова в Google или используют LLM.
- Участники вспоминают, как в 80-е спелл-чекер был прорывом, но требовал переключения дискет и выдавал лишь список ошибок без подсказок.
- Сегодня задача «проверить орфографию» тривиальна, а вот «предложить правильное» по-прежнему требует сложной инженерии.
Dotfiles feel too personal to share
Я обожаю dotfiles.
“Dotfiles” — это конфигурационные файлы для программ и ОС, часто начинаются с точки: .bashrc, .tmux.conf, .zshrc. Когда софт не поддерживает настройку файлами, грустно: сложнее синхронизировать конфиги между устройствами и при настройке новых машин.
Я люблю делиться: пишу блог, веду цифровой сад заметок и выкладываю почти весь код на GitHub. И обожаю читать чужие dotfiles, учиться у них.
Но свои публиковать некомфортно: мои алиасы, кастомизации и решения кажутся слишком личными. Почему — точно не знаю.
У меня есть классный репозиторий с кучей всего: конфиг zsh и алиасы, tmux, neovim и vscode, Python startup-скрипт. Храню список пакетов Homebrew — ставлю на новый компьютер одной командой. Там же — CSS-правила для Stylus, чтобы везде получать нужный вид.
Для управления использую GNU Stow: структура папок позволяет командой stow [folder] раскидать симлинки по нужным местам, и изменения синхронизируются на всех машинах. Это очень удобно.
В сумме там 19 конфигов плюс весь мой neovim с плагинами. Но пока я «берегу их как тайну», пока не почувствую готовность делиться.
Если откликнулось — напишите на juhamattisantala at gmail dot com. В 2025 хочу больше глубоких разговоров с людьми со всего мира — буду рад вашему письму.
Комментарии (140)
- Участники разделились: одни считают дотфайлы слишком личными/уязвимыми для публикации, другие — ценным источником обмена знаниями и вдохновения.
- Главные опасения: утечки секретов и контекста (хосты, пути, IP, корпоративные детали), риски социнженерии и отпечатков, а также стыд/страх оценки «неидеальной» личной конфигурации.
- Распространенная практика — разделение на слои: публичные «универсальные» настройки, приватные оверрайды и секреты; отдельные репозитории, шифрование (age/gpg, sops), менеджеры вроде chezmoi, myba, Polykey.
- Советы по безопасности: не хранить секреты в .bashrc и подобных, исключать их через .gitignore, использовать шифрование и хранилища (1Password ссылки, отдельные файлы, приватные репо).
- Польза публикации: обучение через чужие конфиги (vim/zsh/emacs/nvim), улучшения качества жизни через алиасы/маппинги, возможность быстро делиться и переустанавливать окружение.
- Практические подходы: файл-локальные приватные настройки, employer-специфические include-файлы, документирование и чистка перед открытием, минимизация зависимостей от нестандартного софта.
- Итоговый консенсус: «делиться избирательно» — держать публичным обобщаемое и полезное, а чувствительное и слишком личное — приватным или зашифрованным.
NautilusTrader: Open-source algorithmic trading platform
-
Самая быстрая и надежная open-source платформа для трейдинга. Торгуйте любым классом активов в одном месте. Событийные бэктесты на любых исторических данных. Лайв-трейдинг без изменений кода.
-
Решения:
- Open Source — репозиторий на GitHub.
- Cloud Platform — облачная платформа Nautilus Cloud.
-
Компания: О нас, Команда, Партнеры, Правовое.
-
Ресурсы: Документация, Образование (скоро), Блог, Начать, Discord.
-
Платформа для алгоритмической торговли:
- Интеграция данных: загрузка кастомных/сырых данных в формат parquet.
- Построение стратегий: Python API, стрим до 5 млн строк/с, больше RAM.
- Аналитика: моделирование рынка с наносекундной точностью, событийные результаты.
- Быстрая итерация: экстремально быстрые бэктесты.
- Лайв-торговля: надежный запуск, паритет кода бэктест/лайв.
- Исполнение: высокопроизводительное low-latency исполнение на Rust.
-
Классы активов:
- Крипто: спот, фьючерсы, деривативы, опционы; нормализованные инструменты.
- Фьючерсы: активация/экспирация, базовые активы, биржи, лоты, множители.
- Акции: шорт-ограничения, кэш/маржин, круглые/нестандартные лоты, мульти-биржа.
- Опционы: Греки и сигналы на внутренней шине; точные спецификации контрактов.
- FX: спот и деривативы, базовая/котировая/расчетная валюты; биржи и ECN.
- Беттинг: спортивные и альтернативные рынки, полный стакан, адаптер Betfair.
-
Безлимитные бэктесты стратегий, площадок и рынков. Стратегии для любых инструментов и веню.
-
Ключевые возможности:
- Простые модульные компоненты: Clock, Cache, MessageBus, Portfolio, Actors.
- Точное время: наносекундные часы для бэктеста и лайва.
- Быстрая конфигурация: торговля на множестве веню и параметров без изменения кода стратегии.
- Продвинутые ордера: post-only, reduce-only, OCO, OTO и др.
- Интеграции API: быстрый коннект новых бирж и провайдеров данных.
- Высокая производительность: ядро на Rust.
-
Партнеры: Databento, OKX.
-
Выразите идеи стратегий через чистый, мощный API:
- Python API: совместим с ML/AI-фреймворками и любым Python-кодом.
- Любые типы стратегий: настраиваемые компоненты для любой идеи.
- Конфигурации стратегий: упрощение настройки.
Комментарии (121)
- Обсуждение крутится вокруг алгоритмической торговли и платформ, с акцентом на рисках и иллюзии «успешных» стратегий: многие отмечают, что без информационного или инфраструктурного преимущества (HFT) торговля похожа на подбрасывание монетки.
- Несколько комментаторов поделились опытом: высокие проценты «успешных» сделок с редкими, но разрушительными просадками; out-of-sample провалы ML/бэктестов; необходимость чёткой «edge» (ребейты, латентность, маркет-мейкинг, арбитраж).
- Выделяют, что разработка OMS/интеграций и бэктестера — «лёгкая часть»; основная сложность — поиск и валидация стратегий и управление рисками (упоминание негативной асимметрии, LTCM, Карвер).
- Практический совет многим — предпочесть долгосрочное инвестирование (индексные фонды, buy-and-hold) вместо активного трейдинга; ряд участников подтвердили, что это повысило их результаты и снизило стресс.
- Обсуждается платформа Nautilus: впечатляющая полнота (особенно risk engine), но интеграция с брокерами (IBKR и др.) и регуляторные проверки сложны; указывается на список интеграций и сравнение с LEAN/QuantConnect.
- Скепсис к розничной алготорговле: необходимость капитала/инфраструктуры, риск банов у брокеров, низкомаржинальные «нейтральные» портфели в HFT требуют больших ресурсов; многие считают, что в одиночку стабильно зарабатывать почти нереально.
- Встречаются идеи обучающих симуляторов и простых целей (например, $1/день как POC), но общий тон — трезвый: дисциплина риск-менеджмента важнее «волшебных» моделей, а охота за стратегиями — глубокая и дорогостоящая нора.
Python performance myths and fairy tales 💬 Длинная дискуссия
Добро пожаловать на LWN.net
Этот материал для подписчиков стал доступен благодаря читателю LWN. Тысячи подписчиков зависят от LWN как от источника новостей о Linux и свободном ПО. Если статья вам понравилась, пожалуйста, рассмотрите возможность оформления подписки. Спасибо за визит!
Антонио Куни, давний инженер по производительности Python и разработчик PyPy, на EuroPython 2025 в Праге представил доклад «Мифы и сказки про производительность Python». По его мнению, привычная «мудрость» о скорости Python часто вводит в заблуждение. На примерах он показал реальные узкие места и пришел к выводу: в конечном счете предел оптимизаций упирается в управление памятью. Он начал ранний проект SPy, который, возможно, приведет к сверхбыстрому Python.
Он попросил зал поднять руки, кто считает «Python медленным или недостаточно быстрым» — рук было много (в отличие от PyCon Italy). Годы работы с производительностью и общение с разработчиками породили набор мифов, которые он хочет развеять.
Мифы
Миф: «Python не медленный». Да, часто «достаточно быстрый», особенно как «склеечный» язык в эпоху «важен только GPU». Но это верно лишь для части задач. Есть множество программ, где скорость Python критична — отсюда постоянные усилия по оптимизации интерпретатора и перенос горячих участков в Cython, Numba и т.п.
В слайдах он показал множества: «программы, где Python достаточно быстр» — подмножество «всех Python-программ», а снаружи — «все возможные программы». В идеале Python должен подходить для всех; пока что задачи, требующие максимума от процессора, не могут быть на Python. Он хочет расширять «внутренние круги».
Королларий «это всего лишь клей»: «просто перепишите горячее в C/C++» (сегодня — в Rust). Прием рабочий, но быстро упирается в стену: принцип Парето подсказывает оптимизировать 20% кода, где 80% времени, но затем срабатывает закон Амдаля — ускорив горячую часть, вы упираетесь в остальной код, который начинает доминировать во времени выполнения.
Еще миф: «Python медленный, потому что интерпретируемый». Интерпретация — лишь малая часть. Даже выражение p.x * 2 в C/C++/Rust — это загрузка, умножение, сохранение. В Python же нужно определить тип p, вызвать getattribute(), распаковать p.x и 2, выполнить операцию с учетом перегрузок и протоколов, упаковать результат, выделить память и т.д. Это диктуют семантика и динамичность языка, не способ исполнения.
Статические типы
С распространением тайпингов слышно: «теперь компиляторы могут пропускать лишнее и считать напрямую». Пример:
def add(x: int, y: int) -> int:
return x + y
print(add(2, 3))
Но аннотации не применяются во время выполнения, и можно вызвать:
print(add('hello ', 'world')) # type: ignore
Чекер доволен, но семантика сложения уже другая. Аннотации бесполезны для оптимизации и скорости, если их не гарантирует рантайм. Более того, в Python легально перегружать операции, меняя поведение в рантайме, что разрушает предпосылки для агрессивных оптимизаций.
Комментарии (200)
- Обсуждение сосредоточено на мифах о скорости Python: динамичность языка, непредсказуемость типов и плохая кэш-локальность мешают компиляторам и JIT достигать производительности системных языков без компромиссов по совместимости и простоте.
- Многие отмечают, что JIT и спекулятивное выполнение помогают на «хэппи-пате», но становятся хрупкими: небольшие изменения кода могут срывать оптимизации и резко просаживать скорость.
- Популярные пути ускорения — PyPy, Numba, Pythran, mypyc, а также перенос «горячих» участков в C/C++/Rust или использование DSL/субсетов (SPy); однако граница вызовов и динамика Python часто «съедают» выгоды.
- Отмечают альтернативы и эволюцию: Mojo как супермножество Python с статикой и компиляцией, возможное сосуществование компиляторов рядом с CPython вместо «Python 4».
- Критики указывают, что популярность Python не доказывает его производительность; многие реальные «тормоза» — это не CPU, а I/O и сеть, где помогают async и масштабирование.
- Скептики считают, что «быстрым» Python не станет без отказа от ключевых динамических свойств (примерно как в JS — оптимизации на общий случай, но с ограничениями); часть участников предлагает оставлять Python для скриптинга и клеевого кода.
- Вопросы многопоточности, старта интерпретатора и GIL остаются проблемными; параллельно обсуждают идеи «final»-квалификаторов, иммутабельности и GPU/параллельных подходов, но признают их практические ограничения.
Open models by OpenAI 🔥 Горячее 💬 Длинная дискуссия
Открытые модели OpenAI
Продвинутые модели с открытыми весами для любого кейса и запуска где угодно.
Ссылки:
- Загрузить на Hugging Face
- Исходники на GitHub
- Попробовать демо
Модели:
- gpt-oss-120b — крупная модель для дата-центров и мощных ПК/ноутбуков.
- gpt-oss-20b — средняя модель, работает на большинстве ПК/ноутбуков.
Преимущества:
- Разрешительная лицензия: Apache 2.0 — свободная разработка, без копилефта и патентных рисков; подходит для экспериментов, кастомизации и коммерческого использования.
- Для агентных задач: сильное следование инструкциям и работа с инструментами в ходе рассуждений (веб-поиск, запуск Python-кода).
- Глубокая настраиваемость: выбор уровня «усилия рассуждений» (низкий/средний/высокий) и полно-параметрический финтюнинг под ваш кейс.
- Полная «цепочка рассуждений»: доступна для удобной отладки и повышения доверия к ответам.
Интерактивное демо:
- Простой playground для запуска обеих моделей в браузере.
Комментарии (845)
- Обсуждение посвящено выходу открытых моделей OpenAI gpt-oss (20B и 120B), которые по бенчмаркам близки к o3/o4-mini и местами обгоняют открытые лидеры; многие отмечают, что 20B уже реально запускается локально на Mac/мобильных устройствах.
- Пользователи делятся первыми впечатлениями и ссылками на обзоры/модель-карты, отмечая конкурентную производительность, совместимый токенайзер и адекватное лицензирование; есть поддержка в llama.cpp, Ollama, LM Studio, Harmony формат ответов и растущая роль Rust в инструментах OpenAI.
- Скорости инференса сильно варьируются: от очень быстрых облачных провайдеров (Cerebras/Groq на OpenRouter) до заметных задержек локально при больших контекстах; производительность зависит от GPU/платформы и параметров квантования.
- Отмечают стратегический сдвиг OpenAI к модели Meta: открытые веса как средство захвата экосистемы и снижения порога входа; звучат предположения, что релиз предвосхищает скорый анонс ещё более сильной закрытой модели.
- Сообщество обсуждает экономику: гибридные пайплайны (локально — простые задачи, в облако — сложные), возможность заменять платные подписки локальным запуском, и общий тренд в пользу OSS при минимальной разнице в качестве.
- Есть критика: у 120B встречаются галлюцинации на фактах, часть пользователей недовольна агрессивной безопасностью/отказами, отсутствием оптимизаций под RTX 50, а также неполной мультимодальностью.
- В целом настроение позитивное: многие благодарят за «настоящий» открытый релиз с сопутствующими инструментами и ожидают независимых бенчмарков, которые могут закрепить лидерство gpt-oss среди текстовых открытых моделей.