Category: Uncategorized

  • Digital authenticity is really about provenance

    On a recent podcast, a host compared AI-generated content to a magician sawing a woman in half. You hear this a lot: AI outputs are illusion, something that looks real but isn’t.

    That’s a category error.

    When a magician “cuts” someone in half, no one is actually cut. Reality and appearance diverge. But when a model generates Python code, it is real Python code. It runs or it doesn’t. There’s no hidden assistant holding the application together.

    You can expose the magician’s trick by examining the woman more closely. But examining code will not allow you to prove it was written by a human.

    Digital artefacts are numbers, not atoms. Matter has physical identity. Numbers don’t. Digital copies are indistinguishable from originals, and the thing itself contains no trace of its origin. So arguments about “AI authenticity” aren’t claims about the output, they’re claims about provenance.

    That’s a very different problem.

    Does provenance matter? I hear people say they feel cheated discovering a song they loved was AI-generated. They feel that art has less value without a human story behind it. You might also be concerned that you’re being charged for more hours than the task actually took due to automation.

    That’s legitimate. But it means authenticity can’t be solved by slapping a “Created by AI” label on things. That approach is operationally burdensome, trivially easy to evade, and focused on policing outputs rather than clarifying expectations.

    Once you understand if your claim is about the bits or the provenance, you can focus your attention in the right place.

  • When the lion’s hungry, he sleeps

    I heard a song recently with a line paraphrased from the 2019 movie “The Gentlemen“: “the only rule of the jungle is when the lion is hungry, he eats.” That sounds badass, but it bears almost no resemblance to actual lions.

    Real lions spend most of their time conserving energy. They’re opportunistic hunters who fail far more often than they succeed. When they do eat, it’s feast or famine – they might go days between meals. And they certainly don’t live by the “rule” of simply taking what they want when they want it. They’re working within harsh constraints, just like every other animal.

    But that line isn’t about real lions. It’s about mythical lions – a cultural construct we’ve built up from limited exposure, third-hand accounts, and centuries of symbolism. This mythical lion is the king of the jungle – confident, decisive, always in control. The real lion is frequently hungry, occasionally successful, and doing a lot of sleeping to save calories.

    I’ve written before about the boiling frog – a completely made-up phenomenon that people invoke as if it’s scientific fact. The mythical lion is similar, but with an extra layer: we don’t even agree on what the myth means.

    When someone says “I want to live like a lion,” what exactly are they claiming? Dominance? Independence? Laziness punctuated by brief violence? The ability to sleep 20 hours a day? You’d need a lot of context to understand what they mean.

    I think about those medieval European images of lions – clearly made by artists who’d never seen one, working from descriptions passed down through multiple people. They’re recognisable as “lion-shaped” but deeply wrong in the details. (see Why are Medieval Lions so Bad?) for more examples.


    Living in South Africa, I’ve had the fortune of seeing lions in the wild many times. Maybe that’s why the gap between the mythical and real lion bothers me. Or maybe understanding the myth requires your exposure to be limited – the less you actually know, the more the symbol can mean whatever you need it to mean.

    I remember having to learn national stereotypes early in life just to understand jokes. This feels similar, but more ambiguous. To communicate, you need to know not just what things are, but what people think they are, even when those ideas are demonstrably wrong.

    So next time someone invokes an animal metaphor or nature analogy, ask yourself: are they talking about the actual thing, or the cultural myth? And more importantly – do they know the difference?

  • Working through my reading list

    Some people have hundreds of tabs open in their web browsers for things that they still want to read. I have been using the Safari Reading list feature to keep track of things that I don’t have the time or inclination to read right now but that seem interesting enough that I want to hold on to them. But when I started working on the problem for real, I realised that not all queues need to be drained for them to work effectively.

    Start by measuring

    At some point I grew curious about how my list seemed to be growing all the time. So of course I wrote some code that allows me to gather statistics.

    The first entry in my reading_list_history.csv is from 2022-11-10 19:18:59.247630,1297. So at the time I had this idea of tracking things, I was already at 1297 items. The older items on my reading list at the time dated from 2019. My idea was to add this to a shortcut that would open an oldish item in my browser and also snapshot the size.

    The chart below shows the evolution of my reading list since them.

    In retrospect I should perhaps have kept around the read items so that I could clearly separate the rate at which I was reading through the items and the rate at which I was adding them. But the totals already tell you quite a bit. All the way up to 2025 I was not making much progress. I was going to news sites frequently (once or more a day), finding lots of interesting stuff to read and loading them in to my reading list, but I was steadily outpacing my ability to actually read them.

    I logged out of Twitter around the start of 2025 and that helped a bit, but the main thing that allowed me to catch up was scaling down my Hacker News habit to once a week rather than every day. I feel like I am now a bit more intentional about taking the time to read stuff.

    Technical details and issues

    I will now elaborate on some of The key part is knowing that the reading list resides in the safari bookmarks plist file. Code for reading this below:

    def parse_safari_reading_list():
        """Parse Safari reading list and return list of items."""
        items = []
    
        bookmarks = pathlib.Path("~/Library/Safari/Bookmarks.plist").expanduser()
    
        if not bookmarks.exists():
            return items
    
        plist = plistlib.load(bookmarks.open('rb'))
    
        reading_list = None
        for child in plist.get("Children", []):
            if child['Title'] == 'com.apple.ReadingList':
                reading_list = child
                break
    
        if not reading_list:
            return items
    
        for item in reading_list.get("Children", []):
            items.append({
                'url': item['URLString'],
                'title': item['URIDictionary']['title'],
                'date_added': item['ReadingList']['DateAdded'],
                'source': 'safari'
            })
    
        return items

    This works well.

    However, there is a well-known issue with the Safari reading list: when you remove many items at once, like when I was cleaning out, the sync can get confused. My experience was that every time I would add an item to my reading list on a mobile device, all my “progress” would disappear and I would find old items back on the list when I got to my computer.

    During this December break I was so fed up with this behaviour that I exported the reading list to a Markdown file in Obsidian and deleted the reading list on all my mobile devices. My reading list progress script now reads from both the Obsidian file and the Safari plist.

    What are these queues for?

    As I’ve been going through the reading list, I’ve found many gems. So I think my past self was doing something good by adding them to the list, but I’ve started thinking about all the places we maintain lists like these and the different roles they fulfil.

    When I have something like a shopping list, for instance, it is clear that the goal is to mark off every single item whenever I go shopping. But my Goodreads “want to read” list or a product backlog feels a bit different. The goal of these lists is to act as a “sorting buffer”. You want a list of a reasonable size that is prioritised and perhaps filterable so that you have options and can get the best stuff off the list. No-one expects their Goodreads reading list or product backlog to completely empty since that blocks them from their function.

    There is also a relationship between my hoarding behaviour and the changing media landscape. I have always been an avid reader, but during my lifetime we’ve moved from a place where I was finding it hard to find new books I’d like to read at my local library (because I’d read all the ones they had) to a never-ending stream of new words being churned out and funneled to your device for free. Here, again it becomes more important to filter, real time, than to catalog.

    Information explosion

    Some queues exist to be emptied, like a shopping list or an inbox tied to a concrete task. Others exist to maintain optionality. A reading list, a backlog, or a “want to read” shelf is closer to a reservoir than a pipeline: if it runs dry, it stops doing its job.

    This isn’t a new problem. In the 1960s, Herbert Simon observed that an abundance of information creates a scarcity of attention, shifting the real challenge from acquisition to filtering. Around the same time, Eugene Garfield proposed citation indexes as an institutional response to scientific overload: rather than reading everything, follow the trails that other people found worth citing. Those systems worked precisely because they turned personal filtering into shared infrastructure, but they degraded once the filter itself became a target. We’ve since repeated the same pattern with PageRank, SEO, and social feeds.

    So I’m trying to make sure I balance my exploration with my exploitation. Spend a bit more time actually reading content and learning and less time looking for interesting items, because right now that part is more than sorted.

  • Most people aren’t acting

    I don’t know exactly when it hit me that most of my mental imagery of people and relationships came from fictional characters rather than first-hand experience, but it was way too late.

    Just think about a romantic scene. A couple about to have their first kiss. Unless you’re some kind of creep, you probably havent seen this close-up from a third person perspective, ever. Sure, you might have been one of those people, but that’s quite different.

    Your third-person image memories are all captured with cameras, on sets, with lights and make-up artists and some bored staff trying to stay out of shot. If it felt genuine, that’s just a tribute to the skill of the actors.

    Or maybe you’re more of a reader. You know you can’t read people’s minds, but that internal monologue reads so naturally. It’s easy to forget that these people don’t actually exist. Authors aim for plausibility and narrative consistency more than actual realism. It’s not science. These aren’t observations from the real world. They’re made up.

    But let’s get back to those actors. Acting is hard, partly because actors have to make emotions and thoughts legible through their faces. We have to see the exact moment they get an idea, or fall in love, or feel disappointment. But real people simply don’t do that. If you watched me cfor an hour while I read funny or somber articles online, you wouldn’t be ale to tell the difference from my face. Most of us only “transmit” when they think they’re being observed, and even then we do it poorly.

    I believe that our constant exposure to acting has given us a pervasive belief in mind reading. When you think you know what someone else is feeling, you’re attempting mind reading. When someone expects you to know they’re upset (or why) they’re expecting mind reading.

    Movies teach us that emotions are obvious. Real life teaches us the opposite. People are hard to read, even when they’re trying to express themselves.

    This all means that in real relationships, whether that is with a romantic partner, a friend or a colleauge, it is important to talk explicitly about your emotions. I’m not saying you need to get on a therapy couch, just that you can make it clear that you are both interested in their internal life and unable to understand it without their help.

    I know this approach has been invaluable both in my personal relationships and at work.

    Side note: this concept is somewhat adjacent to the “Fundamental Attribution Error” where people attribute other’s actions to their internal make-up rather than some kind of situational duress. Also a fun thing to look up.

  • Being wrong feels just like being right

    This is one of the most powerful mantras in my life. Like many people I started out believing that I have an innate sense that would tell me if there is a chance that one of my beliefs are wrong.

    I’m not just talking about the big-picture beliefs like religion or morals here: My most vivid example is showing up a week early to my best friends wedding. You see I had been so sure of the date that I didn’t think to double-check the invite that was stuck to my fridge with a magnet, even as I dressed and drove 40 minutes to the wedding venue. It’s only when I realised none of the people in the church were familiar that the penny dropped.

    Once I understood that I could be completely sure while also being completely wrong, I started trying to understand how to introduce the correct uncertainty into my systems. I started keeping track of my bets, and I try to avoid expressing absolute certainty. But of course, when you’re sure you don’t try to do those things, and it would be crippling if you questioned every single moment of every day.

    So also have some sympathy for yourself and others when you inevitably make mistakes that you had no warning about.

    I learned a lot about this idea of certainty from Kathryn Schults’ work. This TED video sums it up pretty well, but I encourage you to read more about this.