Streak redemption, vectors are the new JSON, CommonJS is hurting JavaScript, advanced macOS commands, GPT-Migrate, space-proof code & more

Changelog News

Developer news worth your attention

Hello friends! šŸ‘‹

We donā€™t track your clicks in this newsletter, but have you ever had a sudden influx of visitors and wondered who sent ā€™em?! Until now, nobody has been able to close that loop, giving us all the (in)visibility of a non-code contributor on most open source projects. šŸ˜”

So, weā€™re now adding utm_source=changelog-news to each outbound link. This seems like a happy middle ground: anonymous referral data gets sent to the folks we link to, while you still benefit from the better UX and privacy of no redirects.

Disagree? Hit reply and tell me why.

Ok, letā€™s get into this weekā€™s news. Listen here šŸŽ§


Streak Redemption

Lukas Mathis (one of my favorite design-focused writers) takes up one of the problems with using streaks as a motivator:

losing a streak can be so demoralizing that it can be difficult to start from scratch, and get going again.

Iā€™ve certainly experienced that. The longer the streak, the harder the fallā€¦ enter the concept of ā€œstreak redemptionā€

if your app has a streak feature, provide some way to recover from a streak loss after it has happened.

This could be a harder task that makes up for a lost day, or maybe a lost day is redeemed if the user manages to continue the streak for a certain amount of days, or perhaps itā€™s something else.

Love it!

Vectors are the new JSON

Maybe youā€™ve heard Craig Kerstiens tell us about JSON in Postgres and how the NoSQL movement came along and had something Postgres didnā€™t have until they added proper JSON support and then Postgres was pretty much back on par with the newer databases. Looks like itā€™s time to swap out the subject, rinse, and repeat. Hereā€™s Jonathan Katz:

Vectors are the new JSON.

That in itself is an interesting statement, given vectors are a well-studied mathematical structure, and JSON is a data interchange format. And yet in the world of data storage and retrieval, both of these data representations have become the lingua franca of their domains and are either essential, or soon-to-be-essential, ingredients in modern application development. And if current trends continue (I think they will), vectors will be as crucial as JSON is for building applications.

There are a bunch of new vector databases on the market, but Postgres junkies should have no fear because pgvector is hereā€¦

Similar to the PostgreSQL 9.2 days of JSON, weā€™re in the earlier stages of how we store vector data in PostgreSQL ā€“ and while a lot of what we see in both PostgreSQL and pgvector is very good, itā€™s about to get a whole lot better.

Backend Error Monitoring 101 (Tuesday, July 11th)

Thanks to Sentry for sponsoring this weekā€™s Changelog News šŸ’°

If finding errors in your backend project is like searching for a needle in a code haystack, Sentry can be your metal detector.

Not so sure about that? Join this FREE 20-minute session where two Sentry experts walk you through setting it up for your backend project in minutes. Plus, theyā€™re giving a sneak peak of some upcoming error monitoring features.

Sign up here to learn how you can reduce resolution time down from days to minutes in your backend project. What do you have to lose?!

CommonJS is hurting JavaScript

Andy Jiang from the Deno project:

JavaScript, the undisputed king of web development, is being sabotaged ā€” not by a rival language or a revolutionary new technology, but by its own baggage from the past. This insidious saboteur is none other than CommonJS, the antique module system that weā€™ve tolerated for far too long.

He goes on to tell the history of CommonJS and how it was born before ES Modules were a thing but now it needs to go bye-bye. What do you think?

The Rise of the AI Engineer

Is it (already) time to scratch ā€œPrompt Engineerā€ off your resumĆ©? Swyx thinks so:

We are observing a once in a generation ā€œshift rightā€ of applied AI, fueled by the emergent capabilities and open source/API availability of Foundation Modelsā€¦

I take this seriously and literally. I think it is a full time job. I think software engineering will spawn a new subdiscipline, specializing in applications of AI and wielding the emerging stack effectively, just as ā€œsite reliability engineerā€, ā€œdevops engineerā€, ā€œdata engineerā€ and ā€œanalytics engineerā€ emerged.

Check the article to see why he fully expects ā€œAI Engineerā€ to be a job title soon and on top of that: ā€œThis will likely be the highest-demand engineering job of the decadeā€


Advanced macOS commands

This is a solid rundown of command-line tools available specifically on macOS. Have you heard of caffeinate, networkQuality, and screencapture? If you answered ā€˜noā€™ to any of those, youā€™ll absolutely learn something new.

Easily your migrate your codebaseā€™s framework or language

Migration is a costly, tedious, and non-trivial problem. Do not trust the current version blindly and please use responsibly. Please also be aware that costs can add up quickly as GPT-Migrate is designed to write (and potentially re-write) the entirety of a codebase.

However, with the collective brilliance of the OSS community and the current state of LLMs, it is also a very tractable problem.

