Hacker News Digest

Обновлено: 28 ноября 2025 г. в 08:55

Постов: 4635 • Страница 276/464

Show HN: I wrote an OS in 1000 lines of Zig (github.com)

Разработчик создал операционную систему всего в 1000 строк кода на языке Zig. Проект демонстрирует минималистичный подход к построению ОС, включая базовые функции: управление процессами, памятью и простой интерфейс. Zig выбран за его безопасность, производительность и низкоуровневые возможности.

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

by botirk • 18 сентября 2025 г. в 15:05 • 145 points

ОригиналHN

#zig#os#risc-v#arm#memory-management#process-management#github

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

  • Создание минималистичной ОС на Zig в рамках 1000 строк кода с базовыми функциями: загрузка, управление памятью, планирование задач и вывод текста.
  • Критика и вопросы по реализации: отсутствие консольного вывода, несоответствие README, проблемы сборки на разных платформах.
  • Обсуждение технических деталей: формат выходных файлов, поддержка архитектур (RISC-V, ARM), использование библиотек.
  • Рекомендации по улучшению: исправить .gitignore, уточнить версии компилятора, дополнить документацию.
  • Ссылки на аналогичные проекты и запрос на более глубокий анализ целей проекта и опыта использования Zig.

TernFS – An exabyte scale, multi-region distributed filesystem (xtxmarkets.com)

TernFS — экзабайтная распределенная файловая система с поддержкой нескольких регионов

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

TernFS теперь доступна как открытое ПО на GitHub. В статье объясняется её архитектура и ключевые детали реализации.

Зачем ещё одна файловая система?

Крупные tech-компании часто разрабатывают собственные распределенные файловые системы из-за их критической важности. XTX оказалась в аналогичной ситуации и создала TernFS как универсальное решение для хранения — от «холодных» данных до временных файлов для обмена между GPU-задачами.

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

  • Масштабируемость до десятков экзабайт, триллионов файлов и миллионов одновременных клиентов.
  • Избыточное хранение данных для защиты от сбоев дисков.
  • Отсутствие единой точки отказа в службах метаданных.
  • Поддержка снимков файлов для защиты от случайного удаления.
  • Работа в нескольких регионах.
  • Агностичность к оборудованию, использование TCP/IP.
  • Эффективное использование разных типов хранилищ (SSD, HDD).
  • Доступ через собственный API (TCP/UDP) и модуль ядра Linux.
  • Минимальные зависимости для сборки (C++, Go, RocksDB).

Ограничения:

  • Файлы неизменяемы после записи.
  • Не подходит для очень маленьких файлов (медиана — 2 МБ).
  • Ограниченная пропускная способность при создании/удалении директорий.
  • Отсутствие встроенной системы разрешений.

Разработка началась в 2022 году, с 2023 года система используется в production. К середине 2024 года все ML-задачи работают на TernFS. По состоянию на сентябрь 2025 года система хранит более 500 ПБ на 30 000 дисках и 10 000 SSD в трёх дата-центрах, с пиковой пропускной способностью в несколько ТБ/с. Потерь данных не зафиксировано.

Высокоуровневая архитектура

Основной API TernFS реализован четырьмя службами:

  • Шарды метаданных — хранят структуру директорий и метаданные файлов.
  • Координатор междиректорных транзакций (CDC) — выполняет транзакции между шардами.
  • Службы блоков — хранят содержимое файлов.
  • Реестр — хранит информацию обо всех службах и мониторит их.
Диаграмма взаимодействия служб TernFS и клиентов.

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

by rostayob • 18 сентября 2025 г. в 14:36 • 229 points

ОригиналHN

#distributed-filesystem#c++#go#tcp#udp#rocksdb#multiregion#exabyte-scale#xtx#metalearning

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

  • Обсуждение технических особенностей TernFS: отсутствие RDMA, использование TCP/IP, репликация данных, ограничение на минимальный размер файла (~2MB), специализированная система метаданных.
  • Сравнение с другими файловыми системами (CephFS, Lustre, GPFS): различия в архитектуре, производительности, поддержке POSIX и целевых use cases.
  • Вопросы о бизнес-модели и масштабах данных XTX: хранение >500PB для ML-моделей в трейдинге, критика "отсутствия реальной ценности".
  • Обсуждение лицензии (GPLv2-or-later/Apache-2.0) и предложения по улучшению документации (добавление примеров использования).
  • Замечания о нишевых решениях для больших данных: акцент на immutable-данные, сложности с метаданными для tiny files, специализация под конкретные задачи.

