Switching to Windows Phone

20 December 2014

A couple of months ago, while trundling along the Circle line at snails pace, it dawned on me that I rarely use more than around 5 apps on my iPhone. At the time, I was checking my emails in Mail and had just finished reading the latest blog posts on Flipboard. A couple of phone calls, a text and quick snap with Autostitch brings us to 5. Given the massive bias towards wall-of-apps style phone usage, I decided to try something a little different.

So I bought a Windows Phone, specifically a Nokia Lumia 1020. The original plan was to give it a trial, and return it when I inevitably hated it and returned to the iOS/app-crazy bubble.

But the opposite has happened; I must be in a small minority of people who actually like not having the latest apps to play around with. I am no longer distracted by my phone, but use it only to communicate or read. It's the simplicity of it that I love - I have my laptop for tinkering. This is further exaggerated by the stunning Windows Phone interface, which is definitely the most usable "phone" OS I've seen yet.

As with all things, Windows Phone is not perfect - Internet Explorer (true to it's desktop counterpart) cannot render fonts smoothly. Ironically, despite my general dislike of extra apps, I miss Citymapper a lot. There's also some issues with live tiles not updating, but I came from iOS 8 & it's beta so I'm now well used to a buggy phone ;).

The phone itself looks amazing, is built like a brick (as much as a smartphone can be anyway) and there's that 41 MP camera. It's also over a year old and a little slow at times - but the camera more than makes up for it as opposed to say, a much faster Lumia 930. More details available in the notes I made during the trial period.

All in all, I can't see myself ever returning to iOS.

Democracy is a Farce

19 September 2014

Democracy, in the forms it's employed across the globe, is bullshit. The concepts and ideas are great, but when it boils down to the nitty gritty - actually running a country in it and it's people's best interest - the system fails. The reason for this is because politicians don't do what's best for the country and voters, they do what they believe will gain them a point or two in public favour. Or they work on creating law tailored to the 1%, pushed by lobbying groups, donations and (very likely) all kinds of backhand deals. Sadly, these actions are normally in direct correlation to the countries overall interests.

Take my homeland, the UK, for example. Europe is a hot topic here currently with a worryingly large proportion of the population wanting to exit. The problem is people generally aren't wll versed enough on the subject to make that decision - Europe is essential to our economic power. Yes, we can leave and keep up the various trade agreements - but do we really think the other EU countries will allow this? So, the great Cameron, thinking not about his country or economy, but his popularity alone, offered up a referrendum to the UK population: are we in or are we out of Europe? I, for one, desperately hope we vote in - but it could go either way.

Another example from the UK, and a real sore issue for students - the other great leader, Cleg, promised during his election run and coalition development that university fees would not change. Oh really, Mr Cleg? Now that they've been trippled, it certainly seems like you were bullshitting the whole country to get votes. No wonder your party has plummeted to the bottom of the serious-players ladder, where it deserves to remain.

Now for America, the land of the (supposedly) free. Through an over-complicated and potentially corrupt voting system, the great Obama has been sworn in twice. Now, Obama certainly had some excellent ideas (Medicare) - but the rest of the government (particularly the Republicans) decided that free/affordable healthcare for the majority of the country was... too expensive for the top of it. Seriously? In what world is that democracy.

To be fair, Obama has made his own fair bit of bullshit - check out this list of 23 failed promises. I particularly like this one:

My administration is committed to creating an unprecedented level of openness in government.


So what is there to do? I've only looked at two countries but I'm certain these problems affect pretty much every democracy in existance. Here are my (naive) suggestions:

  • Use proportional representation across the whole country. Yes, you're meant to vote for your local/regional official - but everyone knows we vote for the leader.
  • Allow top leaders to only ever serve a single term running the country. This stops their desire to become popular for the next election run, and allows them to focus on the job in hand: running the country for it and it's people's best interests.
  • Ban/limit the money parties can receive for election campaigns - democracy shouldn't be a contests of whose got the deepest pockets.

Learning to Chef

04 April 2014

Over the last three months I've been learning how to cook with Chef. Prior to this I have stuck faithful to bash scripts for provisioning servers, and Chef/Puppet/Ansible/etc all claim to make this job a whole lot easier. Having now used Chef extensively, I can for sure say it does not make the job of deploying easier.

My first encounter with Chef was when working in a Vagrant box to deploy a simple Django app and a couple of email related services. The first thing I noticed when reading through the recipe was that each block could easily be written as a single line in a bash script - it seems like writing a lot of extra code because it's simply easier than writing it out in bash (with all it's pitfalls). Nonetheless I ploughed on and after a few weeks was writing my own Chef scripts to deploy other services. Then the real problems began.

One great feature of Chef is the ability to include other peoples recipes, taking away a lot of the hard work. However on multiple occaisions I've included recipes which either 1. no longer exist or worse 2. references packages/other recipes/files which don't exist. Not only is this frustrating to deal with, but trawling through Ruby's awful tracebacks is certainly not enjoyable. Finally is the attribute system, with a nice and simple fifteen(!) levels of attributes, which require some serious studying to learn by heart.

In my experience all of these problems result in one thing: a decrease in developer productivity. We're not fighting with wierd configs & bash scripts, but instead spending days debugging Chef code. I'm 100% certain I could bash-script deploy anything (including groups/multiple servers) quicker than I could with Chef.

Thankfully there are many other options, such as:

  • Bash: still my favoruite - extremely powerful & flexible, great for deploying/installing single machines
  • Fabric: is like an enhanced form of bash using Python
  • Ansible: great for keeping consistent configs across larger groups of nodes