SQLite gets JSONB support, a Rust crate for TUIs, a vanilla web dev case study & Headscale

Changelog News

Developer news for humans by humans

Jerod here! šŸ‘‹

Everybody loves a well-placed emoj, but these AI enhanced emojis by Dogan Ural are really rocking my world this cold, sunny Monday morning. šŸ«£

AI enhanced eyes covered emoji

Hereā€™s how he did it. Ok, letā€™s get into the news.


šŸ—Æļø Quote of the week

ā€œIf buying isnā€™t owning, piracy isnā€™t stealingā€ ā€“ Cory Doctorow


šŸ‡ Open source LLMs are catching up

One year after ChatGPT brought a ā€œseismic shift in the entire landscape of AIā€, a group of researchers set out to test claims that its open source rivals had achieved parity (or even better) on certain tasks. In the linked paper, they provide an exhaustive overview of this success, surveying all tasks where an open source LLM has claimed to be on par or better than ChatGPT. Their conclusion:

In this survey, we deliver a systematical review on high performing open source LLMs that surpass or catch up with ChatGPT in various task domains, at the one-year anniversary mark after ChatGPTā€™s release (Section 3). In addition, we provide insights, analysis and potential issues of open-source LLMs (Section 4). We believe that this survey sheds lights on promising directions of open-source LLMs and will serve to inspire further research and development in the field of open-source LLMs, helping to close the gap with their paying counterparts.

Itā€™s becoming increasingly clear to me that the data models powering future AI rollouts will be commoditized & democratized thanks to the competitive nature and hard work of both academia and industry. What a relief!

šŸ›¬ JSONB support has landed in SQLite

Richard Hipp and his team have rewritten SQLiteā€™s text-based JSON functions using a binary representation (much like Postgres did years ago) that, depending on usage patterns, could be several times faster than the original. The technical explainer:

Historically, SQLite used an internal binary representation of JSON that involved lots of pointers. This fits will into C programs, but it is difficult to serialize. The JSONB rewrite changes the internal-use binary representation of JSON into a contiguous byte array that can read or written as an SQL BLOB. This allows the internal-use representation of JSON to potentially be saved to the database, in place of JSON text, eliminating the overhead of steps 1 and 3.

All legacy functionality is preserved. The JSON functions that previously only accepted JSON text now accept JSONB binary for the same parameter. This looks like a huge step forward for everyoneā€™s favorite (and the most widely deployed in the world) SQL engine!

šŸ€ A Rust crate for cooking up Terminal User Interfaces

Ratatui (best name ever?) is a lightweight library that provides a set of widgets and utilities to build complex Rust TUIs.

Ratatui is based on the principle of immediate rendering with intermediate buffers. This means that for each frame, your app must render all widgets that are supposed to be part of the UI. This is in contrast to the retained mode style of rendering where widgets are updated and then automatically redrawn on the next frame. See the Rendering section of the Ratatui Website for more info.

Ratatui screen capture

It was forked from tui-rs in 2023 in order to continue its development.

šŸ” Secure your software supply chain from the CLI

Thanks to Socket for sponsoring Changelog News šŸ’°

If you had a list of commands your engineering team uses daily, npm would likely be near the top.

Shouldnā€™t that crucial command be secure?! Now it can be.

Socketā€™s safe npm CLI tool transparently wraps the npm command and protects developers from malware, typosquats, install scripts, protestware, telemetry & more.

I was blown away by the team & tech behind this tool when we first heard about it on JS Party. If you havenā€™t given Socketā€™s safe npm a good look, you owe it to yourself to check it out.

šŸ”¬ Case study: viable techniques for vanilla web dev

Morris Brodersen built a highly interactive, complex application (A TeuxDeux clone) with vanilla HTML/CSS/JS as a case study attempting to find and stretch the limitations of vanilla web developmentā€”without inventing a custom framework.

Thereā€™s no custom framework invented here. Instead, the case study was designed to discover minimum viable patterns that are truly vanilla. The result is maintainable, albeit verbose and with considerable duplication.

If anything, the case study validates the value of build steps and frameworks, but also demonstrates that standard web technologies can be used effectively and there are only a few critical areas where a vanilla approach is clearly inferior.

The code is all open source, but Morrisā€™ writeup (and conclusion) is so thorough that you might be satisfied just by reading it alone.

šŸ¦Ž Headscale helps you run a self-hosted Tailnet

If you love what Tailscale has to offer, but prefer the maximum privacy and autonomy that only comes by self-hosting, check out this project by Kristoffer Dalby (who works at Tailscale, btw):

Everything in Tailscale is Open Source, except the GUI clients for proprietary OS (Windows and macOS/iOS), and the control server.

The control server works as an exchange point of Wireguard public keys for the nodes in the Tailscale network. It assigns the IP addresses of the clients, creates the boundaries between each user, enables sharing machines between users, and exposes the advertised routes of your nodes.

Headscale is Kristofferā€™s implementation of a self-hosted, open source alternative to the Tailscale control server.

