Hacker News Digest

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

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

What If OpenDocument Used SQLite? (sqlite.org)

Если бы OpenDocument использовал SQLite

Мысленный эксперимент: заменить ZIP-контейнер в формате ODP на базу SQLite.
Плюсы: компактнее, быстрее открытие/сохранение, меньше памяти, встроенная версионность.

Текущий ODP

ODP-файл — это ZIP-архив с XML-файлами (content.xml, styles.xml, meta.xml, settings.xml) и папкой Pictures с ресурсами.
Пример: 49-слайдовая презентация — 78 файлов, 11 МБ.

Недостатки ZIP-контейнера

  1. Сложное инкрементальное обновление
    При каждом «Сохранить» перезаписывается весь архив, что медленно и «съедает» ресурс SSD.
  2. Медленный старт
    При открытии нужно распаковать и распарсить большой XML.
  3. Отсутствие версионности
    Нет простого способа хранить историю изменений.
  4. Избыточные данные
    Каждая картинка — отдельный файл, даже если она используется многократно.

Преимущества SQLite

  • Инкрементальные изменения
    Обновляются только нужные строки; сохранение происходит мгновенно и безопасно (благодаря транзакциям).
  • Мгновенный старт
    Данные уже структурированы; нет необходимости распаковывать и парсить XML.
  • Встроенная версионность
    Таблицы slide_history, image_versions позволяют откатываться к любому состоянию.
  • Дедупликация ресурсов
    Один и тот же рисунок хранится единожды; ссылки через image_id.
  • Сжатие и индексы
    SQLite сжимает данные и строит индексы по ключам (номера слайдов, идентификаторы объектов).

Схема SQLite-документа (упрощённо)

CREATE TABLE slides(
  slide_id INTEGER PRIMARY KEY,
  title TEXT,
  xml_content BLOB,
  z_order INTEGER
);
CREATE TABLE images(
  image_id INTEGER PRIMARY KEY,
  data BLOB,
  mime_type TEXT,
  sha256 BLOB UNIQUE
);
CREATE TABLE slide_images(
  slide_id INTEGER REFERENCES slides,
  image_id INTEGER REFERENCES images,
  x REAL, y REAL, width REAL, height REAL
);
CREATE TABLE history(
  change_id INTEGER PRIMARY KEY,
  timestamp DATETIME,
  sql BLOB
);

Итог

SQLite превращает «кучу файлов» в реляционную базу: быстрее, надёжнее, экономнее.
Это не предложение переделать ODP, а идея для следующих форматов.

by whatisabcdefgh • 04 сентября 2025 г. в 21:36 • 227 points

ОригиналHN

#sqlite#opendocument#odp#xml#zip#databases#relational-databases#file-formats

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

  • SQLite как формат файла приложений: удобен для запросов, хранит всё в одном файле, но требует осторожности с безопасностью и сетевыми ФС.
  • Ключевые советы: включать secure_delete, не хранить больше 2 ГиБ в BLOB, избегать работы по сети без надёжных блокировок.
  • Плюсы: SQL-запросы, простота API, лёгкость инспектировать и мигрировать данные (пример — Anki).
  • Минусы: сложно версионировать бинарные вставки, проблемы синхронизации/коллаборации, перезапись всего файла при малом изменении.
  • Альтернативы: разделение текста и бинарников, JSON + Git, XML для обмена, CRDT-структуры для офлайн-редактирования.

SQLite's File Format (sqlite.org)

Формат файла SQLite

SQLite хранит всё состояние БД в одном файле.
Размер страницы — степень двойки 512–65 536 байт; номера страниц начинаются с 1, максимум 2³²-2.
Первая страница (512–100 байт) — заголовок:

  • 16 байт: «SQLite format 3\000»
  • 2 байт: размер страницы
  • 1 байт: версия формата, 1 байт: версия для записи
  • 1 байт: резервировано под расширения
  • 1 байт: макс. доля переполнения
  • 4 байт: счётчик изменений
  • 4 байт: размер БД (страниц)
  • 4 байт: свободные страницы
  • 4 байт: схема-cookie
  • 4 байт: формат схемы
  • 4 байт: рекомендованный кэш
  • 4 байт: vacuum-настройки
  • 4 байт: кодировка текста
  • 4 байт: пользовательская версия
  • 4 байт: ID приложения
  • 4 байт: версия библиотеки, 4 байт: «valid-for»
  • 20 байт: резерв

