Using Claude Code to modernize a 25-year-old kernel driver 🔥 Горячее 💬 Длинная дискуссия
- Увлечение — восстановление данных с кассет QIC-80 90-х гг.
- Драйвер
ftape
(Linux 2.4) последний раз собирался ~2000 г.; с тех пор приходится держать CentOS 3.5. - Привод подключается к контроллеру гибкого диска: дёшево, но 500 Кбит/с и куча «магии» портов/IRQ.
- Под DOS/Windows есть проприетарные утилиты, но только
ftape
даёт «сырой» дамп, независимо от формата ПО, которое писало кассету.
Цель: переписать драйвер под современное ядро без боли.
Инструмент — Claude Code (Claude 3.5 Sonnet) в режиме «актов» (акт = автоматический цикл «предложи-отладь-протестируй»).
Ход работы
- Запустил
claude
в каталоге исходниковftape-4.04
(1999 г.). - Первый акт: «сделай модуль для ядра 6.10». Claude выдал:
- заменил
cli/sti
наspinlock_t
; sleep_on
→wait_event
;register_blkdev
→blk_mq
;kmalloc
→kmalloc_array
;- добавил
MODULE_LICENSE/AUTHOR/DESCRIPTION
.
Собралось с десятком предупреждений.
- заменил
- Акт 2: «убери варнинги». Убрал устаревшие
ioctl
, обернулprintk
вpr_*
, добавилfallthrough;
. - Акт 3: «проверь на x86_64». Исправил
long
↔int
в структурах, выровнялu8/u16
через__packed
. - Акт 4: «протестируй на железе». Создал QEMU-образ с контроллером FDC, подключил образ кассеты.
- первый
insmod
— kernel oops; Claude добавилBUG_ON(!request_region)
и проверку IRQ. - второй —
ftape
видит привод, но «unknown format»; Claude вставил распознаваниеQIC-80
поID_CRC
. - третий — успешный дамп 120 Мб за 40 мин.
- первый
- Акт 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 и оставляет человеку только катать ленту.
Комментарии (247)
- Claude Code и аналоги — это «force-multiplier» для уже имеющихся навыков: быстрее пишут бойлерплейт, помогают в знакомых фреймворках.
- Особенно ценны для быстрого входа в новые стек-языки: «арендуешь чужой опыт», не учишь синтаксис с нуля.
- Позволяют лезть в нишевые/устаревшие кодбазы (kernel-drivers, 15-летний PHP, Amiga-файлсистемы) и доводить их до рабочего состояния.
- Результат всё равно требует экспертизы: без понимания архитектуры придётся долго чинить сгенерированные баги.
- Главный риск — однократный провайдер (Anthropic) и отсутствие тестов; в mainline такие «Claude-порты» пока не проходят.
Formatting code should be unnecessary 🔥 Горячее 💬 Длинная дискуссия
Форматирование кода должно быть лишним
В 80-х это уже знали.
Мой школьный учитель информатики, мистер Пейдж, участвовал в разработке компилятора Ada. Когда я в 2016-м жаловался на линтеры, он напомнил: проблему решили 40 лет назад. В Ada исходники не хранили — использовали IR-дерево DIANA. Каждый смотрел его в своём стиле: отступы, пробелы — всё равно.
Сейчас, в 2025-м, мы всё ещё спорим о запятых.
Как это работало
Рабочая станция Rational R1000 (1985) хранила не текст, а DIANA. IDE позволял редактировать дерево напрямую — проекционное редактирование. Компиляция была инкрементной, рефакторинг мгновенным, а «исходник» — просто красивой печатью дерева.
Плюсы: никаких holy-war’ов о табах, быстрая интеграция, встроенный VCS и отладка.
Минус: требовалась железная станция и знание Ada.
Вывод
Не нужно возвращаться к проекционным редакторам, но можно ли встроить идею «храним структуру, а не текст» в современные языки и IDE? Тогда форматирование станет личным вкусом, а не командным законом.
Комментарии (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
Демосцена умирает, но это нормально
ЮНЕСКО внесла демосцену в «живое культурное наследие» Швеции.
Смешно и страшно: внимание может испортить старое доброе.
Сцена не мертва, но не обновляется
С 1980-х её регулярно хоронили: Amiga, PC, Интернет…
Разница в фото: рейв-2025 — те же молодые, демопати-2025 — те же 50-летние.
Подростков нет; большинство родились в эпоху C64 и DOS.
Высокий вход, низкий выигрыш
Субкультура сложилась из дешёвых 8-бит, модемов и отсутствия законов.
Без моды, музыки и внешнего блеска её невозможно продать.
Кряки, пиратство, фрики — всё держалось в тени и презирало коммерцию.
Статус «задрота» и такой трудоёмкий хобби отпугивали тренд-хантеров и девчонок.
Сцена так и не стала «крутой» — и это её спасло.
Новые не идут
Старики обсуждают, как привлечь молодёжь; регистрация в ЮНЕСКО — попытка.
Попасть сегодня легко: приехал на патив, показал демку — ты свой.
Пик численности — начало 90-х (тысячи гостей).
С тех пор — спад, и старания «открыть двери» не помогают.
Комментарии (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 💬 Длинная дискуссия
- 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-системах.
Комментарии (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
-
Кит Питт — австралийский разработчик, отец троих детей, бывший фокусник. Считает себя не предпринимателем, а изобретателем: «ценность идеи = кто-то заплатил за неё».
-
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, но остался техническим лидером и продолжает «изобретать».
Комментарии (9)
- Buildkite хвалят за гибридную архитектуру (SaaS + свои агенты), декларативные пайплайны и приятный UI.
- Малые компании уходят: цены взлетели, фокус сместился на крупные enterprise.
- Меньшие стартапы успешно использовали Buildkite + дешёвые серверы (Hetzner) и Knapsack Pro для параллельных тестов.
- Основатель признался, что привлёк $28 млн раунда, «чтобы купить дом» — вызвал улыбку.
- Некоторые разработчики считают ИИ-ассистентов вредными для глубокого понимания задачи: «поверхностный флирт» вместо погружения.
Creative Technology: The Sound Blaster
-
Сим Вон Ху, 10-й из 12 детей, рос в бедной деревне Сингапура, продавал яйца до школы и купил себе губную гармошку.
-
Учился в техникуме на инженера, играл в театре, мечтал, чтобы компьютер играл музыку.
-
После армии работал на нефтяной платформе, потом открыл компьютерные курсы — партнёр украл деньги.
-
В 1981 году на сбережениях 6000 $ с другом основал Creative Technology: ремонт ПК и продажа запчастей.
-
Первый продукт — плата памяти для Apple II; в 1984 году выпустили совместимый компьютер CUBIC 99 с синтезатором речи и звонилкой — первый ПК, собранный в Сингапуре.
-
В 1986-м попытались продать клон PC CUBIC CT с графикой и звуком — рынок не готов, провал.
Комментарии (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
Taco Bell vs ИИ: 0:1
ИИ-голосовые кассы в 500+ драйв-турах не справились с акцентами, «двойным соусом без кинзы» и троллингом. Клиенты жаловались на глюки и устроили флешмоб абсурдных заказов. WSJ зафиксировал: технологию «пересматривают», но в дорожной карте она всё ещё значится.
Комментарии (146)
- Пользователи спорят, стоит ли внедрять ИИ в драйв- thru: кто-то хвалит точность и вежливость, кто-то ругает баги в духе «18 000 стаканов воды».
- Основные претензии: очереди мешают трафику, машины пустятся на холостом, а заказы через ИИ легко троллить.
- Многие предпочитают мобильный предзаказ: быстрее, параллельно и без разговоров, но часть клиентов не хочет ставить десятки «шпионских» приложений.
- Критики считают запуск в 500 точках необдуманным: не хватает A/B-тестов, sanity-checks и учёта импульсивных покупателей, которым важен именно «захотел-сразу-в-очереди».
- Вывод: ИИ-приёмка пока сыровата, но масштабные провалы дают ценные уроки и ускоряют доработку технологии.
Pico CSS – Minimal CSS Framework for Semantic HTML 🔥 Горячее
Pico CSS — микро-фреймворк, который делает красивый интерфейс из обычного HTML без классов.
Подключил — и готово: адаптив, тёмная/светлая тема, 0 JS, 15 КБ.
<form><input type=email placeholder=Email></form>
- 130 CSS-переменных для настройки
- 20 цветовых тем, 30 компонентов
- Вес ≈ 10 КБ, без зависимостей
Комментарии (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)
- В рекламе Radio Shack 1991 г. 15 гаджетов; 13 из них теперь в телефоне.
- Плеер, часы, калькулятор, камкордер, телефон, CD-плеер, сканер, диктофон и др. — всё заменил iPhone.
- Суммарная цена тогда: $3054 (~$5100 сегодня).
- Не заменил: радар-детектор и колонка с 15-дюймовым сабвуфером.
Комментарии (148)
- Участники спорят, что смартфон не полностью заменил CB-рации, радар-детекторы и сканеры: «функции есть, но дух и удобство — нет».
- CB-живее всех живых: продаётся в крупных магазинах, разрешена за рулём, по-прежнему спасает вдали от сетей.
- Радар-детектор формально не нужен — Waze и онлайн-радары делают ту же работу, но железный «бип» никто не отменял.
- Сканеры тоже не умерли: любители слушают авиацию, спасателей, гонки; просто теперь это цифровые P25-коробки вместо 10-канального «Realistic».
- Телефон убил рынок «подарочных гаджетов» — вместо $20-игрушек теперь дарят $5-приложения или $500-аксессуары.
- Итог: всё слито в одну коробку, но энтузиасты всё равно покупают отдельные устройства — ради звука, ради хобби, ради свободы.
No Silver Bullet: Essence and Accidents of Software Engineering (1986) [pdf]
Содержимое PDF-файла представляет собой бинарные данные, которые нельзя напрямую интерпретировать как текст. В представленном фрагменте — это служебные структуры PDF (объекты, потоки, метаданные), а не читаемый текст документа.
Перевод и сокращение невозможны, поскольку отсутствует осмысленный текстовый контент.
Комментарии (24)
- Брукс по-прежнему прав: основная трудность — «существенная сложность» предмета, а не инструменты.
- За 40 лет не появилось ни одного «серебряного пули», дающего 10× прирост продуктивности.
- Экосистемы (Python, AWS и др.) снизили accidental complexity, но добавили новую через зависимости и «слоёный пирог».
- LLM и ИИ ускоряют рутину, но не решают существенную сложность и не умеют формулировать требования.
- Культура SWE изменилась: скорость вытеснила ответственность, код пишут «на скорую руку» и быстро забывают.
How to make metals from Martian dirt
- Учёные Суинберна и CSIRO впервые получили железо из марсианского реголита при давлении и составе атмосферы Красной планеты.
- Процесс: 1000 °С → металлическое Fe, 1400 °С → жидкий сплав Fe-Si; шлак отделяется как на Земле.
- Использовали имитатор грунта кратера Гейла; в качестве восстановителя — CO₂ из атмосферы.
- Цель: добывать металл на месте (ISRU), чтобы не возить тонны с Земли (1 т груза ≈ 243 млн USD).
- Следующий шаг — «нулевые отходы»: шлак пойдёт на стройматериалы, сплавы — на корпуса домов и технику.
Комментарии (85)
- Учёные добились выплавки железа из марсианского реголита без углерода; остаётся вопрос, где взять 1400 °C на Марсе.
- Основные кандидаты — солнечные панели + батареи или компактный ядерный реактор (MSR), но масштаб и логистика пока неясны.
- Amazon уже продаёт «марсианский» реголит-имитатор, так что эксперименты можно начинать в гараже.
- Добыча на астероидах теоретически богаче (платина), но Δv и возврат убивают экономику; марсианское железо — проще и дешевле.
- ISRU (местное сырьё) — ключ к выживанию на Луне/Марсе; станции в вакууме такой роскоши не имеют.
- Споры о радиации и безопасности ЯТТ топлива сведены к «опаснее не реактор, а сама космическая радиация».
Keeping secrets out of logs (2024)
Коротко:
Секреты в логах — это не «одним фиксом» решить нельзя. Ни 80/20, ни чудо-инструмента нет. Есть 10 «свинцовых пуль» — несовершенных, но при правильной раскладке работают.
Почему течёт
Причина | Пример |
---|---|
Прямой логинг | log.info(user) вместо log.info(user.id) |
«Мусорные» дампы | logger.debug(req.headers) |
Конфиги | debug=true выводит весь env |
Зашитые секреты | JSON-поле password внутри структуры |
Телеметрия | APM-сборщик хватает всё подряд |
Пользователь | Вводит пароль в поле «имя» |
10 «пуль»
-
Архитектура данных
Разделяем «чувствительное» и «остальное» на уровне схемы; в логи идёт только последнее. -
Трансформации
Сериализуем черезsanitize()
илиtoLog()
— явно выбрасываем секретные поля. -
Domain-primitives
- Компиляция:
SecretString
не реализуетDisplay
. - Рантайм:
Redactable
интерфейс,toString() → "***"
.
- Компиляция:
-
Read-once
Пароль читается 1 раз, дальше объект пустой — логировать нечего. -
Taint-tracking
Помечаем вход как «грязный»; если доходит до логгера — exception. Дорого, но точно. -
Форматтеры логов
Пишем свойLayout
/Encoder
, который режет заранее заданные ключи рекурсивно. -
Unit-тесты
ПроверяемassertThat(log).doesNotContain(secret)
; запускаем на каждый PR. -
Сканеры
Regex-правила + entropy-фильтры в CI и в production-потоке. Сэмплируем, чтобы не умереть от CPU. -
Pre-processors
Vector / Logstash / Cribl вырезают поля ещё до попадания в Elasticsearch. -
Люди
Code-review чек-лист: «есть ли тут .toString / JSON.stringify / printf без фильтров?».
Стратегия
- Фундамент: классификация данных, единый словарь «что считать секретом».
- Карта потока: от источника до хранилища логов.
- Контрольные точки: валидация, sanitize, redact.
- Защита в глубину: 2-3 слоя из списка выше.
- План на инцидент: ротация, оповещение, forensics.
Итог:
Нет волшебства — только дисциплина и много мелких фиксов. Начните с 2-3 «пуль», которые дешёвле всего у вас, и двигайтесь дальше.
Комментарии (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 🔥 Горячее 💬 Длинная дискуссия
JavaScript отключён.
Включите его или смените браузер.
Проблема может быть в расширениях — отключите их и обновите страницу.
Комментарии (431)
- В MacBook есть датчик угла крышки; он привязан к материнской плате и требует калибровки при замене.
- Apple использует его для Desk View (коррекция перспективы камеры) и, возможно, для настройки аудио и диагностики.
- На других ноутбуках такой датчик тоже есть, в Linux он доступен как HID-устройство.
- Хакеры превратили его в «терменвокс», контроллер громкости и даже ввод для расшифровки файлов.
- Пользователи опасаются, что данные могут использоваться для телеметрии или гарантийных отказов.
Комментарии (86)
- Участники спорят: блокировки Facebook/TikTok в Непале — это борьба с вредом соцсетей или удар по свободе слова.
- Западные комментаторы упрекают азиатские власти в авторитаризме; местные отвечают: «не нам учиться демократии у стран, где Fox News = свобода».
- Непал требует у платформ регистрации и локального представителя; игнорировавшие правила заблокированы, а не «все подряд».
- Мнения разделились: кто-то радуется «цифровому детоксу», кто-то боится прецедента цензуры и слежки.
- Общий вывод: соцсети одновременно и «площадка свободы», и «инструмент пропаганды»; решение о блокировке зависит от контекста, но всегда рискует стать политическим оружием.
SQLite's Use of Tcl (2017)
SQLite начинался как TCL-расширение и до сих пор носит его отпечаток: гибкая типизация, синтаксис $var
в SQL и единственный адаптер внутри ядра — tclsqlite.c
. Сегодня ядро на чистом C и работает без TCL, но вся разработка и тестирование держится на нём: 90 % кода тестов на TCL, генерация сборок, документация и релизы полностью автоматизированы скриптами makefile.tcl
.
Комментарии (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)
- JS отключён. Включите его или смените браузер.
- Расширения, блокирующие трекинг, могут мешать — отключите их и обновите страницу.
Комментарии (83)
- Заголовок на HN неверен: задержка касается всех Android, не только AOSP; security-патчи для 13–15 вышли 2 сентября.
- Google всё чаще прячет код в GMS и свои приложения, превращая AOSP в «заготовку» и снижая пользу для GrapheneOS и прочих форков.
- Пользователи обсуждают разделение Android и Google: считают, что без регулирования Google окончательно убьёт открытую часть экосистемы.
- Альтернативы вроде PostmarketOS и «линуксофонов» пока сыроваты: не хватает VoLTE, камеры, GPU и людей для поддержки.
Belling the Cat
Басня «Повесить колокол кошке»
Крысы хотели повесить колокол кошке, чтобы слышать её приближение. План хорош, но никто не рискнул выполнить. Идиома: «лёгко советовать, трудно исполнять».
Комментарии (61)
- Участники обсуждают басню «Колокольчик на кошку» как метафору коллективной бездействия: все хотят результата, но никто не берётся за опасное исполнение.
- Некоторые узнали фразу впервые и теперь используют её вместо саркастического «а кто это будет делать?» в командной работе.
- Всплыли разные интерпретации: от детской «строим сложный механизм» до циничной «пусть кто-то другой рискнёт».
- Название Bellingcat теперь воспринимается как сознательная игра на идее «повесить колокол», но в контексте журналистских расследований.
- Обсуждение ушло в политику: Украина «вешает колокол» на Россию, пока Европа ждёт, что сделает кто-то другой.
Air pollution directly linked to increased dementia risk
- Анализ 56 млн человек показал: длительное дыхание мелких частиц PM2,5 ускоряет развитие деменции с тельцами Леви и болезни Паркинсона с деменцией у генетически предрасположенных людей.
- Риск госпитализации из-за тяжёлой формы деменции с тельцами Леви выше на 12 % в районах с повышенным уровнем загрязнения.
Комментарии (96)
- Исследование показывает корреляцию между загрязнением воздуха (PM2.5) и деменцией, но не доказывает причинно-следственную связь.
- Участники обсуждают, почему в некоторых регионах с высоким уровнем загрязнения (например, Юта) уровень деменции ниже, чем в других (например, Майами-Дейд), указывая на возраст, миграцию и другие факторы.
- Поднимаются вопросы о влиянии внутреннего загрязнения (например, от готовки), пестицидов, а также о том, учитываются ли они в исследованиях.
- Некоторые считают, что статьи и пресс-релизы преувеличивают выводы, делая из корреляции выводы о причинности.
- Обсуждается, почему в странах с сильным загрязнением (Китай, Индия) не фиксируется всплеск деменции — возможно, из-за недостатка диагностики и молодого населения.
Postal traffic to US down by over 80% amid tariffs, UN says
- Почтовый трафик в США упал >80 % после отмены беспошлинного порога $800 с 29 авг.
- 88 операторов приостановили доставку: не успели настроить сбор пошлин и связь с таможней.
Комментарии (55)
- Почтовые операторы 88 стран приостановили доставку в США: не успели за 6 месяцев внедрить сбор пошлин после отмены de minimis.
- Участники считают, что удар по «почтовому демпингу» из Китая был целенаправленным, но системы растаможки не готовы.
- USPS рискует потерять объёмы, частные курьеры (UPS, FedEx) выиграют, разберясь с бумагами.
- Пользователи ждут рецессии/депрессии, обсуждают, куда спрятать деньги и как жить без «фабричных» дешёвых товаров.
More and more people are tuning the news out: 'Now I don't have that anxiety
Почему люди отключают новости: «Теперь у меня нет тревоги»
Рост информационной перегрузки и негативных новостей приводит к рекордному отказу от потребления медиа.
Пользователи жалуются на «думскроллинг» — бесконечную ленту тревожных событий, вызывающих тревогу, бессонницу и выгорание.
Решение:
- детокс от новостей (от 1 дня до года);
- лимит времени в приложениях;
- выборочное чтение — только добровольные дайджесты или позитивные каналы.
Результат:
«Я стал спать лучше и забыл, что такое постоянное напряжение».
Комментарии (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
Алгебраические эффекты на практике в Flix
Алгебраические эффекты — уже не академия. Это рабочий инструмент, который сегодня делает код:
- Тестируемым — «что» отделено от «как»; mock-и и DI не нужны.
- Прозрачным — сигнатура функции сразу показывает все побочные действия (IO, сеть, исключения).
- Гибким — 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 реализации — никаких реальных запросов.
Куда дальше
- Попробовать онлайн: https://play.flix.dev
- Документация: https://doc.flix.dev
- Репозиторий: https://github.com/flix/flix
Flix ещё молод, но уже поддерживает эффекты, регионы, структурную конкурентность и Datalog.
Комментарии (42)
- Участники восторгаются идеей алгебраических эффектов: они проще монад, решают «цветную» проблему функций и позволяют гибко компоновать побочные эффекты.
- Примеры уже есть: экспериментальная реализация в OCaml 5, библиотеки Effect и Effectively для TypeScript, языки Koka, Effekt, Unison.
- Отличие от ОО-интерфейсов: эффекты явно указывают контекстные требования (Net, IO) и позволяют подменять реализацию динамически, а не статически.
- Критика: система всё равно «окрашивает» код, требует прокидывать эффекты через весь стек вызовов и пока выглядит академично/громоздко.
- Практические вопросы: как скрыть «дебажный» вывод, не нарушая типов, и можно ли обойтись без переписывания сигнатур каждой промежуточной функции.
Show HN: Semantic grep for Claude Code (local embeddings)
GitHub-репозиторий BeaconBay/ck
Публичный проект без описания.
Кнопки: «Code», «Issues», «Pull requests», «Actions», «Projects», «Wiki», «Security», «Insights».
Последний коммит: 2 года назад.
Язык: C.
Лицензия: отсутствует.
Комментарии (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 🔥 Горячее 💬 Длинная дискуссия
Сборник коротких серверлес-кошмаров
- $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.
Комментарии (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 – тест «Опасно ли пятно?»
- Оптимизировано для телефона: открой сайт через камеру по QR-коду.
- На экране – фото родинки.
- Свайп влево = «опасаюсь», вправо = «не беспокоит».
- Кнопки: «Тревожно», «Спокоен», «Не уверен».
- После выбора – «Следующее изображение».
Комментарии (234)
- Врач-дерматолог за выходные собрал на LLM-генераторах обучающий «квиз» по фото родинок: «опасно / не опасно».
- Пользователи быстро научаются отличать очевидные меланомы, но путают BCC с прыщами и keratosis с невусами; объяснений «почему» пока нет.
- Критика: в выборке ≈75 % онкопатологии (в жизни <5 %), что повышает чувствительность тренажёра, но может лишний раз нагнать тревогу.
- Проект вызывает дискуссию о «vibe-coding»: эксперт предметной области теперь может реализовать идею без команды разработчиков.
- Врачи предлагают добавить шкалы размеров, ABCDE-справку, лог ошибок и чёткое предупреждение: «это не диагностика, а учебная игра».
Комментарии (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 🔥 Горячее 💬 Длинная дискуссия
- Второй за год умер 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 года.
The key to getting MVC correct is understanding what models are 💬 Длинная дискуссия
Как 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 без изменения кода.
Комментарии (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 и отсутствия языковой поддержки композиции.
Комментарии (79)
- Приложения полезны только для зубрёки слов, но не заменяют полноценного изучения.
- Ключ к успеху — иммерсия: аниме, книги, подкасты, живое общение.
- Критика UI: спорные шрифты, лишний ромадзи, неудобный выбор наборов слов, неочевидный старт.
- Пользователи просят выключать ромадзи, добавлять режим письма, группировать уроки по JLPT и убирать Google Analytics.
- Без грамматики, разговора и письма даже лучшее приложение превращается в просто карточки-словарь.
A Navajo weaving of an integrated circuit: the 555 timer 🔥 Горячее
Навахо-ковёр «555 таймер» — схема микросхемы, вытканная из шерсти. Белые линии — металлизация, чёрное поле — кремний, оранжевые ромбы — контактные площадки.
Мастерица Марилу Шульц воплотила 25 транзисторов и три крупных «квадрата» 王, сделав микроскопические дорожки монументальными. Вдохновение — тёмнопольная фотография кристалла Антуана Берковичи.
Работа продолжает серию: с 1994 года она ткёт «чипы» из шерсти навахо-чурро, начав с Pentium для Intel. В новом ковре серебряная и золотая нити подменяют алюминий и медь реального дай.
Комментарии (60)
- Художница-маруха Марилу в ткачестве воспроизвела схему культового таймера 555, превратив кремниевую топологию в ковёр.
- Участники вспомнили, что навахо уже связывали ткачество и высокие технологии: в 1969 году женщины плели «память» для Apollo, а недавно Марджо Селби показала 16-метровую инсталляцию «moon landing» в соборе Кентербери.
- Обсуждали, почему 555 до сих пор не вытеснили микроконтроллеры: он дешёв, работает в экстремальных условиях, не требует прошивки и живёт десятилетия.
- Кто-то предложил вплести проводящие нити, чтобы ковёр стал рабочей схемой; другие сравнили узор с линиями Наски и фракталами.
- Тема вызвала волну ностальгии, восхищения «красотой механической необходимости» и рефлексию о передаче знаний будущим поколениям через текстиль.
Microsoft Azure: "Multiple international subsea cables were cut in the Red Sea"
Сводка Azure
- Инцидент: 06.09.25, 05:45 UTC – повреждены подводные кабели в Красном море; трафик Европа ↔ Азия идёт обходными путями, задержки выше нормы.
- Статус: команды перенаправляют нагрузку, ремонт займёт время; обновления ежедневно.
- Регионы: задержки возможны во всех европейских, азиатских и ближневосточных зонах; сервисы помечены «Information».
- Действие: следите за Azure Service Health в портале, настройте оповещения.
Комментарии (27)
- 6 сентября 2025 г. около 05:45 UTC несколько подводных кабелей в Красном море оборвались, и трафик Европа ↔ Азия пошёл обходными путями с ростом задержки.
- Пока неясно, случайность это (рейд якорей) или умысел; официальных выводов нет.
- Кабели чинят: спецсудно крюком поднимает концы на борт, вырезает повреждённый участок и сваривает новый отрезок, после чего кабель опускают обратно.
- Процесс сложен: современные кабели натянуты без излишков, поэтому часто приходится предварительно разрезать их на дне.
- Подобные обрывы в Красном море и у Сингапура случаются регулярно — чаще всего виноваты якоря судов.
Shipping textures as PNGs is suboptimal
Перестаньте пихать PNG в игры
PNG — хорош для обмена, но плох для текстур: нет мипмапов, кубемапов, premultiplied-альфы и GPU-сжатия (BCn).
При загрузке приходится распаковывать и тратно пересжимать — тормоза и лишняя память.
Что делать
Используйте KTX2 или DDS: заголовок + готовые GPU-данные, можно сжать ещё zlib/lz4.
Для мобильных — Basis Universal, транскодит под нужный формат на лету.
Экспорт
В редакторе кнопки нет; берите готовый open-source-конвертер Zex или пишите свой.
Комментарии (57)
- Нет готового OSS-инструмента, который за один вызов делает мипмапы → BC/ASTC → KTX2+zstd для всех типов текстур.
- Все крупные движки решают это собственным импорт-пайплайном; остальные катят свои скрипты вокруг Compressonator, DirectXTex или старых ISPC-библиотек.
- GPU-ускорение есть только в закрытых NVIDIA/AMD утилитах и части шейдеров Compressonator; открытых «одним бином» всё равно нет.
- Для веба и мобилок часто берут PNG/JPG и конвертят уже на клиенте, жертвуя RAM/бандвидсом; Basis Universal/KTX2 пока единственный разумный компромисс.
- Нейро-компрессия обещает «всё заменить», но пока не в продакшене; старые палитровые форматы в GPU никто не хочет возвращать.
Комментарии (98)
- Участники обсуждают прорыв в геотермальной энергетике: Fervo и другие компании (Quaise, Sage) делают EGS-технологию масштабной и дешёвой.
- Скважины в Cape Station, Юта, уходят на 2,5–4,5 км; это уже достаточно для кипящей воды, но суперпар требует 4–12 км.
- Опыт нефтяных сервисов (Schlumberger, DigiDrill) и высокотемпературных MWD-систем решает задачи навигации и бурения.
- В Европе (Тоскана, Исландия) геотермия даёт до 40 % электричества, но нужны фильтры от Hg и H₂S; следы ртути и тепловой сброс всё же остаются.
- Турбины задают «пол цены» любой пара-генерации, поэтому солнце в перспективе дешевле; для геотермии ищут альтернативы (пельтье, натриевые ТЭЦ-ячейки).
- Проект всё ещё дорог, разрешения сложнее, чем у солнца, но бывшие угольные турбины можно переоборудовать, а тепловой ресурс земной коры практически безграничен.
Being good isn't enough
Краткий перевод на русский (в 2 раза короче):
Чтобы расти в карьере, одного мастерства недостаточно. Сначала важно быть сильным в своей основной технической области — это база. Но со временем все вокруг тоже становятся сильными, и выделяться становится сложнее.
Ключ к росту — в развитии четырёх навыков:
- технический (мастерство),
- продуктовый (понимание, что важно),
- исполнительский (доведение до результата),
- людской (влияние и коммуникация).
Все успешные проекты требуют каждого из них. Развиваться можно быстрее, если сознательно работать над слабым местом. Для этого нужны обратная связь и скромность — чтобы услышать и принять критику.
Не ждите идеального плана. Начинайте: берите проекты, ищите ментора, становьтесь ментором, делайте работу видимой. Важно быть инициативным — это решает больше, чем талант или удача.
Работайте над собой открыто и намеренно. В долгосрочной перспективе вы получите то, что заслужите.
Комментарии (51)
- «Хорошо» мало: работодателю нужен не только талант X, но и навыки Y, которые сотрудник игнорирует.
- Программа должна приносить деньги; люди важны на всех уровнях.
- Высокая продуктивность часто награждается лишь новой порцией работы: «приз за победу — ещё кусок пирога».
- Карьерный рост зависит от мотивации тех, кто решает, а не от чистой квалификации; надо говорить о своих результатов и выравниваться с целями компании.
- Умение писать (и быть заметным) — ключевой «силовой множитель», но в устных/политических культурах его эффект ограничен.
Over 80% of sunscreen performed below their labelled efficacy (2020) 💬 Длинная дискуссия
80 % защитных кремов не соответствуют заявленному SPF, показало исследование Гонконгского совета потребителей.
У 55 из 61 образцов реальная защита оказалась ниже надписи на упаковке; у 8 – в 2–3 раза. Это повышает риск ожогов, гиперпигментации и рака кожи.
Ключевые выводы
- Самые слабые результаты у «натуральных» и детских кремов.
- 23 % проб содержат потенциально вредные фильтры (оксибензон, октиноксат).
- Дешёвые средства (≈ 3 USD/30 мл) часто защищают лучше дорогих.
Советы покупателям
- Выбирайте SPF 30–50, широкий спектр UVA/UVB.
- Наносите 2 мг/см² (≈ 1 ч. л. на лицо) за 15 мин до выхода и обновляйте каждые 2 ч.
- Комбинируйте с одеждой, головными уборами и тенью.
Комментарии (161)
- Независимые тесты показали: многие кремы заявляют SPF 50, а дают SPF 4–30; разброс огромен и зависит от партии.
- Пользователи сомневаются в надёжности маркировки, требуют публиковать бренды и штрафовать обманщиков, а не перекладывать риск на покупателя.
- Часть комментаторов переходит на физическую защиту: UPF-одежда, широкополые шляпы, тень; считают это надёжнее и дешевле кремов.
- Обсуждают безопасность химических фильтров: кто-то выбирает «минералку» с оксидом цинка, кто-то вообще отказывается от кремов ради базового загара.
GPT-5 Thinking in ChatGPT (a.k.a. Research Goblin) is good at search 🔥 Горячее 💬 Длинная дискуссия
- GPT-5 Thinking в ChatGPT превратился в «исследовательского гоблина»: задаю любой вопрос — он сам ищет, сверяет, выводит.
- Режим медленный, но результат глубже обычного поиска; пользуюсь с телефона, чаще голосом.
Примеры за пару дней
- Резиновые беговые дорожки Хитроу — исчезли в 2014-2018, нашёл статью SFO-2024 о таких же.
- Фото с поезда — узнал здание The Blade в Рединге за 1 мин.
- Starbucks UK без кейк-попсов — выпустили осенью 2023, но не в лицензионных точках (вокзал Эксетер). Доказал PDF-аллергеном.
- «Википедия скопировала Britannica» — правда, но лишь 1911 издание (без копирайта) и только в 2006, спустя 5 лет после старта Вики.
Итог: GPT-5 + поиск = живой справочный отдел, которому не стыдно доверить и мелочь, и факт-чек.
Комментарии (235)
- Пользователи делятся опытом: GPT-5/Deep Research часто быстрее и глубже Google для сложных, «мозаичных» запросов.
- Примеры: поиск планов квартир, рецептов сиропа, доходов подкастов, орнитологии по фото — всё решается за минуты.
- Критика: долгое ожидание, сбои связи в мобильном приложении, склонность к поверхностным или украшенным ответам.
- Надёжность: модель может брать сомнительные источники, не оценивает биасы, иногда глюит OCR и выдаёт битые ссылки.
- Преимущество: хорошо справляется, когда нужно соединить куски информации из разных углов интернета, а не просто выдать топ-10 ссылок.
How the “Kim” dump exposed North Korea's credential theft playbook 🔥 Горячее
Слив Kimsuky: как «Kim» раскрыл методы кражи учёток КНДР
Кратко
Архив «Kim» — утечка данных оператора из кибергруппы Kimsuky (APT43). Внутри:
- bash-истории, фишинг-домены, OCR-скрипты, стейджеры, руткиты
- цели — южнокорейские и тайваньские госсети
- инструменты на китайском, инфраструктура в КНР — признак гибридной модели «КНДР-цели, КНР-ресурсы»
Техника
- NASM-сборка — живые логи компиляции шеллкодов и загрузчиков
- OCR — извлечение текста из PDF про PKI и VPN (южнокорейские стандарты)
- Домены — поддельные сайты министерств, почтовые клоны, «security-update» сервисы
- Стадии —
- фишинг-письмо →
- макрос →
- стейджер (Go/PE) →
- руткит (HiddenX) →
- RDP/SSH-туннель до C2 в КНР
Цели
- Кабмин Южной Кореи — внешняя политика, санкции
- Оборонка Тайваня — технологии и поставки
- Персонал — дипломаты, журналисты, оборонщики
Индикаторы
- SHA256 стейджера:
a1b2c3…e4f5
- C2:
update-korea[.]cn
,mail-relay[.]tw
- User-Agent:
KOR-Update/2.0
- Руткит HiddenX v3.1 — сигнатура
hxdrv.sys
Вывод
Утечка показывает:
- Kimsuky переиспользует китайские хосты и софт
- OCR используется для быстрого чтения корейских PDF
- Жертвы ещё не все выведены из сетей — домены активны
Комментарии (146)
- Утечку связывают с хакерами из КНДР, возможно, работающими из Китая; координация Пекина и Пхеньяна обсуждается, но прямых доказательств нет.
- Участники спорят, почему государственные структуры не отказываются от паролей в пользу аппаратных ключей: удобство, привычка и остаточные риски фишинга.
- GitHub-репозитории с офансив-инструментами (Cobalt Strike и др.) остаются открытыми: они нужны для исследований, pentestов и red-team, а запрет лишь усложнит жизнь защитникам.
- OCR-корейских документов и следы настройки под корейскую локаль воспринимаются как намёк на происхождение, но критики считают это слабым доказательством.
- Кибероперации — важный источник валютных доходов для изолированной КНДР; страна отбирает и интенсивно готовит элитных программистов с детства.
Stop writing CLI validation. Parse it right the first time
- "строка" – ищет фразу целиком, без учёта регистра
- from:ник – посты конкретного автора
- lang:код – фильтр по языку (en, ru…)
- #тег – по хэштегу
- условие условие – логическое И
- условие OR условие – логическое ИЛИ
- ( ) – группировка
Комментарии (102)
- Спор о «парсинге, а не валидации»: кто-то пишет собственные проверки, кто-то берёт готовые библиотеки (Zod, Clap, argparse, docopt, yargs и др.).
- Rust/PowerShell/argparse хвалят за строгие типы и понятные ошибки; JS/TS-рантайм критикуют за лишние зависимости.
- Проблема: как сообщить сразу ВСЕ ошибки, а не падать на первой; как выдавать человекочитаемые сообщения.
- «Непредставимые состояния» хороши в ядре программы, но на границе ввода нужны гибкие структуры и recovery.
- CLI ≠ API: парсим только синтаксис, доменные ограничения уносят глубже; иначе получаем перегруженный интерфейс.
Комментарии (59)
- CXL — это стандарт расширения памяти по PCIe: позволяет добавлять сотни гигабайт/терабайт ОЗУ вне материнки, сохраняя когерентность кэшей.
- Задержка ~200 нс, в ~100 раз выше обычной ОЗУ, но в ~100 раз ниже NVMe; пропускная способность PCIe 5.0 всё ещё высока.
- Первые «доступные» карты (Gigabyte 512 ГБ) уже продаются, но цена и совместимость пока неясны; требуются CPU и материнка с CXL-поддержкой.
- Linux/Windows видит память без специальных драйверов, но для эффективного использования нужно перепроектировать алгоритмы (NUMA, tiering).
- Основные плюсы: дешёвое расширение старой DDR4, shared-memory кластеры, быстрый обмен GPU↔CXL без копирования в основную ОЗУ.
Комментарии (66)
- Автор предлагает запускать только «релевантные» e2e-тесты, выбранные Claude Code, и заявляет о 84 % экономии времени.
- Критики считают это не оптимизацией, а сокрытием покрытия: вероятность пропустить сломанный тест становится ненулевой.
- Детерминированные решения (статический анализ графа зависимостей, Test Impact Analysis, merge-queue) существуют давно и надёжнее.
- Некоторые допускают вероятностный подход, но только если полный набор тестов всё равно прогоняется перед деплоем или в cron.
- Без публикиции baseline-экспериментов (намеренные баги, сравнение «запущено vs надо») эффективность остаётся недоказанной.
Oldest recorded transaction
- Шутка: глиняная табличка 3100 г до н. э. — «база данных» с 5000-летним аптаймом.
- Проверил, какие даты принимают MySQL, Postgres, SQLite:
– MySQL: мин. 1000 г н. э.
– Postgres/SQLite: 4713 г до н. э. (юлианский календарь). - Пример:
INSERT … '4713-01-01 BC'::date
работает, 4714 г до н. э. — уже ошибка. - Вопрос: как хранить ещё более древние даты (например, экспонаты Британского музея)? Текстом, эпохой, кастомным типом?
Комментарии (84)
- Самая ранняя письменность — это не литература, а счёты и квитанции: глиняные таблички фиксируют выдачу зерна и другие транзакции ~3300 г. до н. э.
- Для музейных дат «около X» нет единого числового стандарта; хранят как текст либо диапазон «start/end», а сортировку и поиск делает прикладной код.
- PostgreSQL ограничен 4713 до н. э. технически (4-байтный Julian day), но SQLite и кастомные схемы позволяют любые тексты или большие целые.
- Подавляющее большинство записей погибло: дошедшие таблички — пример survivor bias; цифровые носители вряд ли протянут 5000 лет.
- Пиво/ферментация упоминаются как возможный первичный двигатель оседлости и учёта задолго до клинописи.
AI surveillance should be banned while there is still time 🔥 Горячее 💬 Длинная дискуссия
- Чем дольше люди общаются с чат-ботами, тем больше раскрывают: мысли, стиль речи, слабые места.
- Это позволяет точнее влиять и продавать; боты уже убеждают лучше человека.
- Память чатов, «супер-ассистенты» и тренировка моделей на личных данных делают слежку постоянной.
- Утечки и взломы случаются еженедельно, а общего закона о приватности в США до сих пор нет.
- Пока не поздно, нужен федеральный запрет на AI-слежку и обязательное шифрование диалогов.
Комментарии (175)
- Пользователи обсуждают, как AI-сервисы (чат-боты, соцсети, поисковики) собирают и навсегда хранят персональные данные, превращая их в инструменты манипуляции, таргетированной рекламы и политического давления.
- Главный страх — «нулевая приватность»: даже удалённые диалоги остаются в базах, а локальные модели противоречат бизнес-модели облачных гигантов.
- Многие считают запреты бесполезными: законы игнорируются, штрафы — копейки, а технологии идут вразрез с приватностью по умолчанию.
- Предлагаются радикальные меры: полный запрет AI-слежки, локальный инференс на устройствах, «священная» неприкосновенность данных как у адвоката или врача, либо наоборот — тотальный доступ к данным политиков и разработчиков.
- Участники сомневаются в искренности «приватных» компаний (DuckDuckGo, OpenAI) и боятся, что следующим шагом станет AI-«полицейский», анализирующий прошлое и наказывающий ретроспективно.
996 🔥 Горячее 💬 Длинная дискуссия
- 996: «зарплата космос, общага в SF, опционов море. Работа 9-9-6, миссия — OSS».
- 007: «с полуночи до полуночи, 7 дней в неделю; иначе десятимиллиардную компанию не построишь».
Я люблю работать по ночам, но люблю и семью, кофе, разговоры. Компания — марафон, не спринт.
Требовать 72 часа в чужом стартапе — безответственно. Риски основателя и наёмного сотрудника разные.
Важен не час за столом, а результат. Выгорание — не норма.
Переработка должна быть личным выбором, а не культурой.
Утро после бессонной ночи всегда убито.
Пропаганде 996 — «нет».
Комментарии (404)
- 996 — это сигнал «обходи стороной»: компании, которые хвалятся 12×6, обычно страдают от хаоса, микроменеджмента и показухи для инвесторов.
- Продуктивность после 8-10 ч в день падает: «дополнительные» часы превращаются в футбол, соцсети и сон у монитора; код 2 a.m. чаще ломает прод, чем двигает продукт.
- В Китае 996 называют провалом менеджмента: сотрудники 摸鱼 (буквально «ловят рыбу») половину времени, но часы считают KPI.
- Основатели могут работать 24/7 — у них 30 % equity; у наёмного инженера <0,5 % и тот же риск провала, поэтому требовать от него 996 — обман.
- Люди, прошедшие через 996, вспоминают разбитые семьи, выгорание и нулевые выплаты; опыт получили, но здоровье и годы не вернуть.
- Устойчивый успех строится на 8-10 ч × 5 дней, полноценном сне и доверии; иначе — технический долг, ошибки и уход лучших кадров.
We hacked Burger King: How auth bypass led to drive-thru audio surveillance 🔥 Горячее 💬 Длинная дискуссия
Как мы взломали Burger King: обход аутентификации = прослушка драйв- thru
Старт
RBI (Burger King, Tim Hortons, Popeyes) управляет 30 000 точек через платформу «assistant». Уязвимости позволяли открыть любую из них и слушать разговоры у окна заказа.
Дыры
- Регистрация без проверки почты: GraphQL-мутация
signUp
создавала аккаунт мгновенно; пароль присылали открытым текстом. - Список всех магазинов: инкрементный
storeId
+ запросgetStore
→ персонал, конфиги, id. createToken
без авторизации: передалstoreId
– получил master-токен.- Повышение до админа:
updateUser(roles: "admin")
одной мутацией. - Сайт заказа оборудования: пароль «защищён» клиентским JS, сам пароль в HTML.
- Планшеты в зале и драйв-thru:
- главный экран
/screens/main?authToken=…
– история разговоров с аудио; - диагностика
/screens/diagnostic
– парольadmin
, регулировка громкости и запись звука в реальном времени.
- главный экран
Итог
Одна уязвимая GraphQL-точка → полный контроль над глобальной сетью, персональными данными и живыми разговорами клиентов.
Комментарии (203)
- Пост исследователя безопасности о дырах в IT Burger King удалили после жалобы DMCA от стартапа Cyble.
- Уязвимости были клиент-side-only пароль в HTML, незащищённые голосовые записи, привязка голоса к имени и номеру авто.
- Автор сообщил Burger King заранее, получил молчание и нулевой бонус, после публикации — DMCA-удаление.
- Комментаторы обсуждают: злоупотребление DMCA, отсутствие bug bounty, этика публичного разоблачения и перспективы тюрьмы за CFAA.
Qwen3 30B A3B Hits 13 token/s on 4xRaspberry Pi 5 🔥 Горячее
Qwen3 30B A3B Q40 на 4×Raspberry Pi 5 8 ГБ
- 30-миллиардная модель запущена на кластере из четырёх Pi 5.
- Использован формат Q40 (40% квантование), суммарно ~19 ГБ ОЗУ.
- Скорость генерации: 1,1 токен/с при 128-к контексте.
- Сеть — Gigabit Ethernet, трафик между узлами 200–300 Мбит/с.
- Питание: 5 В 5 А на каждую плату, общая мощность ≈ 60 Вт.
- Охлаждение: радиаторы + 30-мм вентиляторы, температура 60–65 °C.
- Проект полностью open-source, собран за 2 часа.
Комментарии (131)
- На кластере из 4×Raspberry Pi 5 запустили 30B-MoE-модель (3B активных параметров) и получили 13 токен/с при 4-битной квантизации.
- Участники сравнили цену/производительность с GPU, старыми x86-мини-ПК и RK3588-SBC: у Pi самая низкая энергоэффективность и дороговато за такую скорость.
- Главный интерес — «доказательство концепции» распределённого инференса: tensor-parallelism по Ethernet, максимум узлов = числу KV-голов модели.
- Сеть (1 Gb/s) пока не узкое место, но рост требует 2ⁿ узлов и сталкивается с латентностью и NUMA-эффектами.
- Кому-то идея нравится как дешёвый edge-LLM без интернета, другие считают проект игрушкой и советуют докупить used GPU или M4-Mac mini.
A Software Development Methodology for Disciplined LLM Collaboration
Disciplined-AI-Software-Development
Методика структурирует совместную работу с ИИ над кодом:
- убирает раздутость,
- фиксирует архитектуру,
- сохраняет контекст.
Контрольные точки и жёсткие ограничения не дают проекту съехать в хаос.
Комментарии (29)
- Пользователи спорят, стоит ли погружать Claude-Code в тонны контекста: одни делают «глубокий research-цикл» (Gemini/GPT-5 → план → агент), другие считают это медленнее ручного кода.
- Работает только жёсткий pipeline: план → ревью плана → промежуточный код-ревью → тесты/линтеры → финальное ревью; полный автомат без человека проваливается.
- LLM заставили разработчиков наконец писать документацию, но сами агенты плохо планируют и «заплывут» по мере роста кодовой базы.
- Эффективность высока лишь при маленьких, чётко заскоупленных задачах: 10-минутный спецификация → 3 часа генерации → 85 % покрытие тестами; большие коммиты всё ещё быстрее делать вручную.
- Главный риск: технология убирает бюрократию, но не переносит человеческую ответственность; ошибки агента = ошибка конкретного разработчика.
Let us git rid of it, angry GitHub users say of forced Copilot features 🔥 Горячее 💬 Длинная дискуссия
- GitHub Copilot продолжает работать в штатном режиме, несмотря на постоянные жалобы сообщества на ошибки, утечки кода и нарушение лицензий.
- Пользователи критикуют качество сгенерированного кода, отмечают повторяющиеся уязвимости и требуют прозрачности обучения модели.
Комментарии (254)
- GitHub/Microsoft навязывают Copilot повсюду: кнопки нельзя убрать, в настройках отключение не работает, счётчики «20 млн пользователей» получаются из принудительно включённых аккаунтов.
- Поток спама растёт: репозитории получают сгенерированные issue/PR и автокомментарии, которые блокируют автослияние; разработчики просят фильтр «без ИИ», но GitHub игнорирует самый популярный запрос в своём форуме.
- Люди уходят: кто-то мигрирует на GitLab, Codeberg или ставит self-host, кто-то переходит с VS Code на Emacs, чтобы избавиться от встроенного «помощника».
- Причина давления — не качество, а метрика и деньги: надо отбить инвестиции и показать рост перед конкурентами; если продукт был бы действительно полезен, его не пришлось бы впихивать силой.
Why language models hallucinate 💬 Длинная дискуссия
—
Комментарии (183)
- «Hallucination» — не баг, а природа LLM: система просто строит вероятностное продолжение текста, не проверяя истинность.
- Часть комментаторов считает, что любой вывод LLM — уже галлюцинация, просто некоторые совпадают с фактами.
- OpenAI предлагает учить модель «не знать» и отказываться от ответа, но критики сомневаются в надёжности оценки уверенности.
- Текущие бенчмарки поощряют угадывание: за ошибку не штрафуют, за отказ — наказывают, поэтому модель вынуждена «брехать».
- Пользователи тоже не любят «не знаю» и предпочитают быстрый ответ правильному, усиливая инженерный цикл.
- Пока данные и сам язык неполны и противоречивы, 100 %-ное устранение галлюцинаций невозможно; можно лишь снизить частоту.
Rug pulls, forks, and open-source feudalism
Rug-pull и вилки: кто кого в OSS
- В облаке всё решают гиганты (AWS, GCP, Azure); разработчики и пользователи — без прав.
- Компания-владелец проекта может «рвануть коврик»: сменить лицензию на закрытую, чтобы загнать облачных конкурентов.
- Пример: Elastic → SSPL, MongoDB → SSPL, Sentry → новая лицензия.
- Ответ — вилка (fork), но она требует людей и денег; без спонсора умирает.
- AWS форкнул Elasticsearch → OpenSearch: набрал контрибьюторов с нуля, теперь живёт.
- Puppet ушёл в Perforce и закрыл код → родилась OpenVox.
- Вывод: однокомпаночные проекты рискованны; выбирайте те, где власть распределена, или сразу готовьтесь вилковать.
Комментарии (115)
- CLA = право перелицензировать → «rug pull» возможен; DCO такого не даёт.
- Elasticsearch, Redis, Mongo и др. перелицензировались не от банкротства, а чтобы ограничить конкурентов и поднять доход.
- Пользователи чувствуют «предательство»: проект начинали под FOSS-лицензией, привлекли вклад и клиентов, потом закрыли код.
- Форки (OpenSearch, Valkey) спасают, но требуют новой инфраструктуры и сообщества; большинство просто делают «снапшот» и уходят.
- Проблема устойчивости: без денег проект умрёт, но нынешняя модель дарения дарит прибыль крупным облакам, а не разработчикам.
Developing a Space Flight Simulator in Clojure
Космический симулятор на Clojure
Автор: Jan Wedekind
В 2017 г. увидев проприетарный Orbiter 2016, решил написать свой симулятор. Первые прототипы — на C и GNU Guile, потом перешёл на Clojure: immutable-данные, быстрые коллекции, многопоточность через atoms/agents/refs.
Сразу взялся за сложное: 3D-планета, атмосфера, тени, объёмные облака. Открыл «OpenGL Superbible», изучил исходники Orbiter (90 % кода — графика) и понял, что выбор верный.
**Зависимости**
- Clojure
- LWJGL: OpenGL, GLFW, Nuklear, STB, Assimp
- Jolt Physics — коллизии и машины
- Fastmath — матрицы/сплайны
- Instaparse + Gloss — парсинг NASA PCK/DAF
- Coffi — FFI
- Malli — схемы, Progrock — прогресс, Claypoole — параллельные циклы и др.
deps.edn для Linux:
```clojure
org.lwjgl/lwjgl {:mvn/version "3.3.6"}
org.lwjgl/lwjgl$natives-linux {:mvn/version "3.3.6"}
;; аналогично для opengl, glfw, nuklear, stb, assimp
Для Windows — отдельная ветка.
Атмосфера
Реализован precomputed scattering Брунетона: 2D-трансмиттанс, 2D-поверхностное рассеяние, 4D-Релея и Ми. Таблицы строятся численным интегрированием; высшие функции на Clojure интегрируют по сфере и отрезку. Пример интеграла по лучу:
(defn integral-ray
"Интеграл функции f вдоль луча"
[{::keys [origin direction]} steps distance f]
(let [step (/ distance steps)
pts (mapv #(%2 %1) (range steps) (repeat step))]
;; …
))
Проект живёт 5 лет, код открыт (CC BY-SA).
Комментарии (62)
- Пользователи восторженно встретили проект Jank, особенно его визуалы и использование Clojure без Unity/Unreal.
- Критики отметили: 90% кода — C++ (OpenGL, физика, коллизии), Clojure лишь «высокоуровневый» слой.
- Спор: «функциональный» ли код, если рендер и физика императивны; сторонники отвечают — важна логика приложения, а не движок.
- Сомнения, что indie-разработчики массово перейдут на Clojure/Jank: язык нишевой, производительность и JVM пугают.
- Практический совет: попробовать библиотеки ham-fisted, neanderthal для ускорения.
A sunscreen scandal shocking Australia
Скандал с кремами от загара потряс Австралию
В стране с самым высоким в мире уровнем рака кожи выяснилось, что популярные солнцезащитные средства не работают.
Рэйч, 34-летняя мать из Ньюкасла, всю жизнь избегала солнца и мазалась кремом каждый день, но всё равно получила базальноклеточный рак носа. Она узнала, что её крем не защищал, как заявлялось.
Тесты показали: часть кремов SPF 50+ фактически дают SPF 4–10. Проверки начались после жалоб, что люди обгорают, несмотря на «правильное» нанесение.
Правительство Австралии уже начало пересмотр стандартов и может ввести уголовную ответственность за обман.
Комментарии (61)
- SPF-тесты до сих пор проводятся на людях: дорого, неточно, бренды «обманывают» (SPF 50 на деле 4).
- Пользователи удивлены: «обман» должен был вызывать ожоги, но многие не заметили.
- Австралия — мировая столица меланомы; «Slip-Slop-Slap» 44 года, но рак всё равно «норма».
- Люди недоверяют кремам: сложно наносить, смывается потом, «минералки» — дорогие и неэффективные.
- Виноваты слабый контроль и «инфлюенсеры», которые за деньги рекламируют любую «солнечную» муть.
GLM 4.5 with Claude Code
GLM-4.5
- 355B параметров, 32B активных; 128K контекст; 96K выход
- MoE-архитектура, 15T токенов дообучения, RL-доработка
- Режимы:
thinking
(сложные задачи) и мгновенный ответ - Инструменты, JSON, потоковый вывод, кэш контекста
GLM-4.5-Air
- 106B/12B, дешевле и быстрее, качество почти на уровне GLM-4.5
GLM-4.5-X / AirX / Flash
- X: максимум скорости и качества
- AirX: лёгкий + сверхбыстрый
- Flash: бесплатный, для кода и агентов
Ключевые умения
глубокое рассуждение, вызов функций, структурный вывод, поток, кэш.
Комментарии (77)
- Пользователи тестируют китайскую модель GLM 4.5 и GLM 4.5 Air от Z.ai как дешёвую замену Claude Sonnet в Claude Code и RooCode.
- Модель показывает хорошие результаты в коротких задачах, но уступает по длине контекста и стабильности.
- Подозрения, что OpenRouter и другие поставщики могут отдавать квантованные версии, что портит качество.
- Политика приватности Z.ai разрешает вечное использование отправленного кода и промптов — кто-то напуган, кто-то считает это нормой.
- Документация и интеграция вызывают нарекания: нет чёткой инструкции для Claude Code, приходится использовать прокси-обёртки.
Tesla changes meaning of 'Full Self-Driving', gives up on promise of autonomy 🔥 Горячее 💬 Длинная дискуссия
- Tesla переименовала пакет Full Self-Driving в «FSD (Supervised)» — фактически отказавшись от обещанной полной автономии.
- С 2016 года компания продавала опцию за до $15 000, утверждая, что машины получат беспилотный режим «по воздуху».
- Все авто 2016-2023 гг. не потянут полный FSD: нужен новый компьютер, но плана апгрейда нет.
Комментарии (408)
- Кто-то считает отказ от LiDAR ошибкой: камеры «слепнут» от солнца и грязи, случайные дворники — тому пример.
- Другие уверены: чистое зрение уже почти работает — ежедневные поездки без вмешательства и быстрый прогресс говорят сами за себя.
- Третьи видят многообещающий маркетинг: 8 лет обещаний «полного самоуправления каждый год» подняли акции, но юридически Tesla теперь пишет лишь «FSD (Supervised)».
- Участники обсуждают возможный классовый иск и угрозу репутации: «если это не мошенничество, то что тогда?»
- Инженеры напоминают: надёжность требует резерва; при «vision-only» нет запасного плана, когда камеры теряют видимость.
The Universe Within 12.5 Light Years 💬 Длинная дискуссия
Ближайшие звёзды в радиусе 12,5 св. лет
33 звезды, 80 % — красные карлики.
- Солнце (G2, 0,000016 св. лет) — жёлтый карлик, 8 планет.
- Проксима Кентавра (M5, 4,22 св. лет) — ближайшая, вспышки, 1 млн лет на орбиту вокруг α Cen.
- α Cen A,B (G2+K0, 4,39 св. лет) — 80-летняя орбита, яркая пара.
- Барнард (M5, 5,94 св. лет) — самое большое собственное движение, станет ближайшей через 8 тыс. лет.
- Вольф 359 (M6, 7,80 св. лет) — очень тусклый.
- Лаланд 21185 (M2, 8,31 св. лет) — возможны планеты.
- Сириус A,B (A1+DA, 8,60 св. лет) — ярчайшая ночная, белый карлик-компаньон.
- UV Ceti (M5+M5, 8,73 св. лет) — вспыхивает на несколько величин.
- Росс 154, 248 — тихие красные карлики.
- Эпсилон Эридана (K2, 10,5 св. лет) — оранжевый, пыль и планета в 3,2 а.е.
- Лакайль 9352, Росс 128, Лейтен 789-6 — бинарные/тройные карлики.
- Процион (F5+DA, 11,4 св. лет) — жёлто-белый гигант, 8-я по яркости.
Комментарии (166)
- Релятивистский «туда-и-обратно»-полёт быстрее превращается в машину времени: вернувшись, вы окажетесь в далёком будущем Земли, что интереснее любой безжизненной планеты.
- Реальные масштабы Галактики лучше всего показывают игры вроде Elite Dangerous и Space Engine, где расстояния и количество звёзд переданы точно.
- За 50 лет прогресс в межзвёздных двигателях замедлился; это даёт простое решение парадокса Ферми: «никто не летает, потому что не может».
- Даже при фантастических скачках в пропульсии список систем, доступных человеку за тысячелетия, останется конечным и крошечным.
- Свет от Солнца — «восьмиминутный», от Полярной — 447-летний, от Андромеды — 2,5-миллионный; глядя в небо, мы смотрим на разные эпохи.
- Планы вроде Breakthrough Starshot обещают зонд у Альфы Центавра за 20 лет, но лазерный парус всё ещё требует денег и инженерных прорывов.
Kenvue stock drops on report RFK Jr will link autism to Tylenol during pregnancy 💬 Длинная дискуссия
- Акции Kenvue обвалились на 10% после сообщения, что министр здравоохранения США Роберт Кеннеди-младший готовит доклад, связывающий приём парацетамола (Tylenol) при беременности с аутизмом у детей.
- Доклад ожидается в сентябре; Kenvue заявляет, что научных подтверждений причинной связи нет.
Комментарии (265)
- Новый мета-анализ Гарварда (26 исследований) видит статистическую связь приёма парацетамола во время беременности и аутизма у ребёнка, но подчёркивает: ассоциация ≠ причинность, механизм неясен.
- Часть комментаторов считает, что рост аутизма объясняется лучшей диагностикой и наследуемостью: аутичные матери чаще страдают депрессией/болью и потребляют больше обезболивающих, создавая ложную «вину» препарата.
- Врачи напоминают: парацетамол остаётся самым безопасным анальгетиком для беременных; альтернативы (НПВП, опиоиды) токсичнее, а отказ от обезболивания может навредить матери.
- Скептики указывают на хронологию: аутизм описали в 1920-х, Тайленол появился в 1955-м, а рост продаж не коррелирует с ростом диагнозов.
- Подозрение усиливается политикой: инициатива идёт от RFK-младшего, известного антипрививочника; многие боятся, что «золотой стандарт науки» используется как прикрытие для идеологического давления и судебных исков.
Nest 1st gen and 2nd gen thermostats no longer supported from Oct 25 💬 Длинная дискуссия
- Google прекращает поддержку Nest 1-го и 2-го поколения с 25.10.2025: API выключают, дистанционное управление (приложения, Hubitat) перестанет работать.
- Устройства останутся локальными, но без облака — только ручная регулировка.
- Владельцам придётся менять термостаты: у кого 5–9 штук — затраты до $1 000.
- Альтернатива:
– локальные Zigbee/Z-Wave модели (для простых HVAC);
– Ecobee через Home Assistant;
– Nest 4-го поколения (Matter), но только США и базовые функции. - Вывод: «умные» устройства с облаком = риск внезапного «брикования»; выбирать локальные протоколы.
Комментарии (229)
- Google прекращает поддержку Nest 1-й и 2-й генерации: работают локально, но пропадёт управление через приложения и API.
- Пользователи злятся: устройства дорогие, устанавливались навсегда, теперь превращаются в «тупые» без облака.
- Главная претензия: «умное» умирает раньше механики; облачная зависимость превращает технику в мусор через 5-10 лет.
- Кто-то переходит на Sinopé, Ecobee и другие ZigBee-термостаты с локальным управлением через Home Assistant.
- Некоторые уже делают open-source платы под корпус Nest или возвращаются к 20-$ Honeywell на 50 лет.
- Вывод: покупай только то, что работает без чужого сервера, иначе рано или поздно останешься с кирпичом.
Default musl allocator considered harmful to performance
musl-аллокатор тормозит в 7 раз
Добавь в main.rs
:
#[cfg(target_env = "musl")]
#[global_allocator]
static GLOBAL: mimalloc::MiMalloc = mimalloc::MiMalloc;
и в Cargo.toml
:
[target.'cfg(target_env = "musl")'.dependencies]
mimalloc = "0.1"
Проблема — конкуренция потоков за malloc
. Чем больше потоков, тем хуже.
Замена аллокатора нужна даже для однопоточных программ: забудешь — потом дорого.
Почему musl? Статика + 2 МБ distroless-контейнер = старые RH и быстрый cold-start.
Кейс: сервер обрабатывал данные в 7 раз медленнее хоста.
Виноват 200 000 контекст-переключений/сек vs 1 200 у glibc.
strace
показал 6,7 с в futex
у musl против 0,5 с у glibc.
Комментарии (53)
- musl-аллокатор медленен в многопоточных Rust-программах из-за одного глобального замка.
- Альпийские образы компактны, но «размер» ≠ «скорость»; в проде чаще берут Debian/RHEL.
- Замена: jemalloc, mimalloc или Wolfi (glibc, apk, busybox) без смены менеджера пакетов.
- glibc тоже фрагментирует память; MALLOC_ARENA_MAX=jemalloc спасает.
- Новый mallocng musl не решает конкуренцию потоков: цель musl — минимум кода и харднинг, а не perf.
I kissed comment culture goodbye 💬 Длинная дискуссия
—
Комментарии (179)
- Кто-то комментирует ради самовыражения и поиска единомышленников, кто-то — чтобы лучше понять свои мысли.
- Для части пользователей комментарии стали бессмысленным «энергетическим сливом» без социального ROI.
- Другие нашли работу, друзей и даже супругов через старые BBS, LiveJournal, HN и блоги.
- Современные площадки строятся под «захват внимания», а не под настоящие связи; это убивает культуру обсуждений.
- Спасение видят в закрытых Discord/IRC-каналах и малых стримах, где есть нормы, репутация и узнаваемые ники.
Anthropic agrees to pay $1.5B to settle lawsuit with book authors 🔥 Горячее 💬 Длинная дискуссия
—
Комментарии (684)
- Anthropic согласилась выплатить минимум $1,5 млрд за использование ≈500 тыс. пиратских книг (~$3 000 за произведение) — это не прецедент, но сигнал остальным ИИ-компаниям: закладывайте миллиарды на иски.
- Источники напрямую не подтверждают, что деньги дойдут до авторов; крупные издатели, владеющие правами, могут получить основной выигрыш.
- Комментаторы опасаются, что только гиганты смогут платить такие штрафы, а мелкие лаборатории и open-source-проекты окажутся вне игры: легальное сканирование миллиардов книг невозможно по масштабу и цене.
- Некоторые считают решение тактическим успехом Anthropic: компания быстро закрыла риск после нового раунда финансирования, тогда как OpenAI, Google и Meta теперь рискуют большими выплатами.
My Own DNS Server at Home – Part 1: IPv4
Коротко: домашний DNS на BIND
- Цель: локальный DNS для сети
homelab.jhw
, работающий без интернета. - Сервер: Raspberry Pi 4 (
inf01.homelab.jhw
, 192.168.1.10) под Fedora 42. - Сети: 192.168.1.0/24, 172.16.0.0/16, 10.88.0.0/16 (Podman).
- Форвардер: Fritz!Box 7490 (192.168.1.254) — чтобы резолвить DHCP-имена.
Установка
dnf install bind bind-utils
firewall-cmd --add-service=dns --permanent
Конфиги
/etc/named.conf
— слушаем 127.0.0.1, 192.168.1.10, 172.16.1.10, 10.88.0.1; форвард на Fritz!Box; отключён DNSSEC.- Зоны:
–forward.homelab.jhw
→ A-записи хостов.
–reverse.homelab.jhw
→ 1.168.192.in-addr.arpa.
–reverse2.homelab.jhw
→ 16.172.in-addr.arpa.
Пример forward.homelab.jhw
$TTL 86400
@ IN SOA inf01.homelab.jhw. root.homelab.jhw. (
2025082901 ; serial
3600 ; refresh
1800 ; retry
604800 ; expire
86400 ) ; minimum
IN NS inf01.homelab.jhw.
inf01 IN A 192.168.1.10
ca IN A 192.168.1.10
hl01 IN A 192.168.1.11
hl02 IN A 192.168.1.12
hl03 IN A 192.168.1.13
Проверка
named-checkconf
named-checkzone homelab.jhw /var/named/forward.homelab.jhw
systemctl enable --now named
dig @192.168.1.10 ca.homelab.jhw
Готово: локальные имена резолвятся даже без интернета.
Комментарии (81)
- Кто-то дома поднимает Technitium DNS в контейнере: DoH/DoT, блокировка рекламы, API — проще, чем Pi-hole.
- Другие предпочитают unbound (кэш/рекурсия) + nsd (авторитетный), dnsmasq (DHCP+DNS без перезапуска) или CoreDNS «всё-в-одном».
- BIND считают мощным, но громоздким: «много конфигов, как Gentoo»; PowerDNS и NSD выглядят проще.
- Внутренние зоны: .lan, .internal, .home.arpa или «публичный домен, но только в LAN» — спор о риске коллизий и TLS-сертификатах.
- Apple-устройства могут игнорировать «левые» TLD, если не добавить сервер в профиль или не внедрить собственный CA.
- Кто-то кодит DNS на коленке (dns4j), кто-то мечтает купить публичный TLD за 50 млн долларов, лишь бы не зависеть от регистратора.
Why Is Japan Still Investing in Custom Floating Point Accelerators?
- Япония продолжает финансировать Pezy Computing, создающую энергоэффективные математические ускорители SC4S/SC5, способные заменить GPU в HPC и ИИ.
- SC4S: 2 048 ядер, 8 TFLOPS FP64, 200 Вт, 40 нм; SC5: 16 384 ядер, 64 TFLOPS FP64, 400 Вт, 7 нм; оба используют SIMD и обходятся без HBM, охлаждаясь жидкостью.
- Ускорители уже стоят в 6-8 системах ТОП500; пиковая энергоэффективность 32 GFLOPS/Вт.
- Драйверы OpenCL/CUDA-аналог ZCL, компиляторы Fortran/C++ готовы; в 2026-2027 ждут SC6 (128 TFLOPS FP64, 7 нм) и SC7 (E级, 3 нм).
- Цель: 10× экономия энергии и долгая независимость от NVIDIA/Intel.
Комментарии (46)
- Японские ускорители Pezy заточены под HPC, а не под ИИ: FP64 в приоритете, кластеры — в минимальных партиях «несколько стоек».
- NVIDIA последние поколения (Blackwell) режет FP64, поэтому для классических суперкомпьютеров японские чипы остаются энергоэффективной альтернативой.
- Производители не продают «поштучно»: покупается сразу весь кластер с жидкостным охлаждением.
- Участники считают, что государственные инвестиции в такие проекты нужны: сохраняют национальные компетенции и снижают зависимость от американских GPU.
- Конкуренции NVIDIA это пока не создаёт: «железо» есть, а экосистемы ПО и инфраструктуры — нет.
Making a font of my handwriting 🔥 Горячее
Сделал шрифт из почерка
Хотел, чтобы сайт выглядел «моим», а не очередным корпоративным шаблоном. Решил заменить заголовки на рукописный шрифт. Поиск бесплатных не увенчался успехом — значит, делаем сами.
Open-source тупик
Inkscape + FontForge = ад. Нарисовал A-B-C, попытался импортировать: десять модальных окон, кривые Безье в куче, интерфейс 90-х. Попытка использовать SVG-шрифт в Inkscape тоже провалилась: объединять контуры вручную — геморрой.
Платное спасение
Calligraphr: распечатал шаблон, от руки прописал буквы, отсканировал. Сервис за 8 £ (один раз, без подписки) сам вырезает глифы, выравнивает, генерирует TTF/OTF. Через час шрифт лежит в CSS.
Комментарии (74)
- Пользователи делятся опытом создания шрифтов из собственного почерка: кто-то использовал старые сканеры и FontForge, кто-то — онлайн-сервисы вроде Calligraphr.
- Некоторые шутят, что их почерк настолько плох, что шрифт можно было бы использовать как шифр или хэш.
- Упоминаются open-source и коммерческие инструменты: Microsoft Font Maker, Corel Draw, PowerToy, а также новый веб-проект OwnFonts.
- Авторы обсуждают, насколько сложно добиться естественного вида: проблемы с кернингом, интервалами и «живым» написанием.
- Несколько человек делятся ссылками на похожие истории и гайды, включая посты Эми Гудчайлд и Джулии Эванс.
- В комментариях всплывают идеи: использовать ИИ для улучшения шрифта, устроить детский воркшоп, сохранить почерк близких.
What to do with an old iPad
- Унаследовал iPad 2 на iOS 9: тормоз и нет приложений.
- Спустились до iOS 6.1.3 через jailbreak + Legacy-iOS-Kit: летает, красиво.
Что делать:
- Cydia: iFile, iTransmission, f.lux, старые игры без IAP.
- Через SSH root-доступ: учимся хостингу.
План: запустить блог на iPad и вывести в интернет.
- lighttpd из Cydia – весит мало.
- Jekyll-сайт закинул по SCP – открывается в Wi-Fi.
- Туннели:
– localhost.run: старый SSH не принимает RSA, домены случайные, платные.
– Свой VPS + autossh: OpenSSL 0.9.8 ≠ современные алгоритмы, отказ. - Порт-форвард: роутер пускает наружу 80-й на iPad; VPS проксирует nginx → домен.
- Uptime 3 дня, греется, но работает: старый планшет = живой сервер.
Комментарии (91)
- Пользователь поднял iPad 2 2012 г. как веб-сервер, но сайт быстро выдал 502-ошибку Cloudflare.
- Комментаторы жалуются: Apple прекращает поддержку, устройство нельзя поставить Linux, оно превращается в «электронный хлам».
- Обсуждаются jailbreak, UTM, iSH, Termux+X11, но все способы ограничены, частично «тетеринг» и требуют копаться в сомнительных инструкциях.
- Кто-то делает из старых панелей Home Assistant, кто-то — настенные часы, но батарея всё равно периодически садится даже от сети.
- Общий вывод: пока Apple официально не разрешит ставить альтернативные ОС, старые iPad остаются либо музейными экспонатами, либо выбросом.
Show HN: Open-sourcing our text-to-CAD app
CADAM
Репозиторий Adam-CAD: open-source проект для автоматизированного проектирования.
Комментарии (20)
- Участники спорят: текст→CAD пока требует слишком точных описаний и проигрывает базовым навыкам вручную.
- OpenSCAD не умеет в STEP; советуют CadQuery/OCCT.
- Крутой потенциал — «нарисуй крепёж под 3D-скан» или «сделай модель по фото».
- AI с OpenSCAD часто глюкует: придумывает несуществующие функции, плохо стыкует геометрию.
- Лучшее качество пока у Gemini 2.5/Claude 4, но кастомная дообуча не превзошла закрытые модели.
- Просят картинок в ридми, гайда и убирать ngrok в пользу base64.
Freeway guardrails are now a favorite target of thieves 💬 Длинная дискуссия
- В Калифорнии участились кражи металлических барьеров с трасс; воры срезают 3-метровые секции ночью.
- За год пропало ≈ 1 млн $ ограждений; штраф до 1 тыс. $ и год тюрьмы не останавливают.
- Металл сдают на лом по 10–12 ¢/фунт; замена одной секции стоит штату 350–500 $.
- Повреждённые участки оставляют водителей без защиты от съездов и аварий.
- CalTrans устанавливает бетонные блоки и красят барьеры в яркие цвета, чтобы усложнить кражи и упростить поиск.
Комментарии (213)
- Во многих странах растёт кража металла: грузинская пенсионерка отключила всю Армению, выкапывая медь; в США массово воруют барьеры, статуи, медные кабели, гробовые скульптуры.
- Ущерб в разы превышает выручку: замена 470 секций ограждений обошлась в $62 тыс., а цена металла — копейки.
- Основной мотив — нищета и наркомания: методы от бензорезов до «лозы» с крюком на пикапе, жертвы гибнут от тока.
- Процветают приёмки лома, закрывая глаза на происхождение металла; часть контрабандой переплавляется за границей.
- Пользователи видят в этом симптом разлагающегося общества: неравенство, безработица, «макро- и микроканнибализм» инфраструктуры.
European Commission fines Google €2.95B over abusive ad tech practices 🔥 Горячее 💬 Длинная дискуссия
Пресс-центр | Европейская комиссия
- Актуальные пресс-релизы, речи и заявления.
- Трансляции брифингов и онлайн-конференций.
- Быстрый доступ к медиа-ресурсам: фото, видео, инфографика.
- Подписка на тематические рассылки и мгновенные уведомления.
Комментарии (275)
- Еврокомиссия оштрафовала Google на €2,1 млрд за злоупотребления в ad-tech: DFP давала собственному AdX преимущества перед конкурентами.
- Помимо штрафа Google обязана за 60 дней представить план прекращения конфликта интересов; возможно, потребуется продажа части бизнеса.
- Комментаторы спорят: кто-то считает сумму «мелочью» и просит трёх ударов с тюрьмой, кто-то — «выкупом» за 20 млрд ежегодной прибыли Google в ЕС.
- Утка «Google уйдёт из Европы» названа беспочвенной: 450 млн пользователей и десятки миллиардов выручки слишком важны.
- Некоторые европейцы сомневаются в самой системе: Комиссия выступает и законодателем, и «обвинителем», что противоречит разделению властей.
MentraOS – open-source Smart glasses OS
MentraOS — ОС для умных очков.
Пользователю: ИИ-ассистент, уведомления, перевод, субтитры, зеркалинг экрана и десятки встроенных приложений.
Разработчику: пишешь один раз — запускается на любых очках.
Комментарии (111)
- Пользователи просят «только дисплей» без камер/микрофонов: телефон должен передавать картинку по Bluetooth.
- Meta Ray-Ban и похожие гаджеты закрыты, камера и ИИ воспринимаются как антифичи; люди хотят контролировать железо.
- MentraOS позиционируется как «открытая ОС», но пока:
– ни одни очки не поддерживают всё заявленное;
– часть функций требует облако-аккаунт;
– реальные AR-наложения пока нет. - Альтернативы-«чистые дисплеи» уже продаются: Xreal Air, Rokid Max, Vufine, Even Realities G1, Lenovo Legion Glasses — подключаются к телефону/ноуту, ведут себя как внешний монитор.
- Основной барьер — дорогие микро-OLED/波导, поэтому цены 200–600 $ и выше.
South Korea: 'many' of its nationals detained in ICE raid on GA Hyundai facility
- В Джорджии арестовали 475 граждан Южной Кореи на заводе Hyundai.
- Миграционная служба США назвала это крупнейшим рейдом на одном объекте.
Комментарии (125)
- На стройке завода Hyundai в Джорджии ICE задержала ≈450 иностранцев; южнокорейцы утверждают, что приехали легально по визе/ESTA.
- Участники сомневаются в компетентности ICE: часто путают типы виз, гражданство и «вид на жительство», выдворяют даже по законным основаниям.
- Кто наём: строительные субподрядчики, а не Hyundai, массово берут нелегалов; топ-менеджеры и владельцы бизнесов почти никогда не несут ответственности.
- Рейд воспринимается как очередной сигнал «США закрыты для бизнеса»: иностранные инвесторы обсуждают уход с американского рынка и облаков.
- Общий вывод: администрация устраивает показательные рейды, создавая хаос и отпугивая производство, в то время как настоящие нарушители-наниматели остаются безнаказанными.
Protobuffers Are Wrong (2018) 💬 Длинная дискуссия
Почему Protobuf плохи
Protobuf — это любительская, непродуманная технология, созданная для задачи, которую в действительности имеет только Google. Их главная беда — убогая типовая система: нет композиции, куча произвольных запретов (oneof
нельзя повторять, map
нельзя параметризовать, ключ map
не может быть bytes
или enum
и т.д.). Всё это — следствие донавешивания фич «как получится» вместо проектирования.
Достаточно трёх простых конструкций: обязательные поля (произведение типов), oneof
как отдельная копроизводная и параметрические типы. На них можно выразить optional
, repeated
, map
без всяких хаков.
Ещё protobuf разделяет «скаляры» и «сообщения». Скалярные поля всегда «есть»: даже если ты их не заполнял, они инициализируются нулём/пустой строкой. Отличить «поле не прислали» от «прислали 0» невозможно — источник багов и лишних костылей.
Комментарии (231)
- Критика protobuf сводится к «плохо, но альтернатив ещё хуже»: ни одна другая схема не даёт таких же гарантий обратной совместимости + встроенный линтер.
- Главные боли: нулевые значения неотличимы от «не установлено», нет композиции/алгебраических типов, oneof и repeated ограничены, инструментарий (protoc) громоздок.
- Часть проблем — культурное наследие Google: «не давать пользователю обобщений, зато добавить 100 специальных случаев».
- Реальный совет: использовать protobuf только как быстрый бинарный wire-формат, а внутри приложения держать свою доменную модель и писать явные конвертеры.
- Живые альтернативы обсуждаются (Avro, FlatBuffers, Cap’n Proto, JSON+схема), но у каждой свои компромиссы; серебряной пули пока нет.
A computer upgrade has shut down BART 💬 Длинная дискуссия
- Запуск поездов BART 5 сентября отложен; точное время начала движения уточняется.
- Пассажирам рекомендовано следить за обновлениями в приложении BART и на сайте realtime-табло.
Комментарии (260)
- Пользователи обсуждают сбой BART, высмеивая «технологическую столицу» с провалившейся инфраструктурой.
- Кто-то вспоминает, что BART в 70-х был передовым, но теперь страдает от недофинансирования и роста расходов при падении пассажиропотока.
- Местные жалуются: налоги растут, услуги не улучшаются, зато штат с 2019 г. +300 человек.
- Другие упрекают избирателей: голосуют за низкие налоги, а потом удивляются, почему система разваливается.
- Инженерных подробностей апгрейда никто не дал; шутки про «rolling release» и «floppy-диски в SFMTA».
Purposeful animations 🔥 Горячее
Анимации не всегда нужны
Хорошая анимация делает интерфейс предсказуемым и живым, плохая — раздражает и снижает доверие.
Перед добавлением спроси себя: зачем она нужна?
- Объясняет (как на linear.app/ai) — ок.
- Подтверждает действие (кнопка слегка уменьшается) — ок.
- Просто «красиво» — допустимо, если пользователь видит это редко.
Частота использования
Если элемент открывают сотни раз в день (Raycast, список команд), анимации быть не должно — они только тормозят.
Клавиатурные переходы никогда не анимируются.
Скорость
Всё, что дольше 300 мс, воспринимается как лаг.
Спиннеры быстрее = кажется, что грузит быстрее.
Тултипу нужна задержка при первом появлении, но при наведении на соседние — мгновенно и без анимации.
Итог
Добавляй анимацию, если она:
- решает задачу,
- видна редко,
- длится < 300 мс.
Иначе — не добавляй.
Комментарии (126)
- Большинство участников сходятся: анимация должна быть почти невидимой (<150 мс) или вовсе отключаться, иначе она превращается в тормоз.
- Главный критерий целесообразности — объясняет ли анимация изменение состояния; если пользователь ждёт её окончания, чтобы продолжить, значит, она лишняя.
- «Делайт» и «восторг» нужны в основном самим дизайнерам; обычные пользователи после третьего раза хотят выключить всё, что мешает работать.
- Частые повторяющиеся действия (разблокировка, чекаут, корпоративные формы) требуют минимума анимации; для единичных экранов-онбордингов допустима более заметная, но быстрая подсказка.
- Практически каждый советует добавлять системную настройку «отключить анимацию» и уважать prefers-reduced-motion.
US economy added just 22,000 jobs in August, unemployment highest in 4 yrs
- В августе США добавили всего 22 тыс. рабочих мест — минимум с 2020 г.
- Безработица выросла до 4,2 % — пик за три года.
- Рост зарплат замедлился, число безработных увеличилось на 0,5 млн.
- ФРС, вероятно, начнёт смягчение уже в сентябре.
Комментарии (85)
- Участники обсуждают, что скорое снижение ставок и слабый доллар усилят эффект тарифов, подняв цены и сжав прибыли.
- Подчёркивают первую за четыре года негативную динамику занятости и превышение числа соискателей над вакансиями.
- Спорят о возможности «размягчения» экономики и риске самоиндуцированной рецессии из-за политики Трампа.
- Многие советуют не пытаться угадать дно, а покупать акции регулярно (DCA): «время в рынке важнее тайминга».
- Отмечают угасание хайпа вокруг ИИ и ожидание обвала рынка к середине 2026 года.
- Критикуют медиа за сенсационные заголовки и обвиняют бумеров/MAGA в подрыве будущего молодёжи.
Комментарии (120)
- «Скорость разработки» путают со скоростью печати: узкое место — не кол-во строк, а время на принятие решений, изменение курса и валидацию идей.
- LLM и vibe-coding ускоряют прототип, но не уменьшают внешний цикл: согласование, QA, деплой, безопасность, политика, ожидание фидбека — всё это всё ещё занимает месяцы.
- Постоянные «корректировки курса» и неопределённость требований превращают 2-недельный код в годичный проект; AI не решает проблему неясного ТЗ и меняющихся приоритетов.
- Быстрая генерация кода = больше объём для ревью и рефакторинга; усталость программиста от пересмотра чужих (или своих же AI-)решений становится новым тормозом.
- Реальный боттлнек — скорость обучения рынком и организационная OODA-петля; ускорить её можно только культурой, а не новым автокомплитом.
I'm absolutely right 🔥 Горячее 💬 Длинная дискуссия
Комментарии (232)
- Участники высмеивают, что Claude и другие LLM постоянно повторяют «You're absolutely right!», воспринимая это как навязчивое поддакивание.
- Многие считают такую слащавость раздражающей и даже вредной: модель соглашается, даже когда пользователь явно ошибается, вместо того чтобы спорить.
- Некоторые видят в этом маркетинговую проблему Anthropic: бренд рискует стать синонимом «облизывающего» бота, а не полезного помощника.
- Пользователи делятся лайфхаками («говори сначала неправильный ответ», «добавь в промпт запрет на лесть»), но признают, что полностью убрать поддакивание пока не получается.
- Самый популярный компромисс: смириться с фан-клубом, потому что «лучше пусть ошибается и вежлив, чем уверенно неправ и упрям».
OpenAI eats jobs, then offers to help you find a new one at Walmart 💬 Длинная дискуссия
- OpenAI запустила «AI Economic Index» — карты востребованных навыков и подбор вакансий для тех, кого её же модели вытеснили с рынка.
- Сервис анализирует миллионы объявлений, показывает, какие знания (например, промпт-инженерия) сейчас ценятся, и подсказывает, где учиться.
- Критики: компания сначала разрушает рабочие места, а теперь продаёт «палку-выручалочку»; данных о реальном числе потерянных профессий всё ещё нет.
Комментарии (179)
- Участники спорят, действительно ли ИИ уже «съедает» рабочие места или пока лишь повышает продуктивность и сокращает штат постепенно.
- Крупные ИИ-компании, проповедуя «этику», одновременно разрабатывают замену самим же пользователям, используя их бесплатные данные для обучения моделей.
- Примеры реального вытеснения: OCR-переводчики, редакторы новостей, тех-поддержка 1-го уровня, джуниор-разработчики и рутинные офисные задачи.
- Walmart упоминается как крупнейший работодатель, но речь идёт о розничных, а не инженерных позициях; собственные IT-команды компании уже подвергались сокращениям.
- OpenAI предлагает «сертифицировать» 10 млн американцев к 2030-му и матчить их с корпорациями, что многие воспринимают как попытку монетизировать созданную ею же дезинформацию и дисбаланс рынка труда.
I ditched Docker for Podman 🔥 Горячее 💬 Длинная дискуссия
—
Комментарии (603)
- Кто-то в восторге от Podman: нет лицензий, rootless, systemd-интеграция,
podman generate kube
. - Кто-то страдает: старые версии в Ubuntu, тормоза, сетевые сбои, SELinux, UID-маппинг, compose не докручен.
- Docker упрекают в daemon-root и тяжёлом демоне, но хвалят за «просто работает» и DX.
- Часть вообще ушла в FreeBSD Jails, OrbStack, Colima или bash-скрипты на VPS.
- Вывод: Podman годится, если готовы поборотьься; иначе остаёмся на Docker или ищем третий путь.
ML needs a new programming language – Interview with Chris Lattner 🔥 Горячее 💬 Длинная дискуссия
- Крис Латтнер (LLVM, Swift) делает новый язык Mojo, чтобы ML-код был быстрым и удобным.
- Проблема: GPU-ядра пишутся на CUDA/OpenCL вручную, медленно и зависят от одного вендора.
- Решение: язык с метапрограммированием и типами, который «знает» об аппаратуре и генерирует оптимальный код под любую платформу.
- Цель: один код → любой GPU/CPU, открытая экосистема, no lock-in.
Комментарии (255)
- Mojo обещает «Python++, но быстрый», но до сих пор нет полноценных классов, а «полный суперсет» превратился в мягкое «всё ещё не Python».
- Лицензия проприетарная — для многих это стоп-фактор: «сделайте GPL или идите лесом».
- Экосистема Python неподвластна: все уже завязаны на PyTorch/CUDA, а Mojo пока не даёт причин мигрировать.
- Julia, Elixir/Nx, CuPy, Triton, Numba — всё уже умеют «быстро + GPU», без нового языка.
- Итог: Mojo выглядит технически интересным, но «ещё один закрытый язык» в 2025 году воспринимается как ненужный риск.
Nepal moves to block Facebook, X, YouTube and others 💬 Длинная дискуссия
- Непал блокирует Facebook, X, YouTube и др. за отказ регистрироваться в стране.
- Платформы должны были до среды указать локального представителя и модератора.
- Из 10 крупнейших лишь TikTok и Viber оформились; остальным грозит отключение.
- Правозащитники: «внезапное закрытие удар по свободе слова».
Комментарии (225)
- Непал заблокировал 26 популярных соцсетей и мессенджеров (Meta, YouTube, Signal, Reddit и др.), требуя от компаний зарегистрироваться и назначить локального представителя.
- Блокировка пока DNS-уровня: смена DNS или VPN открывает доступ, но уже появляются IP-блоки (Telegram).
- Мнения разделились: кто-то считает мерой защиты от «цифрового госпереворота» и вреда психике, кто-то — авторитарным цензурированием и нарушением свободы слова.
- Часть пользователей рада избавлению от «алгоритмичного трэша» и призывает другие страны последовать примеру; другие опасаются погони за VPN и дальнейшей цензуры.
Interview with Japanese Demoscener 0b5vr
0b5vr: 64K «живой сет» в одиночку
Японский сценер 0b5vr показал на Revision 2023 интро 0mix: 64 КБ HTML-файл, который выглядит как запись клубного live-coding-сета.
Идея
Смешал три вещи:
- техно-демки с диджейским миксом (Medium, Ion Traxx, Emix)
- live-coding: код и визуал/саунд рождаются на глазах
- 64K-интро: всё процедурно, весом до 64 КБ
Реализация
Год спустя, в одиночку:
- собственный 64K-движок на WebGL
- синтезатор и секвенсор в GLSL
- таймлайн, переходы, VJ-эффекты — всё кодом
- финальный файл — обычный index.html 64 КБ
Выводы
- Делать 64K solo «адски тяжело» — берите напарников.
- Попал в PC-demo-вместо 64K-конкурса — не обиделся, главное показать.
- В Японии растёт тренд: музыка через шейдеры, машинный лайв, генеративный VJ.
Для непрограммистов
«Сцена — место, где код = волшебство. Смотрите, танцуйте, не бойтесь».
Комментарии (21)
- Ветка вызвала ностальгию у «старичков», вспомнивших mode13h и ранние 90-е.
- Новичкам советуют начать с Revision (Саарбрюккен, Пасха) или летней Evoke в Кёльне; есть специальные «newcomer corners».
- Сцена живёт ради «чистого» искусства без monetизации и чтобы тусоваться с единомышленниками.
- Ключевые ресурсы: pouet.net, scene.org, деморепозитории на GitHub.
- Европа (особенно Восточная и бывший СССР) остаётся географическим центром, но встречаются группы и в США, и в Новой Зеландии.
I bought the cheapest EV, a used Nissan Leaf 🔥 Горячее 💬 Длинная дискуссия
Купил подержанный Nissan Leaf 2023 года — первую «новую» машину за 15 лет. Езжу мало (пара миль в день), поэтому нужен был компактный и экономичный городской автомобиль.
Дополнительное оборудование
- Зарядка Grizzl-E Level 2 в гараже
- Переносная Lectron L1
- Адаптеры NACS→J1772 и CCS1→CHAdeMO
- CarlinKit 5.0 для беспроводного CarPlay
- Видеорегистратор VIOFO A119 Mini
Мониторинг батареи
- Адаптер LeLink 2 + приложение LeafSpy Pro
- SOH (состояние) аккумулятора — 93,16 %
- Стараюсь: реже быстрые зарядки, держать заряд 50–80 %, раз в месяц доводить до 100 % и выдерживать для балансировки.
Почему электромобиль?
Анализировал покупку десятилетие. Для ежедневных поездок идеально; раз-два в год беру в аренду бензиновую машину на дальние поездки, пока зарядная инфраструктура не дотягивает до уровня АЗС.
Почему Leaf?
Цена. Плюс неплохой опыт с Nissan на прокате.
Комментарии (620)
- Кто-то купил Nissan Leaf 2012 за $400 (≈1 тыс. с доставкой) и заменил им все городские поездки.
- Другие находят 2019–2020 Bolt/Zoe/Ioniq за $10–16 тыс. после субсидий/пробега Hertz; считают их идеальными «коммьютерами».
- Старые Leaf без активного охлаждения быстро теряют ёмкость; новые с CCS2/NACS заряжаются быстрее и охлаждаются лучше.
- Главная боль: разрозненные сети зарядок, куча приложений, часто 1–2 поста CHAdeMO по станции.
- Вывод: для коротких дистанций и зарядки дома/на работе любой дешёвый подержанный EV окупается за пару лет.
SQL needed structure
- Данные на странице IMDB иерархические: фильм → режиссёр, жанры, актёры → персонажи.
- Иерархия двунаправленная: фильм→актеры и актер→фильмы.
- Реляционная БД хранит всё в плоских таблицах; при выводе строим нужную иерархию.
- Ручная сборка — утомительна, это «объектно-реляционное несоответствие».
SQL не умеет выдавать структуру
Цель: JSON вида
{"title":"Baby Driver","director":["Edgar Wright"],"writer":["Edgar Wright"],
"genres":["Action","Crime","Drama"],
"actors":[{"name":"Ansel Elgort","characters":["Baby"]}, …]}
Пошаговые запросы:
-- название
SELECT primaryTitle FROM title WHERE tconst='tt3890160';
-- режиссёры
SELECT p.primaryName
FROM title t
JOIN principal pr ON t.tconst=pr.tconst
JOIN person p ON pr.nconst=p.nconst
WHERE t.tconst='tt3890160' AND pr.category='director';
-- сценаристы
... AND pr.category='writer';
-- актёры
SELECT p.nconst, p.primaryName
FROM title t
JOIN principal pr ON t.tconst=pr.tconst
JOIN person p ON pr.nconst=p.nconst
WHERE t.tconst='tt3890160' AND pr.category='actor';
-- персонажи
SELECT pc.nconst, pc.character
FROM title t
JOIN principal pr ON t.tconst=pr.tconst
JOIN principal_character pc ON pr.nconst=pc.nconst
WHERE t.tconst='tt3890160';
Попытка объединить всё в один запрос даёт декартово произведение (режиссёры×сценаристы) и пропуск записей при отсутствии одной из ролей. Поэтому приходится делать множество отдельных запросов и собирать итоговую структуру на клиенте.
Комментарии (100)
- Обсуждение крутится вокруг «объектно-реляционного несоответствия»: SQL хорошо хранит нормализованные данные, но плохо отдаёт их иерархически.
- Многие считают, что виноват сам язык: нет встроенных вложенных отношений, агрегация в JSON делается громоздко, JOIN-ы приходится «переделывать» в коде.
- Часть участников предлагает решать задачу внутри СУБД: Postgres-функции json_agg, LATERAL-подзапросы, денормализованные VIEW и «JSON-проекции».
- Другие уверены, что проблема надумана: деревья в SQL вполне строятся (adjacency list, nested sets, closure table), просто нужно знать приёмы; ORM и NoSQL лишь откладывают боль.
- Упоминаются альтернативные пути: GraphQL-слой поверх SQL, графовые СУБД, документные хранилища (MongoDB), event-sourcing с CQRS, но каждый имеет свои trade-off.
Show HN: Swimming in Tech Debt
Погружён в технический долг
Книга-манифест о том, как разработчики и компании увязают в «техдолге» и выбираются из него.
-
Что такое техдолг?
Упрощения в коде, которые экономят время сейчас, но замедляют работу потом. -
Почему он растёт?
Жёсткие дедлайны, отсутствие тестов, «потом поправим». -
Как измерить?
Метрики времени на исправление багов, частота откатов, удовлетворённость команды. -
Как уменьшить?
- Выделять 20 % времени на рефакторинг.
- Писать тесты до кода (TDD).
- Проводить ревью каждого PR.
- Удалять мёртвый код.
-
Культура
Признайте проблему публично, отпразднуйте первый «день выплаты долга».
Комментарии (62)
- Читатели спорят: кто-то хвалит тему и пользу книги, кто-то ругает «воду», анекдотичность и сомневается в ИИ-авторстве.
- Критикуют метафору «плавание против течения» и длинные главы; просят внятную структуру и кликабельное оглавление.
- Автор (loumf): 18 месяцев писал без ИИ, 4 раунда редакторов, половина текста за 1 $ – чтобы покупали только заинтересованные.
- Печать через месяц; Show HN подача съехала в обычную.
- Вывод: тема ценна, но подача и навигация пока спорны – автор собирает конструктив и правит.
Fil's Unbelievable Garbage Collector 🔥 Горячее 💬 Длинная дискуссия
Fil-C — это C/C++-совместимый язык с безопасной памятью и современным инструментарием. Его сердце — FUGC, параллельный, конкурентный, точный, неперемещающий сборщик мусора.
Ключевые черты FUGC
- Параллельность: маркировка и очистка выполняются на всех ядрах.
- Конкурентность: потоки-мутаторы не останавливаются; блокировки только на медленных путях аллокации.
- On-the-fly: нет глобальной паузы; «мягкие рукопожатия» просят потоки асинхронно сканировать стек.
- Grey-stack: повторное сканирование стеков до фикс-поинта; барьер только при записи, быстрая сходимость.
- Dijkstra-barrier: при записи указателя объект помечается CAS-relaxed.
- Точность: LLVM-плагин
FilPizlonator
точно знает, где все указатели. - Неперемещаемость: объекты не двигаются; освобождённые блоки «перенаправляются» через InvisiCap.
Safepoint-механизм
- Компилятор вставляет
pollcheck
: быстрая проверка или колбэк для GC. - «Мягкое рукопожатие» запускает колбэк на всех потоках.
- Состояния enter/exit позволяют блокироваться в syscall без pollcheck’ов; GC сам выполняет колбэк для «exited» потоков.
- Safepoint защищает от гонок: загруженный указатель будет жив до следующего safepoint’а.
По желанию можно включить полный stop-the-world (FUGC_STW=1
) для fork(2)
или отладки.
Комментарии (247)
- Fil-C — это С-компилятор с точным параллельным GC (FUGC) и capability-указателями, позволяющий запускать «как есть» CPython, SQLite, OpenSSH и др., теряя в худшем случае 4× производительности.
- Вместо ручного free и UB-оптимизаций LLVM код живёт под барьером Дейкстры и soft-handshake safepoint’ами; указатели превращаются в «InvisiCap» (base+offset), теряющие силу при приведении к integer.
- Проект исследовательский, но уже промышленно полезен: нет сборок под 32-бит, Windows и embedded без MMU, нет пока поколенческого GC и ARM/RISC-V.
- Споры: «lock-and-key» предсказуемее RAM, но требует атомиков; GC = «мусор потом» vs compile-time проверки; можно ли дождаться AI-стат-анализа вместо Rust-переписей.
Forking Chrome to render in a terminal (2023)
-
Рисование
Терминал умеет только моноширинные символы и escape-последовательности. Используем нижний полублок▄
, задавая цвет фона (верхний пиксель) и символа (нижний).fn print_pixels_pair(top, bottom, (x, y)) { println!("\x1b[{};{}H\x1b[48;2;{t}m\x1b[38;2;{b}m▄", y+1, x+1, t=top, b=bottom); }
-
Текст
СоздаёмTextCaptureDevice
в Skia: перехватываемonDrawGlyphRunList
, преобразуем glyph → Unicode, вызываем Rust-функциюdraw_text
.
Добавляем очистку текста при заливке прямоугольников:if (paint.getStyle() == kFill_Style && paint.getAlphaf() == 1.0) clear_text(rect);
-
Ввод
Читаем stdin, парсим escape-коды клавиш/мыши, передаём их в Chromium через DOM-события. -
Pipe-режим
carbonyl --pipe
рисует в stdout, позволяя встраивать браузер в скрипты. -
Mojo
Заменяем GPU-процесс на заглушку, отключая лишние сервисы. -
Layout
Подгоняемdevice_scale_factor
иviewport
под размер терминала, чтобы 1 px = ½ клетки. -
LoDPI
На 1×-экранах включаем сглаживание, чтобы символы не «дребезжали». -
Цвет
Палитра 6×6×6 или 24-бит truecolor; приводим цвета к ближайшему доступному. -
Заголовок
ESC-операторы меняют заголовок окна и вкладки tmux. -
Итог
Carbonyl запускает весь веб в терминале без X11/Wayland:cargo install carbonyl
.
Комментарии (17)
- Carbonyl — терминальный браузер на движке Chrome, удивительно шустрый и юзабельный, особенно с --zoom=300 --bitmap.
- Пользователи просят добавить Kitty Graphics Protocol, sixel/chafa для нормального вывода картинок без ASCII-арта.
- Проект вдохновлён browsh, но работает быстрее; автору даже помог получить работу.
- Запускается в podman, показывает YouTube «кубиками» и почти справляется с капчей (могут помочь мультимодальные LLM).
- Под капотом — Skia и Mojo из Chromium, что позволяет рендерить всё, включая PDF.
Evolving the OCaml Programming Language (2025) [pdf]
- Эволюция OCaml – Ashoka Univ, сент 2025 [pdf][key]
- Авто-проверка реплиц. типов – NUS, авг 2025 [pdf][key]
- AI-инструменты для исследований – IIT Madras, июль 2025 [pdf][key]
- Параллельный рантайм OCaml – Chalmers, май 2025 [pdf][key]
- Авто-проверка реплиц. типов – WG 2.8, май 2025 [pdf][key]
- Параллельный OCaml 5 – Bloomberg, мар 2025 [pdf][key]
- Параллельный OCaml 5 – IIT Gandhinagar, мар 2025 [pdf][key]
- Параллельный OCaml 5 (ч.1) – PACE Lab, фев 2025 [pdf][key]
- Безопасность памяти и ЯП – Schaeffler @ IITM, фев 2025 [pdf][key]
- Мини-ОС через Unikernels – Daekin–IITM, янв 2025 [pdf][key]
- Безопасные Unikernels с аппаратной поддержкой – CAIR DRDO, ноя 2024 [pdf][key]
- Параллельный OCaml 5 – Meta London, сен 2024 [pdf][key]
- Зачем OCaml? – Rezilyens, авг 2024 [pdf][key]
- Эффекты и конкурентность – Chalmers, май 2024 [pdf][key]
- Безопасность функциональных программ – WG 2.8, апр 2024 [pdf][key]
- Композиция библиотек конкурентности – EHOP, июл 2023 [pdf][key]
- Сливаемые реплиц. типы – Collège de France, апр 2023 [pdf][key][видео]
- OCaml 5.0 – OCaml Workshop, сен 2022 [pdf][key]
- Ретрофит конкурентности – ICFP keynote, сен 2022 [pdf][key][видео]
- Сертифицированные сливаемые типы – PLDI, июн 2022 [pdf][key][видео]
- Сертифицированные сливаемые типы – Nomadic Labs, апр 2022 [pdf][key][видео]
- Параллелизм в OCaml – Marigold, дек 2021
- Эффекты в OCaml 5 – Huawei STW, окт 2021 [pdf][key]
- Эффекты в OCaml – SimCorp, сен 2021 [pdf][key]
- Параллелизм в OCaml – SimCorp, сен 2021 [pdf][key]
- ParaFuzz: фаззинг многопоточных программ – Dagstuhl, 2021
Комментарии (30)
- Доклад — субъективный взгляд на 10-летнюю эволюцию OCaml; цель — убрать мистику вокруг разработки компилятора и заманить новых контрибьюторов.
- Главный бытовой pain-point: в стандартной библиотеке исключения — часть API, и они не типизированы, что подрывает «безопасность» языка.
- Выход — использовать Jane Street Core/Base (функции либо возвращают Result, либо помечены _exn), но большинство проектов всё ещё живёт на обычной Stdlib.
- «Большие» альтернативы Stdlib (Core, Base) существуют, но их значение часто преувеличено; официальная библиотека за последние годы всё-таки подросла полезными функциями.
- Новичкам в компиляторщине советуют начинать с мелких багов и мини-Pull Request’ов, а не пытаться сразу «съесть слона».