10 years of LinemanJS, too many abstractions, RPi 5 comparison, curate to create, Invidious, Solid Cache, docker images for debugging & more

Changelog News

Developer news you can groove to

What up, nerds! šŸ•ŗ

Shout out to the many old & new friends we saw in Raleigh at ATO last week! It was a great event and we recorded a bunch of awesome conversations which weā€™ll be shipping to your earholes real soon.

Ok, letā€™s get into the BIG news. (Listen here)


šŸŽ¶ Introducing Changelog Beats

I teased it last week, this week we deliver!

Itā€™s a meā€¦ Changelog Beats!

Itā€™s not that uncommon to have the mysterious Breakmaster Cylinder produce your podcastā€™s theme song. But itā€™s super uncommon to collaborate with BMC over the course of many years to produce fresh, custom beats across your entire podcast universe.

Theme songs, outros, ad music, ins, outs, stabs, robot noises, jinglesā€¦ you name it and BMC has produced it for us. Eventually, we ended up with a deep catalog of tracks that only live on our podcasts and hard drives. Not anymore, baby!

Weā€™re excited to announce the release of TWO full-length musical albums for your streaming/purchasing pleasure! (More to comeā€¦)

šŸ§ Why the right tools fail for the wrong reasons

One-time Lineman.js purveyor, Justin Searls, reflects on the toolā€™s 10th anniversary:

Lineman was our attempt to create a pleasant developer experience for building single-page JavaScript applications without tying developers to any particular backend language or frameworkā€¦ Iā€™m biased, but I really believe Lineman was the best tool available at the time for what is now an incredibly common job.

He goes on to ask himself (and try to answer) a question many of us ask ourselves often:

When I noticed the upcoming anniversary in my calendar, I could only think of one question to reflect on: why did Lineman fail and what can we learn from it today?

I donā€™t know if Justinā€™s analysis is correct or not. (These arenā€™t the easiest retrospectives to do.) Regardless of that, he throws in a ā€œhow to pick the best tool for the jobā€ section near the end that is worth the price of admission and then some.

šŸ„ž We have used too many levels of abstractions and now the future looks bleak

The Unix Sheikh:

A steering wheel is an abstraction that makes it easier for me to drive my car. Power steering is yet another level of abstraction that further improves the driving experience. Abstractions are nice, they generally improve the quality of life. However, in Denmark we have a proverb that says:

Too little and too much spoils everything.

What good does an abstraction do when it breaks and nobody any longer understands how the technology under the hood works?

Good question! In my experience, all abstractions leak at some point. So youā€™ve either taken the time to understand how it works under the hoodā€¦ or you will soon have to. The author isnā€™t arguing that abstractions are bad, per se, but thatā€¦

We need abstractions, no doubt about it, but every level of abstraction comes with a price which, ironically enough, eventually can cause a massive loss in profit.

They go on to provide a specific example case, some advice to people studying technology & an update on the point of the post after receiving reader feedback.

šŸ‹ļø How does Raspberry Pi 5 stack up against its competitors?

Adam at PiCockpit compares the newly-announced Raspberry Pi 5 to the Orange Pi 5 Plus and the Rock 5 Model B. In brief, the Raspberry Pi 5 is underpowered in the CPU, GPU, and RAM specs. It also comes in last in video because of the micro HDMI port instead of the full HDMI ports of the other two devices and it lacks an audio jack. (Which you may or may not care about.)

The Raspberry Pi 5 is smaller than the other two devices, so it has that going for it. It gets smoked in all of Jeff Geerlingā€™s benchmarks, but it is also the cheapest option. (Which you probably do care about.)

Phoronix Test Suite Benchmark

šŸ—“ļø Donā€™t miss Neo4jā€™s NODES 2023 online conf

Thanks to Neo4j for sponsoring Changelog News šŸ’°

Thereā€™s so much going on in the data and ML space ā€“ itā€™s hard to keep up! Example: did you know that graph technology lets you connect the dots across your data and ground your LLM in actual knowledge?

To learn about this new approach, donā€™t miss NODES on October 26th.

At this free online conference, developers and data scientists from around the world share how they use graph technology for everything from building intelligent apps and APIs to enhancing machine learning and improving data visualizations.

There are 90 talks over 24 hours, so no matter where you are, you can attend live sessions.

Register for free right here!

