Smartbrick

I love my smartphones, and I’ve been using them for a long time now. I think my first real smartphone was an O2 branded HTC Universal, followed by a Nokia N95. I’ve also had various models of iPhone (3G, 4, 4S, 5 and currently using a 6) and both a Nexus 4 and 5.

The common factor between all these devices was my choice of service provider: O2. I let myself get suckered into upgrade after upgrade to get the latest and greatest model, and always lived in hope of them improving network coverage in my neck of woods.

You see, I live in the middle of nowhere. We’re right on the limit for both getting ADSL and having pizza delivered, and our nearest neighbour is a quarter of a mile away. It’s a wonderful location, but not without its frustrations for a self-confessed lover of technology like myself. The problem is getting worse as my older children start to suck up more and more of our available bandwidth with Netflix, YouTube, and Xbox Live.

Coupled with the poor broadband connectivity is less than stellar coverage from O2. I can get 3G in Carlisle, but around where I actually spend 99% of my time I get GPRS or nothing. To add insult to injury, the GPRS connection rarely works for anything other than push notifications. This means that whenever I leave the house, unless I’m headed for “civilisation” I’m carrying the eponymous “smartbrick” in my pocket.

The christmas before last my brother-in-law was shocked and delighted to discover he could get a 32Mbps 4G signal from EE in my living room, compared to the paltry ~2Mbps my BT ADSL was providing to a house full of gadgets during a family christmas.

Being tied into a contract prevented me from switching to EE at the first opportunity, but as my contract is due to expire I’ve been checking out my options. EE with their 4G-in-my-living-room is a clear contender, but with my work at Automattic (by the way, we’re hiring!) I also have to travel several times a year – usually to the United States. Neither O2 nor EE have particularly great roaming prices there, and having had my fingers burnt with a few bills on my return from travels, I’m keen to get the best bang for my buck. Especially when roaming I rarely turn my data on – except in emergencies – so despite being in “civilisation” my phone remains a smartbrick unless I’m near a WiFi connection.

This lead to me Three. They have very reasonable pay-as-you-go bundles (I really want to be done with long term contracts), but most importantly they have a “feel at home” romaing deal which means I can use my full allowance in the US and other countries. A quick warning: the “all you can eat” data allowance in the UK is capped at 25GB when roaming. The cheek of it! Oh, and they have 3G-in-my-living-room, which is a massive improvement on O2.

So for my current trip to New Orleans for a team meetup (I’m typing this on the train to the airport in our excellent WordPress app, and using my Three 3G to post it) I’m trying out their “feel at home” deal and I’m looking forward to being able to use my smartphone as Apple intended!

A smartbrick no more!

I will never stop learning

Today – after seven-and-a-half years at Canonical – I have started work for Automattic.

What brought me here wasn’t the products – which are awesome – but the company itself.

The more I learned about my new colleagues and how they worked, the more I knew I wanted to – no, had to – work here.

The Automattic creed sums it up far better than I can:

I will never stop learning. I won’t just work on things that are assigned to me. I know there’s no such thing as a status quo. I will build our business sustainably through passionate and loyal customers. I will never pass up an opportunity to help out a colleague, and I’ll remember the days before I knew everything. I am more motivated by impact than money, and I know that Open Source is one of the most powerful ideas of our generation. I will communicate as much as possible, because it’s the oxygen of a distributed company. I am in a marathon, not a sprint, and no matter how far away the goal is, the only way to get there is by putting one foot in front of another every day. Given time, there is no problem that’s insurmountable.

Our founder, Matt Mullenweg, introduced the creed in 2011.

Much is written on the hiring process, how we work, and the benefits of a distributed workforce. There’s even a book! I’ll be adding my voice to those over the coming months and years, but from everything I’ve seen so far, and everyone I’ve spoken to, those articles have only scratched the surface.

So if this sounds like the sort of place you’d like to work, come join us.

Hands-on with Canonical’s Orange Box

Ars Technica has a great write up by Lee Hutchinson on our Orange Box demo and training unit.

You can't help but have your attention grabbed by it!

You can’t help but have your attention grabbed by it!

As the comments are quick to point out – at the expense of the rest of the piece – the hardware isn’t the compelling story here. While you can buy your own, you can almost certainly hand build an equivalent-or-better set up for less money1, but Ars recognises this:

Of course, that’s exactly the point: the Orange Box is that taste of heroin that the dealer gives away for free to get you on board. And man, is it attractive. However, as Canonical told me about a dozen times, the company is not making them to sell—it’s making them to use as revenue driving opportunities and to quickly and effectively demo Canonical’s vision of the cloud.

The Orange Box is about showing off MAAS & Juju, and – usually – OpenStack.

To see what Ars think of those, you should read the article.

I definitely echo Lee’s closing statement:

I wish my closet had an Orange Box in it. That thing is hella cool.


  1. Or make one out of wood like my colleague Gavin did! 

Enabling Students in a Digital Age: Charlie Reisinger at TEDxLancaster

