Hacker News Digest

За сутки: 07 сентября 2025 г. в 12:00

Постов: 34

Using Claude Code to modernize a 25-year-old kernel driver (dmitrybrant.com) 🔥 Горячее 💬 Длинная дискуссия

  • Увлечение — восстановление данных с кассет QIC-80 90-х гг.
  • Драйвер ftape (Linux 2.4) последний раз собирался ~2000 г.; с тех пор приходится держать CentOS 3.5.
  • Привод подключается к контроллеру гибкого диска: дёшево, но 500 Кбит/с и куча «магии» портов/IRQ.
  • Под DOS/Windows есть проприетарные утилиты, но только ftape даёт «сырой» дамп, независимо от формата ПО, которое писало кассету.

Цель: переписать драйвер под современное ядро без боли.
Инструмент — Claude Code (Claude 3.5 Sonnet) в режиме «актов» (акт = автоматический цикл «предложи-отладь-протестируй»).

Ход работы

  1. Запустил claude в каталоге исходников ftape-4.04 (1999 г.).
  2. Первый акт: «сделай модуль для ядра 6.10». Claude выдал:
    • заменил cli/sti на spinlock_t;
    • sleep_onwait_event;
    • register_blkdevblk_mq;
    • kmallockmalloc_array;
    • добавил MODULE_LICENSE/AUTHOR/DESCRIPTION.
      Собралось с десятком предупреждений.
  3. Акт 2: «убери варнинги». Убрал устаревшие ioctl, обернул printk в pr_*, добавил fallthrough;.
  4. Акт 3: «проверь на x86_64». Исправил longint в структурах, выровнял u8/u16 через __packed.
  5. Акт 4: «протестируй на железе». Создал QEMU-образ с контроллером FDC, подключил образ кассеты.
    • первый insmod — kernel oops; Claude добавил BUG_ON(!request_region) и проверку IRQ.
    • второй — ftape видит привод, но «unknown format»; Claude вставил распознавание QIC-80 по ID_CRC.
    • третий — успешный дамп 120 Мб за 40 мин.
  6. Акт 5: «очисти и оформи». Удалил весь #ifdef LINUX_2_0, добавил README.md, Kconfig, Makefile для in-tree сборки.

Результат

  • 2 500 строк C → 1 100; 45 файлов → 12; минус 4 архаичных под-драйвера.
  • Собирается как out-of-tree (6.6–6.12) и как in-tree (патч 30 Кб).
  • Скорость 470 Кбит/с — предел FDC, но стабильно.
  • Поддержаны только QIC-80; QIC-40/3010/3020 выкинуты (никто не просил).

Вывод
Claude Code способен переварить древний драйвер за вечер: сам генерит патчи, тестирует в QEMU и оставляет человеку только катать ленту.

by dmitrybrant • 07 сентября 2025 г. в 23:53 • 748 points

ОригиналHN

#linux#kernel#qemu#c#claude#driver

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

  • Claude Code и аналоги — это «force-multiplier» для уже имеющихся навыков: быстрее пишут бойлерплейт, помогают в знакомых фреймворках.
  • Особенно ценны для быстрого входа в новые стек-языки: «арендуешь чужой опыт», не учишь синтаксис с нуля.
  • Позволяют лезть в нишевые/устаревшие кодбазы (kernel-drivers, 15-летний PHP, Amiga-файлсистемы) и доводить их до рабочего состояния.
  • Результат всё равно требует экспертизы: без понимания архитектуры придётся долго чинить сгенерированные баги.
  • Главный риск — однократный провайдер (Anthropic) и отсутствие тестов; в mainline такие «Claude-порты» пока не проходят.

Formatting code should be unnecessary (maxleiter.com) 🔥 Горячее 💬 Длинная дискуссия

Форматирование кода должно быть лишним

В 80-х это уже знали.
Мой школьный учитель информатики, мистер Пейдж, участвовал в разработке компилятора Ada. Когда я в 2016-м жаловался на линтеры, он напомнил: проблему решили 40 лет назад. В Ada исходники не хранили — использовали IR-дерево DIANA. Каждый смотрел его в своём стиле: отступы, пробелы — всё равно.

Сейчас, в 2025-м, мы всё ещё спорим о запятых.

Как это работало
Рабочая станция Rational R1000 (1985) хранила не текст, а DIANA. IDE позволял редактировать дерево напрямую — проекционное редактирование. Компиляция была инкрементной, рефакторинг мгновенным, а «исходник» — просто красивой печатью дерева.

Плюсы: никаких holy-war’ов о табах, быстрая интеграция, встроенный VCS и отладка.
Минус: требовалась железная станция и знание Ada.

Вывод
Не нужно возвращаться к проекционным редакторам, но можно ли встроить идею «храним структуру, а не текст» в современные языки и IDE? Тогда форматирование станет личным вкусом, а не командным законом.

by MaxLeiter • 07 сентября 2025 г. в 23:08 • 274 points

ОригиналHN

#ada#dia#ide#ast#unison#darklang#mps#pre-commit

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

  • Форматирование кода — вечный «велосипедный сарай»: каждый знает, где ставить пробел, но никто — как реактор устроен.
  • Одни считают линтеры спасением от холивара, другие — потерей человеческого «вкуса» и смысловых акцентов.
  • Универсальный IR/AST вместо текста мечтает убрать diff-шум и дать каждому свой «pretty-print», но ломает grep, sed, git и другие текстовые инструменты.
  • Примеры в духе Unison, Darklang, MPS, DIANA и Go-подобных «gofmt» показывают: идея жива, но требует IDE-лок-ина и общего стандарта, которого пока нет.
  • Пока код смешанного стека остаётся обычным текстом, компромисс — автоформатер в pre-commit: «сохраняй как хочешь, коммить как договорились».

