Everything new is old again

Listen to this post

I noticed something weird about the things that interest me.

I’m fascinated by emerging technologies. I’m all about the bleeding edge, more than happy to trade software bugs for early access. Give me the beta!

I had an early smart watch, I was early to the smart home (much to the chagrin of my wife!), I bought into VR with the original HTC Vive, and I’ve been excited about LLMs since the launch of OpenAI’s GPT 3. I own two 3D printers (yes, I’m one of those people)!

But that's not so strange. The weird part is that I also long to return to the early days of the internet. I love black and white film photography. I DM a weekly D&D group (a game invented in the 1970s), which requires no more technology than a pencil, paper, and your imagination. It’s more than nostalgia, I’m just captivated by…

Well, I suppose I’m interested in technologies that have changed the world. Really altered the course of history. Whether it’s storytelling around a campfire, capturing a moment in time on silver halide, or giant leaps forward in our ability to compute using natural language.

New will always be new. There will always be another new after the previous new. But what made it, what sticks around, what outlasts? What's durable? What's the reason that rare thing is still here?

Longevity isn't a fluke. It's an opportunity to get on board when you missed it before.

Jason Fried, What's still here

Some innovations are mere novelties and fads, but the technologies I love the most are the ones that stick around.

Failed to Launch

Listen to this post

Depending on where you’re at in life, and what kind of processes you have in place, you may dive right into the idea. Perhaps you work on it nonstop, stay up late tinkering, and overall just can’t get put it down. At some point you’ll start to add some definition and try to bring shape to the idea.

Then, all too often, you abandon the thing right before shipping.

Joshua Wold, Nebulous undefined ideas are too perfect

This happens to me. A LOT. Too many times to count.

I have so many unfinished projects. I've always felt low-key ashamed of my inability to ship. But Joshua's post has got me thinking. Maybe all my failed-to-launch products are not such a bad thing after all.

Truly creative work requires play. And practice. And probably some other p word to form a nice little alliterative mnemonic. Perspective, maybe? Passion? Persistence!

