Новости

Post Thumbnail

Самый сложный калькулятор

Автор строит "калькулятор" максимально сложным способом. От токенизации арифметических выражений до нативного исполняемого файла, используя Zig для фронтенда и QBE в качестве компиляторного бэкенда. Начинает с формальной грамматики в EBNF, затем реализует токе...

Post Thumbnail

Игры под Nintendo 64

Автор портировал свой старый JavaScript-демо-шутер Xibalba (2014) на Nintendo 64, ставший лишь второй новой физической игрой для консоли с 2002 года - его издала Modretro для своего клона M64 с картриджем, коробкой и мануалом Чувак реально заморочился. В ос...

Post Thumbnail

Soppo

Пятничный язык программирования! Я про него уже писал, но он продолжает развиваться и стоит взглянуть на него еще разок. Этот язык программирования сохраняет синтаксис Go, но добавляющий недостающие возможности: перечисления с паттерн матчингом, оператор ? ...

Post Thumbnail

Треды в Zig

Автор разбирает устройство std.Io.Threaded в Zig - реализации интерфейса ввода-вывода, которая использует обычные блокирующие системные вызовы и потоки, но при этом полноценно поддерживает отмену операций. Фокус на различии между параллелизмом и конкурентн...

Post Thumbnail

Мигаем диодом на Rust

Автор показывает использование Embedded Rust - от подключения программатора ST-LINK V2 через SWD-интерфейс до сборки и прошивки. Все это на STM32 Автор использует готовый шаблон проекта на базе крейта stm32f1xx-hal, разбирает ключевые атрибуты, а затем прям...

Post Thumbnail

Какой ты газонокосильщик

The Pudding провели интерактивный эксперимент, в котором больше 30 тысяч человек "косили" виртуальный газон, чтобы исследовать, насколько эффективно люди решают задачу Coverage Path Planning - родственную знаменитой "задаче коммивояжера" 52% участников улож...

Post Thumbnail

Typescript Defer

Автор экспериментировал с добавлением оператора defer из Go в компилятор TypeScript, реализовав парсинг, проверки и AST-трансформацию, которая оборачивает тело функции в try/finally и выполняет отложенные вызовы в обратном порядке (LIFO) с захватом значений на...

Post Thumbnail

Raft сломан

Ребята из Antithesis(я хз кто это) протестировали несколько популярных реализаций протокола Raft в своей среде детерминированной симуляции с инжекцией сбоев. Они выбрали HashiCorp Raft, Aeron Cluster, OpenRaft и MicroRaft. И да, они нашли критические баги в ка...

Post Thumbnail

Движение назад

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

Post Thumbnail

AI фабрики не работают

Основатель HumanLayer разбирает, почему "lights-off software factory" - подход, при котором AI-агенты пишут код без человеческого ревью - не работает в долгую. Модели отлично решают разовые задачи и проходят бенчмарки, но не умеют сохранять поддерживаемост...

Post Thumbnail

Go 1.27

Антон Жиянов делал интерактивные туры по Go с версии 1.22 по 1.26, но решил остановиться. Хесус Эспино подхватил эстафету и разбирает здесь огромный массив нововведений Go 1.27 - от обобщенных методов и профиля goroutineleak до нового пакета uuid и эксперимент...

Post Thumbnail

Кровать на zig

Физик с PhD, с ADHD и аутизмом рассказывает, как купил Chilipad 2.0 - систему водяного охлаждения/подогрева кровати за $1700. Уже интересно, неправда ли? Чтобы решить проблемы со сном из-за сенсорных особенностей и душной спальни без кондиционера он написал...

Post Thumbnail

esp32 http2 сервер

Вот у людей времени дофига. Автор демонстрирует, как он запускает HTTP/2-сервера с TLS 1.3 на микроконтроллере ESP32-WROVER-E. Сервер написан на Rust с помощью собственного крейта WTX, Embassy и официальных ESP-крейтов. Сервер слушает порт 9000, выполняет п...

Post Thumbnail

htop

Подробный разбор каждого элемента вывода htop на Linux. Объясняется, что такое uptime и откуда он берется, как правильно интерпретировать load average, и детально описаны все состояния процессов - R (running), S (interruptible sleep), D (uninterruptible sleep ...

Post Thumbnail

SIMD в go

Будущее пришло быстрее, чем ожидалось: в go1.27rc2 пакет simd стал портируемым, и один Go-код разворачивается в Neon на Apple Silicon и в AVX2 на Intel. Это наборы векторных инструкций двух процессорных миров, ликбез по ним как раз в этой статье. Автор про...

Post Thumbnail

Freenet

Иэн Кларк рассказывает о том, как архитектура Freenet заменяет централизованные серверы на одноранговую сеть, чтобы противостоять цифровой цензуре. Freenet развивается, команда уже напилила несколько децентрализованных приложений, такие как River, Delta и A...

Post Thumbnail

SteelMC

Чувак рассказал про свой SteelMC. Это Minecraft-сервер на Rust, который "блок за блоком" добился паритета по генерации мира с ванильным сервером после девяти месяцев разработки. Автор запилил многопоточный "chunk pyramid" - планировщик, продвигающий чанки ч...

Post Thumbnail

mmap

Автор, три года строивший append-only базы данных на терабайтных масштабах, подробно разбирает, как и почему mmap оказывается отличным решением именно для неизменяемых сегментов, несмотря на известную критику, включая знаменитую статью Andy Pavlo. Поскольку...

Post Thumbnail

Swiss Tables

Статья подробно разбирает переход Go 1.24 от классической bucket-архитектуры мап к Swiss Tables - дизайну, позаимствованному из Abseil, который заменяет цепочки оверфлоу-указателей на плоское открытое адресование с компактными контрольными байтами и групповым ...

Post Thumbnail

Макбук тачскрин

Статья аж 18-го года, и судя по комитам, проект никак не развивается. Но он все еще прикольный. В статье про проект Sistine, который превращает экран MacBook в тачскрин с помощью зеркальца, бумажной тарелки, дверной петли и клея стоимостью около доллара. Пр...

Post Thumbnail

Самодельные арены в Rust

В статье автор рассказывает про реализацию арен в Rust с нуля. Получилось такое себе пошаговое руководство от простейшей обертки над Vec до продвинутой версии с сырыми буферами, UnsafeCell и поддержкой динамических типов через nightly-фичу allocator_api. Ав...