[ Content | Sidebar ]

downtown minneapolis

July 22nd, 2006

I’m here now. Getting on the light rail and taking it to the Nicollet Mall stop was easy enough. Then I got off, looked around for my hotel, and didn’t see it. Or any useful street signs, or anything like that. Most people were walking in one direction, so I followed them; after a bit, I discovered that the street that I was walking along was, in fact, Nicollet Mall. (Until then, it hadn’t been clear to me that Nicollet Mall was, in fact a street name; maybe next time I travel to an unknown city, I should bring along a map?) And that my hotel was about 10 blocks away.

A bit depressing, really – this is a city downtown at around 7pm, yet the streets are relatively empty and the stores are closed? The one bright sign was a group of people carrying some sort of boombox, with a banner of some sort; when I got closer, it turned out that the banner read “Brains”, and as far as I could tell they were wearing some sort of zombie makeup. Pleasantly bizarre. As I got closer to the hotel, things picked up a bit, and in fact there were quite a bit of people in some areas (and restaurants with reasonably full outdoor seating). Still, I remain unimpressed – so far, downtown Mountain View wins over downtown Minneapolis hands-down. But doubtless other areas of the city are more interesting.

Aftter a bit (short blocks, yay), I made it to the hotel. Whose exterior is pretty ugly. Got to my room reasonably promptly; looked pleasant enough. Having my priorities in order, I look for the promised “high-speed internet”. No jacks apparent, so I turn on the computer: a “Hyatt” wi-fi connection appears. Yay. So I try to ssh home, which seems to take a while. While that’s going on, I open up my web browser and click on a link; up pops a screen asking me to pay ten bucks. Gee, guys, maybe you should have mentioned that aspect on your website? Or am I just naive? (Rhetorical question, I know the answer.)

On my way out, I notice something with a description of their services. And it does mention “Wireless high-speed internet service”, at $10/day, followed by “This is not your typical hotel story. This is the Hyatt Touch.” Personally, I would just as soon not have hotels touch me in that particular way. Next to it were one-liter bottles of water for four dollars; another aspect of the Hyatt Touch, I suppose. (The tap water tastes fine to me; I trust they won’t bill me for drinking that.)

I did give in and pay; adding insult to injury, the connection speeds are crap. Oh well; at least it exists. When I was in Stratford last month, the bed and breakfast didn’t have an internet connection at all. But they were a ton friendlier, and I spent a lot less than ten bucks at the local coffee shop which did have one. Which may end up being the solution I ultimately adopt here; we shall see.

agile 2006

July 21st, 2006

I’m off to Agile 2006 tomorrow. Should be interesting; many thanks to the powers that be at work for sending me there.

traffic, flow, quality, signals

July 21st, 2006

I wasn’t sure what I thought about this article on removing warning signs when I first saw it, and I’m equally confused by this one. On a basic level: does this really work? I’ve never driven in Europe, I’ve never been to Italy at all, so I don’t have much context for many of the examples. If it does work there, would it work in an American city? (Doubtless better in some than in others.) Would it work in the more suburban area where I currently live? It’s hard for me to imagine techniques that would naturally cause cars to want to travel under 20mph here. And then there’s Green Streets

The second mentioned article is the one I’ve been thinking about more, because of my current lean obsession. I’ve been on a bit of a slow driving kick for a couple of years, so I actually do frequently come to a complete stop at stop signs, but I would tend to agree that doing so doesn’t make my driving any safer – it just slows me (and potentially other people) down. (And wastes gas, too.) To be sure, my slow driving has flow benefits as well – if I see a red light ahead of me, I just coast, which has the benefit that I’m more likely not to have to come to a complete stop at the light, giving me a speed advantage. (And saving gas in two ways.) Go production leveling! Of course, you have to be a bit careful: if you cut the timing on the light too close, you can get killed by somebody running a red light. But in general asking the question “is holding down the gas pedal going to improve my total time, or is something else the bottleneck?” has had pleasing affects on my driving.

