DevRel vs ZIRP, Ghost's ActivityPub server, Pongo, funding Ladybird, Hyrum's Law, S3 as container registery & more

Changelog News

Developer news worth your attention

Jerod here! 👋

Fast Company has a fun piece on what the internet looked like back in 1994, featuring 15 webpages born that year. My favorite one is this page that lived on which shows the server and the webmaster at Microsoft…

A man in shorts smiles in front of a single server rack at Microsoft HQ

My how the times have changed… Ok, let’s get into the news.

🎧 Simply the best pods for devs

🎙️ Code review anxiety (Carol Lee, PhD)
💚 A different kind of rug pull (Adam & Jerod)
🚀 What happened to open source (Gareth Greenaway)
🪩 A standard library for JavaScript (Philipp Burckhardt)
🤖 Stanford’s AI Index Report 2024 (Nestor Maslej)
Dependencies are dangerous (Go Time crew)

🧑‍🏫 Programming advice for my younger self

Marcus Buffett finally thinks he’s a decent programmer, so he rounded up a bunch of his learnings and wrote them down with the idea of “what would have gotten me to this point faster?” Here’s a sampler:

  1. If you’re shooting yourself in the foot constantly, fix the gun
  2. Assess the trade-off you’re making between quality and pace, make sure it’s appropriate for your context
  3. Spending time sharpening the axe is almost always worth it
  4. If you can’t easily explain why something is difficult, then it’s incidental complexity, which is probably worth addressing
  5. Bad code gives you feedback, perfect code doesn’t. Err on the side of writing bad code

Marcus unpacks each of these conclusions and provides more as well. Good reading, especially if you want to catch up to him quickly. 🏃

🪦 DevRel’s death as Zero Interest Rate Phenomenon

Swyx asks and answers a question that’s been bandied about lately:

“Is Devrel dead?” His answer: No. BUT!

I prefer to think of the Devrel excesses of 2020-2022 (example) as a “Zero Interest Rate Phenomenon”, and that we are now seeing a relative right-sizing of expectations, one that perhaps has a lot more room to go.

He goes on to back this conclusion up with five bullet points and a list of devtools that are succeeding with no/minimal DevRel staff. In conclusion, DevRel is not dead, but ZIRP DevRel is. Folks need to adjust accordingly.

Stay tuned. We’re having Swyx on Changelog & Friends to unpack the implications in great detail this coming Friday.

👻 The Ghost team opens up their ActivityPub server

A mult-itenant ActivityPub server for Ghost, built with Fedify. This service makes it possible for independent websites to publish their content directly to the Fediverse, enabling networked publishing to the open social web.

This repository is being actively developed and is currently in early alpha - expect many breaking changes. It is not suitable for production use.

I still have no idea when (or if) ActivityPub will deliver on its potential, but the builders keep on building… (via Andy Piper)

💰 How Neo.Tax accelerated their dev lifecycle

Thanks to Neon for sponsoring Changelog News

Neon has been a game-changer for the engineering team at Neo.Tax, reducing their dev lifecycle from days to minutes thanks to branching. Here’s what Miguel Hernandez (Backend Tech Lead) has to say about it:

Neon shortened the lifecycle for us between making a change in the product, validating it, and generating the PDFs we expect. Before, it used to be terrible: resetting your database, running migrations, all of that. With Neon, we just create a database branch, link it with the ticket, and use that URL in local development. This has significantly streamlined our end-to-end testing process”

Miguel also calls Neon’s database branching “the best quality-of-life improvement to my tech stack that I can think of in recent years. Second to maybe only Copilot.”

Read the full case study and experiment with database branches.

🐘 Pongo is like Mongo but on Postgres

Pongo treats PostgreSQL as a Document Database benefiting from JSONB support. Unlike the plain text storage of the traditional JSON type, JSONB stores JSON data in a binary format. This simple change brings significant advantages in terms of performance and storage efficiency.