The demo scene is dying, but that's alright (datagubbe.se)

Демосцена умирает, но это нормально

ЮНЕСКО внесла демосцену в «живое культурное наследие» Швеции.
Смешно и страшно: внимание может испортить старое доброе.

Сцена не мертва, но не обновляется
С 1980-х её регулярно хоронили: Amiga, PC, Интернет…
Разница в фото: рейв-2025 — те же молодые, демопати-2025 — те же 50-летние.
Подростков нет; большинство родились в эпоху C64 и DOS.

Высокий вход, низкий выигрыш
Субкультура сложилась из дешёвых 8-бит, модемов и отсутствия законов.
Без моды, музыки и внешнего блеска её невозможно продать.
Кряки, пиратство, фрики — всё держалось в тени и презирало коммерцию.
Статус «задрота» и такой трудоёмкий хобби отпугивали тренд-хантеров и девчонок.
Сцена так и не стала «крутой» — и это её спасло.

Новые не идут
Старики обсуждают, как привлечь молодёжь; регистрация в ЮНЕСКО — попытка.
Попасть сегодня легко: приехал на патив, показал демку — ты свой.
Пик численности — начало 90-х (тысячи гостей).
С тех пор — спад, и старания «открыть двери» не помогают.

by zdw • 07 сентября 2025 г. в 22:34 • 204 points

ОригиналHN

#demoscene#unesco#c64#dos#pico-8#discord#pouet#scene.org#neocities#dwitter

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

  • «Сцена мертва» — мем: демосцена жива, но средний возраст растёт, новички есть, но не в тех числах.
  • Старое коммьюнити плохо втягивает молодёжь: документация стара, входной барьер высок, ностальгия доминирует.
  • Современные ПК настолько мощны, что «64 КБ» или «сжать в 4 КБ» воспринимается уже как искусственный костыль, а не вызов.
  • Поэтому интерес мигрировал в size-coding, fantasy-консоли (Pico-8), live-coding, гейм-джемы, TouchDesigner, движки вроде Notch/Tixl.
  • Онлайн-площадок много (Pouët, Scene.org, Neocities, Dwitter), но живого общения мало — Discord и редкие встречи «в парке» заменяют демопати.
  • Старые продолжают кодить и вспоминать The Party ’92, новые приходят единицами: сцена не умерла, но стала узким нишевым хобби.

Intel Arc Pro B50 GPU Launched at $349 for Compact Workstations (guru3d.com) 💬 Длинная дискуссия

  • Intel Arc Pro B50 — полупрофессиональная видеокарта на базе Battlemage BMG-G21 (16 Xe2-ядер, 16 ГБ GDDR6, 128-бит, 224 ГБ/с, 70 Вт, питание только от слота PCIe 5.0 x8).
  • Форм-фактор low-profile, dual-slot, 4×mini-DP — ставится в компактные SFF-станции без дополнительных проводов.
  • Целевые задачи: CAD, визуализация, локальный ИИ-инференс до 170 TOPS (INT8); драйверы сертифицированы под профессиональные приложения.
  • Цена 349 $, продаётся как в рознице, так и в OEM-системах.

by qwytw • 07 сентября 2025 г. в 22:06 • 170 points

ОригиналHN

#intel#gpu#battlemage#vulkan#sriov#vgpu#pci-e#cad#llm#gddr6

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

  • Intel Arc Pro B50: 16 ГБ, 70 Вт, single-slot, 1,5× быстрее RTX A1000, но всё ещё далеко от Nvidia/AMD.
  • Главная фишка — SR-IOV и vGPU для VM, чего нет у игровых RTX/Radeon.
  • 24-ГБ B60 и двух-GPU B60 анонсированы, но цены и даты не ясны; 48-ГБ версия Maxsun — $3000.
  • ПО (IPEX, Vulkan, драйверы) сыровато, CUDA-стеков нет, игровая совместимость средняя.
  • Рынок узок: малый формат, low-power серверы, NVR, тестовые стенды; геймерам и AI-тренировкам мало.
  • Intel официально слилась с тренировочным сегментом, ставит на инференс и foundry; веры в долгую GPU-поддержку мало.

Taking Buildkite from a side project to a global company (valleyofdoubt.com)

  • Кит Питт — австралийский разработчик, отец троих детей, бывший фокусник. Считает себя не предпринимателем, а изобретателем: «ценность идеи = кто-то заплатил за неё».

  • Buildkite родился как побочный проект: Кит писал e-mail-API и понадобился собственный CI. Вечерами довёл прототип до продукта, подключил PIN Payments (первый в AU простой REST-эквайринг) и выложил на $5/30/100.

  • Первый «чужой» клиент из Европы (Moneybird) показал: продукт внешне нужен. Когда знакомая компания сама докинулась до $500/мес, Кит поверил, что выживет.

  • Первые годы — вечера и выходные, пока жена училась; днём — работа в Envato. Рост шёл медленно, но MRR удваивался каждые 6 мес.

  • 2016 — деньги кончились, зарплаты не хватало. Кит вернулся к инвесторам, поднял раунд и стал CEO полный ставка. Пришлось учиться управлять, нанимать и строить распределенную команду.

  • Голос продукта выработали через публичный блог: честные посты о проблемах и фичах привели трафик и доверие разработчиков.

  • Сегодня Buildkite — глобальный CI/CD с клиентами вроде Shopify и Slack; офисы в Мельбурне и SF. Кит ушёл с поста CEO, но остался техническим лидером и продолжает «изобретать».

