One of my earliest memories is of standing on a low stool, stirring a
teaspoonful of sugar into fresh yeast to wake it up while mum heated a
pan of milk to blood heat before everything all got mixed together to
make a lovely, enriched bread dough that, now I think about it, I could
probably make tomorrow without recourse to a recipe book.
Once upon a time, when the world was still enormously old but I was a
good deal younger, a friend with whom I played D&D
pressed a copy of Terry Pratchett’s The Colour of Magic on me, telling me it was the best thing ever. So off I went and read it and it was indeed the best thing ever.
And there’s nothing new in this post really. I’ve been indulging myself
in a gadget buying spree including finally getting myself a decent film
scanner and starting to get some of my old negatives and slides scanned
in. I’ll be putting more stuff online as time goes on, but for the time
being here’s a few photos from Silverstone a
couple of years ago.
Our experience as contractors, engineers and architects during the last
15 years has proved one thing over and over again: The things placed on
drawings are inevitably – always – wrong in many particulars. Drawings
serve as an important rough sketch of something that will be built, but
must be executed with constant attention to room shape, light, wall and
ceiling detail, openings – above all to the feelings which arise in
each place, in the construction, as it is taking shape. These feelings
are too complicated to predict and cannot be predicted. When a
building is built from plans that are conceived on the drawing board and
then simply built, the result is sterile at best – silly most of the
time – and sometimes unthinkably bad. This is something familiar in
virtually all large buildings that have been built since 1950. It is
inevitable, given the process of construction used to build them. And it
is inevitable that this process must lead to unsatisfactory results.
— Christopher Alexander, Gary Black & Miyoko Tsutsui The Mary Rose
Museum
Another installment in my ongoing series of reviews of books that Amazon
will take an age to deliver.
“The best thing for being sad,” replied Merlin, beginning to puff and
blow, “is to learn something. That’s the only thing that never fails.
You may grow old and trembling in your anatomies, you may lie awake at
night listening to the disorder of your veins, you may miss your only
love, you may see the world about you devastated by evil lunatics, or
know your honour trampled in the sewers of baser minds. There is only
one thing for it then—to learn. Learn why the world wags and what
wags it. That is the only thing which the mind can never exhaust, never
alienate, never be tortured by, never fear or distrust, and never dream
of regretting. Learning is the only thing for you. Look what a lot of
things there are to learn.” — T.H. White, The Once and Future King
I’ve bounced off writing this article several times in the past and I’m
still trying to find a good way into it. Here’s the (n+1)th take on it
anyway.
Trust is everything. Trust is what keeps the wheels turning. Trust is
when all parties are pointing in the right direction and nobody’s
playing CYA games. Trust is opening a joint account and moving in
together. Trust is when you stop using contraception…
I really don’t have time for those complete and utter arseholes who
abuse trust. In my narcissistic way I was going through my referer logs
to find out who was linking to me and what they were saying about me, as
I’m sure everyone does. Anyhow, I came across one URL that looked
slightly out of place, claiming as it did to come from a php programming
site…
A couple of articles back, I reviewed Smalltalk Best Practice Patterns
and mentioned that it’s a book that concentrates on the tactics of
programming rather than the big strategic stuff. Beck even takes his
life in his hands and lays down a set of patterns for laying out code.
The (very short) set of patterns he comes up with do seem to generate
remarkably clear code.
I’m a big fan of this book, and I’ve lifted many of the ideas about how
to structure Smalltalk code and used them when I’m writing OO Perl (to
the extent that I sometimes find myself wishing that Perl had Smalltalk
like message selectors), so now I’m toying with the idea of using Beck’s
rules, or something like them, for laying out my Perl code.
As most of you probably know, unless you came
here via a link from
java.net,
I write a summary every week of the ongoing developments on the Perl 6
development mailing lists. Which means, if nothing else, that my review
of
Perl 6 Essentials by Randal, Sugalski & Tötsch might be just a little
partial.
One of the less satisfying sessions/panels at OSCON this year was the
‘Perl Certification’ Panel, in which a panel of various luminaries,
moderated by Tim Maher of the Seattle Perl Users’ Group spoke
inconclusively about whether there was a need for Perl Certification. It
seems to me that, if you’re going to have a panel on this kind of topic,
you must make sure that your moderator is impartial (but not
uninterested). Tim Maher, for all his many virtues, was not impartial.
I arrived late to the panel, so I could be forming a bad impression, but
it seemed to me the panel had the cart before the horse, and any similar
panel will also have such an ungainly configuration, and here’s why:
Picture this: A magician sits in front of you with a pack of cards in
his hands. He turns over the top card, it’s the Two of Hearts. He has
you sign it. He then turns the card back over then takes the top card
from the deck and pushes it home somewhere in the middle. He asks you to
snap your fingers, then he turns over the top card of the deck again.
It’s your signed Two of Hearts.
What I’ve described is the opening of one of the classics of card magic,
called
The Ambitious Card, in which a signed, selected card repeatedly
jumps to the top of the deck in ever more implausible conditions. On the
face of it, the effect is simple, the card just keeps jumping to the top
of the deck. Behind the scenes, the method is simple too; you just have
to execute a hidden move so that it looks like you’re really doing what
you claim to be doing. And there’s the rub. I
can execute the required move with no little skill, but if I stop to
think of the complexities of what I’m doing, I won’t be able to do it
well. I certainly can’t explain how it’s done to another magician, well,
I can, but the explanation goes along the lines of “Just practice until
it looks like the real thing”.
What does this have to do with complexity management? Well, apart from
the fact that a good magic trick should be presented in such a way that,
no matter how complex the method, the audience just sees the magic,
obviously. But there I go again, using the tool we all instinctively use
to manage complexity. That tool is the word ‘just’. We all do it, we
push the complexities of something behind what I’ve taken to calling a
‘Just Story’. Here’s a just story for sole meunière:
The fish, fried in butter, is transferred to a serving dish and over it
is poured a quantity of freshly cooked, hissing, foaming butter. A
squeeze of lemon juice, a scrap of parsley, and the dish is ready.
Couldn’t be simpler, could it? Well… Elizabeth David, in
French Provincial Cookery goes on to explain the full complexity of the dish
so:
“The Quality Without A Name” is a phrase coined by Christopher Alexander
in The Timeless Way of Building to describe the feeling of satisfaction
and contentment engendered by good building. He later went on to call it
‘life’, but a friend of mine described it as ‘The Tao of Building’,
which seems rather appropriate too.
The Timeless Way of Building is a fantastic, if somewhat overwritten book, introducing Alexander’s themes
and ideas about how modern architects and builders can recapture the
qualities inherent in great (usually old) buildings.
Somewhat to my own surprise, I’m at
YAPC::Europe
in Paris. I pitched up to the early birds session and offered a talk if
they’d had any people pull out and it turned out that they had — Ronan
Oger was due to give a half day tutorial on SVG-based GUIs on the first afternoon of the conference, but he wasn’t going to
make it in time, so the organisers swapped his talk with Dave Cross’s
talk on Tieing and Overloading Objects in Perl.