Bad Apple but it's played inside Super Mario Bros
В Super Mario Bros. для NES реализовано произвольное исполнение кода (ACE) через манипуляции с игровым состоянием. Используется старт на уровне 'N' для инициализации объекта C9, который перезаписывает память и позволяет выполнять пользовательский код. В демонстрации воспроизводится видеоклип Bad Apple!! с синхронизированным звуком через контроллер, преобразуя музыку в нажатия кнопок. Для графики применяется эффективное кодирование кадров в тайлы NES с оптимизацией через пакеты данных. Эмулятор BizHawk 2.9.1 обеспечивает точность, включая работу с "открытой шиной", что подтверждено запуском на реальной консоли. Достигнуты полное прохождение, максимальный счёт и время 4:52.65.
Комментарии (24)
- Аудио на NES стримится через контроллер с помощью миллионов быстрых нажатий кнопок (5.8 млн), что является формой векторного квантования.
- Воспроизведение требует модифицированного ROM или ручной настройки памяти для загрузки кода, но возможно на реальном железе.
- Частота аудиострима достигает ~25 кГц, периодически снижаясь до ~9 кГц при обработке видео.
- Полный файл TAS (~16 МБ) значительно превышает объем RAM NES (4 КБ), поэтому данные стримятся в реальном времени.
- Результат впечатляет качеством звука, сохраняя аутентичный 8-битный стиль, особенно в басах.
Consistent hashing
Консистентное хеширование решает проблему перераспределения данных при изменении числа узлов в распределённых системах. Вместо обычного хеширования с модулем, где добавление или удаление узла приводит к полному пересчёту всех ключей, этот алгоритм использует круговую схему: и узлы, и данные хешируются на окружность, а каждый элемент назначается ближайшему узлу по часовой стрелке.
При изменении количества узлов перемещаются только данные, попадающие в зону между старыми и новыми узлами — примерно M/N элементов вместо всех M. Это обеспечивает стабильность системы: например, при выходе узла из строя его нагрузка равномерно распределяется между соседями, а не вызывает каскадный сбой. Алгоритм широко применяется в кеширующих прокси, распределённых базах данных и CDN для минимизации дисбаланса при масштабировании.
Комментарии (21)
- Предложено использовать rendezvous hashing как более простую и универсальную альтернативу consistent hashing, не требующую виртуальных узлов и поддерживающую взвешенное распределение.
- Упомянуты различные реализации и применения хеширования: CRUSH в Ceph, Lamping-Veach алгоритм, кеш-ориентированная версия для SSD, простая реализация на Clojure.
- Обсуждаются стратегии минимизации перераспределения данных при изменении числа узлов: увеличение числа партиций, метод "power of 2 choices", кластеризация в rendezvous hashing.
- Отмечена опечатка в заголовке исходного поста ("Constitent" вместо "Consistent") и дан совет по её исправлению.
- Затронута историческая справка об основателе Akamai Дэниеле Люине и его трагической судьбе.
Google appears to have deleted its political ad archive for the EU
Google удалила архив политической рекламы в ЕС, уничтожив данные за семь лет — с 2018 года. Исчезла информация о расходах, таргетинге и сообщениях партий и кандидатов на YouTube, в поиске и дисплейной рекламе во время выборов в 27 странах. Ранее Google анонсировала запрет на политическую рекламу, но о стирании архива не предупреждала.
Теперь доступны только данные по США, Великобритании, Индии и нескольким другим странам, но не по ЕС. Поиск по ключевым словам или партиям (например, Sinn Féin, тратившая до €10 тыс. в день) возвращает ноль результатов. Архив создавался после скандалов вокруг Brexit и выборов Трампа для прозрачности и исторической фиксации кампаний. Его удаление подрывает подотчётность, память и демократические процессы.
Комментарии (99)
- Пользователи критикуют ожидание, что корпорации (вроде Google) бесплатно и вечно архивируют данные, и подчеркивают личную ответственность за сохранение важной информации.
- Высказывается предположение, что удаление архива политической рекламы связано с новыми регуляциями ЕС и желанием Google избежать рисков и издержек.
- Отмечается, что Google заработал на этой рекламе, и его решение удалить архив, когда он стал невыгоден, воспринимается как циничное.
- Обсуждается роль крупных tech-компаний как де-факто хранителей цифрового пространства и возможная необходимость государственного регулирования их архивной политики.
- Приводятся технические детали: данные ещё доступны в BigQuery в течение 7 дней, и участники призывают сообщество к их срочному сохранению.
Queueing to publish in AI and CS
Система публикаций в ИИ и CS с низким фиксированным процентом принятия работает как очередь: авторы бесконечно пересылают отклонённые работы. Модель показывает, что снижение acceptance rate с 35% до 20% почти не отсеивает больше плохих статей — их доля среди заброшенных растёт лишь с ~60% до ~77%. Зато резко увеличивается нагрузка на рецензентов (на 46%) и число забракованных средних работ — с ~4% до ~24%.
Ключевой вывод: ужесточение критериев незначительно улучшает качество публикаций, но непропорционально увеличивает объём рецензирования и случайно отсеивает много достойных работ. Система становится неэффективной: авторы и рецензенты тратят время впустую, а итоговый объём принятых статей остаётся прежним.
Комментарии (48)
- Проблема массового использования ИИ для генерации низкокачественных и даже фальшивых статей, нагружающих систему рецензирования.
- Кризис системы научных конференций: перегруженность, низкое качество рецензий, физические ограничения на число участников.
- Системные искажения: карьера учёных зависит от количества публикаций в престижных журналах, а не от реального вклада в науку.
- Предлагаются решения: введение платы за подачу статей, изменение системы оценки исследователей, создание новых конференций.
- Общее ощущение, что текущая модель поощряет «гонку на дно» в ущерб качеству и глубине исследований.
What is “good taste” in software engineering? 🔥 Горячее 💬 Длинная дискуссия
Хороший вкус в разработке — это не техническое умение, а способность выбирать набор инженерных ценностей, подходящих конкретному проекту. В отличие от навыков, которые можно развить учёбой и практикой, вкус формируется через личный опыт и предпочтения. Например, одни разработчики ценят читаемость кода с map и filter, другие — производительность for-циклов, и это различие отражает их приоритеты, а не уровень компетенции.
Ключевой признак зрелости — понимание, что почти каждое решение в разработке связано с компромиссами: между скоростью, гибкостью, устойчивостью или читаемостью. Незрелые инженеры часто жёстко придерживаются одного подхода, тогда как опытные оценивают контекст и выбирают оптимальное решение для конкретной задачи. Ваш вкус определяется тем, какие ценности — например, корректность, масштабируемость или скорость разработки — вы ставите выше остальных в данной ситуации.
Комментарии (208)
- Обсуждение определяет "хороший вкус" в разработке как способность выбирать оптимальные решения, основанные на контексте и требованиях проекта, а не на личных предпочтениях.
- Участники подчеркивают, что хороший вкус тесно связан с опытом, гибкостью, умением аргументировать выбор и предвидеть последствия решений для поддержки и масштабирования.
- Многие отмечают, что хороший вкус — это баланс между читаемостью, производительностью, простотой и соответствием бизнес-целям, а не слепое следование догмам или модным тенденциям.
- Спорным остается вопрос, является ли "вкус" субъективным эстетическим понятием или его можно формализовать через принципы инженерии (например, поддерживаемость, ясность, минимальная сложность).
- Некоторые видят корень проблемы в смешении объективно плохих решений (например, неэффективные алгоритмы) и субъективных предпочтений (стиль кода, выбор парадигм).
Zero ASIC releases Wildebeest, the highest performance FPGA synthesis tool
Компания Zero ASIC выпустила Wildebeest — инструмент синтеза для FPGA с рекордной производительностью, который впервые в opensource-сообществе сокращает разрыв в качестве результатов (QoR) с проприетарными аналогами. Ключевые инновации включают адаптацию алгоритмов синтеза под размер схемы, использование передовых команд abc9 для минимизации глубины логики и опору на обширный бенчмарк-набор из 150+ тестов. Разработку возглавил Тьерри Бессон, привнёсший 30-летний опыт создания коммерческих решений.
Wildebeest демонстрирует превосходство над ведущими коммерческими и opensource-инструментами: например, для picorv32 он использует на 20% меньше LUT, чем лучший проприетарный конкурент, при сравнимой глубине логики. Проект развивается при поддержке сообщества через открытый бенчмарк LogikBench, а в планах — дальнейшее улучшение QoR для полного преодоления технологического отрыва коммерческих инструментов.
Комментарии (45)
- Открытые инструменты синтеза ценятся за отсутствие громоздких сред разработки, в отличие от проприетарных решений.
- Новый плагин для Yosys представлен как отдельный инструмент, но вызывает вопросы из-за ограниченной поддержки архитектур и отсутствия интеграции с основным проектом.
- Результаты бенчмарков подвергнуты критике за некорректное сравнение разных архитектур FPGA (LUT6 vs LUT4) и отсутствие данных о реальных устройствах.
- Открытые инструменты всё ещё отстают от проприетарных из-за отсутствия документации по битстримам и маршрутизации для популярных FPGA.
- Снижение логической глубины не всегда ведёт к повышению частоты, так как ключевым фактором задержки часто является маршрутизация, а не логика.
I built ChatGPT with Minecraft redstone [video] 🔥 Горячее
YouTube — это глобальная видеоплатформа, принадлежащая Google LLC, предоставляющая пользователям доступ к разнообразному контенту. Сервис включает разделы о компании, пресс-релизы, информацию об авторских правах и контакты, а также ресурсы для создателей, рекламодателей и разработчиков.
Платформа регулируется условиями использования, политикой конфиденциальности и мерами безопасности, включая объяснение работы YouTube. Пользователи могут тестировать новые функции, а также доступны предложения вроде NFL Sunday Ticket. Все права защищены до 2025 года.
Комментарии (85)
- В Minecraft создана работающая модель языкового моделирования (LLM) с 5 млн параметров, генерирующая текст со скоростью 1 токен в 2 часа.
- Проект реализован на редстоуне без использования командных блоков, но с применением внешних инструментов для программного размещения блоков.
- Сообщество обсуждает техническую реализацию, включая специализированный серверный софт (MCHPRS) и оптимизацию редстоун-схем.
- Многие пользователи изначально восприняли заголовок как кликбейт, но были впечатлены реальным воплощением идеи.
- Обсуждение также затрагивает теоретические аспекты, такие как тьюринг-полнота Minecraft и сравнение с другими проектами (например, CPU в игре).
F-Droid and Google’s developer registration decree 🔥 Горячее 💬 Длинная дискуссия
F-Droid уже 15 лет предоставляет безопасный каталог свободных приложений для Android, проверяя исходный код на отсутствие скрытых функций вроде трекеров и рекламы. Каждое приложение собирается из открытого кода и подписывается, гарантируя прозрачность и защиту от вмешательства. В отличие от коммерческих магазинов, где распространены шпионские программы, F-Droid обеспечивает конфиденциальность — например, погодные приложения не передают данные брокерам.
Новая политика Google требует от разработчиков централизованной регистрации с оплатой, верификацией личности и привязкой идентификаторов приложений. Это угрожает существованию F-Droid, который не может ни принудить авторов к регистрации, ни присвоить их идентификаторы. Реализация правил лишит пользователей тысяч проверенных приложений и подорвет доверие к открытому ПО.
Комментарии (472)
- Участники выражают серьёзную озабоченность новыми правилами Google, которые угрожают существованию независимых магазинов приложений, таких как F-Droid, и возможности сторонней установки (sideloading).
- Многие видят в этом шаге конец открытости Android, усиление контроля корпораций над пользователями и потенциальную угрозу цифровым свободам, включая развитие открытого ПО.
- Обсуждаются возможные последствия: уход разработчиков с платформы, необходимость перехода на альтернативные ОС (например, GrapheneOS, PureOS), а также потенциальные конфликты с лицензиями вроде GPLv3.
- Высказывается мнение, что проблема требует законодательного решения на уровне государств (особенно ЕС) для защиты права пользователей запускать любое ПО на своих устройствах.
- Некоторые видят выход в развитии прогрессивных веб-приложений (PWA) и мобильных версий Linux как альтернативы закрытым экосистемам.
Комментарии (36)
- Пользователи сообщают о частых проблемах с доставкой FedEx Ground: задержки посылок на несколько дней, ложные отметки о доставке и низкое качество службы, особенно в SF.
- Отмечается структурная проблема: курьеры FedEx Ground являются независимыми подрядчиками, а не сотрудниками, что, по мнению комментаторов, негативно сказывается на качестве сервиса.
- Высказывается недовольство работой службы поддержки клиентов, которая часто дает неверную информацию и избегает ответственности за сбои в доставке.
- Некоторые пользователи предпочитают доставку в пункты выдачи, чтобы избежать проблем с "последней милей", или выбирают конкурентов (например, UPS) из-за негативного опыта.
- Обсуждается уязвимость бизнес-модели FedEx Express из-за большого флота и фиксированных рейсов, а также потенциал автономных грузоперевозок на трассах.
Cleaning house in Nx monorepo, how i removed unused deps safely
Автор успешно удалил около 120 неиспользуемых зависимостей в Nx-монополии, сократив время установки на минуту и уменьшив количество уязвимостей. Для этого он использовал инструмент Knip вместо устаревшего depcheck, так как он лучше работает с современными монополями и анализирует импорты и конфиги. Knip выдал список потенциально ненужных пакетов, но около 40% из них оказались ложными срабатываниями — например, зависимости использовались в скриптах, конфигах Jest или CSS.
Процесс включал удаление кандидатов, последующую проверку сборки, тестов и запуска приложений, а затем восстановление пакетов, которые оказались нужны, с добавлением их в ignore-лист Knip. Автор настроил конфиг под монополию, игнорируя специфичные для проектов ложные срабатывания. Изменения были мержены одной партией в тихое время с предварительным деплоем в preview-ветку для проверки. В будущем планируется интегрировать Knip в CI для предотвращения накопления мусора.
Комментарии (26)
- Обсуждаются причины накопления неиспользуемых зависимостей: невнимательность разработчиков, множественные рефакторинги, устаревшие библиотеки в монорепозиториях и автоматическое добавление пакетов без контроля.
- Участники отмечают, что инструменты вроде Knip помогают выявлять мертвые зависимости и файлы, но не оценивают качество кода, и окончательное решение остается за человеком.
- Экосистема и практики разработки (например,
pip freezeилиnpm installбез проверки) поощряют накопление лишних пакетов. - В больших и старых проектах, особенно с микросервисами и смешанными стеками, "хлам" накапливается быстро из-за миграций и отсутствия регулярной очистки.
- Некоторые видят в постоянной борьбе с кликбейтом и переименованиях заголовков раздражающий и непродуктивный аспект обсуждений.