by shandsaker_au • 07 сентября 2025 г. в 22:03 • 76 points

ОригиналHN

#buildkite#ci-cd#rest#cloud#startups#distributed-teams#saas#shopify#slack#llm

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

  • Buildkite хвалят за гибридную архитектуру (SaaS + свои агенты), декларативные пайплайны и приятный UI.
  • Малые компании уходят: цены взлетели, фокус сместился на крупные enterprise.
  • Меньшие стартапы успешно использовали Buildkite + дешёвые серверы (Hetzner) и Knapsack Pro для параллельных тестов.
  • Основатель признался, что привлёк $28 млн раунда, «чтобы купить дом» — вызвал улыбку.
  • Некоторые разработчики считают ИИ-ассистентов вредными для глубокого понимания задачи: «поверхностный флирт» вместо погружения.

Creative Technology: The Sound Blaster (abortretry.fail)

  • Сим Вон Ху, 10-й из 12 детей, рос в бедной деревне Сингапура, продавал яйца до школы и купил себе губную гармошку.

  • Учился в техникуме на инженера, играл в театре, мечтал, чтобы компьютер играл музыку.

  • После армии работал на нефтяной платформе, потом открыл компьютерные курсы — партнёр украл деньги.

  • В 1981 году на сбережениях 6000 $ с другом основал Creative Technology: ремонт ПК и продажа запчастей.

  • Первый продукт — плата памяти для Apple II; в 1984 году выпустили совместимый компьютер CUBIC 99 с синтезатором речи и звонилкой — первый ПК, собранный в Сингапуре.

  • В 1986-м попытались продать клон PC CUBIC CT с графикой и звуком — рынок не готов, провал.

by BirAdam • 07 сентября 2025 г. в 21:50 • 136 points

ОригиналHN

#creative-technology#sound-blaster#apple-ii#pc#ac97#hd-audio#directx#aureal#vortex-2#half-life

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

  • В 90-х Sound Blaster был королём PC-звука; все помнят IRQ/DMA-магию, Dr. Sbaitso и первые 4-канальные сетапы.
  • Пользователи обвиняют Creative в патентных войнах (уничтожение Aureal), высоких ценах и «юзер-хостайле»; после 2000-х многие поклялись не покупать.
  • Конкуренция и появление AC’97/HD-Audio на материнках, а также DirectX убрали нужду в дорогих картах.
  • Восторженные воспоминания о 3D-аудио Aureal (Vortex 2) и реалтайм-трейсинге звука в Half-Life.
  • Сегодня достаточно $25 USB-дапплера; Creative почти не нужен, но компания пытается реанимировать бренд через Kickstarter.

Taco Bell AI Drive-Thru (aidarwinawards.org)

Taco Bell vs ИИ: 0:1
ИИ-голосовые кассы в 500+ драйв-турах не справились с акцентами, «двойным соусом без кинзы» и троллингом. Клиенты жаловались на глюки и устроили флешмоб абсурдных заказов. WSJ зафиксировал: технологию «пересматривают», но в дорожной карте она всё ещё значится.

by planetdebut • 07 сентября 2025 г. в 21:14 • 121 points

ОригиналHN

#llm#nlp#voice-recognition

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

  • Пользователи спорят, стоит ли внедрять ИИ в драйв- thru: кто-то хвалит точность и вежливость, кто-то ругает баги в духе «18 000 стаканов воды».
  • Основные претензии: очереди мешают трафику, машины пустятся на холостом, а заказы через ИИ легко троллить.
  • Многие предпочитают мобильный предзаказ: быстрее, параллельно и без разговоров, но часть клиентов не хочет ставить десятки «шпионских» приложений.
  • Критики считают запуск в 500 точках необдуманным: не хватает A/B-тестов, sanity-checks и учёта импульсивных покупателей, которым важен именно «захотел-сразу-в-очереди».
  • Вывод: ИИ-приёмка пока сыровата, но масштабные провалы дают ценные уроки и ускоряют доработку технологии.

Pico CSS – Minimal CSS Framework for Semantic HTML (picocss.com) 🔥 Горячее

Pico CSS — микро-фреймворк, который делает красивый интерфейс из обычного HTML без классов.
Подключил — и готово: адаптив, тёмная/светлая тема, 0 JS, 15 КБ.

<form><input type=email placeholder=Email></form>
  • 130 CSS-переменных для настройки
  • 20 цветовых тем, 30 компонентов
  • Вес ≈ 10 КБ, без зависимостей

by mpweiher • 07 сентября 2025 г. в 20:31 • 311 points

ОригиналHN

#pico-css#css#html#css-frameworks#tailwind#accessibility#front-end

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

  • Pico CSS — фаворит для быстрых сайтов и прототипов: «включаешь — и красиво», без классов.
  • Пользователи хвалят тёмную тему, accessibility и переменные, но жалуются на 50+ КБ, «огромные» контролы и отсутствие компонентов (табы).
  • Кто-то берёт Pico как анти-Tailwind: семантичный HTML, нет «супа классов», легко править.
  • Для LLM-флоу советуют засунуть доку Pico целиком в контекст, чтобы модель не тянула Tailwind.
  • Альтернативы: Neat (ещё меньше), Newcss, Beercss; обзоры на cssbed.com и dropin-minimal-css.

