Hacker News Digest

Обновлено: 28 ноября 2025 г. в 08:55

Постов: 4635 • Страница 321/464

What is the origin of the private network address 192.168.*.*? (2009) (lists.ding.net)

by kreyenborgi • 07 сентября 2025 г. в 09:52 • 226 points

ОригиналHN

#rfc-1918#rfc-1597#private-network#ip-addressing#sun

Комментарии (86)

  • RFC 1918 просто формализовала уже распространённую практику: взяли по одному «классу» A, B, C (10/8, 172.16/12, 192.168/16), чтобы у частных сетей был выбор размеров.
  • 192.168/16 попал в набор, потому что это первый свободный блок из диапазона класса C (192–223), «коровья тропинка» — люди и доки уже использовали 192.9.200.x и 192.168.x.x как примеры.
  • Sun и другие вендоры в своих мануалах приводили 192.9.200.0/24; многие буквально скопировали «пример» во внутренние сети.
  • До RFC 1597/1918 компании без своих публичных блоков просто «захватывали» чужие адреса; стандарт дал легальный, не конфликтующий диапазон.
  • Почему 192.168, а не 192.0 или 192.1? Просто к моменту написания RFC этот подблок ещё не был выделен крупным организациям и выглядел «симпатично» (11000000 10101000).

Things you can do with a debugger but not with print debugging (mahesh-hegde.github.io) 💬 Длинная дискуссия

  • Смотреть весь стек вызовов — мгновенно переходить к родительским фреймам и проверять переменные там.
  • Вычислять выражения на лету — вызывать функции и менять состояние без перезапуска.
  • Ловить исключения в точке броска — ставить брейкпоинт на throw и видеть, почему упало.
  • Менять ход выполнения — подменить URL, флаг или объект прямо в памяти, не трогая код.
  • Стандартизировать запуск — закоммитьте .vscode/launch.json, и новичку хватит одного клика, чтобы запустить сервер или CLI с нужными env и аргументами.

by never_inline • 07 сентября 2025 г. в 08:22 • 225 points

ОригиналHN

#debugging#vscode#launch.json#breakpoints#exception-handling#programming#development

Комментарии (199)

  • Отладчики полезны, но часто ограничены: сети, прод-среды, сторонние библиотеки, оптимизация под release.
  • Print-отладка универсальна: работает в любом языке, на удалёнке, в многопоточке и в kernel-space, не требует пересборки.
  • Условные точки останова тормозят или врут; многие ставят «if (x) print("")» и брякают на неё.
  • REPL, time-travel (rr/UndoDB), watch-точки на память и reverse-execution дают сверх-возможности, но доступны не везде.
  • Итог: хороший инженер владеет и отладчиком, и логами, и профилировщиком, и выбирает инструмент под задачу.

I am giving up on Intel and have bought an AMD Ryzen 9950X3D (michael.stapelberg.ch) 🔥 Горячее 💬 Длинная дискуссия

  • Второй за год умер Intel Core Ultra 9 285K: после 4-часовой нагрузки (100 °C, 300 Вт) ПК не проснулся из suspend, кнопка питания мертва.
  • Первый экземпляр сдох в марте; в отзывах магазина полно аналогичных случаев — больше не верю Intel.
  • Комната была под кондиционером (25–28 °C), температура ядра 100 °C в пределе 110 °C, так что дело не в жаре.
  • Взял Ryzen 9 9950X3D: быстрее 285K в многопотоке, ~100 Вт меньше под полной нагрузкой, температура 75 °C.
  • Плата ASUS X670E-E, 96 ГБ DDR5-6000, остальное железо без изменений.
  • Вывод: Intel пока ненадёжен, AMD даёт ту же скорость с меньшим нагревом и расходом.

by secure • 07 сентября 2025 г. в 06:54 • 303 points

ОригиналHN

#amd#intel#ryzen-9-9950x3d#core-ultra-9-285k#cpu#ecc#avx-512

Комментарии (318)

  • Пользователи жалуются на нестабильность современных Intel и AMD: «виснут» в idle, падают под нагрузкой, греются до 100 °C и выгорают.
  • Виной всему: заводской разгон «на грани», плохое охлаждение, BIOS-«усилялки» и, возможно, софт-ошибки, проявляющиеся только на новых CPU.
  • ECC-память помогает отлавливать тихие ошибки ОЗУ, но на десктопе почти не рекламируется, матплаты поддерживают её «тихо», а модули стоят в 2 раза дороже.
  • AMD даёт больше ядер и AVX-512, Intel — стабильнее iGPU и меньше жрёт в простое; выбор чаще делается по цене, политике или просто «что есть в продаже».
  • Общий вывод: современные настольные CPU превратились в «лотерею» — нужен тщательный подбор питания, охлаждения и BIOS, иначе рискуете получить дорогой нагреватель.

