RSSAmplifier

Blog

Jökull Sólberg

Personal blog about web development, technology, and occasional thoughts

solberg.isRSS feed ↗20 posts

Latest posts

Every database error in this blog is a value

Every error in this blog is a value. A failed query, a missing row, a unique constraint violation: none of them throw. They are values with a tag and a payload, and they travel from the database, across the wire, to the browser and the CLI, until the thing that can act on them folds them into something a person can read.

From Usability Test Video to GitHub Issues

We run usability tests on Trip To Japan. Someone records their screen while planning a trip, talking through what they're doing and where they get stuck. The recording is gold. It's also a 20-minute video sitting in my Downloads folder, and watching it is the easy part. The annoying part is everything after: scrubbing back to the exact second a button didn't respond, grabbing a screenshot, writing…

The Unseen Wire

It begins with a detail so mundane that most people miss it. On a gusty afternoon in northern Germany, wind turbines spin with furious energy, yet in a control room somewhere, an engineer is ordered to switch them off. The power they generate has nowhere to go. A few hundred kilometres south, a chemical plant announces it can no longer compete with its American rivals and will close before…

The Inflation Expectations Fiction

Central bankers spend a lot of their public communication talking about "inflation expectations." When expectations are "well anchored," the story goes, inflation behaves. When expectations "become unanchored," inflation runs hot even after the original shock has passed, because households and firms bake the new pessimism into wage negotiations and price lists. The policy tool that acts on this is…

Seljum reiknigetu, ekki bara rafmagn

Gervigreindarbyltingin er hafin og krefst gríðarlegrar orku. Á sama tíma og við horfumst í augu við yfirvofandi orkuskort hér á landi þurfum við að staldra við og spyrja okkur hvernig við hámarkum verðmæti þeirrar raforku sem við framleiðum. Undanfarin ár höfum við horft upp á erlent fjármagn skapa ævintýraleg verðmæti úr íslenskri orku. Til marks um það tók fjárfestingasjóðurinn Partners Group…

Iceland's Inflation Has a Culprit — And It Isn't the One the Central Bank Is Chasing

Iceland's headline CPI has been stuck above target for almost four years. Everyone has a theory. The central bank says expectations have deanchored. The opposition says the government spent too much. The populists say the immigrants drove up costs. The landlords say the unions are too demanding. The unions say the rents are too high. Each diagnosis arrives with its preferred treatment already in…

Turning Claude Code Output Into Shareable Links

Faux terminal showing Claude Code creating a shareable gist link

Europe's Foreign Policy Failure

While our leaders pontificate about liberal values and the "rules-based order," the ground is crumbling beneath our feet. We are being marched towards a future of perpetual conflict and economic decline, not by our own choosing, but by the dictates of a fading empire and the moralistic, out-of-touch pronouncements of our own political class. The war in Ukraine has become the starkest illustration…

The Path Not Taken: How Europe Missed the Multipolar Dawn

The true tragedy of the current European crisis is that it was entirely avoidable. The first Trump presidency shouldn't have been a cause for Atlanticist panic; it should have been the ultimate geopolitical off-ramp.

Code Mode Changed How I Think About MCP

I'm building agent-cms — a headless CMS with no UI. AI agents manage content through MCP. No buttons, no forms, no WIMP. Sunil Pai's After WIMP articulates exactly why: LLMs dissolve the boundary between "users" and "programmers." The interface isn't a dashboard — it's a conversation where the agent writes code against your system.

Babysitting PRs With Claude Code

I built a /babysit-pr command for Claude Code that watches a PR from push to merge. It runs CI checks, fetches code review, triages the feedback, applies fixes, pushes, and loops until the PR is clean. Here's how it works and why I set it up this way.

YOLO Mode Doesn't Scale

OpenClaw is one of the fastest-growing open source projects right now. It hooks LLMs up to your computer — email, calendar, Plex, whatever — and lets you chat with the agent on Telegram. YOLO mode. No permission prompts. The agent just does things for you. It's intoxicating.

Absorbing unknown Into the Type Realm

Every as in your TypeScript is a tiny lie. Sometimes a necessary one, but a lie nonetheless — you're telling the compiler "trust me" about data it can't verify. The question is: when can you avoid it?

A data toolkit for Icelandic public data, built on Claude Code skills

I've been building a repo that teaches Claude Code about Icelandic public data sources. Not a library, not a framework — a collection of skill files, Python scripts, and accumulated knowledge about how to extract data from official APIs that were never designed to be easy.

Piping the Web to My E-Reader

I've been using the CrossPoint Reader, an open-source e-ink device based on the Inkplate platform. It's a lovely little gadget — compact enough for a coat pocket, with a crisp e-paper display that's easy on the eyes.

The Missing Next.js AGENTS.md File

Every Next.js project needs an opinionated guide for AI coding assistants. Here's mine.

The PostgreSQL Collation Trap That Breaks Fractional Indexing

If you're using the fractional-indexing library with PostgreSQL, there's a subtle bug waiting to bite you in production.

Calendar Invites the Hard Way

I run Clawd as my personal assistant. It handles messages across Telegram, iMessage, whatever—locally, on my own devices. Works great until you want it to create calendar events.

How I Use Coding Agents

I use Claude Code and Codex for a lot of my programming work now.

Migrating Import Sorting to oxfmt

We've been using the Prettier @ianvs/prettier-plugin-sort-imports plugin to keep imports organized. oxfmt is a new member of the Oxc family of Rust based JavaScript tools, and now ships with experimentalSortImports—heavily inspired by eslint-plugin-perfectionist—and I wanted to see if we could make the move.