Everything from 1991 Radio Shack ad I now do with my phone (2014) (trendingbuffalo.com)

  • В рекламе Radio Shack 1991 г. 15 гаджетов; 13 из них теперь в телефоне.
  • Плеер, часы, калькулятор, камкордер, телефон, CD-плеер, сканер, диктофон и др. — всё заменил iPhone.
  • Суммарная цена тогда: $3054 (~$5100 сегодня).
  • Не заменил: радар-детектор и колонка с 15-дюймовым сабвуфером.

by vinnyglennon • 07 сентября 2025 г. в 20:26 • 199 points

ОригиналHN

#iphone#waze#p25

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

  • Участники спорят, что смартфон не полностью заменил CB-рации, радар-детекторы и сканеры: «функции есть, но дух и удобство — нет».
  • CB-живее всех живых: продаётся в крупных магазинах, разрешена за рулём, по-прежнему спасает вдали от сетей.
  • Радар-детектор формально не нужен — Waze и онлайн-радары делают ту же работу, но железный «бип» никто не отменял.
  • Сканеры тоже не умерли: любители слушают авиацию, спасателей, гонки; просто теперь это цифровые P25-коробки вместо 10-канального «Realistic».
  • Телефон убил рынок «подарочных гаджетов» — вместо $20-игрушек теперь дарят $5-приложения или $500-аксессуары.
  • Итог: всё слито в одну коробку, но энтузиасты всё равно покупают отдельные устройства — ради звука, ради хобби, ради свободы.

No Silver Bullet: Essence and Accidents of Software Engineering (1986) [pdf] (cs.unc.edu)

Содержимое PDF-файла представляет собой бинарные данные, которые нельзя напрямую интерпретировать как текст. В представленном фрагменте — это служебные структуры PDF (объекты, потоки, метаданные), а не читаемый текст документа.
Перевод и сокращение невозможны, поскольку отсутствует осмысленный текстовый контент.

by benterix • 07 сентября 2025 г. в 19:53 • 103 points

ОригиналHN

#software-engineering#complexity#programming-languages#aws#python#llm

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

  • Брукс по-прежнему прав: основная трудность — «существенная сложность» предмета, а не инструменты.
  • За 40 лет не появилось ни одного «серебряного пули», дающего 10× прирост продуктивности.
  • Экосистемы (Python, AWS и др.) снизили accidental complexity, но добавили новую через зависимости и «слоёный пирог».
  • LLM и ИИ ускоряют рутину, но не решают существенную сложность и не умеют формулировать требования.
  • Культура SWE изменилась: скорость вытеснила ответственность, код пишут «на скорую руку» и быстро забывают.

How to make metals from Martian dirt (csiro.au)

  • Учёные Суинберна и CSIRO впервые получили железо из марсианского реголита при давлении и составе атмосферы Красной планеты.
  • Процесс: 1000 °С → металлическое Fe, 1400 °С → жидкий сплав Fe-Si; шлак отделяется как на Земле.
  • Использовали имитатор грунта кратера Гейла; в качестве восстановителя — CO₂ из атмосферы.
  • Цель: добывать металл на месте (ISRU), чтобы не возить тонны с Земли (1 т груза ≈ 243 млн USD).
  • Следующий шаг — «нулевые отходы»: шлак пойдёт на стройматериалы, сплавы — на корпуса домов и технику.

by PaulHoule • 07 сентября 2025 г. в 19:09 • 75 points

ОригиналHN

#space-exploration#mars#in-situ-resource-utilization#iron#nuclear-reactors#solar-power#amazon

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

  • Учёные добились выплавки железа из марсианского реголита без углерода; остаётся вопрос, где взять 1400 °C на Марсе.
  • Основные кандидаты — солнечные панели + батареи или компактный ядерный реактор (MSR), но масштаб и логистика пока неясны.
  • Amazon уже продаёт «марсианский» реголит-имитатор, так что эксперименты можно начинать в гараже.
  • Добыча на астероидах теоретически богаче (платина), но Δv и возврат убивают экономику; марсианское железо — проще и дешевле.
  • ISRU (местное сырьё) — ключ к выживанию на Луне/Марсе; станции в вакууме такой роскоши не имеют.
  • Споры о радиации и безопасности ЯТТ топлива сведены к «опаснее не реактор, а сама космическая радиация».

Keeping secrets out of logs (2024) (allan.reyes.sh)

Коротко:
Секреты в логах — это не «одним фиксом» решить нельзя. Ни 80/20, ни чудо-инструмента нет. Есть 10 «свинцовых пуль» — несовершенных, но при правильной раскладке работают.


Почему течёт

Причина Пример
Прямой логинг log.info(user) вместо log.info(user.id)
«Мусорные» дампы logger.debug(req.headers)
Конфиги debug=true выводит весь env
Зашитые секреты JSON-поле password внутри структуры
Телеметрия APM-сборщик хватает всё подряд
Пользователь Вводит пароль в поле «имя»

