IT Herald

Инженерия

Как RuneScape 2004 года уместила многопользовательскую RPG в 56k-модем

Разбор сетевого протокола клиента RuneScape 2004 года показывает, как трёхмерный мир с тысячами игроков на сервере передавался по каналу с пропускной способностью около 5 КБ/с. Экономия строилась не на сжатии, а на общем для клиента и сервера понимании протокола, зашитом ещё на этапе компиляции.

Централизация интернета и первородный грех NAT

NAT, придуманный в 1994 году как временная заплатка для дефицита IPv4-адресов, незаметно превратил интернет из сети равноправных узлов в мир клиент-серверных сервисов и облачных посредников. Разбор того, как технология адресации сформировала привычку думать, что "сервер" — это что-то отдельное от обычного компьютера.

P99 0 мс* автодополнение для 240 миллионов доменных имён

Разработчик сервиса Wirewiki.com рассказал, как устроено автодополнение доменных имён, которое в 99% случаев успевает подготовить результаты ещё до того, как пользователь отпустит клавишу. В основе — предзагрузка на клиенте, in-memory trie для топовых доменов и memory-mapped блочный индекс на SSD для 240 миллионов остальных доменов.

Ядра в космосе: модуль магнитной памяти на ферритовых кольцах из компьютера Spacelab 1980 года

Компьютер лаборатории Spacelab, летавшей в грузовом отсеке Space Shuttle, использовал не кремниевую, а магнитную память на ферритовых кольцах — 128 килобайт, собранных из тысяч крошечных сердечников. Разбор модуля 1980 года показывает, как устроена плотная 2½D-архитектура памяти и почему core-память доминировала в аэрокосмической технике даже после её вытеснения полупроводниками на Земле.

Zig: стабильность указателей для ArrayList

В стандартной библиотеке Zig механизм блокировок для контроля стабильности указателей, ранее доступный только для Hash Map, теперь распространён на std.ArrayList. Новая функциональность позволяет ловить нарушения безопасности памяти через panic со стектрейсом вместо загадочных segfault'ов.

Собственный ISP: пишем свой сетевой стек с нуля для DN42

Разработчик собрал собственный сетевой стек с нуля — от TAP-устройства и ARP до самодельного DNS-сервера — и развернул его в децентрализованной сети DN42, где он теперь отвечает на реальные запросы из интернета.

Косвенный вызов вложенных функций в GCC без исполняемого стека

Разработчик показал, как в старых версиях GCC вызывать вложенные функции через колбэки без пометки стека как исполняемого — извлекая адрес кода и статическую цепочку прямо из трамплина, минуя его фактическое исполнение.

Domain-Driven агенты: как DDD помогает LLM работать в legacy-коде

Качество работы LLM резко падает при переносе с greenfield-проектов в legacy-кодовую базу с сильной связностью и накопленным техдолгом. Разработчик показывает, как разделение работы на стратегическую и тактическую части, а также применение Domain-Driven Design, помогает подготовить кодовую базу к продуктивной работе с AI-агентами.

Как превратить IKEA Kallax в верстак: DIY-переделка мебели

После переезда в новый дом появилась отдельная комната под мастерскую, а вместе с ней — задача собрать верстак, который одновременно выглядел бы как обычная мебель для гостиной. Готовые решения на рынке либо выглядели слишком «гаражно», либо стоили около 1000 € за штуку, поэтому в ход пошли стеллажи IKEA Kallax, старая столешница и немного смекалки.

Количественное описание цвета

Миллиарды мониторов по всему миру способны воспроизводить одни и те же цвета — но это возможно только благодаря строгому математическому определению цвета через числа, а не слова. Разбор того, как цветовое восприятие сводится к отклику фоторецепторов глаза, откуда взялись цветовые пространства RGB, XYZ и CIE, и почему шестнадцати миллионов оттенков в hex-кодах всё равно недостаточно.

Новости и дайджесты — в Telegram @it_herald