Monthly Archives: June 2014

The diet starts… later

So it was rather my intention that joining Rainbird1 was going to kickstart a bit of a health drive. In my previous job there was Noodle Monday (which often featured extra large portions), Doughnut Thursday, random cakes, and the ever present snack machine which, during my last few months there, was being visited as early as 9am for my first hit of chocolate. This, among other things, has seen me putting on over 5Kg23.

Knowing, as I did, that my old team would just by sugary treats for my leaving presentation I simply requested all money collected be put to charity. This was taken as _”put a small part of it aside for charity, spend the lions share on sweets”. As a result Rainbird now has a sweetie drawer, and I don’t need a snack machine as I’ve got rubbish on tap for the next couple of weeks at least.

Noodle Monday has remained, although I’m reigning back to just large portions which had me feeling quite righteous about myself… until company ice cream happened on the way back to the office4.

After seeing me destroy a bag of flying saucers5, Ben, my boss, then proceeded to purchase me the largest possible tub of flying saucers he could find at Macro. The only reason this hasn’t been completely finished is the late hour in the day it arrived. I don’t recon it’s chances at lasting the distance today.

I’ve not got as far as Thursday to see if Doughnut Thursday can be avoided, but even if I do escape it it’s not looking great for the diet. I’m going to have to start thinking really hard about considering going back to the gym regularly.

1 As part of a rebranding exercise going on before the launch of the open beta on the 21st of next month the name is changing from RainBird to Rainbird, hence the chance in capitalisation from previous posts.

2 For those of you who work in old money, I’ve put on about a stone. If you work in lbs then you’ll have to work it out yourself.

3 That’s 5Kg, footnote 2, footnote 3, not 5Kg squared, cubed.

4 Although, free large ice cream! Yay!

5 I have a sugar problem, don’t judge me!

First Day

So Ben Taylor, CEO of RainBird has gone on record1 as saying something along the lines of that, “as a matter of principle, RainBird employees will be taken out for lunch on Fridays, without fail“.

It’s Friday… although, to be fair, perhaps if I’d made it into the office before 11 I’d have more of an argument. I ended up working from home in the morning in order to take delivery of my new monitor before coming in and setting up my temporary desk and writing a document that is quite literally called “Big Ol’ Bunch O’ Questions”.

It’s actually made for a nice first day. I got a lie-in. Apart from a brief period before lunch there wasn’t even anyone in the RainBird offices. I’ve not been bombarded with millions of names that I’m not going to remember2, I’ve not had to go through the whole induction thing, I’ve not had to answer the same questions many times over as I’m shown round the office.

Also, since I came in late I got a lift with my wife. She’s still in town so I’ll shortly be going to meet with her and my daughter for an early dinner before going home for the weekend. Who said startups were ridiculously long hours?

1 Sadly a printed article in the EDP, the online version of the article omits the quote in question.

2 I’ve met one guy, who’s name I’m familiar with.

Joystick Setup – The Confessions of an OCD Space Sim Addict

My first ever computer was a BBC Model B1 which my parents bought when I was about 9 or 10. I credit this machine with two things: firstly it got me into programming and ultimately set me on my current career path; but secondly it also got me addicted to space sims.

Elite, when it came out, was an absolutely ground breaking game in many ways. It was the first game to truly blow me away and, in many respects, I consider it to be the best game ever made. The premiss behind the game was simple: you fly a space ship between star systems, buying and selling goods to make money, and fighting off pirates (and/or the police if you took the piracy route yourself). The implementation, given it had to fit into 32K, was near flawless with eight rich and varied galaxies to visit with numerous star systems and space stations you could dock with. I was hooked, and have been looking for something to match it ever since2.

It’s little wonder that when David Braben said he was raising money through Kickstarter for a new version of Elite I simply threw my wallet at him and say “here, take my money”. I also threw vast sums of money at Ebuyer to order a new gaming rig to handle the game.

The one thing I didn’t have to buy was a joystick. As a long standing fan of space and flight games I’ve owned a CH Products HOTAS3 setup for years. It’s a far cry from my old Elite setup where I had a non-self centring graphics paddle with a single button (made docking a cinch as I could set the ship up and leave the joystick where it was). The CH Products HOTAS I have has 3-axis on both controllers, 4 individual buttons, 3 sets of 4 way hat switches and one 8 way hat switch, for a total of 24 buttons per controller, or 48 physical buttons in total. One of those buttons can be set as a shift button giving you 94 virtual buttons. You can also set one of three modes using another button which, in theory, gives access to 276 virtual buttons, and 18 virtual axis. Finally you can write custom scripts which basically give you any combination of Axis and Buttons you could ever want4.

Personally I don’t get on with the mode settings on the joystick so I tend to just use a single shift button. Also, one of the buttons is difficult to activate thanks to it’s location, plus the throttle axis on the joystick is made redundant by the throttle controller, so generally I set the sticks up to give me 5 axis and up to 92 virtual buttons. That’s still quite a few things to configure, especially when I have my own preference for setting things up and the fact that games never conform to this.

When you consider the above you can start to understand why, for a good game with many configurable controls, it takes me in the order of 3 days just to configure the joysticks. Elite has 8 usable axis and somewhere in the order of 70 actions that can be bound to buttons (of which about 50-60 are relevant as some simply provide alternatives to axis – e.g. bindings for increase and decrease throttle as well as the option to use a throttle axis). Deciding which of the 8 axis to map to the 5 axis I want to use, and where to group the 50 or so buttons takes time. A lot of time.

