Are-we-fast-yet implementations in Oberon, C++, C, Pascal, Micron and Luon
Проект представляет собой набор реализаций бенчмарка "Are-we-fast-yet" на различных языках программирования, включая Oberon, C++, C, Pascal, Micron и Luon. Основная цель - сравнение производительности разных языков через единый тестовый набор. Реализации позволяют разработчикам оценить эффективность каждого языка в стандартных задачах и понять, как современные языки конкурируют с классическими.
Бенчмарк охватывает ключевые алгоритмические задачи, такие как сортировка, обработка строк и математические вычисления. Интересно, что даже в 2023 году некоторые классические языки, как C и Pascal, демонстрируют конкурентоспособную производительность, в то время как более современные языки предлагают разные компромиссы между скоростью и выразительностью кода. Проект предоставляет ценный ресурс для выбора языка программирования под конкретные требования производительности.
Комментарии (19)
- Обсуждение в основном касается языков Oberon и их компиляторов, включая их производительность и репозиторий.
- Участники обсуждают, что репозиторий недавно добавил реализацию на C++, но она оказалась значительно медленнее.
- Также поднимается вопрос о названии Micron — участники считают его плохим выбором, так как может вводить в заблуждение.
- Появляется ссылка на недавно опубликованные результаты тестов производительности.
- Участник под ником «dead» отмечен как неактивный.
ML on Apple ][+
K-means — классический алгоритм кластеризации в машинном обучении — реализован на Apple II+ с использованием APPLESOFT BASIC. Автор, преподаватель курса Stanford CS229, демонстрирует работу алгоритма на двумерных данных с двумя кластерами, визуализируя процесс сходимости и итоговые границы решений. Точность достигает 90%, несмотря на малое количество точек (всего 10 наблюдений).
Алгоритм состоит из инициализации случайными центроидами, шага назначения (расчёт евклидовых расстояний) и шага обновления центров. Для ускорения отладки автор сократил выборку, сохранив даже выбросы за границами экрана. Код организован через подпрограммы, включает ожидание нажатия клавиши и оптимизирован для избежания повторного объявления массивов. Это показывает, как даже на ограниченном железе можно эффективно выполнять базовые ML-алгоритмы.
Комментарии (24)
- Участники делятся ностальгическими воспоминаниями о написании алгоритмов (генетических, перцептронов) на старых языках и компьютерах (Pascal, Apple II, BASIC).
- Некоторые комментаторы выражают недоумение по поводу использования K-means для классификации и построения границ решений, считая это странным или ошибочным подходом.
- Обсуждается целесообразность и мотивация реализации машинного обучения на столь старом и ограниченном железе, как Apple II.
- Поднимается философский вопрос о том, что считать машинным обучением, и где проходит граница между ним, регрессией и искусственным интеллектом.
- Отмечается высокая читаемость и образовательная ценность языков вроде Applesoft BASIC для начинающих.
Voronoi map generation in Civilization VII
В Civilization VII полностью переработали генерацию карт, чтобы сделать её разнообразнее и естественнее. Раньше использовался фрактальный шум, который создавал сбалансированные, но предсказуемые ландшафты — игроки жаловались на повторяемость и прямые береговые линии, нарушавшие immersion.
Теперь внедрена техника Вороного: алгоритм строит карты на основе ячеек, позволяя гибко управлять формой континентов и островов. Добавлены два новых типа — «Континенты и острова» и «Пангея и острова». Они сочетают органичность с балансом, особенно важным в мультиплеере. Это оживляет стадию исследования, ключевую для жанра 4X.
Комментарии (15)
- Участники высоко оценили статью о генерации карт с помощью диаграмм Вороного и выразили энтузиазм по поводу креативного программирования в этой области.
- Обсуждались технические детали, включая использование алгоритма Ллойда для улучшения форм регионов и JavaScript-библиотеки для работы с диаграммами Вороного.
- Были предложены идеи по комбинированию диаграмм Вороного с другими методами, такими как шум Перлина и GenAI, для большего контроля над процедурной генерацией.
- Упомянуты дополнительные ресурсы: блог о процедурной генерации, туториал по алгоритмам поиска пути и мнение о серии игр Civilization.
- Отмечено, что техника имеет потенциал не только для визуализации данных, но и для создания 3D-карт и игрового контента.
Calculator Forensics (2002)
Вычисление сложной тригонометрической формулы arcsin(arccos(arctan(tan(cos(sin(9))))) в градусном режиме на разных калькуляторах даёт заметно отличающиеся результаты, что демонстрирует различия в точности и алгоритмах чипов. Некоторые модели, особенно на чипах General Instruments CF596, выдают ровно 0.0, в то время как другие показывают значения около 6.58, 8.84 или 8.99.
Наиболее точные результаты, приближающиеся к 9, дают калькуляторы с чипами от Sharp, Toshiba и National Semiconductor, что указывает на их улучшенную математическую обработку. Эта разница подчёркивает, как аппаратная реализация и firmware влияют на итоговые вычисления даже для, казалось бы, простых операций.
Комментарии (37)
- Обсуждается тест для идентификации калькуляторов по результату вычисления arcsin(arccos(arctan(tan(cos(sin(9))))) в градусном режиме, где ожидаемый точный ответ — 9.
- Участники отмечают, что разные модели калькуляторов и математические библиотеки (HP Prime, TI Nspire, Numworks, CORE-MATH) дают различные результаты из-за ошибок округления и особенностей реализации трансцендентных функций.
- Поднимается вопрос о численной сложности вычисления из-за промежуточных значений, близких к локальному максимуму косинуса, что усугубляет ошибки.
- Обсуждается, что даже современные системы (включая гипотетический ИИ) могут давать некорректный ответ из-за проблем с точностью, и как происходит самокоррекция или верификация результата.
- Упоминается, что сайт с результатами теста служит «базой отпечатков» для определения чипа или модели калькулятора по его результату.
When Knowing Someone at Meta Is the Only Way to Break Out of "Content Jail"
Пользователи Meta сталкиваются с системой модерации, которая часто ошибочно блокирует контент, а единственный эффективный способ обжалования — личные связи внутри компании. Это подрывает доверие к платформе и создаёт неравенство, где обычные пользователи лишены справедливого доступа к поддержке.
EFF отмечает, что автоматизированные системы и недостаточная прозрачность процессов апелляции приводят к длительным блокировкам без объяснений. Такая практика ставит под вопрос ответственность tech-гигантов за свободу выражения и доступ к информации.
Комментарии (131)
- Пользователи сталкиваются с произвольными блокировками аккаунтов на крупных платформах (Google, Meta, Reddit, YouTube, Anthropic) без внятного объяснения причин и с отсутствием эффективных каналов апелляции.
- Автоматические системы модерации и поддержки часто не справляются, обратная связь от реальных людей недоступна, а единственным способом решить проблему становится публичный скандал в соцсетях.
- Потеря аккаунта ведет к безвозвратной утрате личных данных, контента, контактов и цифровой идентичности, что особенно болезненно для коммерческих организаций и личных воспоминаний.
- Централизованные платформы воспринимаются как ненадежные, что подчеркивает важность владения собственным сайтом и доменом для контроля над своим онлайн-присутствием.
- Отмечается враждебная политика компаний в отношении пользователей, которые рассматриваются как продукт, а не как клиенты (noreply-почта, отсутствие поддержки, скрытые алгоритмы).
- Проблема носит системный характер и затрагивает не только политически чувствительный контент, но и обычных пользователей, предпринимателей и рекламодателей.
- Существуют опасения по поводу будущего, где от решений алгоритмов будет зависеть доступ к критически важным сервисам (Uber Eats, LinkedIn) без возможности обжалования.
YouTube is a mysterious monopoly 🔥 Горячее 💬 Длинная дискуссия
- Популярные тех-блогеры (Adrian Black, Jeff Geerling, RedLetterMedia) фиксируют обвал просмотров на YouTube последний месяц: лайки и доход держатся, а «просмотры» рухнули.
- YouTube молчит; спонсоры всё равно требуют цифры, авторы гадают: баг, новый Restricted Mode или просто «так захотел алгоритм».
- Платформа — фактическая монополия: альтернативы (Nebula и др.) крошечны, зрители привыкли к бесплатному, рекламодатели не уходят.
- Создатели контента зависят от тайных перекруток кода, а конкурировать может лишь гигант, готовый годами терять деньги.
Комментарии (432)
- YouTube считают почти незаменимым: масштаб, бесплатный безлимитный хостинг, алгоритмы и встроенная рекламная экосистема создают непреодолимый барьер для конкурентов.
- «Рипнуть» рынок невозможно: новой платформе нужны и зрители, и авторы, и рекламодатели одновременно, а «сетевой эффект» закрывает цикл.
- Падение просмотров обсуждают как статистическую корректировку (фильтрация ботов, новое определение «view»), а не исчезновение аудитории.
- Пользователи жалуются на токсичность, всплывающую «рекламу внутри рекламы» и навязанные Shorts; часть уходит к авторам напрямую (Patreon, RSS).
- Даже платящие подписчики остаются на YouTube: альтернативы (Nebula, Rumble, PeerTube) либо узки, либо технически уступают.
- IT- и правозащитники спорят, является ли YouTube «естественной» монополией, но сходятся: пока хостинг, CDN и монетизация стоят астрономических денег, у зрителей и авторов выбора нет.
Using information theory to solve Mastermind
Правила
Компьютер загадывает код из 4 шпилек 6 цветов. После каждой попытки он выдаёт:
- чёрный штырь — цвет и позиция угаданы;
- белый — цвет есть, но позиция неверна;
- ничего — цвета в коде нет.
Оптимальная стратегия
Игра — это сбор информации. Начинается с 1296 возможных кодов. Каждая попытка «отсекает» часть вариантов; эффективность измеряется в битах.
- 1 бит = сокращение вдвое.
- Энтропия попытки — среднее количество битов, которое она приносит:
$$H = \sum_i p_i \log_2\frac{1}{p_i},$$
где $p_i$ — доля кодов, дающих ответ $i$.
Алгоритм:
- Для каждой возможной попытки посчитать, сколько кодов останется при каждом ответе.
- Выбрать попытку с максимальной энтропией.
- Повторять, пока код не угадан.
Результат
Среднее число попыток — 4.47 (σ = 0.75). Это совпадает с лучшими известными алгоритмами (Knuth, 1976 и др.).
Комментарии (32)
- Участники делились личными историями: кто-то писал игру в 2007 для iPhone, кто-то играл с родителями и детьми, а кто-то вдохновился ею стать математиком.
- Обсуждали стратегии: MaxParts, «один цвет на строку» и информационно-теоретический подход.
- Отмечали, что современные LLM не справляются с Mastermind после нескольких ходов.
- Упоминали баг сайта, опечатку «Worlde» и сравнивали игру с Wordle.
- Кто-то критиковал статью за отсутствие формального доказательства оптимальности.