šŸ˜© Youā€™re not lacking creativity, youā€™re overwhelmed

Jorge Medina hits too close to home with this one:

You come home from work. Tired and looking to disconnect a bit with some entertainment. But youā€™re faced with the choice: which streaming service do I use? I have 5. You choose one. Letā€™s say Netflix. Now what?

The home screen welcomes you to a selection of titles. The thumbnails and titles all hyper-optimized for you to feel enticed to watch them. So you end up browsing mindlessly for 30 minutes until you settle on watching Friends again for the 894th time.

Thatā€™s called decision fatigue; where the mental effort required to evaluate and choose between many options can be exhausting.

Itā€™s exhausting. Itā€™s an epidemic.

And it has turned us into digital hoarders

His advice? Curate to create. And how do you go about that? By building a curation system, of course! He goes on to lay out the CODE Framework (Capture, Organize, Distill, Express) as well as practical steps toward building your own curation system.


šŸ¤™ Quick hits that may interest you

Ned Batchelder asks about social media: where did everyone go?

Zack Proser writes why you should run your own tech blog

Jason Eckert thinks Linux distro hopping is a bad idea

An encouragement to use and abuse of the dev branch pattern

Luca Cavallin made a simple Linux container runtime in C

Denis Kranjcec says he failed at TDD, but eventually got at right

Josh Ellithorpe goes deep on SSH hardening with ssh-audit


šŸ‘€ Invidious is an open source alternative frontend to YouTube

Pick from a list of publicly-hosted instances or set it up for yourself and you have a privacy focused, ad-free, programmable (via REST API) YouTube frontend that works anywhere that can launch a modern web browser.

šŸ’½ 37signalsā€™ new disk-backed ActiveRecord::Cache::Store

Solid Cache is a new cache store for Railsā€™ ActiveRecord library with different trade-offs from the typical Memcached or Redis stores:

Solid Cache uses a SQL database as its cache store. We get a much larger cache at a fraction of the storage costs of memory caches like Redis or Memcached. For us, thatā€™s a cache size of months rather than days.

On Basecamp, theyā€™re now seeing reads that are ~40% slower than their old Redis store, but the cache is 6 times larger and running on storage that is 80% cheaper. YMMV of course!

With lightly used Rails caches you may not see the same performance boost, but you could benefit from simpler and cheaper infrastructure by moving the cache into the primary database.

šŸŖ² A collection of Docker images to solve all your debugging needs

Whenever Martin Heinz troubleshoots, he looks for a good container image that has all the right tools to solve the problem. Unfortunately, that process is often a waste of time. So, he wrote up a set of images that satisfy his troubleshooting needs for all of us to use.


šŸŽ§ ICYMI: Recent good pods from us

Pushing ntfy to the next level ā€“ I sit down with Philipp Heckel, creator of ntfy, to discuss this simple HTTP-based service that lets you send notifications to your phone or desktop via scripts from any computer. They discuss why he built it, how he built it, and what his plans are for the future of this beloved side hustle.

Human skills to pay the bills ā€“ Long time friend KBall makes his ā€œfirstā€ appearance on The Changelog by way of Changelog & Friends. You likely know Kevin from his panelist position on JS Party. Today heā€™s sharing his passion for coaching and developing human skills.

AIā€™s impact on developers ā€“ Chris & Daniel are out this week, so weā€™re bringing you a panel discussion from All Things Open 2023 moderated by yours truly and featuring keynoters Emily Freeman and James Q Quick.

Use Effect (not useEffect) ā€“ Prisma founder Johannes Schickling has been using the Effect library for the last couple years. Today he joins Jerod & Nick to tell us all about this very interesting tool for building robust apps in TypeScript.


šŸ’¬ Quote of the week

Simplicity is a great virtue but it requires hard work to achieve it and education to appreciate it. And to make matters worse: complexity sells better.

ā€“ Edsger Wybe Dijkstra


Thatā€™s the news for now, but we have a big week of pods coming up:

  • Wednesday: our ATO 2023 coverage begins with Matthew Sanabria, Nithya Ruff & Jordan Harband
  • Thursday: Nick and I host the first winners of React Jam on JS Party
  • Friday: Jared Henderson joins Changelog & Friends to discuss protecting our local networks from unwanted content

Have a great week, spread the word about Changelog Beats if you dig it, and Iā€™ll talk to you again real soon. šŸ’š

ā€“Jerod