Headscaleā€™s goal is to provide self-hosters and hobbyists with an open-source server they can use for their projects and labs. It implements a narrow scope, a single Tailnet, suitable for a personal use, or a small open-source organisation.


šŸŽ§ ICYMI: Recent good pods from us

šŸ’š Hare aims to be a 100 year language ā€“ This week on The Changelog weā€™re joined by Drew DeVault, talking about the Hare programming language. We discuss Hare (of course), why heā€™s so passionate about all things open source, the state of the language, fostering a culture that values stability, and oddly enough ā€” what it takes to make a peanut butter and jelly sandwich.

šŸ¤” HATEOAS corpus ā€“ Iā€™m back with another ā€œIt Dependsā€ episode! This time Iā€™m joined by Kris Brandow from Go Time and weā€™re talking all things API design. What makes a good API? Is GraphQL a solid choice? Why do we do REST wrong? And WTF does HATEOAS mean, anyway?

šŸŖ© From WebGL to WebGPU ā€“ Gregg Tavares (author of WebGL/WebGPU Fundamentals) joins Amal & myself to give us a tour of these low-level technologies that are pushing the web forward into the world of video games, machine learning & other exciting rich applications.

šŸ¤– Suspicion machines āš™ļø ā€“ Daniel delves deeper than the usual buzz surrounding AIā€™s perils, focusing instead on the tangible problems emerging from the use of machine learning algorithms across Europe. Join us as Justin-Casimir Braun and Gabriel Geiger share insights from their thorough investigation, which involved gaining access to one of these models and meticulously analyzing its behavior.


šŸŽžļø Clip of the week

Justin Searls and yours truly discussing our complicated relationships with code dependencies

Clip of the week thumbnail


šŸ„Š Ars pits the new Gemini-powered Bard against ChatGPT

Open source LLMs arenā€™t the only ones playing catchup to ChatGPT. Last week, Google announced Gemini (with a shady, fraudulent demo video, btw) to much acclaim. Journalists at Ars Technica sprang into action, running both models through seven categories of tests to determine the proprietary champion. The details are worth exploring, but hereā€™s their conclusion for my fellow TLDR folks:

When comparing the old Google Bard to the new, Gemini-powered version, there has been clear progress in the quality of Googleā€™s AI-generated output. In our math, summarization, factual retrieval, and creative writing prompts, Googleā€™s system has shown marked improvement in the eight months since we last tested it.

Overall, though, ChatGPT is still the winner in our non-scientific tests; OpenAIā€™s system edged out Bard on three prompts, while Bard was only the clear winner in one.

šŸ¤ž How to Choose a Startup

Dan Hockenmaier proposes a ā€œhierarchy of needsā€ when picking a startup to join. Start at the bottom, and only move up when a condition is met.

Startup choosing hierarchy of needs pyramid

šŸ’Ø Apple, Google & Comcastā€™s plans for L4S could fix internet lag

The Verge has a nice writeup of some new, low-level networking tech that Iā€™d never even heard of: L4S

L4S stands for Low Latency, Low Loss, Scalable Throughput, and its goal is to make sure your packets spend as little time needlessly waiting in line as possible by reducing the need for queuing. To do this, it works on making the latency feedback loop shorter; when congestion starts happening, L4S means your devices find out about it almost immediately and can start doing something to fix the problem. Usually, that means backing off slightly on how much data theyā€™re sending.

Only ~20 cable modems and several ISPs that support it today, but apparently Apple shined a light on L4S at WWDC ā€˜23 last June, so it has more interest than ever before. Hey, Apple, how about shining your big oleā€™ spotlight on IPV6 one of these days? I hear itā€™s rolling out slower than a 300 baud modemā€¦


šŸ•øļø Web dev roundup

HTML, The Programming Language ā€“ Sick of arguing whether or not HTML is a programming language? Argue no more, because our friends at Big Sky Software have officially built a practical, turing-complete, stack-based programming language based on HTML.

You donā€™t need JavaScript for that ā€“ Kilian Valkhof doesnā€™t hate JavaScript. In fact, he writes loads of it every day. But he also loves ā€œthe rule of least powerā€ and applies it in this excellent post to display many occasions where you can get away without it.

Three Decades of HTML ā€“ Eric Meyer reflects on the 30th anniversary of the first time he wrote an HTML document. Back in 1993, he took a Usenet posting of the ā€œIncomplete Mystery Science Theater 3000 Episode Guideā€ and marked it up.

StyleX is the styling system for ambitious user interfaces ā€“ Meta has published their CSS-in-JS solution behind facebook.com, threads.net & whatsapp.com.

CSS Hooks ā€“ Hooks bring advanced CSS capabilities to native inline styles, with extremely minimal runtime, no build steps & a tiny CSS footprint. Designed for [React|Solid|Preact].

Rethinking Serverless with FLAME ā€“ The Fly team has invented a new acronym in their attempt to provide auto-scaled apps with serverless runtimes. Fleeting Lambda Application for Modular Execution.


Thatā€™s the news for now, but we have some awesome podcasts coming up this week: our final All Things Open anthology ships out on Wednesday and weā€™re playing #define again with the same wacky cast of characters (plus one) 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