Ever since discovering the Acquired podcast earlier this year I have enjoyed every episode that I have listened to. I definitely recommend checking it out. If you want a place to start, the latest episodes on Disney are excellent. There’s a good section on Pixar, too, in the second episode. Overall, a lot I was not familiar with.. and there’s more on Disney if you want it.
I really enjoyed the experience so I decided to go further and vibe code my first app.
Take a look…
My setup and approach
I am using my 14 year old iMac as my main machine when at home (still going great, see above), running Ubuntu 24.04 Linux as an OS with the GNOME desktop environment and X display server. I have an old but powerful (for its time) NVIDIA graphics card in the machine and the drivers do not work well under Wayland whereas under X I get graphics hardware acceleration. The application is created using GTK4, a modern way to create application interfaces if you are using the GNOME desktop.
I haven’t looked at the code – I don’t know Python, which is the language Claude chose to use. I just kept prompting until I got what I wanted and it worked properly. I feel uneasy about this but I would not know if the code was wrong (although not enough to stop it working) or inefficient (probably worse as it would be silently using unnecessary processing cycles and power). I’m sure that in a year or two (or a lot less) no-one will be checking the code, most of which will be written by AI. In fact, the sheer volume of code created by AI will be impractical for humans to review.
The name
Claude made up the name. I should have changed it.
Why a podcasting app?
I’m a big podcast listener and the developer of my favourite iOS podcasting app Overcast had started talking recently about raising subscription prices and reserving some features for the paid-for version. I wanted to be in a position where I could move away from Overcast if necessary. Also, Overcast used to be able to play my DRM-free audiobooks in .m4b (bookmarkable) format but now that no longer works.
When I asked Gemini about this last issue it recommended an iOS app called BookPlayer. BookPlayer is simple and plays any file that I give it. When I had a minor issue the developer was friendly, fixed the issue and quickly released a new version. I would recommend the app highly.
The idea was to create an app that would read my current list of podcasts in OPML format, list the latest episodes and let me download any I want to isten to. Originally the plan was to set up Audiobookshelf but in the end I just log into iCloud.com and upload the files via a browser. Bookplayer can import files from there.
How it started
What started as a simple audio file downloader soon developed in scope and ambition. It all started with this prompt (typed on my phone as I waited for a train…):
“I don’t want you to do this now but I just want to know if you could write an RSS based application that would work on Ubuntu 24.04 with the gnome desktop that would read from an opml file from the Overcast podcast player on iOS. It would have to support private feeds as I have a number of shows from the TWiT network that have feeds specifically for me. It should go out and update the feeds when I hit a download button manually. It should present me with a list of podcasts that I would tick to download the audio files I want. There would be a pinned list of podcasts at the top that are the ones I listen to regularly. This should be a native Ubuntu application that behaves as a good native application should. The plan would be to put all the downloaded files into a directory that can be used by the AudiobookShelf application and then books imported from there onto my iPhone using the BookPlayer app. I have an opml file I can upload if that helps. How would you go about this?”.
At the time the model I was using was Claude Sonnet 4.6 Low (it has moved on from then) and I was only using the Free account which meant that Claude would work for a while – how long depended on the action it was carrying out and how busy the system was. This could vary from over an hour to just a few minutes. Once my time was up I had to wait anywhere from 3 to 5 hours before continuing. I couldn’t expect miracles, it wasn’t costing me anything. I had to download individual files, put them in specific directories and run a build script to create the installer file. I’ve since found out that more recent models will save those steps and just supply me directly with a .deb file which saves substantial time. A .deb file is the application installer. It’s not that the new model is better at coding (so Claude tells me) but that the environment it is working in allows it to work in much more productive ways.
I’m sure that if I read those lines again in 5 years’ time it will sound like I was working in the stone age…
Iteration, over and over again
Just to give an idea of the process and improvements made along the way…
I decided I wanted to see the artwork for each podcast. It pulled in all but three (of around 100 podcasts). Claude found that some artwork was bigger than what it had allowed for, increased the size allowance and then it pulled in all the artwork
listing all the episodes in a podcast feed would take a long time. There were podcasts that had several hundred episodes in the feed and it was taking a long time to query the database – Claude decided to display the first 75 and then load the next batch only if necessary (not necessary most of the time as you are normally interested in the most recent episodes)
failing file downloads: podcasts that used dynamic ad insertion (where ads that are specific to your location, date or subject matter etc are added to the file immediately before download) caused big problems at first, especially for one podcast that moved to DAI after not using it before. It went from downloading to not downloading. Claude figured it out after a lot of troubleshooting it asked me to do. In the end it looked at the RSS url of the podcast and if it recognised it was using a service that used DAI it would use a different library in the background to download the file – it looks no different in the interface to any of the others
adding the ability to play back a podcast: a big job as it required making sure that the player’s interface accurately reflected the timestamp you were listening to and that you could drag to the moment you wanted to hear reliably. It added a dropdown menu so that I can adjust the playback speed in the small increments I like eg 1.1x, 1.15x, 1.2x etc. When you listen to a lot of podcasts, it makes a difference
adding the ability to add a podcast by searching the Apple Podcast Index. At first I couldn’t type a space in the name of a podcast eg “Macbreak Weekly” as hitting the space bar started a podcast playing if the player was also in use – wasn’t a big deal for Claude
clicking on the title of an episode would bring up the show notes but at first they would not display properly. Claude changed the method being used to display the notes and then they were nicely formatted
updating and correcting the interface in a million different, small ways: so that the Disk Usage window displayed properly, that headings matched up with content in the columns, ensuring that the divider between pinned and regular podcasts wasn’t a thick grey rectangle but a simple line etc etc etc
The experience of working with Claude
I loved it. I’ve found a freedom to produce apps that I never had before. I normally work on a Mac but on Linux I can just produce software, install it and use it. No intermediate steps, no Integrated Development Environment (IDE), no signing, no Notarization, no nags or refusal to install apps, no App Store. So refreshing.
It’s ridiculous when you think about it but what surprised me was the realisation that Claude did not mind how many times I came up with another feature or little detail to improve or issue to fix. It would just keep going. I know this is obvious but once you start working like that you can produce something that works perfectly and always looks good. No little annoyances to live with. If you can be bothered to fix it, it will be done.
It’s true that I’m not particularly learning about the coding process but the writing and troubleshooting process are so fast that I don’t mind. I like tackling a problem and getting the satisfaction of finding a solution but here I can follow the logic of the feedback I’m given and appreciate the skill involved without having to spend hours or days researching how things are done.
The future
I now can’t imagine working any other way. I can craft my app to the smallest detail, as I did with Podcasto, or I can imagine creating some quick little app to just get a job done – it doesn’t have to be pretty as long as it works.
Any time I think that I will have to do a task more than a few times or it might take a while to complete, it would be worth spending 30 minutes seeing what I can whip up software-wise to get the thing done faster, with more consistency and less chance of error.
The more I use Linux as my everyday computing platform the more I like it and feel comfortable. It’s like a Mac but with the schackles removed. There are a number of applications that I still use on my Macs but the Macs are getting older and the operating systems stop being supported relatively quickly.
That my ancient iMac is still running like a champ on Linux shows that it is possible to keep a system running productively much longer than imagined. I won’t be running a local LLM on it any time soon (never say never…) but I will be creating more apps with Claude that mirror the functionality of applications I have on Mac. Then I will be able to do all the main tasks on Linux that I can do on Mac. They don’t look the same but they work and they fit in natively with the operating system. Clean and functional.
Working with the chatbot interface has been fine but I can definitely see the potential of the agentic AI model. At the moment I don’t have the hardware needed to run a capable model and I’m not about to start spending out for frontier model subscriptions (or even more expensive pay-as-you-go tokens). I don’t feel like I have the problem yet for which the solution is shaped like “digital labour”. But I will at some point.
Conclusion
I really enjoyed the process of working with Claude and I like it’s personality – professional, not chatty or friendly. I like the way it thinks through a problem. I think it did a good job because it has seen and produced many podcast apps before. I did not probably push it too hard into an area that it did not have any history in.
Most importantly, I have an application that looks and feels good, works reliably and I enjoy using. It won’t be the last.
(A couple of days late but…) This lovingly crafted blog is celebrating its ninteenth birthday. A beer (or nineteen) is cooling in the fridge to toast the reaching of a milestone. Happy birthday!
Last summer (2025) I read the book Artifical Life by Steven Levy and came away very intrigued but feeling like I had not fully understood the book. For some reason the subject has stayed with me.
Without having a particular comment, I want to leave this piece of news (from 1 July 2026) as a marker – an early step towards artificial life. It might be a footnote of history or it might be a trigger for something even bigger than artificial intelligence.
I do wonder: if people are still getting their heads around AI what are they going to think when artificial life bursts into the public consciousness? What happens when the two come together?
Researchers claim they are closer to creating life from scratch after building tiny, quivering blobs that use lab-made DNA to feed, grow and multiply in a dish…
The synthetic cells were made from chemical compounds and are believed to be the first to demonstrate the complete cell cycle of growth, genetic replication and splitting to produce the next generation.
… it may also shed light on the profound question of how particular assemblies of inanimate matter cross a threshold to become life.
Making a synthetic cell helps us understand the exact minimum requirements for life and how life might have emerged from chemistry… It’s also useful as it provides a fully understood system for testing biological circuits and computer models of cellular life.
The inside story of Lean, a computer program that answers the age-old question: How do you know if something is true?
It began as an obscure bug-checking program at Microsoft Research developed by a lone computer engineer named Leo de Moura. Then an unlikely crew of mathematical misfits caught wind of it and began to adopt it with messianic zeal. Their goal was to create a truth machine that could provide the rarest of all commodities in life: a complete, 100 percent guarantee that something is true. Its name: Lean.
As the movement grew and strengthened the program’s capabilities, it drew in two of the world’s most prominent mathematicians: Peter Scholze and Terence Tao. Google DeepMind, Meta AI, and other tech firms started using the program to supercharge computer reasoning. Now it’s remaking the multi-thousand-year history of how mathematicians work, collaborate, and assess truth, while charting a new path in the march toward machine intelligence.
In The Proof in the Code, Kevin Hartnett tells the definitive story of the birth and rise of Lean, and how a growing movement is transforming the enterprise of mathematics and ushering in a new era of human–computer collaboration. An engrossing, character driven narrative filled with insights about the future of math, computers, and AI, this brilliant work of journalism from one of the world’s leading math writers offers a profound answer to the question: Can computers reveal universal truths?
I thought this book was excellent – snappy, no heavy maths or equations to spoil the flow and a really interesting story.
Want to change the world? Put these kinds of projects into the hands of experts.
I also found it to be a real insight into the realities of maintaining an open source project. The stresses and strains but also the magical results.
• Quanta Magazine: How Terry Tao Became an Evangelist for AI in Math (adapted from The Proof in the Code: How a Truth Machine Is Transforming Math and AI by Kevin Hartnett) and a podcast discussing the book
This was one of those jobs that I knew had to be done at some point but I had never gotten around to: updating my holding page at andrearroyo.net which has a few links to my online homes.
The original had been in place for a number of years and was set up using the static site generator Hugo. Here’s how it looked:
There were a number of issues with the page. The main problem was that it looked fine on a desktop machine but on mobile the font was way too big and not all the content was visible. It also pointed to my old Twitter account which I haven’t used in a long time – these days you can find me on Mastodon instead.
The other day I wanted an excuse to play with Anthropic’s Claude.ai – the chatbot version of their offerings – so I thought I’d give it my holding page as a project. It ended up being less of a project than I imagined. Claude and I made such fast progress that I ended up just getting the job finished so that it was out of the way.
I was thinking at first about having to upgrade Hugo after all this time and finding a new template but when I told it what I wanted the answer was simple: html (of course…🤦). As we iterated it added some javascript to the one file it produced (for example: changing from light to dark theme at a certain time of day or if the device was using a dark mode for it’s OS interface).
After a little while it told me I had to wait 5 hours as I was on the Free plan, so I switched to Google Gemini in the meantime to see what it could do. It wasn’t bad. It created a new favicon that Claude had not thought to suggest – that I later got Claude to implement – but overall Claude’s version was considered to be a bit more polished. This time I wanted something more professional.
The page is hosted on GitHub pages and (once I was allowed to continue…) Claude gave me all the instructions I needed to get the new page up and running. Shortly after that it was done.
I am pleased with how it looks and works, it couldn’t be easier to maintain and it took a lot less time than I originally expected.
I really enjoyed working with Claude and found it’s tone to be professional rather than warm and complimentary – something I appreciated. It’s hard to explain but I liked it and can see myself using it again for a new project. After this first experience I can definitely picture myself working this way in the future.
After listening to the Acquired podcast‘s history of NVIDIA in three parts… one, two and three… I found two long-form interviews with the company’s boss Jensen Huang, now officially the superstar CEO whose keynotes are held in stadiums. The first is from 2023 when NVIDIA was the 6th biggest company in the world:
… and a new interview from this year, now that the company is now the biggest in the world:
Both are really good – a lot of interesting stuff here. He must have been part-timing it up until a few years ago, evidently…
I’m not sure how I managed to miss this podcast for so long (over 10 years…) but I have only started listening recently. I heard it mentioned briefly on another podcast and went to find out more.
This is great: just two guys talking about different companies but it’s packed full of history, insight and analysis as well as being an easy and enjoyable listen. It’s delivered so well that a 4 hour episode goes by quickly. Don’t let the length of the episodes put you off.
What’s interesting is that it goes beyond just technology companies and looks at some of the biggest companies in general so there is plenty to catch up on. Each episode has links, a full transcript and sources.
Athropic has announced that it’s latest large language model cannot be released publicly because it is so good at finding flaws in computer code and then creating exploits to take advantage of the flaws. The company has limited access for the moment to a core group of companies:
We formed Project Glasswing because of capabilities we’ve observed in a new frontier model trained by Anthropic that we believe could reshape cybersecurity. Claude Mythos Preview is a general-purpose, unreleased frontier model that reveals a stark fact: AI models have reached a level of coding capability where they can surpass all but the most skilled humans at finding and exploiting software vulnerabilities.
Mythos Preview has already found thousands of high-severity vulnerabilities, including some in every major operating system and web browser. Given the rate of AI progress, it will not be long before such capabilities proliferate, potentially beyond actors who are committed to deploying them safely. The fallout—for economies, public safety, and national security—could be severe.
This episode of Security Now is the best resource I have found for information about the claimed capabilities of this new model and the possible impacts that could result. This is a long episode but it is worth sticking with the whole thing.