Страницы бывают:

  • b-tree (таблица/индекс, внутр./лист)
  • freelist (trunk/leaf)
  • переполнение payload
  • pointer-map (ptrmap)

Схема
SQL-таблицы → b-tree, строки — последовательность записей (varint длина + payload).
WITHOUT ROWID → ключ в b-tree, дубли в PK убираются.
Индексы → отдельный b-tree, ключи с rowid.
Системные таблицы: sqlite_master (DDL), sqlite_sequence, sqlite_stat1-4.

Журналы
Rollback-journal: старая страница + заголовок.
WAL: кадры с новыми страницами, контрольная сумма, индекс в памяти.

by whatisabcdefgh • 04 сентября 2025 г. в 21:36 • 188 points

ОригиналHN

#sqlite#databases#b-tree#wal#parquet#duckdb

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

  • SQLite хвалят за идею «один файл = база» — она перекрывает недостатки форматов и SQL.
  • Формат задокументирован до байта, работает по HTTP-диапазонам и читается с NFS, если только чтение.
  • Предел 281 ТБ пока недостижим; реальные ограничения — файловая система и сбои железа.
  • Повреждение страницы убивает весь файл, починить нельзя — нужна обратная совместимость.
  • Для «пишем один раз» советуют Parquet + DuckDB: колонковый, неизменяемый, читается любым движком.

ICPC 2025 World Finals Results (worldfinals.icpc.global)

49-й финал ICPC, Баку
Таблица результатов (разморожена), 4 сен 2025, 15:49 AZT

# Университет Задач Время A B C D E F G H I J K L Попытки
1 СПбГУ 11 1478 2/255 2/53 1/37 3/150 1/20 3/298 2/195 1/42 2/81 3/128 1/19 21/11
2 Токийский унив 10 1116 1/206 1/271 1/25 1/184 1/34 1/95 1/66 2/72 1/126 1/17 11/10
3 Пекинский транспорт 10 1425 2/225 2/204 1/– 1/57 2/270 2/52 2/132 2/84 2/107 1/148 1/6 18/10
4 Цинхуа 9 865 3/139 1/33 1/174 2/27 1/71 1/87 2/84 1/157 1/13 15/9
5 Пекинский унив 9 887 1/180 1/14 2/168 1/50 1/113 1/57 1/76 1/183 1/26 10/9
6 Гарвард 9 995 1/124 1/35 1/238 4/78 2/190 1/62 1/101 1/69 1/18 13/9
7 Загреб 9 1075 2/176 1/15 1/242 2/77 3/175 2/64 1/64 1/118 2/24 15/9
8 MIT 9 1123 1/233 2/– 1/14 1/113 1/36 6/204 1/50 4/121 1/145 2/27 20/9
9 USTC 9 1128 2/224 1/41 1/286 1/31 2/229 1/55 1/85 1/123 1/14 11/9
10 Сеульский унив 9 1133 1/201 3/282 1/32 3/58 1/160 1/46 1/79 2/161 1/14 14/9

Медали: золото (1–4), серебро (5–8), бронза (9–12).

by pykello • 04 сентября 2025 г. в 20:33 • 94 points

ОригиналHN

#icpc#competitive-programming#kattis

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

  • Huawei и OpenAI выступили «бриллиантовыми» спонсорами; приветствие OpenAI вызвало споры: кто-то увидел в нём саморекламу, кто-то — лишнее самолюбование.
  • На площадке царила отличная атмосфера, но разрывы в таблице оказались малы: команды на 4-м и 17-м местах решили одинаковое число задач.
  • Участники обсуждали «секрет» московских и питерских команд, вспоминали тренера Андрея Станкевича и шутили о «русских хакерах».
  • Развивалась дискуссия о будущем соревнований: не станут ли они бесполезными на фоне прогресса LLM.
  • Ссылки на записи, условия задач и открытый контест в Kattis уже доступны, так что желающие могут попробовать задачи самостоятельно.

Classic 8×8-pixel B&W Mac patterns (pauladamsmith.com)

