Hacker News Digest

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

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

Line scan camera image processing for train photography (daniel.lawrence.lu) 🔥 Горячее

  • Камера – Alkeria Necta N4K2-7C, 4096×2 Bayer, 16-бит raw.
  • ROI – энергия ∂I/∂x / (0.1·max(I)+|∇I|); 99-й перцентиль по блокам, порог 1.5× минимума.
  • Скорость – сравниваем два зелёных канала Bayer-сдвигами ±7 px, подпиксельный пик методом итеративного Гаусса.
  • Ресэмплинг – интерполяция по скорости, чтобы не растянуть/сжать объект.
  • Демозаик – bilinear + коррекция полос.
  • Полосы – вычитаем медиану по строкам.
  • Шум – Gaussian + bilateral фильтр.
  • Косой кадр – Hough-прямые → угол → поворот.
  • Цвет – калибровка по чекеру X-Rite.
  • Код – Python + NumPy + OpenCV, «vibe-coding» в Cursor.

by dllu • 23 августа 2025 г. в 16:09 • 413 points

ОригиналHN

#python#numpy#opencv#image-processing#computer-vision#line-scan-camera#bayer-filter#gaussian-filter#bilinear-interpolation#hough-transform

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

  • Пользователи делятся опытом: кто-то пробовал сканировать деревья дроном, кто-то делает slit-scan-анимации вручную, а кто-то вспоминает сканеры и старые цифровые спины.
  • Обсуждаются промышленные применения: сортировка продуктов на конвейере, фото-финиш, спутники и даже медицинская ОКТ.
  • Рассказывают, как почти любую камеру можно превратить в line-scan, выставив только одну строку пикселей и получив 60 000 FPS.
  • Показывают примеры снимков из окна поезда и спорят, насколько реально «отсканировать» часовую поездку целиком.
  • Отмечают художественный эффект: поезд застыл между полосами цвета, а движущиеся части искажаются, как у спортсменов на фото-финиша.

Light pollution prolongs avian activity (gizmodo.com)

  • Световое загрязнение заставляет птиц петь на 50 минут дольше каждый день: в городах они начинают петь на 18 минут раньше и заканчивают на 32 минуты позже.
  • Анализ 61 млн записей птичьих трелей (580 видов) показал, что яркое ночное освещение удлиняет активный день птиц почти на час.
  • Исследование опиралось на данные проекта BirdWeather и спутников VIIRS, фиксирующих яркость населённых пунктов.
  • Дополнительная активность сокращает время отдыха, что может снизить выживаемость и размножение птиц.

by gmays • 23 августа 2025 г. в 13:32 • 102 points

ОригиналHN

#birdweather#viirs#led#science#ecosystems

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

  • Суперяркие и дёшевые LED-фонари превратили световое загрязнение в эпидемию: дома и парковки заливают «тюремным» светом в 100 000 люмен.
  • Исследование в Science: птицы поют на 50 минут дольше из-за ночного освещения; сильнее страдают виды с большими глазами и открытыми гнёздами.
  • Продлённая активность повышает энергозатраты птиц, что может сократить численность популяций и нарушить баланс экосистем.
  • Свет мешает и насекомым, усиливая их вымирание, а простая смена цвета или мерцания света может частично смягчить ущерб.
  • Люди тоже страдают: ночные улицы выглядят как кино-съёмочные площадки, а постоянный свет вызывает бессонницу и дискомфорт.

RFC 9839 and Bad Unicode (tbray.org)

RFC 9839 и плохой Unicode

Unicode хорош, но не все его символы. Часто приходится исключать «проблемные». Чтобы формализовать это, мы с Полом Хоффманом написали черновик, и теперь он стал RFC 9839 — всего 10 страниц, читайте, если проектируете текстовые поля.

Пример боли: JSON-поле username может содержать:

  • U+0000 — нулевой байт, ломает языки;
  • U+0089 — устаревший C1-контрол «HTJ»;
  • U+DEAD — несвязанный суррогат, запрещён в UTF-8;
  • U+7FFFF — «noncharacter», не должен передаваться.

