Books Read In 2014

It’s that time of year again. I don’t think I’m going to finish The Lovely Bones before Thursday so this is my list of books for 2014.

I ended up abandoning Homicide – A Year on the Killing Streets, the book that The Wire is based on, about half way in. It was alright but reading about Baltimore’s crime problems in a hammock in Costa Rica didn’t feel right. I also tried to read Naked Lunch but couldn’t get more than a couple of chapters into it.

My favourites of the year were Lucifer’s Hammer and The Martian – strangely enough both sci fi.

  1. Masters of Doom – David Kushner
  2. Life On Air – David Attenborough
  3. The Ocean at the End of the Lane – Neil Gaiman
  4. MaddAddam – Margaret Atwood
  5. On The Road – Jack Kerouac
  6. Into the Wild – Jon Krakauer
  7. The Returned – Jason Mott
  8. The Adventures of Tom Sawyer – Mark Twain
  9. The Fall of Moondust – Arthur C. Clarke
  10. Lucifer’s Hammer – Larry Niven and Jerry Pournelle
  11. Death in a Northern Town – Peter Mckeirmen
  12. Lair – James Herbert
  13. The Cipher – Kathe Koja
  14. A Journey to the Centre of the Earth – Jules Verne
  15. The Incredible Human Journey – Alice Roberts
  16. To Kill A Mockingbird – Harper Lee
  17. Twelve Years a Slave – Solomon Northup
  18. The Plague – Albert Camus
  19. The Haunting of Hill House – Shirley Jackson
  20. The Martian – Andy Weir
  21. The Fall – Guillermo Del Toro and Chuck Hogan
  22. On The Beach – Nevil Shute Norway
  23. The Forever War – Joe Haldeman
  24. Caves of Steel – Issac Asimov
  25. Horns – Joe Hill

Ada Lovelace day at SCHS

There is a severe lack of women in the technology industry. Very few programmers are women and very few women hold senior positions in technology companies. This is a problem because technology is shaping the way we live and women risk being left out of the conversation.

Ada Lovelace was the world’s first computer programme. Ada Lovelace day takes place every year on 14th October to celebrate women in STEM (Science, Technology, Engineering and Mathematics) and encourage women and girls to choose this path. I took part in an event last week at Streatham and Clapham High School, an all girls school in London, to show the students some things you can do with code.

I decided early on that I wanted to do something with the APIs (Application Programming Interfaces) provided by websites like Facebook and Instagram to show how we can use our own data and that of our friends. After a lot of preparation, time, refinement and help from some great volunteers I managed to get an hour long introduction to programming session ready to go.

At work I’ve fallen into the role of main Javascript trainer. Most of our developers are Java guys so I train people of all skill levels and I’m often training with years more programming experience than I have. However, even with that the idea of teaching a group of teenagers was frightening. They’re far more unpredictable than your average dev.

I was scheduled to run the session for two different groups – one 15-16 year olds and one for 17-18 year olds. The younger group came in first. I hadn’t had enough time to set up all the computers with the skeleton code I’d prepared so I naively asked the kids to copy it from the network drive and open it on their machine. Lots of them opened it on the shared drive which caused lots of confusion. I also realised quite early on that we weren’t going to cover nearly as much as I had planned so I had to do a bit of on the fly rejigging to make sure we got to the big pay off of using their own pictures.

I managed to set up the computers for the second session so it went a lot better. We managed to cover a bit more and the kids seemed calmer, more relaxed and more attentive.

I don’t know if I managed to encourage anyone to learn to code. There were definitely some kids there that picked it up quickly and were helping others. Programming is a difficult thing to teach in an hour. At the start it’s weird, difficult and frustrating but once you get over the first few hurdles it becomes a wonderful skill to possess. It’s still weird, difficult and frustrating but the things you can do with it are amazing.

Before the day started I would have said I wouldn’t want to do it again. The preparation work alone was pretty full on. However after the second session I could still see lots of improvements that I could make to my presenting style and the material being taught. I almost feel like it would be a waste to not try and build on what I’ve learnt. If the school asks me back next year then I’d certainly say yes.



M363 and M364 post mortem

