Call me

Listen to this post

Inspired by Matt Webb's Unoffice Hours, I've opened by calendar for 30 minutes every week. Whether you'd like to chat about a recent blog post, how I organise, homeschooling, podcasting, film recommendations, or anything else, I'm available.

All you need to do is book a call.

You will need to be contactable via FaceTime. When you book the meeting, you will be given a FaceTime link to join the call. This should work everywhere, including non-Apple platforms via the web.

I'm on Brisbane time (GMT +10) so please check the times work for your own timezone

If you can't make it: please cancel the meeting or drop me an email. Running late happens and that's fine! I'll stay on the call for 5 mins.

The Joy of Hacking

Listen to this post

Whenever I'm working on something new, my end goal is to distill it into the simplest version possible. Clean, readable, minimalist.

Usually, that process starts with chaos and complexity. Whether it's a coding project or a TTRPG concept, the genesis is the same. Throw together a whole mess of ideas, goals, questions, and inspiration. Then refine. Find parts that fit together nicely, trim the fat, leave no wasted space.

The same thing happens on the macro scale. Right now, the very nature of programming is undertaking a large, and very messy, change.

Clean, maintainable code? Overrated, according to current trends.

There's a new kind of coding I call "vibe coding", where you fully give in to the vibes, embrace exponentials, and forget that the code even exists. It's possible because the LLMs (e.g. Cursor Composer w Sonnet) are getting too good. Also I just talk to Composer with SuperWhisper so I barely even touch the keyboard. I ask for the dumbest things like "decrease the padding on the sidebar by half" because I'm too lazy to find it. I "Accept All" always, I don't read the diffs anymore. When I get error messages I just copy paste them in with no comment, usually that fixes it. The code grows beyond my usual comprehension, I'd have to really read through it for a while. Sometimes the LLMs can't fix a bug so I just work around it or ask for random changes until it goes away.
Andrej Karpathy

Vibe coding sounds like a lot of fun for experienced programmers. It also sounds like a terrible way to learn to code.

The problem is that we're trading speed for quality. Let's face it, mostly because for the first time in history, we can. This might be a reasonable trade-off some of the time, but it's a mistake to default that way.

We are destroying software by no longer taking complexity into account when adding features or optimizing some dimension.

We are destroying software with complex build systems.

We are destroying software with an absurd chain of dependencies, making everything bloated and fragile.

We are destroying software telling new programmers: “Don’t reinvent the wheel!”. But, reinventing the wheel is how you learn how things work, and is the first step to make new, different wheels.

...

We are destroying software trying to produce code as fast as possible, not as well designed as possible.

We are destroying software, and what will be left will no longer give us the joy of hacking.

Salvatore Sanfilippo, We are destroying software

Alright. We've got AI now. It does some amazing things, and some not so amazing things. It has transformed the way we code. We've also got package dependencies coming out our ears, and 1,001 Javascript frameworks, each one more trendy than the next. That's our starting point. That's our mess.

Now, let's refine. What can we get rid of? What works well together? What helps, without destroying the joy of hacking?

Wednesday

Listen to this post

Derived from the Old English Wōdnesdæg, Odin’s Day. A Norse god of complexity and contradiction, war and wisdom.

In the Romance languages, mercoledì, miércoles, and mercredi, named for Mercury. A Roman god of trade and travel.

These gods, it seems, aren’t on my side. Wednesdays have been a struggle for me. I could use a little wisdom, a lot more focus, maybe some guidance on Wednesday.

German gives us the transcendentally simple Mittwoch, which translates to “mid-week”. Russian is the same, Среда (Sreda), “the middle”. In Hebrew, יום רביעי (Yom Revi’i) is “fourth day”, and so is the Greek Τετάρτη (Tetárti). 星期三 (Xīngqīsān) is the Chinese “third day”.

None of these clinical descriptions of Wednesday adequately describe the limbo of being neither at the beginning nor quite near the end of the week.

