Stack Overflow DevDays London 2009

October 29, 2009

Yesterday was the London leg of the Stack Overflow Dev Days tour, hosted at the Kensington Town Hall. This wasn’t your usual Carsonified conference because its goal was to cover a broad range of technical topics aimed at developers.

Joel started with a talk on Simplicity versus Power … when deciding on features for your product should you go for the 37 Signals approach of doing less? He suggested that the simplicity movement is gaining in popularity because there are more startups around now, and with limited resources they have to start with fewer features. Ultimately though, if you want to keep making sales you need to add features. Joel says you should focus on building elegant software in which there is nothing left to take away (from Antoine De Saint-Exupery). Good features help users achieve their goals; bad features (like unnecessary modal dialog boxes) interrupt users. Joel on unhelpful dialog boxes

Also, give people features they care about (isn’t it ultimately about copying DNA??).

Users don’t like making decisions, so it is much better if you can give them sensible defaults and allow them to undo the action later. Joel gave Amazon’s One-Click ordering as an example; it seems simple but if you have to do without the confirmation dialog you must allow for the user changing their mind later. I remember, after reading Alan Cooper’s “The Essentials of User Interface Design” about 10 years ago, discussing with a colleague why we couldn’t come up with a better approach than the customary “Do you really want to do X? OK/Cancel”. I didn’t manage to persuade him at the time because it’s so much harder to do it properly, and this short cut is so common.

Those were the key points for me. There are write-ups of Joel’s talk from other DevDays here, here and here.

I enjoyed Remy Sharp’s introduction to jQuery, which covered the subject at the right level for me and moved at a good pace. Instead of typing examples as we watched, Remy’s approach was to display slides showing the evolving code with key sections highlighted.

This works much better watching someone talk, then type, then talk some more.

I didn’t get as much out of the mobile presentations as I would have hoped. Reto Meier‘s talk on Android gave a decent introduction on the SDK features, but the coding demo could have been snappier. Pekka Kosonen’s humour and candour were popular with the audience, but I would have liked to see more substantial examples in the Nokia demos of Qt. Phil Nash gave a pretty good introduction to Objective-C (derived from Smalltalk, apparently) and my failure to enjoy this as much as some of the other talks was probably because my head was spinning at the unfamiliar syntax.

Jeff Attwood talked about the Stack Overflow team’s passion for building the best possible thing they can . He also mentioned that while the site has some semblance of being professional, behind the scenes it is actually pretty chaotic.

Failure is always an option To be successful, you have to be prepared to fail pubicly … and to get up on a stage in front of hundreds of people who might laugh at you. Many people are afraid of doing this, so they don’t.* Jeff brandished a well-thumbed copy of Coders at Work, quoting from Joshua Bloch, EricJoe Armstrong, and Douglas Crockford. Joshua Bloch recommends reading the “Elements of Style” which isn’t a book about programming (or is it?); Crockford would rather see programmers get a degree in English than programming.

The last talk I saw was Jon Skeet‘s, ably assisted by Tony the Pony sock puppet. Jon spoke eloquently and entertainingly about the various problems we have created for ourselves (it’s partly the fault of the users, partly the architects, and partly the developers). Architects: partly to blame Examples: representing floating point numbers, reversing and splitting Unicode strings, ambiguous dates, and time zones (e.g. there are two different “CST” time zones in Australia).

There were around 850 people at the Kensington Town Hall; the lecture theatre was packed, and the foyer (where food was served) was too small to accommodate that many people at once. But overall Joel, Jeff and Ryan put on a good show and I enjoyed it.

* If you want to become a better speaker, I can recommend Toastmasters.

Update 30/10: Phil Nash has written about his decision to focus on Objective-C, and the bits he left out of his talk.

Update 3/11: Speaker write-ups from Jon Skeet, Christian Heilmann, and Remy Sharp’s slides.

Training for the Marathon (Six Months To Go)

October 25, 2009