Almost two weeks ago now I finally finished the two OU modules I’ve been suffering with for a good portion of 2014. I wrote back in April about the quality of level 3 computing modules and my opinions only hardened as I slogged away at the work. A few months after that last blog post I even considered packing it all in as I wasn’t really learning anything useful and studying two level 3 courses concurrently meant that my time was being wiped out. Luckily I got some advice and decided to stick with it. I’ve now just got one more module and my final project to complete.

M363 sounds like it should be cool. It’s user friendly name is Software engineering with objects. It ended up being 6 months of UML diagrams and requirements analysis followed by a couple of months on managerial techniques, basic QA and stuff like estimating how long a project might take. I can’t remember writing any code which is pretty shit for a module called Software Engineering with Objects.

The exam ended up being relatively easy to revise for. I felt confident going in and think I did pretty well. Annoyingly I didn’t do well enough in the assignments to get a first overall even if I aced the exam but I’m pretty sure I’ve got a 2:1.

M364 is a module focusing on Interaction Design. I think there was definitely some interesting material in there somewhere but it ended up being lost in the huge amounts of reading. The OU supply you with a copy of the book Interaction Design: beyond human computer interaction which is an 800 page beast that could easily be distilled down into less than half of that.

The marking for the assignments I think suffered from the inherent subjectivity of the course. Analysing websites and interactive products based on their usability and user experience can lead to lots of opinions being thrown around – some you can back up and some you can’t. This lead to some varied marks. I got as low as 75% and as high as 98% on my assignments.

The exam is where things got very annoying though. The course is filled with lists of things – usability goals, user experience goals,  Hofstede’s cultural dimensions, evaluation methods with their advantages and disadvantages. I’m not fantastic at remembering lists of words – I prefer getting my head around concepts. I did four past papers in preparation and in every one they managed to find a new list of things for you to regurgitate. Sometimes that list was mentioned just once in the course book’s 800 pages.

I don’t think I did very well in the exam but because of its subjective nature it’s hard to tell. I’ll find out in December.

Luckily the OU is refreshing its level 3 courses over the next few years so hopefully these modules will be retired or re-written.



A Disappointing Way To End An OU Computing Degree

I’ve been doing an Open University degree in Computing for the past 4 years now. It’s definitely had its ups (writing my first line of code, introducing me to Java) and downs (that team working module) but on the most part it’s been pretty interesting and I’ve been happy with most modules I’ve done. In fact, after doing three modules of Java I got myself a job writing Java full time.

The problem is that fact that the quality of the module choices drops off dramatically at level 3. Last year I did the only module that sounded interesting and had decent reviews (Developing Concurrent, Distributed Systems) which was dated but still useful.

This has left me with a pretty poor choice this year. I’ve ended up doing The Fundamentals of Interaction Design which is a six year old course that feels dated and any useful material is lost in the plentiful, dry reading. I’m also doing Software Engineering With Objects that is just a lesson in UML and actually just seems to be rehashing material from a module I did last year.

I think I’m just disappointed because I expected level 3 modules to cover more meaty subjects as the level 2 ones had laid down a good foundation of language skills. We could be writing a compiler to better understand what’s going on when we hit build or building a game engine with basic physics and AI. I know that’s all stuff you can learn independently but so it everything else on the course so why not offer advanced students something a bit more computer sciencey.

It also doesn’t help that these two modules still take up a good chunk of my time. I’d rather be doing something a bit more interesting like learning Angular.js or building something with an Arduino.

After these I have one more proper module, Algorithms, data structures and compatibility (using Python) which actually sounds pretty fun, and then it’s final project time.


Good Energy

After over two years of renovating our house my girlfriend Jordan and I finally moved in at the start of December. There’s still an enormous list of things that need to be done but I’ve just finished sorting out something I’ve been thinking about for a while.

As always at winter there’s been a lot talk in the news about energy companies and price rises. Luckily at the moment price isn’t an huge issue for me (although I’d obviously prefer prices not to rise much more for everyone’s sake) but being a bit eco I’m concerned about how the energy I use is produced. I like to have a warm house too much and have far too many electrical devices each sucking up lots of electricity for me to think seriously consider using less energy so having the energy I use produced from renewable sources seems to be the way to go.

