The HP ProLiant MicroServer

I bought a couple of HP ProLiant MicroServers this week. They arrived on Friday, along with two Remote Access cards and four 4Gb sticks of memory from Crucial.
I can honestly say that I’m impressed. HP are offering £100 cashback on these servers until 31st August, £238 from dabs.com, so really £138. For that, you get a 250Gb SATA disk, a rather lean 1.3GHz AMD Neo processor, in a small box that can easily be tucked in the corner somewhere. Add the Remote Access Card, and you have a headless server – admittedly it requires a bit of fiddling to set up, but I have plenty of server-side experience.
The machine has four slots for SATA disks, and installing them is straightforward. Bolts and a Torx wrench
PXE booting both boxes was no trouble, and they both have Ubuntu 11.04 running on them without issue.
Specs are here.

Three is not a magic number

When I moved from Orange to 3 in February, I was full of praise for them – and they’ve been generally excellent. £15 a month for their SIM Only 300 – 1 month plan, which is loads less than I paid on Orange for lots more data. I have a MiFi for Internet access when I’m out and about, handy for the commute to my new office which is about 90 minutes.
And that’s where the problem happened. At my desk, I get no 3 signal whatsoever. If I move outside, it’s fine – but at my desk, nada. I can’t move desks, there’s no chance of using UMA in the office as 3 don’t offer it, and my mobile is useless at the place I spent 8 hours a day.
I made the decision to move to giffgaff purely on the excellent O2 coverage at my workplace. Nothing else mattered. giffgaff sent me a SIM within a day or two, which I activated online last night. I called 3 this afternoon to get a PAC so I could port my number over. Here’s some bullet point which represent the half-hour long struggle.

  • Call up, press the buttons for ‘thinking of leaving’, get plunged in to a silent abyss. Twice.
  • Call up, press the buttons for ‘phone or network problem’, get through to a chap in India who is difficult to understand.
  • I tell him I want a PAC – no more details – he asks why, and steers me through a troubleshooting process in which he checks coverage at my location and tells me there’s good signal. I tell him I get no signal at my desk. He tells me there’s a good signal in the area. I tell him my phone’s useless if I can’t use it at my desk.
  • He suggests my phone may be at fault (repeatedly putting me on silent hold without saying anything, and it’s only perseverance on my part that keeps me on the line), and I tell him my phone’s fine, and that I want a PAC because I have no signal at my desk. He asks if I can try my SIM in another phone, and I tell him my phone is not faulty, that I’m not going to waste time trying my SIM in another phone, and I want my PAC.
  • He tells me he can’t issue a PAC, but he’ll put me through to somebody who can. That other person asks why I want to leave, I tell him I have no signal at my desk – he checks on their website, and tells me there is good signal. I repeatedly tell him I have no signal at my desk.
  • He asks who I’m moving to – and I tell him I get five bars of signal on giffgaff (O2). He asks how much I’m paying and what the bundle is, and then asks me if I’d stay if they reduced the price. I tell him that even if he gave me the same bundle for free, if I can’t use it at my desk, it’s not worth having.
  • He suggests that he could put in a request for them to make their network better in my location, and I tell him I can’t wait for them to possibly do something, at some time, which might help, and that I want to move.
  • At this point, he finally gets the hint and tells me they’ll text me a PAC within 24 hours. It arrives an hour or two later whilst I’m outside, and I arrange my number porting with giffgaff for tomorrow.

Apart from 3’s shockingly poor callcentre, they were a better provider than Orange. Thanks, 3 – you’ve served me well over the past few months and I’d find it hard to come up with anything but minor niggles over your service… but please – sort your callcentre out. They’re your representatives.

I need more hours in the day

Today, I woke up at 6.30am, spent two hours getting ready, eating breakfast and coding before dashing off to a meeting at City Hall. Two hours later, over to Waterloo for a working lunch then down to Bishopsgate for a few hours in the office, then up to King’s Cross for an Open Knowledge Foundation meet-up.
I’m back home now, wondering where on earth the day went.

Crunching rail timetables

For those of you new to this blog, I’ve been doing some work with timetable data for a few months now, and I presented my work at OpenTech with Jonathan Raper earlier this year. I’m working with some other people to bring more information about the rail network out from behind the scenes and in to the hands of the public so people can innovate and analyse the data, and ultimately to increase transparency and accountability. Importantly, I am also pro-rail and looking to improve on what we have.
So – it’s taken a while, but TSDB Explorer can now load an entire ~500Mb CIF format timetable in around an hour on an average machine. Whilst I can undoubtedly improve this, it’s a lot better than the previous three days and multi-gigabyte monstrosity I wrote previously.
Several people are interested in the format of the CIF file, and I’m going to put a set of slides together soon to explain it. Hopefully David Cameron’s recent letter on open data will help make Network Rail-source CIF timetable data more prevalent, and my “How To” guide will lower the barrier for other people to write timetable analysers, produce train frequency graphs, generate pocket timetables, etc.
Watch this space – these are very exciting times.