Grief gets an expiration date, just like us (bessstillman.substack.com) 🔥 Горячее 💬 Длинная дискуссия

by LaurenSerino • 18 сентября 2025 г. в 14:17 • 427 points

ОригиналHN

#mental-health#grief#psychology#healthcare#frameworks

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

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

Geizhals Preisvergleich Donates USD 10k to the Perl and Raku Foundation (perl.com)

Фонд Perl и Raku с радостью объявляет о пожертвовании в размере 10 000 долларов США от компании Geizhals Preisvergleich. Этот дар помогает обеспечить будущее Фонда поддержки ядра Perl 5.

Perl был неотъемлемой частью нашей платформы сравнения цен с момента основания компании 25 лет назад. Поддержка Фонда означает инвестиции в настоящее и будущее открытых вычислений для нас и других пользователей.

— Майкл Крёлль из Geizhals Preisvergleich

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

— Стюарт Дж. Макинтош, президент Фонда Perl и Raku

Geizhals начал как хобби-проект в 1997 году и вырос до обслуживания 4,3 млн пользователей в месяц. Используя Perl в своей инфраструктуре, они решили поддержать Фонд.

Работа поддерживаемых разработчиков, таких как Тони Кук, включает исправление критических ошибок, например:

  • устранение сбоев при обработке сигналов,
  • исправление ошибок сегментации,
  • предотвращение утечек памяти.

Эти усилия обеспечивают стабильность и надёжность Perl для организаций и частных пользователей. Поддержка компаний вроде Geizhals помогает сохранять ядро Perl в отличном состоянии долгие годы.

Для спонсорства: olaf@perlfoundation.org

by oalders • 18 сентября 2025 г. в 14:01 • 127 points

ОригиналHN

#perl#raku#geizhals#open-source#fundraising

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

  • Geizhals, крупный немецкоязычный сайт сравнения цен, написан на Perl и ассоциируется с издательством Heise Verlag.
  • Пользователи отмечают функциональность и полезность Geizhals, но критикуют его устаревший дизайн и региональную ограниченность (в основном Германия).
  • Сообщество обсуждает состояние Perl: его стабильность, повсеместную установку и удобство для скриптинга, но признаёт его упадок и непопулярность для новых проектов.
  • Возникла дискуссия о безопасности Perl, где некоторые высказывают опасения, а другие опровергают их, ссылаясь на сравнения с Python по количеству CVE.
  • Обсуждается модель финансирования Open Source: небольшие пожертвования (как $10k от Geizhals) против зависимости от крупных спонсоров и проблемы поддержки непопулярных проектов.
  • Упомянуты другие крупные компании, использующие Perl в продакшене, такие как Booking.com и DuckDuckGo.
  • Отмечается, что Perl часто используется для утилитарных скриптов и системного администрирования благодаря своей переносимости и обратной совместимости.

Luau – Fast, small, safe, gradually typed scripting language derived from Lua (luau.org)

Lua_u_

Lua_u_ (строчная u, /ˈlu.aʊ/) — это быстрый, компактный, безопасный, постепенно типизированный встраиваемый язык сценариев, основанный на Lua.

Мотивация

Примерно в 2006 году Roblox начал использовать Lua 5.1 в качестве языка сценариев для игр. Со временем мы значительно развили реализацию и язык: для поддержки растущей сложности игр на платформе Roblox, увеличения размеров команд и написания большого объёма кода (более 1 млн строк к 2020 году) нам пришлось инвестировать в производительность, удобство использования, инструменты языка и ввести постепенную систему типов. Подробнее…

Песочница

Luau ограничивает набор стандартных библиотек, доступных пользователям, и реализует дополнительные функции песочницы для возможности запуска непривилегированного кода (написанного разработчиками игр) вместе с привилегированным кодом (нашим). Это создаёт среду выполнения, отличающуюся от традиционной для Lua. Подробнее…

