Journal: 8 Jan 2019

Today started like any other work day, and I didn’t think I’d have anything interesting to write up. But it turned out to be quite productive!

In my lunch break I added HTTPS to my main domain (chrishannah.me), simply because I found it so easy to add it to this blog.

I then spent loads of time wondering about my next project, until I posted a single tweet, that seemed to have started a huge chain-reaction inside my head.

Maybe the big project I’m looking for is actually Text Case 2.0. 🤔 – @chrishannah

I then had a burst of ideas about where I could take it. About the overall design of the app, how I structure the formats, and how the efficient the user interaction is. All this while concurrently going over the current code structure in my head.

So when I got home from work I immediately starting working on a fresh project. I’ve so far got the main list of formats rendering, in some kind of logical sections. I can see the direction I want it to head in, and I think it’s represented in this first draft, but obviously the design is super early on.

So take this preview with a big pinch of salt:

Let’s see where I can take this tomorrow!

Journal: 7 Jan 2019

It’s Monday, so I’m back at work! Although I didn’t do anything worthwhile talking about here, as it was mainly admin tasks for our annual performance reviews.

However, I did get round to completing a task that I’ve been wanting to do for a while. And that was to create a new guide about connecting an Xcode project to a GitHub repository. The one I wrote nearly a year ago has become rather outdated, as the source control features in Xcode has improved significantly. I’ve made some modifications to the guide before, but it really needed a whole refresh. So I’ve done it, and you can read my “Using GitHub and Xcode Together” guide now!

I also linked to two other posts on my blog today, the first being a review by Michael Rockwell of the MacBook Air, and the second being a very interesting take on why bamboo wood isn’t a bigger industry.

To end the day I caught up on my YouTube subscriptions, nearly everything in my RSS reader, and just a little bit of World of Warcraft. Now I just need to find one more thing to watch before I go to bed, while I still ponder what my next project will be.

Why Isn't Bamboo Wood a Bigger Worldwide Industry?

Well, that’s the shortened version of the question that asked on Quora:

“Why isn’t bamboo wood a bigger worldwide industry, since it grows so quickly and is so strong? couldn’t it replace lumber and save many trees?”

It’s a question that I’ve often thought myself. You hear regularly about how bamboo is such a superior resource for many things, but I’ve never seen an objective reason why it’s not as widely used.

But in his answer, Raphaël du Sablon came to our aid with some very interesting reasons:

Okay, here is the long answer. Bamboo is the collective name for several dozen genera of grasses, all in the Bambusoideae branch of the “BOP” clade.[1] While most bamboo species are either shrubby or relatively short plants, a couple genera include particularly large species, typically called “timber bamboo” or “giant bamboo.” These are the bamboo of relevance.

Being in the grass family, bamboo is not a tree. Thus, material cut from bamboo stalks is not technically “wood.” Because of its roughly similar properties, however, and for marketing reasons, it often is referred to as a wood.

With that pedantry out of the way, let’s consider the uses of wood, and how bamboo compares. The big ones are fuel, lumber, and paper.

Using GitHub and Xcode Together

It’s been just under a year since I published my article on how to connect an Xcode project to a GitHub repository. Since then, Xcode has kept being updated with new Source Control features, and the guide started to break. So I’ve decided to start fresh and show how you can quickly and easily use GitHub to track your Xcode project.

The Xcode used for this guide was version 10.1.

We will first go through initialising a Git repository, finding the Source Control features in Xcode, and then either link it to an existing GitHub remote, or create one directly inside Xcode.

Initialising a Git Repository

You will need to make sure your project is inside a Git repository. The easiest way is to check the “Create Git repository on my Mac” checkbox when first creating the project, but you can also use the git init command1 to create one inside the root folder.


Once your project is being tracked by Git, you will see your project in the Source Control pane on the left of Xcode. It’s the second icon from the left, and you can quickly access it using CMD + 2.

This shows any local branches, tags, and also any remote repositories you have set up, along with remote branches. So you’ll be able to use this pane, along with the Source Control option in the menu bar to manage your repository once it is set up.

Setting Up a Remote

From this stage you have two options, you can link this repository to an already existing remote you have set up, or you can use Xcode’s new tools to create a new one. Either option can be found by right-clicking on the Remotes folder.

I’ll go through both methods.

Using an Existing Remote

For this example, I created a blank repository on GitHub. Once a blank repository is created, they show you a few ways to initialise the repository. However the only thing you’ll need is the URL address inside the Quick setup section. For me, it’s https://github.com/chrishannah/Test-Existing-Remote.git .

So if you go back to Xcode, right click on Remotes, and select Add Existing Remote, a new window will appear from the top prompting for the location. You just need to paste in the URL you got from GitHub, and select Add.

Once you’ve done that, you should see the new remote appear in the Source Control pane, and you’ll be able to commit, push, pull, etc. from the menu bar in Xcode, along with the usual places.

Create New Remote

If you haven’t got a remote repository set up yet, this is the easiest way to do so, and you don’t even have to leave Xcode.