Essentially, Pongo takes the MongoDB API and translates it to native Postgres queries. This could serve as a nice temporary shim layer while transitioning a Mongo project over to Postgres… one bit at a time. Not saying you’d want to do that, but you might want to do that. 😉

💸 I’m funding Ladybird because I can’t fund Firefox

Jack Kelly, following last week’s Ladybird Browser Initiative announcement:

Chrome is eating the web. I have wanted to help fund a serious alternative browser for quite some time, and while Firefox remains the largest potential alternative, Mozilla has never let me. Since I can’t fund Firefox, I’m going to show there’s money in user-funded web browsers by funding Ladybird instead. You should too.

If you’re curious why Jack can’t fund Firefox, TIL they won’t let you?! 🙈

Despite desperately trying to find more revenue sources, Mozilla Corporation stubbornly refuses to just let users fund Firefox. Mozilla Foundation even has a specific donation form for Thunderbird (Mozilla’s mail client), but not Firefox. I’m sure they could have found some way of making it work with their corporate structure, and it baffles me that they haven’t.

Adam & I discussed the Ladybird news on last week’s Friends and we’re hoping to get Andreas back on the show for an even deeper-dive… 🤞

💡 Idea of the week: Hyrum’s Law

I hadn’t heard of Hyrum’s Law until Kris Krycho brought it up on our SemVer discussion, but now I can’t stop thinking about it. Put succinctly, the observation is this:

With a sufficient number of users of an API,
it does not matter what you promise in the contract:
all observable behaviors of your system
will be depended on by somebody.

While listening back to our recent convo with Daniel Stenberg, I couldn’t help but conclude that if Hyrum’s Law holds true, somebody is depending on each of curl’s 263 (!) command-line flags…

💥 curl team strikes final blow in wget rivalry*

Daniel Stenberg:

Users tell us that remembering what curl options to use when they just want to download the contents of a URL is hard. This is one often repeated reason why some users reach for wget instead of curl on the command line…

Samuel Henrique decided to do something about it. Today he announced that he not only created wcurl as a curl wrapper aimed at meeting this exact need, he also created a Debian package out of it and made sure wcurl now ships as part of the curl package.

Take that, wget!

(*Rivalry language added by me for dramatic effect. Did it work?)

👀 Review your own PRs

Sophia Willows makes a case that I respect, but I can’t ever see myself actually adhering to. Maybe you can, though?

Great chefs taste their food, and great software engineers review their changesets. By adopting the practice of reviewing my own pull requests in the GitHub UI, I’ve been able to catch many mistakes that I let slip through at design time. The environmental change from code editor to GitHub diff is—in my experience—a powerful tool for priming my brain to find slop.

Selfishly this is great because it means my coworkers see less of my mistakes. More altruistically, it’s makes for a better review experience when they don’t need to point out low-hanging fruit that I ought to have found myself. Shifting left on these streamlines the review process and makes team collaboration more delightful.

This small change has made a significant impact on my workflow, and it can transform yours too.

🫙 You can use S3 as a container registry

Adolfo Ochagavía discovered something neat while developing a custom container image builder: if you expose an S3 bucket via HTTP and upload the image’s files to specific paths, docker pull works without issue. Why does this matter? In his case, Adolfo found that uploading images to S3 is almost an order of magnitude faster than AWS’ registry (ECR). Speed matters in his use-case, so doing this might make sense. For you? Who knows… but the more you know ✨

In case it’s not already clear: this is all very experimental. I’m waiting to do more research before making any serious claims. Will it end up in production? Or will you, my dear reader, send me an email explaining how my approach is utterly flawed?

🎞️ Clip of the week

💦 Bidet talk with Kelsey Hightower was a surprise bonus, but this segment on how he approaches conference talks should be required listening for anyone who might take the stage. So. Much. Wisdom.

Kelsey Hightower video thumbnail

That’s the news for now, but we have some great episodes coming up this week:

Have a great week, forward this to a friend who might dig it & I’ll talk to you again real soon. 💚