RFC 9839 перечисляет такие категории и предлагает три готовых подмножества, которые можно просто запретить.

Не вините Дуга Крокфорда: JSON создавался раньше, когда Unicode был молод. Но теперь нужен способ явно сказать «эти символы не нужны».

PRECIS (RFC 8264, 2002) уже решал похожую задачу, но 43 страницы сложностей и привязка к конкретной версии Unicode мешают внедрению. RFC 9839 проще и тупее — и, возможно, именно поэтому пригодится.

by Bogdanp • 23 августа 2025 г. в 12:54 • 250 points

ОригиналHN

#unicode#json#rfc#utf-8#text-processing

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

  • Участники спорят, нужно ли на уровне JSON/протокола запрещать «плохие» символы Unicode (управляющие, суррогаты, заломы направления и т. д.) или оставить это прикладной валидации.
  • Одни считают, что жёсткие ограничения защищают от ошибок и атак (RTL-override, залого-текст, сломанные UTF-16-реализации).
  • Другие указывают на полезные кейсы C0-символов (EOF, ESC, разделители) и опасаются, что «закрыть и забыть» приведёт к 20-летней несовместимости (эмодзи, старые файлы).
  • Ссылаются на RFC 8264/9839 и PRECIS-фреймворк как готовый список «что разрешать», но подчёркивают: правило должно быть явным, а не «тихо удалять».

Writing Speed-of-Light Flash Attention for 5090 in CUDA C++ (gau-nernst.github.io)

Flash Attention на 5090 в CUDA C++

Цель — научиться писать attention-ядро на CUDA C++, чтобы использовать MXFP8/NVFP4 MMA для sm120, чего нет в Triton.
Код: learn-cuda/07_attention.

Бенчмарк (bs=1, heads=8, q=4096, kv=8192, BF16, 5090@400 W, CUDA 12.9, SOL 209.5 TFLOPS):

ядро TFLOPS %SOL
F.sdpa (Flash) 186.73 89.13
F.sdpa (CuDNN) 203.61 97.19
flash-attn 190.58 90.97
v1 (basic) 142.87 68.20
v2 (swizzle) 181.11 86.45
v3 (2-stage) 189.84 90.62
v4 (ldmatrix.x4) 194.33 92.76
v5 (pipe) 197.74 94.39

Алгоритм Flash Attention 2

Псевдокод:

scale = DIM**-0.5
for b, tile_Q:
    tile_O = 0
    tile_Q = load(Q[b, tile_Q])
    for tile_KV:
        tile_K = load(K[b, tile_KV])
        tile_S = tile_Q @ tile_K.T * scale
        online_softmax(tile_S)  # in-place
        tile_V = load(V[b, tile_KV])
        tile_O += tile_S @ tile_V
    store(O[b, tile_Q])

head_dim=128 помещается в регистры.


v1 — базовая версия

  1. G2S: cp.async.ca.shared.global 128-битными транзакциями.
  2. S2R: ldmatrix для Q, K, V → 8×8 фрагменты.
  3. Softmax online:
    • m = max(m_prev, m_curr)
    • d = d_prev * exp(m_prev - m) + Σ exp(S - m)
    • O = O_prev * (d_prev/d) * exp(m_prev - m) + (exp(S - m)/d) @ V

v2 — swizzled shared memory

  • 128-битные банки → конфликты при 8×8 tile.
  • Swizzle K и V по 32-битным строкам; Q оставляем линейно.
  • +40 % пропускной способности.

v3 — 2-stage pipeline

  • Двойной буфер: пока вычисляем S/P@V, асинхронно грузим следующий KV.
  • cp.async.commit_group() + cp.async.wait_group(1).
  • +5 % к SOL.

v4 — ldmatrix.x4

  • Одна инструкция ldmatrix.x4 загружает 4×8×8 фрагмента K/V за раз.
  • Снижает инструкций на 25 %.
  • +2 % к SOL.