The Expression Problem and its solutions (2016) (eli.thegreenplace.net)

Проблема выражений и её решения

Проблема выражений: нужно добавлять новые типы данных и новые операции без изменения старого кода.
В ООП-языках легко добавлять типы (наследование), но сложно — операции (менять интерфейс).
В функциональных языках наоборот: легко добавлять функции, сложно — варианты данных.

Пример на C++
Базовый класс Expr с двумя методами: Eval() и ToString().
Новый тип — просто новый класс-наследник.
Новая операция — правим базовый класс и все наследников, нарушая OCP.

Функциональный подход (Haskell)
Типы данных и функции разведены:

data Expr = Constant Double | BinaryPlus Expr Expr
eval (Constant x) = x
eval (BinaryPlus a b) = eval a + eval b

Добавить операцию легко: пишем новую функцию.
Добавить вариант Expr — правим сам тип и все функции, pattern-match’и которых его затрагивают.

Как быть

  • Визитор (ООП) — двойная диспетчеризация, но код всё равно растёт.
  • Мультиметоды (CLOS, Clojure) — выбор по типу всех аргументов, код не трогается.
  • Type-class / протоколы (Haskell, Clojure) — «открытые» функции, реализуемые вне исходного модуля.
  • Tagless-final / finally-tagless — выразить язык как набор операций, интерпретаторы добавляются без изменения AST.

Итог: ни один стиль не побеждает; выбираем язык и технику, которая даёт нужную сторону расширяемости.

by andsoitis • 07 сентября 2025 г. в 06:28 • 95 points

ОригиналHN

#cpp#haskell#rust#swift#object-oriented-programming#functional-programming#type-class#visitor-pattern#multiple-dispatch#tagless-final

Комментарии (69)

  • Суть проблемы: нужно добавлять новые типы данных и новые операции без переписывания старого кода и без потери статической безопасности.
  • Классический подход: O·T матрица — каждая операция реализуется для каждого типа; при росте O или T взрывается boilerplate.
  • Языковые решения:
    – трейты/impl в Rust, typeclass в Haskell, протоколы в Swift позволяют добавлять операции «сбоку»;
    – enum (суммарные типы) упрощают добавление операций, но затрудняют новые варианты данных.
  • Продвинутые техники: tagless-final, object algebras, data types à la carte, multiple dispatch, visitor-pattern.
  • Ограничения: «сиротское правило», отсутствие виртуальных extension-методов, необходимость заранее знать все комбинации при раздельной компиляции.
  • Вывод: идеального языка нет; выбор зависит от того, что важнее — расширять типы или операции — и насколько нужна статическая типизация.

The “impossibly small” Microdot web framework (lwn.net)

Microdot: крошечный веб-фреймворк для всего

Мигель Гринберг, автор Flask Mega-Tutorial, представил Microdot — мини-фреймворк, работающий и на CPython, и на MicroPython: от IoT до облаков.

Зачем?
Зимой 2018-го в Ирландии Мигель столкнулся с «умным» отоплением, которое погрешало на ±3 °C. Он отключил термостаты, поставил на каждый этаж плату с MicroPython и датчиком (±0,5 °C) и сам включал/выключал нагрев.
Чтобы с дивана видеть температуру и статус, ему нужен был веб-сервер, но Flask и Bottle на MicroPython не лезли. Поэтому он написал Microdot — «Flask в миниатюре».

Фишки

  • одна папка, ~1500 строк, нулевые зависимости
  • маршруты, шаблоны, cookies, WebSocket, SSE, CORS, SSL, Basic/Digest-аутентификация, тест-клиент
  • копирует API Flask: @app.route, request.args, jsonify, abort, before_request
  • работает на ESP32, Raspberry Pi Pico, обычных серверах
  • ставится pip install microdot (CPython) или mip install microdot (MicroPython)
  • опциональные плагины: microdot-session, microdot-cors, microdot-websocket, microdot-jinja, microdot-asyncio

Код

from microdot import Microdot
app = Microdot()

@app.route('/')
async def index(req):
    return {'temp': 22.5, 'heating': False}

app.run(port=80, debug=True)

