About Chris Hannah

I write code, blog, take photos, talk nonsense, drink Guinness, and try to skateboard without injuring myself.

The RSS's url is : https://chrishannah.me/feed

Please copy to your reader or subscribe it with :

Preview of RSS feed of Chris Hannah

2024-11-21 01:28:16

If using a ThinkPad on holiday has taught me one thing, it's that my next "main" laptop will have some form of a matte display. Whether it's some form of Linux laptop, or a MacBook with the new coating, being able to use a laptop with zero issues in the sun feels like a revelation after all the years using a Mac with a glossy screen.

2024-11-19 01:03:47

Every single I see this advert, I'm amazed at how brilliant just a single bit of conversation is. It's probably my favourite bit of marketing ever.

Person 1: *spots Head and Shoulders*

Person 1: "I didn't know you had dandruff?"

Person 2: "I don't."

Is it weird that I find that absolutely brilliant? If you have dandruff (luckily I don't), then what better way could you have a product marketed to you?

2024-11-18 08:12:22

★ Favourite: To question is to consider, not refute | Derek Sivers

Posting from Quill

2024-11-17 21:17:55

This post is confirmation that I have somehow managed to set up blog posting via the Quill web interface

It also means that I have enabled IndieAuth correctly, and have built a Vercel function to power a micropub endpoint that creates and stores posts in the GitHub repo as Markdown files. Very interesting stuff.

Isn't the Indie Web great?

Sticking With Eleventy for Now

2024-11-17 06:08:24

I wrote recently about how I don't have much time (or effort) to do spend much time on things like blogging. And that because this blog is a custom Eleventy site, which uses Markdown files, with specific frontmatter, kept track in GitHub, and then hosted via Vercel, it's becoming a bit of a faff when I want to quickly write and publish something to my blog.

I've spent 2 days looking into the possible futures of my blog, which essentially boiled down to WordPress or Ghost as the primary options. And to be completely honest, I wasn't happy enough with any of my attempts that I'd be willing to spend time in the short term to migrate to another platform.

With both platforms, I tried using various import tools, even using Perplexity to build various scripts that would take my Eleventy blog content and produce the correctly formatted files for each platform.

The one for WordPress was the most accurate, but the photos weren't working properly, so I'd have to go through all of the posts manually anyway. Which is one thing I really wanted to avoid.

Earlier today, I did even quickly sign up for a Business plan on WordPress.com, because it mentions it includes a free migration. Unfortunately, an Eleventy blog isn't the easiest to migrate, so they told me either to do it myself, or to pay $499 and their team would work with me to build "5+ pages". It's what I expected, but still unfortunate.

That leaves me with the realisation that any switch away from Eleventy will be quite a major undertaking. As in, it will require more than a few days effort on my part. 😅

So I'm going to try a bit harder to make my Eleventy blog work for me. Maybe there's an automation for publishing that makes it easier to write posts on my phone, and I'm sure there's a lot more I can be doing with Obsidian templates.

The bonus is that I'm now off work for nearly two weeks. So I've got a bit more time than usual to try and figure something out. Although, I still have a four month old child, so it's not a lot.

No Time

2024-11-15 03:51:55

I became a father just over four months ago. While that is one of the best things that's ever happened to me, it means I have less free time to spend on the less important things.

That includes keeping up with my RSS subscriptions, being active on social media (Mastodon), and sharing photos and updates on my blog.

I don't want to be negative though. It's just a fact that I have less time to spend on these things and that I also want to spend less time on them. I have much more important things people I want to spend time on. But it does mean I post less to my blog, which is something I want to change.

I'm not sure if it will happen or how long any real improvement will take, but I think one first step has to be migrating this blog from Eleventy to something like Ghost.

The geek in me doesn't like the sound of that realisation. But with Eleventy, although I have total control of my site, how pages are built, the logic behind each template, and can also make changes to every minute detail, I don't find it that easy to just write a post.

Typically I use Neovim to write posts, which many people may point to as the main reason behind this friction. But it's also that my posts are plaintext Markdownfiles, with very particular frontmatter for the metadata, which is then committed to a Git repository, and deployed to Vercel.

That's cool, and somehow Vercel even hosts this blog for me for free. But it means it's a bit of a workflow to get even a simple blog posts published.

I'm sure there are various weird and wonderful workflows to publish to an Eleventy blog. But I don't have the time or patience to set them up. Which means when I have a quick idea for a post, or I just want to share a photo from my phone, it seems like too much effort and I just don't post anything.

I don't know if or when I will move my blog to something like Ghost or WordPress, but I'm starting to think that it's a likely future. Mainly because surely, whatever blog platform I move to, will require at least some level of migration work. And as the title indicates, I don't really have much time!

So you can take this post as an indication of where this blog may go soon, possibly a hint of positivity that I may end up writing more often in the near future. Or you could just take this as a sign that I'm still alive, and that there's at least a desire to keep a blog.

I guess I'll be back soon?

Early Praise Kills Projects

2024-10-15 03:19:01

Many people say things like "Don't announce anything until it's done", and there are many other people who work in public, as in they regularly announce shorter updates on their progress towards a certain outcome.

What I've found, is that for many of my projects, getting praise early on in a project kills them.

I can name countless examples, some potentially big projects like an RPG game I had started working on, some potential essays that I had thought of, and some others that are a lot smaller, but yet still end up in the same place. Nowhere.


When you're sharing news of an idea you've just had, or telling the world how much closer you are towards your goal, itcan feel pretty good to receive encouragement and praise. Maybe someone tells you your idea is great, or that after waking up at 4 am twice a row, you're clearly on the way to becoming the most productive person ever. Either way, in that moment, it can feel like you've already made it.

And that is the key part of the problem.

If you've already had the same experience of achieving something, what's the point in continuing the journey? If after the first mile of a marathon, everyone celebrates you like you've won the race, do you need to finish it?

Well, maybe it gives you some motivation at first. Maybe you run the second mile and third mile. But by that point, people have already seen you do the same thing three times. So it's not going to be rewarded with the same level of attention that you would have expected.

It's likely you're not running a marathon, instead, you're probably working on a blog post, creating a video, developing an app, etc. But they each have their own milestones, and when praise is given too early in the journey, it can lead to you either wanting more and more praise for regular progress, or it can lead you to lose motivation to actually reach the finish line.

It's not just praise either. Criticism too early on can have a similar effect. Someone without the same motivation as you can provide uninformed criticism about what you're doing, and if you're still in the early stages, you might just think"Well, they may know better than me, I'll just quit before I go too deep".

Most people would probably agree that you should take all praise and criticism with a pinch of salt, but when it comes down to it, it's not as easy as it sounds. So why not just postpone any requests for feedback until it's really necessary, or at least beneficial?


When dealing with early praise, it's not just the current task that's affected. I know through my own experiences, that it leads you to want to shorten the feedback loop as much as possible. Just so you can get that boost of dopamine a bit quicker than last time.

It's like an itch. You start thinking about an idea, writing something down, starting a project, and you just want to announce it to everyone straight away.

I get it a lot. When I'm writing a blog post, I start to think "Do I need to really read this through again? It's only a quick post, nothing more". Or if an idea pops into my head that I think could be developed into a short essay, maybe I'll just post something short and pithy on social media. That way I can get a few likes and maybe people will reply saying it's a good idea.

The short-term effect of early praise is that it can kill your motivation and desire to continue working on a project. The long-term effect is that you design your projects and goals around this desire.

Being told how great you are (or how great your work is) isn’t always helpful. It steers us away from the real work that actually deserves good feedback. A pat on the back after you've finished something worthwhile feels a lot better than getting a few cheap likes on social media.

In a lot of ways, it boils down to just plain attention-seeking. We want to feel like our thoughts and opinions are being heard, and that what we're working on is worth it. But the downside to that is that it makes us lazy.

Being snarky and pithy on social media is lazy. Being contrarian just to prompt an emotive response is lazy. And I have the feeling that the desire for "minimalism" in every aspect of life can also sometimes be the rush for applause, which is just laziness with a mask on.


I don't claim to be the wisest person on the planet, or the one with all or a few answers. I just want to plant a seed in people's heads that makes them think just one time more before making an announcement.

Not all social media posts need to be essays, not all morning runs need to be a marathon, and you don't need to turn every project into your life's work. However, don't sell yourself short, reach the finish line. Enjoy the journey, and when it comes to receiving praise, I'm sure you and your work would have earned it.

The White iPhone 16

2024-10-08 03:00:35

I just wanted to write a quick appreciation post for the white iPhone 16. It's a great size, it's super light, it feels great to hold, and it just looks god damn beautiful.

I had imagined there would be at least somewhat of a regret about going from a 15 Pro Max to "just" an iPhone 16. However, I can confirm that this is not the case. I do not regret this decision at all.

As an aside, I have this in the yellow (Star Fruit) silicone case most of the time, and it still looks great. But I do have to pop it out every now and then, because it is such a good looking phone.

Off to China

2024-10-03 07:00:55

In just a few weeks time, I'll be heading off on on a work trip to China. It will be the first time I've ever been to Asia, and also the first time I've left my partner and my 3-month old child since she was born (apart from going to work), and I'll be away for around 10 days. It's going to be a very new experience for me on many fronts.

One benefit of it being a work trip, is that it's 100% company funded, and I get to travel around multiple locations in China. Two of them being Hangzhou and Shanghai, where my work has big offices, so I get to meet up with some colleagues that I haven't met in person, even after working together for many years. And the other being Guilin, where we are spending the weekend. We will be going to visit some incredible pillar-shaped mountains, which is where I've read, James Cameron filmed some of Avatar.

I'm going to try and focus on seeing colleagues, travelling to new places, and having new experiences. But I think the only thing stopping me from being attached to FaceTime for the trip will be my data allowance. (That's one thing I haven't sorted out yet.)

The only tricky part of the planning so far has been the Visa application, since I require a visa suitable for business trips. Turns out, as a British citizen/passport holder, and a first-time applier, I'm likely to only get a 2 year multi-entry visa. But that's fine. I'm hoping it also means I can try and get another (probably smaller) trip again in the future.

There's so many things I'm thinking about, because it's such a unique trip for me, and one I definitely want to make the most out of.

For example:

I Finally Have a Use for the Action Button

2024-09-27 06:24:58

Last year I purchased an iPhone 15 Max, and for the first time, I was presented with a new customisable button on the side of my phone. For an entire year I struggled to find a purpose for it.

Do I keep it as a mute switch? I didn't really ever use the previous mute switch. Do I make it launch a fancy Shortcut? Maybe that could have been clever, but I've stopped using Shortcuts. Or how about I make it a launcher for something like the camera app? Well that sounded good, but it doesn't work on press, you need to hold it down, so it always felt slower than swiping left on the lock screen.

Well, I've now got an iPhone 16[1], and because of the new "Camera Control" button on the side of the device, I now have a way to launch (and control) the camera pretty quickly. So that removed one option in my head.

And then it came into my head, it should be to toggle the torch. I have a baby now, so I don't always want to turn the main lights on, so sometimes easier to just switch the torch on quickly.

Maybe that's a sign that sometimes too much customisability isn't always the easiest to deal with. Or maybe it's just me. Either way, it literally took me a year to find a use for the Action Button.


  1. Not Plus, not Pro, not Max, just 16. ↩︎

The Making of Theme Hospital

2024-09-18 18:00:00

I watched a short documentary about the game Theme Hospital last night, and to be honest, it was pretty fascinating. I don't want to spoil it, but it's fair to say it was much more popular than expected. I remember playing this for hours on end when I was younger.

Maybe I’m Not a Pro Anymore

2024-09-10 19:00:00

Brendon Bigly, writing for MacStories:

Apple just wrapped up their September event revealing a bunch of updates to the Apple Watch, AirPods, and iPhone lineups, and I have only one major takeaway as a person who was absolutely, positively going to get the iPhone 16 Pro if it came in gold: I am seriously considering downgrading to the non-Pro iPhone 16 this time around.

A rather interesting take on what Pro means for the iPhone 16. I'm also having similar thoughts about whether I actually need the Pro model or not. My current device is the 15 Pro Max, and while I have my head set on moving back to the normal-sized iPhone, I am torn between 16 or 16 Pro.

I can live without the camera differences. But I don't know if I can live without ProMotion. Primarily because I didn't instantly notice the difference when I first got a device that supported it, so will I notice it when it's gone?

I’m Probably Going To Buy an iPhone 16

2024-09-04 20:18:00

I've been pondering a switch to Android for a while now, and I've been especially tempted by various Nothing phone models. However, I have come to the realisation that I will likely be again purchasing the next iPhone.

There's many small reasons, but I think for this year I just want stability. I'm a recent father, and I don't have time to faff around with my devices as much anymore. It's also partly down to my partner also having an iPhone, so everything is just a bit easier if we're on the same ecosystem.

I haven't been keeping up to date with rumours, so I don't know exactly what model I'll be choosing. But I'm 90% sure I'll be going back to the "normal" size. There's a chance that I'll go to the base 16 model, as there could be a nice colour that tempts me. But I'm sure there will be some kind of camera appeal that keeps me on the Pro lineup.

Maybe I'll switch to Android in the future. But for now, I don't want to think about technology. For at least another year, I want it to just work.

2024-08-17 06:00:00

The view from Heybridge Basin, Essex, England. August, 2024.
Full image

My Digital Life After Having a Baby

2024-08-11 16:00:00

If you didn't already know, little over a month ago I became a father for the first time.

It's incredible. And it's forever changed my life in more ways than I could ever have imagined. Especially regarding technology.

I was starting to think that I wasn't actually interested in any of it anymore. Because I started to just not have the urge to do anything, no reading blogs, no writing anything, no programming, nothing.

It was weird, since I don't feel that having a child has added that much stress to my life, and it's not like I'm so busy i have absolutely no free time anymore.

After some thinking, I realised that it's not that I'm not interesting it doing any of those things. I want to write on my blog, I want to keep up with other blogs, and I definitely want to keep programming in my spare time. Among a whole bunch of things I used to do day-to-day on my devices.

The problem is that I now need to optimise the technology I use, and the choices that I make, around a new reality. I don't have no time to do anything, I just have a little less time than before, which makes some tasks more cumbersome.

It adds a new level of friction that I wasn't used to before.

The biggest example is my phone. I currently use an iPhone 15 Pro Max. It's a great phone for watching videos, playing games, and for scrolling through social media. But if you've got a baby in one arm, it's near impossible to anything else one-handed.

The same also applies to my iPad to a lesser extent. I have the 12.9" iPad, so that's also not a one-hand device.

And as for my "real" computers, in my MacBook and gaming PC, these don't just require two hands. They require time. I'm not spending 60 seconds on my Mac writing a post for social media, I'm working on a project, going through my emails, writing a blog post, playing World of Warcraft, etc.

What I'm thinking now, is that instead of just letting my hobbies and digital life fade away, I should just adapt to my new situation.

The two device changes I think I will make in the close future will be to buy a smaller phone that I can use one-handed and do all the usual phone-stuff with. And also to buy a smaller iPad. I don't know if that means iPad Mini or the "normal" iPad. But if I'm already feeling friction with the big iPad, the desire for an "in-between" device will certainly grow. Especially as there will no doubt be things that I enjoy doing on a big phone that I won't be able to do anymore.

As for more decision changes, I'm sure a lot of it will be down to adapting my habits, but I think I also need to be more purposeful of the time I spend on my computers.

In a weird way, I think it will fun optimising my for new life.

Using Stow to Make Managing Your Dotfiles Easier

2024-07-18 03:00:00

As someone who regularly switches between various macOS and Linux machines, keeping my dotfiles synced everywhere gets a bit annoying. Fortunately, I've recently come across a tool called Stow from GNU, which helps you manage your dotfiles.

Stow, combined with a git repository, makes managing and syncing dotfiles between devices much, much easier.

To install Stow, you'll likely find it in your package manager under "stow". For example, for macOS running Homebrew, you'd literally just need to run brew install stow.


As for using Stow, it's probably useful to first know how it works. That way you'll have a better picture of how it ties everything together.

Let's take this scenario - you have your Neovim configuration saved under ~/.config/nvim like normal.

If you want to synchronise this between devices, then maybe you could just turn that directory into a git repository itself.

But if you have a bunch of configs for tools, some in .config, others inside your home directory, and some just plain config files mixed in there, it can get a bit messy.

That's where Stow comes in. You can have a central place where you store all your configurations for various tools. And then you can then choose to "stow" (load into the relevant directory) the configuration for whichever tool you want.

This means you can have one git repository, with a collection of individually defined packages, which then can be synchronised to various devices. And then on each of these devices, you can choose a subset of these packages to use.

Let's go back to a real world scenario again. Let's say this is your home directory:

.
├── .config/
│   ├── nvim/
│   │   ├── init.lua
│   │   └── lua/
│   │       └── stuff.lua
│   └── tmux/
│       └── tmux.conf
└── .zshrc

You can see there are three different things being configured, Neovim, tmux, and zsh. With Stow, you could have these as three differently defined packages.

Each package in stow, is defined by it being a directory with its name being the package name. Inside the directory would be the folder structure as if it were in the home directory.

This would mean, the above configuration inside a central dotfiles directory, would look like this:

.
├── nvim/
│   └── .config/
│       └── nvim/
│           ├── init.lua
│           └── lua/
│               └── stuff.lua
├── tmux/
│   └── .config/
│       └── tmux/
│           └── tmux.conf
└── zsh/
    └── .zshrc

With that dotfile directory, to configure all of these packages in the local machine, you would just need to run this command in the directory:

stow nvim tmux zsh

That command would then load all of the packages, by creating a symbolic link from all the relevant files and folders into the correct place.

To get an example, here is a screenshot showing my .config directory with all the symbolic links, and my .dotfile directory.

Just as a tip, the default behaviour of the stow [package] command, is that it works when you are in a directory that is one level below your home directory.

You can read the full capabilities of the stow command via the man page, or via the documentation. However, if you want a simpler life, you can just do what I do, and create a directory for your dotfiles like this: ~/.dotfiles/.


Once you start building up your collection of config packages, and tracking the directory via git, it becomes really easy to move between machines.

All you would need to do is to pull the git repository, and then use stow to load whichever packages you wanted to load on that particular machine.

You could even have slightly different versions of a given configuration, and then load a specific version based on the machine you were on. Maybe you have something that fits your use case at work or home, or even a different platform such as Mac or Linux.

Once you start using it, it doesn't take long until you start to feel the benefits.

2024-07-11 07:00:00

The view of Flamingo Beach from inside a local shop. May, 2024. Full image

2024-07-11 02:38:19

Definitely looking forwarding to watching Gladiator II after watching the trailer. Although I must admit I didn't expect to hear a song like "No Church in the Wild" by Jay-Z and Kanye West. That threw me a bit.

A Father

2024-07-10 06:00:00

6 days ago, on the 4th of July, the best thing happened to me.

I became a father.

hello

Protocols, platforms and priorities

2024-05-29 18:45:35

It appears that the polarisation of social media is leaking into Micro.blog.

This tonal shift highlights what remains an issue with Mastodon. Unlike Micro.blog, it largely replicates the interface paradigms of Twitter, software fine-tuned for polarisation and outrage.