v5 — улучшенный pipeline

  • 3-4 стадии:
    1. prefetch KV
    2. compute S
    3. compute P@V
    4. write-back O
  • __pipeline_wait_prior(N) + __pipeline_commit().
  • +2 % к SOL.

Что дальше

  • Использовать TMA (cp.async.bulk) и NVFP4/MXFP8 MMA.
  • Поддержка head_dim > 128 (FlashMLA).

by dsr12 • 23 августа 2025 г. в 12:29 • 145 points

ОригиналHN

#cuda#c++#nvidia#flash-attention#machine-learning#gpu-computing#high-performance-computing

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

  • Пользователи удивлены, что RTX 5090 даёт всего 209 TFLOPS BF16 — менее 10 % от серверного Blackwell B200 (2250 TFLOPS), но при цене ~$30-40 k за B200 соотношение цена/производительность почти сравнялось.
  • Обсуждают, что NVIDIA с 4090 и далее искусственно ограничивает тензорные ядра игровых карт для ML-операций FP8/FP16.
  • У 5090 выше TDP, чем у 4090, и можно ограничить мощность лишь до 70 % (4090 — до 50 %), что мешает апгрейду для ML-станций.
  • Появились вопросы о поддержке Flash Attention на 5090/5080 и о нативной компиляции под Blackwell в PyTorch 2.7.
  • Участники спорят, стоит ли вкладываться в Triton, если нужны фирменные типы NVFP4/MXFP8, которых там пока нет.

Rethinking the Linux cloud stack for confidential VMs (lwn.net)

Конфиденциальные ВМ требуют переработки стека Linux в облаке.
Публичное облако не гарантирует приватности: хост-провайдер может получить доступ к памяти гостя. Confidential computing решает это, шифруя память даже от гипервизора, но приходится балансировать между безопасностью и производительностью.

Изоляция и производительность
Аппаратные уровни привилегий, IOMMU, KVM, cgroups и namespaces обеспечивают изоляцию ВМ. Однако для скорости всё чаще используют прямой доступ к устройствам (DPDK, vDPA), что снижает контроль ОС и усиливает зависимость от железа и прошивок.

Решение: доверенные устройства
AMD SEV-TIO и стандарт TDISP позволяют гостю криптографически убедиться в подлинности устройства и разрешить ему прямой доступ к зашифрованной памяти, избегая медленных bounce-буферов. Реализуется через SR-IOV: физическое устройство создаёт множество виртуальных функций, каждая из которых может быть «доверенной» для конкретной конфиденциальной ВМ.

by Bogdanp • 23 августа 2025 г. в 11:39 • 113 points

ОригиналHN

#linux#cloud-computing#confidential-computing#kvm#amd-sev-tio#tdisp#sriov#dpdk#vdpa#gdpd

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

  • Критики считают, что Confidential Computing (CC) — это скорее маркетинговый трюк облачных провайдеров, чем реальная защита: аппаратная основа часто уязвима и не может быть исправлена.
  • Даже при шифровании памяти вы всё равно работаете на чужом железе, которое теоретически могут модифицировать для сниффинга или извлечения данных.
  • Для многих CC — способ «галочки» под GDPR, особенно в медицинских исследованиях, но реальная польза пока минимальна.
  • Apple реализовала собственную версию CC качественно, но она закрыта и только для экосистемы Apple.
  • Участники соглашаются: если ваша модель угроз не позволяет доверять провайдеру, используйте физические серверы; «доверие» в облаке всегда остаётся условным.

Librebox: An open source, Roblox-compatible game engine (github.com)

Librebox-demo — репозиторий движка Librebox: открытой альтернативы Roblox.
Цель — совместимость с Roblox-играми и инструментами, но без проприетарных ограничений.

Ключевое

  • Язык: C++ + Lua
  • Лицензия: MIT
  • Статус: ранняя альфа
  • Сборка: CMake + vcpkg

Быстрый старт