ā€œThereā€™s a GPT for thatā€ is the new
ā€œThereā€™s an app for thatā€ is the new
ā€œThereā€™s a website for thatā€ is the newā€¦

How NASA writes space-proof code

NASAā€™s ā€œPower of Tenā€ is a set of rules for developing safety-critical code that focus on testability, readability, and predictability. In the linked post, Jason Kottke embeds an excellent video explaining the rules and adds some color of his own to the topic:

Even here on Earth, perhaps more of our software should work this way. In 2011, NASA applied these rules in their analysis of unintended acceleration of Toyota vehicles and found 243 violations of 9 out of the 10 rules. Are the self-driving features found in todayā€™s cars written with these rules in mind or can recursive, untestable code run off into infinities while itā€™s piloting people down the freeway at 70mph?

šŸ˜Ž Meme break

Used car software salesman: ā€œWhat do I have to say to get you in a new abstraction layer today?ā€

Docker inside Linux VM inside macOS

With Twitter and Reddit on the fritz, the fediverse is the place to keep up with our silly dev jokes throughout the week. Follow changelog@changelog.social and jerod@changelog.social.

Who killed Google Reader?

David Pierce for The Verge, on the tenth anniversary of Google Readerā€™s demise:

Googleā€™s bad reputation for killing and abandoning products started with Reader and has only gotten worse over time. But the real tragedy of Reader was that it had all the signs of being something big, and Google just couldnā€™t see it. Desperate to play catch-up to Facebook and Twitter, the company shut down one of its most prescient projects; you can see in Reader shades of everything from Twitter to the newsletter boom to the rising social web.

Iā€™m still sad about this. Not because I personally needed Google Reader to exist (I switched to Feedbin and just kept doing my thing), but because apparently so many other people did. It was like everyone just stopped reading RSS overnight. (Not technically true, but effectively.)

Fast machines, slow machines

Julio Merino, after a viral Twitter thread he posted showing a ~2000 era PC running Windows NT 3.51 out-performing a Surface Go 2 running the same apps on Windows 11:

I questioned how computers are actually getting better when trivial things like this have regressed. And boom, the likes and reshares started coming in. Obviously some people had issues with my claims, but there seems to be an overwhelming majority of people that agree we have a problem.

What follows are his thoughts on defining what exactly the problem is and how heā€™s concerned about us (n)ever righting the ship.

šŸ“” Other things on the radar

  • Practiced: Paul Graham on how to do great work. ā€œThe following recipe assumes youā€™re very ambitious.ā€
  • Tipped: DevTools expert Patrick Brosset shares 15 advanced tips and tricks: detecting unused code, listing the fonts used on a page, measuring arbitrary distances, stuff like that.
  • Billed: A tool for generating PDF invoices from the command-line. invoice generate --from "Me" --to "You" --item "News" --discount 1.0
  • Dumped: Quivr is a ā€œsecond brainā€ tool for storing and retrieve unstructured information using LLMs. ā€œThink of it as Obsidian, but turbocharged with AI capabilities.ā€
  • Synced: a SQLite extension that allows you to synchronize changes from one instance of SQLite to another
  • Banked: Jeff Geerlingā€™s self-published Ansible book has earned him $300k over the course of 41 revisions. Sales were undoubtedly bolstered by his (hard-earned) audience reach, but still.
  • Phoned: Eruda is a development console for mobile browsers.

Eruda in action


šŸŽ§ ICYMI: Recent good pods from us

Even the best rides come to an end ā€“ Last Monday, Kelsey Hightower announced his retirement from Google. On Tuesday, he sat down with us to discuss why, how & whatā€™s next. Along the way, Kelsey teaches us how not to suck at work, analyzes his magical demos, fights off the haters (again) & opines on System Initiative, Dagger & 37Signals moving off the cloud.

Donā€™t make things worse! ā€“ Taylor Troesh joins Jerod to discuss a bevy of software development topics: yak shaves, dependency selection, -10x engineers, IKEA-oriented development, his new content-addressable programming language & much more along the way.

K8s vs serverless for distributed systems ā€“ Listener Joe Davidson recently tweeted: ā€œIā€™d really be interested in an episode debating Kubernetes vs serverless functions for distributed systems. As someone working a lot with serverless to create large scale systems, for me the complexity in Kubernetes doesnā€™t seem worth it, especially when onboarding new people. But Iā€™d like to see it from the other perspectives. I could be missing something.ā€ So Natalie invited Joe on the show alongside Abdel Sghiouar and Srdjan Petrovic to discuss!


Thatā€™s the news for now!

We have a great interview coming your way on Wednesday. Adam and I are talkinā€™ Efficient Linux at the Command Line with Daniel J. Barrett. Iā€™ve been using Linux for 20+ years and I still learned a lot. Hopefully you will too!

Have a great week, forward this to a friend who might dig it, and Iā€™ll talk to you again real soon. āœŒļø

ā€“Jerod