What If OpenDocument Used SQLite?
Если бы OpenDocument использовал SQLite
Мысленный эксперимент: заменить ZIP-контейнер в формате ODP на базу SQLite.
Плюсы: компактнее, быстрее открытие/сохранение, меньше памяти, встроенная версионность.
Текущий ODP
ODP-файл — это ZIP-архив с XML-файлами (content.xml, styles.xml, meta.xml, settings.xml) и папкой Pictures с ресурсами.
Пример: 49-слайдовая презентация — 78 файлов, 11 МБ.
Недостатки ZIP-контейнера
- Сложное инкрементальное обновление
При каждом «Сохранить» перезаписывается весь архив, что медленно и «съедает» ресурс SSD. - Медленный старт
При открытии нужно распаковать и распарсить большой XML. - Отсутствие версионности
Нет простого способа хранить историю изменений. - Избыточные данные
Каждая картинка — отдельный файл, даже если она используется многократно.
Преимущества 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, а идея для следующих форматов.
Комментарии (88)
- SQLite как формат файла приложений: удобен для запросов, хранит всё в одном файле, но требует осторожности с безопасностью и сетевыми ФС.
- Ключевые советы: включать
secure_delete, не хранить больше 2 ГиБ в BLOB, избегать работы по сети без надёжных блокировок. - Плюсы: SQL-запросы, простота API, лёгкость инспектировать и мигрировать данные (пример — Anki).
- Минусы: сложно версионировать бинарные вставки, проблемы синхронизации/коллаборации, перезапись всего файла при малом изменении.
- Альтернативы: разделение текста и бинарников, JSON + Git, XML для обмена, CRDT-структуры для офлайн-редактирования.
SQLite's File Format
Формат файла 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: кадры с новыми страницами, контрольная сумма, индекс в памяти.
Комментарии (77)
- SQLite хвалят за идею «один файл = база» — она перекрывает недостатки форматов и SQL.
- Формат задокументирован до байта, работает по HTTP-диапазонам и читается с NFS, если только чтение.
- Предел 281 ТБ пока недостижим; реальные ограничения — файловая система и сбои железа.
- Повреждение страницы убивает весь файл, починить нельзя — нужна обратная совместимость.
- Для «пишем один раз» советуют Parquet + DuckDB: колонковый, неизменяемый, читается любым движком.
ICPC 2025 World Finals Results
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).
Комментарии (34)
- Huawei и OpenAI выступили «бриллиантовыми» спонсорами; приветствие OpenAI вызвало споры: кто-то увидел в нём саморекламу, кто-то — лишнее самолюбование.
- На площадке царила отличная атмосфера, но разрывы в таблице оказались малы: команды на 4-м и 17-м местах решили одинаковое число задач.
- Участники обсуждали «секрет» московских и питерских команд, вспоминали тренера Андрея Станкевича и шутили о «русских хакерах».
- Развивалась дискуссия о будущем соревнований: не станут ли они бесполезными на фоне прогресса LLM.
- Ссылки на записи, условия задач и открытый контест в Kattis уже доступны, так что желающие могут попробовать задачи самостоятельно.
Classic 8×8-pixel B&W Mac patterns
Классические 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.
Комментарии (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
Как выжать максимум из файлового 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.
Ключевые фишки реализации
- Полл-режим (
IOPOLL) +nvme.poll_queues=16→ прерывания не нужны. - Два экземпляра io_uring: один с
IOPOLL(только read/write), второй – для остального. - Зарегистрированные буферы: память выделяется заранее, пользователь получает/возвращает готовые блоки.
- Выравнивание:
- чтение – внутренняя «перехватка» невыравненных запросов;
- запись – пользователь сам выравнивает, иначе лишние read-modify-write.
- Без слияния IO внутри библиотеки – проще и гибче на уровне приложения.
Код: steelcake/csio
Комментарии (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 🔥 Горячее
Визуализация Больших Языковых Моделей
Главная
Комментарии (38)
- Пользователи восторгаются визуализацией работы LLM, называя её «искусством» и полезным учебным ресурсом.
- Приводятся ссылки на похожие визуализации (Transformer Explainer, Illustrated Transformer, видео Karpathy).
- Обсуждается, что модель выглядит простой (уравнение внимания на салфетке), но остаётся «чёрным ящиком» для понимания принятия решений.
- Уточняется: LLM уже запускаются на чипах (ноутбук, телефон), дата-центры нужны для обучения и масштабирования.
- Вспоминаются предпосылки бума: рост GPU, алгоритм Transformer, идея извлекать знания из данных вместо ручного кодирования.
Saquon Barkley is playing for equity
- Саквон Баркли с первого дня в НФЛ живёт только на гонорары, а весь $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×. Остальные активы — индексы и недвижимость.
- Вместо типичных «звёздных» брендов Баркли выбирает технологические ставки, которые, по его мнению, создают устойчивую ценность.
Комментарии (94)
- Участники отмечают, что Саквон Баркли — редкий «генерационный» игрок с контрактом на $30 млн и ~$10 млн в год от рекламы, что позволяет ему вкладывать в Anthropic, Anduril, Ramp, Neuralink и фонды Founders Fund/Thrive Capital.
- Главный вопрос: как он получает доступ к таким сделкам? Ответ — статус звезды НФЛ и связи, а не только капитал.
- Сравнивают с Робом Гронковским, который живёт на эндорсменты и вкладывает зарплату, и со Стивом Янгом, выросшим в мире финансов.
- Скептики подчеркивают: при $30 млн стартового капитала и подушке из рекламы можно «терпеть промахи», а статья упоминает только удачные инвестиции.
- Предлагают давать игрокам долю в клубах или лиге, чтобы решить проблему «зарплатного потолка» и сохранить легенд.
Analog optical computer for AI inference and combinatorial optimization
Аналоговый оптический компьютер для ИИ и комбинаторной оптимизации
Создан фотонный процессор, выполняющий вывод нейросетей и решающий задачи оптимизации за пикосекунды и с энергией <1 нДж на операцию. Устройство использует лазерные импульсы и микрорезонаторы для матричных вычислений и поиска минимума в Ising-модели; точность 97–99 % достигнута на MNIST и Max-Cut. Система масштабируема до 100 000 узлов, не требует АЦП/ЦАП и на 2–3 порядка экономичнее GPU/ASIC.
Комментарии (18)
- Участники спорят: аналогово-оптические компьютеры либо перевернут ИИ, либо очередной «вечный завтрашний день».
- Скептики напоминают, что за десятилетия ни тройные, ни бес-тактовые, ни оптические схемы не победили простоту и масштабируемость цифровой CMOS.
- У новой работы пока нет данных по трансформерам, иерархии памяти и реальным рабочим нагрузкам ИИ; демо лишь 16 микро-светодиодов и 16 фотодетекторов.
- Световые модуляторы на порядки медленнее CPU-тактов, поэтому вопрос: сколько таких чипов понадобится, чтобы догнать один H100?
- Но Moore-уже мёртв, а ИИ-дизайн метаматериалов позволяет быстро искать оптические схемы; исследовать границы технологии всё равно стоит.
A PM's Guide to AI Agent Architecture
Краткий гид PM по архитектуре AI-агентов
Проблема
Агент показывает 89 % точность, но пользователи уходят после первого сложного запроса. Причина — не «ум», а архитектура доверия.
Сценарий
Пользователь: «Не могу войти и подписка странная».
- Вариант А: агент сразу чинит всё.
- Вариант Б: задаёт уточняющие вопросы и переводит к человеку.
Один и тот же запрос — два разных продукта.
4 слоя архитектуры
-
Память и контекст
- Сессионная (разговор)
- Клиентская (история обращений)
- Поведенческая (привычки)
- Контекстная (актуальное состояние аккаунта)
Чем больше помнит — тем дороже, но «живее» выглядит.
-
Интеграция данных
Определяет, насколько глубоко агент лезет в CRM, биллинг, билеты. Глубже = сложнее уйти к конкуренту. -
Оркестрация
- Цепочка (последовательные вызовы)
- Параллель (одновременные проверки)
- Иерархия (менеджер → специалисты)
- Аукцион (несколько моделей голосуют)
Выбор влияет на скорость, цену и надёжность.
-
Доверие и управление риском
Не в том, чтобы быть правым чаще, а в том, чтобы:- Показывать уверенность (progress bar, «я проверяю биллинг…»)
- Давать «обратный ход» (отменить последнее действие)
- Чётко объяснять, что делает и почему
- Быстро эскалировать, если не уверен
Практический чек-лист PM
- Начните с минимальной памяти (сессия + аккаунт)
- Подключите только 1–2 критичных API (биллинг, тикеты)
- Используйте простую цепочку вызовов, добавьте fallback к человеку
- Добавьте индикатор уверенности и кнопку «Поговорить с человеком»
- Метрика: не точность, а % случаев, когда пользователь доволен и не требует эскалации
Итог
Пользователь не оценит 95 % точности, если при первой же ошибке потеряет контроль. Архитектируйте доверие, а не интеллект.
Комментарии (53)
- Участники сходятся, что «AI-first» поддержка клиентов пока чаще ухудшает UX, чем улучшает.
- Основные риски: незрелые MCP/A2A-протоколы, проблемы безопасности, отсутствие калибровки уверенности LLM и разрыв между демо и реальностью.
- Инженеры и security-специалисты предупреждают: давать LLM доступ к боевым данным и инструментам пока «безумие».
- Предлагаемая альтернатива — не заменять людей, а усиливать их: AI подсказывает контекст и talking-points, пока человек общается с клиентом.
- PM-ы же, по мнению технарей, часто не осознают техническую сложность и требуют невозможного, что ведёт к спешным патчам или легаси на MCP v0.
Age Simulation Suit 💬 Длинная дискуссия
Костюм старения GERT
Позволяет молодым почувствовать физические ограничения пожилых:
- мутность хрусталика, сужение поля зрения
- потеря высоких частот, тугоподвижность шеи
- скованность суставов, слабость, хуже захват и координация
Цена
€1390 / £1250 — полный комплект, плюс доставка и НДС.
В комплекте 2 пары очков (новая версия).
Заказ и отзывы
- Запросить КП
- Оформить заказ
- Минимальная сумма заказа: €300 / £300
Оценки пользователей: 4,9/5 (7 отзывов)
«Качество отличное, полностью соответствует цели обучения».
Комментарии (153)
- Обсуждение началось с жалобы на «возрастные костюмы» (GERT, AGNES и др.), которые симулируют старение, но не передают постоянных мелких болей и усталости.
- Многие поделились личными примерами: кто-то в 60–90 лет остаётся активным (плавание, собаки, ежедневные прогулки), другие описывают быстрый спуск к инвалидности после падений или инсультов.
- Сообщество отметило, что старение — это не только физика, но и социальная изоляция: плохой слух, невозможность выйти из дома, смерть друзей.
- Появились идеи: AR-очки с субтитрами для плохо слышащих, экзоскелеты для пожилых, видеоигры как когнитивная терапия.
- Некоторые считают подобные костюмы полезными для эмпатии, другие — излишне театральными; единодушны лишь в том, что регулярная активность и профилактика замедляют старение.