Классические 8×8 ч/б узоры Mac
Сделал сайт с 38 оригинальными узорами 1984 года: paulsmith.github.io/classic-mac-patterns.

Использовал Mini vMac + System 6, вытащил ресурс PAT# из файла System, распаковал .sit, прогнал DeRez, получил hex-данные.
Python-скрипт превратил их в .pbm, потом ImageMagick (-filter point) — в PNG любого размера.

Получились чистые, пиксель-в-пиксель копии узоров из Control Panel и MacPaint.

by todsacerdoti • 04 сентября 2025 г. в 19:53 • 162 points

ОригиналHN

#python#imagemagick#macos#resedit#minivmac#hex#pbm#png#apple#macpaint

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

  • Участники делятся находками и собственными реконструкциями 8×8-узоров рабочего стола Mac/Windows/X11.
  • Обсуждают, как в 64 битах уместить выразительные текстуры и вытаскивать PAT-ресурсы через ResEdit, эмуляторы или hex-дампы.
  • Показывают интерактивные редакторы: Mac Control Panel, Win 3.1, X11 xsetroot, вариант для System 7.
  • Отмечают кроссплатформенность «wide weave» и других узоров, встречающихся от C64 GEOS до Atari ST.
  • Спорят о цветных паттернах Mac OS 7, e-ink и о том, как поставить 1-битовый дизайн обоями на iPad.
  • Вспоминают ResEdit, hidden-опции Option-ключа и находят в теме «настоящую археологию» 80–90-х.

Hitting Peak File IO Performance with Zig (steelcake.com)

Как выжать максимум из файлового IO в Linux на Zig + io_uring

Тест

  • Железо: Ubuntu 24.04, 6.14, NVMe, 32 ядер, 756 ГБ ОЗУ (не влияет, direct_io).
  • Параметры: 512 КБ блок, очередь 64, 16 ГБ файл, один поток.

Результаты

fio Zig
write 4.08 ГБ/с 3.80 ГБ/с
read 7.33 ГБ/с 7.00 ГБ/с

Zig на 5–7 % медленнее fio, но близко к пределу SSD.

Ключевые фишки реализации

  1. Полл-режим (IOPOLL) + nvme.poll_queues=16 → прерывания не нужны.
  2. Два экземпляра io_uring: один с IOPOLL (только read/write), второй – для остального.
  3. Зарегистрированные буферы: память выделяется заранее, пользователь получает/возвращает готовые блоки.
  4. Выравнивание:
    • чтение – внутренняя «перехватка» невыравненных запросов;
    • запись – пользователь сам выравнивает, иначе лишние read-modify-write.
  5. Без слияния IO внутри библиотеки – проще и гибче на уровне приложения.

Код: steelcake/csio

by ozgrakkurt • 04 сентября 2025 г. в 19:15 • 123 points

ОригиналHN

#zig#io-uring#nvme#file-io#linux#ubuntu#performance-optimization#direct-io

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

  • Пользователи указывают, что 7 ГБ/с при 512 КБ блоках — это всего ~14 000 IOPS (~70 мкс/IO), и требуется лишь 1 предзагрузка для полной полосы.
  • Напоминают, что Zig 0.15.1 всё ещё меняет IO-API, поэтому версию нужно явно указывать в посте.
  • Рекомендуют проверить/увеличить логический блок NVMe до 4 КБ через nvme-format вместо хардкода ALIGN=512.
  • Разница 4,08 ГБ/с (fio) и 3,80 ГБ/с (Zig) объясняется путаницей GiB ↔ GB.
  • Для io_uring важно использовать registered fds — дают заметный прирост.
  • Интересуются, как будет работать тот же код на FreeBSD AIO.
  • Предлагают вместо «овераллокации» брать выровненную память через page-аллокатор.

LLM Visualization (bbycroft.net) 🔥 Горячее

Визуализация Больших Языковых Моделей
Главная

by gmays • 04 сентября 2025 г. в 18:06 • 566 points

ОригиналHN

