weird things engineers believe, npm package chaos, what Go got right/wrong, code is not tech debt & more

Changelog News

Developer news worth your attention

Hello again! 👋

As the kids say: we are SO back! (Do the kids say that?)

I collected too many high quality links during break. I didn’t even know what to do with them all. So, scroll to the end of today’s newsletter for a big heaping pile of links (+ commentary)

Ok, let’s get into the news. (Audio Edition)


🙃 The I in LLM stands for intelligence

Curl creator/maintainer, Daniel Stenberg, documents his frustration with recent AI tooling “advancements”

I have held back on writing anything about AI or how we (not) use AI for development in the curl factory. Now I can’t hold back anymore. Let me show you the most significant effect of AI on curl as of today – with examples.

Daniel is clearly of the opinion that we haven’t gained much of value from generative AI tooling, but he does seem more optimistic about the future than he is about the present:

I am convinced there will pop up tools using AI for this purpose that actually work (better) in the future, at least part of the time, so I cannot and will not say that AI for finding security problems is necessarily always a bad idea.

I do however suspect that if you just add an ever so tiny (intelligent) human check to the mix, the use and outcome of any such tools will become so much better. I suspect that will be true for a long time into the future as well.

My mind is open and willing to be changed, but I’m with Daniel. The human touch is absolutely necessary today and I suspect that will remain the case for much longer than some would have us to believe.

đŸ€Ș Weird things engineers believe about web dev

Since Brian Birtles quit Mozilla and went back to full-time web development, he’s discovered a few surprises:

It turns out Web development is actually pretty hard, Web developers are actually very smart, and some of these frameworks and techniques we mocked as browser engineers aren’t so bad. Oops.

At the same time, it turns out some Web developers have ideas about browsers and the Web that, as a former browser engineer and standards editor, I’m a bit dubious of.

In this post, Brian shares eight things that surprised him and why. Things like, “All sites should work without JavaScript”, “Browsers aren’t made to run SPAs” & “Web development shouldn’t need a build step.”

📆 Join the NATS community for RethinkConn 2024

Thanks to Synadia for sponsoring Changelog News 💰

When it comes to distributed systems, NATS is proving to be the go-to open source tech for solving all kinds of challenges. Pub-sub? Request-reply? Data streaming? Key-value store? Object store? NATS does THAT!

NATS enables truly innovative solutions. Who better to hear stories from than the actual users themselves? Join the NATS community for RethinkConn 2024 and hear them for yourself, for no cost whatsoever!

The FREE 3-hour virtual event is happening on Jan 11th, 2024 at 16:00 UTC. Sign up today

💣 The npm Package Chaos of 2024

An npm user named PatrickJS launched a troll campaign with a package called “everything,” which depends on all public npm packages. But that’s not all. The creator took their prank to the next level by setting up http://everything.npm.lol, showcasing the chaos they unleashed. They even included a meme from Skyrim, adding some humor (or mockery, depending on your perspective) to the situation.

Feross Aboukhadijeh details the fallout from this prank, the unintended consequences that trapped even PatrickJS in his own web & the (since-deleted) apology he wrote on GitHub Issues.

🧐 Go: what we got right, what we got wrong

Go(lang) co-creator Rob Pike summarizes his closing keynote from GopherConAU in November, 2023. Things he thinks they got right include the gopher mascot, the specification, having multiple implementations, portability, tooling & more. Things he thinks they got wrong revolve around the compiler, project management, package management & documentation.

There’s lots to learn here for anyone creating a language of their own or anyone interested in the why behind the success/failure of (at least one) large open source efforts.

🏩 Code is not technical debt

Gavin Howard reacts to a post he thinks is “so wrong” called All Code Is Technical Debt, where the thesis is:

As the more code you add to an application, the slower development becomes, I view all code as technical debt.

Gavin breaks down why he believes this thesis is wrong and then establishes his own rule:

Your software is trying to solve a problem, and every problem has an unknown shape because reality has a surprising amount of detail


Technical debt is every place where the software does not fit the problem.

He then goes on to explain why this is true and the nuance surrounding it. This entire exchange has me thinking that perhaps Kris Brandow was right (gasp!) about the whole “tech debt” metaphor just being bad and that we should ditch it altogether



đŸŽžïž Clip of the week

The wonderful Una Kravets was on JS Party late last year catching us up on all the awesome new CSS features you really should be using in your daily web work.

Una Kravets clip thumbnail


🖇 A big heaping pile of links (+ commentary)

The AHA Stack – Combine Astro, htmx and Alpine.js to create modern web applications sending HTML over the wire, replacing the SPA JS-heavy approach with a much simpler set of mental models and workflows.

(I’m a sucker for clever new stackronyms)

Heynote – A dedicated scratchpad for developers

(I’ve gone all-in on Obsidian, but this looks v nice)

