Pling!

Portrait photograph of Chris Northwood

I'm Chris Northwood - often found online using the handle laser, or some variation of this. I also hold the radio callsign 2E0NTW, however I've been dormant for some time. I'm hoping to get back into radiosport soon, though.

I currently work for the as a Graduate Software Engineer.

I've completed an MSc in Computer Science with Speech and Language Processing at The University of Sheffield, gaining a distinction. I also have gained a 2:1 for my undergraduate degree in BEng Computer Science at the University of York.

I've worked on multiple award-winning projects, including The Guardian's Student Media Award for Best Website whilst the technical lead on Nouse.co.uk, the UCISA Award for Excellence whilst lead developer on Mobile Oxford, as well as personally winning the Greg Dyke Award for Outstanding Achievement.

What I learnt from Startup Weekend Manchester

Published on

This weekend I attended Startup Weekend Manchester, hosted at the soon-to-be-opened TechHub Manchester space. The idea I pitched was probably quite an ambitious one, and different to most of the other ones there in that it was aimed as a service to be delivered to a very niche selection of business, rather than a mass-market product. Regardless I got a few bits of interest and managed to form a small team to develop the business plan with Ian Horst, David Haikney and Josh R and the weekend got underway.

We put together what I thought was a sound pitch (BBC Fusion training kicking in there) and I think we delivered it well, but ultimately the idea didn’t get much traction from the judges and we didn’t finish in the winning 3, which was disappointing. I’m pretty damn passionate about the idea and have absolute dedication that the time is right now to disrupt the market so it was disappointing to not be able to share that passion.

However, this has given me a kick up the butt to really make some traction on the problem and start tackling some of the difficult problems I’ve been putting off for doing – I’ve now got a about half a notebook full of concepts, ideas, potential graph structures and high-level algorithms to tackle the problem… I also learnt a few things from the weekend – mainly that I need to get customer validation, and the way to do that is to get Molly 2.0 complete and mancunia.mobi running off the new stack, rather than just being timetable-driven as now (which is largely uninteresting). Lack of design ability and time continues to stymie me though. Once this is done I can put it in front of people and get their feedback, and then I also need to deliver proof that I’ve got the skill to build such a solution.

The other thing is something I’ve known for a while now, but this weekend has really highlighted for me – I need a co-founder who’s as passionate about disrupting the transport data industry as I am, and who has the skills I don’t have, specifically the people and business skills. And I still don’t know how to find such a co-founder in Manchester – most other people I know who are interested in the area of open data or transport data are technical, or already involved in startups of some kind. But maybe you’re reading this blog? Who knows, but it’s something I really need to drive forward on – network more, and meet more people… i.e., my weaknesses.

Do I have any criticisms about the weekend? Well, I was hoping to find a co-founder and actually get some traction on my idea from other people, and I got none of that. Startup Weekend wasn’t actually what I expected – specifically the rule about not being able to develop prototypes or do work in advance (other than coming up with a thought-out idea) hindered me a lot, and was surprising to me – it seemed that the competition aspect was focussed upon more than the “let’s start businesses” aspect. Non-mass-market products are hard to validate over a weekend, and the cynic in me asks if there’s much value in a business that can essentially be formed and build it’s product over a weekend (despite being billed as not a hackathon, the judges did praise teams which managed to get an MVP built over the course of the weekend) – this was probably our main failing, we were pitching a technically complex product with no demo to prove that we could deliver on it. My other main criticism was the lack of feedback we got after our final pitches – other than a handful of comments and praise for the winning 3, the other teams got almost zero feedback from the judges. I’m guessing our failure was down to the lack of validation we got for our idea from customers and a technically complex idea with no proof, but I could be wrong.

Do I regret going to Startup Weekend? Not one bit. It’s given me the motivation I need to actually make more progress on my own technical work. Will I be going to another one? Probably not.

mod_auth_shadow on Apache 2.2.22 (upgrading from Fedora 15)

Published on

Here’s a gotcha for people upgrading from Apache 2.2.17 (on Fedora 15) to Apache 2.2.22 (on Fedora 16). Somewhere along the line the requirements for an auth config changed, and all of a sudden, directories protected using mod_auth_shadow would start spewing out 500 errors, and error logs filling up with errors like “AuthUserFile not specified in the configuration”. As I use mod_auth_shadow, I have no AuthUserFile (it authenticates against the system), but it appears that with AuthType Basic, it now expects a file by default, and complains when it doesn’t get one.

