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?ā
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.
š§ 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