10 «пуль»

  1. Архитектура данных
    Разделяем «чувствительное» и «остальное» на уровне схемы; в логи идёт только последнее.

  2. Трансформации
    Сериализуем через sanitize() или toLog() — явно выбрасываем секретные поля.

  3. Domain-primitives

    • Компиляция: SecretString не реализует Display.
    • Рантайм: Redactable интерфейс, toString() → "***".
  4. Read-once
    Пароль читается 1 раз, дальше объект пустой — логировать нечего.

  5. Taint-tracking
    Помечаем вход как «грязный»; если доходит до логгера — exception. Дорого, но точно.

  6. Форматтеры логов
    Пишем свой Layout / Encoder, который режет заранее заданные ключи рекурсивно.

  7. Unit-тесты
    Проверяем assertThat(log).doesNotContain(secret); запускаем на каждый PR.

  8. Сканеры
    Regex-правила + entropy-фильтры в CI и в production-потоке. Сэмплируем, чтобы не умереть от CPU.

  9. Pre-processors
    Vector / Logstash / Cribl вырезают поля ещё до попадания в Elasticsearch.

  10. Люди
    Code-review чек-лист: «есть ли тут .toString / JSON.stringify / printf без фильтров?».


Стратегия

  1. Фундамент: классификация данных, единый словарь «что считать секретом».
  2. Карта потока: от источника до хранилища логов.
  3. Контрольные точки: валидация, sanitize, redact.
  4. Защита в глубину: 2-3 слоя из списка выше.
  5. План на инцидент: ротация, оповещение, forensics.

Итог:
Нет волшебства — только дисциплина и много мелких фиксов. Начните с 2-3 «пуль», которые дешёвле всего у вас, и двигайтесь дальше.

by xk3 • 07 сентября 2025 г. в 18:16 • 221 points

ОригиналHN

#logging#security#data-sanitization#taint-tracking#elastic#logstash#code-review#unit-testing#continuous-integration#json

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

  • Отличный пост: чёткий разбор проблемы «секреты в логах» и конкретные техники борьбы.
  • Основные идеи: taint-tracking, in-band метки, GuardedString/SecureString, доменные примитивы new Secret(...).
  • Сложности: стектрейсы, JSON, core-dumps, динамически создаваемые секреты, человеческий фактор.
  • Защита в глубину: маскировать, ограничивать доступ к логам, не писать всё подряд, валидировать маски (Kingfisher).

The MacBook has a sensor that knows the exact angle of the screen hinge (twitter.com) 🔥 Горячее 💬 Длинная дискуссия

JavaScript отключён.
Включите его или смените браузер.
Проблема может быть в расширениях — отключите их и обновите страницу.

by leephillips • 07 сентября 2025 г. в 15:20 • 911 points

ОригиналHN

#apple#macbook#linux#hid#telemetry#twitter

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

  • В MacBook есть датчик угла крышки; он привязан к материнской плате и требует калибровки при замене.
  • Apple использует его для Desk View (коррекция перспективы камеры) и, возможно, для настройки аудио и диагностики.
  • На других ноутбуках такой датчик тоже есть, в Linux он доступен как HID-устройство.
  • Хакеры превратили его в «терменвокс», контроллер громкости и даже ввод для расшифровки файлов.
  • Пользователи опасаются, что данные могут использоваться для телеметрии или гарантийных отказов.

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

  • Участники спорят: блокировки Facebook/TikTok в Непале — это борьба с вредом соцсетей или удар по свободе слова.
  • Западные комментаторы упрекают азиатские власти в авторитаризме; местные отвечают: «не нам учиться демократии у стран, где Fox News = свобода».
  • Непал требует у платформ регистрации и локального представителя; игнорировавшие правила заблокированы, а не «все подряд».
  • Мнения разделились: кто-то радуется «цифровому детоксу», кто-то боится прецедента цензуры и слежки.
  • Общий вывод: соцсети одновременно и «площадка свободы», и «инструмент пропаганды»; решение о блокировке зависит от контекста, но всегда рискует стать политическим оружием.

SQLite's Use of Tcl (2017) (tcl-lang.org)

SQLite начинался как TCL-расширение и до сих пор носит его отпечаток: гибкая типизация, синтаксис $var в SQL и единственный адаптер внутри ядра — tclsqlite.c. Сегодня ядро на чистом C и работает без TCL, но вся разработка и тестирование держится на нём: 90 % кода тестов на TCL, генерация сборок, документация и релизы полностью автоматизированы скриптами makefile.tcl.

by ripe • 07 сентября 2025 г. в 15:03 • 101 points

ОригиналHN

#tcl#sqlite#c#fossil#end-to-end-encryption#makefile#sql

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

  • Команда SQLite общается в приватном чате на собственном Tcl/Tk-скрипте (~1000 строк), который работает и как клиент, и как сервер.
  • С 2021 г. основное общение перешло в встроенный Fossil-чат: он E2E-шифрован и доступен из любого браузера.
  • SQLite сохраняет Tcl-наследие: sqlite3_analyzer — это тоже Tcl-программа, упакованная в С-обёртку.
  • Подстановка $uid в SQL безопасна: токен распознаётся парсером SQLite, а не «eval»-ится Tcl.
  • Участники защищают выбор Tcl: он компактен, стабилен и удобно встраивается в С, что важнее модных языков.

Delayed Security Patches for AOSP (Android Open Source Project) (twitter.com)

  • JS отключён. Включите его или смените браузер.
  • Расширения, блокирующие трекинг, могут мешать — отключите их и обновите страницу.

by transpute • 07 сентября 2025 г. в 14:36 • 169 points

ОригиналHN

