Sunday, 7 August 2011

Young Rewired State 2011

Last week I attended Young Rewired State – a week long event for young coders to “hack” government data. Fourteen groups across the country consisting of developers assisted by mentors created some sort of web site or application using at least one set of government data.

I was supposed to be mentoring at an event in Reading as QA Apprenticeships (my employer) were sponsoring the event. This didn't come off, but I did attend the final afternoon – a show and tell event held at Microsoft in Victoria. Apart from the hassle of going into London on a hot day and the event going on a bit (there were lots of two and four minute presentations due to the number of people), I found some of the presentations showed some creativity and a few technically impressed.

The ones that stood out to me were:

Urbani – Pedestrian Heat Map

This was by a team in Guildford showing the busiest pedestrian areas in London. Promoted by the team for people to avoid the Olympics (interesting idea to concentrate on the negative!) but generally to allow people to get to where you want to go efficiently. I was unsure of this one as it had people transmit their locations using their mobile devices (the assumption being it would be anonymous) but I am sure that ways of approximating this information, e.g. mobile operator’s data for how many phones registered at each mast.

Not sure this team actually really used government data, but the heat maps looked interesting. I think that this app reached out to me because a visit to London can be quite stressful (it took me nearly an hour on the tube from Victoria to Paddington – could have walked it quicker!).

Train projects – Where’s my train? and TrainTrackr

These two projects were similar (but different) dealing with live information for train arrivals, departures and punctuality. The latter project uses the iPhones inbuilt location information to track your journey and the former tries to use the National Rail enquiries information. Visually they were great, although I've been a First Great Western train where on the seats with the small TV’s on the seat front had a train tracker (for the train your are on) which showed you where you were.

I think a couple of major points were made by the teams – firstly the definition of late used by the train operators may differ from what they think late is. And secondly that the data from National Rail wasn’t that easy to use – I would have hoped that you could at least of got hold of train routes, timetables and exact arrival/departure times at each station. Some nice static data you can manipulate. But no, I looked – the Office of Rail Regulation gives access to statistics. But they are trends and calculated from the data. I couldn't find it – although I’ll keep looking.

Where’s My Train won the "Best example of Coding prize" and TrainTrackr won the "Best Mobile prize" and Urbani the "Most Likely to be bought" prize.

I won’t call them negatives, more not totally positive points in my observance of the event.

There were a lot of Apple MacBook devices around being used for development. I'm probably a little biased having developed on Unix and Windows for all my working life, although I know of one friend who does all him development on Apple kit (although then hosted in a Linux environment). Maybe Apple should get into server technologies allowing you to build, test and host in the same environment.

You could see the talent on display – there were a number of very confident individuals presenting with thorough belief in their abilities and the code they have produced. But how do we get them into industry.

There are two points I can make here. Some of the youngsters I have trained in the QA apprenticeship and those on display at YRS are talented. The problem (and this is a good problem to have) is how to help these confident people on moving from the self taught programming skills to professionally deliver but at the same time handling the confidence that can sometimes come over as arrogance (believe me a problem levelled at me over the last 20 years!). Any sort of advice given can sometimes be seen as criticism.

Linking to this is my second point. QA and I were there to promote and discuss apprenticeships with those people attending. We offer software development apprenticeships to young people – to get them into the industry. QA gave a presentation that I think was very positive – we currently have vacancies with employers to fill for the group I am training starting next month. One point made was that going to university isn't about getting a job – although, I know when I went to do a degree it was definitely to get a job. There was a little negative twitter reaction, I think mostly from the most confident developers. It could just be the word apprenticeship that is off putting to some of the talented developers – they want the big bucks and they want it now!

The point is how do we get these people into jobs? There was a judge who talked about start ups and private equity, and I have no doubt some of these developers could (and may) go down that route. One of my best friends started up a business whilst doing a degree (which I ended up working for) – and he took that risk and it worked for him - it doesn't always. However, that route isn't available for everyone, nor right for everyone. An entrepreneur is a special or different type of person. I wish I had an opportunity when I was younger, I think I had the abilities, but my finances didn't allow me to take this route (and I possibly wasn't experienced or brave enough).

The other options that I see are university, degree and a graduate programme (you don’t get a lot of software development training or experience on a computing degree), finding an employer who is willing to invest in that individual. Or via a route like a work based (i.e. employed) apprenticeship.

It was quite fun to watch some of these project presentations – a number were predictable (trains tracking, university searching, broadband availability, NHS, Solar) and some were unique (MoodMap, Lifestyle, Snackomics, Beachwall).  And the teams seemed to have worked hard (and have been pizza filled). As a C# developer I would have liked to have seen more development on display, but quite difficult in a presentation of two minutes!

Sunday, 20 February 2011

Wallingford Regatta Duck

This is the programme cover for Wallingford Regatta 50 years ago in 1961 was sent to me the other day by one of the chief umpires at the Wallingford Rowing Club events and I thought I would share it with you.


There seems to be quite a few "assistants" and the committee room seems to be the place to be!!

We have had our first two regatta meetings for this years event at Dorney in May and one of the discussion points is the duck. What do I mean by duck? In 1999 (a few years before Wallingford Regatta moved to Dorney) one of our club rowers took over the production of the programme. It had up until that point been a A3 cardboard fold out type of programme and we decided that we wanted to improve it. It is especially relevant as we were moving to a 2 day event and the amount of information was increasing. He owned a publishing company (that I incidentally joined in 2000 as Software Development Manager!) and the art and design manager (who was also a rower and cox) put a duck on the front of the programme. It was quite distinctive.

