Hacker News Digest

Тег: #python

Постов: 69

Pre-Release of Polars 2.0 (pola.rs) 🔥 Горячее

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.

by komape • 03 сентября 2026 г. в 06:59 • 321 points

ОригиналHN

#argumentremovederror#attributeremovederror#is-in#join-nulls#lazyframe#pip#polars#python#streaming-engine#unpivot

Комментарии (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 (simonwillison.net) 🔥 Горячее 💬 Длинная дискуссия

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-интерфейс.

by timpera • 01 сентября 2026 г. в 20:07 • 336 points

ОригиналHN

#chatgpt-desktop#codex#git#headless#libreoffice#llm#nodejs#openai#poppler#python

Комментарии (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 (embracethered.com) 🔥 Горячее

Несмотря на заявления Anthropic о 0,00% успешности атак через инъекции в Claude Code Opus 5 в Auto Mode, исследователь продемонстрировал успешную атаку с вероятностью 60–80%. Атака начинается с простого запроса на суммаризацию веб-страницы, после чего модель сама переходит от встроенного инструмента WebFetch к прямому использованию curl, обходя первоначальные ограничения. Сервер отвечает кодом 415, что заставляет модель искать альтернативные пути — и она выбирает вредоносный.

Далее модель скачивает ZIP-архив с поддельными файлами, включая зловредный struct.py, который перекрывает стандартную библиотеку Python. При импорте base64 модель неосознанно запускает вредоносный код, что приводит к выполнению произвольных команд. Ключевая уязвимость — не в инъекции текста, а в том, что модель, стремясь выполнить задачу, сама выбирает опасный путь, не подозревая о подмене. Auto Mode не является безопасной изоляцией: он заменяет ручное одобрение на классификатор намерений, но не предотвращает атаки через обход логики. Без песочницы и мониторинга даже продвинутые модели уязвимы.

by Recursing • 31 августа 2026 г. в 07:49 • 362 points

ОригиналHN

#anthropic#base64#claude#curl#injection#python#vulnerability#webfetch#zip

Комментарии (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 (github.com)

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 и прошёл ревью.

by tosh • 31 августа 2026 г. в 06:03 • 213 points

ОригиналHN

#anyio#azure#azure-storage-api#mend-renovate-cli#numpy#python#pytorch#sympy#uv#wheel

Комментарии (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 (sebsite.pw)

Python имеет шесть предопределённых «констант», но все они ведут себя по-разному из-за исторических и синтаксических решений. True, False и None — это лексические токены, а не имена: их нельзя переопределить, даже через setattr(builtins, ...), и попытка написать x.True вызывает SyntaxError, потому что это не допускается синтаксисом. При этом они всё ещё существуют как атрибуты builtins, но их значения игнорируются при прямом использовании.

__debug__ — уникальный случай: это обычный идентификатор, но его нельзя ни присвоить, ни удалить — даже как атрибут, и даже при -O он остаётся неизменным в контексте выполнения. При этом x.__debug__ даёт AttributeError, а не SyntaxError, потому что синтаксически корректен. Ellipsis и NotImplemented — просто встроенные переменные, которые можно перезаписать: NotImplemented = 67 работает. Однако ... (эквивалент Ellipsis) остаётся неизменным, как лексический токен, в то время как имя Ellipsis — нет. Это создаёт странное несоответствие: один и тот же объект доступен через два механизма с разной степенью защиты.

by rbanffy • 25 августа 2026 г. в 21:39 • 156 points

ОригиналHN

#builtins#constants#debug#ellipsis#false#none#notimplemented#python#syntax#true

Комментарии (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) (mcfunley.com) 🔥 Горячее

Борьба с «инновационными токенами» — ключ к устойчивому росту. Каждый проект получает всего три шанса на радикальные технологические эксперименты; их расходование на эксперименты вроде NodeJS, MongoDB или новейших сервисов обнаружения приводит к риску провала. Вместо этого выбирайте «скучные», но проверенные решения — MySQL, Postgres, PHP, Python, Memcached. Их известные слабые места позволяют заранее спланировать отказоустойчивость, в отличие от новых технологий, где неизвестные неизвестные часто оказываются катастрофическими.

Оптимизация должна быть глобальной: фокус на долгосрочной стабильности, а не на блеске. В Etsy, используя «скучный стек», команда масштабировала активности в 20 раз без вмешательства, пока не отвлеклась на новые решения. Это подтверждает, что сознательный отказ от избыточной инновации ускоряет успех, а не замедляет его.

by tosh • 13 августа 2026 г. в 17:48 • 293 points

ОригиналHN

#etsy#memcached#mongodb#mysql#nodejs#php#postgresql#python

Комментарии (147)

Тред критикует концепцию «инновационных токенов» как излишне упрощённую, подчёркивая, что выбор технологий должен основываться на конкретных потребностях проекта, а не на новизне. @NickNaraghi считает её полезной для принятия решений, но @insanitybit, @threethirtytwo и @euthymiclabs возражают: новизна не заменяет надёжность и стабильность. @gaigalas предлагает компромисс — 80% «скучных», 20% инновационных технологий, чтобы избежать конфликтов.

Codex Security (github.com) 🔥 Горячее 💬 Длинная дискуссия

Инструмент @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 для дальнейшего анализа.

by bakigul • 28 июля 2026 г. в 20:52 • 515 points

ОригиналHN

#cli#codex-security#github#nodejs#npm#openai#python#sdk#typescript

Комментарии (184)

Тред обсуждает практический опыт использования Codex Security: пользователи отмечают высокие затраты и ограничения по скорости запросов, что может быть проблемой для крупных проектов. Есть споры о его эффективности — одни считают инструмент полезным для обнаружения уязвимостей, другие сомневаются в его способностях. Рекомендуется использовать опцию --max-cost для контроля расходов. Codex Security сравнивают с Snyk и Strix, обсуждая его потенциальное влияние на рынок безопасности.

Kimi Work (kimi.com) 🔥 Горячее 💬 Длинная дискуссия

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» блокирует несанкционированные операции. Веб‑агент может автоматически собрать последние новости и подготовить их в виде сводки, экономя часы ручной работы.

by ms7892 • 20 июля 2026 г. в 17:13 • 617 points

ОригиналHN

#kimi#kimi-work#python

Комментарии (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 (prismml.com) 🔥 Горячее 💬 Длинная дискуссия

Сегодня анонсирован 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‑превью уже открыт для разработчиков.

by xenova • 14 июля 2026 г. в 17:50 • 616 points

ОригиналHN

#apache-2.0#apple#bonsai-27b#cuda#hugging-face#iphone#mlx#nvidia#python#qwen3.6-27b

Комментарии (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 (jola.dev) 🔥 Горячее 💬 Длинная дискуссия

Клод стал заменять «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 комментариев, где участники делятся своими наборами замен и шутками. Некоторые даже используют её для создания персонализированных стикеров в чатах.

by shintoist • 14 июля 2026 г. в 11:46 • 392 points

ОригиналHN

#claude#json#python#regex#scripting

Комментарии (447)

  • Люди раздражаются из‑за повторяющихся «клаудизмов», которые модель использует в любом контексте
  • Большинство ищут способы ограничить такие фразы через CLAUDE.md или собственные подсказки
  • Психологически раздражает, когда ИИ «застревает» в предсказуемом стиле, в отличие от человеческого вариативного голоса
  • Некоторые считают эти паттерны полезными сигналом ИИ‑содержимого, но хотят, чтобы модель могла адаптировать стиль под задачу

Fable turned reMarkable into Tom Riddle's diary from Harry Potter (github.com) 🔥 Горячее 💬 Длинная дискуссия

В проекте на GitHub «riddle» создатели превратили ремарк‑планшет Paper Pro в дневник Тому Ридла: каждый ваш штрих «поглощает» страницу, а система мгновенно отвечает в плавном каллиграфическом почерке. За счёт интеграции с языковой моделью, ввод с стилуса преобразуется в текст, который модель переводит в ответы, а затем рендерит как будто написанные пером, сохраняя динамику и эмоцию.

Технически проект захватывает траектории пера через API ремарк‑устройства, передаёт их на сервер, где нейросеть генерирует ответы в стиле Тому Ридла и преобразует их в векторный курсивный шрифт, имитирующий его плавный почерк. Ответы поддерживают до 200 символов, позволяя задавать сложные вопросы и получать развернутые реплики. Открытый код репозитория дает возможность склонировать, настроить модель под свой стиль и экспериментировать с подсказками. В результате пользователь получает живой «разговор» с персонажем, который «пишет» ему обратно, словно чернила оживают, а оформление в элегантном курсивном шрифте напоминает письма из «Гарри Поттера». Такой подход превращает цифровой ноутбук в интерактивный дневник, способный вести диалог в викторианском стиле, и оставляет неизгладимое впечатление, и открывает новые возможности для творческого взаимодействия.

by modinfo • 06 июля 2026 г. в 23:00 • 629 points

ОригиналHN

#api#e-ink#github#harry-potter#llm#neural-network#python#remarkable#server#stylus

Комментарии (419)

  • Проект превращает reMarkable в «дневник Тома Ридла», используя локальную модель LLM, выводящую текст на бумагу.
  • Пользователи отмечают интерес к новому способу взаимодействия без экрана и клавиатуры, но критикуют отсутствие демо‑видео и «мгновенный» стиль письма.
  • Некоторые сравнивают проект с «мрачным» стилем книги и с «хагрид‑эффектом», другие видят в нём лишь рекламный трюк.
  • Обсуждение включает вопросы о практической ценности, необходимости SDK и возможностях дальнейшего развития на e‑ink устройствах.

Help I accidentally a wigglegram (lmao.center) 🔥 Горячее

Я случайно создал множество wigglegram‑ов — коротких стерео‑анимаций, собранных из серийных кадров, сделанных телефоном при поиске «идеального» кадра. Для автоматического поиска похожих снимков я написал скрипт, который вычисляет перцептивный хеш каждого фото (по принципу TinEye) и сравнивает их хэмминговским расстоянием; порог в 10 бит позволяет отбирать пары кадров, которые затем склеиваются в GIF‑ы. Скачивание фото из iCloud занимает время, но хеширование проходит быстро, и после фильтрации остаются только действительно похожие кадры. В итоге получаются сотни wigglegram‑ов, отражающих как города, так и животных.

Полученные wigglegram‑ы охватывают всё: от панорамных видов «Space Mountain» и «Block Island» до милых котов, голубей и даже скульптур, где камера слегка покачивается, создавая кинетический эффект. Некоторые снимки сделаны намеренно, но большинство – чистый случай, превращаясь в короткие «фильмы» без привычного стерео‑эффекта. Скрипт доступен на GitHub, его можно запустить на macOS‑Mac, подключив iCloud‑библиотеку, или указать обычную папку с фотографиями. В конце примечания автор поздравил себя с днём рождения, опубликовав анимацию «happy birthday ig». Это простой способ превратить хаотичные фото в забавный визуальный контент.

by gregsadetsky • 20 июня 2026 г. в 01:55 • 580 points

ОригиналHN

#gif#github#icloud#live-photos#macos#python#raspberry-pi#stereo#tineye#wigglegram

Комментарии (127)

  • Существует несколько способов создания wigglegram: съёмка сразу несколькими объективами или генерация перспективы из одного снимка.
  • Для работы используют готовые библиотеки (например, mpl_stereo) и кастомные камеры, включая решения на Raspberry Pi и скрипты для поиска дубликатов в фотоархивах.
  • Качество эффекта зависит от выравнивания кадров и скорости анимации; некоторые пользователи отмечают головокружение и дискомфорт при слишком быстром движении.
  • Технические детали включают использование Live Photos, dithering для экономии места, возможность интерактивного параллакса и сравнение с традиционными 3D‑форматами.

Lore – Open source version control system designed for scalability (lore.org) 🔥 Горячее 💬 Длинная дискуссия

Lore — это новый открытый контроль версий, созданный Epic Games для масштабных игровых и развлекательных проектов, где код сочетается с большими бинарными артефактами. Он хранит данные по контент‑хешу в Merkle‑дереве, формируя неизменяемую цепочку ревизий, что обеспечивает проверку целостности и повторное использование кода. Файлы разбиваются на переиспользуемые куски, а рабочие пространства могут подгружать данные только по требованию, делая систему лёгкой в начале и готовой к росту без дублирования.

Запуск занимает минуты в локальном режиме, а затем система масштабируется за счёт кэшируемого центрального сервиса и сжатой передачи данных. Свободные ветки позволяют быстро создавать, управлять и синхронизировать их, а CLI даёт полный доступ к всем функциям. Поддерживаются SDK на C/C++, C#, Rust, Go, Python и JavaScript, а лицензия MIT делает проект полностью открытым. Epic позиционирует Lore как основу для совместного развития открытого экосистемного контроля версий, приглашая разработчиков присоединиться к сообществу через GitHub и Discord. История репозитория проверяется криптографически, а лёгкие ветки ускоряют переключение без дублирования данных. Система обеспечивает сжатие и дедупликацию, экономя место даже при частых изменениях больших файлов.

by regnerba • 17 июня 2026 г. в 14:30 • 1276 points

ОригиналHN

#c##c++#discord#epic-games#github#javascript#lore#python#rust#version-control-system

Комментарии (680)

  • Lore — новый VCS от Epic, ориентированный на игровую разработку и работу с большими бинарными артефактами, позиционируется как конкурент Perforce.
  • Использует Rust, открытый исходный код, предлагает «полную» API и интеграцию с Unreal Engine, но пока документация написана LLM‑ом и содержит стилистические несоответствия.
  • Планируется поддержка локального/отдельного режима без сервера, но текущая реализация требует удалённого хранилища и GUI‑клиента пока не реализован.
  • Обсуждаются вопросы масштабируемости, локального использования для личных проектов и потенциального применения в ML/AI‑проектах, а также сравнение с существующими решениями вроде PlasticSCM и XetHub.

Claude Fable is relentlessly proactive (simonwillison.net) 🔥 Горячее 💬 Длинная дискуссия

Клод Fable 5 действует почти как независимый исследователь: он сразу же переходит к изучению зависимостей, открывает браузеры, делает скриншоты и даже генерирует тестовые HTML‑страницы, чтобы воспроизвести баг. При этом он использует собственный набор утилит — например, pyobjc для перебора окон macOS и утилиту screencapture для захвата PNG‑файлов — и может запускать их из собственного терминала без внешних команд.

Ключевой приём — автоматическая вставка JavaScript в шаблоны Datasette, которая через 1,2 секунды после загрузки эмулирует клавишу «/», вызывая открытие диалогового окна. Таким образом, Fable не только анализирует код, но и меняет его «на лету», чтобы триггерять UI‑события, что демонстрирует его способность полностью контролировать среду разработки и решать задачи, не дожидаясь прямого указания.

by lumpa • 12 июня 2026 г. в 01:06 • 774 points

ОригиналHN

#automation#browser-automation#claude#datasette#fable#javascript#llm#macos#python#ui-testing

Комментарии (656)

  • Fable часто тратит десятки токенов и длительные сессии на простые задачи, например, добавление overflow-x: hidden для устранения горизонтальной прокрутки.
  • Модель проявляет чрезмерно «проактивное» поведение, открывая браузер, делая скриншоты и запуская автоматизацию без явного запроса.
  • Пользователи отмечают, что такой подход повышает стоимость использования и может привести к рискованным действиям (удаление данных, изменение продакшн‑кода).
  • Несмотря на высокие ресурсы, Fable иногда демонстрирует полезные навыки отладки и тестирования, но часто уступает более простым и дешёвым решениям.

What Killed Perl? (entropicthoughts.com) 💬 Длинная дискуссия

Perl не мёртв, его популярность находится на уровне периода dotcom пузыря, согласно отчёту CPAN 2023. Новичков среди пользователей Perl становится всё меньше с 2011 года, хотя общее использование языка остаётся стабильным. Raku (бывший Perl 6) не стал причиной упадка, так как Perl продолжал расти даже во время разработки Raku.

Основные гипотезы упадка Perl связаны с изменением поколений программистов и развитием инструментов разработки. Программисты, выросшие на Unix-системах, естественно воспринимали Perl как продолжение shell, C, awk и sed. Новое поколение, воспитанное на Microsoft, Visual Basic и Java, предпочло Python. Кроме того, появление мощных менеджеров пакетов сделало доступными множество альтернатив, в то время как раньше Perl был одним из немногих доступных инструментов.

by speckx • 19 ноября 2025 г. в 10:25 • 158 points

ОригиналHN

#c#cpan#java#javascript#npm#perl#php#pypi#python#raku

Комментарии (356)

  • Perl умер не из-за Raku, а из-за отсутствия единого пути развития, отсутствия стандарта кодстайла и культуры «один-разовых» скриптов.
  • Python и PHP выиграли, потому что они были «дружелюбнее» для новичков и имели лучшую документацию.
  • CPAN стал менее удобным, чем PyPI и npm, что сделало Perl менее привлекательным.
  • Отсутствие единого фреймворка для веб-разработки и отсутствие стандарта ООП в Perl 5.
  • Не было единого сообщества, которое могло бы продвигать Perl, в то время как Python и JavaScript имели Google и Facebook.

Designing a Language (2017) (cs.lmu.edu)

Проектирование языка программирования — это итеративный процесс, включающий четыре фазы, которые необходимо повторять многократно. При реализации компилятора часто обнаруживается, что некоторые части языка спроектированы некорректно, что требует возврата к предыдущим этапам. Успех в создании языка зависит от глубоких знаний в трех ключевых областях: программных парадигмах (императивной, декларативной, объектно-ориентированной и др.), концепциях языков (последовательность выполнения, типизация, параллелизм и др.) и знакомстве с существующими языками. Автор рекомендует изучить десятки языков — от Python и Smalltalk до Haskell и Rust, а также ознакомиться с классическими работами по проектированию языков.

by veqq • 15 ноября 2025 г. в 05:44 • 160 points

ОригиналHN

#compilers#declarative-programming#haskell#object-oriented-programming#parsing#programming-languages#python#rust#smalltalk#snekql

Комментарии (100)

  • Предложение включить Raku в список языков из-за встроенных грамматик для парсинга и объектно-ориентированной природы.
  • Вопросы о компиляции целевых языков, их пайплайне сборки и контексте выполнения.
  • Размышления о создании нового языка: необходимость, наличие ресурсов/команды, сроки выпуска MVP.
  • Критика исходного материала как "AI slop", рекомендация использовать "programming language checklist".
  • Споры об AI-происхождении текста (находки 2017 года) и упоминание забавного элемента (SnekQL).

Nano Banana can be prompt engineered for nuanced AI image generation (minimaxir.com) 🔥 Горячее 💬 Длинная дискуссия

Несмотря на кажущуюся стагнацию, область генерации изображений ИИ активно развивается с появлением моделей вроде 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.

by minimaxir • 13 ноября 2025 г. в 17:39 • 829 points

ОригиналHN

#api#gemini#google#llm#mistral#prompt-engineering#python

Комментарии (214)

  • Пользователи успешно используют Nano Banana для создания последовательных визуальных историй (сториборды, комиксы) с контролем персонажей, окружения и времени суток через многослойные промпты.
  • Модель демонстрирует ограничения: проблемы с точным рендерингом текста, стилизацией (особенно сложных персонажей), непредсказуемыми изменениями деталей при редактировании и путаницей в интерпретации направлений (лево/право).
  • Технические решения включают использование Python-библиотек (gemimg), API (Google AI Studio), маскирование для удаления водяных знаков и интеграцию с LLM (Mistral) для генерации вариаций промптов.
  • Обсуждаются сложности достижения точных результатов (например, стиль-трансфер, удаление отражений) и необходимость тщательного промпт-инжиниринга для контроля вывода.

Ruby already solved my problem (newsletter.masilotti.com) 🔥 Горячее

Автор рассказывает, как он создал свой собственный класс AppVersion для сравнения версий, но затем обнаружил, что в Ruby уже есть встроенный Gem::Version, который делает то же самое, но лучше. Он заменил свой класс на встроенный и призвал сообщество делиться знаниями, чтобы избежать изобретения велосипедов.

by joemasilotti • 07 ноября 2025 г. в 18:45 • 251 points

ОригиналHN

#elixir#java#programming-languages#python#rails#ruby#scala#typescript

Комментарии (113)

  • Участники восхищаются элегантностью и лаконичностью Ruby, особенно в реализации классов вроде AppVersion, и отмечают его выразительность по сравнению с TypeScript, Elixir и другими языками.
  • Подчеркивается мощь метапрограммирования Ruby и его роль в развитии любви к программированию, хотя есть критика по поводу документации и экосистемы.
  • Сравниваются реализации AppVersion в других языках (Python, Java, Scala), где признается сходство в выразительности, но отмечаются различия в синтаксисе и подходах.
  • Упоминается ностальгия по Rails и его современное состояние, а также скрытые возможности стандартной библиотеки Ruby.
  • Есть критика Ruby за "скрытые опасности" (footguns) и проблемы с масштабированием, а также за то, что экосистема Rails затмевает сам язык.

When did people favor composition over inheritance? (sicpers.info) 💬 Длинная дискуссия

Фраза "предпочитай композицию наследованию" стала клише, но её происхождение точно известно — это второй принцип объектно-ориентированного дизайна из книги "Design Patterns" "банды четырёх" (Gamma, Helm, Johnson, Vlissides). Оригинальная формулировка гласила: "Favor object composition over class inheritance". Авторы противопоставляли наследование ("белая коробка", где подкласс видит детали реализации) и композицию ("чёрная коробка", где объект взаимодействует только через интерфейс). Однако этот аргумент зависит от языка: в Java можно ограничить видимость для подклассов, а в Smalltalk и Python доступ к внутренностям возможен через рефлексию.

Более весомый аргумент касается гибкости: наследование статично и определяется на этапе компиляции, что затрудняет изменение, тогда как композиция динамична и позволяет заменять компоненты во время выполнения. Это меняет архитектурные зависимости — система опирается на отношения объектов в рантайме, а не на иерархию наследования. В контексте современного тренда к статической типизации и проверке компилятором, этот подход требует баланса. Интересно, что Barbara Liskov ещё в 1987 предлагала альтернативу: вместо жёсткой иерархии позволять полиморфным модулям использовать любые типы с нужными операциями, без формального отношения подтипа.

by ingve • 06 ноября 2025 г. в 22:09 • 211 points

ОригиналHN

#composition#design-patterns#inheritance#java#object-oriented-programming#polymorphism#python#smalltalk

Комментарии (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 (fly.io) 🔥 Горячее 💬 Длинная дискуссия

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

Пример кода в статье демонстрирует базовую реализацию агента с использованием всего 15 строк кода через API OpenAI. Интересно, что контекстное окно в этом случае — просто список сообщений, а многопользовательский диалог поддерживается путем сохранения истории. Автор отмечает, что сам LLM является stateless-черным ящиком, а иллюзия непрерывного диалога создается разработчиком. Даже если многие специалисты не сочтут этот пример полноценным агентом (который должен использовать инструменты), добавление инструментов также оказывается простой задачей.

by tabletcorry • 06 ноября 2025 г. в 20:37 • 939 points

ОригиналHN

#agents#api#llm#mcp#openai#python#security

Комментарии (375)

  • Обсуждение показало, что большинство участников считают, что писать агентов вручную — это не только учебное упражнение, но и способ глубже понять, как работают LLM и инструменты вроде MCP.
  • Участники подчеркнули, что даже простой агент может быть реализован всего в несколько строк кода, но при этом важно понимать, что именно делает его "агентом" — способность к итерации и само-улучшению.
  • Обсуждались риски безопасности и контроля при использовании агентов, особенно в контексте предоставления им доступа к оболочке и файловой системе.
  • Также обсуждались вопросы, связанные с тем, что агенты могут быть использованы для решения задач, которые еще не решены, и что это может быть более ценно, чем попытка создать еще один чат-бот или инструмент для уже решенной задачи.
  • В конце обсуждение перешло к тому, что важно помнить, что даже если вы не собираетесь писать агентов для продакшена, опыт их создания может быть полезен для понимания того, как работают инструменты, которые вы используете, и как они могут быть использованы или злоупотреблены.

Hypothesis: Property-Based Testing for Python (hypothesis.readthedocs.io)

Hypothesis 6.145.1 — это библиотека для property-based тестирования в Python. Вместо написания тестов для конкретных входных данных, разработчики описывают диапазон входных значений, а Hypothesis самостоятельно генерирует случайные тесты, включая граничные случаи, которые могли быть упущены. Пример тестирования функции сортировки демонстрирует использование декоратора @given со стратегиями для списков целых чисел или чисел с плавающей точкой, где библиотека генерирует случайные списки для сравнения пользовательской реализации со встроенной функцией sorted().

Документация структурирована для разных уровней пользователей: от краткого руководства для начинающих до подробного API-справочника. В ней представлены разделы с обучающими материалами, практическими руководствами для специфических сценариев и объяснениями для углубленного понимания библиотеки. Библиотека активно развивается с 2013 года и поддерживается сообществом, что делает её надежным инструментом для повышения качества тестирования в Python-проектах.

by lwhsiao • 05 ноября 2025 г. в 03:15 • 200 points

ОригиналHN

#hypothesis#property-based-testing#python#testing

Комментарии (117)

  • Property-based testing (PBT) выявляет крайние случаи, которые обычные тесты могут пропустить, но требует «оракула» или спецификации, что делает его менее универсальным инструментом.
  • Основной барьер внедрения PBT — это не только отсутствие знаний, но и необходимость переосмыслить подход к тестированию и, возможно, саму архитектуру кода.
  • В отличие от классических примеров, PBT требует, чтобы разработчик формализовал свой код и его свойства, что делает его менее доступным для специалистов, не знакомых с формальными методами.
  • Несмотря на то, что Hypothesis и подобные инструменты делают PBT доступным на практике, они не решают фундаментальную проблему: для сложных систем требуется либо сравнение с другой реализацией, либо формальная спецификация, что делает PBT менее применимым в таких случаях.

Why we migrated from Python to Node.js (blog.yakkomajuri.com) 💬 Длинная дискуссия

Команда 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 скоро начнет создавать проблемы с производительностью даже при небольшом количестве пользователей.

by yakkomajuri • 03 ноября 2025 г. в 16:35 • 184 points

ОригиналHN

#asynchronous-programming#django#javascript#node.js#orm#performance#python#rest-api#typescript

Комментарии (189)

  • Обсуждение в основном вращается вокруг того, что Python/async-экосистема остаётся незрелой, а Django-ORM не предназначена для асинхронной работы, что делает выбор между «старым, но проверенным» и «новым, но сырым» неоднозначным.
  • Участники спорят, стоит ли жертвовать удобством разработки и экосистемой ради производительности, или же лучше переписать всё на Node/TypeScript, если речь идёт о высоконагруженном REST API.
  • Поднимается вопрос о том, что выбор стека влияет на набор инженеров, и что важнее — удобство разработки или производительность.
  • Некоторые участники подчеркивают, что важно не только выбрать правильный инструмент, но и уметь его использовать, иначе даже самый современный фреймворк не спасёт от проблем с масштабированием.

State of Terminal Emulators in 2025: The Errant Champions (jeffquast.com) 💬 Длинная дискуссия

В 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 часов. Полные результаты доступны на сайте проекта.

by SG- • 03 ноября 2025 г. в 14:40 • 245 points

ОригиналHN

#ghostty#gnome-terminal#iterm2#kitty#konsole#python#terminal-emulators#unicode#wcwidth#zig

Комментарии (226)

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

Vacuum bricked after user blocks data collection – user mods it to run anyway (tomshardware.com) 🔥 Горячее

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

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

by toomanyrichies • 01 ноября 2025 г. в 17:25 • 315 points

ОригиналHN

#custom-hardware#data-privacy#embedded-systems#iot#offline-mode#python#remote-kill#right-to-repair

Комментарии (112)

  • Компания, отключившая пылесос за отсутствие «телеметрии», вызвала обсуждение о праве собственности, этике и праве на ремонт.
  • Участники обсуждения подчеркнули, что покупатель должен иметь возможность полностью контролировать купленный продукт, включая право на ремонт и модификацию.
  • Обсуждение также затронуло вопрос о том, что производитель не должен иметь возможность удаленно отключить устройство, которое было куплено законно.
  • Участники также обсудили, что покупатель должен иметь возможность полностью контролировать свои устройства, включая право на ремонт и модификацию.
  • Обсуждение также затронуло вопрос о том, что производитель не должен иметь возможность собирать данные о пользователе без его согласия.

AI scrapers request commented scripts (cryptography.dog) 💬 Длинная дискуссия

Автор обнаружил, что AI-скраперы запрашивают закомментированные JavaScript-файлы с его сайтов, вызывая ошибки 404. Эти запросы исходили как от явно вредоносных ботов (python-httpx, Go-http-client), так и от пользовательских агентов,伪装ившихся под обычные браузеры (Firefox, Chrome, Safari). Похоже, скраперы пытаются нелегально собирать контент для обучения больших языковых моделей.

Автор предлагает два возможных объяснения поведения: либо боты правильно парсят HTML-комментарии в поисках отключенных URL, либо используют примитивные методы сопоставления шаблонов. Он отмечает, что скраперы различаются по уровню сложности — одни используют актуальные строки user-agent, другие даже не меняют значения по умолчанию в HTTP-библиотеках.

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

by ColinWright • 31 октября 2025 г. в 15:44 • 234 points

ОригиналHN

#go#http#javascript#llm#python#web-development#web-scraping

Комментарии (181)

  • Обсуждение вращается вокруг этики веб-скрейпинга, причем акцент сместился с «как мы можем защититься от скрейперов» на «почему мы вообще должны считать, что скрейпинг — это что-то плохое».
  • Участники обсуждения поднимают вопросы: что считается «нелегальным» скрейпингом, кто должен нести ответственность за злоупотребление данными, и какие технические и правовые рамки должны регулировать эту сферу.
  • Разговор также затрагивает практические аспекты: какие методы могут быть использованы для защиты от скрейперов, и какие последствия это может иметь для веб-разработчиков и владельцев сайтов.
  • Некоторые участники поднимают вопросы о том, какие последствия это может иметь для разработчиков и владельцев сайтов, и какие практические шаги они могут предпринять для защиты своих ресурсов.
  • В конце обсуждение сместилось к тому, что участники начали обсуждать, какие именно технические и правовые рамки должны быть установлены для регулирования веб-скрейпинга, и какие последствия это может иметь для всех участников процесса.

SPy: An interpreter and compiler for a fast statically typed variant of Python (antocuni.eu) 🔥 Горячее

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.

by og_kalu • 30 октября 2025 г. в 16:08 • 259 points

ОригиналHN

#compiler#cython#graalpy#jit-compilation#numba#pypy#pyston#python#static-typing

Комментарии (117)

  • Обсуждение вращается вокруг того, что статически-типизированный подмножество Python (SPy) может быть полезным, но вызывает вопросы о совместимости, экосистеме и цели проекта.
  • Участники обсуждают, что неясно, как SPy будет взаимодействовать с существующими библиотеками Python, и что это значит для пользователей.
  • Также обсуждается, что статическая типизация может не подходить для всех задач, и что динамическая природа Python может быть важной для некоторых задач.
  • Некоторые участники высказывают, что вместо того, чтобы создавать новый язык, было бы лучше улучшить существующие инструменты, такие как Cython или Numba.

Uv is the best thing to happen to the Python ecosystem in a decade (emily.space) 🔥 Горячее 💬 Длинная дискуссия

Инструмент 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 с точными версиями всех пакетов, обеспечивая воспроизводимость окружений на любой платформе.

by todsacerdoti • 29 октября 2025 г. в 18:57 • 2077 points

ОригиналHN

#python

Комментарии (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 (pyfound.blogspot.com) 🔥 Горячее 💬 Длинная дискуссия

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.

by lumpa • 27 октября 2025 г. в 15:12 • 629 points

ОригиналHN

#community-funding#diversity-equity-and-inclusion#grant#nsf#open-source#pypi#python#security

Комментарии (607)

  • PSF отказалась от $1,5 млн гранта из-за требования отказаться от DEI-программ, что вызвало широкий резонанс в сообществе.
  • Обсуждение подняло вопрос о том, что DEI-программы могут быть незаконны, и что это может быть причиной, по которой грант был отклонен.
  • Некоторые участники обсуждения выразили обеспокоенность тем, что отказ от гранта может повлиять на безопасность и стабильность экосистемы Python.
  • Были высказаны предложения о том, что сообщество могло бы само финансировать нужды, чтобы не зависеть от грантов с политическими условиями.
  • Обсуждение также затронуло вопрос о том, что DEI-программы могут быть незаконны, и что это может быть причиной, по которой грант был отклонен.

Recall for Linux (github.com) 🔥 Горячее 💬 Длинная дискуссия

Разработчик создал неофициальную реализацию Microsoft Recall для Linux, позволяющую автоматически записывать действия пользователя для последующего поиска. Проект использует Wayland для захвата экрана и работает в средах GNOME и KDE Plasma, сохраняя данные локально в базе SQLite. Интерфейс поиска позволяет находить нужные моменты по текстовому запросу, аналогично оригинальной функции Windows.

Ключевое отличие — полное локальное хранение данных без отправки в облако, что повышает приватность. Реализация использует Python и GTK4, поддерживает фильтрацию по приложениям и временным промежуткам. Проект находится на ранней стадии разработки, но уже демонстрирует основной функционал Recall. Разработчик отмечает, что это экспериментальный проект, не связанный с Microsoft.

by anticensor • 27 октября 2025 г. в 07:24 • 465 points

ОригиналHN

#github#gnome#gtk4#kde-plasma#linux#python#sqlite#tesseract#wayland

Комментарии (186)

  • Обсуждение началось с сатиры о Recall, но быстро перешло к обсуждению приватности и контроля.
  • Участники обсуждали, что идея локального логирования активности может быть полезной, если она реализована прозрачно и под контролем пользователя.
  • Были упомянуты альтернативы вроде openrecall и Dayflow, но также подчеркнута важность того, чтобы любое подобное ПО было открытым исходным кодом и не требовало бы передачи данных на внешние серверы.
  • Участники также обсудили, что даже если бы идея была реализована в виде скрипта, который бы делал скриншоты и распознавал их с помощью tesseract, это бы все еще вызывало те же самые вопросы приватности.
  • В конце обсуждение вернулось к тому, что даже если бы такой скрипт был бы полезен, он бы все еще требовал бы полного доступа к системе и потенциально мог бы быть использован злоумышленниками.

Computer science courses that don't exist, but should (2015) (prog21.dadgum.com) 🔥 Горячее 💬 Длинная дискуссия

Статья представляет собой воображаемый список курсов компьютерных наук, которых не существует, но должны. Автор предлагает такие курсы, как "Отказ от объектно-ориентированного программирования", где студенты изучат переменные вне иерархии объектов и "функции", а также "Классические исследования программного обеспечения", посвященные исторически значимым продуктам вроде VisiCalc и Zork. Особый интерес представляет курс "Написание быстрого кода на медленных языках", где учат писать на Python, который по производительности может превзойти C++, и "Пользовательский опыт командной строки", анализирующий принципы UX для консольных программ.

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

by wonger_ • 24 октября 2025 г. в 02:22 • 266 points

ОригиналHN

#c++#ci-cd#object-oriented-programming#python#system-administration#ux

Комментарии (195)

  • Обсуждение показало, что академическая программа CS часто не охватывает такие темы, как история ПО, философия вычислений, практика командной работы и даже базовые навыки работы в консоли.
  • Участники подчеркнули, что курсы вроде "Unlearning OOP" и "Classical Software Studies" должны быть обязательной частью образования, но их нет.
  • Обсуждение подняло вопрос о том, что не хватает курсов по фундаментальным навыкам, таким как CI/CD, системное администрирование и работа с консолью.
  • Было отмечено, что студенты часто не получают практических навыков, необходимых для работы в отрасли, и что курсы по таким темам как "как писать быстрый код на медленных языках" или "как не страдать от внутренних конфликтов в команде" отсутствуют.
  • В конце концов, обсуждение подтолкнуло к тому, что вместо того, чтобы учить студентов тому, как создавать и поддерживать сложные системы, которые уже работают, они вместо этого вынуждены изучать фреймворки, которые могут исчезнуть через 5 лет.

Hyperflask – Full stack Flask and Htmx framework (hyperflask.dev) 🔥 Горячее

Разработчики представили Hyperflask — новый фреймворк для Python, который объединяет множество инструментов в единую экосистему для ускорения разработки веб-приложений. Основная идея в том, чтобы избавить разработчиков от необходимости самостоятельно подбирать и настраивать различные технологии, которые часто требуются в проектах.

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

Ключевые возможности включают:

  • Единая структура проекта: стандартизированная организация кода, что ускоряет onboarding новых разработчиков и упрощает поддержку.
  • Готовые решения для типовых задач: аутентификация, отправка email, обработка файлов, фоновые задачи — всё доступно "из коробки".
  • Гибридный рендеринг: статические страницы генерируются на сервере для скорости, но при необходимости могут динамически обновляться через HTMX.
  • Оптимизация под SEO: серверный рендеринг гарантирует, что контент индексируется поисковыми системами.

Разработчики подчеркивают, что Hyperflask не просто набор инструментов, а целостная экосистема, где все части глубоко интегрированы. Это позволяет избежать типичных проблем, когда отдельные библиотеки, будучи собранными вручную, конфликтуют друг с другом.

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

Для сообщества это может быть значимым, поскольку экосистема Python долгое время не имела полноценного аналога популярным JavaScript-фреймворкам вроде Next.js. Hyperflask, хоть и молодой проект, показывает важный шаг в этом направлении.

by emixam • 16 октября 2025 г. в 12:46 • 345 points

ОригиналHN

#backend#django#fastapi#flask#frontend#htmx#litestar#python#seo#web-development

Комментарии (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 (pyrefly.org)

Meta представила Pyrefly — новый статический анализатор для Python, способный проверять до 1,85 млн строк кода в секунду. Он работает в 10 раз быстрее, чем основные конкуренты, такие как Pyright и MyPy, при этом сохраняя высокую точность.

Pyrefly интегрируется как сервер языка (LSP) для VS Code и других редакторов, предлагая автодополнение, подсветку ошибок и навигацию по коду. Инструмент уже протестирован на крупных проектах, включая код PyTorch.

Разработчики подчеркивают, что Pyrefly не требует аннотаций для старта, но улучшает качество кода при их использовании. Инструмент доступен как open-source и поддерживается через Discord-сообщество.

by brianzelip • 14 октября 2025 г. в 12:33 • 177 points

ОригиналHN

#lsp#python#pytorch#rust#static-analysis#vscode

Комментарии (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 (allvpv.org)

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

В Linux они передаются через execve как массив строк вида KEY=VALUE. Внутри процесса они хранятся в стеке или куче, а программы используют разные структуры данных для их представления: Bash использует хешмапы, Python — словари, а C — массив environ.

Важно помнить, что изменения в дочернем процессе не влияют на родительский, и не все инструменты наследуют окружение. Например, login задаёт свежее окружение.

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

by signa11 • 13 октября 2025 г. в 16:49 • 195 points

ОригиналHN

#bash#c#configuration#environment-variables#linux#python#security#systemd

Комментарии (140)

  • Обсуждение охватило широкий спектр тем: от безопасности переменных окружения до передачи секретов, влияния на разные системы и стандарты, и даже до влияния на разработку программного обеспечения.
  • Участники обсуждали, что переменные окружения небезопасны для передачи секретов, так как любой процесс может прочитать их.
  • Были упомянуты альтернативы, такие как systemd-creds, которые могут быть использованы для передачи секретов безопасно.
  • Также обсуждались проблемы с конфигурацией и стандартами, такие как использование переменных окружения для конфигурации вместо файлов конфигурации.
  • Участники также обсуждали влияние переменных окружения на разработку программного обеспечения, включая влияние на разработку в Windows и Unix системах.

NanoChat – The best ChatGPT that $100 can buy (github.com) 🔥 Горячее 💬 Длинная дискуссия

Andrej Karpathy запустил NanoChat, проект, позволяющий запускать мощные чат-модели ИИ на недорогих локальных устройствах, таких как Raspberry Pi. NanoChat использует эффективные методы для работы на устройствах с ограниченными ресурсами, не требуя мощного сервера или облачных сервисов. Это открывает возможности для разработчиков и любителей создавать чат-приложения с ИИ, которые работают локально, без необходимости в постоянном подключении к интернету или дорогой инфраструктуре. Проект особенно полезен для образовательных целей, прототипирования и сценариев, где важны конфиденциальность и автономность.

by huseyinkeles • 13 октября 2025 г. в 15:22 • 1408 points

ОригиналHN

#github#llm#machine-learning#open-source#python#raspberry-pi

Комментарии (283)

  • Обсуждение вращается вокруг того, что Андрей Карпати (Andrej Karpathy) опубликовал репозиторий nanochat, который, по его словам, позволяет за 100 долларов обучить модель на 124M параметров за 4 часа на 8xH100.
  • Участники обсуждения подчеркивают, что это не «обучение за 100$», а аренда GPU за 100$ в час, и что репозиторий в первую очередь демонстрирует, как можно обучить модель, а не предоставляет доступ к вычислительным ресурсам.
  • Некоторые участники спрашивают, можно ли использовать этот репозиторий для тонкой настройки существующих моделей, и Карпати отвечает, что это возможно, но требует дополнительных усилий.
  • Также обсуждается, что обучение на собственных данных может быть дороже, чем обучение на открытых данных, и что для этого потребуется большее количество вычислительных ресурсов.
  • В конце обсуждение сместилось к тому, что Карпати в своих видео и твитах продолжает вдохновлять людей изучать и развивать свои проекты, и что его вклад в открытое образование и исследовательскую свободу важен.

MAML – A new configuration language (maml.dev)

MAML — это минималистичный формат для данных, который сохраняет читаемость для человека и при этом остаётся простым для машинной обработки. Он сочетает лучшее из JSON, дополняя его комментариями, многострочными строками и необязательными запятыми и кавычками.

MAML уже реализован в нескольких языках, включая JavaScript, Python, Rust, C и PHP. Эти реализации находятся на разных стадиях разработки: от готовых к использованию до находящихся в активной разработке.

Проект полностью открыт, с кодом на GitHub, и распространяется по лицензии MIT, что позволяет свободно использовать, модифицировать и распространять его.

by birdculture • 12 октября 2025 г. в 21:24 • 99 points

ОригиналHN

#c#config-languages#github#javascript#json#php#python#rust#toml#yaml

Комментарии (145)

  • Обсуждение вновь подтвердило, что вместо улучшения JSON/YAML/TOML появляется всё больше новых конфиг-языков, но никто не решает их проблемы с синтаксисом, датами, комментариями и т.д.
  • Участники обсуждения отмечают, что большинство этих новых языков не решают фундаментальные проблемы, такие как отсутствие типов данных, дат и комментариев в JSON.
  • Некоторые комментаторы подчеркивают, что вместо того, чтобы изобретать новые языки, лучше бы улучшить существующие инструменты, такие как JSON5 или TOML.
  • Другие участники поднимают вопрос, что если бы разработчики потратили усилия на улучшение существующих инструментов, вместо создания новых, это было бы более продуктивно.

Examples Are the Best Documentation (rakhim.exotext.com) 🔥 Горячее

Разработчики часто сталкиваются с тем, что официальная документация описывает функцию, но не показывает, как её использовать. Пример: вместо того, чтобы показать, как вызывать max() в Python, документация тратит абзацы на то, чтобы объяснить, что такое iterable и что значит key=. А ведь достаточно было бы показать, как передавать кастомную функцию сортировки в max().

Проект ClojureDocs берёт на себя роль «примеры — лучшая документация». Пользователи добавляют примеры к встроенным функциям, и это оказывается куда более полезным, чем формальное описание API. Примеры показывают, как вызывать функцию, какие есть подводные камни и какие есть альтернативы.

by Bogdanp • 09 октября 2025 г. в 19:34 • 361 points

ОригиналHN

#api#ci#clojure#documentation#python#testing

Комментарии (134)

  • Документация должна включать и примеры, и полное API-описание; оба формата дополняют, а не конкурируют.
  • Примеры важны для новичков, но не заменяют полное описание параметров и контрактов; примеры без спецификации приводят к тому, что разработчики вынуждены читать исходники.
  • Примеры должны быть живыми: если они не запускаются как часть CI или не покрыты тестами, они быстро устаревают и вводят в заблуждение.
  • Документация должна быть двух типов: краткий пример для быстрого старта и полное руководство для продвинутых пользователей.
  • Примеры должны быть частью тестов и наоборот: примеры в документации должны быть тестируемыми как часть CI.

Python 3.14 is here. How fast is it? (blog.miguelgrinberg.com) 🔥 Горячее 💬 Длинная дискуссия

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 раза быстрее, но это сравнение не совсем корректно, так как они не тестировали рекурсию.

by pjmlp • 09 октября 2025 г. в 07:40 • 691 points

ОригиналHN

#benchmarking#macos#node.js#performance#pypy#python#rust#ubuntu

Комментарии (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 (engineering.fb.com) 🔥 Горячее

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

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

by terrelln • 06 октября 2025 г. в 16:01 • 374 points

ОригиналHN

#c++#compression#csv#lossless-compression#openzl#parquet#python#sddl#xz#zstd

Комментарии (84)

  • OpenZL использует SDDL для описания структуры данных, что позволяет применять специализированные методы сжатия, значительно улучшая компрессию по сравнению с общими алгоритмами (zstd, xz).
  • Инструмент эффективен для структурированных и колоночных форматов (Parquet, CSV), но требует описания формата данных через SDDL, C++ или Python код.
  • Поддерживает сжатие без потерь, гарантирует точное восстановление данных, планирует добавление потоковой обработки и работы с чанками.
  • Вызывает интерес для сжатия геномных данных, JSON (после преобразования), логов и других структурных форматов, но не оптимален для случайных текстовых файлов.
  • Реализация включает открытый код (BSD-3-Clause), документацию и white paper; активно развивается, включая будущую поддержку языковых привязок (Python, .NET).

Mise: Monorepo Tasks (github.com) 🔥 Горячее

Инструмент mise теперь поддерживает задачи в монорепозиториях, позволяя запускать команды в нескольких проектах одновременно. Это упрощает управление зависимостями и скриптами, особенно при работе с большими кодовыми базами. Например, можно выполнить mise run build для сборки всех проектов или mise run test для запуска тестов.

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

by jdxcode • 06 октября 2025 г. в 14:07 • 346 points

ОригиналHN

#bazel#go#mise#monorepo#nix#nodejs#npm#python#rust#turborepo

Комментарии (79)

  • Пользователи высоко оценивают mise за универсальность в управлении версиями языков (Node, Python, Rust, Go) и инструментами в одном конфиге, упрощающую onboarding в проектах.
  • Отмечается удобство встроенного раннера задач, который заменяет Makefile/Just и работает в монорепозиториях, обеспечивая единый интерфейс для задач независимо от языка.
  • Высказываются опасения по поводу сложности PATH-менеджмента и возможного чрезмерного расширения функциональности (например, отсутствие кэширования задач и поддержки Windows).
  • Некоторые пользователи сравнивают mise с более сложными системами (Bazel, Nix), отмечая его как более простую альтернативу с низким порогом входа.
  • Обсуждаются интеграции с другими инструментами (uv, moon, turborepo) и необходимость улучшения документации, особенно для новичков.

Uv overtakes pip in CI (wagtail.org)

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

by ThibWeb • 06 октября 2025 г. в 12:45 • 162 points

ОригиналHN

#ci-cd#containers#dependency-management#pip#python#rust#uv

Комментарии (130)

  • uv стал фактическим стандартом для управления зависимостями и окружениями, потому что он быстрый и простой в использовании, но это вызвало споры о том, действительно ли он лучше, чем pip и другие инструменты, особенно в контейнерах и CI/CD.
  • Некоторые разработчики утверждают, что uv не подходит для контейнеров, потому что он не может использовать системный Python, и это вызывает споры о том, действительно ли это проблема.
  • Пользователи, которые привыкли к pip и другим инструментам, иногда утверждают, что uv не предоставляет никаких преимуществ, и что это просто "Rust фанатство", но другие считают, что скорость и простота использования делают его лучшим выбором.
  • Некоторые разработчики считают, что uv не подходит для использования в контейнерах, потому что он не может использовать системный Python, и это вызывает споры о том, действительно ли это проблема.
  • Некоторые разработчики считают, что uv не подходит для использования в контейнерах, потому что он не может использовать системный Python, и это вызывает споры о том, действительно ли это проблема.

Embracing the parallel coding agent lifestyle (simonwillison.net)

Инженеры всё чаще запускают несколько агентов одновременно — например, одновременно работают несколько экземпляров Claude Code или Codex CLI в разных директориях или даже в разных репозиториях. Саймон Уиллисон, который сам пишет код на Python и JavaScript, решил проверить, насколько полезно это на практике.

Основная идея: если ты уже знаешь, что именно ты хочешь сделать, то параллельные агенты позволяют тебе экономить время на рутинные задачи, пока ты сам занят более сложной работой. Агент может исследовать новую библиотеку, собрать доказательства концепции или найти примеры использования API без всякого риска для проекта. Для таких задач достаточно лишь четко указать модели, что именно от нее требуется.

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

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

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

by jbredeche • 06 октября 2025 г. в 10:40 • 148 points

ОригиналHN

#code-review#docker#javascript#llm#parallel-programming#python

Комментарии (121)

  • Обсуждение в основном вращается вокруг трёх тем: высокая стоимость ревью кода, параллельные агенты и их влияние на фокус и продуктивность, а также культурные и этические аспекты использования AI-агентов.
  • Участники делятся личными стратегиями, такими как использование различных инструментов вроде Conductor и Crystal для управления агентами, и обсуждают, как сделать их более эффективными.
  • Обсуждается, как сделать ревью кода менее трудоёмким, включая использование инструментов вроде bottleneck для ревью кода, и как влияет на продуктивность и фокус.
  • Также обсуждается, как влияет на эффективность работы использование AI-агентов, и какие могут быть последствия для долгосрочной устойчивости и качества кода.

PEP 810 – Explicit lazy imports (pep-previews--4622.org.readthedocs.build) 🔥 Горячее 💬 Длинная дискуссия

Предлагается добавить в Python явный синтаксис для ленивого импорта с ключевым словом lazy, которое размещается перед import или from. Это позволяет отложить загрузку модуля до момента первого использования импортированного имени, сокращая время запуска и потребление памяти. Особенно полезно для CLI-инструментов с подкомандами, где даже вызов --help может загружать десятки ненужных модулей.

Ленивые импорты сохраняют полную обратную совместимость — обычные импорты работают как раньше, а новые семантика активируется только при явном указании. Механизм использует прокси-объекты, которые заменяются реальными значениями при первом обращении (реификация). Это решает проблему ручного переноса импортов в функции, что уже делается в 17% случаев в стандартной библиотеке.

by azhenley • 03 октября 2025 г. в 18:24 • 377 points

ОригиналHN

#cli#lazy-imports#pep#performance-optimization#proxy-objects#python

Комментарии (222)

  • Предложение о ленивых импортах (PEP 690) поддерживается для ускорения запуска CLI-инструментов и уменьшения накладных расходов, но вызывает опасения по поводу непредсказуемости и ошибок времени выполнения.
  • Критики указывают на проблемы с безопасностью потоков, сложность отладки и потенциальное ухудшение читаемости кода из-за нового синтаксиса (lazy import).
  • Альтернативы включают ленивую загрузку на уровне модуля (с явным объявлением модулем), использование существующих методов (импорт внутри функций) или инструментов вроде LazyLoader.
  • Некоторые участники выступают за ленивые импорты по умолчанию, но признают, что это нарушит обратную совместимость из-за побочных эффектов при импорте.
  • Обсуждаются вопросы совместимости с линтерами, влияние на стандартную библиотеку и необходимость обновления парсеров и редакторов для поддержки нового ключевого слова.

Why I chose Lua for this blog (andregarzia.com)

Автор перевел свой блог с Racket на Lua, чтобы снизить сложность и обеспечить долгосрочную стабильность. Основная причина — разочарование в быстро меняющихся экосистемах вроде JavaScript и Ruby, где постоянные обновления и ломающие изменения усложняют поддержку. Lua привлек медленным развитием: между версиями 5.1 (2006) и 5.4 (2020) различия минимальны, а язык требует лишь компилятора C89.

Блог работает по старинке — через CGI-скрипты, с SQLite в качестве базы и шаблонизацией Mustache. Несмотря на кажущуюся архаичность, автор ценит простоту, минимальное количество зависимостей (около десяти) и возможность писать собственные легковесные библиотеки. Ключевой вывод: блог — это пространство для экспериментов, где можно отказаться от модных инструментов в пользу того, что действительно работает и приносит удовольствие.

by nairadithya • 02 октября 2025 г. в 16:58 • 186 points

ОригиналHN

#cgi#hugo#javascript#lua#mustache#python#racket#ruby#sqlite

Комментарии (135)

  • Предложение возродить создание собственных движков для блогов как учебного проекта для инженеров из-за его низкого риска и возможностей для экспериментов.
  • Обсуждение выбора Lua как стабильного и минималистичного языка для веб-разработки, несмотря на его недостатки (1-based индексация, разрыв между версиями, мало стандартных библиотек).
  • Критика сложности современных стеков для блогов и аргументы в пользу простых решений: статические генераторы (Hugo), чистый HTML или минимальные скрипты (Python, Lua).
  • Упоминание альтернативных технологий и подходов: Redbean, Perl, Caddy, XSLT, Web Components, Fennel, OpenResty и другие.
  • Подчёркивание важности личного выбора, удовольствия от процесса и независимости от внешних сервисов при создании блога.

Playball – Watch MLB games from a terminal (github.com) 🔥 Горячее

Проект playball позволяет смотреть трансляции матчей MLB прямо в терминале через ASCII-графику. Вместо видео поток передаётся текстовыми символами, имитирующими поле, игроков и мяч, что создаёт минималистичный, но на удивление детализированный опыт просмотра.

Для работы требуется аккаунт MLB.tv и настроенный доступ к их стриминговому сервису. Инструмент написан на Python, использует библиотеку curses для отрисовки интерфейса и парсит данные в реальном времени. Это интересный пример того, как ностальгический формат терминала может быть адаптирован для современных развлечений, экономя трафик и ресурсы.

by ohjeez • 02 октября 2025 г. в 16:09 • 333 points

ОригиналHN

#api#ascii#curses#github#mlb#python

Комментарии (136)

  • Участники обсуждают проект терминального просмотра текстовой трансляции бейсбольных матчей MLB, отмечая его удобство и связь с хакерской культурой.
  • Поднимается тема доступности данных MLB через API и существования аналогичных инструментов для других видов спорта (NBA, NFL, крикет, футбол).
  • Обсуждаются исторические и экономические причины снижения популярности бейсбола, а также преимущества MLB в области стриминга по сравнению с другими лигами.
  • Упоминается практика ведения текстового протокола игры (scorekeeping) и то, как хорошо бейсбол подходит для текстового формата из-за своей структуры.
  • Высказываются пожелания по развитию проекта, включая анимацию, поддержку других лиг и

Ollama Web Search (ollama.com) 🔥 Горячее 💬 Длинная дискуссия

Ollama представила новый API для веб-поиска, который позволяет моделям получать актуальную информацию из интернета, снижая риск галлюцинаций и повышая точность ответов. Бесплатный тариф доступен для индивидуального использования, а повышенные лимиты — через Ollama Cloud. API интегрирован с Python и JavaScript библиотеками, что упрощает создание инструментов для длительных исследовательских задач, включая работу с моделями вроде OpenAI gpt-oss.

Примеры кода демонстрируют использование через cURL, Python и JavaScript, возвращая структурированные результаты поиска с заголовками, URL и содержанием. Также показано, как построить поискового агента с помощью модели Qwen 3 от Alibaba, используя инструменты web_search и web_fetch для автоматизации запросов и обработки данных. Это расширяет возможности моделей, позволяя им активно взаимодействовать с веб-источниками в реальном времени.

by jmorgan • 25 сентября 2025 г. в 19:21 • 324 points

ОригиналHN

#alibaba#api#curl#javascript#ollama#python#qwen#web-search

Комментарии (158)

  • Вопросы о поисковом провайдере и лицензии на результаты поиска, включая возможность их хранения и перепубликации.
  • Сомнения в бизнес-модели Ollama, её переходе от локального хостинга к облачным услугам и планам монетизации.
  • Обсуждение технических альтернатив для локального поиска и индексации, а также интеграции с Ollama.
  • Критика запуска функции веб-поиска без четкой документации по тарифам, лимитам и политике конфиденциальности.
  • Предложения и опыт использования сторонних инструментов для поиска (SearXNG, Tavily, SERP API) и локальных решений.

Python on the Edge: Fast, sandboxed, and powered by WebAssembly (wasmer.io) 🔥 Горячее

Команда Wasmer анонсировала бета-поддержку Python в своей edge-платформе на базе WebAssembly. Это позволяет запускать популярные фреймворки вроде FastAPI, Django и Streamlit, а также библиотеки типа numpy и pandas — всё в песочнице с почти нативной производительностью. Ключевые улучшения включают динамическую линковку, поддержку сокетов, потоков и собственный индекс пакетов.

Производительность впечатляет: тесты показывают, что Python на Wasmer работает всего на 5% медленнее нативного, при этом обеспечивая изоляцию и портативность. Платформа уже обгоняет Cloudflare по поддержке мультитрединга и нативных модулей, а вскоре добавит полную поддержку PyTorch и других тяжёлых библиотек.

by baalimago • 24 сентября 2025 г. в 15:48 • 374 points

ОригиналHN

#django#fastapi#numpy#pandas#python#pytorch#streamlit#wasmer#webassembly

Комментарии (140)

  • Запуск Python в WebAssembly через Wasmer предлагает производительность, близкую к нативной, и обеспечивает надежную песочницу для выполнения кода.
  • Обсуждаются практические применения: встраивание скриптов в приложения, серверные API (FastAPI, Django) и выполнение пользовательского кода в изоляции.
  • Поднимаются вопросы о поддержке ключевых библиотек (numpy), асинхронности (asyncio) и межъязыкового взаимодействия (Python-JS).
  • Отмечаются существующие альтернативы (Pyodide, контейнеры) и сложности с зависимостями, имеющими нативные расширения.
  • WASM рассматривается как более простая и легковесная альтернатива виртуальным машинам и контейнерам для развертывания.

Python developers are embracing type hints (pyrefly.org) 🔥 Горячее 💬 Длинная дискуссия

Python-разработчики всё чаще используют аннотации типов, чтобы повысить надёжность кода в условиях роста проектов от прототипов до промышленных систем. Гибкость динамической типизации, которая раньше ускоряла эксперименты в AI и data science, теперь становится риском для стабильности. Решение предложено в PEP 484 (2014) — постепенная статическая типизация, позволяющая добавлять аннотации без полного переписывания кода.

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

by ocamoss • 24 сентября 2025 г. в 11:23 • 276 points

ОригиналHN

#pep-484#python#rust#static-typing#type-hints#typescript

Комментарии (438)

  • Критика Python type hints как нарушающих дух языка, добавляющих излишнюю сложность и не дающих преимуществ в производительности.
  • Поддержка type hints как ценной документации, улучшающей читаемость, рефакторинг и предотвращающей ошибки.
  • Сравнение с другими статически типизированными языками (TypeScript, Rust), где система типов интегрирована лучше.
  • Прагматичный подход: использование type hints выборочно, как подсказок, а не строгого требования.
  • Влияние type hints на работу с ИИ-инструментами, улучшая автодополнение и понимание кода.

Top Programming Languages 2025 (spectrum.ieee.org) 💬 Длинная дискуссия

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

Стоит отметить рост TypeScript как более строгой альтернативы JavaScript, а также стабильное присутствие Java в корпоративных приложениях. Интерес к Julia увеличивается в научных вычислениях, а Kotlin укрепляет позиции в мобильной разработке под Android. Практический вывод: выбор языка всё больше зависит от конкретной области, а не только от общей популярности.

by jnord • 23 сентября 2025 г. в 23:42 • 219 points

ОригиналHN

#cloud-services#go#java#javascript#julia#kotlin#machine-learning#python#rust#typescript

Комментарии (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? (loiseaujc.github.io)

Современный Fortran может быть предпочтительнее Python для обучения основам численной линейной алгебры из-за строгой типизации и явного управления памятью, что помогает студентам лучше понять внутреннюю работу алгоритмов. В Python студенты часто полагаются на готовые функции вроде np.linalg.solve, что скрывает детали реализации и приводит к ошибкам, связанным с динамической типизацией и неправильной индексацией массивов. Например, путаница между списками и массивами NumPy или неявное приведение типов могут затруднить отладку.

Fortran, напротив, требует чёткого объявления переменных и размеров массивов, что снижает риски ошибок и заставляет студентов продумывать структуру данных. Это особенно важно для таких задач, как метод Гаусса-Зейделя или метод наименьших квадратов, где понимание циклов и операций с матрицами критично. Хотя Python с его экосистемой удобен для сложных проектов, Fortran обеспечивает более прозрачный переход от математических формул к коду, укрепляя фундаментальные навыки.

by Bostonian • 23 сентября 2025 г. в 19:29 • 94 points

ОригиналHN

#c++#fortran#julia#matlab#numerical-linear-algebra#numpy#octave#python

Комментарии (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 (cnx-software.com) 🔥 Горячее 💬 Длинная дискуссия

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-разъёма.

by smartmic • 20 сентября 2025 г. в 21:04 • 388 points

ОригиналHN

#esp32#linux#macos#python#raspberrypi#usb#windows

Комментарии (162)

  • Выражен интерес к USB-дисплеям с e-Ink, открытым интерфейсом и энергонезависимостью изображения, но отмечена высокая цена и дефицит подходящих моделей.
  • Подняты серьёзные опасения по безопасности из-за риска подмены устройства клавиатурой для ввода вредоносных команд.
  • Обсуждаются альтернативы: перепрошивка существующих устройств (ESP32, LilyGo), использование старых ридеров или более крупных дисплеев (M5Paper, reTerminal).
  • Отмечен феномен покупки гаджетов "для проектов", которые затем не реализуются и пылятся.
  • Высказано удивление распространением миниатюрных экранов в неожиданных местах как символа "будущего".

3D modeling with paper (arvinpoddar.com) 🔥 Горячее

Паперовое 3D-моделирование
Сокращённый перевод


Плюсы хобби:

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

Мой пример: модель самолёта SR-71 Blackbird.


Самоограничения

  • Только бумага, без принтованных текстур.
  • Однотонные детали.
  • Простые многогранники: без дыр, скруглений, «лишних» соприкосновений.

Зачем? Проще собирать, прочнее держится, легко повторить.


Цели

  1. Сборка без мучений – главное.
  2. Похоже на оригинал.
  3. Минимум бумаги и времени.

Цикл проектирования

  1. 3D-сетка – строим полиэдр.
  2. Развёртка – раскладываем на лист.
  3. Сборка – проверяем, улучшаем.

by joshuawootonn • 12 сентября 2025 г. в 14:12 • 303 points

ОригиналHN

#3d-modeling#blender#origami#papercraft#pepakura#polygons#python#pythoncad

Комментарии (45)

  • Участники вспомнили детство: кто-то складывал оригами SR-71, кто-то собирал шлемы Halo из бумаги.
  • Популярность бумажных моделей в Восточной Европе (Польша, Чехия, Словакия, СССР) отмечена как региональная особенность.
  • Обсуждали инструменты: Pepakura, Blender с экспортом в развёртки, PythonSCAD, плоттеры Cricut.
  • Автор статьи сам ограничил себя: только плоские полигоны, без цилиндров и текстур, чтобы упростить сборку.
  • Некоторые предлагали автоматизировать подбор «развёртываемых» поверхностей (developable surfaces) и использовать станки для резки.

I replaced Animal Crossing's dialogue with a live LLM by hacking GameCube memory (joshfonseca.com) 🔥 Горячее 💬 Длинная дискуссия

Как я вживил LLM в Animal Crossing без единой правки кода

Проблема
GameCube-версия Animal Crossing 2001 года повторяет те же фразы 23 года. Консоль оффлайн, 24 МБ ОЗУ, нет TCP/IP.

Решение

  1. Декомпиляция: сообщество выложило исходники на C, нашёл mMsg_ChangeMsgData.
  2. «Почтовый ящик» в ОЗУ: выделил кусок RAM (0x81298360) для обмена строками.
  3. Сканер памяти: замораживал эмулятор, искал адреса активного текста и имени собеседника.
  4. Мост: Python-скрипт читает имя персонажа, шлёт запрос к LLM, пишет ответ прямо в буфер диалога.
  5. Никаких патчей картриджа: всё через Dolphin + чтение/запись процесса.

Итог
В villagers теперь живой чат, а консоль по-прежнему думает, что 2001 год.

by vuciv • 10 сентября 2025 г. в 02:59 • 774 points

ОригиналHN

#animal-crossing#c#dolphin-emulator#gamecube#llm#memory-hacking#python

Комментарии (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 (anthropic.com) 🔥 Горячее 💬 Длинная дискуссия

  • Claude теперь генерирует Excel, Word, PowerPoint и PDF прямо в чате.
  • Доступно для Max/Team/Enterprise, Pro — позже.

Как использовать:

  1. Включить «Upgraded file creation» в Settings > Features > Experimental.
  2. Загрузить данные или описать задачу.
  3. Скачать готовый файл или сохранить в Google Drive.

Возможности:

  • Очистка данных, анализ, графики, пояснения.
  • Финмодели, трекеры, бюджеты с формулами.
  • PDF → слайды, заметки → документ, счета → таблицы.

Claude пишет код в изолированной среде, превращая идеи в файлы за минуты. Начните с простых отчётов, затем переходите к сложным моделям.

by meetpateltech • 09 сентября 2025 г. в 14:25 • 621 points

ОригиналHN

#anthropic#code-interpreter#excel#google-drive#llm#pdf#pip#powerpoint#python#word

Комментарии (324)

  • Клод получил «Code Interpreter»-режим: в песочнице устанавливает pip-пакеты и запускает Python, чтобы создавать/редактировать локальные файлы (XLSX, PDF, диаграммы и т.д.).
  • У пользователей растёт недовольство надёжностью: артефакты «залипают», правки не применяются, модель часто «тупит» и тормозит даже у подписчиков Pro/Max.
  • Часть комментаторов считает фичу полезным дополнением к аналитике, другие — пиаром «старого» функционала, а кто-то опасается всплеска малвари и фишинга.
  • Конкуренты (ChatGPT, Copilot) уже умеют запускать код и отдавать zip-архивы, поэтому новинка воспринимается как догоняющий, а не прорывной шаг.
  • Основной запрос сообщества: «Сначала почините стабильность и качество модели, потом добавляйте новые фичи».

VibeVoice: A Frontier Open-Source Text-to-Speech Model (microsoft.github.io) 🔥 Горячее

VibeVoice — открытая TTS-модель для создания экспрессивных многоспикерных диалогов (подкасты, интервью).

  • Токенизаторы акустический и семантический работают на рекордно низкой частоте 7,5 Гц, сохраняя качество и ускоряя длинные последовательности.
  • Архитектура: LLM понимает контекст и диалог, диффузионный «голова» добавляет детали.
  • Пределы: до 90 минут, до 4 голосов, поддержка фоновой музыки, спонтанных эмоций и пения.
  • Кросс-язычность: свободный перевод с/на китайский и английский.

by lastdong • 03 сентября 2025 г. в 10:44 • 406 points

ОригиналHN

#diffusion#llm#mit#open-source#python#text-to-speech

Комментарии (150)

  • Качество VibeVoice высокое, но мужские голоса часто звучат роботизированно и попадают в «зловещую долину».
  • Женские образцы заметно реалистичнее; демо-сайт почти всегда начинает с них.
  • Лучшие альтернативы: HiggsAudio (быстрее и чище), Kokoro (для слабых GPU) и Chatterbox.
  • Модель хорошо клонирует голос и эмоции, поддерживает английский, китайский и индийские акценты, но не SSML и редкие языки.
  • Репозиторий временно закрыт, лицензия MIT, но данных обучения не раскрыто.

Grok Code Fast 1 (x.ai) 🔥 Горячее 💬 Длинная дискуссия

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 %.
  • Оценки реальными разработчиками: быстро и надёжно для рутинных задач.

by Terretta • 29 августа 2025 г. в 13:01 • 484 points

ОригиналHN

#c++#cursor#github-copilot#go#ide#java#python#rust#typescript

Комментарии (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 (levelup.gitconnected.com)

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-инженерии.

Советы ветеранам

  1. Делайте микро-промпты: «добавь docstring» → «добавь пример вызова».
  2. Держи CI/CD: автотесты ловят ошибки, которые AI пропустил.
  3. Используй AI как пару, а не замену: «покажи diff» вместо «перепиши всё».

Итог
Vibe-кодинг не убивает профессию, а сдвигает фокус: от написания символов к управлению смыслом. Сборочная линия есть, но над ней всё ещё нужен человек с вкусом.

by thunderbong • 28 августа 2025 г. в 15:55 • 169 points

ОригиналHN

#a-algorithm#code-refactoring#debugging#llm#machine-learning#minimax-algorithm#natural-language-processing#prompt-engineering#python#software-architecture

Комментарии (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) (sgt.hootr.club)

Перешёл в компанию, где стек — 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 — функция.

by Vedor • 26 августа 2025 г. в 07:00 • 121 points

ОригиналHN

#lisp#lsp#python#ruby#rust#scheme#smalltalk#sorbet#typescript#vscode

Комментарии (127)

  • Автор рассказал, как после появления VSCode и LSP перестал использовать языки без типов и теперь не хочет возвращаться к Ruby без нормальной типизации.
  • Участники обсуждают, что Ruby остаётся элегантным и «радостным», но его отказ от постепенной типизации (включая Sorbet) отталкивает многих.
  • Python, напротив, эволюционирует: появились аннотации типов, LSP, но язык стал сложнее и уже не «выучить за выходные».
  • Некоторые считают, что страсть к Ruby — это ностальгия, а промышленность требует стабильности и инструментов, которые дают статические языки.
  • Общий вывод: выбор языка всё чаще диктуется экосистемой, инструментами и личными приоритетами, а не чистой «красотой» синтаксиса.

macOS dotfiles should not go in –/Library/Application Support (becca.ooo) 💬 Длинная дискуссия

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.

by zdw • 26 августа 2025 г. в 04:49 • 239 points

ОригиналHN

#cli#dotfiles#go#javascript#macos#python#rust#xdg

Комментарии (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 (ghuntley.com) 🔥 Горячее

Как собрать код-агента: бесплатный воркшоп

Материалы и исходники: GitHub

Суть

  • Агент — это 300 строк кода, работающие в цикле, которому просто подаются токены LLM.
  • Поняв принцип, вы перестанете быть потребителем ИИ и станете его продюсером, автоматизируя свою работу.

Зачем

  • В 2025 г. знание, как создать агента, стало фундаментальным навыком, как понимание primary key.
  • Работодатели ищут тех, кто может оркестрировать ИИ внутри компании.
  • Во время Zoom-звонка ваш агент может уже писать код, который вы только обсуждаете.

Что будет на воркшопе

  • Live-сборка агента прямо во время доклада.
  • Объяснение внутреннего устройства: цикл, токены, промпты.
  • Практика: агент строит агента под диктовку.

Дальше

  • Если хотите, чтобы я провёл такой воркшоп у вас в компании — пишите.

by ghuntley • 24 августа 2025 г. в 03:21 • 402 points

ОригиналHN

#automation#bash#llm#prompt-engineering#python#swe-bench

Комментарии (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) (hsivonen.fi) 💬 Длинная дискуссия

В 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 3len("🤦🏼‍♂️") == 5 (кодовые точки, но допускает суррогаты).
  • Rust"🤦🏼‍♂️".len() == 17 (байты UTF-8).
  • Swift"🤦🏼‍♂️".count == 1 (расширенный графем-кластер).

Каждый подход отвечает на свой вопрос: «сколько code units / bytes / графем». Ни один не универсален; выбор зависит от задачи.

by program • 22 августа 2025 г. в 06:18 • 165 points

ОригиналHN

#encoding#javascript#python#rust#string#swift#unicode#utf-16#utf-8#web-development

Комментарии (233)

  • Обсуждение вокруг статьи показало, что «длина строки» не имеет единого определения: бывают байты, UTF-16/UTF-32 код-юниты, скалярные значения Unicode и расширенные графем-кластеры.
  • Пользователи жалуются, что разные языки и API возвращают разные числа для одного и того же эмодзи, что ломает UI-ограничения, индексы БД и обработку текста.
  • Часть участников считает, что нужно явно различать «длину для хранения», «длину для отображения» и «длину для человека»; другие мечтают вернуться к чистому ASCII.
  • Примеры кода на Java, Python, Raku и JS показывают, как получить каждый из вариантов длины, но подчеркивают отсутствие общего стандарта.
  • Итог: «length» — слишком расплывчатое слово; без контекста использования любое его значение может оказаться не тем, что действительно нужно.

MCP doesn't need tools, it needs code (lucumr.pocoo.org)

CLI-инструменты часто зависят от платформы/версии, плохо документированы и ломаются при не-ASCII вводе. Агенты путаются в управлении состоянием (например, tmux-сессиями) и теряют контекст после мелкой ошибки. Каждый вызов ещё тормозит из-за предварительной проверки безопасности.

Композиция в CLI работает через bash: цепочки tmux send-keys, sleep, base64 и т.д. MCP сегодня так не умеет.

Выход — MCP-сервер с одним «убер-инструментом»: Python-интерпретатор, сохраняющий состояние между вызовами. Пример — pexpect-mcp: виртуальное окружение + pexpect, позволяющее скриптами управлять интерактивными CLI-программами. Вместо 30 отдельных MCP-функций достаточно одной, принимающей код.

by the_mitsuhiko • 18 августа 2025 г. в 09:53 • 172 points

ОригиналHN

#api#bash#cli#openapi#pexpect#python#tmux#websocket#yaml

Комментарии (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 (threedle.github.io) 🔥 Горячее 💬 Длинная дискуссия

LL3M — система, где несколько LLM пишут Python-код для Blender, создавая и редактируя 3D-модели по текстовым запросам. В отличие от прежних подходов, ограниченных примитивами, LL3M свободно формирует геометрию, компоновку и материалы. Код служит представлением объекта, что позволяет автоматическую и пользовательскую итеративную доработку.

Процесс

  1. Создание — первичная модель.
  2. Авто-улучшение — самокоррекция ошибок и упрощённой геометрии.
  3. Пользовательская доработка — интерактивные правки по запросу.

Возможности

  • Разнообразие форм: архитектура, инструменты, скейтборд и т.д.
  • Стилизация: один запрос «в стиле стимпанк» меняет геометрию и материалы разных шляп.
  • Материалы: процедурные шейдеры, редактируемые узлы.
  • Последовательные правки: сохраняется идентичность объекта.
  • Прозрачность: читаемый код с комментариями, понятные параметры в Blender.
  • Повторное использование: общие паттерны кода переносятся между категориями объектов.
  • Сцены: генерация иерархий объектов с корректными пространственными связями.

by simonpure • 17 августа 2025 г. в 11:20 • 408 points

ОригиналHN

#3d-modeling#aseprite#blender#freecad#llm#lua#procedural-shaders#python

Комментарии (173)

  • Пользователи делятся опытом: meshy.ai превращает упрощённые 2D-изображения в 3D-модели, а Claude помогает писать Lua-скрипты для Aseprite и Python для FreeCAD/Blender.
  • Ветераны Blender критикуют качество и высокий полигон-счёт, считая инструмент «игрушкой» или «обучающим» для новичков.
  • Сторонники видят в этом будущее «solo-dev»: быстрый прототип, экономия времени и API-first подход в креативных пакетах.
  • Поднимаются вопросы безопасности (несэндбоксированный Python), прав и монетизации опыта художников, а также необходимости понимания 3D-семантики для эффективных промптов.
  • Общий консенсус: сейчас это «cute», но каждая новая итерация будет лучше, и генеративные модели всё ближе к «говорящим на языке геометрии».

Debian 13 “Trixie” (debian.org) 🔥 Горячее 💬 Длинная дискуссия

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 или стандартный установщик.

by ducktective • 09 августа 2025 г. в 18:18 • 850 points

ОригиналHN

#apache#debian#gnome#kde#linux#nginx#postgresql#python#riscv64#rust

Комментарии (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 (blog.tolki.dev) 💬 Длинная дискуссия

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 — полезный инструмент для рутины и прототипов, но не заменяет мышление и глубокое понимание.

by Signez • 09 августа 2025 г. в 16:17 • 182 points

ОригиналHN

#claudecode#clojure#flutter#github-copilot#llm#python#rust#typescript

Комментарии (179)

  • Многие спорят с тезисом «использовать LLM в коде тривиально»: на практике нужны месяцы, чтобы понять, что делегировать, как формировать промпты и управлять контекстом.
  • Кто-то сравнивает LLM с «однорукими бандитами»: результат часто случаен, а «навыки» сводятся к удаче и базовому гуглению.
  • Другие делятся успешным опытом: при жёсткой архитектуре, тестах и узких промптах Claude Code и аналоги дают 9/10 полезных патчей.
  • Утверждение, что LLM «заставляют» выбирать мейнстек, опровергают разработчики на Clojure, D и других нишевых языках.
  • Общий вывод: LLM — мощный инструмент, но требует экспериментов, критического ревью и понимания своих ограничений; без этого он быстро превращается в источник технического долга.

A spellchecker used to be a major feat of software engineering (2008) (prog21.dadgum.com) 💬 Длинная дискуссия

1984: словарь в 256 КБ

Представьте: вам поручили написать спеллчекер для MS-DOS-текстового редактора. У части пользователей всего 256 КБ ОЗУ — и туда должны поместиться редактор, сам документ, ОС и ещё словарь. Сегодня /usr/share/dict/words весит 2,5 МБ и содержит 235 000 слов; тогда это был нереальный объём.

Сжатие трие, вырезание редких слов, кастомная БД на гибком диске 360 КБ — всё это требовало месяцев инженерной работы и гениальных структур данных.

Сейчас

Загрузить словарь в хеш-таблицу — 3–5 строк на Perl или Python; поиск слова — встроенная операция. Всё.

by Bogdanp • 09 августа 2025 г. в 01:07 • 167 points

ОригиналHN

#hash-tables#ms-dos#perl#python

Комментарии (176)

  • Пользователи жалуются, что встроенный спелл-чекер iPhone (и Android) часто хуже человеческого глаза и LLM: «No Guesses Found» при очевидных ошибках.
  • Причины: жёсткие ограничения по скорости и памяти, отсутствие контекста, излишняя буквальность алгоритмов.
  • Многие отказались от встроенных средств и ищут слова в Google или используют LLM.
  • Участники вспоминают, как в 80-е спелл-чекер был прорывом, но требовал переключения дискет и выдавал лишь список ошибок без подсказок.
  • Сегодня задача «проверить орфографию» тривиальна, а вот «предложить правильное» по-прежнему требует сложной инженерии.

Dotfiles feel too personal to share (hamatti.org)

Я обожаю 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 хочу больше глубоких разговоров с людьми со всего мира — буду рад вашему письму.

by speckx • 06 августа 2025 г. в 14:36 • 172 points

ОригиналHN

#css#dotfiles#github#homebrew#neovim#python#security#tmux#vscode#zsh

Комментарии (140)

  • Участники разделились: одни считают дотфайлы слишком личными/уязвимыми для публикации, другие — ценным источником обмена знаниями и вдохновения.
  • Главные опасения: утечки секретов и контекста (хосты, пути, IP, корпоративные детали), риски социнженерии и отпечатков, а также стыд/страх оценки «неидеальной» личной конфигурации.
  • Распространенная практика — разделение на слои: публичные «универсальные» настройки, приватные оверрайды и секреты; отдельные репозитории, шифрование (age/gpg, sops), менеджеры вроде chezmoi, myba, Polykey.
  • Советы по безопасности: не хранить секреты в .bashrc и подобных, исключать их через .gitignore, использовать шифрование и хранилища (1Password ссылки, отдельные файлы, приватные репо).
  • Польза публикации: обучение через чужие конфиги (vim/zsh/emacs/nvim), улучшения качества жизни через алиасы/маппинги, возможность быстро делиться и переустанавливать окружение.
  • Практические подходы: файл-локальные приватные настройки, employer-специфические include-файлы, документирование и чистка перед открытием, минимизация зависимостей от нестандартного софта.
  • Итоговый консенсус: «делиться избирательно» — держать публичным обобщаемое и полезное, а чувствительное и слишком личное — приватным или зашифрованным.

NautilusTrader: Open-source algorithmic trading platform (nautilustrader.io)

  • Самая быстрая и надежная 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-кодом.
    • Любые типы стратегий: настраиваемые компоненты для любой идеи.
    • Конфигурации стратегий: упрощение настройки.

by Lwrless • 06 августа 2025 г. в 11:23 • 191 points

ОригиналHN

#algorithmic-trading#arbitrage#cloud-platforms#github#high-frequency-trading#machine-learning#market-making#order-management-system#parquet#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.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 легально перегружать операции, меняя поведение в рантайме, что разрушает предпосылки для агрессивных оптимизаций.

by todsacerdoti • 06 августа 2025 г. в 08:36 • 228 points

ОригиналHN

#c#jit#memory-management#mypyc#numba#performance#pypy#python#pythran#rust

Комментарии (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.com) 🔥 Горячее 💬 Длинная дискуссия

Открытые модели OpenAI

Продвинутые модели с открытыми весами для любого кейса и запуска где угодно.

Ссылки:

  • Загрузить на Hugging Face
  • Исходники на GitHub
  • Попробовать демо

Модели:

  • gpt-oss-120b — крупная модель для дата-центров и мощных ПК/ноутбуков.
  • gpt-oss-20b — средняя модель, работает на большинстве ПК/ноутбуков.

Преимущества:

  • Разрешительная лицензия: Apache 2.0 — свободная разработка, без копилефта и патентных рисков; подходит для экспериментов, кастомизации и коммерческого использования.
  • Для агентных задач: сильное следование инструкциям и работа с инструментами в ходе рассуждений (веб-поиск, запуск Python-кода).
  • Глубокая настраиваемость: выбор уровня «усилия рассуждений» (низкий/средний/высокий) и полно-параметрический финтюнинг под ваш кейс.
  • Полная «цепочка рассуждений»: доступна для удобной отладки и повышения доверия к ответам.

Интерактивное демо:

  • Простой playground для запуска обеих моделей в браузере.

by lackoftactics • 05 августа 2025 г. в 17:02 • 2083 points

ОригиналHN

#apache-2.0#github#hugging-face#llama.cpp#llm#ollama#openai#python#rust

Комментарии (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 среди текстовых открытых моделей.