Комментарии (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 💬 Длинная дискуссия
- Смотреть весь стек вызовов — мгновенно переходить к родительским фреймам и проверять переменные там.
- Вычислять выражения на лету — вызывать функции и менять состояние без перезапуска.
- Ловить исключения в точке броска — ставить брейкпоинт на
throwи видеть, почему упало. - Менять ход выполнения — подменить URL, флаг или объект прямо в памяти, не трогая код.
- Стандартизировать запуск — закоммитьте
.vscode/launch.json, и новичку хватит одного клика, чтобы запустить сервер или CLI с нужными env и аргументами.
Комментарии (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 🔥 Горячее 💬 Длинная дискуссия
- Второй за год умер 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 даёт ту же скорость с меньшим нагревом и расходом.
Комментарии (318)
- Пользователи жалуются на нестабильность современных Intel и AMD: «виснут» в idle, падают под нагрузкой, греются до 100 °C и выгорают.
- Виной всему: заводской разгон «на грани», плохое охлаждение, BIOS-«усилялки» и, возможно, софт-ошибки, проявляющиеся только на новых CPU.
- ECC-память помогает отлавливать тихие ошибки ОЗУ, но на десктопе почти не рекламируется, матплаты поддерживают её «тихо», а модули стоят в 2 раза дороже.
- AMD даёт больше ядер и AVX-512, Intel — стабильнее iGPU и меньше жрёт в простое; выбор чаще делается по цене, политике или просто «что есть в продаже».
- Общий вывод: современные настольные CPU превратились в «лотерею» — нужен тщательный подбор питания, охлаждения и BIOS, иначе рискуете получить дорогой нагреватель.
The Expression Problem and its solutions (2016)
Проблема выражений и её решения
Проблема выражений: нужно добавлять новые типы данных и новые операции без изменения старого кода.
В ООП-языках легко добавлять типы (наследование), но сложно — операции (менять интерфейс).
В функциональных языках наоборот: легко добавлять функции, сложно — варианты данных.
Пример на 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.
Итог: ни один стиль не побеждает; выбираем язык и технику, которая даёт нужную сторону расширяемости.
Комментарии (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
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
Комментарии (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
Неофициальный инструмент обхода требований Windows 11 теперь умеет отключать все AI-функции
Утилита Rufus, известная возможностью устанавливать Windows 11 на «несовместимое» железо, получила обновление. Теперь она может полностью вырезать из системы компоненты ИИ: Recall, Copilot, Click-to-Do и другие. Достаточно поставить галочку «Disable AI features» при создании загрузочной флешки — и после установки они будут заблокированы на уровне реестра и служб.
Комментарии (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
-
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, но не наоборот.
Комментарии (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
Flint — лёгкий инструмент для управления виртуальными машинами Linux.
Клонируй, настрой и запускай ВМ из CLI без лишних зависимостей.
Комментарии (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
-
Суть: в утечке рассекреченного отчёта утверждается, что в 2006 г. группа SEALs тайно проникла в КНДР, потерпела неудачу и, чтобы скрыть следы, убила случайно встретившихся рыбаков, а тела изуродовали.
-
Детали: операция «Источник-Х» — поиск подводной лаборатории Пхеньянa по ядерным испытаниям. Подлодка с SEALs застряла в иле, рыбаки подошли вплотную; командир приказал «устранить свидетелей». Тела взорвали, чтобы не опознать.
-
Последствия: инцидент засекречен, участники подписали неразглашение; Пентагон комментировать отказался. Источники: бывший офицер разведки и документы Эдварда Сноудена.
Комментарии (106)
- В 2019 году SEALs тайно проникли в воды КНДР, чтобы установить жучок, но убили 2–3 гражданских дайверов за «подозрение в обнаружении».
- Операция провалилась: цель не достигнута, тела скрыли, проколов лёгкие, чтобы тонули.
- Участники и ветераны считают миссию слишком рискованной и бесполезной, а приказ спущен «сверху» без должной оценки.
- Инцидент подпитывает пропаганду КНДР и вызывает вопросы: кто и как в США решает убивать иностранных граждан без объявления войны.
Show HN: I recreated Windows XP as my portfolio 🔥 Горячее 💬 Длинная дискуссия
Привет!
Кликни по аватарке, чтобы войти в «Windows XP» с моим портфолио. Всё внутри работает как настоящий рабочий стол: иконки, панель задач, кнопка «Пуск».
После загрузки откроются:
- Обо мне
- Резюме
- Проекты
- Контакты
Связаться: LinkedIn | GitHub | Instagram
Для эффекта CRT и полноэкранного режима жми иконки в трее.
Комментарии (290)
- Пользователи в восторге от детализации и ностальгии, но спорят: копирование XP ≠ дизайнерский талант.
- Основные претензии: AI-аватар, неточности пикселей, скролл-бары, отсутствие теней и Easter-egg’ов в консоли.
- Советуют убрать «студий-гибли» аватар, добавить мини-приложения (Minesweeper, проводник) и open-source’нуть проект.
- Мобильная версия похвалена, но просят доработать CMD и убрать «размывающие» скан-линии.
- Вывод: крутая визуальная витрина, но чтобы впечатлить индустрию, нужно больше собственных идей и меньше «копипаста» 2001 года.