Chris Hannah
My little piece of the internet

Currently Listening

👋 Hi, I’m Chris. I build things.

👨🏻‍💻 I work as a Senior Software Engineer at WorldFirst where I work on all types of software, using Java, Python, JavaScript, and anything else I can get my hands on.

💻 Even when I'm not at work, I still spend most of my time writing code. I've got a bunch of open-source stuff on GitHub, and also a few apps: Text Case, and Text Shot.

📝 When I’m not writing code, I’m usually writing here on my blog. It tends to be focussed on technology, but is now becoming a bit more personal.

📸 I also sometimes think of myself as a photographer. I post some of that here, but I also post a lot more to Instagram.

📫 If you want to reach me, I’d suggest Mastodon, Twitter, or Email.

Recent Blog Posts

Last year I decided to upgrade to the big iPhone 15 Pro Max, after two years of the iPhone 13 Pro. And while there are definitely benefits of a larger phone, (and I've definitely enjoyed having it at times) there have been quite a few times where I've been frustrated that it's not really usable with a single hand.

Not sure what that means for my next phone though. Because at times, I thought the 13 Pro was too small for me.

Some Recent Bash Scripting Fun

I've been writing more and more bash scripts recently (GitHub repo). It started when I was playing around with a script called tmux-sessionizer from The Primeagen, that uses fzf to search for directories in a preset location, and then open the selected directory in a tmux session.

The first three I came up with were all mainly some sort of selector-style tools powered by fzf:

(they may seem like odd names, but I wanted to be able to use these scripts really quickly)

  • tg (right-top)- a customed version of tmux-sessionizer that lets you quickly fuzzy find a directory and then attach/reattach to a tmux session with it.
  • ala (left)- fuzzy finder for alacritty (my terminal choice) themes, which is then applied on selection.
  • fd (right-bottom) - fuzzy finder that searches the current directory for any subdirectories with a max depth of 3. And then changes into the selected directory.

I also made another one that replaces my existing alias for quickly committing and pushing my local changes with Git, and makes the flow a bit more interactive.

Previously I had an alias gacp, which basically meant (to me) "git add commit push", and did the following:

git add --all
git commit -m "$input"
git push

And I'd use it like this:

gacp "my wonderful code change"

But now with my (aptly) named tool, gt, I just need to type those two letters, and it then lets me quickly run through the process of pushing my latest changes.

First of all, it asks if I want to stage all my current changes (defaults to yes), then it asks what type of commit it is (using conventional commit style), asks for a commit message, and then if I want to push to my remote repo.

So a pretty simple process, but just a bit faster thanks to this little script.

As you can see, I'm clearly having a bit of fun writing these scripts, so don't be surprised when I start uploading even more.

Although my next script/tool will definitely have to be making blog posts easier to start writing. I have a half-baked bash script that creates a basic template, but I think I want to make one with a bit more power, that can be flexible for multiple types of posts. Let's see.

A CLI Tool to Post to Micro.Blog

I've been working on a small command line tool recently. It's essentially a simple way to write a short post on Micro.blog from the command line, called pst.

It's probably not the typical place people tend to do their microblogging. But I did it for a few reasons:

  1. I live in a terminal when I use a computer, so it's easy for me to quickly write a post, or share a link. I don't always have Micro.blog open.
  2. There's obviously less distractions when you can just post and carry on with whatever you were doing.
  3. It's a simple idea, so it would be perfect to use it as a learning oppurtunity.
  4. I don't get many ideas for small projects like this, so I have to run with them. Otherwise I'd never build anything.

So, now you know the reasons, I'll explain a bit more about pst, how to install it, configure your blog, and also how to use it.

First of all, you can install pst from crates.io or homebrew:

crates.io

cargo install pst

homebrew

brew tap chrishannah/pst
brew install pst

To configure pst, all you need to do is to generate an app token from Micro.blog (find that in your Account settings), and then store that in a JSON file under ~/.config/pst/config.json. The specific format is in the README.

Using pst is pretty simple, you have the pst command, followed by the type (post or draft), and then your content. Examples:

pst draft "don't show this to anyone"

pst post "hello, losers!"

After that, you'll see some handy links in the terminal for where you can view, preview, or edit the post on Micro.blog.

I forgot to also say that it's built with Rust! I'd been wanting to write something in Rust for a while, but it was never the right time, and I also didn't have the correct project. Luckily for me, it's a small project, so I decided to use it to learn some Rust.

Obviously I haven't used it for long (or for much), but I've really enjoyed using the language. And especially for these types of tools, I can see myself using Rust even more in the future. (Especially because I have my Neovim config working perfectly with Rust now.)

Apple vs the World

I can't say I'm completely up to date with Apple's various ongoing issues with various government entities, so I can't exactly offer any well thought out opinions. And I also want to say that I'm not exactly that interested in getting into the weeds of it all.

I'm sure in all cases, Apple are right in some areas, and wrong in others. However, what I'm more intruiged in, is the long-term effect that it will have on Apple as a company, and also on the products it builds.

The changes could be related to hardware, software, how Apple's devices interact with devices of other companies, the restrictions they apply to their stores, or it could even affect the company itself. Either way, I'm sure something will end up changing as a result of these various battles.

I'm no longer a die-hard Apple fan, so I'm not going to get overly caught up on any of the arguments for or against them. But there's a reason people talk about Apple's "walled garden". And rightly or wrongly, it seems that more and more people are starting to want to tear down the wall.

It's been just shy of 2 weeks since I started watching The Walking Dead[1], and I've just finished off the third season. Which puts me around 20% of the way through all 11 seasons (177 episodes).

I've definitely missed out having only just started the show recently, but at least I'm now able to binge it non-stop. I'm watching it at night, in my lunch break, on my commutes, I literally fill any free time with it right now.

One thing's for sure, the next time a show like this comes out, I'm not waiting over 13 years to give it a try.


  1. It's a bit funny that my last post was me getting excited about starting the fourth episode, and right now I'm about to start the fourth series. ↩︎

I've been following the progress of the upcoming version of System76's Pop!_OS ever since I heard about their idea to write their own desktop environment in Rust. It's going to be a pretty huge update by the looks of it, and it goes by Cosmic.

From what I've read on the blog, and also watched via the episode of Tech Over Tea with YouTuber (Host) Brodie Robertson and System76 founder Carl Richell, I'm 100% going to try it out when it's' available. And I really think there's a chance that if I like it, I could eventually persuade myself into buying a System76 computer in the future.

I just checked out The Iconfactory's Kickstarter for their Project Tapestry project, which in their words will be a "a universal, chronological timeline for iOS for any data that’s publicly available on the Internet".

It's a nice idea. And reminds me of BlackBerry Hub on my old BlackBerry, which used to combine things like Twitter and Facebook, along with your emails, BBM notifications, etc.

As for myself, I don't plan on backing the project. The only "feeds" that I currently use are Mastodon (via Ivory), RSS feeds for various blogs, and Twitter/X for football updates. And none of those really need to be combined together.

That's not to say it's not for you, so if you're interested, check out the Kickstarter.

Seeing as I've just recently switched to Firefox, I think it only makes sense that I try out Pocket at the same time. It's already built into Firefox, and when I've used Pocket in the past I've been impressed by it's suggestions. However, I haven't tried it in a long time, so it will be interesting to see how it compares to something like Readwise.

Rethinking Phone Battery Life

When I've pictured my "ideal" phone in the past, I've regularly had long battery life as one of the key features. But I've thought about battery life as something that hasn't improved. Because most people have probably been charging their phone every night for quite some time.

However, you could probably argue that battery life has always been increasing. The problem is, so have our demands.

Sure, more powerful chips require more energy to run. So an iPhone 15 will naturally require more resources than an iPhone 5. At the same time, we also weren't expecting an iPhone 15 to record 4K HDR video without affecting the battery life.

It's probably not a big revelation to many. But it's a perspective that might be worth considering when judging the evolution of technology.

The Rabbit R1

I finally watched the Rabbit R1 announcement video earlier, and while I think it's a really raw product and has a lot to prove, I was definitely wowed by it. Maybe it's the hardware design (which was done in partnership with Teenage Engineering), or the idea that this will actually be able to do things for you, rather than just be another conversational AI. Either way, shortly after watching the video, I decided to pre-order an R1.

The relatively low entry price for the R1 at $199/£160 definitely helped. But I also wanted to put my money where my mouth was. Since products like the Rabbit R1 and others like the Human Ai Pin are examples of the direction that I want technology to move towards.

In my ideal world, technology would be used to help us understand, explore, and experience the world around us. Rather than keep us locked away in digital worlds, cut off from people around us. No matter how "connected" it can make us feel when we've got a screen constantly in front of our face.

I'm hopeful that we're moving in the right direction.