Author Archive for Michael

Legacy code is for Learning

Just attended the keynote at RailsConf Europe to hear David Heinemeier Hansson talking about Legacy code - code that you or someone else wrote a while back that isn’t, well, isn’t quite up to the standards you’d now expect to see - and how to avoid frustration working with legacy code.

It doesn’t sound like a particular exciting topic, and in truth, it’s not, but one excellent point to come out of it is the benefit of refactoring and improving old crufty code, rather than succumbing to the temptation to re-write it from scratch.

From a learning point-of-view, this was really interesting. I’ve often looked at a few of the earlier Django apps that I created a few years ago now and thought how I’d like to re-write them to apply all the things I’ve learned in the past few years, not thinking about the fact that it’s not only more sustainable, but also more beneficial to refactor the code bit-by-bit instead. I think it simply comes down to the fact that refactoring encourages continuous learning and improvement, rather than the dubious idea of “I’ll get it perfect next time round” (which will never happen). Of course, there are other factors too, for example, refactoring causes you to constantly think about loose coupling of your code, better encapsulation and stresses the importance of thorough test coverage, etc.

And I think it’s a principle that translates into other spheres of learning too - how often do you hear people expressing something like “I’ll get it right next time round” with respect to new relationships or company ventures rather than working to improve the current situation (where possible).

Speaking of Rails: I’ve been having a great time using the Rails framework over the past six months while developing with the Twinity.com team, but having come from a Python/Django development background there are definitely some things that I miss when I switch between the two (on both sides). I’m hoping to find the time soon to post some “Django & Rails: Can Django/Rails do X” posts.

Five tips for flying with kids

Walking to the SiegesaeuleLast Sunday evening we arrived in Berlin after 34 hours of airports and airplanes… here’s what I learned:

  1. Just because you’ve got five tickets and can take five pieces of hand luggage doesn’t mean you should use them all. But, the flip-side of this is that you’ll definitely have your hand luggage at the end of your trip (our check-in luggage didn’t get on the connecting plane with us in London).
  2. Always let people who happen to be sitting beneath your “Kids entertainment” bag (that you access every few hours) know when you’re going to drop their laptop on their head (or they tend to get a little bit upset),
  3. The death-stares that seem to be directed at you and your screaming baby during the “night” section of the trip are really a sign of affection - people will lie through their teeth tell you afterwards how wonderfully behaved your kids are.
  4. Don’t stand in a queue for a British Airways connection while a bunch of Finnish retirees monopolise one of the two staff who aren’t currently on their lunch break only to be told after 45 minutes of waiting that you (and your family with 3 kids, 5 hand-luggages and two car seats) can make a run for the gate (over a km away) for your plane which is due to board right now.
  5. Family support is a wonderful thing.

(Fran’s written more details of our trip.) Right now I’m just enjoying settling into our temporary accommodation in Charlottenburg, Berlin, visiting some of the sights with the kids (M, E and I climbed to the top of the Siegesaeule - the tower in the photo above) and absorbing the vibe of a foreign city!

Living and learning in Berlin

Berlin by unaciertamiradaIt’s hard for me to believe that in less than four days now I’ll be walking the streets of Berlin with Franzie and the kids. And not just for a holiday but - God willing - to live for the next seven-or-so years.

Already the past two months of preparation have been the biggest project that I’ve managed yet (thanks Basecamp), but with lots of help and support of family on both sides of the globe, everything has fallen into place relatively smoothly. We’ve now got some temporary furnished accommodation in Berlin for the first month right near family.

I feel like I can now appreciate why people talk of “uprooting” when moving overseas - uprooting a tree involves breaking so many of the smaller roots as you rip it out of the ground. I feel as though our lives have had lots of small tears and rips for the past 6 weeks saying goodbye to friends and family… but that is the reality of “uprooting” our family.

Colourful BerlinSo for the next while I’ll be learning to live in a new culture with a relatively new language. My 4-year-old, who likes to correct my German grammatical errors, keeps saying to me: “When we go to Germany Daddy, I’ll help you speak right” - let’s hope we all learn and adjust well! From this Sunday we’ll be spending time with family in Berlin and seeking out some permanent accommodation before our shipped belongings arrive. I’ll be starting work as soon as my visa is processed (4 weeks from arrival) but in the mean-time will enjoy exploring a new colourful city! Please keep in touch!

Working and learning in web development

Last week A List Apart released the results of the Web Design Survey (that some of my class actually took part in):

The attached report shares everything we learned. We offer it freely to this community that has given us so much. For the curious, we also provide an “anonymized” version of the raw data. It contains every answer to every question by every respondent, excluding only personal information—no names, just the facts. Crunch it yourself and tell us what you find.

The survey contains analysed data such as:

  • Perceived relevance of education
  • Perceived age/gender bias
  • Job satisfaction
  • Break down of salaries
  • Hours worked
  • Methods of staying current,
  • etc.

Never before has this kind of data (from over 30,000 respondants) been available… did I say I love working/teaching/learning in this field??

I am redundant

As of today I am on the road to being redundant.

At the start of every semester I give a spiel to new learners in our class about how one of my main aims is to make myself redundant (as a source of web design and development knowledge). Today a few learners in class politely informed me that they’ve already read the articles that I’m posting. They’re connecting with professionals in the industry, finding their own favourite ‘mentors’ and reading their strategies and technical tips because they want to learn.

It’s a great day.