Chris Hannah Chris Hannah

Chris Hannah

iOS Icon Sizes

There’s a lot of occasions where I’m checking the specific iOS icon sizes, and I remember I made a document a few years ago with some references. However, there’s been a huge amount of changes since then. So I decided to create a new reference document from the Xcode 9.0 beta.

It’s hosted as a Gist on Github, or you can view it below:

I’m going to make an effort to keep this updated, and I’ll probably create one for the other platforms as well. Anyway, I hope people find this useful!

Skateboarding Is Much More Than a Sport

(This video is from last year, but everything in it is as true as it always has been).

Manuel ‘Manny’ Lopez and Daryl Dominguez aren’t just good mates, they’re two of the gnarliest skaters coming up in London. Always looking for a new challenge, we captured their night-long skate through the heart of The City.

In the first episode of our Own the Night series, created with Samsung, VICE Sports joins Manny and Daryl as they talk flow, creativity and skating – in a deserted, nocturnal London.

I spent a lot of my time growing up, skateboarding in London. And I can say I agree with everything said in this video. Skateboarding is more than a sport, or a basic hobby, it enables you to think differently about nearly everything in the world, and it’s such a creative thing to do.

I’ve noticed a lot of similar traits in skateboarders, whether it’s the determination to get that trick, get back up after you’ve injured yourself, or to just think about stupidly innovative ideas, and turn boring city structures into super interesting and complex playgrounds. There’s also the added benefit of a broader perspective on things, as skateboarding usually takes you all around the world (including some locations that may or not be locked, closed off to public, or just in the middle of nowehere), and therefore you get to meet so many people from all sorts of backgrounds.

Plus, London at night is pretty cool all by itself.

Issue #4

It’s the fourth issue of the new format, and it’s time to introduce another small section that will be happening every now and then (Ideally every 4 weeks), Podcasts! I listen to loads of Podcasts every day, and I thought it would be a good idea to share a few of my absolute favourites.

There’s nothing new on the blog this week, so I can’t link to anything there, but I have a variety of interesting links and videos for you.

A subway-style map of the Roman roads of Britain
This is pretty interesting, as most of the places still have similar names!

Random Shopper — Randomized Consumerism
A project that started way back in 2012 by Darius Kazemi, that purchases random items every month from Amazon! It’s giving me some ideas.

Developing for iPhone Pro – Allen Pike
Very interesting ideas about the new layout that is surely going to take some shape in the rumoured iPhone pro.

747-8 Captain shared pics with Singapore… – Jamaica Aviation Spotters
Pilots used AirDrop between planes! In the sky!

Videos

The Right Way to Pop Your AirPods Out of the Case

Beme News Update #3: This Is Not A Film Review
An interesting video on the background of the Dunkirk film, and what things were like around that time.

Podcasts (All links for Overcast)

What I’m Up To

I would say this week has been a partially productive week, in that I finally started my mini web analytics project. I won’t write up too much technical details here, that will be written up in full and posted to my blog within the next few days I hope.

But essentially, I wanted a super minimal way to track how many views my blog was getting, and whether another url referred it.

The only data that’s stored is the title and url of the webpage that was loaded, so just a url to a blog post of mine, and also the referrer url that is stored in the DOM. I’ve already noticed that this is usually blank, and therefore is only partially useful, and then of course the date and time it was loaded.

It’s live now, so all visitors on my blog will be logged (I wouldn’t call it tracking), and while I have a way to look at the raw data, the next step will be to create some kind of dashboard for myself.

However, the few bits of data that I mentioned, will be the only ones that are ever collected. So I’m not looking to invade anyone’s privacy. Plus, the data isn’t being anonymised when I store it, because there’s literally no personal data even being sent to the server.

Looking back at the past few paragraphs, I probably did explain it in more depth than I was going to, but oh well.

Issue #3

Another week, and one full of content again!

Jeff Bezos Briefly Tops Bill Gates as the World’s Richest Person – Bloomberg 
💰💰💰

