Feed

Links, thoughts, and things I'm exploring.

What came first: the CNAME or the A record?

Related HN discussion

An update to cache implementation in Cloudflare’s DNS resolver led to DNS resolution failures due to CNAME and A record ordering issues.

DNS clients differ in how they handle the ordering of CNAME and A records in the responses: some expect the CNAME record to be before the A record, while others do not require any specific order. Cloudflare states that their interpretation of the RFC 1034 did not mandate any specific order, leading to the issues when some clients expected CNAME before A record.

They also mention that even if the RFC is interpreted to have CNAMEs before A record, the resolution might still fail if multiple CNAME records are not in the expected order. For …

WASM Databases

WASM (WebAssembly) databases expand browser client-side storage options beyond the traditional options such as IndexedDB. IndexedDB provides a key-value API rather than a relational model. There have been attempts previously at client side storage with SQL syntax in browsers, such as WebSQL, which was removed from Chrome in 2022.

With WebAssembly, database engines can run directly inside the browser runtime. SQLite compiled to WASM (Sqlite3 WASM) and PGlite are the two examples of this.

Last year, Notion added a WASM implementation of SQLite to their website for caching data, which improved page load times by 20%.

PGlite brings PostgreSQL to the browser using WebAssembly. From the PGlite …

GitHub Actions Has a Package Manager, and It Might Be the Worst

Related HN discussion

An interesting blog post by Andrew discussing the issues around GitHub Actions’ package management. I’ve had some doubts about the versioning model in GitHub Actions for a while, and this post affirms many of those concerns. The high numbers in the linked research are not surprising at all.

Mutable versions. When you pin to actions/checkout@v4, that tag can move. The maintainer can push a new commit and retag. Your workflow changes silently.

This in my opinion is the main issue, which gives a false sense of security. The v4 you ran last month might not be the same v4 you run today, and there’s no indication that anything has changed.

Invisible transitive …