But what I’m really confused about is this: on the one hand, we have the idea that adding explicit safety (or quality) warnings is actually less safe than encouraging people to pay attention to natural environmental signals. Which I think I’ve seen in other lean sources, though I’m not completely sure that it’s canon; I’m also not completely sure I believe it, but it’s plausible enough. On the other hand, lean also heavily promotes certain kinds of quality signals, so you can tell when something has gone wrong as quickly and as immediately as possible. So: how do I tell the good sorts of quality warnings from the bad sorts?

I would like to say that I know it when I see it, but a bit of testing shows that that isn’t the case. Is pair programming a good sort of quality signal, encouraging a constant flow of dialogue about the process and hence heightening awareness? Or is it a bad, rigid, rule that’s a detriment to flow and encourages people not to pay attention to what’s going on because surely their partner will catch the problems? Or is it orthogonal to the issues raised by these traffic articles? I tend to think that pairing is more good than bad, but it’s not at all clear to me how to derive that from general principles. (And maybe this is a sign that we’re doing the right thing at work by not pairing all the time.) TDD raises similar questions to me – good, bad, excessively rigid, creating an informative environment, something else entirely? Again, hard for me to analyze, though here I’m rather more confident that it’s almost universally a good idea – you’ll pry my unit tests out of my cold, dead hands, and red, green, refactor is a wonderful way to work. (But perhaps those wonders, especially the design benefits, are orthogonal to these issues.)

Always more to learn.

working effectively with legacy gardens

July 15th, 2006

The previous owner of our house was quite a gardener. One of the things I liked about the place: out the back door, there’s a patio with a table and chairs, covered by a sort of trellis with jasmine growing over it (creating a nice, cool space). In the yard proper, many flowers, large, colorful and (to my eye) frequently exotic. And various little knicknacks (including colorful fishes and a mirror on one of the fences).

Unfortunately, we are not gardeners. The result has been that half the plants have died in the intervening two and a half years, and the other half of the plants are hugely overgrown. Perhaps attacking the house in the process, almost certainly attacking the fences in the process, with the result that on one side a section of the fence has fallen down while the fence on the opposite side is sagging. We really should talk to our neighbors and do something on it; it’s probably second on the list of house priority stuff.

As you can probably guess from the above, we haven’t spent much time in the garden. Miranda heads out there every once in a while to pick flowers. Liesl’s done a little bit of hacking at the worst of the climbing vines. The dogs do their business (and Zippy actually wanders around some); some opposums in the neighborhood have been seen there. I mostly ignore it.

We’ve talked a bit about improving it. Probably getting rid of some of the stuff there, and adding a bit of a vegetable garden. But nothing concrete has come of that, and nothing concrete will come of it this year.

Right now, the townhouse complex is in the process of painting and repairing the trim in all of the units. Part of this includes the trellis in the back. So they sent us a letter: either clear plants off of the trellis or they’ll leave it alone and we’ll sign a waiver saying that the trellis is our responsibility to look after, not the HOA’s.

So: what to do? On the one hand, I like the effect the jasmine on the lattice creates on the space beneath it. On the other hand, we’re not sure what’s going to ultimately happen in the yard, and if the jasmine turns out not to be part of the solution, we’ll want the HOA to be responsible for that part of the maintenance, not us.

This is a situation I’ve seen before. Speculative implementation of a feature, causing a maintenance burden, with no plan to use the feature any time soon. Seen in that light, I know my answer: remove the offending code to improve maintenance.

So I spent three or four hours today hacking away at the honeysuckle climbing up the side of the house and the jasmine that was all over the lattice. The honeysuckle was easy to deal with: snip through vines at the ground, and pull, and two stories of honeysuckle come tumbling down. The jasmine, however, was another story: many of the vines were more like branches, and they’d been growing on the trellis for years with no interference. (I was impressed by the way it had integrated itself with a neighboring tree, too.) So I was hacking away largely at random for the first hour and a half. By the end of two hours, I’d cleared off the trellis near the area where the vine originated, so I could see that the end was in sight; after lunch, though, it took another hour and a half before the rest was cleared off. And I was filthy, with leaves and flowers all over my hair and beard (quite the dryad look, actually, or whatever the male equivalent is), with hands starting to feel raw.

