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?
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:
defparse_safari_reading_list():"""Parse Safari reading list and return list of items.""" items = [] bookmarks = pathlib.Path("~/Library/Safari/Bookmarks.plist").expanduser()ifnot bookmarks.exists():return items plist = plistlib.load(bookmarks.open('rb')) reading_list =Nonefor child in plist.get("Children", []):if child['Title'] =='com.apple.ReadingList': reading_list = childbreakifnot reading_list:return itemsfor 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.