The Web Renaissance Takes Off – Anil Dash: “And all along, lying in wait for a moment just like this, was the weird, wild world wide web.”

(I think it’s time to get Anil on the pod)

DeskHop - Fast Desktop Switching. “Did you ever notice how, in the crazy world of tech, there’s always that one quirky little project trying to solve a problem so niche that its only competitors might be a left-handed screwdriver and a self-hiding alarm clock?”

(Scratching your own itch FTW every time!)

It’s not microservice or monolith; it’s cognitive load you need to understand first – How understanding cognitive load and team capacity can help you decide on an architectural style.

(Is it just me or is Substack’s subscribe overlay more annoying than even Medium’s?)

Huh? – A simple, powerful library for building interactive forms and prompts in the terminal.

(The Charm team just keeps cranking out hits)

Perfectionism and Procrastination – How they’re connected and what to do about It.

(One of my most useful mantras: “Progress over perfection”)

How to start speaking at conferences – “Most advice about speaking is gobsmackingly bad. And even though we all have plenty of experience watching people talk on stage, our intuition usually fails to reveal much about how to go about giving an enjoyable and effective talk. Hopefully some of my experience figuring this out the hard way will prove helpful to you.”

(Justin made his name giving awesome conference talks, so his advice is bona fide)

Mistral AI endpoints now available – Mistral AI brings the strongest open generative models to the developers, along with efficient ways to deploy and customise them for production.

(The commoditization of data models continues apace)

Introducing MemoryCache – MemoryCache, a Mozilla Innovation Project, is an early exploration project that augments an on-device, personal model with local files saved from the browser to reflect a more personalized and tailored experience through the lens of privacy and agency.

(Locality is proving to be more important than I originally gave it credit)

FireDBG – a time travel visual debugger for Rust

(So cool, but I’ll be print debugging the day of my retirement from the biz)

htmx is a erlang – “the recent growing popularity of htmx in all walks of life from cereal flavors to car insurance rates to nuclear security protocols once again is surfacing a problem we haven’t solved: post-cloud-native developers don’t understand basic things anymore.”

(htmx is so hot right now)

macOSpilot: your personal macOS AI assistant – macOSpilot answers your questions about anything, in any application. No need to reach for another window.

(Another cool demo that I’d never actually use. But maybe you might?)

What if an SQL Statement Returned a Database? – Every SQL statement is limited to return a single, possibly denormalized, table. This design decision has far reaching consequences


(Yet another reminder how much smarter than me most of y’all are)

Bash One-Liners for LLMs – Justine Tunney writes up six solid examples of how a llamafile can help you be productive on the command line.

(I think it’s time to get Justine on the pod)

Amphion – A toolkit for audio, music & speech generation

(Pretty soon I’ll just write the Changelog News script and let my voice read it for me)

The Largest Money-Printing UI Element Ever Made – Jim Nielsen on why the browser’s URL/search bar is an expensive piece of real estate.

(Runner up: )

Web Components Will Outlive Your JavaScript Framework – “For all its warts, the web has become the most resilient, portable, future-proof computing platform we’ve ever created — at least, if we build with that in mind.”

(Your favorite underwear might also outlive your JavaScript framework)


🎧 ICYMI: Recent good pods from us

đŸŽ™ïž Dear new developer – We’re kicking off the year with Dan Moore, author of ‘Letters to a New Developer’ — a blog series of letters of what Dan wished he had known when starting his developer career. We discuss the value of online communities for new developers, the importance of communication skills, and the need to stay relevant in a rapidly changing industry.

💚 State of the “log” 2023 – Our 6th annual year-end wrap-up episode! This time we’re featuring 12 (yes, 12!) listener voice mails, our favorite episodes of the year & some insanely cool Breakmaster Cylinder beats made just for this occasion. Thanks for listening!

🎊 New Year’s Party – It’s our 5th annual New Year’s party! Jerod & the gang review our predictions from last year, discuss what’s trending in the web world, make a few predictions for 2024 & even set some new resolutions for this year.

đŸȘ© What’s next in JavaScript (a TC39 update) – Daniel Ehrenberg (software engineer at Bloomberg, web standards author / champion & VP of ECMA International) joins JS Party to discuss new features that have landed in JavaScript and to preview what’s cooking in various standards bodies across the web platform.

đŸ€– Open source, on-disk vector search with LanceDB – Chang She (co-founder and CEO of LanceDB) joins Practical AI to talk through the specifics of their open source, on-disk, embedded vector search offering. We talk about how their unique columnar database structure enables serverless deployments and drastic savings (without performance hits) at scale.


That’s the news for now, but we have some great episodes coming up this week: Justin Garrison tells us about Amazon’s silent sacking on Wednesday and Gerhard is back for Kaizen 13 on Friday!

Have a great week, tell your friends about Changelog News if you dig it, and I’ll talk to you again real soon. 💚

–Jerod