January 04

Kids can’t use computers… and this is why it should worry you – Marc Scott

Damn, the anecdotes just keep getting better and better.

A sixth-former brings me his laptop, explaining that it is running very slowly and keeps shutting down. The laptop is literally screaming, the processor fans running at full whack and the case is uncomfortably hot to touch. I run Task Manager to see that the CPU is running at 100% despite the only application open being uTorrent (which incidentally had about 200 torrent files actively seeding). I look at what processes are running and there are a lot of them, hogging the CPU and RAM. What’s more I can’t terminate a single one. ‘What anti-virus are you using?’ I ask, only to be told that he didn’t like using anti-virus because he’d heard it slowed his computer down. I hand back the laptop and tell him that it’s infected. He asks what he needs to do, and I suggest he reinstalls Windows. He looks at me blankly. He can’t use a computer.

A kid puts her hand up in my lesson. ‘My computer won’t switch on,’ she says, with the air of desperation that implies she’s tried every conceivable way of making the thing work. I reach forward and switch on the monitor, and the screen flickers to life, displaying the Windows login screen. She can’t use a computer.

A teacher brings me her school laptop. ‘Bloody thing won’t connect to the internet.’ she says angrily, as if it were my fault. ‘I had tonnes of work to do last night, but I couldn’t get on-line at all. My husband even tried and he couldn’t figure it out and he’s excellent with computers.’ I take the offending laptop from out of her hands, toggle the wireless switch that resides on the side, and hand it back to her. Neither her nor her husband can use computers.


January 03

Be a property owner and not a renter on the internet – Den Delimarsky

I’m loving this renaissance of personal blogs. Den’s take on POSSE (Publish Own Site, Syndicate Elsewhere) really resonates—it’s the only viable way to create content without getting trapped in the walled gardens of billion-dollar megacorps. About five years ago, Medium burned me, so I followed Simon Willison’s advice and started this blog. Easily one of the best decisions I’ve made in the past decade.

I would recommend avoiding any places where there is content lock-in. You want to optimize for future portability. That is, if you can’t easily export your full content history (e.g., blog posts) and move them somewhere else, don’t use that service. If your content is locked into a service, and at some point that service decides that you are no longer a wanted customer, all that effort you put into making it available to your customers can vanish on a moment’s notice. Prefer sites that allow you to publish in open formats, such as Ghost.

Minifeed

Minifeed is a delightful blog aggregator I discovered today. It’s full of blogs I’d never heard of and uses a smart, vector-driven approach to group similar posts.

minifeed

Modern for Hacker News

I spend an absurd amount of time browsing Hacker News and just stumbled upon this gem. On iOS, Hack is my go-to app for exploring the orange site, but on desktop, I’ve mostly stuck with the original UI. Enter Modern—a Chrome extension that transforms the brutalist interface into something sleek, like this:

modern


January 02

Stop designing languages. Write libraries instead – Patrick S. Li

When I first started dabbling with Go, I couldn’t help but wonder why it didn’t have anything as slick as Python’s FastAPI. Generating API docs directly from code required a flexible type system and robust introspection capabilities, which Go just didn’t have back then. But now, with generics in the mix, libraries are finally emerging that can generate OpenAPI specs and docs from code without much fuss.

The design of the programming language directly determines what sort of libraries you can write and how easy they are to use in the end. In the C language, the only major feature provided for enabling reuse is the ability to declare and call functions. So guess what? The majority of C libraries are basically large collections of functions. Ruby on Rails provides a concise way for expressing: do this when the button is clicked. The “do this” part is implemented in Ruby as a first-class function. How would it be implemented in languages like Java which don’t support them? Well, the behaviour of first-class functions can be mocked by defining a new event handler class with a single perform_action method and then passing an instance of this class to the button object. So guess what? Using a Java library typically entails declaring a humongous number of handler classes. The programming language directly shapes the design of its libraries.


January 01

Databases in 2024: A year in review – Andy Pavlo

From Redis and Elasticsearch’s licensing drama to Databricks vs. Snowflake’s billion-dollar sparring, to DuckDB’s integration into Postgres—this post offers a great overview of the major database events of 2024.

I’ve been reading Andy’s database event reviews for the past three years and love his work. However, I’m not sure how to feel about the unwarranted shade thrown at Redis. While I don’t agree with Redis Ltd.’s licensing decisions, I still think it’s a marvelous engineering artifact that has shaped the query languages of many similar key-value storage systems.