This is really inspiring to me, on several levels: as an Ubuntu member, as a Canonical, and as a school governor.

Not only are they deploying Ubuntu and other open-source software to their students, they are encouraging those students to tinker with their laptops, and – better yet – some of those same students are directly involved in the development, distribution, and providing support for their peers. All of those students will take incredibly valuable experience with them into their future careers.

Well done.

Using tox with Django projects

Today I was adding tox and Travis-CI support to a Django project, and I ran into a problem: our project doesn’t have a setup.py. Of course I could have added one, but since by convention we don’t package our Django projects (Django applications are a different story) – instead we use virtualenv and pip requirements files – I wanted to see if I could make tox work without changing our project.

Turns out it is quite easy: just add the following three directives to your tox.ini.

In your [tox] section tell tox not to run setup.py:

skipsdist = True

In your [testenv] section make tox install your requirements (see here for more details):

deps = -r{toxinidir}/dev-requirements.txt

Finally, also in your [testenv] section, tell tox how to run your tests:

commands = python manage.py test

Now you can run tox, and your tests should run!

For reference, here is a the complete (albeit minimal) tox.ini file I used:

[tox]
envlist = py27
skipsdist = True

[testenv]
deps = -r{toxinidir}/dev-requirements.txt
setenv =
    PYTHONPATH = {toxinidir}:{toxinidir}
commands = python manage.py test

How GitHub communicates

Zach Holman writes about how GitHub communicates:

here’s a look at most of the communication that happened at GitHub on one random recent day: February 4, 2014

The expected methods are all there: chat (Campfire in their case), email, and – of course – GitHub itself.

One thing that piqued my interest was their internal-only social network “Team” which seems very reminiscent of how Automattic use WordPress & P2. Since I learned how Automattic use P2, I’ve been wondering if we could do something similar at Canonical. Perhaps we could use Google+  for this as we already use it for internal HangoutsUbuntu Developer Summit, and to power Ubuntu On-Air. There are ways to limit Google+ communities to members of your Google Apps domain.

(Side note: I hate having two Google+ accounts!)

I really need to finish coalescing my thoughts and put them into their own post…

The other point I noted was that their use of email was both minimal and individual – Team and GitHub itself are their primary ways of disseminating information.

It always interesting to see how others do achieve similar goals to yourself.

HP Chromebook 14 + DigitalOcean (and Ubuntu) = Productivity

Although I still use my desktop replacement (i.e., little-to-no battery life) for a good chunk of my work, recent additions to my setup have resulted in some improvements that I thought others might be interested in.

For Christmas just gone my wonderful wife Suzanne – and my equally wonderful children, but let’s face it was her money not theirs! – bought me a HP Chromebook 14. Since the Chromebooks were first announced, I was dismissive of them, thinking that at best they would be a cheap laptop to install Ubuntu on. However over the last year my attitudes had changed, and I came to realise that at least 70% of my time is spent in some browser or other, and of the other 30% most is spent in a terminal or Sublime Text. This realisation, combined with the improvements Intel Haswell brought to battery life made me reconsider my position and start seriously looking at a Chromebook as a 2nd machine for the couch/coffee shop/travel.

I initially focussed on the HP Chromebook 11 and while the ARM architecture didn’t put me off, the 2GB RAM did. When I found the Chromebook 14 with a larger screen, 4GB RAM and Haswell chipset, I dropped enough subtle hints and Suzanne got the message. 🙂

So Christmas Day came and I finally got my hands on it! First impressions were very favourable: this neither looks nor feels like a £249 device. ChromeOS was exactly what I was expecting, and generally gets out of my way. The keyboard is superb, and I would compare it in quality to that of my late MacBook Pro. Battery life is equally superb, and I’m easily getting 8+ hours at a time.

Chrome – and ChromeOS – is not without limitations though, and although a new breed of in-browser environments such as Codebox, Koding, Nitrous.io, and Cloud9 are giving more options for developers, what I really want is a terminal. Enter Secure Shell from Google – SSH in your browser (with public key authentication). This lets me connect to any box of my choosing, and although I could have just connected back to my desk-bound laptop, I would still be limited to my barely-deserves-the-name-broadband ADSL connection.

So, with my Chromebook and SSH client in place, DigitalOcean was my next port of call, using their painless web interface to create an Ubuntu-based droplet. Command Line Interfaces are incredibly powerful, and despite claims to the contrary most developers spending most of their time with them1. There are a plethora of tools to improve your productivity, and my three must-haves are:

With this droplet I can do pretty much anything I need that ChromeOS doesn’t provide, and connect through to the many other droplets, linodes, EC2 nodes, OpenStack nodes and other servers I use personally and professionally.

In some other posts I’ll expand on how I use (and – equally importantly – how I secure) my DigitalOcean droplets, and which “apps” I use with Chrome.


  1. The fact that I now spend most of my time in the browser and not on the command-line shows you that I’ve settled into my role as an engineering manager! 🙂