InFeeo
Global
technology-news
New
Language
Profile channel

@Body

No bio yet.

Since 05.06.2026

Blog about things you don't understand yet(github.com)
Every post I publish represents at least two things I’ve learned: the thing that prompted me to write the post, and the thing I learned in the course of writing it. If I don’t learn anything new while I’m writing, it’s not interesting enough to publish. Typically I learn way more than two things. For instance, in my o3 geoguessr post, I started out with the idea that most AI prompts probably don’t work, and I ended up learning that newer OpenAI models have lost o3’s ability to geolocate. That’s interesting! In my most recent post on C2PA, I started out with the idea that C2PA requires near-universal adoption, but I learned a ton of things about PKI, managing private keys on local devices, how C2PA actually works, and so on. In my post on the Luddites, I started out with the idea that the Luddite movement was fundamentally decentralized, but ended up fascinated by Luddite culture (which was far more elitist, misogynist, and violent than the pop-Luddism books describe). I could do this for every single post on the blog. Taking a position I think the core reason this works is that every single one of my blog posts argues a point. I never publish a post that just gives some scattered thoughts on a topic, or a post that only says “yes, I agree with this other article”. If I write a draft that nobody sensible could disagree with, I scrap the draft. Making sure that everything I write is at least minimally controversial is a forcing function: it forces me to think about what the most interesting part of my position is, and it forces me to do enough research to defend it against the obvious criticisms. This is contrary to a lot of advice I read about blogging, which encourages the aspiring blogger to treat their posts as a form of unstructured self-expression. If unstructured self-expression is what you want to do, that’s cool. The point of having a blog is that you get to write what you want. However, this advice isn’t as helpful as it sounds. Before I was in tech, I was a philosophy grad student. But before that, I was a poet. One thing you learn when you try to write poetry is that it is way easier to write to a restrictive structure than it is to simply “write what you feel”. This should be obvious when you actually think about it. The task of a poet is to repeatedly choose the next word. Writing to a structure (typically rhyme or meter) narrows that choice to a small set of words, instead of the entire English language. It’s the same with blogging. Forcing yourself to write about specific, potentially-controversial points makes consistently writing easier, not harder. Writing, thinking, and research Writing is the best way to think clearly about a topic. It’s easy to believe you understand something when you’re just turning it over in your head. When you have to condense that down into words, you find out exactly how much you do or don’t understand. I am constantly having moments where I type something, stop myself, and think “wait, that can’t actually be right”, or “is that really true?” By the time I write my way to the end of the post, I’m usually thinking so much more clearly about the topic that my conclusion paragraph is way better than my introduction. In fact, I’ve picked up the habit of going back and immediately rewriting the first paragraph as part of my first-draft process, because I know I’m going to end up doing it anyway. I also change my mind a lot while I write. Here are a bunch of examples of posts where I began writing them with the opposite opinion to the one that eventually made it into the post. I think this is a good sign, and I hope I never stop doing it. You should be researching and thinking about every post you write, and that means you should frequently learn new things that change your mind. Because of all this, I deliberately choose to write blog posts about things I don’t yet quite understand but would like to, like LLM steering, Stripe’s Tempo blockchain, C2PA and watermarking, space cooling, interaction models, LLM inference internals, and so on. This is great for me, because I learn a lot. Is it great for my readers? Is blogging to learn irresponsible? I sometimes worry that I should only be writing about areas I already know very well, like tech company dynamics or working in large codebases, rather than presenting myself as an authority on fields I’m actually still learning. Should I let historians of the Luddites write about Luddism, Web3 engineers write about blockchains, and so on? I think this is acceptable for three reasons. First, it’s sometimes easier for a beginner to write an introduction to a field than for an expert. Experts routinely overestimate the knowledge of the general public, and have often internalized the reasons why their field is important so deeply that they struggle to express them. I think my explainer posts are valuable because I always spend the first chunk of the post talking about what the original problem is before I get into the technical solution. Second, sometimes the public consensus on a topic is just plain wrong, to the point where even a little bit of research is enough to demonstrate why. Many of my posts I’m proudest of have been along these lines: arguing that the “500ml per prompt” water usage figure for LLMs was ludicrous, or that the popular Apple “Illusion of Thinking” paper was tracking persistence, not reasoning, that GPUs live longer than three years and the AI companies have large profit margins on inference, and so on. Third, I try to make it clear on my blog who I am and what my credentials actually are. Even if it’s not explicitly described in the post, I have my real name and resume available on my /about page, so I don’t think a careful reader could be easily fooled into thinking I’m an expert on 19th-century England or space physics or LLM economics or anything like that. Feedback Even if nobody reads what you write, writing is still a good discipline for getting your thoughts in order. But another big reason why writing is a great learning tool is that you can get feedback. I think it’s obvious why this is useful, but I do want to make two points about feedback. First, if you do make your posts public, you need to have a pretty thick skin. People on the internet often fall over themselves to come up with the most cutting criticism or the harshest dunk. This goes double if you take my previous advice and try to write posts that make a clear, controversial point about a subject you’re learning. If you’re the kind of person whose whole day is ruined when a stranger is cruel to them, you might want to keep your blogging private or only share it among friends. Second, even if your blogging is private, you can get feedback from LLMs. Like humans, LLMs will often give junk feedback. In my experience, OpenAI models will always tell me to moderate my claims or add caveats and hedges until I’m not saying anything at all. Sometimes their criticism will be straight-up wrong. But — particularly about technical topics — LLMs are great at pointing out areas you’ve genuinely misunderstood, and they’re far kinder than the average Lobsters or Hacker News commenter. Conclusion I’m pleased and grateful that people enjoy reading my posts, but even when nobody did, I still got a lot of value out of blogging. I write as a method of thinking more clearly, as an excuse to do research on topics I want to learn about, and as a way of getting feedback. If you’d like to try it yourself, I suggest watching for these two things. First, you should be changing your mind a lot as you write. If not, you probably aren’t doing enough research. Second, your first draft’s conclusion should be much tighter and more expressive than its introduction. If not, you probably haven’t learned anything from the writing process, which means the draft can be scrapped. I strongly recommend this practice to anyone with an interest in writing. You will see the benefits even if you don’t publish any of your writing on the internet, particularly now that you can get good technical feedback by pasting your post into a LLM1. For what it’s worth, I’ve fiddled with careful “review prompts” and it’s basically as good to just write “review, please:” and paste your article. ↩ If you liked this post, consider subscribing to email updates about my new posts, or sharing it on Hacker News.Here's a preview of a related post that shares tags with this one.Saying the obvious thingStating the obvious is surprisingly useful. Most of your knowledge lives below the threshold of conscious awareness, so it’s possible for a piece of writing to remind you of what you already know. It’s common to know you don’t like something without being quite sure why, and reading an obvious statement (such as “accuracy matters, even when you agree with the broad strokes”) can help clarify why you find certain things distasteful.Continue reading...
Thinflation(mitxela.com)
Most people have experienced "shrinkflation" in one form or another, where manufacturers, in lieu of increasing prices, subtly reduce the quantity or size of a product, keeping the packaging mostly the same, in order to deceive their customers into buying less for the same price. Crucially, the reductions must be craftily applied so that the majority of buyers don't notice. It's understandable that people froth with vitriolic effluvium when they arrive home to find that their favourite snack has been permanently altered for the worse. It's a balance of greed against grievance, to dance along that fine line so that the collective anger and disappointment flies under the threshold of brand loyalty destruction. No doubt there are highly paid consultants whose entire careers have been built on this lucrative legal deception. I don't have too strong a reaction to it, at least when it comes to those edible homogenous media like chocolate or cheese. Sure, maybe the portion size is now impractical, but in the end it's simple enough to keep a watchful eye on the price per unit mass, and figure out if we're getting that elusive Good Deal. Or the degree to which the proposed deal is actually Good. Maintaining a mental chart of the acceptable volumetric costs of common goods is one of the small prices we pay for living in a western capitalist society. People hate shrinkflation, and with good reason, as loud complaints are the only thing that can keep it in check. But today I'd like to talk about a related problem, one that no-one seems to be complaining about, one where the Bad Guys have won. Perishable foods are one of the few categories of product where disposable plastic packaging makes a huge amount of sense. The environmental cost of wasted food far outweighs that of the plastic film that could preserve it. Cleaning products – handwash, laundry detergent, shampoo, etcetera – have a near infinite shelf life, and there is no reason not to buy them in bulk. Perhaps you might want to experiment with different brands, sample this one and that, but once you've found a product that you like, stocking up on a few years' supply has no downsides... for the consumer. But bulk purchases are a disaster for the companies behind Big Soap. They want to sell you as little as possible, as often as possible, to lock you into their endless marketing cycle, and they manage this by playing on a peculiar psychological trait we all share. Humans are bad at judging volume. Given two differently-shaped glasses of liquid, most people are completely unable to guess which one holds more. The variation in the shape of pint glasses, which all hold the same volume of liquid, goes some way to illustrate the extremes of the effect. These three cylinders all have the same volume: Even if you remind yourself that it scales by the square of the radius, judging the volume of a cylinder doesn't come naturally to us. And for complex shapes it gets substantially harder. The shape with the largest volume, for the smallest apparent size, is a sphere. Or arguably an oblong, viewed only from the end. Conversely, the shape with the largest apparent size for its volume, at least if we stay within the confines of what can practically be turned into a container, is a thin, flat blob oriented towards the viewer. And this is precisely the shape soap bottles are striving for. This handwash bottle is 85mm wide, but only 35mm thick, dictated by the diameter of the screwcap. If thinner pump mechanisms were available, they would no doubt have made the bottle thinner still. Am I the only one who finds this ridiculous? They recently reduced the volume of these washing-up liquid bottles, by about 30mL – standard shrinkflation – but they managed to keep the width and height almost the same as the older bottles. There is even an indent in the middle section to make it thinner. The cost of retooling the moulds is substantial, but obviously insignificant compared to the increased profits proffered by such thinness. Once I recognised this behaviour, which I have dubbed "thinflation", I started to see it everywhere. It is a contagious marketing technique: if your competitors make their bottles thin and flat, they visually look bigger and will sell more, so every manufacturer has to race to make their bottles as thin and as flat as they can get away with. But what confused me is that nobody else seems to have noticed. In fact, people are so conditioned by the now-expected shape of a soap bottle that they will go out of their way to rationalise it. I met a bloke in the pub who insisted the shape was justified, reeling off multiple arguments, which I shall now dismantle. This is simply untrue. The most efficient shape for transport is a cuboid. For instance, Tetrapak cartons can be arranged onto a tray with virtually no space between them. It's certainly possible to produce a thin, flat cuboid, but the thinflated bottles we see have big curved edges that are directly detrimental to their tessellation. Some of the cardboard trays they're shipped on require additional spacers to keep the oddly-shaped bottles secure. In response to various mumbles about being able to fit them though a letterbox, that would only be relevant if the bottles were thinner than the standard large letter (25mm) which these are not. For a shampoo bottle, sure, a multi-litre bottle would be unwieldy, but the extremes to which some shower gel bottles have been thinned is way beyond the demands of comfort. For each shrinkflation cycle, the bottles get thinner and smaller, eventually looping full circle when they introduce a "new", "bigger" bottle again. The fact that some shampoo bottles are still round, holding almost double the volume of the thin ones, makes this argument especially thin. Remember that Fairy Liquid, within living memory, used to have round bottles. Did anyone at the time complain about how difficult these were to hold? When the clear flat bottles were introduced, it was in the name of "more eco-friendly packaging" which is especially ironic, dare I say an outright lie, when the liquid content was reduced by about 40%. Detergent bottles are particularly guilty of thinflation, and one way to reduce the volume even further is to put a large hole through your bottle to provide a handle. It sounds reasonable enough, but when compared to, say, a milk bottle, the absurdity becomes clear. Unlike detergent, milk is produced and consumed in sufficient quantity that the industry could not put up with such inefficiencies. Here we have the biggest detergent bottle in the supermarket, presented as "XL mega pack", holding a whopping 1.65L. Compare that to the milk bottle of 2.27L, despite being smaller in two of the dimensions. Note that the milk has a roughly cuboid shape to aid packing, fits within the confines of a fridge-door shelf, and still sports a perfectly serviceable handle. For an even starker contrast, consider the 5L containers used to ship industrial chemicals. At over three times the volume, it retains the conveniences of a handle and a cuboid profile, and yet it's still shorter, and barely any wider, than our XL mega pack. And indeed, if we look to the industrial consumers of soap, where the comedic inefficiency of thinflation has failed to get a foothold, this is precisely the type of container they use. Well, as with shrinkflation, there is a fundamentally dishonest nature in play, that we are being manipulated and lied to. That alone should get the blood pumping. But even if we discount the deception aspect, there is a much more important reason to care, one that perhaps I have not made clear: Thin bottles waste more plastic than conventionally shaped ones. Weirder aspect ratio, less efficient bottle. They consume more material and energy to produce, and the extra plastic makes them heavier and bulkier to transport. If you care about environmental damage from disposable plastic, as we are all supposed to do, here is a vast global industry where we could easily cut waste plastic by 30% or more, by doing nothing more than banning such inefficient bottles. In an ideal world, sure. We could all take our reusable soap containers to the refill station and top them up without any plastic waste at all. Some new-age, ultra-eco places even offer such services, but they cash in on the target market by charging vastly more than the disposably served equivalents. The chief concerns with refills are the inevitable mess and the obligatory infrastructure, and being pragmatic, even if the refills could end up cheaper than buying a new bottle, in general, soap is so cheap and lasts so long that very few people are going to care. Asking people to refill their soap bottles is asking people to change the way they live, to suffer a mild inconvenience for no personal benefit. Our ambitions should be to reduce waste without reducing the quality of life. I recently cleared out an old box of chargers and power supplies, for various gadgets of yesteryear. It's easy to forget just how annoying it was for every single product to come with a different charging cable with its own proprietary connector. The only thing that put an end to the madness was government regulation. Life is simpler, and waste vastly reduced, by having everything powered by USB-C. But it does posit a fresh question: If the world governments are able to enforce standardised connectors, why aren't they able to enforce standardised bottles? Government intervention is the only way that thinflation can be stopped. It doesn't even seem that difficult. Just specify hard limits to the aspect ratio, and the world would be a better place. We can't stop corporations being greedy, and we can't stop consumers being stupid, but we can get a real easy win, and make a genuine difference, by eliminating the shamefully thin bottles.
Building blocks leave no crumbs(github.com)
With Claude Code I feel like I can achieve more in less time. But other questions are surging. Before LLMs, building a complex feature meant a tradeoff: use an existing GitHub package or code it myself? How polished is the library, how much does security matter, many parameters. Now there is no friction. Claude Code writes in a few minutes exactly what I want. That old question is slowly disappearing, and in its place I'm facing decisions I used to hit only occasionally, now on a regular basis. Self host or Vercel? A VPS or is a Raspberry Pi enough? Shipping more things automatically forces these questions. The speed of the change in the last year has been overwhelming, fun, and with a real feeling of accomplishment. Along the way I've noticed some patterns. Unix is a fundamental and unquestionable building block, and Claude is amazing at it. I barely know enough Linux to stop an LLM from doing dumb things, but iterating on complex shell scripts with it until they're perfect is a fun process, and the reusability I get is insane. The limit is distribution: my scripts are tailor made for me, and they break on colleagues' machines with incompatible dependencies. Web technologies solve that. Everyone with a computer has a browser. But web tech is also where I have the most expertise, so it's where I scrutinize the LLM's code the most and sometimes cringe, the same way a Linux expert would cringe at my "perfect" shell scripts. When I know less, I only judge the outcome. When I know more, I judge in more dimensions. There are more of these decisions now. Performance: I recently built a server in Rust with little Rust experience, prototyped it in parallel with Zig, liked the Zig code more, but bet that Rust's constraints would pay off as the server grows. Nothing has broken so far. Compute: Vercel free tier for shipping in five minutes, Kubernetes with GitOps on Hetzner for professional work, a Raspberry Pi at home for the simplest possible self hosting. But all of that is context for the actual point. What people actually pay for I like to create things and solve problems, and I like getting paid for it. Usually the problems worth paying someone to solve are complex. Otherwise there would be no need to pay anyone. Complexity is the key, but complexity is also the enemy. When things are too complex, they blow out of understanding. If you solve a problem with a solution of enormous complexity, maybe you solved a problem, but you created another one. The nature of the problems I work on is that they are not clear at the start. The reasons someone decides "ok, I'm gonna pay someone to solve this" are infinite, but if they had a perfect step by step instruction manual, it's hard to imagine they wouldn't just do it themselves, or hire someone temporarily to follow the list. Given, of course, that the list is guaranteed to work. I am paid not only to solve a problem, but to define it, and to create the instruction list to solve it. Only after that can I solve it. I call that systematic problem solving. It's something AI cannot do by itself. We can set up AI agents and workflows to tackle it, but it doesn't happen on its own. That's what people get paid for, that's what creates value, and that's what moves humanity forward. Complexity is the crumbs of solved problems Systematic problem solving generates complexity. I like the phrase "fire bullets before cannonballs". First you try simple solutions. As they fail individually, you start combining them and twisting them. A lucky shot is an elegant solution: everyone understands it, everyone can apply it, it covers all cases, and it's permanent. A less lucky shot solves the problem, but things get left behind along the way. The combination of twisted approaches that solved something novel sticks around, obviously, because it solves a problem. But that spaghetti of solutions also becomes something to manage. That is how complexity is born. The crumbs of a problem that was solved. Building blocks leave no crumbs I like to think of building blocks as pieces that leave no crumbs behind. Pieces that disappear and fade into the background. No one needs to think about them, even when they are everywhere. Creating a building block is very difficult, and there are not many of them. A building block is a tool or technology that I have to force myself to think about, for a reason. Without that reason, it stays hidden from my consciousness. Building blocks are also scoped. There is a clear boundary around them. I consider Linux a building block, but I cannot use it in my acoustic guitar. I cannot use it in my microwave. It's obvious. There is zero or very little overhead in thinking about when I can use it or not. It's almost instinct. So two questions to recap: Does it disappear when I use it, unless I force myself to think about it? Is it instinctive to know when I can use it and when I can't? In the era of using Claude Code to solve a lot of problems, I want to force myself to think about building blocks, and to aim to build those. Emergence, not complexity I think when you manage to create multiple building blocks with clearly defined boundaries that fit together, you get emergent behaviors. Things that are impossible to imagine until you see them emerge out of the blocks and the space where they live. I want to distinguish emergence from complexity. Complexity is hard to manage and it's in the way. It makes it difficult for people to wrap their heads around things. Complexity is very common, it is the norm, and it is what we want to get away from when solving problems. Solve problems with building blocks that fade into the background. Define clear boundaries around them so you automatically know when to use them. If done properly, something emerges, and you're nature creating more nature. I think that's what nature is as well: elegant, made out of simple things that play together under specific rules. One last thought. A package you send via DHL can be fragile. What is the opposite? Robust? Nope. Robust is neutral. Antifragile is the opposite: something that benefits from chaos and mess. I think building blocks are robust. They don't benefit from chaos, but they don't get affected by it either. Emergence, though, is antifragile. It benefits from chaos. But those are thoughts I want to develop later, when I finish reading Antifragile.