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 (и мультимодальные модели) уже умеют играть в шахматы и кодить.
The History of Windows XP
Короткая история Windows XP
Microsoft к концу 90-х стал «фоном жизни» — любое изменение вызывало бурю, а через пару лет продукт становился обыденным. Компания мечтала избавиться от MS-DOS, пробовала XENIX, XEDOS, затем OS/2, но успех Windows 3 разрушил союз с IBM. Спасением стал Дэвид Катлер, перешедший из DEC: его команда создала Windows NT, совместимую с DOS, UNIX и OS/2. План убить DOS-наследие через Windows 2000 отменили 7 апреля 1999 г.
Комментарии (67)
- @ayaros и @Lammy вспоминают XP как «пик Microsoft»: обожают Luna/Neptune UI, музыку из тура и дизайн Watercolor.
- Критики (@krige, @spankibalt) считают тему XP «игрушечной» и скучной, предпочитая Classic Theme или вообще Linux.
- Ностальгия объясняется тем, что XP была первым компьютером миллениалов (@ianhawes), но технически уступала 2000 (@troupo, @lproven).
- Безопасность XP до SP2 была ужасной (@stetrain, @herbst), зато Vista/8 «убили» прогресс (@vjvjvjvjghv).
- Кто-то хранит запечатанную коробку XP (@cyrialize), кто-то даже шептал в OOBE-музыку (@EvanAnderson).
Open Lovable
open-lovable — утилита от mendableai, клонирует любой сайт и превращает его в современное React-приложение за секунды.
Репозиторий публичный, доступен на GitHub.
Комментарии (43)
- Проект называется «open-lovable», но не является ни клоном, ни открытой версией Lovable; требует внешние API-ключи (Firecrawl, e2b.dev) и не работает локально без них.
- Участники спорят о допустимости имени, считая его потенциальным нарушением товарного знака и маркетинговым «рост-хаком».
- Основная критика: жёсткая завязка на Firecrawl для скрапинга и отсутствие полностью FOSS-варианта всей цепочки.
- Предлагают альтернативы — bolt.diy, Modal, Daytona, freestyle.sh — и способы самостоятельно развернуть e2b/Firecracker.
- Некоторые хотели бы обратную задачу: превращение React-приложений в «нормальные» сайты без JS или в нативные веб-приложения.
Writing simple tab-completions for Bash and Zsh 🔥 Горячее
Как сделать простые таб-дополнения для Bash и Zsh
Li Haoyi, 7 августа 2025
Таб-дополнения в шелле удобны, но их настройка усложняется тем, что часть пользователей использует Bash в Linux, а другая — Zsh в macOS, и у них разные API. К тому же, пользователям полезно видеть описание каждого варианта, но это доступно только в Zsh.
В этой заметке показано, как реализовать кросс-платформенные дополнения с описаниями на примере Mill 1.0.3.
Базовый механизм
При нажатии <TAB>
шелл вызывает функцию, которой передаёт текущие слова и индекс слова под курсором. Функция возвращает список возможных дополнений.
_generate_foo_completions() {
local idx=$1; shift
local words=( "$@" )
local cur=${words[idx]}
local arr=(apple apricot banana cherry durian)
for e in "${arr[@]}"; do [[ $e == "$cur"* ]] && echo "$e"; done
}
_complete_foo_bash() {
local raw=($(_generate_foo_completions "$COMP_CWORD" "${COMP_WORDS[@]}"))
COMPREPLY=( "${raw[@]}" )
}
_complete_foo_zsh() {
local -a raw
raw=($(_generate_foo_completions "$CURRENT" "${words[@]}"))
compadd -- $raw
}
[[ -n $ZSH_VERSION ]] && { autoload -Uz compinit; compinit; compdef _complete_foo_zsh foo; } \
|| complete -F _complete_foo_bash foo
_generate_foo_completions
возвращает список вариантов._complete_foo_bash
и_complete_foo_zsh
преобразуют результат в формат нужного шелла.- Скрипт добавляется в
~/.bashrc
,~/.zshrc
и т.д.
Mill устанавливает дополнения командой:
$ ./mill mill.tabcomplete/install
Комментарии (82)
- Fish автоматически создаёт дополнения из man-страниц (
fish_update_completions
), что упрощает жизнь, если документация есть. - Пользователи bash и zsh жалуются на «слишком умные» дополнения, которые блокируют автодополнение имён файлов; предпочитают откат к простому поведению.
- Инструменты вроде
usage
,clap_complete
,claptrap
и_gnu_generic
позволяют быстро генерировать скрипты дополнений из--help
или описаний CLI. - Некоторые сторонние решения (Fig, Pixi) и оболочки вроде Murex и Nushell стремятся к единому стандарту автодополнения, но разнообразие синтаксиса CLI всё ещё мешает.
POML: Prompt Orchestration Markup Language
POML — язык разметки Prompt Orchestration Markup от Microsoft.
Проект в открытом доступе на GitHub: microsoft/poml
.
- Назначение: структурировать, версионировать и переиспользовать промпты для LLM.
- Формат: YAML-подобный, читаемый человеком и парсером.
- Возможности:
– параметризованные шаблоны,
– условные ветвления,
– импорт фрагментов,
– метаданные (автор, версия, модель). - CLI:
poml build
→ компиляция в чистый текст,poml test
→ прогон с примерами. - CI/CD: экшены GitHub для валидации и деплоя промптов.
- Интеграции: Python SDK, VS Code-расширение, экспорт в OpenAI, Azure, Bedrock.
Комментарии (36)
- POML — это XML-подобный DSL от Microsoft Research для «view-слоя» промптов, но выглядит как «JSX, только хуже» и заставляет писать код в строках.
- Участники сравнивают его с YAML-промптами GitHub, BAML (TypeScript-подобные схемы), Jinja и обычным XML, споря о необходимости новой библиотеки.
- Критика: один контрибьютор при $3T-спонсоре, нет SDK для .NET/C#, лишний tooling, «IP squatting», циклы в XML выглядят как костыль.
- Ирония: из-за потребности в точности неформальные LLM-промпты всё структурнее, как юридические документы.