Realtime BART Arrival Display
Автор создал физическую панель отображения реального времени прибытия поездов BART, воссоздающую винтажный вид платформенных табло. В качестве основы использовался Seeed Studio XIAO ESP32C6 с красным OLED-дисплеем 20x4 от BuyDisplay и преобразователем уровня логики. Компоненты были припаяны на perfboard с выводами, позволяющими подключаться к дисплею как картридж. Для обработки данных BART через GTFS Realtime API автор создал промежуточное ПО, так как ESP32 самостоятельно не справлялся бы с парсингом сырых данных.
Корпус устройства был напечатан на 3D-принтере, обработан и покрашен, а стикеры с названием BART и номером платформы созданы с помощью Brother label maker. Финальная конструкция смонтирована под полкой над монитором и показывает время, сообщения безопасности и время прибытия поездов, создавая ощущение пребывания на реальной платформе. Код проекта доступен на GitHub, а 3D-модели — на Makerworld.
Комментарии (43)
- Проект получил признание за свою полезность и качество исполнения, но также вызвал ностальгию по старому голосу BART и желание иметь такое устройство в продаже.
- Участники обсуждали, что планировать время выхода из дома по расписанию не имеет смысла из-за ненадежности расписания, и что вместо этого лучше отправляться в путь когда удобно.
- Было отмечено, что в зимние месяцы в Финляндии важно иметь такое устройство, так как ожидание трамвая на морозе может быть неприятным.
- Поднялся вопрос о том, что такие устройства должны быть доступны в коммерческом виде, и что в них должен быть доступен голос BART.
- Также было отмечено, что в отсутствии официального мерча BART, можно было бы продавать такие устройства сами, и что они были бы полезны для других систем транспорта.
Beets: The music geek’s media organizer
Beets — это система управления медиатекой для одержимых музыкой фанатов. Программа автоматически каталогизирует вашу коллекцию, улучшая метаданные через базу данных MusicBrainz. Благодаря архитектуре, построенной как библиотека, beets может практически всё: получать обложки альбомов, тексты песен, жанры, темп, уровни ReplayGain и акустические отпечатки. С помощью плагинов система также умеет конвертировать аудио в любые форматы, находить дубликаты и недостающие треки.
Уникальность beets — в гибкости расширений. Если нужной функции нет, написать плагин на Python удивительно просто. Метаданные можно получать из MusicBrainz, Discogs или Beatport, либо угадывать по именам файлов или акустическим отпечаткам. Для удобства предусмотрен веб-интерфейс с поддержкой HTML5 Audio. Установка выполняется одной командой: pip install beets, после чего доступно подробное руководство для начинающих.
Комментарии (91)
- Обсуждение вращается вокруг инструментов для управления музыкальной коллекцией: beets, MusicBrainz, Navidrome и их альтернативы.
- Участники делятся личными workflow: покупка на Bandcamp, импорт в beets, автоматическое переименование и теггинг, а затем синхронизация с Navidome через Rclone.
- Обсуждаются сложности с автоматическим теггингом и необходимостью вручную добавлять релизы в MusicBrainz.
- Поднимается вопрос о том, как обрабатывать музыку, которая еще не в базах данных, и как быть с жанрами, которые различаются в разных источниках.
- Участники обмениваются советами по конфигурации и использованию этих инструментов и обсуждают их кривые и недостатки.
Error ABI
Статья рассматривает проблемы ABI (Application Binary Interface) при обработке ошибок в программировании. Распространённое мнение, что заполнение информации об ошибках "бесплатно" из-за их редкости, неверно. Наивное составление ошибок из алгебраических типов данных (ADT) ухудшает "счастливый путь" выполнения кода. Объекты ошибок, рекурсивно составленные из перечислений, tend to be large, увеличивая size_of<Result<T, E>>, что заставляет функции по всей стеку вызовов использовать возврат больших структур через память. "Вирусность" ошибок означает, что даже одна большая ошибка на редко выполняемом пути ухудшает производительность везде.
Поэтому зрелые библиотеки обработки ошибок скрывают их за тонким указателем, как в Rust (failure и anyhow), но это требует глобального аллокатора, что тоже не бесплатно. Автор предлагает три подхода к возврату результатов: стандартный (как пользовательский тип), более умный (ABI как у T с зарезервированным регистром для E) и радикальный (полное совпадение ABI с -> T и разворот стека для ошибок). Последний, по мнению автора, может быть оптимальным, несмотря на отсутствие надёжных бенчмарков. Вывод: обработка ошибок должна быть специальной для компилятора, особенно в языках со средним уровнем абстракций.
Комментарии (31)
- Адаптивные ABI для статически линкуемых программ могут оптимизировать производительность за счёт контекстного анализа использования функций.
- Проблема "вирусности" больших типов ошибок: даже редкие большие ошибки могут ухудшить производительность всего стека вызовов.
- Альтернативные подходы к обработке ошибок включают тонкие указатели с vtable (anyhow/failure) и разделение Result<T,E> при значительном различии размеров T и E.
- Добавление исключений в Rust вызывает споры: одни видят в этом угрозу производительности, другие — потенциальное решение проблем обработки ошибок.
- Checked exceptions в Java критикуют за необходимость изменения кода при модификации исключений, хотя другие видят в этом преимущество для надёжности кода.
LLM policy?
В репозитории opencontainers/runc появился новый issue #4990 с названием "[rfc] LLM policy?", который инициирует обсуждение возможной политики использования больших языковых моделей (LLM) в проекте. Это RFC (Request for Comments), что указывает на начало процесса формирования официальной позиции команды разработчиков runc по отношению к ИИ-инструментам.
На данный момент в обсуждении нет конкретных деталей предложений, но сам факт появления такого RFC показывает растущую важность выработки подходов к использованию ИИ в open source-проектах. Команда runc, известного как реализация стандарта OCI для контейнеров, рассматривает необходимость создания правил для применения LLM в разработке кода, документации или других аспектах проекта.
Комментарии (92)
- LLM-генерированный контент (PR, issue, code-review) уже перегружают open-source проекты, и это вызывает обеспокоенность, что они могут подорвать доверие и эффективность сообщества.
- Проекты сталкиваются с трудностью отличить автоматически созданный контент от человеческого, что усложняет модерацию и может отпугнуть новых участников.
- Некоторые участники предлагают, что вместо запрета LLM-контрибьюторов, проекты должны сосредоточиться на улучшении процесса ревью кода и тестов, чтобы поддерживать качество кода.
- Другие участники подчеркивают, что проблема не в самом LLM, а в низком качестве вклада, независимо от того, человек или машина его создала.
How the UK lost its shipbuilding industry 💬 Длинная дискуссия
В конце Гражданской войны в США до 1950-х годов Великобритания доминировала в мировом судостроении, производя 80% мирового тоннажа к 1890-м. После Второй мировой страны казалась непобедимой, строя больше судов, чем весь остальной мир. Однако к 1957 году её доля упала с 57% до 17%, а к 1990-м - ниже 1%. В 2023 году Великобритания не произвела ни одного коммерческого судна.
Падение стало следствием неспособности адаптироваться к новым технологиям. Британская промышленность полагалась на квалифицированный труд, избегая дорогой инфрактуры, что когда-то давало преимущество. Когда конкуренты, особенно из США, внедрили новые методы строительства, разработанные во время войны, Британия не смогла ответить. Её устаревшая система, эффективная в прошлом, оказалась неспособной к изменениям в быстро меняющемся судоходном рынке.
Комментарии (414)
- Производство кораблей и других тяжёлых отраслей в Великобритании исчезло из-за отсутствия стратегического планирования и инвестиций, а не из-за «неэффективности» рабочих или профсоюзов.
- Соединённые Штаты и Европа добровольно отказались от собственного производства в пользу Китая, и теперь страдают от последствий.
- Попытки объяснить это «неэффективностью» рабочих или профсоюзов игнорируют тот факт, что правительства не инвестировали в инфраструктуру и технологии, и вместо этого позволили отрасли умереть.
- Вопрос о том, что страна должна иметь собственное производство, остаётся открытым, но важно помнить, что в 21-м веке это должно быть основано на инвестициях в технологии и образование, а не на попытках сохранить устаревшие методы.
Work after work: Notes from an unemployed new grad watching the job market break 🔥 Горячее 💬 Длинная дискуссия
Выпускник компьютерных наук, выполнивший все «правильные» шаги для успешной карьеры — университет, отличные оценки, стажировки, даже запуск небольшого консалтинга — всё равно остаётся безработным. Несмотря на следование всем правилам и получению нужных навыков, автор сталкивается с «сломанным» рынком труда, где даже компьютерные специальности, считавшиеся надёжными, теперь показывают одну из самых высоких безработиц среди выпускников. Официальная статистика безработицы остаётся низкой, но плотность возможностей резко сократилась — тысячи одинаково подготовленных соиск соревнуются за ограниченное количество вакансий.
За экономическими циклами, такими как повышение процентных ставок, скрывается более глубокая трансформация: капитал обнаружил, что программное обеспечение, роботы и офшорный труд можно эффективно комбинировать. Хотя ранние прогнозы о массовой автоматизации были преувеличены, наблюдается медленное, но устойчивое давление на определённые виды работ. В распределённых центрах Amazon, например, роботизация уже приводит к замедлению роста или сокращению персонала, создавая будущее, где человеческий труд перестаёт быть «необходимым ингредиентом» для крупных операций.
Комментарии (292)
- Ситуация с рынком труда для новых выпускников в технологической сфере вызывает тревогу, но неясно, насколько это связано с AI или просто с циклом экономики.
- Постоянный поток H1B-виз в США и отсутствие иммиграционной политики в Великобритании подчеркивают, что рынок труда не локален, а глобален.
- Сообщество Hacker News обсуждает, как выживают выпускники, которые не попали в FAANG, и какие навыки нужны, чтобы выжить в этой ситуации.
- Дискуссия подчеркивает, что важно не только технические навыки, но и умение "продавать" себя и сетевое взаимодействие.
- Некоторые участники подчеркивают, что важно не только найти работу, но и быть готовым к тому, что рынок труда может быть циклическим, и что важно быть гибким и адаптивным.
Sued by Nintendo
На странице представлен сайт, посвященный историям прекращения деятельности (Cease and Desist) от Nintendo. Однако для просмотра полного списка случаев требуется включить JavaScript. Сайт создан пользователем Cawolf и предлагает возможность предлагать изменения через GitHub репозиторий. Основной функционал, судя по описанию, должен содержать информацию о судебных исках и требованиях Nintendo к нарушителям их авторских прав.
Комментарии (53)
- Nintendo ведёт себя как патент-тролль, но при этом не является единственной компанией, которая так делает, и в этом нет ничего нового.
- Список, который обсуждается, неполон и не охватывает все случаи, и это вызывает вопросы о его полноте и выборочности.
- Судя по всему, Nintendo не единственная компания, которая ведёт себя подобным образом, но в то же время она не единственная, кто это делает.
- Судя по всему, список не охватывает все случаи, и это вызывает вопросы о его полноте и выборочности.
Комментарии (107)
- Люди задаются вопросом, сколько именно нужно заниматься, чтобы избежать проблем со здоровьем, но точного ответа нет — лишь общие рекомендации ВОЗ и ряд исследований, которые не дают конкретных цифр.
- Обсуждается, что даже если человек не может выполнять рекомендованные 150 минут умеренной активности в неделю, то даже небольшая активность всё ещё лучше, чем полное отсутствие движения.
- Поднимается вопрос о том, можно ли компенсировать отсутствие физической активности добавками, но нет уверенности, что это возможно.
- Участники обсуждения делятся личным опытом, что даже при наличии у них всяких ограничений, они находят способы оставаться активными.
Ask HN: What Are You Working On? (Nov 2025) 🔥 Горячее 💬 Длинная дискуссия
—
Комментарии (1213)
- Проекты охватывают от автомасштабирования кластера до генератора историй, демонстрации важности локального хранения данных и даже до создания языка программирования.
- Среди прочего: само-обучающийся инструмент для веб-API, инструмент для визуализации данных, инструмент для создания цветовых палитр, инструмент для создания и ведения списков задач, инструмент для создания и ведения списков задач, инструмент для создания и ведения списков задач, инструмент для создания и ведения списков задач.
- Проекты варьируются от OSS до коммерческих, от хобби до полностью само-финансируемых, и от индивидуальных до коллективных.
- Некоторые проекты уже имеют пользователей, другие находятся в стадии альфа или бета-тестирования.
The Sega Master System
Классификация игровых консолей по поколениям оказывается довольно условной — особенно это касается Sega Master System. Его предшественник SG-1000 выпустили в тот же день, что и Famicom (NES), но его аппаратное обеспечение ближе к ColecoVision из предыдущего поколения. Master System (известный как Mark III в Японии) появился в 1985 году, через три года после SG-1000 и год после выхода NES на международный рынок. За эти два года индустрия сделала огромный скачок — вышли Amiga 1000 и MSX2 с гораздо более продвинутой графикой. Интересно, что Master System, как и Atari 5200, считается частью того же поколения, что и его предшественник, но в отличие от 5200 добился гораздо большего успеха.
Техническое сравнение Master System с SG-1000 и NES показывает интересные различия: Master System предлагает 8KB оперативной памяти против 2KB у NES и 1KB у SG-1000. Видеопамять всех трех систем составляет 16KB, но NES использует инновационный подход, мапя 8KB ROM напрямую в пространство VRAM. Master System расширил лимит ROM с 32KB до 48KB и внедрил стандартизированный механизм bankswitching до 512KB, в то время как NES relied на более специфичные решения.
Комментарии (30)
- Обсуждение началось с воспоминаний о влиянии чипа TMS9918 на Sega Genesis и другие системы, а также о том, как это повлияло на разработку игр и эмуляторов.
- Участники обсуждали, что влияние чипа TMS9918 на разработку игр и эмуляторов, а также о том, как это повлияло на разработку игр и эмуляторов.
- Участники также обсудили, что влияние чипа TMS9918 на разработку игр и эмуляторов, а также о том, как это повлияло на разработку игр и эмуляторов.
- Участники также обсудили, что влияние чипа TMS9918 на разработку игр и эмуляторов, а также о том, как это повлияло на разработку игр и эмуляторов.
- Участники также обсудили, что влияние чипа TMS9918 на разработку игр и эмуляторов, а также о том, как это повлияло на разработку игр и эмуляторов.