Zig's Lovely Syntax 💬 Длинная дискуссия
Zig выглядит почти как Rust, но делает синтаксис ещё приятнее за счёт более простой семантики и ряда изящных решений.
Числа
Литералы 92
всегда имеют тип comptime_int
; при присваивании они неявно приводятся к нужному типу. Суффиксов нет.
Строки
Многострочные «сырые» строки пишутся через \\
в начале каждой строки; \
не экранируется, отступы не портятся, а лексер работает построчно.
Структуры
.{ .x = 1, .y = 2 }
— запись поля через .x =
совпадает с присваиванием, что позволяет грепом находить именно записи, а не чтения.
Типы
Все типы префиксные: u32
, [3]u32
, ?[3]u32
, *const ?[3]u32
. Разыменование постфиксное: ptr.*
.
Идентификаторы
Синтаксис @"имя с пробелом"
позволяет обходить ключевые слова и экспортировать любые имена.
Функции
fn add(x: i32, y: i32) i32
— без стрелки ->
, так как лямбд нет, а возвращаемый тип всегда обязателен. pub fn main() void {}
.
Переменные
const
и var
; часто используемое const
короче, чем в Rust, но всё же длиннее Kotlin-овского val
.
Комментарии (156)
- Обсуждение разделилось: кому-то синтаксис Zig кажется «прекрасным» минимализмом, другим — «шумным» и «капризным».
- Спор о порядке «имя: тип» vs «тип имя»: одни хотят видеть тип первым, другие — имя.
- Критика деталей: @-префиксы,
.{}
, отсутствие лямбд, перенос строк,orelse
без пробела. - Плюсы: raw-строки Zig решают проблему отступов; обработка ошибок через
try
нравится многим. - Сравнения: Kotlin, C#, Go, Rust, D — каждый считает «своё» лучше.
- Итог: «красота» синтаксиса субъективна и во многом привычна; после практики Zig начинает нравиться.
GPT-OSS vs. Qwen3 and a detailed look how things evolved since GPT-2 🔥 Горячее
- gpt-oss-20b/120b — первые с 2019 г. открытые веса от OpenAI; запускаются на одной GPU благодаря MXFP4 (4-битные веса + 8-битные активации).
- Архитектура классическая: RoPE, RMSNorm, SwiGLU, без MoE. Отличия от GPT-2: больше слоёв и голов, но уже контекст (8k → 32k).
- Глубина vs ширина: gpt-oss-120b — 120 слоёв, d_model 6144; Qwen3-235B-A22B — 80 слоёв, d_model 9216. Увеличение глубины дешевле при прочих равных.
- Attention sink — первые 4 токена не вытесняются из KV-кэша, что стабилизирует длинные контексты.
- Сравнение (MMLU, GSM8K, HumanEval): gpt-oss-120b ≈ Qwen3-30B-A3B, уступает Qwen3-235B-A22B и GPT-4o, но обгоняет Llama-3-70B.
- GPT-5 (анонс) будет гибридным (dense + MoE), 1–2 трлн параметров, обучен на gpt-oss как teacher.
Комментарии (95)
- GPT-OSS не предлагает революционной архитектуры, а аккуратно комбинирует известные оптимизации (RoPE, SwiGLU, GQA, MoE) и MXFP4-квант.
- На практике Qwen3 (особенно coder-варианты 30–32 B) чаще хвалят: быстрее, точнее следует инструкциям, лучше справляется с кодом.
- GPT-OSS-120 B показывает высокие мат-оценки, но «проваливается» в логических бенчмарках и агентных задачах, а 20 B-версия может зацикливаться.
- Большинство считает, что ключевое различие — не архитектура, а данные и пайплайн обучения.
- Локальные 4–5-битные кванты Qwen3 укладываются в 12–20 GB VRAM и уже «заменяют» онлайн-модели для многих разработчиков.
Show HN: Engineering.fyi – Search across tech engineering blogs in one place 🔥 Горячее
- Airbnb: бесшовное обновление Istio на десятках кластеров K8s, тысячи подов.
- Cloudflare + OpenAI: новые открытые модели GPT теперь в Workers AI.
- OpenAI: оценка худших рисков «открытых» LLM.
- Shopify: MCP UI — интерактивные компоненты для AI-агентов в e-commerce.
- Cloudflare: Perplexity обходит robots.txt скрытыми краулерами.
- Meta: интерфейс «человек-компьютер» на основе электромиографии запястья.
- Google: обновлённая программа разработчиков с гибкой подпиской.
Комментарии (107)
- Пользователи одобрили идею «поисковика» по инженерным блогам, но попросили расширить список за пределы 15-16 крупных компаний и включить мелкие, но ценные ресурсы.
- Просят добавить RSS-фид, фильтры по темам/источникам и возможность исключать AI/LLM-контент.
- Отмечены проблемы со скоростью, Cloudflare-captcha и отсутствием тегов C#/ASP.NET.
- Некоторые делятся альтернативами: daily.dev, minifeed.net, GitHub-список kilimchoi, Kagi Lenses.
- Обсуждается, стоит ли ограничиться 10–20 тщательно отобранными блогами или открыть индекс для сотен источников.
Try and 🔥 Горячее 💬 Длинная дискуссия
Try and — сокращённый перевод
Конструкция try and + bare verb («попробуй и сделай») синонимична try to, но считается «неправильной». Примеры: I’ll try and eat the salad.
Кто говорит
- Распространено в британском и американском английском, а также в Канаде.
- Употребляется с XIV века; спорно, что раньше: try and или try to.
Синтаксические особенности
- Не настоящая координация:
– допустим вынос wh-слов (Who did you try and talk to?);
– нельзя менять порядок глаголов (kill mosquitos and try);
– нельзя ставить both (both try and kill). - Bare Form Condition: оба глагола только в базовой форме:
I will try and finish, но tried and finished неверно. - В некоторых диалектах (Северо-Восточная Канада, ЮАР) допускается согласование: They tries and does that.
Комментарии (306)
- Пользователи обсуждают конструкцию «try and» vs «try to» в английском языке: одни считают её разговорной или «неграмотной», другие — нормальным вариантом (особенно в британском и южном американском диалектах).
- Некоторые находят в «try and» оттенок уверенности («я попробую и точно сделаю»), тогда как «try to» звучит более формально и нейтрально.
- Упоминаются параллели в других языках: японском, норвежском, датском, где звучание «to/and» сливается и влияет на написание.
- Лингвисты подчеркивают, что «try and» не подчиняется обычным правилам координации (нельзя поменять местами части или поставить «both»).
- Общий вывод: язык живой, и «правильность» определяется контекстом и восприятием носителей, а не строгими правилами.
Inside OS/2 (1987)
OS/2: ядро и сервисы
OS/2 — многозадачная ОС для 286/386, API-ориентированная, расширяемая. Архитектура: ядро, Windows Presentation Manager, LAN Manager. Достаточно ядра для многозадачности; WPM и LAN не обязательны.
SDK
Поставляется с оптимизирующим С-компилятором, макро-ассемблером, линковщиком, отладчиком CodeView, редактором. Документация по вызовам и драйверам.
Планировщик
Превентивный, вытесняющий: по таймеру ядро перехватывает CPU и переключает задачи. Приоритеты + кванты времени; при переключении сохраняются регистры и режимы.
Динамические библиотеки
API реализован в DLL; адреса 32-битные, параметры через стек. Экономия диска и RAM: код загружается и разделяется между процессами. Ошибки в DLL исправляются без пересборки приложений. Повторный запуск той же программы переиспользует код, выделяя только данные/стек/кучу.
Режимы процессора
- Protected: многозадачность, изоляция процессов.
- Real: совместимость с MS-DOS, прямой доступ ко всей памяти.
Комментарии (48)
- OS/2 2.1 умело загружаться и многозадачно работать даже с одной 1,44 МБ дискеты без GUI, чем восхищались участники.
- Обсуждали преимущества вытесняющей многозадачности OS/2 над кооперативной Windows 3.x и особенности Pascal-calling convention, экономившей 3 байта и такты на вызов.
- Вспомнили, что ранний OS/2 создавался совместно IBM и Microsoft, но к 1990 г. Microsoft переключилась на Windows NT, а IBM осталась с OS/2.
- Отметили долгие годы работы OS/2 в терминалах MetroCard нью-йоркского метро и вспомнили SOM как более продвинутую альтернативу COM.
MCP: An (Accidentally) Universal Plugin System
MCP: случайно-универсальная система плагинов
USB-C оказался не только для зарядки и файлов, а ещё для всего, что влезет в разъём. Друг подключил тостер к монитору — и теперь тост выводится по HDMI.
То же самое с MCP (Model Context Protocol). В документации написано: «стандартизированный способ подключать ИИ-модели к данным и инструментам». Уберём слово «ИИ» — получаем универсальный разъём, куда можно подцепить что угодно.
Как автомобильная «прикуриватель-розетка» 1952 года сегодня питает телефоны и мини-печки, MCP может связывать календарь с доставкой еды, базы данных с кофеварками, Git-репозитории с умными лампочками. Протокол не осуждает ваши решения.
Параллель: когда в NFT вместо ссылки на картинку вставили саму картинку в base64, технология стала делать то, что не планировалась.
Итог: MCP — это USB-C для приложений. Пока все думают, что он «для ИИ», он уже работает как универсальный адаптер между любыми сервисами.
Комментарии (71)
- MCP воспринимается как «Web 2.0-2»: повторное открытие мэшапов и RPC-вызовов, но в формате JSON-RPC для LLM.
- Главная ценность — простые, узкие API, которые даже «средний» LLM может вызвать без ошибок.
- Критика: серверы жрут контекст, не хватает инженерии под реальные потоки LLM, безопасность и спам по trust-модели 1995-го.
- Сторонники считают, что MCP — это удобный «универсальный разъём» между сервисами, независимо от наличия ИИ.
- Скептики: это временный костыль, пока LLM не научатся работать с обычными REST/OpenAPI; скоро компании закроют «дыру».
Show HN: Play Pokémon to unlock your Wayland session
wlgblock — экран-блокировка в стиле Game Boy для Wayland.
Проект AdoPi: простой скрипт на Bash, который запускает «игру»-заставку и требует пароль для разблокировки.
- Зависимости:
swaylock
,grim
,slurp
,wl-clipboard
,imagemagick
,fzf
,bash
. - Установка: клонировать репозиторий, выполнить
make install
. - Использование:
wlgblock
или горячая клавиша в Sway/i3.
Скрипт делает снимок экрана, накладывает пиксель-фильтр «Game Boy», запускает swaylock
с этим изображением и ожидает ввода пароля.
Комментарии (41)
- Пользователи радуются, что проект-игра на Wayland показывает, что экосистема уже способна на «тяжёлую» кастомизацию и работает лучше, чем споры последних пяти лет.
- Многие удивлены, что «игра-скринсейвер» появилась раньше обычного нормального screensaver'а для Wayland.
- Скептик признал: блокировка экрана в Wayland действительно работает лучше и логичнее, чем в X.
- Разработчик anajimi уже обещает попробовать сделать полноценный screensaver на ext-session-lock.
- В KDE 82 % сессий уже Wayland; Sway и labwc активно используются, но NVIDIA всё ещё вызывает проблемы — «переходи на AMD».
Adult sites are stashing exploit code inside svg files
- Суть атаки: порносайты внедряют вредоносный код в файлы
.svg
, которые при клике заставляют браузер ставить лайк заданным постам в Facebook без ведома пользователя. - Техника: SVG-файлы содержат скрытый JavaScript, зашифрованный через «JSFuck». После раскодировки загружается цепочка скриптов, завершающаяся трояном Trojan.JS.Likejack, который кликает «Like».
- Условие: пользователь должен быть авторизован в Facebook в этом же браузере.
- Масштаб: десятки сайтов на WordPress используют схему; Facebook блокирует связанные аккаунты.
- История: злоупотребления SVG-файлами фиксировались раньше — эксплойты Roundcube в 2023 г. и фишинг Microsoft в июне 2025 г.
Комментарии (71)
- Вредоносные SVG-файлы на порносайтах заставляют браузер ставить «лайк» на Facebook без ведома пользователя.
- Это работает через обычный CSRF: SVG, загруженный в iframe или открытый в новой вкладке, выполняет JavaScript, который вызывает Facebook-API.
- Если SVG вставлен как картинка (
<img src=file.svg>
), скрипты не запускаются; уязвимость появляется только при «полном» показе SVG. - Некоторые считают, что проблема не в SVG, а в отсутствии защиты от CSRF со стороны Facebook.
- Пользователи советуют блокировать JS по умолчанию (NoScript/uBlock), использовать режим инкогнито или отдельные контейнеры для Facebook.
Booting 5000 Erlangs on Ampere One 192-core
Ampere One 192-ядерный сервер, 1 ТБ ОЗУ, цель — запустить максимум виртуальных IoT-устройств на Nerves.
Прошлый раз добрались до 500 экземпляров; теперь с KVM и новым загрузчиком little_loader от Frank Hunleth удалось 5000 одновременных виртуальных ARM64-машин.
little_loader — минимальный ARM64-бутлоадер, читающий переменные u-boot, загружающий ядро Linux и сохраняющий механизмы A/B-обновлений Nerves.
Что изменилось
- KVM/HVF ускоряет старт до 1-2 с и экономит ≈ 500 МБ ОЗУ на гость.
- EL1 вместо EL2: EL2 нужен для вложенной виртуализации, нам не требуется.
- Баг компиляции: release-сборка зависает, debug-версия работает (GCC 15, вероятно, чинит).
Команда запуска (упрощённый пример):
qemu-system-aarch64 \
-machine virt,accel=kvm \
-cpu host -smp 1 -m 150M \
-kernel little_loader.elf \
-netdev user,id=eth0 \
-device virtio-net-device,netdev=eth0 \
-drive if=none,file=disk.img,format=raw,id=vdisk \
-device virtio-blk-device,drive=vdisk \
-nographic
Итог: 5000 «эрлангов» на 192 ядрах, 1 ТБ ОЗУ, стартуют за секунды, потребляют по 150 МБ RAM.
Комментарии (38)
- Речь идёт о запуске 5000 узлов BEAM (Erlang-машин), а не процессов — каждая BEAM может держать миллионы лёгких процессов.
- Сервер с 192 Ampere-ядрами позиционируется как «облачный» или «edge» для телекомов; Hetzner предлагает 80-ядерный Ampere за ~200 $/мес.
- Пользователи сомневаются в полезности без тестов под нагрузкой и обсуждают, как масштабировать память и шину при таком числе ядер.
- Всплыли исторические примеры (Azul для Java) и шутки про «ручное ткачество» Erlang-потоков и «фермерский» байт-код.
LLMs aren't world models 🔥 Горячее 💬 Длинная дискуссия
LLMs не строят модель мира. Это не значит, что они бесполезны, а лишь то, что они не понимают, как устроена реальность, даже виртуальная.
Шахматы. Два года назад я сыграл с LLM: первые ходы она делала уверенно, но уже на 10-м ходе попыталась походить конём, которого не было на доске, и быстро проиграла. Повторил эксперимент сейчас — к 9-му ходу модель теряет позицию. Проанализировав триллион партий, LLM так и не выучила главное: чтобы ходить, нужно знать, где стоят фигуры. Это не требуется для предсказания текста партии.
Графика. Спросил, как работает «Normal blending» в Krita. Ответ: «цвет верхнего слоя просто отображается, возможно, с учётом прозрачности, без формул и вычислений».
Модель не понимает:
- Цвета в компьютере — это числа.
- Любое «влияние» прозрачности — это математическая операция.
- Если видно нижний слой, значит, итоговый цвет зависит от обоих слоёв.
Можно заставить LLM процитировать формулу альфа-смешивания, но это лишь показывает, что она умеет подобрать слова, а не понимает смысл.
Люди тоже могут путаться, но при достаточной мотивации разберутся. У LLM мотивация была: 200 млрд долларов на оборудование.
Комментарии (184)
- @antirez и другие приводят контрпримеры: даже крошечные трансформеры выучивают внутренние 8×8 «карты» позиций шахмат, а SOTA-модели действительно играют корректные ходы.
- @ordu, @skeledrew и @otabdeveloper4 спорят о «правильности» подхода: одни считают LLM «по-человечески» предиктивными, другие подчеркивают разницу в архитектуре и обучении.
- @ameliaquining выделяет единственное конкретное предсказание поста — «LLM никогда не справятся с большими кодовыми базами автономно» — и даёт ему 80 % на разобьются за два года.
- @libraryofbabel, @joe_the_user и @yosefk обсуждают интерпретабельность: наличие внутренних представлений не означает полноценной «модели мира», а измерения Elo и «автономность» нуждаются в точных определениях.
- @DennisP, @GaggiX, @og_kalu приводят ссылки на Genie-3, свежие arXiv-работы и видео, показывающие, что LLM (и мультимодальные модели) уже умеют играть в шахматы и кодить.