Unintended Consequences
A “feature” is never just a button or a feed; it’s a nudge in a complex human ecosystem. When we optimize for convenience or connection, we often trigger second-order effects that are difficult to unwind.
The online whiteboard of Kristofer Palmvik
A “feature” is never just a button or a feed; it’s a nudge in a complex human ecosystem. When we optimize for convenience or connection, we often trigger second-order effects that are difficult to unwind.
The answer isn't to retreat to 2002 and plain text files for agents to parse. It's to build what actually solves the problem: content infrastructure that AI can read, write, and reason about. You shouldn't build a CMS from scratch with grep and markdown files. You probably shouldn't have to click through forms to update content either. Both of these can be true.
It comes down to what you mean by accessible. If you mean you can make toast messages work well for everyone then the answer is obviously no.
I’ve started using the term HTML tools to refer to HTML applications that I’ve been building which combine HTML, JavaScript, and CSS in a single file and use them to provide useful functionality. I have built over 150 of these in the past two years, almost all of them written by LLMs.
Do you need a courtesy title? Do you want one? If so, do you get the title you want, such as "Dr" or "Reverend" ? Do you think they should be confined to the dustbin of history? Did you know that laws in both the UK and the US on gender discrimination and data protection may require you to make courtesy titles optional on your website?
Why buy a CRM solution or a ERM system when “AI” can generate one for you in hours or even minutes? Why sign up for a SaaS platform when Cursor can spit one out just as good in the blink of an eye? But when we look beyond the noise – beyond these sensational flying saucer reports – we see nothing of the sort.
The world doesn't need faster adoption. It requires deeper awareness, better judgment, and leaders who know why they're adopting something new. The leaders I trust most aren't the ones who adopt everything early. They’re the ones who combine curiosity with strategic thinking — who stay informed, evaluate what truly matters, and adopt when the timing is right. The future will not be shaped by those who adopt first, but by those who understand best.
I’ve tried this on the C# version of ROUND_3 in Emily’s repo, and it was a lot of fun trying to get Claude to do exactly what I want. It felt a bit like playing real golf with a bazooka. I did manage to get one almost-clean round where I didn’t need to edit the code myself much at all, but – by jingo – we went around the houses!
Good managers do not dictate and demand, they nurture, develop, and inspire. The most important roles in the company aren’t held by managers; they are all the little leaf nodes busily building the product, supporting users, identifying markets, writing copy, etc. The people doing the work are why we exist as a company; all the rest is, with considerable due respect, overhead.
It took me a few years to truly grasp the difference. If you’re valued, you’ll likely see a clear path for advancement and development, you might get more strategic roles and involvement in key decisions. If you are just useful, your role might feel more stagnant.
I stället för att enbart prata om begränsningar i skärmtid tycker jag att vi borde prata mer om hur vi skapar en tillvaro där barn, ungdomar och vuxna kan och vill göra annat. Hur bygger vi platser, aktiviteter och sociala rum som konkurrerar ut skärmen på egna meriter?
Instead of replacing our current recommendation system, this model became a new signal to boost the right content within Curate — our in-house editorial front-page management and content recommendation system. Thus, there is no change in the way newsrooms work or select content; it simply provides better recommendations for the nonsubscribers we want to convert.
We talk endlessly about economic incentives and housing stock and walkability scores and innovation hubs, but almost no one is talking about the moment a human shows up with a suitcase and a dog and realizes they don’t know where to buy a plunger or who might go for a coffee with them.
Our world is made of information that competes for our attention. What is necessary? What is not?
A professional is expected to finish the work neatly and clean up after themselves. Leaving a mess behind is not only rude, it makes future work harder, adds more work for someone else, and can even be dangerous.
Dependency cooldowns are a free, easy, and incredibly effective way to mitigate the large majority of open source supply chain attacks. More individual projects should apply cooldowns (via tools like Dependabot and Renovate) to their dependencies, and packaging ecosystems should invest in first-class support for cooldowns directly in their package managers.
Most applications don’t fail because algorithms are hard—they fail because our models allow states that make no sense in the domain. “User without email but verified”, “order that’s both shipped and cancelled”, “sum < 0”, “modal dialog both closed and active”. These states should be impossible from the start.
Concrete thinkers zero in on tangible details. They take things at face value, prefer clear steps, ask “how” and “what,” and anchor on specifics like flight times, budgets, or examples. Abstract thinkers reach for concepts and patterns. They ask “why,” connect ideas across domains, and zoom out to purpose, meaning, and future possibilities.
Easily back up, organize, and manage your photos on your own server. Immich helps you browse, search and organize your photos and videos with ease, without sacrificing your privacy.
When teams produce code faster than they can understand it, it creates what I’ve been calling “comprehension debt”. If the software gets used, then the odds are high that at some point that generated code will need to change. The “A.I.” boosters will say “We can just get the tool to do that”. And that might work maybe 70% of the time.
The idea of making impossible states impossible basically means that situations and questions like these should never come up. It means that you design APIs that make a clear distinction between the possible states of a component. This makes the component easier to maintain and to use.
5145 links collected between and