The new beta release of Elite Dangerous has introduced new control settings which means my old configuration has been lost – annoying, but it gives me a chance to sit down and refine things. This quite literally involved two hours of me sitting at the control settings screen in game, noting down the various controls available on my laptop, and making notes on special joystick layout cheat sheets that I have. I also have the joysticks to hand so I can test out how comfortable/intuitive certain combinations and layouts may be.

Stage two will be to start mapping the primary axis and controls and checking I’m comfortable with those (usually fairly quick as the whole up/down/left/right/shoot thing is fairly straightforward, although Elite prioritises roll over yaw which takes some getting used to). Stage 3 is to then map all the other commands, a process that can take a while to refine as you sometimes don’t find issues with the layout until you’re using it in anger – there’s nothing worse than ejecting from your ship by mistake because in the heat of the moment you pressed down on a hat switch, not forward.

Stage 4 is to actually play the damn game 🙂 Thankfully, with Elite still being in beta and having featuring missing and some annoying bugs I’m happy to just dip in and out getting the setup perfected. It means that when the full version of the game is released I’ll be all set and ready to go day 1.

For those of you who think that investing the amount of time I do into setting the game up correctly is ludicrous, you need to consider that I will easily spend hundreds of hours playing this game (in fact, if I don’t rack up over 500 hours I’d suggest the game didn’t meet expectations). If you’re going to spend that much time doing something you want to make sure it’s setup right.

1 We later upgraded it to a B+ with 64Kb of memory, and a daughter board that contained a spreadsheet, database and word processor all on ROMs which meant loading this applications was incredibly fast.

2 Privateer 2 came close, which is why I’m very excited about Star Citizen and what that may be like. Much as I loved Eve it’s not really flying the ships so not quite the same thing. The X series of games tried really hard, but ultimately they were just too buggy and just lacked… something.

3 H.O.T.A.S.: Hands On Throttle and Stick; a pair of joysticks similar to the setup used in fighter planes where you have the throttle in one hand and the joystick in the other, and then a bunch of buttons on both meaning you can control everything without taking your hands off them.

4 What limitations there are are really imposed by Direct X, not the joysticks.


Depending how you look at it, my interview with RainBird was either non-existent featuring, at best, an informal chat; or it was a gruelling 5 year affair where I had to prove myself by working my way up the ranks of a totally different company. Either way it wasn’t your standard technical interview.

I’ve written on the subject of interviews before, but that was for an established company hiring a developer. At a startup you’re hiring a manager/secretary/handyman who can also code and do a million other things that need to be done, which is a very tall order. I’m not entirely sure how you’d go about doing that without knowing that person and seeing, first hand, what that person was capable of over a prolonged period of time.

This approach to hiring means you can dispense with the incredibly narrow (and often counterproductive) fallacy that you must hire someone with X years experience in technology Y1, because that’s what you use. RainBird needs developers who can code in Node.js, AngularJS, plus a smattering of C++ and Prolog. If we’re charitable I have 1 months worth of industry C++ experience… from over 15 years ago.

Despite that seeming handicap I like to think I have a good understanding of a number of programming languages, including Javascript, a good grasp of architecting systems, the ability to manage a team, a broad set of organisational skills and the ability to build furniture that means, regardless of the technology being used, the longer term benefit I bring to the company by far and away beats the incredibly short term drawback of me having to get up to speed with some new stuff.

1 And don’t get me started on the whole “must be a self starter; must work well by themselves or as part of a team; must have excellent communication skills”; what does that even mean? You’d be unlikely to hire a lazy illiterate who didn’t play well with others for something as simple as a job at McDonalds, let alone put them into a development role – please, for the love of God, stop putting this crap into job specs.


It doesn’t seem to matter what role I do in IT, it’s going to involve a certain amount of crawling around on the floor messing about with cables. Even in non support roles in large organisations where there were teams hired purely to crawl around the floor and mess about with cables, I still found myself doing it. Not that I mind; the aforementioned teams never seemed to wire up my machine the way I wanted anyway1.

With my move to a company who’s size will double to two when I join (with 50% of the company outranking me) I fully expect more crawling about on the floor – and not just with cables. One of my first jobs is going to be putting together the new office furniture, something I’m actually looking forward to strangely. I’d say this is the perfect example of a startup teaching you new, and unexpected skill sets, but the furniture is coming from IKEA and I’m already a dab hand at building that stuff – after all, it’s basically wooden lego for adults.

1 A true Jedi does his own cabling and bests the cable monster one on one – either that or I suffer from OCD when it comes to… well, many things actually.

So I Joined A Startup

So I joined a startup… or at least I’m going to shortly. In some respects it’s a bit of an odd move for me as I’m usually the one who opts for the “safe” option, but once you look at the decision in more detail it’s easy to see why it’s a no brainer for me.

The first worry for anyone moving to a startup is “is my job safe?”. But then define safe. We’ve just been through a recession that kicked off by bringing down Lehman’s, who were supposedly “too big to fail”. What I do know is that there’s money for the next year and even if it all goes tits up the experience gained in that year is going to be invaluable.

What about the hours? Well.. what about them? I spend most of my spare time playing with new technology anyway, why not invest that time into something useful, which could ultimately help the company, and therefore me.

And then there’s always the product. To be fair this is what has stopped me going to a startup in the past; I’ve never really believed in the product. My reaction has always been one of “OK, so that’s kind of cool… if it gets traction let me know and, if you’re still looking for people, we can talk”. With RainBird I think the product has the potential to be absolutely awesome. The fairly limited technical beta is already seriously cool.

So yes, it’s a risk, and yes it may flop, but hopefully I’m about to embark on something amazing, with some seriously talented people, doing a job that I can enthuse about at length. Watch, as they say, this space.