Совместимость

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

Синтаксис

Luau синтаксически обратно совместим с Lua 5.1 (код, действительный для Lua 5.1, также действителен для Luau); однако мы расширили язык набором синтаксических функций, делающих его более привычным и эргономичным. Синтаксис описан здесь.

Анализ

Для упрощения написания корректного кода Luau включает набор инструментов анализа, которые могут выявлять распространённые ошибки. Они состоят из линтера и проверки типов, интегрированных в исполняемый файл командной строки luau-analyze. Проверки линтера описаны здесь, а руководство по проверке типов можно найти здесь.

Производительность

В дополнение к полностью кастомному фронтенду, реализующему парсинг, линтинг и проверку типов, среда выполнения Luau включает новый байткод, интерпретатор и компилятор, сильно оптимизированные для производительности. Интерпретатор Luau может конкурировать с интерпретатором LuaJIT в зависимости от программы. Также доступен опциональный компонент для ручной JIT-компиляции на платформах x64 и arm64, который может значительно ускорить определённые программы. Мы продолжаем оптимизировать среду выполнения и переписывать её части для ещё большей эффективности. Хотя наша общая цель — минимизировать время, которое программисты тратят на настройку производительности, некоторые детали о характеристиках производительности предоставлены для любознательных.

Библиотеки

Как язык Luau является полным надмножеством Lua 5.1. Что касается стандартной библиотеки, некоторые функции пришлось удалить из встроенных библиотек, а некоторые — добавить; обратитесь к полной документации для подробностей. Когда Luau встраивается в приложение, сценарии обычно получают доступ к дополнительным функциям библиотек, специфичным для приложения.

© 2025 Roblox.

by andsoitis • 18 сентября 2025 г. в 13:38 • 166 points

ОригиналHN

#luau#lua#roblox#typescript#sandbox#jit#performance#linting#type-checking

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

  • Переход на Luau обусловлен системой типов, но язык имеет шероховатости и слабую документацию, а сообщество практически отсутствует.
  • Luau значительно сложнее и объёмнее стандартного Lua, что связано с реализацией системы типов и дополнительных возможностей.
  • Существуют альтернативные реализации и среды выполнения Luau, такие как Lune, предназначенные для использования вне Roblox.
  • Сообщество отмечает проблемы обратной совместимости между различными форками Lua (LuaJIT, Luau, PUC Lua), что создаёт фрагментацию.
  • Luau сравнивают с Teal, но они fundamentally разные: Teal — это транспилятор, а Luau — полноценный форк Lua с собственной средой выполнения.
  • Разработчики Roblox работают над улучшением поддержки Luau вне своей платформы, включая создание standalone-рантаймов.
  • Несмотря на критику, инженерные решения в Luau, особенно в области производительности, оцениваются как впечатляющие.

Flipper Zero Geiger Counter (kasiin.top)

Flipper Zero Geiger Counter

Примечание: все модули протестированы на сторонних прошивках. Рекомендуется использовать:

Совместимые приложения

Счётчик Гейгера

Приложение отображает график с показаниями в импульсах в секунду (CPS) и в минуту (CPM). Есть функции записи, масштабирования и смены единиц измерения.

CPS отображается в левом углу, CPM — справа. Новые значения CPS добавляются каждую секунду.

Для тестирования без трубки Гейгера подключите GPIO A4 к A7 — он генерирует сигнал с меняющейся частотой.

Управление:

  • OK (долгое нажатие): очистить график
  • Влево/вправо: выбор единиц измерения (CPM, μSv/h, mSv/y, Rad/h, mRad/h, uRad/h)
  • Вверх (долгое нажатие): включить/выключить запись (индикатор красный)
  • Вверх/вниз: масштабирование
  • Вниз (долгое нажатие): показать версию приложения
  • Назад (долгое нажатие): выход

Примеры использования:

  • Фоновая радиация (обнаруживаются продукты распада радона)
  • Измерение образцов урановой руды
  • Проверка стрелок часов с радиевой краской
  • Керамика с урановым покрытием
  • Америций-241 из детектора дыма