Adding AuthBasicAuthoritative Off to your config block, this defaults back to previous behaviour and you can continue authenticating your users by default. Although I hit this bug with mod_auth_shadow, other authentication plugins (such as mod_auth_mysql) may be vulnerable too.

So, where exactly is the North of England?

Published on

It’s a question that all proud Northerners have had at some point – where exactly is that border between the north and south, and how exactly does the Midlands fit into it? I’ve heard Geordies declare that Manchester isn’t in the north, and people from Chesterfield argue that Derbyshire is definitely Northern – but where exactly does the North start, and does your perception of that alter depending on where in the country you live? So I’ve created a little survey to collect some answers and see what the results are once I’ve got a decent sample.

Where is the North, really?


Techy stuff: It’s a Bootstrap-based JavaScript survey talking to a PHP recorder powered by Leaflet, MapQuest and the GeoNames database (all places in England with a population greater than 40k, so you’ve got a chance of hearing of them). Of course the code’s all on GitHub.

#hackerdesk

Published on

So there’s a bit of a meme around at the moment around where coders are posting their desks online. I can’t get over how minimal and tidy those work areas are. Here’s my (personal) “hacker desk”:

The main machine is a home-built desktop which is getting a bit dated now (Intel Core 2 Quad Q6600 processor, 4 GB RAM and a 128 GB SSD running Fedora 17 – although the main thing that gets me is the screen) and then I have my laptop (Intel Core i5 processor, 4 GB RAM and 128 GB SSD), along with my usual assortment of empty glasses, scraps of paper with notes, my netbook, my phone, etc…

Announcing the alpha release of mancunia.mobi

Published on

mancunia.mobi - it’s Manchester on your mobile phone.

It’s a project I’ve been working on for a few months, ever since I found out I’d be moving to Manchester. It’s based on the Molly Project, which is the open source framework that powers Mobile Oxford, the site I worked on in my last job. It’s still very much in an alpha phase – the UI is still “stock” Molly and it’s a bit thin on the feature ground, but I wanted to get it out there to get interest in the project.

So what can it do right now?

Bus and tram timetables for all of Manchester

What do I want it to do? Much, much more – open library search, better event listings, rail departure info, real-time tram info, etc… But to get all this, I need help:

This is just a soft launch, for me the killer app will be real time tram info, but in the mean time – it’s here, and it’s ready to go, for timetabled bus info. I invite feedback!

My Virgin Media nightmare

Published on

So, I have a very confusing, and very frustrating, problem with Virgin Media.

Here’s the background – I signed up to my account at my current address in October 2010, for activation in November 2010. The engineers arrived, installed it, and it was all good for a few weeks, until I started having problems with my connection stability – apparently due to high power levels, when an engineer came round and changed the splitter between my modem and V+ box. Since then, the service has been flawless.

Now, I’m moving to Eccles to start work at MediaCityUK in September, so I rang up Virgin Media to organise moving my service – I’m still within my 12 month minimum contract with Virgin until November, so it seemed the most sensible thing to do. So I rang up the ‘150’ customer services number on the 15th August and organised a house move, to be told that my new property can’t receive the cable broadband service.

Now, Virgin Media have (from my experience) a very poor database for postcodes. My parents’ postcode wasn’t on their system (back when they were Telewest), but I insisted they sent an engineer out, and they did, and surprise surprise, they could get the cable broadband. My current address was down on their database as in a cabled area, but “unservicable”, but they agreed to send a “spotter” out (as the ground floor flat on the same postcode could) and, surprise surprise, I could get the broadband after all. Now, after being told I couldn’t get cable at my new address, I typed some surrounding postcodes into their online checker, and they all could get the cable service. So I asked for a spotter to be sent out, the call centre man agreed, and the next day, I had a phone call telling me my new address definitely wasn’t capable of receiving the cable service. I was disappointed, but went ahead with the move anyway, and the spotter organised it over the phone with me. (At about the same time, I tweeted about it, got a reply, and e-mailed the ‘cablemystreet’ address).

So, the house move (as far as I was aware) was set up, and I got some confirmation e-mails about setting up at my new house, and was told an engineer was coming out to set up the new address on the 5th September, and that my current address would be disconnected on the 3rd. At this point, I’m pretty happy – I can’t get the 50 Mbits broadband, but that’s not their fault – and they’re managing to get me connected 3 days after I move in, which is pretty speedy in my knowledge.

