Introducing pg_karnak: Transactional schema migration across tenant databases
Dive deep into the architecture of pg_karnak, PostgreSQL extension, metadata store and transaction coordinator designed for reliable and scalable schema migrations across many tenants and Postgres instances. This post explores PostgreSQL internals, including extension hooks, transaction lifecycle, and locking mechanisms, offering insights into building scalable, reliable systems for distributed applications.
I’ve been working professionally for the better part of a decade on web apps and, in that time, I’ve had to learn how to use a lot of different systems and tools. During that education, I found that the official documentation typically proved to be the most helpful.
A Layered Approach to Speculation Rules – CSS Wizardry
The new Speculation Rules API is incredibly powerful, but we can do so much more! By taking a layered, opt-in approach, we can add more progressive and effective functionality.
Mastering Ruby Debugging: From puts to Professional Tools | The RubyMine Blog
In this post, we'll explore various tools and approaches available to Ruby developers for investigating bugs. We'll cover several classes of tools, each with its own strengths and weaknesses.
About 10 years ago I wrote a post PostgreSQL for the Busy MySQL Developer, as part of switching from MySQL to Postgres for my personal and professional projects wherever I could.
The art of Turbo Mount: Hotwire meets modern JS frameworks—Martian Chronicles, Evil Martians’ team blog
Explore the fusion of Hotwire simplicity and JavaScript interactivity using the integration of Turbo Mount and React, Vue, or Svelte components for a dynamic and responsive user experience.
Keeping Rails cool: the modern frontend toolkit—Martian Chronicles, Evil Martians’ team blog
We advocate and build for Rails startups, and we know this tech gives teams a productivity and competitive edge. But we also know what startups struggle with the most: frontend. Let's share our silver toolkit for dealing with it!
Some time ago I was talking about an ahead-of-time Ruby compiler. We started the project with certain goals and hypotheses in mind, and while the original compiler is at nearly 90% completion, there are still those other 90% that needs to be done.
A guide to resolving common gem installation errors such as `pg`, `nokogiri`, and `msgpack` when setting up a Rails project on an M3 Mac with Ruby 2.7.8, including solutions and troubleshooting steps.
Through the weak package, you can create these special pointers that automatically become nil when their target memory gets collected. While they’re a bit trickier to use than regular pointers, they’re super useful for things like canonicalization maps and memory-efficient caching. The implementation is pretty clever too, using an 8-byte indirection object to make garbage collection more efficient.
Why we switched to Astro (and why it might interest you)
Follow the first article of a series in which we'll try to summarize our journey with Astro, sharing many cool little tricks and details we found out (or totally came up with) in the process.