Размер
ESP32: 70 КБ свободной ОЗУ остаётся после загрузки MicroPython + Microdot + приложение.
CPython: ~1 МБ venv.

Кому

  • хобби-IoT: датчики, реле, роботы
  • встраиваемые системы: промышленные контроллеры, автономные датчики
  • прототипы: быстро поднять REST, потом перейти на Flask/FastAPI
  • обучение: Flask-разработчики учатся за пять минут

Где
GitHub: github.com/miguelgrinberg/microdot
Документация: microdot.readthedocs.io
PyPI: pip install microdot

by pykello • 07 сентября 2025 г. в 05:38 • 180 points

ОригиналHN

#microdot#micropython#cpython#iot#flask#websockets#rest#esp32#raspberry-pi-pico#python

Комментарии (50)

  • Microdot — это 765-строковый Python-фреймворк, который работает и на CPython, и на MicroPython; предназначен для веб-серверов на IoT-устройствах (ESP32 и др.).
  • Автор @miguelgrinberg подтвердил, что расширения (шаблоны, сессии) опциональны и почти не требуют зависимостей; версия 2 внесла ломающие изменения.
  • Комментаторы спорят о слове «impossibly small»: кто-то считает 765 строк нормальным минимумом, кто-то — перебором; сравнивают с Bottle, Rails 0.x и FW/1.
  • Пользователи делятся опытом: SSE + htmx для живых GPIO-индикаторов, бенчмарки RPS, проекты термостатов и садовых сенсоров.
  • Упоминаются альтернативы (TurboLua, BirSaat) и вопрос: «почему бы не написать это на C?»

Unofficial Windows 11 requirements bypass tool allows disabling all AI features (neowin.net)

Неофициальный инструмент обхода требований Windows 11 теперь умеет отключать все AI-функции

Утилита Rufus, известная возможностью устанавливать Windows 11 на «несовместимое» железо, получила обновление. Теперь она может полностью вырезать из системы компоненты ИИ: Recall, Copilot, Click-to-Do и другие. Достаточно поставить галочку «Disable AI features» при создании загрузочной флешки — и после установки они будут заблокированы на уровне реестра и служб.

by pinewurst • 07 сентября 2025 г. в 04:27 • 141 points

ОригиналHN

#windows-11#rufus#linux#fedora#mint#ubuntu#proton#wine#telemetry#llm

Комментарии (104)

  • Пользователи жалуются на встроенную рекламу, телеметрию и невозможность полностью отключить «блоат» в Windows; даже сторонние «деблоатеры» регулярно ломаются после обновлений.
  • Многие предлагают «чистую» редакцию Windows (LTSC/IoT), но она дороже, лицензируется пачками и всё равно не лишена шпионских модулей.
  • Часть разработчиков и геймеров переходит на Linux (Fedora KDE, Mint, Ubuntu) + Proton/Wine; железные проблемы остаются, но «парадоксально, работает лучше, чем Windows».
  • Сообщество сомневается, что Microsoft выпустит публичную «Optimal»-версию без телеметрии: слишком выгодны данные пользователей и рекламные вставки.
  • Пока нет закона, обязывающего поддерживать старые CPU; официальные требования Win-11 можно обойти Rufus, но это временное решение, и пользователи всё чаще рассматривают полный уход в Linux/BSD.

RFC 3339 vs. ISO 8601 (ijmacd.github.io)

  • RFC 3339 – подмножество ISO 8601, строгий формат для интернет-протоколов:
    YYYY-MM-DDTHH:MM:SS±HH:MM (всегда 24-часовой, всегда TZ).
    Пример: 2023-06-15T14:30:45+03:00.

  • ISO 8601 – гибкий стандарт обмена датами/временем:
    допускает 2023-06-15, 20230615, 2023-155 (дня года), 2023-W24-4, 14:30, 14:30:45.123, +03, Z, интервалы, повторы и др.

  • Совместимость: любая RFC 3339-строка валидна по ISO 8601, но не наоборот.

by gregsadetsky • 07 сентября 2025 г. в 03:36 • 158 points

ОригиналHN

#rfc-3339#iso-8601#datetime#formats#protocols#strftime