#aosp#android#grapheneos#security-patches#postmarketos#linux#twitter

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

  • Заголовок на HN неверен: задержка касается всех Android, не только AOSP; security-патчи для 13–15 вышли 2 сентября.
  • Google всё чаще прячет код в GMS и свои приложения, превращая AOSP в «заготовку» и снижая пользу для GrapheneOS и прочих форков.
  • Пользователи обсуждают разделение Android и Google: считают, что без регулирования Google окончательно убьёт открытую часть экосистемы.
  • Альтернативы вроде PostmarketOS и «линуксофонов» пока сыроваты: не хватает VoLTE, камеры, GPU и людей для поддержки.

Belling the Cat (en.wikipedia.org)

Басня «Повесить колокол кошке»
Крысы хотели повесить колокол кошке, чтобы слышать её приближение. План хорош, но никто не рискнул выполнить. Идиома: «лёгко советовать, трудно исполнять».

by walterbell • 07 сентября 2025 г. в 13:15 • 175 points

ОригиналHN

#bellingcat#journalism#investigations#politics

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

  • Участники обсуждают басню «Колокольчик на кошку» как метафору коллективной бездействия: все хотят результата, но никто не берётся за опасное исполнение.
  • Некоторые узнали фразу впервые и теперь используют её вместо саркастического «а кто это будет делать?» в командной работе.
  • Всплыли разные интерпретации: от детской «строим сложный механизм» до циничной «пусть кто-то другой рискнёт».
  • Название Bellingcat теперь воспринимается как сознательная игра на идее «повесить колокол», но в контексте журналистских расследований.
  • Обсуждение ушло в политику: Украина «вешает колокол» на Россию, пока Европа ждёт, что сделает кто-то другой.

Air pollution directly linked to increased dementia risk (nature.com)

  • Анализ 56 млн человек показал: длительное дыхание мелких частиц PM2,5 ускоряет развитие деменции с тельцами Леви и болезни Паркинсона с деменцией у генетически предрасположенных людей.
  • Риск госпитализации из-за тяжёлой формы деменции с тельцами Леви выше на 12 % в районах с повышенным уровнем загрязнения.

by rntn • 07 сентября 2025 г. в 13:13 • 214 points

ОригиналHN

#pm2.5#dementia#parkinsons-disease#levy-bodies#healthcare#environmental-health#epidemiology#public-health

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

  • Исследование показывает корреляцию между загрязнением воздуха (PM2.5) и деменцией, но не доказывает причинно-следственную связь.
  • Участники обсуждают, почему в некоторых регионах с высоким уровнем загрязнения (например, Юта) уровень деменции ниже, чем в других (например, Майами-Дейд), указывая на возраст, миграцию и другие факторы.
  • Поднимаются вопросы о влиянии внутреннего загрязнения (например, от готовки), пестицидов, а также о том, учитываются ли они в исследованиях.
  • Некоторые считают, что статьи и пресс-релизы преувеличивают выводы, делая из корреляции выводы о причинности.
  • Обсуждается, почему в странах с сильным загрязнением (Китай, Индия) не фиксируется всплеск деменции — возможно, из-за недостатка диагностики и молодого населения.

Postal traffic to US down by over 80% amid tariffs, UN says (dw.com)

  • Почтовый трафик в США упал >80 % после отмены беспошлинного порога $800 с 29 авг.
  • 88 операторов приостановили доставку: не успели настроить сбор пошлин и связь с таможней.

by geox • 07 сентября 2025 г. в 13:04 • 75 points

ОригиналHN

#usps#ups#fedex#tariffs#customs#ecommerce

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

  • Почтовые операторы 88 стран приостановили доставку в США: не успели за 6 месяцев внедрить сбор пошлин после отмены de minimis.
  • Участники считают, что удар по «почтовому демпингу» из Китая был целенаправленным, но системы растаможки не готовы.
  • USPS рискует потерять объёмы, частные курьеры (UPS, FedEx) выиграют, разберясь с бумагами.
  • Пользователи ждут рецессии/депрессии, обсуждают, куда спрятать деньги и как жить без «фабричных» дешёвых товаров.

More and more people are tuning the news out: 'Now I don't have that anxiety (theguardian.com)

Почему люди отключают новости: «Теперь у меня нет тревоги»

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

Решение:

  • детокс от новостей (от 1 дня до года);
  • лимит времени в приложениях;
  • выборочное чтение — только добровольные дайджесты или позитивные каналы.

Результат:

«Я стал спать лучше и забыл, что такое постоянное напряжение».

by giuliomagnifico • 07 сентября 2025 г. в 12:57 • 77 points

ОригиналHN

#rss#llm

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

  • Участники обсуждают, как избавиться от тревожного «думскроллинга»: кто-то полностью отказался от новостей, кто-то перешёл на текстовые дайджесты (NPR Text, Fix the News, The Economist «World in Brief», Reuters, AP News).
  • Популярный приём — фильтрация через RSS/LLM-сводки, блокировки сайтов (LeechBlock, Screen Time) и переход на местные источники вместо глобального хайпа.
  • Многие отмечают улучшение психического здоровья, но чувствуют вину за «осознанное неведение» и страх перед авторитарными трендами.
  • Часть пользователей считает отказ от новостей привилегией: «пока тебя не коснётся, можно не следить», другие напоминают, что без гражданского контроля власть разойдётся бесконтрольно.
  • Общий вывод: новости превратились в развлекательный спам и инструмент манипуляции; задача — найти баланс между информированностью и личным спокойствием.