Isn’t it just mad that the world operates on a seven day week? A gift from Judaism that is so embedded in the modern world that it’s hard to even imagine organising our calendar in any other way. Did you know that the ancient Egyptians had a 10 day week? They even retained it under Alexander’s conquest.

In 1793, France introduced decimal time. A day was 10 hours long, each hour divided into 100 minutes, and each minute divided into 100 seconds (1 decimal second works out to be 0.864 standard seconds). The whole thing lasted 2 years.

But Wednesday. Market Day.

In medieval Europe, merchants, farmers, and crafters would pause work on Wednesday, to sell their goods in marketplaces. Wednesday markets are still common in England and France. Its position in the working week is perfect for a break in routine.

But to truly understand the nature of Wednesday, we must turn to colloquialism. Germans use the hilarious Bergfest, meaning “mountain festival”, similar to the English “hump day”. Italian has the all-too-real giorno di fatica, “struggle day”. Japanese take it up a notch with 水曜地獄 (Suiyō Jigoku) “Wednesday Hell”.

But the award for best Wednesday word goes to Russian, which manages to perfectly reflect a Wednesday vibe with just two words: Маленькая пятница (Malen’kaya pyatnitsa). “Little Friday”.

Wind & Truth

Listen to this post

This is a special audio-only episode of Digging for Fire, where I discuss Brandon Sanderson's latest Cosmere novel Wind and Truth with special guest Lior Carbis. Spoilers!

The Good Kinds

Listen to this post

There are three kinds of ads.

Heat seeking missiles [BAD]

Data aggregators purchase your data, analyse your location, purchase history, browsing history, app usage, and more, then create a complex profile of you with AI assisted inference. They guess, (and nearly always accurately) your income, hobbies, education, age, gender, and most worryingly, your most likely future purchasing behaviours. Then they sell this data to advertising networks.

These shadow profiles are so incredibly accurate that they’ve given rise to the “my phone is listening to me” myth.

This hyper-focused advertising system comes at the cost of a significant erosion of personal privacy, and maybe even a decline in autonomy.

Thirsty, invasive, manipulative, relentless, these targeted ads are as effective as they are immoral.

As a consumer, you can eliminate 90% of the problem by installing ad blockers on your devices1, using a browser with tracking protections, and avoiding loyalty programs.

As a business, you can attract a privacy-aware customer base by avoiding targeted advertising. These customers will be more loyal, more likely to recommend, and typically have more expendable income.2 Plus, your business won’t be at risk from the fickle nature of search and advertising algorithms.

Shotguns [GOOD]

Display advertising has a much broader spread. It’s a “spray and pray” approach. You can choose the time and location of your ad, targeting the type of audience who is likely to be there. It’s contextual targeting.

A TV spot during a football game is likely to find sports fans. An ad-read3 on the Accident Tech Podcast is likely to be heard by Apple customers. If you’re lucky, you’ll find a direct line to your target audience. More likely you’ll find a crossover (sports fans like beer, Apple users like audio equipment), which can help introduce your product to new markets.

Shotgun ads respect the privacy of their target. Although they’re often digital, they don’t include tracking cookies or attempt any retargeting.

They’re cheaper per view than the invasive alternative, and just as effective when it comes to reach, discovery, and brand awareness. If your goal is immediate conversion, targeted advertising performs better. However, some studies show that this advantage is diminishing due to new privacy laws, anti-tracking technologies, ad fatigue, and an improved variety in the opportunities for contextual targeting.

Handshakes [GREAT]

Seth Godin writes about Permission Marketing.

Permission marketing is the privilege (not the right) of delivering anticipated, personal and relevant messages to people who actually want to get them.

This kind of ad respects your customer’s autonomy. It generates the stickiest customers. Your 1,000 true fans. This is relationship building as much as it is advertising.