Комментарии (118)

  • Все начинают с мыслью «даты просты», но быстро проваливаются в кроличью нору ISO 8601 и RFC 3339.
  • Фаворит сообщества: YYYY-MM-DD hh:mm:ss — читается и людьми, и кодом, но без зоны и с пробелом/двоеточием ломает shell, Windows-имена и сортировку.
  • Ещё минус RFC 3339: нет стандартных меток для длительности и диапазонов.
  • Почему в ISO не завели strftime-сокращения %F и %T — остаётся загадкой.
  • Итог: универсального «markdown для времени» нет; выбирайте формат под задачу и не забывайте часовой пояс.

Show HN: Lightweight tool for managing Linux virtual machines (github.com)

Flint — лёгкий инструмент для управления виртуальными машинами Linux.
Клонируй, настрой и запускай ВМ из CLI без лишних зависимостей.

by ccheshirecat • 07 сентября 2025 г. в 02:30 • 119 points

ОригиналHN

#linux#virtualization#kvm#go#systemd-nspawn#libvirt#cockpit#ssh#github

Комментарии (26)

  • Пользователи не поняли, что делает утилита: «управляет» KVM-ВМ, но не ясно — создаёт, запускает, монтирует папки или работает по сети.
  • Автор показал компактный бинарь на Go, но код (~26 k строк) написан «вайб-кодингом» без тестов, поэтому многим не доверяют.
  • Обсуждали альтернативы: systemd-nspawn, libvirt/virsh, Virt-Manager, Cockpit; последний удобен, но по умолчанию слушает 0.0.0.0 и требует PAM-логин.
  • Нашлись советы: Cockpit завернуть в SSH-туннель, libvirt подключаться по SSH, PAM заменить на безопасный модуль.
  • Вопросы о Vite-hot-reload в гостевой ОС, снапшотах и расписании остались без ответа.

Navy SEALs reportedly killed North Korean fishermen to hide a failed mission (nytimes.com)

  • Суть: в утечке рассекреченного отчёта утверждается, что в 2006 г. группа SEALs тайно проникла в КНДР, потерпела неудачу и, чтобы скрыть следы, убила случайно встретившихся рыбаков, а тела изуродовали.

  • Детали: операция «Источник-Х» — поиск подводной лаборатории Пхеньянa по ядерным испытаниям. Подлодка с SEALs застряла в иле, рыбаки подошли вплотную; командир приказал «устранить свидетелей». Тела взорвали, чтобы не опознать.

  • Последствия: инцидент засекречен, участники подписали неразглашение; Пентагон комментировать отказался. Источники: бывший офицер разведки и документы Эдварда Сноудена.

by nomilk • 07 сентября 2025 г. в 02:30 • 195 points

ОригиналHN

#navy-seals#north-korea#pentagon#edward-snowden#military-operations#espionage

Комментарии (106)

  • В 2019 году SEALs тайно проникли в воды КНДР, чтобы установить жучок, но убили 2–3 гражданских дайверов за «подозрение в обнаружении».
  • Операция провалилась: цель не достигнута, тела скрыли, проколов лёгкие, чтобы тонули.
  • Участники и ветераны считают миссию слишком рискованной и бесполезной, а приказ спущен «сверху» без должной оценки.
  • Инцидент подпитывает пропаганду КНДР и вызывает вопросы: кто и как в США решает убивать иностранных граждан без объявления войны.

Show HN: I recreated Windows XP as my portfolio (mitchivin.com) 🔥 Горячее 💬 Длинная дискуссия

Привет!
Кликни по аватарке, чтобы войти в «Windows XP» с моим портфолио. Всё внутри работает как настоящий рабочий стол: иконки, панель задач, кнопка «Пуск».
После загрузки откроются:

  • Обо мне
  • Резюме
  • Проекты
  • Контакты

Связаться: LinkedIn | GitHub | Instagram
Для эффекта CRT и полноэкранного режима жми иконки в трее.

by mitchivin • 07 сентября 2025 г. в 01:44 • 886 points

ОригиналHN

#windows-xp#portfolio#web-design#nostalgia#linkedin#github

Комментарии (290)

  • Пользователи в восторге от детализации и ностальгии, но спорят: копирование XP ≠ дизайнерский талант.
  • Основные претензии: AI-аватар, неточности пикселей, скролл-бары, отсутствие теней и Easter-egg’ов в консоли.
  • Советуют убрать «студий-гибли» аватар, добавить мини-приложения (Minesweeper, проводник) и open-source’нуть проект.
  • Мобильная версия похвалена, но просят доработать CMD и убрать «размывающие» скан-линии.
  • Вывод: крутая визуальная витрина, но чтобы впечатлить индустрию, нужно больше собственных идей и меньше «копипаста» 2001 года.