At first I started looking at Ecotricity. When I checked their website they were claiming that 80% or thereabouts of their energy was produced from renewable sources. I’ve just checked now and they are saying it’s 100%. The other big green energy supplier, Good Energy, was claiming 100% back in October when I first looked so that’s who I signed up with. I was also recommended by a friend so we both ended up with around £50 credit from their recommend a friend scheme. Their prices are a little lower than the big six suppliers I’ve checked against and they didn’t raise their prices this winter.

The switching process has been a bit of a ball ache all in all. I phoned up and requested a switch over sometime in October. I didn’t receive the direct debit forms so had to phone up and get them to send them out. We then received letters with provisional switchover dates saying direct debit would be taken for gas would start in January and electricity would be in February. In January both direct debits came out and when I called about it they said they’d been supplying our electricity since December and they had taken an estimated meter reading to determine what we owed e-on. It’s a bit rubbish for a company to take money before they say they will. If I hadn’t had enough in that account I would have been charged. Apparently they reckon they had a new letter generation system but in in November and have been having problems with that but I’m sure that’s what companies always say!

So overall the switching process was rubbish but hopefully things will be better now. At least now I don’t have to feel guilty about only half watching a program on my big TV and surround sound while I dick around on my laptop.

New Years Resolutions

Happy new year!

I don’t usually bother with new years resolutions. Most are doomed to failure and I’m not usually the most committed person when it comes to doing things I don’t want to do or not doing things I want to. This year though I’ve got a couple of things that I actually really want to do so I’m hoping I should be more successful. I should also hopefully have a bit more free time as the big project of renovating the house I bought in 2011 is finally over.

The first one is to program more in my own time. I got a job as a developer in November 2012 so I do spend five days a week programming. I’m also lucky enough that my team gets to work on some really interesting projects so I do get a lot of variation in my day job.

The reason I want to work on more projects at home is to do stuff that’s completely different like simple games or use tools I don’t get to use at work. For example we use use the Javascript framework Dojo at work instead of JQuery. This means my knowledge of JQuery is woefully inadequate. When I come to looking for another job this is going to really harm my chances. The last reason is that I don’t really have many examples of my code on the web. Again when I’m looking for another job this is going to bite me in the arse. Checking a candidate’s Github page is pretty standard practice when recruiting a developer I imagine.

I’m hoping that doing small achievable projects will mean I’ll actually finish things and keep my interested. Now I need to just think of something (suggestions welcome!).

My other resolution is to blog more. I hardly posted anything last year and very little the year before. I should have been writing about my experiences working on my Open University degree or technologies we’re using at work. Writing about stuff tends to solidify knowledge so I’m sure it would help with work and studying. Again this should help my chances when looking to move jobs as my blog comes up as one of the first results when you Google my name. Hopefully if my first resolution works out then the projects will give me material to blog about.

Anyway, here’s to a good one!

Books read in 2013

I didn’t read nearly as many books this year as in previous years. This was mainly due to reading all of the remaining A Song of Fire and Ice books back to back. I also read all of the Douglas Adams Hitchhikers books that I hadn’t read.

Probably one of my favourite books of the year was Metamorphosis by Franz Kafka. It was very weird but very fun. I wasn’t too fussed with The Trial by him though. I also really enjoyed The Outsider by Albert Camus. As a huge Cure fan it’s surprising that it has taken me this long to read it.

An honorary mention for most disturbing book of the year goes to The Girl Next Door by Jack Ketchum. It wasn’t a very fun read at all. It was made worse by it being based on a true story.

  1. I Am Legend by Richard Matheson
  2. The Restaurant At The End Of The Universe by Dougas Adams
  3. Life, the Universe and Everything by Dougas Adams
  4. So Long, and Thanks for All the Fish by Dougas Adams
  5. Mostly Harmless by Dougas Adams
  6. Metamorphosis by Franz Kafka
  7. With a Little Help by Cory Doctorow
  8. Around the World in 80 Days by Jules Vern
  9. The Last Policeman by Ben H. Winters
  10. The Player of Games by Iain M. Banks
  11. The Trial by Franz Kafka
  12. A Clash of Kings by George R. R. Martin
  13. A Storm of Swords by George R. R. Martin
  14. A Feast for Crows by George R. R. Martin
  15. A Dance With Dragons by George R. R. Martin
  16. The Postman by David Brin
  17. The Girl Next Door by Jack Ketchum
  18. The Turn of the Screw by Henry James
  19. The Hunger Games by Suzanne Collins
  20. The Outsider by Albert Camus
  21. The Strain by Guillermo Del Toro and Chuck Hogan