Algebraic Effects in Practice with Flix (relax.software)

Алгебраические эффекты на практике в Flix

Алгебраические эффекты — уже не академия. Это рабочий инструмент, который сегодня делает код:

  1. Тестируемым — «что» отделено от «как»; mock-и и DI не нужны.
  2. Прозрачным — сигнатура функции сразу показывает все побочные действия (IO, сеть, исключения).
  3. Гибким — async/await, корутины, backtracking реализуются обычными библиотеками, без изменения языка.

В отличие от монад, эффекты понятны без теории категорий и работают «из коробки» в языке Flix.


Мотивирующий пример

Без эффектов:

def calculateSalary(base, percent) -> float:
    # может отправить письмо бабушке

С эффектами (Flix):

def calculateSalary(base: Float64, percent: Float64): Float64 \ {Email} =
    ...

Сигнатура не лжёт: любой вызов Email будет отслежен компилятором.


Обработчики эффектов (интуиция)

Эффект = операция + обработчик.
Код бросает операцию, обработчик решает, что с ней делать.

eff Ask {                     // объявляем эффект
    pub def ask(): String
}

def greet(): String \ Ask =   // используем
    "Hello " + Ask.ask()

def main(): Unit =            // обрабатываем
    println(greet() with Ask {
        def ask() = "World"
    })

Реальный проект: рекомендательная система фильмов

Задача: достать данные из SQLite, вызвать внешний AI-сервис, кешировать результат, логировать.

Эффекты: Db, Http, Log, Cache.

def recommend(user: String): List[Movie] \ {Db, Http, Log, Cache} = 
    Cache.getOrElse(user, 
        for {
            prefs <- Db.query(user)
            _     <- Log.info("Prefs loaded")
            recs  <- Http.post("ai.example.com", prefs)
            _     <- Log.info("AI answered")
            _     <- Cache.put(user, recs)
        } yield recs)

Тест: подменяем обработчики на in-memory реализации — никаких реальных запросов.


Куда дальше

Flix ещё молод, но уже поддерживает эффекты, регионы, структурную конкурентность и Datalog.

by appliku • 07 сентября 2025 г. в 12:07 • 85 points

ОригиналHN

#flix#algebraic-effects#sqlite#http#datalog#ocaml#typescript#koka#effekt#unison

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

  • Участники восторгаются идеей алгебраических эффектов: они проще монад, решают «цветную» проблему функций и позволяют гибко компоновать побочные эффекты.
  • Примеры уже есть: экспериментальная реализация в OCaml 5, библиотеки Effect и Effectively для TypeScript, языки Koka, Effekt, Unison.
  • Отличие от ОО-интерфейсов: эффекты явно указывают контекстные требования (Net, IO) и позволяют подменять реализацию динамически, а не статически.
  • Критика: система всё равно «окрашивает» код, требует прокидывать эффекты через весь стек вызовов и пока выглядит академично/громоздко.
  • Практические вопросы: как скрыть «дебажный» вывод, не нарушая типов, и можно ли обойтись без переписывания сигнатур каждой промежуточной функции.

Show HN: Semantic grep for Claude Code (local embeddings) (github.com)

GitHub-репозиторий BeaconBay/ck
Публичный проект без описания.
Кнопки: «Code», «Issues», «Pull requests», «Actions», «Projects», «Wiki», «Security», «Insights».
Последний коммит: 2 года назад.
Язык: C.
Лицензия: отсутствует.

by Runonthespot • 07 сентября 2025 г. в 11:20 • 147 points

ОригиналHN

#rust#tree-sitter#embeddings#vector-search#semantic-search#code-search#baai-bge-small-en-v1.5#gemma#github

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

  • Утилита ck — это «семантический grep» на Rust: строет локальный векторный индекс файлов и ищет по смыслу, а не только по ключевым словам.
  • Работает через embeddings (BAAI/bge-small-en-v1.5, планируется Gemma), повторное индексирование запускается автоматически при изменении файлов.
  • Поддерживает почти все языки, но для точного семантического чанкинга требуется донастройка tree-sitter; grep-режим остаётся дефолтом.
  • Пользователи жалуются на медленный поиск в больших проектах, отсутствие TypeScript-LSP и «разрезание» эмодзи; README считают «AI-флаффным».
  • Альтернативы: Codanna, Serena, Roo с Qdrant, SemTools; автор приглашает тестеров и PR для доведения до зрелости.

Serverless Horrors (serverlesshorrors.com) 🔥 Горячее 💬 Длинная дискуссия

Сборник коротких серверлес-кошмаров

  • $1189 – Webflow снял за месяц вместо $69.
  • $100 000 – DoS на игровом сайте → счёт за Firebase за сутки.
  • $738 – Vercel Pro + лимит $120 ≠ защита от «сюрприза».
  • $70 000 – Проснулся с таким счётом за Firebase при тарифе $50.
  • $22 640 – BigQuery на публичных данных.
  • $250/мес – 9 тыс. просмотров в Framer.
  • $1274 – AI Devin случайно устроил ддос в PostHog.
  • $530 – Платный PostHog после нулевого периода.
  • $384 – Документация на Mintlify.
  • $103 – AWS Free Tier ловушка.
  • $96 281 – Vercel: «я просто молчу».
  • $120 000 – Cloudflare выключает сайт, требуя деньги за сутки.
  • $1301 – Пустой приватный S3 + ддос.
  • $11 000 – Mailgun во время атаки.
  • $104 500 – Письмо от Netlify «переплата».
  • $23 000 – Спам-атака на EchoFox в Vercel.
  • $3000 – Тестовый деплой в Vercel.
  • $620 – Sitemap.txt сожрал трафик.
  • $72 000 – Тест Firebase + Cloud Run чуть не разорил.