git clone https://github.com/librebox-devs/librebox-demo.git
cd librebox-demo
cmake -B build -S . -DCMAKE_BUILD_TYPE=Release
cmake --build build
./build/librebox

Функции

  • Загрузка .rbxl и .rbxm
  • Базовый рендер OpenGL/Vulkan
  • Серверный режим headless

Планы

  • Поддержка плагинов
  • Web-клиент
  • Мобильные порты

PR и issue приветствуются.

by libreboxdevs • 23 августа 2025 г. в 11:22 • 248 points

ОригиналHN

#c++#lua#cmake#vcpkg#opengl#vulkan#roblox#open-source#mit-license#github

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

  • Librebox — это пока демо с очень ограниченным подмножеством API Roblox; серверов и сети нет.
  • Пользователи надеются на Linux-клиент и сохранение творений Roblox, но опасаются юридических проблем.
  • GitHub и Discord проекта выглядят странно: разработчики скрыты, активности мало, но код реально пишется.
  • Некоторые считают, что такие проекты важнее для Roblox, чем борьба с хищниками на платформе.
  • Есть предложения переименовать в OpenBox из-за лицензии MIT, но другие напоминают, что MIT — это тоже «свободно».

I made a floppy disk from scratch (kottke.org)

Создал дискету с нуля
Polymatt снял видео, где делает 3,5-дюймовую дискету «с нуля».

Сложнее всего оказалось не пластиковый корпус, а сама магнитная плёнка: она толщиной в микроны и требует точного нанесения химикатов на PET-плёнку.

Автор также сам изготовил «drag knife» — резак для точных надрезов бумаги и плёнки, вместо покупки за $150.

Вдохновляющий процесс: используя станок, он делает для него новые инструменты.

by bookofjoe • 23 августа 2025 г. в 10:32 • 182 points

ОригиналHN

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

  • Видео понравилось, но кажется «незаконченным»: дошли до интересного и оборвались.
  • Критика: неясно, удалось ли записать хотя бы 1 КиБ данных; не раскрыты пропорции смеси и способ получения оксида железа.
  • Некоторые считают формат 3½″ выбран ради спонсора-CNC, а 5¼″ или 8″ было бы проще.
  • В комментариях приводят примеры более «от начала до конца» проектов и способы самодельного магнитного порошка.
  • Несмотря на полу-фейл, автору аплодируют за честность и энтузиазм.

Developer's block (underlap.org)

Разработчики тоже сталкиваются с «блоком» — аналогом писательского, но часто более тяжёлым. Причины и способы выбраться.

Почему зависаем

Новый проект
Хочется сделать «лучше всех»: покрыть тестами, написать документацию, придерживаться стиля, CI, кросс-компиляция, обработка ошибок, конкурентность… Практики полезны, но вместе превращаются в стену.

Старый проект
• Новый код — перегруз: спешишь понять, язык незнаком.
• Старый код — упал мотивация или переутомление.

Как разблокироваться

  • Учись постепенно
    Запусти как пользователь, почитай тесты, спрашивай коллег. Не знаешь язык — выдели время на основы.

  • Отдыхай
    После большой фичи бери «мелкие дела» или техдолг.

  • Двигайся мелкими шагами
    Минимально реализуй задачу, потом улучшай тесты и доки.

  • Прототипируй
    «Спайк» — быстрый черновик по happy path. Оставь в ветке, потом перепиши аккуратно.

  • Документируй черновиком
    Не полируй раньше времени: простой формат, потом доведёшь.

by todsacerdoti • 23 августа 2025 г. в 09:20 • 171 points

ОригиналHN

#software-development#productivity#continuous-integration#testing#documentation#llm#mvp

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

  • Сон, прогулки, спорт и медитация — лучший способ «разблокировать» мозг и получить новые идеи.
  • Ранние «грязные» MVP и повторное использование boilerplate снижают страх перед чистым листом.
  • LLM помогают быстро набросать черновик, преодолеть ступор и даже подсказать имена.
  • Когда совсем застрял, начни писать любой код или даже инфраструктуру для отладки — движение разгоняет.
  • Главное — не игнорировать сигналы тела: делай паузы, иначе выгоришь.

