Head in the Zed Cloud
Команда Zed перешла на новую облачную инфраструктуру под названием Zed Cloud, построенную на Rust и WebAssembly через Cloudflare Workers. Это решение заменяет старый бэкенд Collab, использовавшийся с основания компании, и призвано снизить операционные затраты на обслуживание сервисов, позволив команде сосредоточиться на развитии основного продукта. Cloudflare Workers обеспечивает простое масштабирование, а такие сервисы, как Hyperdrive для Postgres, Workers KV для временного хранения и Queues для асинхронной обработки задач, обеспечивают необходимую функциональность.
В основе новой системы лежит фреймворк с трейтом Platform, позволяющий писать код независимо от платформы, сохраняя при этом доступ ко всем возможностям Cloudflare Workers. Для этого реализованы две платформы: CloudflarePlatform для работы в продакшене и локальной разработки, и SimulatedPlatform для тестирования, имитирующей практически все компоненты системы. Такой подход обеспечивает гибкость и тестируемость всей инфраструктуры Zed Cloud.
Комментарии (24)
- Обсуждение в основном вращается вокруг трёх тем: использование WebAssembly в облачных сервисах, сравнение производительности и стоимости Rust vs JavaScript в Cloudflare Workers, и перспективы FOSS альтернатив.
- Участники обсуждают, что на данный момент Rust в WASM всё ещё имеет существенные накладные расходы по сравнению с нативным кодом, но при этом отмечается, что Cloudflare Workers и Supabase Edge Functions предоставляют открытые исходники своих рантаймов, что снижает vendor lock-in.
- Также поднимается вопрос о том, что хотя WASM в браузере может и не достигает нативной скорости, он предоставляет беспрецедентную переносимость и безопасность, что делает его идеальным для серверлесс вычислений.
- Наконец, участники высказывают, что хотя Cloudflare и Supabase предоставляют открытые исходники своих рантаймов, что снижает vendor lock-in, но всё ещё остаётся вопрос о том, какие именно преимущества предоставляет использование Rust в WASM в контексте редактора кода, если учесть, что большинство пользователей не будут замечать разницу в производительности, но при этом будут страдать от ограничений вендора.
Unpacking Cloudflare Workers CPU Performance Benchmarks 🔥 Горячее
После публикации результатов тестов, показывающих, что Cloudflare Workers значительно уступают по производительности Vercel, команда Cloudflare проанализировала тест и обнаружила ряд факторов, повлиявших на результат.
Во-первых, выяснилось, что в тесте использовалась более старая версия Cloudflare Workers, которая не была оптимизирована для этого конкретного типа нагрузки. Cloudflare немедленно выпустила обновление, улучшающее производительность.
Во-вторых, в тесте использовалась библиотека, которая вносила дополнительные накладные расходы на стороне Cloudflare, но не на стороне Vercel. После замены библиотеки на более оптимизированную, разница в производительности значительно сократилась.
Кроме того, команда обнаружила, что тест не полностью изолировал переменные — часть замедления была вызвана сетевыми задержками, а не производительностью самого Workers. После настройки теста для измерения только времени выполнения кода, разница стала минимальной.
В конечном счете, Cloudflare удалось не только догнать, но и превзойти Vercel по некоторым показателям, просто устранив узкие места в своем стеке.
Ключевой вывод: всегда полезно проверять свои тесты и окружение, прежде чем делать выводы о производительности. Иногда проблема не там, где кажется.
Комментарии (56)
- Cloudflare и Vercel продолжают обмениваться тестами и оптимизациями, но вместо обвинений они фактически сотрудничают, чтобы улучшить свои продукты.
- Стороны соревнуются в прозрачности: Cloudflare публикует исходные данные теста, а Vercel делает тот же тест открытым исходным кодом.
- Сообщество отмечает, что обе платформы теперь демонстрируют лучшую производительность, чем раньше, и что конкуренция в конечном счете выгодна для пользователей.
TigerBeetle is a most interesting database 🔥 Горячее 💬 Длинная дискуссия
TigerBeetle — это финансовый транзакционный движок, построенный на принципах, противоположных общепринятым: медленная разработка кода, детерминированное симуляционное тестирование и нулевые зависимости. Вместо SQL он использует примитивы дебета и кредита, что соответствует изначальной цели транзакционных систем — обеспечению бизнес-операций, как описал ещё Джим Грей в 1985 году.
Традиционные SQL-базы требуют 10–20 запросов для обработки одной финансовой транзакции, создавая узкие места, особенно при работе с «горячими» счетами. TigerBeetle, написанный на Zig, предлагает распределённую архитектуру по умолчанию, статическое выделение памяти и assertions в продакшене. Это ответ на растущие потребности в мгновенных платежах и реальном биллинге, где скорость и надёжность критичны.
Комментарии (170)
- Участники обсуждают технические особенности TigerBeetle, включая его специализацию на финансовых операциях, детерминированное тестирование и минималистичный подход к зависимостям.
- Высказываются критические замечания: отсутствие поддержки многопоточности для масштабирования, проблемы с аутентификацией и совместимостью с облачными платформами, такими как Cloudflare Workers.
- Поднимается вопрос о потенциальной предвзятости статьи, так как её автор является инвестором проекта.
- Отмечается, что традиционные SQL-базы данных по-прежнему эффективно справляются с большинством задач, несмотря на возраст.
- Обсуждаются возможные аналоги TigerBeetle, такие как FoundationDB, и его применимость за пределами финансового сектора.
Feedmaker: URL + CSS selectors = RSS feed
Сервис позволяет создавать RSS-ленты из любого сайта, указывая CSS-селекторы для заголовков, описаний и ссылок. Пользователь вводит URL, задаёт название фида и выбирает элементы для парсинга — например, самые читаемые статьи Washington Post или джазовые обзоры на Bandcamp.
Можно включать метаданные, обрезать параметры ссылок и тестировать результат перед генерацией. Инструмент полезен для автоматизации подписок на контент, который изначально не поддерживает RSS, или для создания персонализированных дайджестов.
Комментарии (28)
- Обсуждаются различные инструменты и подходы для создания RSS-лент из веб-страниц, включая самописные скрипты, готовые решения и использование XSLT.
- Поднимаются вопросы о весе зависимостей (например, Django), производительности и возможности бесплатного хостинга на платформах вроде Cloudflare Workers.
- Участники делятся альтернативами, такими как RSS-Bridge, FreshRSS и инструменты для парсинга HTML с помощью CSS-селекторов.
- Обсуждаются технические детали RSS/Atom, такие как необходимость GUID и дат для совместимости с читалками.
- Отмечаются проблемы с надежностью подобных инструментов на современном вебе, включая некорректную работу режима чтения в браузерах.
Cursed Knowledge 🔥 Горячее
- Zitadel: JS-движок не поддерживает именованные группы в regex.
- Entra: PKCE есть, но не указан в OpenID-доке → клиенты думают, что нет.
- EXIF: размеры в метаданных могут не совпадать с реальными.
- YAML: пробелы ведут себя неочевидно.
- Windows: скрытые файлы нельзя открыть флагом
"w"; опция SMBhide dot filesусложняет жизнь. - Git: автопреобразование LF ↔ CRLF ломает bash-скрипты.
- Cloudflare Workers:
fetchпо умолчанию используетhttp, даже если указанhttps. - Android/iOS: без разрешения на геолокацию GPS-данные могут тихо удаляться из фото.
- PostgreSQL NOTIFY: работает в транзакции → WAL растёт каждые 5 с при использовании socket.io-адаптера.
- npm-скрипты: каждый запрос к реестру → плохой health-check.
- JS-«пакетный» спамер: добавляет 50 лишних зависимостей «для обратной совместимости».
- bcrypt: учитывает только первые 72 байта пароля.
- JS Date: годы и дни считаются с 1, месяцы — с 0.
- ESM ↔ CJS: до Node 20.8 смешанный импорт мог вызвать segfault.
- PostgreSQL: максимум 65 535 параметров — большие bulk-insert ломаются.
- Clipboard API и др. работают только в HTTPS/localhost.
- TypeORM:
.remove()удаляет полеidиз переданного объекта.
Комментарии (131)
- Пользователи восторженно приняли идею «cursed knowledge» — каталога кошмарных нюансов, сопровождаемого коммитом-фиксом.
- Обсуждали PostgreSQL-лимит в 65 k placeholder’ов, причины появления 50 лишних npm-пакетов, скрытые потоки NTFS/ADS и «призрачные» файлы macOS.
- Упомянули, что bcrypt обрезает пароль до 72 байт, Cloudflare Workers могут игнорировать https, EXIF-даты в Immich — постоянная головная боль.
- Поделились личным опытом: неразрывные пробелы, case-insensitive имена в macOS, Java-классы в Oracle, «магия» YAML-парсеров.
- Кто-то предложил превратить подборку в репозиторий-«Awesome Cursed», другие подчеркнули пользу такого «терапевтического» лога ошибок.