Thursday, 21 August 2008

My Virtual Museum of Modern Art






You can create your own modern art at museumr.

Tuesday, 12 August 2008

Science at Home

In our current home arrangement my kids share a bedroom, and have a separate toy-room. The spare bedroom is my dearest's sewing room, although it often reverts to junk-room state. We use the dining-room as a kind of study.

My son would like a room to permanently set up electric train tracks. The toy room isn't big enough so he uses the floor in the "good room", but we make him pack it up at night.

I have said for some time that I would like a home dojo (martial arts area), preferably in a basement so as not to frighten the neighbours. As something of a homage, I would call it The Dungeon.

Additionally, there is the prospect of "doing science at home". Now, when I did year 12 chemistry I was fortunate to have a skilled laboratory partner, Steve Alcorn, who led the experiments while I took the lead on the calculation. However, my general experience at school and later at Uni. was that lab. work was dull, except on one occasion when I re-designed an experiment to make it work. That was a blast; the creativity and imagination were re-injected.

Reading Oliver Sacks's memoir Uncle Tungsten conveys the joy (and obsessionality!) of designing and performing one's owns experiments. In my case, as a teenager I satisfied that desire in the more abstracted world of exploratory computer programming, but I would like to expose my kids to the more concrete worlds of chemistry, electronics, and -- probably -- robotics first. Biological experiments can wait until they are older!

Apparently chemistry sets don't come with chemicals anymore. Here's a link to The Illustrated Guide to Home Chemistry Experiments, which sounds like a great place to start. Apparently you can get in trouble with the authorities for daring to do Science at home, so perhaps I should secrete "The Lab" behind the Dungeon.

Of course I don't really need a bigger house to do all this great stuff, just time, a little discipline (for cleaning up) and more importantly the patience to wait for the kids to show sparks of interest. Here's a nice story of a parent engaging a child in learning. For now, I'll try to encourage the kids to keep messing around with play-dough and paints, and try not to gripe too much about the mess.

Wednesday, 6 August 2008

What can go wrong with Agile approaches

Over the years, most (competent) software developers discover that an iterative approach -- Prototype; demonstrate; modify; demonstrate; rinse and repeat -- is essential for successful software development. In recent years this kind of approach has been formalized and elaborated as the Agile family of methods: XP, Scrum etc.

Here Gojko Adzic reports on a talk given by Henrik Kniberg -- author of Scrum and Xp from the Trenches -- on how software development can be screwed up anyway. He presented a long list of issues that have cropped up in Agile projects and -- interestingly -- had audience members hold up cards to signify how much of a problem each pathology was to them.

A good professional development exercise would be to go through a subset of the list with red/green/cards, and talking about the whys, wherefores, and possible remedies.

Tuesday, 29 July 2008

My Suggestion for a Privacy Statement

Most privacy statements for web-sites include something about the use of cookies. Recently I was peripherally involved in the re-drafting of one such section.

No, not that kind of cookie

Here's my "draft", which could be used as a honeypot to see if anyone ever reads these things:

We do not use cookies to determine the identity of individual users, unless you log in, in which case we track you using all available means, including, but not limited to: satellite, your mobile phone, secret service operatives, cookies, ice cream, fudge, radio-receivers implanted in your molars, and miniature remote-control insects. Depending on what we catch you doing we may use this information for blackmail or our own amusement at in-house video-nights. However, rest assured that we do not permanently store any of the gathered information.

Naturally, this is not the version that we are going forward with.

Thursday, 24 July 2008

Some excellent OO programming tips (and discussion)

Some classy advice from munificent on a proggit thread:
  • Do not copy and paste. Move code around, but don't duplicate it. Disabling Ctrl-C on IDEs would improve the world's programming better than anything I can think of.
  • Decouple decouple decouple. Of all of the things you can do to improve code, reducing coupling will, by far, have the greatest impact at making your life better.
  • Don't store what you can calculate. The fewer member variables, the better. Avoid storing any redundant data unless you want to fix synchronization bugs forever.
  • Make classes immutable when possible. It's easiest to use something you can't break.
  • Don't get too excited about inheritance. If you aren't using polymorphism, you probably don't need to use inheritance.
  • Use all of the features of your language. Delegates (function pointers), static (i.e. non-member) functions, etc. are just as useful with OOP as within straight procedural.
  • If you have a hard time naming a class, it's poorly defined. That being said, don't let lack of a name stop you, you can always find and replace later. Likewise, rename classes if their purpose changes over time.
  • Never call anything "FooManager". Objects are supposed to manage themselves. Get rid of the manager and put the code in Foo.
  • Don't be afraid to make little classes. Making a class just to bundle a couple of function args is perfectly fine. A few months later you'll find you've all sorts of other usefulness to it.
  • Refactor constantly. Coding without refactoring is gardening without weeding and pruning. You can't just keep packing new plants into your yard.
There is some good further discussion and qualifications in the sub-comments.

Alan Kay's Reading List

Alan "Smalltalk" Kay gives a list of books for people interested in the ideas and philosophies that influenced Squeak. It looks like a good list for anyone interested in software invention.

I have read a smattering of the books and some other works by authors on the list, and they were generally outstanding. I will try to sample the remainder (over time).

Wednesday, 23 July 2008

A witty remark

The other day I was standing in my bedroom, and went to take a step, only to find that I could not. My son, Jake, aged 4 1/2, was lying full length and prone on the floor with arms extended and both hands securely clamped around my left ankle. Andi looked on. This had happened before.

Jake ordered me to drag him along the floor: "Walk!", came the command from below.

"I refuse to walk anywhere while there's a manacle attached to my leg", I replied.

"That's not a manacle; that's a boy-acle!", said my beloved.