#transformer#llm#gpu#machine-learning#attention-mechanism#natural-language-processing

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

  • Пользователи восторгаются визуализацией работы LLM, называя её «искусством» и полезным учебным ресурсом.
  • Приводятся ссылки на похожие визуализации (Transformer Explainer, Illustrated Transformer, видео Karpathy).
  • Обсуждается, что модель выглядит простой (уравнение внимания на салфетке), но остаётся «чёрным ящиком» для понимания принятия решений.
  • Уточняется: LLM уже запускаются на чипах (ноутбук, телефон), дата-центры нужны для обучения и масштабирования.
  • Вспоминаются предпосылки бума: рост GPU, алгоритм Transformer, идея извлекать знания из данных вместо ручного кодирования.

Saquon Barkley is playing for equity (readtheprofile.com)

  • Саквон Баркли с первого дня в НФЛ живёт только на гонорары, а весь $31,2 млн контракта вложил в S&P 500.
  • В 2021-м начал инвестировать в стартапы: первым стал Strike, а все маркетинговые доходы перевёл в биткоин по $32 000; сейчас BTC ≈ $111 000, превратив $10 млн в $35 млн.
  • Под управлением Ken Katz он вложил часть доходов в 10+ приватных компаний: Anthropic, Anduril, Ramp, Cognition, Neuralink, Strike, Polymarket и стал LP в Founders Fund, Thrive, Silver Point, Multicoin.
  • Чеки — $250–500 тыс.; Strike уже дал 10×. Остальные активы — индексы и недвижимость.
  • Вместо типичных «звёздных» брендов Баркли выбирает технологические ставки, которые, по его мнению, создают устойчивую ценность.

by polinapompliano • 04 сентября 2025 г. в 17:07 • 90 points

ОригиналHN

#bitcoin#bitcoin-investing#startups#private-equity#venture-capital#anthropic#anduril#neuralink#founders-fund#thrive-capital

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

  • Участники отмечают, что Саквон Баркли — редкий «генерационный» игрок с контрактом на $30 млн и ~$10 млн в год от рекламы, что позволяет ему вкладывать в Anthropic, Anduril, Ramp, Neuralink и фонды Founders Fund/Thrive Capital.
  • Главный вопрос: как он получает доступ к таким сделкам? Ответ — статус звезды НФЛ и связи, а не только капитал.
  • Сравнивают с Робом Гронковским, который живёт на эндорсменты и вкладывает зарплату, и со Стивом Янгом, выросшим в мире финансов.
  • Скептики подчеркивают: при $30 млн стартового капитала и подушке из рекламы можно «терпеть промахи», а статья упоминает только удачные инвестиции.
  • Предлагают давать игрокам долю в клубах или лиге, чтобы решить проблему «зарплатного потолка» и сохранить легенд.

Analog optical computer for AI inference and combinatorial optimization (nature.com)

Аналоговый оптический компьютер для ИИ и комбинаторной оптимизации

Создан фотонный процессор, выполняющий вывод нейросетей и решающий задачи оптимизации за пикосекунды и с энергией <1 нДж на операцию. Устройство использует лазерные импульсы и микрорезонаторы для матричных вычислений и поиска минимума в Ising-модели; точность 97–99 % достигнута на MNIST и Max-Cut. Система масштабируема до 100 000 узлов, не требует АЦП/ЦАП и на 2–3 порядка экономичнее GPU/ASIC.

by officerk • 04 сентября 2025 г. в 17:06 • 94 points

ОригиналHN

#llm#combinatorial-optimization#neural-networks#ising-model#optical-computing#photonic-processors#laser-pulses#microresonators

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

  • Участники спорят: аналогово-оптические компьютеры либо перевернут ИИ, либо очередной «вечный завтрашний день».
  • Скептики напоминают, что за десятилетия ни тройные, ни бес-тактовые, ни оптические схемы не победили простоту и масштабируемость цифровой CMOS.
  • У новой работы пока нет данных по трансформерам, иерархии памяти и реальным рабочим нагрузкам ИИ; демо лишь 16 микро-светодиодов и 16 фотодетекторов.
  • Световые модуляторы на порядки медленнее CPU-тактов, поэтому вопрос: сколько таких чипов понадобится, чтобы догнать один H100?
  • Но Moore-уже мёртв, а ИИ-дизайн метаматериалов позволяет быстро искать оптические схемы; исследовать границы технологии всё равно стоит.

A PM's Guide to AI Agent Architecture (productcurious.com)

Краткий гид PM по архитектуре AI-агентов