Хочешь поделиться своим счётом-ужасом — пиши в твиттере или PR на GitHub.

by operator-name • 07 сентября 2025 г. в 11:00 • 542 points

ОригиналHN

#serverless#firebase#vercel#bigquery#posthog#aws#cloudflare#s3#mailgun#netlify

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

  • Пользователи делятся историями о «серверлес-ужасах» — внезапных счетах за десятки и сотни тысяч долларов из-за DDoS, ошибок в конфигурации или забытого ресурса.
  • Критика сосредоточена не на технологии serverless, а на модели оплаты «плати за использование» без жёстких потолков: бюджет — лишь уведомление, а не отключение.
  • Многие считают, что провайдеры могли бы автоматически отключать сервис при превышении лимита, но не делают этого, теряя деньги на «ошибках» новичков.
  • Участники советуют: ставить rate-limit, использовать VPS с фиксированной ценой, поднимать bare-metal или хотя бы включать billing-alerts и «пауz-лимиты» вроде Vercel.
  • Поддержка AWS/GCP/Azure часто прощает счета после публичных твитов, но это выживший эффект: официальной политики нет, и никто не гарантирует прощение.

Show HN: I'm a dermatologist and I vibe coded a skin cancer learning app (molecheck.info) 🔥 Горячее 💬 Длинная дискуссия

molecheck.info – тест «Опасно ли пятно?»

  • Оптимизировано для телефона: открой сайт через камеру по QR-коду.
  • На экране – фото родинки.
  • Свайп влево = «опасаюсь», вправо = «не беспокоит».
  • Кнопки: «Тревожно», «Спокоен», «Не уверен».
  • После выбора – «Следующее изображение».

by sungam • 07 сентября 2025 г. в 10:38 • 389 points

ОригиналHN

#llm#quiz#dermatology#image-classification#machine-learning#healthcare#vibe-coding#medical-education

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

  • Врач-дерматолог за выходные собрал на LLM-генераторах обучающий «квиз» по фото родинок: «опасно / не опасно».
  • Пользователи быстро научаются отличать очевидные меланомы, но путают BCC с прыщами и keratosis с невусами; объяснений «почему» пока нет.
  • Критика: в выборке ≈75 % онкопатологии (в жизни <5 %), что повышает чувствительность тренажёра, но может лишний раз нагнать тревогу.
  • Проект вызывает дискуссию о «vibe-coding»: эксперт предметной области теперь может реализовать идею без команды разработчиков.
  • Врачи предлагают добавить шкалы размеров, ABCDE-справку, лог ошибок и чёткое предупреждение: «это не диагностика, а учебная игра».

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).

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 года.

The key to getting MVC correct is understanding what models are (stlab.cc) 💬 Длинная дискуссия

Как MVC стало таким бардаком

Классическое Smalltalk-MVC:

  • Model — данные, ничего не знает об UI.
  • View — рисует Model, подписывается на её изменения.
  • Controller — переводит клики/клавиши в команды Model.

Связь Model→View только через наблюдение (observer), поэтому Model переиспользуема.

Apple (и большинство фреймворков) всё перепутали:

  • View и Controller слили в «View-Controller» — толстый монстр, который одновременно держит UI-элементы и кучу логики.
  • Controller превратился в мусорный бак кода, «непереиспользуемый — но это нормально».
  • Model зачастую делают пассивной структурой, а состояние хранят в самом виджете (чекбокс знает своё значение).

Итог: вместо «Model как источник истины» получаем размазанное состояние по View-Controller’ам, гонки данных и невозможность тестировать.

Почему случилось: в C/Pascal сделать observable-Model было больно, поэтому в Xerox Lisa пожертвовали чистотой ради скорости. За ними потянулись все.

Как надо:
Model — любой observable-объект (даже bool в обёртке). View подписывается и рисует текущее значение; никогда не спрашивает «каков чекбокс?» — он знает только Model. Controller лишь говорит Model «переключись». Можно цеплять сколько угодно View к одной Model без изменения кода.

by csb6 • 07 сентября 2025 г. в 01:26 • 176 points

ОригиналHN

#mvc#smalltalk#controller#model#view#observer#ios#reactive#rad#composition

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

  • MVC — «религия без евангелия»: все уверены, что знают, что такое Model и View, но Controller — у каждого свой.
  • Исходные определения настолько абстрактны, что под MVC подгоняют любую структуру из трёх классов; реальные кодовые базы показывают 1:1 связь V-C, что уничтожает пользу разделения.
  • Контроллер быстро превращается в «всё, что не влезло в M или V», из-за чего страдает тестируемость и масштабируемость; 15 лет рефакторинга iOS-проектов подтверждают: 100 % проблем — в недостаточной проработке Model.
  • RAD-фреймворки и визуальные редакторы ускорили искажение: код-behind стал контроллером, а «настоящий» MVC остался только в Smalltalk-историях.
  • Практический выход: оставить MV, убрать лишний C или превратить его в тонкий «GluePuppy», который просто связывает наблюдаемую Model с реактивной View; всё остальное — следствие Expression Problem и отсутствия языковой поддержки композиции.