Apple confirms iPod nano and iPod shuffle have been discontinued – The Verge
Will anyone except tech journalists notice this?

I haven’t heard anyone speak the name iPod in a long time.

MacPaw acquires The Unarchiver and commits to… | MacPaw Blog
The Unarchiver app for macOS is probably the most popular one of its kind (that isn’t a System app), and MacPaw are a great bunch of people! So this can only be a good thing (Unless I’m missing something?).

Videos

iPhone 7 — The Rock x Siri Dominate the Day — Apple
I like it!

Make time: Why we spend our most productive time on the wrong things (Google Cloud Next ’17)
Super interesting video here, packed with some great tips and lots of data!

(Don’t tell anyone, but Android from these kind of perspective looks really intriguing)

Tesla Project Loveday Contest Entry!
I’m not sure what this Loveday thing is (I’m honestly not that interested), but this video from Marques (MKBHD) is really good!

The bizarre physics of fire ants
Weird

On the Blog

What I’m Up To

Over the past week, I have done a few interesting things, mainly working on my app Hydrate, and a few other meta tasks.

I can’t remember exactly what was finished this week, but the main thing was the history view. So you can now see your water intake for the past 21 days! I was meaning to do this right from the start, but I really couldn’t be bothered! However over last weekend, I was away in Norfolk with rather bad internet, so I forced myself to get on with it then.

As for what else I was getting up to, Ghost (the blog platform this runs on) was updated to v1.0! Which meant (what I thought would be huge) migration task, as it used MySQL instead of SQLite, and also a few syntax changes for themes. The whole process actually only took me about an hour, so that was done in one lunch time at work.

It did get a bit bad though, as I got a bit trigger happy with linux commands, and ended up completely destroying the permissions. So everything slowly stopped working. In the end I realised I had everything backed up perfectly, so I created a new droplet on Digital Ocean and put it all back to normal! Lessons were learned!

Issue #2

The second week of the new format, and I’m really liking it! It’s more manual collation at the minute, but I’m going to start investigation different ways to try and pull the data into one place easier.

In the initial format, I just used a tag on Pinboard, and while that is still serving me well for the “Interesting Links” section, I know I can do more.

Anyway, here it is:

Rocket
A brilliant way to use Emoji on Macs that aren’t cool enough to have a Touch Bar.

Monzo – The Monzo Current Account Preview!
You can register interest for the Monzo Current Account! Wooooo!

We Are Still in Notification Hell
My thoughts exactly.

Apple’s Risky Balancing Act With the Next iPhone
Scale isn’t always a good thing.

Facebook’s secretive hardware division is exploring modular smartphones – The Verge
Is this the latest "cool idea" in Silicon Valley?

Videos

Why It’s HARD To Land on Mars
Not impossible, but hard.

The hidden oil patterns on bowling lanes
This is random, but super interesting. I’m definitely going to think about this next time I’m bowling.

Un albero un anno – One tree one year
We all tend to forget what goes on around us.

See Hummingbirds Fly, Shake, Drink in Amazing Slow Motion | National Geographic
It’s incredible how slow motion can help bring a new understanding to things.

Real-time Mixed Reality ARKit/Unity rig driven by HTC Vive | @normalVR
Maybe on of the best examples I’ve seen of Apple’s AR Kit, this time combining the experience of AR and VR.

Meet the Thirteenth Doctor – Doctor Who
So the next Doctor is a woman. Big Whoop. Whether she’s great for the role or not, it’s nothing to do with what’s down her pants.

On the Blog

What I’m Up To

This week hasn’t been super productive for me, I’ve mainly been at work and playing games.

One thing I have been working on though, is a very minimal Swift framework called “CHEssentials”. It’s not a big open source project or anything, but there are a bunch of things I always do when writing Swift apps, that I just want to stick in one place, so I can reuse them.

It’s quite small right now, but as I’m writing Swift, I’m always updating it. The most beneficial ones for me are the String/Date parsing, and rounding numbers.

You can find it on GitHub, and feel free to do whatever you want with it!

Issue #1