Проблема
Агент показывает 89 % точность, но пользователи уходят после первого сложного запроса. Причина — не «ум», а архитектура доверия.

Сценарий
Пользователь: «Не могу войти и подписка странная».

  • Вариант А: агент сразу чинит всё.
  • Вариант Б: задаёт уточняющие вопросы и переводит к человеку.
    Один и тот же запрос — два разных продукта.

4 слоя архитектуры

  1. Память и контекст

    • Сессионная (разговор)
    • Клиентская (история обращений)
    • Поведенческая (привычки)
    • Контекстная (актуальное состояние аккаунта)
      Чем больше помнит — тем дороже, но «живее» выглядит.
  2. Интеграция данных
    Определяет, насколько глубоко агент лезет в CRM, биллинг, билеты. Глубже = сложнее уйти к конкуренту.

  3. Оркестрация

    • Цепочка (последовательные вызовы)
    • Параллель (одновременные проверки)
    • Иерархия (менеджер → специалисты)
    • Аукцион (несколько моделей голосуют)
      Выбор влияет на скорость, цену и надёжность.
  4. Доверие и управление риском
    Не в том, чтобы быть правым чаще, а в том, чтобы:

    • Показывать уверенность (progress bar, «я проверяю биллинг…»)
    • Давать «обратный ход» (отменить последнее действие)
    • Чётко объяснять, что делает и почему
    • Быстро эскалировать, если не уверен

Практический чек-лист PM

  • Начните с минимальной памяти (сессия + аккаунт)
  • Подключите только 1–2 критичных API (биллинг, тикеты)
  • Используйте простую цепочку вызовов, добавьте fallback к человеку
  • Добавьте индикатор уверенности и кнопку «Поговорить с человеком»
  • Метрика: не точность, а % случаев, когда пользователь доволен и не требует эскалации

Итог
Пользователь не оценит 95 % точности, если при первой же ошибке потеряет контроль. Архитектируйте доверие, а не интеллект.

by umangsehgal93 • 04 сентября 2025 г. в 16:45 • 160 points

ОригиналHN

#llm#ai-agents#product-management#user-experience#mcp#a2a

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

  • Участники сходятся, что «AI-first» поддержка клиентов пока чаще ухудшает UX, чем улучшает.
  • Основные риски: незрелые MCP/A2A-протоколы, проблемы безопасности, отсутствие калибровки уверенности LLM и разрыв между демо и реальностью.
  • Инженеры и security-специалисты предупреждают: давать LLM доступ к боевым данным и инструментам пока «безумие».
  • Предлагаемая альтернатива — не заменять людей, а усиливать их: AI подсказывает контекст и talking-points, пока человек общается с клиентом.
  • PM-ы же, по мнению технарей, часто не осознают техническую сложность и требуют невозможного, что ведёт к спешным патчам или легаси на MCP v0.

Age Simulation Suit (age-simulation-suit.com) 💬 Длинная дискуссия

Костюм старения GERT
Позволяет молодым почувствовать физические ограничения пожилых:

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

Цена
€1390 / £1250 — полный комплект, плюс доставка и НДС.
В комплекте 2 пары очков (новая версия).

Заказ и отзывы

Оценки пользователей: 4,9/5 (7 отзывов)
«Качество отличное, полностью соответствует цели обучения».

by throwup238 • 04 сентября 2025 г. в 16:41 • 192 points

ОригиналHN

#simulation#aging#healthcare#empathy#exoskeletons#ar#video-games

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

  • Обсуждение началось с жалобы на «возрастные костюмы» (GERT, AGNES и др.), которые симулируют старение, но не передают постоянных мелких болей и усталости.
  • Многие поделились личными примерами: кто-то в 60–90 лет остаётся активным (плавание, собаки, ежедневные прогулки), другие описывают быстрый спуск к инвалидности после падений или инсультов.
  • Сообщество отметило, что старение — это не только физика, но и социальная изоляция: плохой слух, невозможность выйти из дома, смерть друзей.
  • Появились идеи: AR-очки с субтитрами для плохо слышащих, экзоскелеты для пожилых, видеоигры как когнитивная терапия.
  • Некоторые считают подобные костюмы полезными для эмпатии, другие — излишне театральными; единодушны лишь в том, что регулярная активность и профилактика замедляют старение.