Ever since then myself (who was entries secretary at the time - and thus responsible for the timetable and draw information), the event secretary and the staffing manager (aka the Haycocks) thought about a themed duck. Here are some of them (there is also a "winter" duck that we used for one of the heads). We generally try to theme it about something happening (e.g. Olympic announcement, Queen's diamond jubilee or the election), but also things around our own lives (e.g. it was snowing in February 2008 when we were thinking about that years duck, or how people grow up and families come along!).This years duck has been decided and is being designed this week. It will be revealed just before the regatta (but shouldn't be that hard to guess).:

"Bald" duck (1999)
"Summer" duck (2000)













"Cox" duck (2001)
"Golden jubilee" duck (2002)






















"Car" duck (2005)
"Olympic" duck (2006)










60 years of WRC (2007)
"Ski" duck (2008)












"Medal" duck (2009)

"Election" duck (2010)





















2009 Regatta Programme

Friday, 21 January 2011

My first computing steps

Part of the job hunting and interview process seems to be to go back to the start of your career - even though I have been in the industry 20 years someone always asks how did you get started? And do you have the same drive. It isn't something I really thought about before going into an interview a few months ago. Thinking about your degree and your first jobs. It was just something you have done. But you do get asked.

I  was thinking the other day of my first computer - which was a Commodore VIC 20, around 1983 (age 14 or 15). It was interesting reading the Wikipedia article about the computer - built on a shoe string and always seem to be compromising. When the computer was first released it had a retail price of around $300, which was around £150 at the time (not including add ons) - which would be in today's money around £377 (by retail price index) or £555 (by average earnings) - source www.measuringworth.com. I also think I had two VIC-20's after one failed, so I can only thank my parents for investing in these.

The computer had 5K of memory, of which you had access to 3.5k and the processor was running at 1MHz and the screen was 22 characters by 23 lines. But it did have a real keyboard. The Sinclair Spectrum (and ZX80/81) had poor keyboards, and whilst I think the Spectrum was more popular, I think I was more interested in the programming part.

I did write a program that was published - in "Your Computer" magazine in August 1985. So not only did I have a computer I spent loads on computer magazines. When you look back at the program it had to be loaded from tape each time I started the computer (so imagine if you are working on something and the PC crashes).  The program reprogrammed most of the keys on the keyboard so that you can get keywords to come out (one touch). This was a big thing on the Spectrum.

It is a shame when they published it they didn't proof read the copy material!


(Sorry for the poor quality - it is a photo of the program, rather than a scan)

Best thing was that I got paid £35 for the program!

At school their was a computer club run in lunchtime where we used HP computers. These had thermal printout paper and one line dot-matrix display whilst you type in your program. Fortunately they had tape drives for them - a few years (possibly only two years earlier) the people using them had to put the programs on cards which were then read by special (noisy) readers.

But what stood out at school was the one BBC Micro they had. I think the teachers were also trying to get into computers as well, so the kids didn't get near it. But they wrote programs on it to bounce a ball from side to side on the monitor.

I was watching a documentary series last year where a family was taken back to the 60's, 70's, 80's and 90's to see the difference in things like food, cars and technology. What I found striking was that the family was given a BBC micro that they set-up themselves (and also had the family arguing about using the television to use it). And then they went to program it. Whilst children now are so computer literate - superb mouse skills, good thinking, creating pictures, most it if is also down to good software and good teaching.

But what they don't do is write any programs for the computer. Even if it is typing the command to make it good "Beep" up to programs with graphics. I think that this is a shame as it teaches you about logic, decisions and makes your think. Especially when you have so little memory to play with.

Sunday, 2 January 2011

Testing a website before DNS has propogated

One of my resolutions (I don't have many) is to write some more technical posts. After having a year off real technical work and focusing my direction on house refurbishment and reducing my golf handicap, I am now looking for a suitable new position seriously since around September. I took on the building of a website based on a database I created a while ago (more on that once I have got it officially launched).

The problem that I have was I commissioned a new server using Amazon Web Services (see the previous post) and I could test using the IP address. One of the (minor) issues I have found so far with AWS is that you only get one IP address per instance - you don't have the option of purchasing any more. If you want more IP addresses you need more instances - which means paying more.

To host multiple sites on the one instance means using host headers if you want to host multiple sites.

The other problem that I had was I used the IP address which was assigned to the box and then modified my DNS entries for the domains. Then I setup an Elastic IP address. This is an IP address which is assigned to my account that I can then relate to a server instance. As soon as you setup this IP address the original IP address is lost! This meant I had to change the DNS again!

But I wanted to test the servers as quickly as possible. I can be impatient.

I have used the solution below before. When I worked at GTI we hosted sites in our own network centre. Every site was located on at least two servers and associated with it's (real/internal) IP address (on the private network). When we deployed the site we would setup some temporary (real/internal) IP addresses and check things would work. We could do this over the private network. However, this created issues if any URL's were hardcoded - and also if we were using SSL certificates.

The solution (for testing purposes) is to modify the hosts.txt file on your own computer. This is located in the directory c:\windows\system32\drivers\etc.

hosts.txt file


In this file you can add an entry for new sites that you can then test - either until DNS propagates or on a longer term basis, e.g. unless someone knows the URL (and IP address) and implements the same method on their PC then access to that site from your server will be quite difficult (this is known as "security through obscurity", and therefore should not be relied upon for anything really confidential!).

I also use this to occasionally test sites on my local computer.

Few caveats

  • Remember to remove entries afterwards. Otherwise you will be browsing for a site and getting the wrong one.
  • If you have already browsed to the site, you then need to exit your browser and start a new one in order for it to be picked up. (And with Firefox you might need to stop all browser instances - and check using task manager).