The results were as my software experience would lead me to expect. Once I’d removed the mess, there was more of a mess underneath: if the HOA is really going to repair the trellis, they’ll probably have to end up replacing it entirely. And I feel much more in control of the backyard – previously, for example, I’d been happy to let Liesl go out every year or so to hack at the worst of it, but now I’d be happy to go out for ten minutes every month or two to fight the honeysuckle. (And the jasmine, if it comes back every month or two; I really don’t know what to expect there.) I don’t like the area under the trellis quite as much as I did before, but it’s not as bad as I’d feared. I understand the effects of plants on fences much better than I did before.

Of course, now I have jasmine debris covering the back yard, and I’d feel guilty filling the dumpster with it. I guess I’ll go out every Tuesday night for the next couple of months and see how much room there is in the dumpsters, and add some more of the jasmine. (Trash pickup is on Wednesdays.) It’ll get taken care of eventually, and having an excuse to think about the garden every week is probably a good thing.

carpaccio

July 15th, 2006

I had not realized until recently that carpaccio only dates back to around 1950.

exciting launch

July 11th, 2006

Quite a launch today. The Galaxy launch had its moments, too – it got people ready to treat Sun seriously as an x86 systems vendor, and the machines were quite nice. But, at the end of the day, they were 1U and 2U Opteron servers, and those aren’t exactly hard to find.

Today’s launch, however, is quite a different story: three significantly different products all landing at once, and all quite different from anything that you can get from other vendors. Galaxy 4 (a.k.a Sun Fire x4600) is, I suppose, the most straightforward of them: 8 Opteron sockets in a 4U box. Dual core now; when quad core comes out, you’ll be able to slide out the two-core CPU modules and slide in the four-core modules. 64GB of memory now, 128GB later. If you need a lot of compute power, it should do the trick; we sold a bunch of prerelease units (plus some Thumpers) to Tokyo Tech, and now it’s the fastest supercomputer in Asia.

The one that I understand the least is Andromeda (Sun Blade 8000). I’ve simply never worked in the sort of data center environment where blades’ virtues are at a premium, so I can’t say I entirely understand the pros (and cons, I suppose, but I don’t really know what they might be, other than perhaps its 19U height) of this versus our competitors’ designs. As a good object oriented programmer, though, the separation of I/O and processing elements sounds pretty interesting, with both sides independently replaceable and manageable. And they’ve done a lot of work towards increasing the lifespan of the chassis and various design elements, so it shouldn’t go obsolete on you soon: it should live up to the blade promise of simplified management combined with ease of growth. And once we, say, release Niagara blades for it (I haven’t heard any details about that, but it’s got to be coming), the ecosystem will get even richer. (And all you fan fetishists will enjoy standing behind it and feeling the wind blow through your hair.)

But by far my favorite is Thumper. (Sun Fire x4500.) I’ve been using prototype versions of the hardware for the last two years, and I still love to take off the cover and look at all those disks. (Jonathan put up a picture.) 24TB of storage in a 4U box; to put it another way, if you take four racks full of Thumpers, you have a petabyte of data. That is a lot of storage in not very much space.

And you also get a couple of dual-core Opterons in each box. (Or: you have 160 quite powerful cores to comb through your petabyte of data.) Next to Galaxy 4’s 8 sockets, a mere two-socket server doesn’t sound like so much, but let me assure you that it’s quite a lot of compute power to manage, mine, and process that data. I’m not creative enough to envision all the uses that the world will find for that, but early reports are already surprising me with their ideas, and we’ve certainly had a lot of fun playing with them.