SpaCy: Industrial-Strength Natural Language Processing (NLP) in Python (github.com)

spaCy — промышленная библиотека NLP на Python.
Быстрая, точная, поддерживает 70+ языков.

Основное

  • Установка
    pip install -U spacy
    python -m spacy download en_core_web_sm
    
  • Быстрый старт
    import spacy
    nlp = spacy.load("en_core_web_sm")
    doc = nlp("Apple is looking at buying U.K. startup for $1 billion")
    for ent in doc.ents:
        print(ent.text, ent.label_)
    

Возможности

  • токенизация, POS-теги, синтаксис, NER
  • готовые модели CNN/Transformer
  • обучение и дообучение
  • интеграция с PyTorch, Transformers, FastAPI
  • GPU/Apple Metal

Примеры

  • NER: выделение имён, дат, денег
  • Matcher: поиск паттернов
  • Projects: end-to-end пайплайны
  • spaCy LLM: LLM-интеграция без кода

Ресурсы

by marklit • 23 августа 2025 г. в 09:07 • 104 points

ОригиналHN

#spacy#python#nlp#pytorch#transformers#fastapi#ner#llm#machine-learning#natural-language-processing

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

  • В эпоху LLM традиционный NLP (SpaCy) всё ещё нужен: дешевле, быстрее, работает на обычном железе и не требует постоянной оплаты провайдеру.
  • Участники хвалят SpaCy за отличный API, скорость, надёжность NER и удобство пайплайнов; активно используют в enterprise, RAG-метриках и даже на Raspberry Pi.
  • Некоторые задачи (классификация, сентимент) LLM решают хуже и дороже, поэтому возвращаются к дискриминативным моделям.
  • Сообщество отмечает, что проект немного сократился (v4 задерживается), но библиотека по-прежнему поддерживается и считается недооценённой.

World Wide Lightning Location Network (wwlln.net)

WWLLN — глобальная сеть датчиков молний Университета Вашингтона, фиксирует разряды по всей планете.

Сообщения

  • 28 мая 2024: спутниковые анимации временно недоступны.
  • 30 янв. 2023: запущен новый сайт; старый остаётся.

Полезные ссылки

Карты

  • Молнии за час: белые — последние 10 мин, далее жёлтый → бордовый (60 мин). Зелёные — активные датчики.
  • Суточная плотность вспышек обновляется после 00 UTC.

Анимации

Видео WWLLN (синие точки) поверх спутниковых снимков:
GOES-19 CONUS, Himawari Full Disk, SE Asia, Central Pacific, North Pacific.

Спектрограммы

VLF-спектры со всех датчиков.

Как работает

  • Для расчёта координат нужно ≥5 датчиков, расположенных на тысячи км.
  • Детектируется ~30 % разрядов ≥30 кА.
  • Сейчас >70 датчиков; требуется ~500 для равномерного покрытия каждые 1000 км.
  • Принимаем заявки на размещение датчиков: хост получает все мировые данные бесплатно.

Данные

Архив с 15 авг 2004 г. продаётся; участники сети получают ежемесячную подписку бесплатно, данные каждые 10 мин.

by perihelions • 23 августа 2025 г. в 07:40 • 79 points

ОригиналHN

#gps#vlf#geolocation#spectrogram#triangulation#lightning-detection#satellite-imagery

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

  • Системы обнаружения молний (WWLLN, Blitzortung) используют сети приёмников с точными GPS-временными метками для триангуляции разрядов.
  • Blitzortung.org работает на обычном железе (STM32) и предоставляет карты на lightningmaps.org и map.blitzortung.org.
  • Точность позиционирования — до 5 км при 100 нс синхронизации; южное полушарие лучше покрыто WWLLN.
  • Данные в реальном времени бесплатны, но полные логи и API обычно платные.
  • Участники обсуждали навигационные идеи, искажения Меркатора и «живые» звуковые эффекты гроз.