Personal blog of a Twilio Developer Evangelist in Europe. All opinions are my own. Anything that can be interpreted as a fact is actually an opinion.

I gave a talk at TakeOffConf 2014 about a hack we made at Hacked.io. Here is the video!

Stupid things I do waiting for a new iPhone.

Today is new iPhone day, which is the day my preordered iPhone 5s arrives.

UPS have been diligently updating their website as to where it is. I have watched it travel from China to London. Although I think UPS’s site updates with something of a delay.

Anyway. It’s here now.

But some of things I do while waiting are outright silly:

  • Refreshing the UPS status page. It’s all well and good to keep an eye on where it is, but refreshing the page constantly after it has left China on a flight is rather pointless. It’s clearly in the air for many hours!
  • Refreshing the UPS status page. Yes. Again. You see, once it was listed as ‘Out for delivery’, I continued to refresh the page. Why? I’m at home, I’m waiting for the doorbell. What am I expecting it to say? “Van attacked by bandits”? “Van exceeded 88mph and is now in 1955”? I’m really waiting for it to say “Delivery Failed” only realise the doorbell is broken. Buy I know it’s fine.
  • Looking out the window. I was at home today, this often means I’m standing by the window, rehearsing some presentations. So I can often look down into the street. Sadly, I live near both a building site and a speed bump. So 75% of vehicles sound like vans slowing down to my drive. Looking at them is rather pointless.
  • Tweeting about the fact that I was waiting, tweeting recent status updates from UPS, or concern about my doorbell not working. No one else cares.
  • Testing my doorbell. Really. I went and fiddled with the volume control to ‘be on the safe side’. Although unsure if I was turning it up or down, I strategically set it in the middle.
  • Not going out. Bit of a no-brainer, as we all know the courier comes during the 5 minutes you pop to the shop. Despite running out of milk for my tea (an unabridged catastrophe around here), and limited lunch (fried egg on a ciabatta), I held my nerve until 3pm. But I was definitely glad of some tea at 3:05pm…
  • Writing a post on Tumblr about all the things I do when waiting for the delivery. Oh… right…

I’ll just go and try to make a cast of my own fingerprint shall I?

iPhone null

I often get phone calls from withheld/unknown numbers. With the notification system in iOS 5, if you swipe on a missed call, it will call back.

I noticed that when I do this on unknown numbers, my iPhone calls “null”. Fair enough… What it actually does is dial 6855. Which is… NULL! Weird.

The law is what it says it is, not what you think it is.

This has come up a little bit lately, and as my Posterous posts are gone I wanted to repeat it here. First off: this is my opinion. This is not advice, and  you should seek professional advice before acting on the below. I.E., do not rely on me, and expect to sue me. I’m not technically qualified. This is only applicable to English and Welsh law, at time or writing.

A few years a ago, I thought it would be fun to retrain as a barrister. It was a lot of fun. One thing comes up time and time again that I must keep telling people: if you sign an agreement or policy or contract under English and Welsh law that is contradictory to the statutory law of England and Wales then that contact/policy/agreement is incorrect and unenforceable.

For example: if you buy an iPhone and it break dues to a defect after the 1 year warranty (sometimes this is 2 years), then Apple are probably obliged to fix it anyway. Because the Consumer Protection Act 1986 sections 2 and 3 say so. Effectively, depending on the type, price, and usage of the device it should be built to a reasonable standard. The killer here is that if you buy a device on a two year contract, then they are rather implying it will last at least 2 years. So stand your ground.

My best example of this was that a £2500 MacBook Pro should be reasonably expected to last more than 14 months before the screen failed. Apple said otherwise. I stood my ground. Apple caved. New screen for free.

I love Apple, but I know my rights as a consumer.

If you sign an employment contact with terms contradictory to the Employment Rights Act 1996, then the Act wins. Your contact is incorrect and can be ignored in these inaccuracies.

In truth, the answer to most legal questions is ‘it depends’. But it is almost impossible to contract away any rights given to you by the law of the land. If anyone tells you otherwise, go and get yourself a lawyer to check.

OmniAuth, Google, POW and ‘Invalid Credentials’

I’m not sure why this is happening yet, as I’ve only just worked out the outline to the problem… and like most human beings I don’t have 100% uptime, so I have to sleep.

Anyway: I’ve been getting back into my Rails App “Side Project #1" in the last few evenings, and I had a weird problem. When running as the default Pow site (therefore and trying to do a Google OAuth login, I would go through the Google side fine, then be redirected to, then get redirected to a local failure page with ‘invalid credentials’.

Having spent a couple of hours on this, I decided to start removing components. I started the app under Webrick on instead of Pow and my OAuth worked perfectly. (After changing Google callback URLs etc, and hard coding my environment variables - formerly in the .powenv file - to test).

Worked. First. Time.

Okay. So I don’t know why, but I have a feeling there is something fishy going on in the way Pow redirects or handles traffic that really narfs up the tokens. I don’t have time to work it out now, but hopefully if this is happening to you, I’ve included all the right words for you to get the answer. 

Weirdly, because my session persists over ports, when I change back to pow on (:80) I’m still logged in. So I can go back to Pow. This warrants further investigation at the weekend. Updates to follow if I figure it out.


I really need a decent way of running multi-tennancy apps, with OAuth, on a .dev domain. I’m seriously tempted to setup a lose OAuth2 server so you can create an account, and it gets pretty liberal about what it will redirect to. Handy for testing in this scenario…

Ah… me again.

There’s no “f” in “phone”.
- Some blokes at the end of my road. Quite so.

My talk on making a Lego portrait at Devs Love Bacon, Spring 2013.

Posterous has Died. Long live Tumblr.

Seeing as Posterous finally bit the dust, I’ve moved to Tumblr. I was trying to write something to run on Github, but I can’t be bothered. Too many other things need doing.

Busy time at the moment.