apple ][ games

July 9th, 2006

My first computer was an Apple ][+. I can’t remember exactly when we got it; some time around fifth grade (1982), I suppose. I used it through the time I graduated from high school (1989); I got a Mac (SE/30, woo-hoo!) when I went to college.

I have very fond memories of (among other things) many games for the Apple ][+. Some of my favorites were various Infocom games (with their glorious packaging!) and Ultimas 1-4 (with their glorious packaging!) But there were many others that I enjoyed. (A piece of trivia: in Temple of Apshai (I think that’s the right game), the levels were generator from a random level generator with fixed seeds, because that used less disk space than storing the levels whole.)

I didn’t have a lot of money to buy games – mowing laws helped, but I couldn’t just go down to the local video game store whenever I got bored with my current game, like I do now. (Not that video game stores really existed back then, but never mind that.) Fortunately, my mom was willing to buy games for me if they somehow qualified as educational. Including games that were in French; fortunately, there was a publisher out there that took others’ games and translated them into French.

And it turns out that some of the games that have stuck most in my mind fell into that educational category. One was The Prisoner, a rather bizarre graphics/text adventure game. I originally played it in French, and my French wasn’t quite good enough to make it all the way through it – conversational skills and reading skills are somewhat different from the skills necessary to convince a primitive computer parser to do your bidding, especially in as surreal a game as that one. But what I played of it has stuck with me through the years. Another was Robot Odyssey, a graphical adventure game (English-language) to teach you about circuit design; I’m not an electrical engineer, and circuit design wasn’t really my thing, but that game was awesome. (I never finished it either, alas – I couldn’t get through a puzzle at the start of the last level, and this was before the days of GameFAQs.)

Some time last year I looked into playing these, but I couldn’t get any Apple ][ emulators to work under Linux. (Incidentally, why doesn’t Apple just release the system rom images for those machines? It’s not like they’re making any money out of them any more.) But I took note that several seemed to be available for the mac; I’ve just downloaded OSXII, and I am now a happy person.

It actually turns out that somebody has reimplemented Robot Odyssey in Java, and even added a bit: see Droid Quest. Maybe I’ll play that version, or maybe I’ll play the original; I’m not sure yet. And I’m also not sure if I’ll play the original Prisoner or its reimplementation Prisoner 2. Either way, I should be able to nicely make it through the summer game lull…

(Or, as has happened more frequently in my recent experience, I’ll discover that old games don’t hold up so well in reality as in my imagination. We shall see.)

an active prefrontal cortex is a happy prefrontal cortex

July 9th, 2006

I’m mostly done with Brain Age now: I’ve unlocked everything, and while I think I’ll finish all the sudoku and might still do a few more rounds of some of the other exercises, I’m starting to get bored of it. (But I still want to try to get 12 on Low to High, or get all 30 on Word Memory!)

Fun, and Liesl’s been playing it as much as I have. Not your standard console game – it and its sequels are a big reason why the DS has been reaching an unusually old demographic in Japan. It’s made up of various puzzles, some “training” and some “brain age tests”, plus a decent sudoku interface. You hold the DS on its side, so it opens up like a notebook; you write on the right side (or sometimes speak into the microphone), with information on the left side.

Some of the puzzles, are pretty good, some of them so-so, some of them boring. (Speed reading is bad enough, but counting out loud from 1 to 120?) The handwriting recognition works well enough (but by no means perfectly); the voice recognition is adequate, but didn’t add anything to the game.

The most pleasant surprises were the little bits thrown in aside from the game play. For example, the second time I played the game, it asked me to draw a koala, a kangaroo, and the continent of Australia, all from memory. It then showed me pictures of the three of them; pretty interesting what I’d forgotten and what I remembered. And then, the next time Liesl played, it asked her to draw the same thing, and both of us got to look at each other’s drawings. Fun; we turn out to both be approximately equally bad at that sort of thing.

I’m glad I bought it; I was happy to spend 15-30 minutes a day on it for a month or so. I’ll probably by the next game in the series; it helps that they’re only 20 bucks. It wasn’t exactly a revelation, and there are ways in which it could be improved, but it’s fine for what it is.

back from vacation

July 9th, 2006

Vacation’s over now; back to work tomorrow. Some random notes:

  • Miranda managed to last through all five plays we went to. She fell asleep during one; I, on the other hand, dozed a bit during two. All good, but our consensus favorite was London Assurance, which we’d never heard of before.
  • It turns out that High Society wasn’t originally a stage musical: the film was the original form, and its stage adaptation is only a few years old. (With more songs thrown in, from elsewhere in the Cole Porter canon, to make it into a real musical.)
  • Stratford is a pleasant place; I’d be happy to go to the the festival again some future year.
  • It’s my first vacation where I’ve brought along the laptop and sought out internet connections regularly; that worked well.
  • I did my first programming on a Mac. (Or at least my first in a decade and a half.) Which worked well enough; a decent set of tools available. A weird mixture of Gnu and non-Gnu environments – I was pleased to not only find autoconf installed, but even its info pages. (Good thing, since I’d never used it before!) But then when I had a make question, its info pages weren’t installed, even though it was Gnu make. (Fortunately, my brain managed to dredge up the answer I wanted.)
  • It’s the first time I’ve done longish driving in the last several years. Surprisingly pleasant.
  • We bought a radio adapter for the iPod – surely it won’t be hard to find unused frequencies in the wilds of Ohio and Ontario? Actually, though, the spectrum is pretty well filled; in fact, it was easier to find stations near Toledo and Detroit than in more rural regions. Fortunately, it was easy enough to find decent radio stations in Ontario. I might try using it at home; it depends if I start finding more podcasts that I want to listen to, or run out of CDs that I want to listen to. (I certainly don’t plan to start listening to the radio here regularly.)
  • My range of (self-provided) vacation entertainment has broadened – I used to just bring along a ton of books, but this time I had several books, several magazines, the iPods, the DS, and the computer. I’m happy with the new mix: I managed to nicely work down the magazine and podcast backlogs, while still getting a half-dozen books read.
  • I still don’t take as many pictures as I probably should, though the digital camera is helping.
  • Yosha apparently went on a bit of a hunger strike again at the kennel – he’s noticeably skinner than he was when we left. And his hind legs seem to be weakening a bit. But the kidney dog food seems to be working well, so hopefully he’ll have a few more years ahead of him; we just might have to get used to carrying him up and down the stairs at times.

initial release of unit test framework

July 8th, 2006

I’ve got the unit test framework cleaned up a bit: its interface should be relatively stable now, there’s some amount of documentation, and doing ‘make install‘ should work. Still more stuff to do before I want to announce it more widely – at the very least, I should make a tar file available, but some rpm’s and a bit more cleanup would also be nice – but I’m happy with what’s there, and would recommend it to anybody needing to write unit tests for C++ code in a Unix environment.

holt on responsibility

July 8th, 2006

From the preface to the revised edition of How Children Fail, by John Holt:

After this book came out, people used to say to me, “When are you going to write abook about how teachers fail?” My answer was, “But that’s what this book is about.”

But if it is a book about a teacher who often failed, it is also about a teacher who was not satisfied to fail, not resigned to failure. It was my job and my chosen task to help children learn things, and if they did not learn what I taught them, it was my job and task to try other ways of teaching them until I found ways that worked.

For many years now I’ve been urging and begging teachers and student teachers to take this attitude toward their work. Most respond by saying, “Why are you blaming us for everything that goes wrong in schools? Why are you trying to make us feel all this guilt?”

But I’m not. I didn’t blame myself or feel guilt, just because my students were so often not learning what I was teaching, because I wasn’t doing what I had set out to do and couldn’t find out how to do it. But I did hold myself responsible.

“Blame” and “guilt” are crybaby words. Let’s get them out of our talk about education. Let’s use instead the word “responsible.” Let’s have schools and teachers begin to hold themselves responsible for the results of what they do.

I held myself responsible. If my students weren’t learning what I was teaching, it was my job to find out why. How Children Fail, as I said, was a partial record of my not very successful attempts to find out why.

random links: july 6, 2006

July 6th, 2006

the progressive

July 6th, 2006

One of the things I’ve been doing on vacation is going through my backlog of magazines. There are too many ways to make your suitcase heavier on a trip; might as well find ways to lighten it, by bringing discardable reading material along.

They only make some of their issues available online, so I can’t link to all of my recent favorites, but I thought these articles were pretty good.

who designs?

July 5th, 2006

I’m in the middle of reading A New Theory of Urban Design. Not one of Alexander’s best (though it’s interesting enough); it’s hurt by problem that, as he comments, part of the theory that he’s discussing “remains unpublished. It will appear in a later volume of this series, “The Nature of Order”. Which turned into four volumes, of course, but who’s complaining? At least he’s avoided the Grothendieck problem (hardly unique to Grothendieck, of course) of publicly sketching out grand plans of future volumes which then divide further and remain unfinished. (Or maybe he has sketched out many future volumes, and I’m just unaware of it.)

The book presents the following “Overriding Rule” of design:

Every increment of construction must be made in such a way as to heal the city. (p. 22)

This gets recasted as follows:

Every new act of construction has just one basic obligation: it must create a continuous structure of wholes around itself. (p. 22)

He then talks about how each piece of construction affects the field of centers of the work: each increment should simultaneously work to support some center larger than itself, while fitting in with the adjacent centers and being made up out of smaller centers. (The notion of “centers” gets explained in The Nature of Order.) Which is an interesting way to think about programming: can we program in such a way that every chunk of code that we write heals the code base, developing a harmonious interplay of centers?

As in all of his work, this design is done collaboratively and incrementally. Which are both ideals that are dear to XP’s heart. Except when they aren’t. You can talk about a program’s design in terms of either how it behaves towards the programmer or how it behaves towards the user. The former sort of design is done collaboratively and incrementally; the latter is done incrementally, but isn’t done collaboratively. Instead, XP says that there should be a Customer speaking with a single voice, either being a single person or being filtered through a single person.

Why is this? And do I think it’s a good idea? To start with the latter: my tentative answer is no. If I’ve drunk the collaborative kool-aid elsewhere, I don’t see why I shouldn’t drink it here; if a city can be designed collaboratively, then surely a piece of software can be as well?

But if I accept that, then why might XP propose otherwise? (Of course, I could just be wrong about XP.) My tentative answer is that is has to do with XP’s programmer-centric nature: it’s focused on having programmers deliver as much value as possible to others. Given that, it concentrates on the details of how to program (pair programming, refactoring, etc.) and how to make sure that the software that is being written has highest business value (the planning game). But it doesn’t address the question of how the stories are generated and selected – that’s the Customer’s job. Given that story generation/selection is out of scope of XP, it proposes the simplest thing that could possibly work as a programming/Customer interface, namely a single-voiced Customer, and leaves it at that.

I wonder what an effective process with collaborative design on the Customer side would look like? This may be one of the potential advantages of processes where the programmers are the ones actually designing the application – it brings more design minds to the table. (Not that programmers designing software doesn’t have its own flaws, to be sure.)

Of course, one potential problem with multiple designers is a lack of coherence: nobody likes design by committee. Alexander has been tackling this problem heads-on for decades: that’s what pattern languages are all about, after all. (Well, one of the things that they’re about.) There are some interesting additions on that subject here as well. The book discusses an experiment at imagining how a section of a city might develop incrementally, through a series of projects. Each project has a different owner, so collaborative design comes into play for the city as a whole. But each project has one person leading it, and must come with a vision:

Every project must first be experienced, and then expressed, as a vision which can be seen in the inner eye (literally). It must have this quality so strongly that it can also be communicated to others, and felt by others, as a vision. (p. 50)

So that’s the tightrope that Alexander is walking. He tries to get the good aspects of individual design by having each design step be guided by a clear vision. That vision can guide other people working on that project, so the project doesn’t lose coherence. Next, other people working on subsequent projects have to try to maintain the coherence of the preceding visions (and open up the possibility of following visions), working so as to always heal the city.

Works for me. (And works a lot better than Metaphor.) It’ll be interesting to try to carry it out in practice, though.

kaze ni naru

July 3rd, 2006

The Cat Returns isn’t one of my favorite movies. I’m happy for Miranda to watch it, and I won’t normally leave the room just because she has it on, but Studio Ghibli has produced much better stuff.

The theme song, however, I totally love. (Miranda and Liesl agree with this.) Very catchy in a rather understated way; and now I know what a ukelele sounds like. It’s in Japanese, of course, and, judging from one translation of the lyrics, I’d quite possibly not like it as much if it were in English.

I got a CD of Ayano Tsuji’s which contained this song. At first, I didn’t particularly like any of the other songs on the CD, but now they’re starting to grow on me. Maybe I’ll investigate further.

(Speaking of Studio Ghibli, I just noticed that Whisper on the Heart has just been released in the US; we’ll see if I like that movie any better.)

oberlin

July 1st, 2006

We just spent most of a week in Oberlin, visiting my parents. We got to see two of Miranda’s cousins for the first time in over two years; they are truly excellent. (It was nice to see my parents too, to be sure.)

Downtown Oberlin has changed somewhat since I lived there. More restaurants, which is a good thing – it only had one or two decent non-pizza places when I lived there, while there are now half a dozen or so places downtown where I’d be happy to eat. It seems to have gotten a bit more boutiquey, which I can live with; if they can sustain themselves (which apparently they can – no empty storefronts this time), more power to them. Alas, it’s about to get a good deal harder for general-purpose stores to survive – a Walmart is about to open up just south of town.

Two of the stores, in particular, apparently draw in out-of-town customers. One is called Bead Paradise; it also sells vintage clothing which seems rather decent (as far as I can tell from looking into the window and not being into that sort of stuff). And there’s an art gallery called Gingko Gallery, selling the work of six artists who have studios in the back of the store and several more that don’t; I did go in there, lured by some delightfully whimsical animals in the front window (apparently made out of twigs and seed pods and the like, though they also have very bright paint jobs on them). I ended up with two of those, a very amusing cube made out of angora wool with faces on five of the six sides, and a couple of sculptures that were absolutely gorgeous. Plus, they rescue cats, and had some completely adorable kittens in the back. (Some of whom hadn’t even opened their eyes, but a couple were old enough to be more playful.) It’s apparently been open in some form or another for nine years now; I hope it continues for another nine. Maybe I’ll put up pictures of some of the things we got there.

We spent much of the visit at Kendal at Oberlin, which is where my parents now live. Quite a lot of art there, too: this is what happens when you bring together retirees who either lived in a college town or would like to retire in a college town, and then move them into residences that, while quite nice, are presumably noticeably smaller than the houses that most of them previously lived in. So the result is that people’s art collections spread out into the hallways, the communal rooms, the guest rooms. (The one we stayed in had a couple of illuminated manuscripts, a couple of Japanese prints (which may or may not have been reproductions), a couple of prints of more recent vintage, this all in the size of a normal hotel room.)

A good visit.

beck on alexander

June 22nd, 2006

In regards to my last post: the bibliography to the XP book doesn’t seem to mention The Production of Houses, but it has this to say about The Timeless Way of Building:

Outlines Christopher Alexander’s view of architecture and construction. The relationship described between designers/builders and the users of buildings is much the same as the relationship between the programmers and the customer.

Time for me to go and reread that one, I think…

recasting the architect, iterative design, and onsite customers

June 21st, 2006

Some quotes from the chapter on “The Architect Builder” in Christopher Alexander’s The Production of Houses:

This requires, then, that decisions about design can be made, individually, house by house, and that they can even be made while construction is under way. (p. 69)

It requires a system of communication in which the building is not frozen, ahead of time, by drawings, but in which rough plans of the building are translated directly into building, step by step; and for this, the institutional powers of architect and builder – the power of design and the power of construction – must be wedded in a single process. (p. 70)

the kitchen be laid out exactly according to the wishes of the housewife (p. 70)

Further, it requires a form of communication between architect and builder which is simple, cheap, and direct, so that the immense expense of fifty different sets of drawings is not required to design fifty different houses. This direct communication becomes relatively impossible when architect and builder are separate, because the communication must be legally binding – exact – and is therefore immensely expensive to prepare. If architect and builder are one and the same person, the communication can be quick, schematic, because it is only a record for “in-house” use. And it therefore becomes cheap enough to do. (p. 71)

Third, in order for the woman to lay out her kitchen successfully, she must be able to enter the process at various times while the house is being built. It is, generally speaking, not possible to make subtle, exact choices about counter sizes, widths, position of stove, shelves, cabinets, in the abstract – that is, long before the building exists. However, once the shell of the building is there, and the kitchen exists, it is then possible to decide exactly where the details should be by simply standing in the real place and imagining them.

This requires that even at this late date during the process of construction itself, decisions about size, position of shelves, counters, etc., can still be made.

And this requires that the building is still actively open to design decisions, even after its shell is up, and that the builder, who is in the building on a day-to-day basis, has the right to make these decisions with the woman. If the architect is a separate person, again communicating through drawings, the process of choosing each of these kitchens on a direct, person-by-person basis would become impossibly complex and expensive. But if the architect and builder are one and the same, and together have control also over the spending of money, it is extremely simple. The same is true for all the other qualities a good house needs. (pp. 71-72)

I could go on, but I’ll stop here; just read the chapter yourself. You just have to do some obvious substitutions and you get large chunks of XP. Is this book cited in the bibliography of the XP book? I’ll have to check when I get into work, but I have to assume it was a direct influence.

I guess I already was aware that Christopher Alexander had these sorts of ideas, that he wasn’t an influence on software development solely through his invention of design patterns, but I’d never seen it spelled out so clearly before. Which raises the next question: Christopher Alexander and Kent Beck have both done influential work in both design patterns and architect/customer interactions; is this a coincidence? I tend to think the answer is “no”. If you take, say, Singleton on the one hand and the Planning Game on the other hand, it’s hard to see any direct link. But both of their thoughts were much more far-reaching: both of them worked not just with design patterns but with pattern languages, which meld individual design decisions into a richly textured, active, living structure. (Using an expansive notion of living.) And once you have that structure in place, you then have the freedom to make late-binding decisions, which in turn opens up the possibility of designer- (or builder-)customer interactions throughout the entire building process, and even past the end of the building process.

Great stuff. And he’s not at all afraid of the details: there’s theory in this book, to be sure, but it’s made concrete at every step with pictures, with descriptions of small steps, with discussions of experiments that worked, experiments that didn’t work.

Are there many agile construction firms out there? It seems to me like a huge need…

kabuki

June 21st, 2006

About a year ago, I was browsing a local comic book store, and decided to pick up the first volume of Kabuki. Pleasant enough – I’m as happy to read comic books about attractive women beating the crap out of people as the next person – but flawed in its own ways, too.

Still, I was curious enough to read the second volume. Which completely through me for a loop – it was stunningly gorgeous, successfully experimenting with a few different artistic styles, and the experimental narrative was more promising than that of the first volume. Clearly I had to read more.

The third volume didn’t do so much for me – back to the less interesting drawing and narrative style. But the fourth volume was quite good, and the fifth volume is on my personal short list of potential best comic books ever. (Hmm, what else is on the list? I’d have to think about it. Is anything else on the list right now?)

Everything comes together in that volume. The art is again stunning. (You can see some of the artist’s cover images on his web site; I like several of those quite a bit, but the interior art is much more richly layeed.) It’s very well integrated into the narrative of the story, and integrates text and picture in a more successfully interesting way than anything else I can recall reading. The plot is solid enough to carry the weight of the other features of the volume.

Why had I never heard of this series before? I guess I need to get out more…

unit test framework

June 18th, 2006

I’ve gotten permission from Sun to release a C++ unit test framework that we (largely I, but with significant contributions from others) wrote. Here’s its web page; there’s still a significant amount of work to before I want to announce it more widely, but the source code that’s there works just fine.

I’ll try to get a better version (with usable documentation) done over the next month or so. In particular, I’d like to get it out before Agile 2006. (Are any of my blog readers going to be there?) If anybody wants to contribute, I’d be very grateful.