If your product has an email newsletter (opt-in, of course), a social media account (that customers can choose to follow), a blog, or a 1:1 sales pitch call, these are all examples of handshake ads. You ask permission, and your target market trusts you with their attention.


  1. I recommend 1Blocker on Mac and iOS, where it also removes most in-app ads. Look into Vinegar for YouTube, or the Play app does a great job there too. ↩︎

  2. There’s research that shows a correlation between higher income and a greater awareness of privacy laws in the US. Oh, and it turns out that younger crowds are more privacy conscious, too! ↩︎

  3. Podcast advertising comes in two flavours: manual and dynamic ad insertion. The former is your bog-standard shotgun approach, but the latter uses the listeners IP address, which can be combined with other data known about that IP. It’s not quite as insipid as most targeted ads, but still falls in that territory. ↩︎

Zag

Listen to this post

Keep ‘em in suspense. Make all the promises you need to. Walk right on up to the door holding all the answers.

Then, zag.

There’s an art to timing a good zag. Too early and you lose impact. Too late and you lose trust. A good storyteller knows how to zig, but more importantly, knows precisely when to zag.

I was on a call the other night with my brother, discussing Severance (s02e03).1 The episode ends in a cliffhanger and my brother said he couldn’t wait to get the answer next week.

“No way,” I replied, “they’re gonna zag.”

And they did. The writing team pointedly ignored the threads they left dangling, and instead staged entirely new paradigms, motivations, and questions. We’ll zig again next week.

The greatest zag of all time has got to be from Stephen King’s The Stand. If you’ve read it (my favourite King book, by the way), you’ll remember the Walkin’ Dude just walking down the highway, and then zag.

LOST season 2 opens with an iconic zag. You might be able to hear Make Your Own Kind of Music while remembering the shocking introduction of Desmond, going about his morning routine.

It’s well known that the greatest film of all time is, indisputably, 2001: A Space Odyssey. The third act of this film zags hard, into the unforgettable Stargate Sequence, followed by the Bedroom at the End of the Universe. The degree of this oblique leaves viewers awestruck (maybe, sometimes, a little confused too), a zag so profound it carved itself a place in film history.

Good storytelling is formulaic, monomythic. Great storytelling breaks the rules, subverts expectations. If your writing is stuck on what happens next, try something completely unforeseen.


  1. Since the advent of streaming, there's been so much great tv. The unfortunate downside is that it has become rare to meet people who happen to be watching the same show as you, especially when entire seasons are released all at once. Conversations about television used to be about discussing past episodes and speculation on future ones. Now they're mostly recommendations on what to watch next (and hopefully you subscribe to that particular streaming network). To combat this, my brother and I scheduled a weekly FaceTime call to just chat about Severance! It's so much fun, we both look forward to it all week. ↩︎

Limitless Adscapes

Listen to this post

"I love that Facebook shows me the ads I want to see!"

Have you ever come across anti-privacy apologists?

"Privacy is dead. It's a thing of the past. You just can't expect a right to privacy in the modern world."

This is such a dark road to go down. The end-game is a black mirror episode where the ads we see are so innocuous, so inconspicuous that we don't even realise how they're manipulating us.

It's dynamic AI-generated product placement in the background of an Instagram reel, shown when your brain patterns indicate that you're most likely to be susceptible to influence.

It's subliminal cues, micro-targeted dopamine hits, and algorithmic content nudges, imprinting a desire before we ever know we want it.

It's Pavlov's dog at a global scale.

Building on our previous work toward decoding the perception of images and speech from brain activity, we’re sharing research that successfully decodes the production of sentences from non-invasive brain recordings, accurately decoding up to 80% of characters, and thus often reconstructing full sentences solely from brain signals.
Meta, Using AI to decode language from the brain and advance our understanding of human communication

Queue the apologists:

"That's years away", "it's a far cry from anything dangerous", "it's still way too expensive".

Meta is literally researching technology that can read your mind. Is it still years away from being practically applicable? Thank goodness, it is. But there's a trajectory, there's an incentive, and there's a pattern of abusive behaviour.

"If you’ve got nothing to hide, you’ve got nothing to fear."

At least this way, the ads are relevant.

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.