Like before, go back to the Source Control pane, right-click on Remotes, and select Create “Project Name” Remote. You’ll then be presented with a window where you can customise the new repository you will be creating.

First of all, you’ll need to connect your GitHub account if you haven’t already. To do this just click on the Account drop down menu, tap Add, and then enter your GitHub credentials.

You can then enter a repository name, which will also dictate the URL, an optional description, the visibility of the project, and name you will call the remote in Xcode. The default options are usually fine, although you may want to make the repository private. The last field, remote name, can be left as the default “origin. This is just a label you can give to the remote repository, and if you used multiple, it would be helpful to distinguish each of them. Origin is just the conventional name that most developers use.

Xcode will then create the repost on GitHub, and push your code. You should then see the new remote appear in the Source Control pane, and you’ll be able to commit, push, pull, etc. from the menu bar in Xcode.

You’ll also find your code on the remote repository on GitHub.


I hope you found this guide helpful. If not, then please let me know either in the comments below, or on Twitter where I’m @chrishannah.

MacBook Air

Michael Rockwell of Initial Charge:

As some of you may know, I recently started a new job. I’m now a Happiness Engineer at Automattic, helping WordPress.com users build their online business, share their ideas with the world, or do just about anything you could think of with a website. This new change in my life is at least partly to blame for the lack of publishing here on Initial Charge, but now that the holidays are behind us, I should have a bit more time for writing.

I’ve added quite a bit of new tech to my setup over the past few months and have plenty of thoughts and ideas to share about what’s happened in the world of Apple recently. But today, I thought I’d spend a bit of time discussing the new MacBook Air.

I found this to be a really insightful review. By no means am I thinking about getting a MacBook Air in the future. But I’ll forever be interested in how people use their devices for their work.

Journal: 6 Jan 2019

Another relaxing day to mark the end of the weekend.

It started with me and my partner going to the local cafe for breakfast. Of course I had a full English, topped with brown sauce.

Between that and a obligatory Sunday roast, it was time to play some video games! My choice as usual was World of Warcraft.

The day ended with us watching last years Christmas special episode of the BBC series, Call The Midwife.

Anyway, back to work tomorrow morning. I’ll hopefully be reporting back with a bit more of an interesting day.

Journal: 5 Jan 2019

First Saturday of the year, and it was a relaxing one! It was filled with watching various programmes on the history channel. The kind of ones that most people would class as boring.

There was some football to watch as well, with Arsenal playing their first FA Cup game of the season against Blackpool. There’s an obvious difference in stature and quality of the two clubs, so the Arsenal team were mainly young and fringe players. They ended up winning 3-0 though, so you can’t really complain. We go through to the next round of the competition, and a lot of young players got some more experience under their belt.

Apart from television consumption, I’ve started to think about my next app project. As I mentioned in my 2018 – Year in Review post, I want to work on one big project this year. However the idea hasn’t quite hit me yet, and I don’t have any issue that I need to solve either. I was looking on the App Store and places like Product Hunt for inspiration, but as of today, none was found.

Journal: 4 Jan 2019

As I mentioned in yesterdays journal entry, today is the day for Text Case 1.4! It’s now been released, so you can view the blog post, and check it out on the App Store. Of course I did a little emojified tweet1 for the update. I always find they get the most attention.

Apart from trying to spread the word about the update, I’ve been at work for most of the day. After which I went out for dinner with my family. Nothing special, just a pub/restaurant chain.

Since I got back, I’ve played two games of FIFA 19 Seasons, played some guitar, and then got stuck inside YouTube for about an hour. I even ended up watching a 10 minute video of Japanese chefs slicing things, which was actually pretty mesmerising after a while.


  1. I’m pretty sure emojified isn’t a word, but it sounds like it should be. 

Text Case 1.4

It’s time for an update to Text Case! It contains four changes, and three of them were taken from user feedback! Which I really like, as it means I can tailor the app to how the app is actually being used, not an idea in my head.

So, here are the improvements:

  • A new format! Strip HTML will clear any HTML tags and any whitespace either side of the result.
  • You can now alter the order of the way formats appear in the app.
  • Pasting text via the keyboard shortcut (CMD + V) will now work even if the textfield is not selected, meaning you can get the formats much faster.
  • Any settings in the app are now synced between your devices.

Check out Text Case on the App Store.

Journal: 3 Jan 2019

This morning started with a quest to find an alternative app for reading my RSS feeds on my Mac, so of course I wrote about it.

I decided to finally investigate making my blog support HTTPS, which in the end took about 5 minutes to complete. I used LetsEncrypt, and their command-line tool automated the whole thing. I honestly thought it was a big job. I also made the choice to redirect all HTTP traffic to HTTPS. All it took was one extra 'Y' in the process.

When I got home from work I was greeted by a late birthday present from my girlfriend. A new skateboard! It’s by a local company to me, Lovenskate. It features one of their slogans “Real men skate curbs” but made just a bit funnier.

There were two other things that were accomplished tonight as well. The first being an AirBnB being booked for the trip to Oslo in March, and the second being the Text Case update being approved by Apple. I’m planning on releasing the update tomorrow, and the blog post will be published at the same time.