Living in the future

A few years ago I was walking home from work and as I walked through the front door I thought to myself ‘wouldn’t it be really cool if I could continue listening to the song I was listening to on my iPhone on the stereo in the house as I walked through the door?’

Well, today I walked home listening to music on my phone through my headphones. I walked through the door and swapped the output from headphones to the stereo in the kitchen. I made some toast and then changed the output to the stereo in the living room and sat down to write this. The music didn’t stop once.

Isn’t living in the future grand?

Pacific Rim review

I’ve just got back from watching Pacific Rim and I felt the need to put down some thoughts.

If you’re looking for an unbiased opinion on this film then you’re not likely to find one here. I’ve been a fan of giant robots and monsters my whole life. I grew up watching Transformers, Ultraman, Power Rangers, Godzilla, Gunbuster, Guyver (not quite giant and not quite a robot), etc. I’m also a huge fan of Guillermo del Toro. I think he’s one of most talented directors working today. I love how he’s as at home making big Hollywood movies (Hellboy) as he is making his small Spanish films (Pans Labyrinth, Devil’s Backbone). His big movies still have the same atmosphere, character development and look as his smaller ones.

So you won’t be surprised to learn that I absolutely loved Pacific Rim. It’s a love song to Japanese monster movies like Godzilla, mecha anime and I like to think there’s a fair amount of influence from everyone’s favourite 80s movie Robot Jox. The film gets straight to the point but manages to not feel like two hours of brain dead violence. The characters are likeable and nicely developed. Even the two doctors (the comic relief characters) come across well.

The monster/robot fight sequences are really something. There are some really crazy moments that had me laughing out loud. The fact there are two pilots in each robot gives a dose of camaraderie and humanity so it’s not ‘just’ a robot and a monster beating the shit out of each other.

It’s great to see a big hollywood movie that’s not backed by a soft rock soundtrack by bands like Nickelback. There are very few big actors, no product placement, no romantic subplot and definitely no US army recruitment propaganda as seen in Michael Bay’s Transformers movies. I’m glad to see it’s managed to do pretty well at the box office. Hopefully it’ll get a better result next week due to good word of mouth. Obviously all you are going to see it right?

Unfortunately I had to go to a 3D showing as there weren’t any convenient 2D ones. I still dislike 3D. It’s distracting, it makes the picture dark and confuses things when there’s a lot of fast action on screen. I’m tempted to go again in 2D to get the most out of it.

Make sure you show support and see it at the cinema. If Pacific Rim is  success then Guillermo del Toro will be given the freedom to work on more projects like this which is definitely a good thing. Oh, there’s also the voice of Portal’s GlaDos for that little extra nerd-on.

My first WTF

A couple of months ago I managed to get myself a new job as a programmer. It was a pretty great feeling achieving what I had been working towards for the past three years. I’m a couple of months in and I’m starting to get the hang of things and feel more comfortable. However, it’s quite a shock to the system going from the nice, well thought out examples of code seen in textbooks and blog posts to a giant code base  filled with fixes, patches and rushed code.

The culprit that made me write this post was a real corker. Whenever anyone checks in code changes all of the tests are run automatically so everyone can see if the changes broke anything. If a test fails after you’ve changed something then you generally know that you’ve done something wrong. I say generally because today I checked in some changes and was faced with a failing test in a completely unrelated project. It’s a horrible feeling seeing your name next to a bright red test failure.

So I went to investigate the test. It didn’t look like it used anything I changed but you never know. The test was checking some date validation. A date is valid if it’s between 90 days old and 90 days in the future. The test expected the result to be valid however it was using a hard coded date as input. The input date was valid yesterday but today was over 90 days on. This meant that the test would fail at least every 180 days unless someone changed the hardcoded date. It also meant that the sap who happened to check in code the day the test date was suddenly invalid was blamed for the test failure!

I did what any self respecting programmer would and fixed the test to use the current date as a seed and then wrote more tests to check 90 days before and after the seed date as well as the other boundary values.

So today I learnt that wild code is very different from textbook code.