Then, on the 24th August, I come home from work to engage in one of my guilty pleasures – fish and chips on the sofa in front of Stargate SG-1 on Sky 2. Only, when I turned on the TV, the V+ box wouldn’t tune to Sky 2. I’m not subscribed to this channel, it tells me. The TV guide function tells me I’m not subscribed to many channels at all – only the ‘free’ channels that are provided on Freeview anyway are provided. So, I pick up the phone and give 150 a call, thinking it’s a technical fault. I’m on hold for a while, and get through to the technical team. I’m told that because I’ve not paid my bill, my account’s been restricted, and that I have to be transferred to the billing department to solve it. Now, this is odd, as I have a Direct Debit set up… So I’m through to the billing team, who tells me because I moved out of my property without telling them, my account’s been marked as a “gone away”. I assure him that not only did I tell them I’ll be moving in two weeks time, that I’m currently sat in the property they think I don’t live in, watching the message on the TV that is deactivated. We’re both confused, and I’m put on hold for a while. The guy gets back to me and tells me what appears to have happened – the guy who sorted out my house move marked my current account as terminated, but didn’t put a termination date on it. He’s also not put a reference to my new Eccles account on the old one. Then, the guy who’s moving in to this property in 2 months time has placed an order on the web. As they’ve received a new order, and my account is marked as “pending termination”, they assume I’ve gone away, and terminate my account. I’m facepalming right now, and slightly concerned that it appears Virgin Media don’t have a problem with deactivating accounts without even checking if I’m still using it…

Now, even though I rang up about 7.30pm, because I spent so long on hold to technical support, before being put through to billing, it’s now after 8. I’m informed that the relevant team I need to talk to have gone home, and I need to ring back between 8am and 8pm the next day. I’m reassured that I won’t be paying for the service I’m not receiving, and then plan to ring back the next morning.

24th August status
Phone: I have a dialtone, but can only dial 150, although phone calls in still work
TV: I only get the Freeview channels
Internet: No connectivity

The next morning (the 25th now), I get up early so I can ring at 8 first thing (using the 150 number), and then head straight out to work. I get through to customer services, who see the notes left on my account by the guy from the night before. We go through the details of what’s happened again, and I’m put on hold a lot. Eventually, I’m told that my service will be reactivated, and I’ll be back up and running within 4 hours. I’m going to work anyway, so I head out after about 45 minutes on the phone, expecting everything to be working when I get home.

When I get home from work, I find the TV is back up and running, but still no Internet connection, and the phone is now giving me a permanent engaged tone, meaning I can’t even dial 150. This means another phone call to Virgin to find out what’s happening, but this time, it’s going to have to be from the mobile, which is pretty expensive. I spend 30 minutes on the phone to be told that the 4 hours estimate this morning was incorrect, and it should instead have been 24 hours, and that I need to check back in the morning. I’m also told that my old account couldn’t be reactivated, so I now have a new account, with an ‘03’ account number (I’m unsure what that actually means).

25th August status
Phone: I now have a permanent engaged tone, and ringing my phone comes up with a “number not recognised” error
TV: Everything is back!
Internet: Still no connectivity

Now we’re up to Friday, I’m told my reactivation order was put in at 9am on Thursday, so I don’t have a chance to check if it’s working until I go to work. When I return, I find that the situation is now worse – I don’t even have an engaged tone on my phone any more, it’s completely dead. I ring when I get back from work (from my mobile again), but this time, the man offers to ring me back to save my phone bill. When I’m rang back, I am now told that I don’t have a phone line on my account. I’m confused, and the man on the phone puts me on hold. When I get back, he informs me that the person reactivating my account didn’t reactivate my phone line. I facepalm. He puts an order in and tells me it’ll be ready “Sunday or Monday”. He sends “some signals” to my modem, and tells me it’ll be back working in a few hours, and that that part of my account is definitely reactivated, so if I’m having more issues, that it must be a technical fault. A few hours later, I still don’t have the Internet, and I’m now completely exasperated, and give up for the evening.

26th August status
Phone: The line’s completely dead, and attempting to call in comes up with a number not recognised error.
TV: Everything’s still the same
Internet: Still no connectivity, but apparently this part of my account has been reactivated