Refactoring

Having written a CIF parser, TSDBExplorer, I found that although the parsing code was correct (thanks, Test Driven Development!), it’s hideously slow.
Using exactly the same set of tests and test data, I’m refactoring a chunk of the code. Whilst it’s quite demotivating to find the majority of your unit tests suddenly failing, being able to review each one and make it pass is absolutely great. I’ve definitely found the right way to code.
To anyone who isn’t a full-time programmer and who “just wants to get on and write code” – how many times have you suffered because you’ve “just got on with it” rather than writing tests and making them pass? Give Test Driven Development a try…

[Test|Behaviour] Driven Development

Whichever option you choose, I am a convert.
Previous projects of mine were met with a “*sigh* I suppose I need to write some tests, but I want to get on with the code”. TSDB Explorer is the first codebase I’ve written where the majority of code existed only after the unit tests. I have to say, it’s many times more robust, and I’m going to continue the trend in TubeHorus.
Part of me is delighted too at rcov and its “Here’s how much of your code is covered by tests”. There’s a definite warm feeling to be had when you’ve covered nearly all your code with tests, although as @bobtfish said – “That just shows you that your bugs are within your unit tests”. But I can always write more of them to make sure I don’t re-introduce bugs.

Making a bad situation worse

Last night’s attempted cable theft at Woking wasn’t a pleasant experience for the thousands of people trying to get home. An earlier signalling problem at Clapham Junction disrupted my journey out to Putney slightly, but it was utter chaos later.
My journey back home would have been a nightmare had it not been for the exceedingly convenient London Overground service from Clapham to Stratford, the only criticism of which I can make is that the 2015 departure from Clapham gets to Gospel Oak at the same time at the 2050 service to Barking departs. A minor problem though.
Some hours later after I’d returned home and had dinner, I had a friend of mine call me up for advice on which trains to get back to Winchester – he’d been trying to get back from Waterloo, was advised to travel via Reading, and thanks to one of my Open Source projects, TSDB Explorer, I could tell him which trains to get and from where – but not if they were running or where they were.
Hearing the story in the news this morning, my jaw dropped when I heard that some passengers forced open train doors and made a run for it down the track. That’s an exceedingly bad thing to do, for a number of reasons:

  • First and foremost, there’s the danger of electrocution from the conductor rail – Module DC of the Rule Book sets out the details for the technically minded. Suffice it to say that if you stepped on, or slipped over on to the conductor rail, you’re not coming out of it unscathed.
  • Second, once the driver of a train receives an alert on the train’s management system that the emergency egress handle has been used on his train, he’s going to call the electrical control room and/or signaller immediately and get the power switched off, or ‘isolated’. This can only be done in an emergency for a large area, because in an emergency, you don’t have time to work out which parts of the supply to turn off (and sometimes you just don’t have the option – imagine trying to switch off just one socket on a ring main from the consumer unit in your house). The lack of power and knowledge that there are people on the track further screws up any attempt by Network Rail and South West Trains to get trains moving, however slowly. Even if the attempted cable theft affected two out of four lines, there are still procedures that can be undertaken to move trains without the aid of normal signalling systems – they’re slow, but they exist, and they are safe. So, the result of people ‘escaping’ from trains through frustration? More trains not moving for a long time because there’s no power to any of them. Oh, and without power, the air conditioning on trains won’t work. South West Trains’ fleet doesn’t have windows that can be opened – there’s no point with air-conditioning. Everyone else gets warm and agitated.
  • Finally, trespassing on the track is just that – trespass.

So, the moral of the story? However frustrated you are, don’t take matters in to your own hands and make a difficult but manageable situation in to a potentially serious incident involving death.

Open Source, Open Data

I’ve had a rethink about source code hosting. CVS is dead in the water, Subversion requires online connectivity, and I’m starting to use git with vigour. Hey, offline commits are perfect for coding on the train! (As an aside, I gave up trying to get WiFi access on a train to Leicester on Saturday, and didn’t even bother trying on Sunday coming back). Github is where it’s at – although despite today being World IPv6 Day, they don’t appear to have access over IPv6 natively.
The code for TSDB Explorer is up and out there and being actively worked on, as is TubeHorus, which is in a lesser working state. I anticipate getting around to putting TransportHacker‘s code on Github in the next week or so.
On another note, I’d like to thank the people at Network Rail who’ve been so helpful in talking to me about some of the data sets they hold. Whilst I’m not in a position to let the cat out of the bag yet, I am pretty excited about what’s coming in the next few weeks. Time to investigate Amazon EC2 I think… this may take some horsepower.

A fellow Transport Hacker

I met up with Louise Crow after work yesterday – a great opportunity to geek at each other about NaPTAN and CIF data, amongst other things.
She reminded me about GitHub – and so I took a few minutes this morning to push TSDB Explorer up there. If you want to have a look around the code, it’s all here. I’ll try to come up with some sample data in the next week or two, and maybe a working demo if I get time.