As I mentioned in my previous post, after coming back from Lesotho I signed up* for the Marathon, and am running on behalf of Sentebale. This week I received the Information and Training Booklet which I’m working through. One point that struck me was the list of items that might be purchased with the sponsorship money:

  • £10 for a school uniform (“these last a long time and encourage children to go to school”)
  • £15 for one blanket (“Lesotho gets very cold, especially in the mountains”)
  • £35 for one radiator (“In the winter months these can keep whole families warm”)
  • £60 for one goat (“Animals are very valuable in Lesotho and provide important nutrients for families with milk and meat”)
  • £100 for a bed (“… often shared by whole families so are very important”)
  • £150 puts a child through school for a year

I’m not sure what to expect over the next 6 months. As I haven’t been a regular runner I don’t know how well I’m going to adapt to running long distances, but the uncertainty is part of the excitement of the challenge.

Things I’ve learnt from reading and talking to people so far (in no particular order):

– For longer distances, it’s important to drink not just water, but fluids with salts in, otherwise you can develop hyponatremia.

– “Hitting the wall” at around 20 miles happens because the body is limited in how much glycogen it can store

– Eat 3 hours before a long run, and drink at least an hour before

– Do longer runs off road

Map My Run has a good selection of training runs

– Join a running club in January or February, which will help with the training when it’s cold

– If you’re out for long runs in the cold you will get cold unless you have hat / gloves / running tights

– The Virgin London Marathon web site has a comprehensive section of training advice

– When you reach the finish line, check who’s around you in to make sure you aren’t being passed by a Teletubbie or octogenarian!

I bought some suitable trainers, short and socks yesterday. Watching the video of my feet on the treadmill was interesting … the left foot tends to come down harder than the right. I need to improve on this (e.g. Allow the knees rather than the feet to lead the movement forward.) Improving core strength, with the Plank exercise for example, will mean that it is easier to maintain good balance and therefore use less energy.

I’m going to aim for “getting round” comfortably, which means a 14-16 week schedule 4 times a week. Looking forward to trying out the trainers today.

* If you want to sponsor me, any amount would be welcome.

HIV in Southern Africa: It’s Worse Than You Think

October 2, 2009

Over the weekend I was in Lesotho for my father-in-law’s funeral. Lesotho (pronounced luh-soo-too) is a country of around 2 million people surrounded by South Africa; to get there we flew down to Johannesburg and then on to Maseru, the capital. I wasn’t sure what to expect, but discovered a a ruggedly beautiful country, a small community of  hospitable ex-pats,  and welcoming locals.

Football in Lesotho

The tragedy of this wonderful country is that it is struggling with a very high rate of HIV infection, one of the highest in Africa, and estimated at around 20% of the population; in the 15-40 year old group it is probably closer to 4 out of every 10 people. Average life expectancy is now around 35 years.

The high rate persists for a number of reasons: although condoms are available, young people don’t like wearing them; free HIV tests are available but the stigma associated with HIV means that potential carriers are reluctant to take the test; some believe that since AIDS makes you thin sleeping with a fat person is safe, or that having intercourse with a young virgin will cure you. Unfortunately, I’m not making this up. And since HIV/AIDS suffers usually die from secondary causes such as, e.g., pneumonia or tuberculosis, it is convenient to deny the underlying cause when someone dies.

There are around 400,000 orphans from AIDS; the boys seem to prefer living on the streets than taking up orphanage places, while the orphaned girls who aren’t looked after often become concubines. Africa has a system of extended family where an aunt or uncle will look after children if anything happens to their parents, but with one wage on average supporting 8 people (and a minimum wage of ZAR 900, or around £70, per month) the demand on the income earner becomes too great, and this system breaks down. Antiretroviral drugs are effective only when combined with a proper diet.

As desperate as this situation is,  it’s important to keep trying to get it under control.  Getting assistance to the people that need it is difficult but not impossible. There are numerous organisations working in Lesotho, such as Kick 4 Life (who work with 12-17 year olds through football), the Durham-Lesotho link, and Prince Harry’s charity Sentebale which is working to transform the lives of Lesotho’s orphans and vulnerable children.

I know that money is tight for most of us at the moment, but if you feel like improving someone’s life you may be surprised how much of an impact a contribution could make. Please check out these links and make your own mind up.

Update: I have signed up to run the London Marathon on behalf of Sentebale. I’m not a regular runner, and I haven’t run the Marathon before so dragging my forty-something body around 26 miles is going to be tough. But I know it’s going to make a difference to the lives of some of the children out there. Please support me to whatever degree you can. Thanks!