A Preview of DuckDB v2.0 🔥 Горячее
DuckDB v2.0, codenamed «Cyanoptera», выходит этим осенью и представляет набор кардинальных изменений: серверный режим через расширение quack и оператор CONNECT, новый SQL‑парсер, переработанную СУБД‑структуру, асинхронный ввод‑вывод и тип VARIANT. Серверный режим позволяет любой процессу DuckDB обслуживать базы данных по сети, а клиентские запросы можно отправлять напрямую на удалённый PostgreSQL или MySQL без копирования данных. Кроме того, в v2.0 введены триггеры, более строгая типизация и поддержка транзакций в многопользовательском режиме, что делает DuckDB конкурентоспособным для аналитических и даже транзакционных нагрузок.
Ключевые нововведения: серверный режим (quack + CONNECT), новый тип VARIANT для гибкого хранения схем, асинхронный I/O ускоряющий запросы, новая хранилище‑формат с улучшенной компрессией, а также новый C‑API и небольшие, но важные ломающие изменения (переход на lambda‑синтаксис). В статье также упоминается создание DuckDB Foundation Advisory Board, который будет влиять на дальнейшее развитие проекта. Эти изменения формируют фундамент для «года DuckDB как сервера» и открывают путь к масштабным распределённым решениям.
Комментарии (113)
DuckDB v2.0 трансформируется из локального аналитического процессора в основу облачной аналитической инфраструктуры, что подтверждено использованием в продакшене: многотенантные системы с данными 5–150 ГБ на тенанта, обработка миллионов Parquet-файлов, замена серверных решений. Он превосходит PostgreSQL и MariaDB в OLAP-задачах благодаря колоночному хранению и встроенному процессу, но уступает в многопользовательской конкурентности без Quack. Поддерживает обработку данных, превышающих ОЗУ, на потребительском оборудовании, снижая требования к инфраструктуре. Асинхронный ввод-вывод в v2.0 критически важен для масштабной работы с Parquet и обеспечивает значительный прирост производительности. WASM-сборка весит ~10 МБ, пригодна для браузера; расширения не увеличивают размер бинарников существенно. Заменяет сложные ETL-пайплайны, позволяя объединять запросы к CSV, Parquet и базам данных в одном SQL-интерфейсе. Стандартная практика — анализ лог-файлов (например, Nginx access.log) на диске. Рекомендации: - Использовать Arc для ускорения сканирования через pruning при работе с Parquet. - Для расширений применять официальный шаблон extension-template. - Ручная настройка memory_limit необходима для предотвращения убийства OOM-killerом. - При аналитике в браузере кастомизировать Emscripten-сборку — она оптимизирована, но требует настройки. - Документировать новый PEG-парсер — его детали критичны для совместимости. Quack (серверный режим) и CONNECT к PostgreSQL делают DuckDB гибридным инструментом, интегрируемым с OLTP-системами. Споры: - Некоторые считают DuckDB неподходящим для распределённой обработки против AWS Athena с Trino, но Quack и DuckLake меняют эту динамику. - Одни выражают разочарование, что DuckDB не переписан на Zig, другие не видят в этом проблемы.
Decker, a platform that builds on the legacy of Hypercard and classic macOS 🔥 Горячее
Decker — это платформа для создания интерактивных мультимедийных документов, вдохновлённая HyperCard и визуальной эстетикой классического macOS. Она сочетает простоту и доступность старых инструментов с современными удобствами: глубокой историей отмен, поддержкой сенсорных экранов, масштабируемыми операциями и полноценным скриптованием. Пользователи могут создавать электронные журналы, презентации, текстовые приключения, пиксель-арт или просто экспериментировать — всё сохраняется в самодостаточных HTML-файлах, которые работают в браузере и совместимы с Git. Деки — это не просто документы, а наборы переиспользуемых компонентов, которые легко копировать и адаптировать.
Для сложной логики используется язык Lil — лёгкий, похожий на Lua и Q, с неожиданными удобствами: неявной арифметикой векторов, встроенным SQL-подобным запросом и минимальной кривой обучения. Lil работает и вне Decker через Lilt — автономный интерпретатор, который можно скомпилировать в один исполняемый файл и запустить даже в AWK. Все файлы хранятся в текстовом формате, что делает их идеальными для версионного контроля. Decker лишён рекламы, телеметрии и навязчивых функций — он создан для творчества, а не для монетизации. Среди примеров — Sokoban, Breakout, CHIP-8-интерпретатор и библиотеки для анимации, звука, графиков и визуальных новелл. Платформа открыта под MIT-лицензией, с активным сообществом и ежегодными джемами.
Комментарии (74)
Пользователи отмечают простоту и доступность Decker и её предшественника HyperCard, подчёркивая их потенциал для создания интерактивных мультимедийных документов, презентаций, электронных журналов, игр и образовательных программ. HyperCard использовался для множества инновационных приложений. Некоторые считают Decker устаревшим, другие — потенциально полезным для новых решений, включая сенсорные устройства и образовательный/развлекательный контент. Рекомендуют улучшить дизайн и добавить поддержку сети.
The startup's Postgres survival guide
За полгода я собрал внутренний гайд для инженеров, который выводит из двух лет работы с Postgres основные правила: от проектирования схемы и выбора индексов до управления соединениями и миграций. Он рассчитан на тех, кто уже знаком с базовым SQL — понимает таблицы, строки и простую идею «нужна индексация», но хочет писать «чистый» SQL, например через sqlc или Prisma TypedSQL.
В документе подчёркивается, что индексы — лишь начало: важны правильные ORDER BY, составные индексы и умение читать план запросов. Автovacuum по умолчанию может «убить» базу, а длительные транзакции блокируют его работу, поэтому миграции больших таблиц требуют батч‑записей через триггеры и уникальные ограничения, чтобы избежать дублирования. Для временных данных удобно использовать партиционирование: каждую партицию можно отдельно вакуумить, а удалять старую партицию — мгновенно, без перебора строк. Однако планировщик иногда не «прячет» ненужные партиции, что создаёт нагрузку на чтение. Кроме того, неправильные настройки autovacuum приводят к накоплению мёртвых кортежей, ухудшая производительность. Рекомендуется использовать «batched backfill» с уникальными ограничениями.
Комментарии (112)
Используйте Postgres с нормализованной схемой, но готовьтесь к компромиссам. Применяйте serial PKs, uuidv7 вместо uuidv4, timestamp без timezone для избежания проблем с часовыми поясами. Осторожно используйте jsonb и append-only таблицы — они могут быть необходимы, но не являются универсальным решением. Избегайте ORM, если возможно, но при высокой стоимости разработчиков его использование может оправдываться. Применяйте connection pools, ограничивайте количество соединений, избегайте явных транзакций без необходимости. Используйте foreign keys с каскадными удалениями только для низкообъемных таблиц — будьте осторожны с их магией. Применяйте stored functions для безопасности и предотвращения SQL-инъекций. Управляйте миграциями через инструменты вроде Grate или pgschema. Для хранения больших данных используйте S3 или DynamoDB. Включите мониторинг и оповещения, особенно по XID wraparound. Не хостите и не управляйте БД самостоятельно без специалиста. Используйте explain (generic_plan) для оптимизации запросов.
Exploring PostgreSQL 18's new UUIDv7 support 🔥 Горячее 💬 Длинная дискуссия
PostgreSQL 18 представляет поддержку UUIDv7, нового типа универсально уникальных идентификаторов, решающего проблемы производительности традиционных UUIDv4. В отличие от полностью случайного UUIDv4, UUIDv7 включает временную метку как наиболее значимую часть своей 128-битной структуры, обеспечивая естественную сортировку по времени создания. Это открывает возможности для более эффективного использования UUID в качестве первичных ключей в базах данных.
В статье демонстрируется сравнительный анализ производительности между UUIDv4 и UUIDv7 через создание двух таблиц для "магазина крабов" с использованием Aiven for PostgreSQL. Авторы предоставляют практические примеры кода для создания сервиса и таблиц, а также функцию для вставки случайных данных. Тесты показывают, что UUIDv7 может значительно улучшить производительность операций вставки по сравнению с UUIDv4, особенно при работе с большими объемами данных.
Комментарии (196)
- UUIDv7 раскрывает время создания записи, что может быть критично для приватности и безопасности, особенно если первичный ключ публично доступен.
- Эксперты рекомендуют использовать UUIDv7 только для внутренних ключей и выставлять отдельный UUIDv4 как публичный идентификатор.
- Но в большинстве случаев, когда выбор между UUIDv7 и v4, важно учитывать, что v7 предоставляет лучшую производительность при вставке и сортировке, но требует дополнительных усилий для защиты приватности.
The RAG Obituary: Killed by agents, buried by context windows
RAG-архитектура, доминировавшая в AI последние три года, уступает место новым подходам. Ранние модели вроде GPT-3.5 ограничивались 4–8 тыс. токенов, что делало невозможной работу с объёмными документами — например, отчёт SEC 10-K содержит ~51 тыс. токенов. RAG решал это через разбиение текста на фрагменты (чанки) и поиск релевантных частей, но даже продвинутые методы чанкинга не спасали от потери контекста: финансовые таблицы, сноски и связи между разделами разрушались.
Современные модели с контекстом в миллионы токенов (например, Gemini 1.5) и агентные архитектуры делают RAG избыточным. Зачем извлекать фрагменты, если можно загрузить весь документ целиком? Это устраняет проблемы чанкинга, эмбеддингов и повторного ранжирования. Ключевой вывод: эра компромиссов между точностью и контекстом заканчивается — будущее за системами, работающими с полными данными без промежуточных шагов.
Комментарии (150)
- Участники критикуют автора за чрезмерное обобщение: утверждение о "смерти RAG" основано на узком примере поиска в коде и не учитывает масштабируемость и другие сложные use-case'ы (например, миллионы документов в распределенных системах).
- Подчеркивается, что RAG — это общий паттерн (извлечение информации + обогащение контекста), а не только векторный поиск; grep, SQL, API-вызовы или использование агента с инструментами — это тоже формы RAG.
- Отмечается, что агентный поиск (с использованием инструментов вроде grep, BM25 и др.) может быть мощнее классического RAG, но он медленнее, дороже и сложнее из-за множественных вызовов функций.
- Указывается, что большие контекстные окна LLM позволяют им читать целые файлы, что меняет workflow и снижает необходимость в сложных пайплайнах чанкинга и эмбеддингов.
- Многие видят иронию в том, что автор называет RAG "кошмаром edge-кейсов", в то время как агентный подход с инструментами вроде grep introduces свои сложности (производительность, безопасность, детерминизм).
TigerBeetle is a most interesting database 🔥 Горячее 💬 Длинная дискуссия
TigerBeetle — это финансовый транзакционный движок, построенный на принципах, противоположных общепринятым: медленная разработка кода, детерминированное симуляционное тестирование и нулевые зависимости. Вместо SQL он использует примитивы дебета и кредита, что соответствует изначальной цели транзакционных систем — обеспечению бизнес-операций, как описал ещё Джим Грей в 1985 году.
Традиционные SQL-базы требуют 10–20 запросов для обработки одной финансовой транзакции, создавая узкие места, особенно при работе с «горячими» счетами. TigerBeetle, написанный на Zig, предлагает распределённую архитектуру по умолчанию, статическое выделение памяти и assertions в продакшене. Это ответ на растущие потребности в мгновенных платежах и реальном биллинге, где скорость и надёжность критичны.
Комментарии (170)
- Участники обсуждают технические особенности TigerBeetle, включая его специализацию на финансовых операциях, детерминированное тестирование и минималистичный подход к зависимостям.
- Высказываются критические замечания: отсутствие поддержки многопоточности для масштабирования, проблемы с аутентификацией и совместимостью с облачными платформами, такими как Cloudflare Workers.
- Поднимается вопрос о потенциальной предвзятости статьи, так как её автор является инвестором проекта.
- Отмечается, что традиционные SQL-базы данных по-прежнему эффективно справляются с большинством задач, несмотря на возраст.
- Обсуждаются возможные аналоги TigerBeetle, такие как FoundationDB, и его применимость за пределами финансового сектора.
Delete FROM users WHERE location = 'Iran'; 🔥 Горячее 💬 Длинная дискуссия
Иранский разработчик делится опытом блокировок из-за санкций против страны. Microsoft удалила его приложение EyesGuard из магазина без объяснений, стерев аккаунт и отзывы пользователей. Notion полностью очистил его данные, ответив в поддержке, что услуги недоступны для резидентов Ирана из-за ограничений.
Эти случаи показывают, как санкции ударяют по обычным пользователям, лишая их доступа к инструментам и стирая цифровую историю. Разработчик иронично сравнивает это с SQL-запросом на удаление пользователей по географическому признаку.
Комментарии (577)
- Участники обсуждают негативное влияние санкций на обычных граждан Ирана, блокировку сервисов и цифровую изоляцию, отмечая, что санкции вредят населению, а не правящим elites.
- Поднимается тема двойных стандартов: пользователи критикуют тенденцию обвинять народы "стран-изгоев" в действиях их правительств, в то время как действия западных правительств часто отделяются от ответственности их граждан.
- Высказываются опасения по поводу централизации цифровой инфраструктуры в руках США, что дает им возможность в одностороннем порядке определять, кто может пользоваться услугами, и риски такой модели для пользователей из недружественных стран.
- Обсуждается эффективность санкций: многие участники сомневаются, что санкции достигают заявленных целей по изменению политики правительств, а вместо этого лишь укрепляют режимы и усугубляют положение населения.
- Отмечается сложность ситуации для владельцев бизнесов, которые вынуждены блокировать пользователей из-под санкций из-за юридических рисков и штрафов, даже если они не согласны с такой политикой.
Show HN: Base, an SQLite database editor for macOS 🔥 Горячее 💬 Длинная дискуссия
Base — компактный и мощный редактор SQLite для macOS.
Возможности
-
Инспектор схем
Быстро просматривайте структуру таблиц, типы столбцов и связи без SQL. -
Визуальный редактор таблиц
Создавайте и изменяйте таблицы мышью, безCREATE/ALTER. -
Браузер данных
Просматривайте, фильтруйте и правьте записи прямо в таблице. -
SQL-редактор
Пишите запросы с подсветкой синтаксиса, автодополнением и сохранением сниппетов. -
Импорт/Экспорт
Загружайте CSV и SQL-дампы; выгружайте в CSV, SQL, JSON и Excel.
Системные требования
macOS 15 Sequoia и выше.
Бесплатная версия ограничена; полная — единоразовая покупка.
Комментарии (166)
- Пользователи удивлены, что Base существует уже 15 лет, но плохо заметен в поиске.
- Хвалят «ремесленный» подход: маленькая команда, узкая задача, высокое качество.
- Часто сравнивают с TablePlus, Postico и sqlitebrowser, отмечая превосходство в «родном» macOS-UX.
- Просят добавить DuckDB, UUID, автозагрузку расширений, FK по умолчанию и диаграммы схемы.
- Покупатели благодарны за возможность покупки вне Mac App Store и за льготную цену.