Saturday! A day of rest, or hours on the phone to Virgin? Unfortunately, the latter. I ring up again and go through to the technical support team. The man who answers sends “some signals” to my modem, and then puts me on hold. He comes back and tells me my modem needs replacing, and it’ll be 3 working days to do so. As this is a bank holiday weekend, that means Thursday. I’m moving out on Friday, and explain that it’s nonsense to bother with this, and there’s really no point to send it out. The man tells me I don’t have a choice, and I have to be sent a new modem. I facepalm and give up. I ask if he can check on the phone line problems and he reassures me that everything’s due to be reactivated when the engineer comes to visit on October 6th. I’m facepalming even more now, and tell him that this is even more nonsense. I’m fairly sure he’s fed up with me at this point, and he offers to transfer me to the transfers team. I end up there, and the woman starts going through setting up my house move. I explain that the house move should already be set up, but she can’t find it on the system and asks for my account number (which I have in an e-mail I can’t read as I have no Internet). I then mention it’s an ADSL order, and she finds it. Apparently they’re different systems. We’re now confused as to why we’re speaking to each other, and I’m told she can’t help me, so I’m transferred back to technical support. I explain the situation and how it’s pointless to send me a new modem. He agrees! He has a look at my account and is confused. He explains that my modem is ignoring “the signals” and he needs to figure out why. I suggest it’s because my account number has changed. I’m then put on hold as he goes to second line support. He comes back, and asks me to reboot my modem. The Internet is back! It’s a shame someone couldn’t have done that in the first place.

I’m now transferred to the telecoms team to sort out my phone. I’m told that I’m not having any technical problems, it’s just that my account hasn’t been activated yet, and I haven’t had a phone line installed. I’m told that the phone number I’ve been giving isn’t recognised, and my phone number is something else completely. I explain that I’m very unhappy my phone number’s been changed and no-one’s told me. I’m then told the reason it’s taking so long is because my phone number was previously assigned to a different customer, and that the work order was booked for October anyway. I explain that that’s not very useful, and go through the situation again. The guy sounds confused, and tells me that he has to talk to the transfers team, and that I’ll be phoned back within 60 minutes. Three hours later, after hearing nothing from Virgin, I ring back and am told my phoneline should be live again within 24 hours.

27th August status
Phone: The line’s completely dead, and attempting to call in comes up with a number not recognised error.
TV: Everything’s still the same
Internet: Back up and running!

And now it’s Sunday. It’s 23 hours since I last rang about my phone line, and it’s still dead. I must say my confidence in it coming back in the next hour is low.

So here’s where I stand:

Virgin – what I’d really like to see in your customer service is the following:

Testing i18n in Django for the Molly Project

Published on

This was originally published on the Mobile Oxford Tech blog

Here in the Mobile Oxford team, we’ve been working with the team at Bangor University to help get the Molly Project, the open source project which grew from Mobile Oxford’s code base, ready to be translated into multiple languages (in Bangor’s case – Welsh!).

As Molly is a Django project, we can use Django’s extensive i18n framework to do most of the work for us, however, this does rely on us marking up the text for translation. When it comes to testing i18n, we needed a quick way of generating a test language file for us to drop in to check we’ve caught all of the strings that need to be translated.

Inspired by Richard Mitchell at Isotoma, who suggested using upside down English to test for Unicode bugs, we decided that testing i18n using upside-down English makes the most sense for us. And so, I wrote a script which did this. It ignores formatting strings and inside HTML, but everything else gets inverted using the lookup table defined at the top. We used this as we marked up each app in a feedback loop to make sure everything is marked up, and I think we got everything.

Data from external services (e.g., the library) isn’t translated, but where our data sources (e.g., the OpenStreetMap planet.osm dumps and the NaPTAN) do contain multi-lingual data, this is now imported into our database and tagged as the correct language, and where the data exists, it means you’ll see it in different languages!

However, we did find a few gotchas with Django’s i18n. First of all, there’s a fairly major bug in Django’s makemessages function, which means that the output of makemessages for JavaScript is unreliable as to whether or not we caught all the strings. The only real alternative is to generate a .po file by hand, however we cheated by creating a ‘dummy.js’ file which manually contains all the JS scripts, to make sure they’re found. However, this does mean we have to update this file every time we add a new string, which is a pain.

We’ve no plans to launch multiple languages on Mobile Oxford at the moment, but this is perhaps something we can look at in the future – translating the site into multiple languages to make it more useful for tourists to the city!

Trackernet and the NaPTAN

Published on

At work I’ve been playing around with the TfL TrackerNet API to add real-time tube departure information to the Molly Project, in a similar way to how we provide real-time bus information from Oxontime.

The biggest problem I came across was the fact there’s no mapping (at least, I couldn’t find one – someone may now comment and show me I wasted an hour of work this afternoon) between the NaPTAN and the station and line codes that TrackerNet wants for its detailed predication API. So I had to go make one.

So if anyone wants a prepopulated Python dictionary mapping ATCO identifiers to lists of tuples of line codes and station codes, save yourself some pain and just use the one I just made (under the Academic Free License):