There’s a big change this week, and it’s the transition from being the “Weekly Links” newsletter, to the “Chris Hannah Blog – Newsletter”. A bit wordy, but that’s technically what it is, maybe it could use a better name.

Anyway, the new newsletter is an extension of the initial format, with it now covering a wider array of content. So instead of just being a list of links, it will include videos, what I’ve been up to on the blog, what I’m currently working on, and hopefully even more in the future.

I won’t bore you too much about it, but I wrote about the changes on my blog.

The distribution of letters in English words
Weird, but interesting.

Bundle Command Line Tool in macOS App
A great mini-guide from Sam Soffes, I’ll be using this myself!

[Exclusive: This is the 2017 Google Pixel "XL," with low-bezel AMOLED display and squeezable frame](http://www.androidpolice.com/2017/07/11/exclusive-this-is-the-2017-google-pixel-xl-with-low-bezel-amoled-display-and-squeezable-frame/ "Exclusive: This is the 2017 Google Pixel "XL," with low-bezel AMOLED display and squeezable frame")
I was a fan of the original Pixel, and I quite like the look of this one too. I can’t see anything pulling me from my iPhone 7+ though, especially as there’s literally no other way to enjoy iOS.

Why Security Experts Are Pissed That ‘1Password’ Is Pushing Users to the Cloud
I’m not a user of 1Password (I had a trial, but didn’t use it enough to warrant buying), but it doesn’t look like it’s going in the right direction.

Dash-dash it all! Apple’s bad beta decision on em and en dashes
I understand why people care about this stuff, but I always find these types of posts quite funny, and very #firstworldproblems.

Videos

Remarkable Time-Lapse: Watch Caterpillars Transform Into Butterflies | National Geographic
I found their method pretty weird, and maybe a bit unethical (on a minuscule scale), but this is a great video!

Scientists Fly a Drone to Collect Whale Snot | National Geographic
I bet you’ve never heard of that before.

How Penn Jillette Lost over 100 Lbs and Still Eats Whatever He Wants
It’s obviously a clickbait title, but there’s a lot of truth behind it. And it’s worth a watch.

The Reality of Indie Life 
A really great talk by Stephen Hackett about becoming an indie, the problems he faced and how he overcame them, and a few other interesting topics.

On the Blog

What I’m Up To

Right now I have a few projects in “progress”, some are really in progress, and there’s one still stuck in my head.

My biggest? project is Hydrate, and that is a water intake app for iOS, which is actually in Beta. It has over 100 beta testers at the minute, so this is one of my priorities.

Then there is the mini-project, which is the process of myself cleaning up my blog, and optimising everything to make it as lean as possible.

The final project, is something I have already wrote about on my blog, but just to put them all in one place – I want to make an alternative to Google Analytics. I’m not actually going “big” for this one, because it’s a personal thing that I want myself, but I think I know how I’m going to do it now.

My Latest Development Project

I’ve been working on a new app for a while now, and I’ve been meaning to write about it here on my blog, but I just keep putting it off. But as the beta process has been going for a while, and I think the development has progressed to a more stable (I mean slow) development cycle. Probably not good for most of my projects, but I’m treating this as a more long-term project. More specifically, I want to do each step well, so that in the end it’s a product that I want to use myself, and potentially a lot of other people too.


So, a slight break here, so I can explain what this project actually is.

In the simplest terms – it’s a water intake tracker for iOS. Being slightly more descriptive – it’s an app where you can manage your water intake, get a quick glance on how you are doing compared to your daily goal, and also look back and see how hydrated you were in the past.

That’s not the final description however, as I have many things I want to add to the application (which I will describe below), and I’m probably also missing out features that I’ve already implemented.

Oh and it’s called Hydrate. Original, I know.


There was no big reason for the app, except that I wanted to start tracking my water intake, and as an app developer, I thought I’d put the two together. I was actually asked on Twitter about the difference between Hydrate and other “competing” apps, my answer was what I just said – I’m making it for myself. If other people enjoy it, then that’s even better!

The layout and overall design is aimed to be as simple as possible, and therefore is designed around having “Quick Add” buttons, which you can set up with default quantities, making it even easier to add water intake. Mainly because, it’s not fun entering data as boring as this, so if I can make it quick, I will.

At the moment, the current features are:

  • View daily intake.
  • Add predefined quantities via Quick Add buttons.
  • Add custom amounts.
  • Set a daily goal – Which is the basis for the main ring.
  • Support for ml and fl oz (US).
  • Dark/Light mode – I just have to have a dark mode, and the other one is for “normals”.
  • View your past water intake (last 21 days).
  • Today widget with Quick Add buttons, to do it even faster.

Of course that’s not all the features I want to add, therefore I have a basic list of future main features:

  • Watch App
  • Make the ring animate.
  • Possible reward for hitting the daily goal.
  • A way to share your progress.
  • A maybefeature – Some way to add a drink when you start drinking it, which you can then tap to add to the actual data when it’s finished.

I’m most likely going to add more to this list, but that’s what I want to definitely (apart from the last one) add before I release.

If you want to try out Hydrate, then the beta process has already started, just enter your email on the Hydrate website, and I’ll add you to the TestFlight group!

Unordered Lists in Markdown

John Gruber:

In Markdown, you can create unordered lists using any of three characters as the “bullets”: asterisk (*), hyphen (-), or plus (+). Why all three? More or less: why not? Better to let people choose the character that feels most natural to them. I know a lot of Markdown users choose different characters for different levels of hierarchical lists, and that went into the original thinking as well.

I’ve always been curious which list markers people actually use, so I did a poll on Twitter. The results:

  • 42% Asterisk (*)
  • 54% Hyphen (-)
  • 04% Plus (+)

For what it’s worth, I’m a hyphen user. I’m not against using a plus, because it still feels natural. But I can’t understand using an asterisk, when they’re used so much elsewhere in Markdown.

Apple Machine Learning Journal

Further proving their deep interest in machine learning, Apple have launched the "Apple Machine Learning Journal".

As they put it:

Welcome to the Apple Machine Learning Journal. Here, you can read posts written by Apple engineers about their work using machine learning technologies to help build innovative products for millions of people around the world.

They’ve kicked it off with ‘Vol. 1, Issue 1’, titled "Improving the Realism of Synthetic Images":

Most successful examples of neural nets today are trained with supervision. However, to achieve high accuracy, the training sets need to be large, diverse, and accurately annotated, which is costly. An alternative to labelling huge amounts of data is to use synthetic images from a simulator. This is cheap as there is no labeling cost, but the synthetic images may not be realistic enough, resulting in poor generalization on real test images. To help close this performance gap, we’ve developed a method for refining synthetic images to make them look more realistic. We show that training models on these refined images leads to significant improvements in accuracy on various machine learning tasks.

I can imagine the content being well over my head, but I’m going to enjoy keeping up with it.

AirPods and Magnetic Strips

Ever since purchasing a pair of AirPods about a month ago, I’ve been using them every single day. Usually when I’m commuting to work, or when I’m at work. The case is usually stored in my bag, or on my desk. But occasionally I’ve kept it in my pocket, and I’ve noticed that it’s caused issues with my train ticket.

A few days last week I noticed my train ticket stops working completely after the first barrier I walked through, I presumed it was an issue with the barriers, but it kept happening. Then for some reason (I can’t remember why), I thought about the magnets in the AirPods case, and that the little paper ticket is based on a magnetic strip on the back. So the next day I kept the case well away from my train ticket, and it didn’t have any issue. I’ve done this every day since and it seems to have cured my problem.

I saw someone have a similar issue with a Hotel key card on Reddit, and it reminds me when BlackBerry cases used to cause the same problem, due to the magnet in the case.

So just a little warning, make sure you keep your AirPods away from anything that uses magnets to store data! In my case it’s not really an issue, as I can just show my ticket and get through the barrier. But when it’s a work pass, or something even more valuable like a bank card, it’s a whole different problem/