Запись сохраняется в CSV-файлы на SD-карте. Трубка J305 чувствительна только к бета- и гамма-излучению.

Генератор случайных чисел

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

  • CRC32 (8 импульсов) — для низкой активности
  • MD5 (32 импульса) — для высокой активности

Числа генерируются на основе временных меток при обнаружении излучения. Даже без радиоактивных источников можно использовать естественный радиационный фон от радона в воздухе.

by wgx • 18 сентября 2025 г. в 13:28 • 248 points

ОригиналHN

#flipper-zero#geiger-counter#arduino#esp32#crc32#md5#csv#gpio#radiation-detection

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

  • Обсуждаются возможности и ограничения самодельных и бюджетных счетчиков Гейгера: низкая чувствительность, быстрое насыщение при высоких уровнях излучения, отсутствие калибровки и невозможность спектрометрии (идентификации изотопов).
  • Отмечается, что для серьезных задач (радон, аварийные ситуации) требуются профессиональные приборы (Radiacode, Better Geiger, Radeye), способные измерять высокие уровни излучения и предоставлять энергетически корректные данные о мощности дозы.
  • Поднимаются вопросы безопасности: открытые высоковольтные контакты на плате, хотя риск оценивается как низкий из-за малой силы тока от батарейного питания.
  • Упоминаются практические сложности: необходимость сглаживания показаний, калибровки и использования защитного корпуса для исключения ложных срабатываний и загрязнения.
  • Обсуждаются альтернативы: готовые недорогие китайские наборы, модули для Arduino/ESP32 с сетевым интерфейсом, а также использование камеры смартфона в качестве детектора.

The quality of AI-assisted software depends on unit of work management (blog.nilenso.com)

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

Андрей Карпати описал работу ИИ-инженера как «держать ИИ на коротком поводке». Это означает разбивать задачи на небольшие конкретные части.

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

Правильный размер единицы работы контролирует распространение ошибок. При 5% вероятности ошибки за шаг, после 10 шагов шанс успеха падает до 59,9%. Современные модели, такие как GPT-5, демонстрируют успех в 70% для длительных задач, но это достигается в стабильных средах, тогда как реальные задачи часто происходят в изменяющихся условиях.

by mogambo1 • 18 сентября 2025 г. в 13:06 • 152 points

ОригиналHN

#llm#unit-of-work#machine-learning#tdd#gpt-5

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

  • Оптимальный размер задач для ИИ-агентов — небольшие, хорошо скоупленные единицы работы, аналогичные традиционному управлению проектами.
  • Ключевые сложности: формулировка требований на естественном языке, проверка сгенерированного кода и поддержание контекста.
  • Эффективная стратегия — работа в коротких сессиях с очисткой контекста и использованием саммари между задачами.
  • Мнения о прогрессе инструментов разделились: одни отмечают значительный скачок в качестве, другие — лишь постепенные улучшения.
  • Агенты пока надежно справляются только с простыми, «интерн-уровневыми» задачами, требуя постоянного контроля.
  • Популярные методики: TDD (разработка через тестирование) и декомпозиция крупных задач на более мелкие планы.
  • Аналогии со строительством дома признаются спорными, так как разработка ПО — итеративный, а не линейный процесс.

Teardown of Apple 40W dynamic power adapter with 60W max (chargerlab.com) 💬 Длинная дискуссия

Apple представила компактный 40-ваттный адаптер с динамическим распределением мощности до 60 Вт для iPhone 17 и новой линейки iPhone Air. Устройство размером с обычный 20-ваттный блок заряжает смартфон до 50% за 20 минут благодаря усовершенствованной архитектуре.

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

by givinguflac • 18 сентября 2025 г. в 13:04 • 223 points

ОригиналHN