That project I started but never finished, two years ago (it was called Confetti and it's such a great idea for an app)? I learned a lot! I learned what kind of designs I like, I learned that I love writing Swift and native apps, I learned how to structure a SwiftUI project, and so much more.

The other project that I started (and fully intend to continue as soon as I can find the time and it's also such a great idea for an app) lead me down more design pathways, had me exploring other apps and forming opinions on how things should work, and introduced me to various advanced Swift concepts.

Every time I pick up a new idea, I get better. Steps along the path of my learning journey.

I truly believe that the best way to learn is to do. Following a tutorial is one thing. Having an end-state outcome in mind and striving to make it work, well that's another thing entirely. The former leaves you with a cloned example project. The latter leaves you with hard won neural pathways forged into your brain. You'll remember the information longer, and building on related ideas and skills will come more naturally.

All that said, it's probably time to re-read Amy Hoy's JFS.

Jessamine's Theme

Listen to this post

Sheet music for piano, treble clef.

The New Cigarette

Listen to this post

In the early days of the cigarette, smoking was considered a harmless or even beneficial activity. Cigarettes were considered stylish, sophisticated, and doctor-approved. By the early 20th century, smoking was so deeply embedded in modern culture that it was hard to imagine a future without it!

Of course, fast-forward to now and, at least in Australia, cigarettes are heavily taxed, not permitted to advertise, or even be displayed in a store. Cigarette packets are covered in grotesque imagery intended to discourage their use. Smoking in bars and restaurants is not permitted, nor is smoking within 10m of a store, beach, or playground. In New Zealand, cigarettes are now banned entirely for anyone born after 1 January 2009!

We're all physically healthier for it.

But a new health crisis has taken the place of Big Tobacco. A mental health crisis.

The mental health of young Australians is plummeting dramatically, reflecting a world wide trend. All evidence points directly to Big Social.

Yet despite this worldwide megatrend, public and media discourse is muffled. Health and social care systems remain asymmetrically focused on physical illness and disability. Despite the erosive effect of mental illness, public pressure and, consequently, the political will for a response, in proportion to the scale and urgency of the crisis, are yet to materialise.

The answers are likely to involve a blend of socio-economic and generational changes, rising adversity and inequality, and unforeseen consequences of technological advances. The US Surgeon General, drawing in part on the research and advocacy of Jean Twenge, has identified social media as a key megatrend undermining the mental health of young people.

The Medical Journal of Australia, Mental health of young Australians

Why is nobody talking about this!?

Social Media is the new cigarette. Our teenagers inhale TikTok and Instagram night and day, and millennial parents are no better. We are, collectively speaking, hooked. Social media addiction inflicts stress, aggression, anxiety, depression, interrupted sleep, and more, but nobody seems willing to do anything about it.

Sorry if I sound to you like an angry vegan raging at an abattoir, but I've managed to wean myself off all forms of social media, and I promise you I'm better off for it. For me, this manifests as calmness and patience, but also a sort of down-time productivity that's resulted in a 1,000 day Duolingo streak and regular piano practice.

Lots of people find inspiration and community in social media spaces. But inspiration is nothing without creative action – and it strikes more readily with regular practice. You can create your own social spaces amongst friends in environments that aren't littered with ads and algorithmic feeds designed to hypnotise and enrapture.

Why not try a detox period? Keep a log of how you feel (like breaking any addiction, you can expect a difficult period to begin with). It's time to recognise that, like smoking, social media carries health risks that warrant our attention. It's time to take a proactive step to manage your digital consumption. It will make you happier and healthier.

Learn as you go

Listen to this post

Everyone is making it up to some extent. This is the secret I didn’t learn until years into my career. I often thought I was the only one in the room who didn’t know what was going on, and was in awe of the geniuses always surrounding me...

... Often people are making things up as they go along. They’re not sure, things are undefined and squishy.

Joshua Wold, Making it up

Thankfully, this is a secret I learned very early, and has steered me true in every stage of my career.

In high school, everyone thought I was a programming genius. In reality, my VisualBasic apps were mashups of code I found online, and my websites usually started by copying the source from another site I liked.

And then I realised, that's what programming is.

Ask any senior software engineer. They'll tell you that they started out by copying code (and probably still do).1

I walked into my first WordPress job interview without any experience writing WordPress themes. I fudged and exaggerated, and got the job. In the two weeks I had before the job started, I learned most of what I needed. The rest I figured out on the job.

I took that "fake it till you make it" mindset with me. Never lying outright, of course, but more than a little overconfident. The key is to trust in your ability to learn.

The principle of making it up as you go along is just a skeptical take on this true wisdom: become a lifelong learner. Rather than taking confidence in your capability for action, take confidence in your ability to learn.

If you can prove to yourself – really back yourself – that you're able to learn any particular skill, all that matters is that you enjoy doing it.2


  1. That's the thing about AI that people don't realise. AI isn't going to take programmer's jobs. It's just helping programmer's do what they've always done, only faster: copy the code from someone else and adapt it to the requirements! ↩︎

  2. Herein lies a trap I've fallen in more than once. I can be confident in my ability to learn a particularly new skill, and that confidence will lead me to overestimate how much I'll enjoy it. Then, when it comes time to actually do the job, I'm not motivated to learn. ↩︎

Steganography

Listen to this post

Tuesday morning, I'm in the car with my son, and the topic of steganography comes up. Eli is an adventurous kid – he loves playing games involving treasure and discovery with his mates. No prize for guessing how fascinated he was with the concept of hiding secret messages in plain sight.

He wanted to learn a few steganography techniques, of course. I told him about some of the obvious ones. Despite my experience with steganography in the past, I struggled coming up with simple techniques he could put into practice without the help of a computer. Determined to figure something out, I explained Acrostic Steganography. Eli loved the idea. Now he could write letters to his friends containing secret messages.

Much more complicated steganography techniques exist, of course. Eli was keen to learn more. So I explained some of the ARG (Actual Reality Game) games I've developed in the past. Steganography isn't limited to text. Audio can contain hidden messages too. Guessing these often requires software that will allow you to view the waveforms of the audio. Extracting hidden messages from waveforms can involve spectrogram analysis, where images or text are embedded within the frequency domain of an audio file. Simple, but you need to know what you're looking for.

Images are another easy place to hide messages. Not many people realise that PNGs can have text data appended to the end of the file without affecting the way the image is displayed.

There's also EXIF data for images, ID3 tags or audio, XMP metadata for PDFs, and a comments sectiion for zips. Hiding messages in metadata like this may not be quite as subtle as other techiques, but it's easy an convenient. I don't know about you, but I don't usually check the metadata of files. So if the messge isn't particularly sensitive, that could work for lazzy and quck cryptograpphy.

A QR code.

Perhaps you could consider the QR code a steganography device, using black and white squares to represent binary data. Of course, QR codes are typically overt in their function, but hidden messages could still be layered in or embedded in other ways. "Steganography diving" requires a curious and adventurous mind, unafraid to tinker, hack, and learn. True mastery, as in all things I suppose, comes through a willingness to simply play.

Writing Chair

Listen to this post

In 2020 I started writing a novel. It was an ill-fated endeavour, but I learned a lot along the way.

One of the things I learned is that it's useful to have a separate "space" for writing.

I used to cycle into my city office on Eagle St., then take my laptop and a coffee somewhere else to write. There was this one particular spot, a chair in the lobby of an office building, that had people bustling all around and a view of the river. I'd put in my headphones, play a very specific playlist, and write.

I don't live in the city anymore, and it's not so practical to drive 10 minutes down the road to the closest café every time inspiration strikes. So instead, I unplug my laptop from it's charger, and move to my writing chair.

We are spatial thinkers. We think with our mind, our physical body, and our environmental context. Our brains reorient and reorganise each time we move from one place to another.

If you'd like to write more (and you should!), try sitting somewhere new.

Gloriously Human

Listen to this post

I've been having an ongoing argument with a friend about AI's role in recruiting. Whether you're a job-seeker or employer, things are getting pretty dire.

If you're looking for a job, one in five advertised positions are "ghost jobs" – fake, or already filled. The number of ghost jobs are probably much higher on LinkedIn, where recruiters are priming their talent pools and employers are gaming the algorithm.

If you're looking for an employee, you're already drowning in AI-generated CVs and cover letters. From the Financial Times:

Candidates are turning increasingly to generative AI – the type used in chatbot products such as ChatGPT and Gemini to produce conversational passages of text — to assist them in writing their CVs, cover letters and completing assessments.

Estimates from employers and recruiters who spoke to the Financial Times, as well as multiple published surveys, have suggested the figure is as high as 50 per cent of applicants.

A “barrage” of AI-powered applications had led to more than double the number of candidates per job while the “barrier to entry is lower”...

Financial Times, Jobhunters flood recruiters with AI-generated CVs

What's the solution to this problem? According to my friend: MORE AI!

  • Employers can use better AI tools to identify and weed out the AI slop
  • Employers can use AI to test the proficiencies and capabilities of applicants
  • Employers can use AI to automate early interviews
  • Job-seekers can use AI to improve their CVs
  • Job-seekers can use AI to tailor their applications to the job description
  • Job-seekers can use AI to receive personalised career guidance and skill development recommendations

It doesn't take a crystal ball to see how this whole thing just loops in on itself. It's the enshittification of the job market. Employers get better at identifying AI, job-seekers get better at hiding it. Employers get better at funnelling applicants with AI, job-seekers get better at staying on the list. Round and round it goes… until?

Well, until someone pulls the plug on AI recruitment entirely. Like Anthropic, one of the world's leading AI companies, does:

AI Policy for Application: While we encourage people to use AI systems during their role to help them work faster and more effectively, please do not use AI assistants during the application process. We want to understand your personal interest in Anthropic without mediation through an AI system, and we also want to evaluate your non-AI-assisted communication skills. Please indicate 'Yes' if you have read and agree.

We're in the "storming" phase of AI. We haven't figured out how it fits into our lives yet. There are no guarantees LLMs will take over every aspect of our lives, nor that they will replace people's jobs. The more I use AI tools in my day-to-day work, the more I appreciate real contact with real people.

The next big trend to land in our adscapes will be imperfectly, strangely, gloriously human.

🥙 Pita: Devlog 2

Listen to this post

I'm building an app called Pita. It makes publishing and managing your podcasts easy (and pretty). This is the second update. The first is here.

One of the problems with hosting your own podcast is that you still need the audio files to be served from somewhere. Depending on the podcast, these files can be quite large, especially after you're 50 or more episodes in. You also need to host your RSS file somewhere (though this can be somewhere different). And most of the time, you'll want a simple marketing website too – maybe one that has your podcast episodes listed with an audio player.

That's a lot – and that's why all these paid SaaS options exist (Buzzsprout, Blubrry, Podbean, Libsyn, the list goes on…)1. But what if you could do it all for free?

Well you can! There's a bit of setup involved, but here's how I've got things setup for the Digging for Fire Podcast.

  1. Audio hosting: the Internet Archive offers free mp3 hosting!
  2. Website hosting: you can host a static website for free
  3. Podcast RSS hosting: You can modify Jekyll or Hugo to serve an RSS file for your podcast episodes

The goal for Pita is to automate this whole process. Connect your Internet Archive account and your Cloudflare account, and Pita will look after the rest.

In the meantime, I've hacked together some scripts.

Each new podcast episode goes through a four step process:

1. AI cleanup and edit

I've been using Auphonic for this. It does a great job of getting rid of background noise and reverb. This is essential for me because I record in a dome in the rainforest, so I get lots of both!

2. Prepare the MP3

Whether I use Quicktime or Voice Memos to record, the output is always a plain MP4. I've been using ffmpeg to create a 64k mono mp3, and embed the episode artwork, title, and podcast name.

3. Upload to Internet Archive

There's a great command line utility called IA which does the heavy lifting for me here. It uploads the episode to archive.org, and returns a URL. I copy this URL into the front-matter of my Hugo post.

4. Get additional file data

The podcast XML standard also has an option for filesize and duration, to help podcast players show the episode correctly without needing to download it. This last script gives me the data I need, and I also copy that into my front-matter for the episode post.

Then, in Hugo, my front-matter (a bit of meta data text at the top of each markdown post) looks like this:

---
title: "🥙 Pita: Devlog 1"
date: 2025-01-20T20:30:00+1000
lastmod: 2025-01-20T20:30:00+1000
audio: https://archive.org/download/digging-for-fire/pita-devlog-1.mp3
audiolength: 3721724
audioduration: 00:07:31
categories:
  - Apps
---

Thanks to great RSS support in Hugo, I was able to add a separate RSS feed to my blog which only includes new posts that have the audio included in the front-matter.

And that's it! A completely free podcast.


So my next step is going to be pulling all that into a very basic Mac app. It should move an audio file through a workflow of:

  1. Collect episode info from user
  2. AI Edit
  3. MP3 Packaging
  4. Upload MP3 to IA
  5. Create a GitHub PR to a Jekyll / Hugo repo with the new episode

This will still require manually setting up the site to begin with, and auto-deploying it via GitHub / Cloudflare Pages.

My plan is to test this whole thing on a new podcast network that Joshua, Jonathan, and I are working on: Pretty Good. My goal is to get it to a point where trusted friends can run the app on their machine and have it publish episodes for them.


  1. The plan for Pita is to integrate with as many of these services as possible (depending on their level of API support). But I'd also really like to offer users an option that doesn't require any monthly subscription. ↩︎

Pebble

Listen to this post

On the 25th of February in 2015, I backed what would become my most beloved kickstarter project. The Pebble Time smart watch.

I chose the Pebble Time Round edition, which I still believe to this day is the most beautiful smart watch that's ever been built. I was a long-time Apple Watch holdout simply because Apple didn't make it as a circle.

PebbleOS is pure delight. My memories of the software are laced with nostalgia, and it's only 10 years ago! It had this quirky interface that was as fun and beautiful as it was unique. It covered all the bases for me in a Smart Watch:

  • Lightweight
  • Multi-day battery
  • Easily readable outdoors
  • Extensible (great developer API and documentation)
  • Notifications

The interface for this thing was genius. It's a watch, right? So, the buttons all relate to time. There's a column of three buttons down the side of the watch. The top one is for "things that already happened", the middle on is for "things that are happening now", and the bottom one for "things that are coming up".

I loved this thing so much. Here's a product shot featuring my newborn (at the time) daughter.

Saadia holding his baby daughter. He's wearing a Pebble Smart Watch.

E Ink was made for wearables.

And then… acquisition happened. Fitbit stepped in after Pebble filed for insolvency. Then Google bought Fitbit. The founder, Eric Migicovsky, went on to start Beeper, which was then acquired by Automattic. And my beloved Pebble moved from gadget of the year to the annals of techno-history.

And another thing happened. The Apple Watch came along. It solved a very different set of problems. I love my Apple Watch, but I've got a list of complaints, too.

  • It's heavy
  • It could have better battery life
  • WatchOS is kind of terrible
  • Something has always bothered me about the always-on backlit screen
  • I get a bit bored of the watch faces

The Apple Watch is good, not great, but nobody makes anything quite as good as the Pebble once was. So Apple Watch is now my daily driver.

But hold the phone! It's just been announced that the Pebble is making a comeback!1 Turns out, Google open-sourced PebbleOS, a community (aptly named Rebble) has been maintaining an ecosystem of apps and watchfaces, and Eric Migicovsky is down for giving it another spin.

I'm so pumped for this2. The particular set of tradeoffs and design principles that Pebble offers is perfect for me. I have a bit of a wishlist for the new Pebble:

  • Bring the Round edition back!
  • Some basic fitness tracking (integrating with Apple Health)
  • Better, brighter, colour E Ink screen
  • (Never gonna happen) NFC Payment support

And I want to point out a part of Eric's post that I think says a lot. What's going to be different this time? No VC funding.

This time round, we’re keeping things simple. Lessons were learned last time! I’m building a small, narrowly focused company to make these watches. I don’t envision raising money from investors, or hiring a big team. The emphasis is on sustainability. I want to keep making cool gadgets and keep Pebble going long into the future.


Here's another product shot, this time for Apple Watch. This is a photo of my son just moments after he was born!

Talia holding her baby daughter. She's wearing her Apple Watch.

Our watches become such an intimate part of our lives! Truly an extension of ourselves.


  1. Hey Eric, what a great blog design you've got! ↩︎

  2. If you're still unsure why people are so excited about the return of the Pebble, this Reddit thread explains a lot↩︎