#apple#iphone#gan#pps#pd#avs

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

  • Пользователи обсуждают детали теардауна зарядного устройства Apple, сравнивая его с конкурентами (Anker, UGreen) и отмечая компактность и использование GaN-технологий.
  • Поднимаются вопросы о нагреве мощных зарядников при нагрузке, желании иметь многопортовые версии и проблемы с совместимостью (например, с ноутбуками HP).
  • Высказываются критические замечания: приклеенные корпуса (увеличивают электронные отходы), проприетарные стандарты Apple (AVS вместо PPS), недоступность в разных регионах.
  • Упоминаются альтернативные продукты (SlimQ, IKEA SJÖSS, встроенные розетки с PD) и даются практические советы по выбору зарядников.
  • Некоторые пользователи делятся опытом использования рентгена и КТ для анализа электроники, а также критикуют сайт за недоступность зума на мобильных.

Obsidian Note Codes (ezhik.jp)

Разработан плагин Note Codes для Obsidian, который присваивает каждой заметке в хранилище уникальный четырёхсимвольный код. Эти коды позволяют быстро ссылаться на заметки из других мест, например из рукописных записей. Для удобства реализован обработчик протокола, так что ссылка вида obsidian://note-codes/open?code=XX-XX сразу откроет соответствующую заметку.

Коды генерируются на основе имени и пути файла с использованием SHA-256 и кодировки Base32 по схеме Дугласа Крокфорда. Исключены легко путаемые символы вроде O, I, L, U, но плагин корректно обрабатывает их при поиске. Ёмкость системы — 1 048 576 уникальных кодов. Плагин открыт и доступен на GitHub.

by surprisetalk • 18 сентября 2025 г. в 12:22 • 92 points

ОригиналHN

#obsidian#plugins#note-taking#github#sha-256#base32#hashing

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

  • Обсуждается практичность 4-символьных кодов для краткой идентификации заметок в Obsidian, основанных на хеше имени файла.
  • Поднимается проблема коллизий из-за малого пространства кодов (1 млн вариантов) и парадокса дней рождений, особенно при большом количестве заметок.
  • Критикуется привязка кода к имени и пути файла, так как это делает ссылки нестабильными: код меняется при переименовании или перемещении заметки.
  • Предлагаются альтернативы: использование уникальных префиксов (как в Git), GUID или эвристик для генерации кодов, связанных с содержимым.
  • Основное предназначение кодов — быстрое указание на заметки из внешних источников (например, рукописных записей), но это же делает проблему нестабильности ссылок критичной.

KDE is now my favorite desktop (kokada.dev) 🔥 Горячее 💬 Длинная дискуссия

Перешёл на KDE как основную среду для игрового ПК, чтобы жена могла комфортно пользоваться компьютером. Изначально выбрал её как альтернативу Sway, но теперь считаю KDE лучшей десктопной средой — даже в сравнении с Windows и macOS.

KDE впечатляет своей полнотой функций. Например, сетевой апплет показывает детальную информацию о Wi-Fi: канал, силу сигнала, MAC-адрес роутера, а также позволяет делиться данными через QR-код. Встроенный инструмент для скриншотов удобен — не нужны сторонние приложения.

Есть и полезные мелочи: управление правами Flatpak через системные настройки, проверка SMART-статуса дисков, кнопка для отключения сна системы. Окна приложений можно гибко настраивать через «Правила окон» — например, убрать автофокус Steam при запуске.

KDE ещё и быстрая. На том же железе она отзывчивее Windows 11, а системные настройки открываются мгновенно. По скорости почти не уступает Sway, хотя анимации можно отключить.

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

by todsacerdoti • 18 сентября 2025 г. в 12:17 • 813 points

ОригиналHN

#kde#linux#flatpak#wayland#gnome#dolphin#kde-connect#desktop-environment

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

  • Пользователи высоко оценивают KDE за его настраиваемость, стабильность и богатый функционал, включая такие инструменты, как KDE Connect и Dolphin.
  • Многие перешли на KDE с других сред, разочаровавшись в ограниченной кастомизации GNOME и нестабильности его расширений.
  • Отмечается значительный прогресс в полировке интерфейса и исправлении ошибок, что сделало KDE конкурентоспособным с macOS и Windows.
  • Некоторые пользователи критикуют KDE за остающиеся баги, избыток опций настройки и отдельные проблемы с миграцией на Wayland.
  • KDE воспринимается как среда, которая уважает пользователя, предлагает инновации и подходит как техническим специалистам, так и менее технически подкованным людям.