[ Content | Sidebar ]

stupid cliffhangers

December 1st, 2007

I was happy when volume 11 of the DVD of Hikaru No Go included 5 episodes instead of 4 – more stuff, and we’ll make it through the qualifying tournament, right? Well, no: more stuff, but they leave us half way through Hikaru’s match versus Ochi. (Instead of stopping before the match, as would have happened if they’d included 4 episodes.) Grr…

creation and benefits of implementation patterns

November 25th, 2007

From Kent Beck’s Implementation Patterns (p. 20):

Once a set of implementation patterns has become habitual, I program faster and with fewer distracting thoughts. When I began writing my first set of implementation patterns (The Smalltalk Best Practice Patterns, Prentice Hall 1996) I thought I was a proficient programmer. To encourage myself to focus on patterns, I refused to type a character of code unless I had first written down the pattern I was following. It was frustrating, like I was coding with my fingers glued together. For the first week every minute of coding was preceded by an hour of writing. The second week I found I had most of the basic patterns in place and most of the time I was following existing patterns. By the third week I was coding much faster than I had before, because I had carefully looked at my own style and I wasn’t nagged by doubts.

more studio ghibli movies

November 23rd, 2007

I was in Japantown in SF today, and picked up copies of Tales of Earthsea and Ocean Waves. (Both in Japanese, with English subtitles available.) The former of which I’m wondering about: no booklet, bad printing, claims to be region 1, and now that I’m poking around, I’m not convinced that there is a legitimate region 1 version available? We’ll see what the video/presentation quality is when I play it…

The latter is region 2; now I have to figure out how to play it as well. I’m planning to use my Mac for that; my options are:

  1. Use an external DVD drive, set to region 2.
  2. Use the internal DVD drive, with software that can read from all regions.
  3. Use the internal DVD drive, set to region 2.
  4. Use the internal DVD drive, with new firmware.

Which is more or less the current order that I’m planning to try them in: I have an external DVD drive around, so I might as well set it to region 2, but if I have to end up setting the internal DVD drive to region 2, no big deal – I don’t plan to start watching DVDs on it in general, and if I change my mind later, the machine will let me change regions back to region 1.

Still looking for a copy of Only Yesterday. I was thinking about doing an order from Amazon Japan soon; I guess I’ll just throw it on that.

mistakes, measurements

November 19th, 2007

Some things that have passed through my earphones recently:

  • In a recent lean blog podcast episode, Norman Bodek talked about how great mistakes are, because making a mistake is the best way to learn something.
  • In an episode of The Cranky Middle Manager that I just listened to, Patrick Lencioni talked about how one of the signs of a bad job is that you can’t tell whether or not you’re doing a good job at it.

Everybody wants to do things right. But if you make a mistake, don’t freak out about it: notice that you made a mistake, figure out how to do things right the next time.

This has two hard parts: you have to notice that you made a mistake, and you have to not freak out about it. Which points at a problem with our educational system (among other aspects of our culture): it’s designed to get you to freak out about making mistakes, without giving you nearly enough tools to help you notice that you’ve done it. As math teachers all know, telling students to check their work isn’t sufficient support; helping students develop the skills to notice when they’ve made a mistake is hard, and I suspect that attacking them when they screw up probably isn’t the best way to go about it.

Of course, while making mistakes is all well and good from a learning perspective, we don’t want to go too far with that. Which is why, as Bodek continues, we should distinguish between mistakes and defects. Making mistakes is all well and good, but we don’t want other people to suffer from them. This is where poka yoke devices come in: they help improve quality by making it as easy as possible for people to notice when something is going wrong.

The big news around here for the last week has been the oil spill in San Francisco Bay. The news coverage has been all about whether or not it was the fault of the pilot or of a machinery malfunction: train wreck management, or at least train wreck news coverage, at its best. I have no idea what really happened there, but I hope the actual investigation is focusing more on learning about what went wrong and preventing this in the future than on figuring out whom to point fingers at.

(I can’t remember where I read this – Gerald Weinberg somewhere, maybe? – but if you really feel a need for a rule on how to point fingers, here’s one: if you aren’t authorized to sign off on a purchase for X dollars, then you’re not ultimately responsible for a mistake that costs your company X dollars. Again, I don’t want to excuse defects, but people higher up in the company should be growing an environment that minimizes the chance of defects happening at an unacceptable frequency.)

random thoughts: november 11, 2007

November 11th, 2007

I would seem to be more confused than normal these days. Which, in the past, has frequently been a good sign; maybe my brain is figuring something out? Or maybe I’m just clueless. Anyways, I present to you a random collection of thoughts, which may or may not be related to each other in some way.

  • At work, I think we’re doing a reasonable job of adding new features. Though I’m sure there’s room for improvement.
  • I also think we’re doing a reasonable job of fixing bugs: acceptance test failures are way down, and we’re even successfully attacking sporadic bugs and old, thorny bugs.
  • Not so sure about code maintainability: there’s even some evidence to suggest that our code maintainability has, in some areas, gotten worse recently.
  • Code maintainability is harder to measure than features and bugs. And there’s less external pressure to get it right, so not surprising that it’s fallen by the wayside. Because of our successes in other areas, and because we’re doing a better job of planning this release than the last one, though, we have some time to attack it.
  • I wish I were better at helping various teams that I’m part of improve our processes.
  • One-on-ones are a good idea, even (especially?) if you don’t know what you’ll get out of them. And the more frequently you have them, the lower the pressure, which is a big help to everybody.
  • The book I’m currently reading at work is Matthew May’s The Elegant Solution. Which is reminding me of some aspects of lean that I hadn’t been focusing on, especially on the “respect for people” side.
  • Having the team all focused on the same, small-granularity tasks is wonderful in terms of making concrete progress in ways where our work reinforces each other and matches business value. Not necessarily so great in terms of letting people, say, focus on what they do best or define their own job.
  • One thing that May talks about is the power of opposing goals (make a car faster and get better mileage and lighter and cheaper by these specific amounts), and the evils of satisficing. Simultaneous satisfying all your goals sounds wonderful if you can do it; I wish I knew how. I suspect that Toyota has some very useful techniques to this end.
  • Alexia Bowers gave a good examples of meetin opposing goals, if I’m remembering the podcast correctly.
  • The book before last that I read was a guide to the ToC thinking tools. (See also It’s Not Luck.) Do these actually work? My brain is strangely resistant to even giving them a try.
  • I think I’m getting better at not talking in meetings, about chiming in and then letting other people argue for a while. Gratifying that, not infrequently, other people make the arguments that I would have made were I talking.
  • I stayed home on Friday, because Miranda was sick, and called into two meetings. Both of which were very frustrating. I think part of it was that I missed some of the cues of the flow of the meeting, and part of it was that I wasn’t very good at explaining, or even seeing, how we were talking past each other. (I did think of an evaporating cloud to explain one of the conflicts after the fact, for better or for worse.)
  • I wish I spent more time talking to people in other parts of Sun.
  • What do I want to do when I grow up?
  • After taking a break for a few years, I’ve gone to one conference each of the last two years, and gotten a lot out of each of them. I should continue this going forward. (And possibly even ramp it up a bit, since if there are further Agile Open Californias, I’m not going to stop going to them.) Where should I go next year?
  • What communities do I want to be part of? What does it mean to be part of those communities?
  • What teams am I currently part of? Do those teams behave how I think a team should behave? If not, how should I behave?

I could probably ramble on in this vein for quite some time; time to go to bed. Happy Armistice Day, all.

lessig’s ted talk

November 11th, 2007

Watching Lawrence Lessig’s TED talk was an excellent use of 19 minutes of my time; if you don’t know the examples (both historical and present day) that have motivated his recent work, you’re missing something.

go buy zack and wiki

November 11th, 2007

To all you Wii owners, I add my voice to the chorus of recommendations for Zack & Wiki. I’m not sure whether to call it a point-and-click adventure game or a puzzle game: it’s a sequence of set pieces all revolving around manipulating your environment to get to where you can open a treasure chest. Say you, for example, see a chest behind a door surrounded by bad guys. If you just go down there, you’ll die, so you go around the side passages until, say, you find an item that you can use to distract them. But the door is locked; you need a key. Oh, there’s a key hanging from a peg that you can’t reach; can you find an item that will let you reach up there?

The pointing and clicking to move and examine is, of course, done with the wiimote. But using items is also done with the wiimote, and is one of the better uses of its motion sensing: you hold the remote like would hold the actual item, and turn it or shake it or flip it or whatever to cause the item to do what you want.

We’re all playing; the puzzles are usually too hard for Miranda to figure out completely on her own, but she likes watching us and giving us suggestions, and then replaying the levels on her own later. I suspect that the levels will soon be hard enough that Liesl and I won’t be able to solve them independently, and will need to both work together to solve some of the tougher ones.

Something new, and the game isn’t getting nearly the publicity or shelf space of some other titles, so I wanted to help spread the word. It’s even a bit cheaper than your typical game.

stylesheet tweaks

November 8th, 2007

Okay, my stylesheet is mostly back: I’ve turned off comment formatting idiocy, restored my list bullets, turned off double justification, bumped the text back up to a non-microscopic size. I left the widths as-is, though, this time: I wish it were a bit wider, but I can deal with it, and it doesn’t look so bad on this computer. (I’ll see what it looks like on the mac.) Hmm, looks like I reordered the sidebar last time; I certainly don’t need 38 months of archive links right at the top of the sidebar, do I? (It would seem that I’ve been at this for a while; many thanks to all of you for putting up with me!) I’ll go move that, too.

One of these days, when I have some free time, I’ll go and look for a new theme. Though the last time or two when I did that, I just ended up back where I started. Which is okay, nothing wrong with the default one.

upgrade fun

November 8th, 2007

I just upgraded to Ubuntu 7.10. Seems to have gone fine; the fancy window decoration stuff still doesn’t work, but I still don’t care. And, in a fit of industriousness, I’ve just upgraded the blog to WordPress 2.3. (I even decided to switch to managing the checkout via subversion, just for kicks.) Now time to go and fiddle with stylesheet details, I guess…

slow progress through saved items

November 5th, 2007

Warning: this post consists of discussion of management of queues that matter only to myself, and is therefore extremely unlikely to be interesting to anybody else. Despite which I insist on writing it, because of my excessive fascination with the effects of and management of queues.

Two months ago, when discussing my lists of saved items in Google Reader, I claimed that:

my bet is that I’ll be down to 50 items in another couple of months, and will be down to 10 items in half a year.

Which, two months later, turns out to be false. I’m down to 89 items, and the only reason why the number is under 100 is because I took a sick day today. (My brain is not up to programming, but blogging and blog reading are not so demanding.) The tags that I’m currently using are:

  • blog: 4 items. (Would be longer were it not for my last post.)
  • commented: 5 items. (A bit longer than normal.)
  • flash-game: 8 items.
  • long: 6 items.
  • podcast: 11 items.
  • read: 0 items. (That’s the imperative form of the verb, not the present or past tense.)
  • recommendation: 33 items.
  • think: 10 items.
  • video: 12 items.

The numbers add up; as is normally the case, I don’t have anything double-tagged. (Other than numerical tags used for indexing purposes, which I’m not worrying about here.)

These lists have a different feel from each other. The simplest is “read”: that’s a temporary overflow area, nothing should stay in there for more than a day or so, it’s usually empty. The categories “blog” and “commented” are short-term queues for a specific purpose. (Well, they should be: all the current posts sitting in “blog” are from September. I should do something about that. Hmm, I’ll go and delete one of them right now!) Some of “podcast” fits into the specific, short-term category, too.

There are also queues of stuff that I want to get around to going through, but which is too long to fit into my normal rhythm: “flash-game”, “long”, “video”. (Some of “podcast” fits in here, too.) I’ve been making my way through that: these days, items that take 15 minutes or so to process don’t last in there for very long, but longer stuff can stay there for a while. Even so, the numbers in these categories are dwindling, but it wouldn’t surprise me if it takes a year to go through it all. (Hmm, does that add up? A net removing of one every two weeks? Seems plausible, but hopefully I can do a bit better than that.)

Looking at those three queues, it’s not clear to me that they’re the most useful choice anymore: am I getting anything out of segregating them based on content type? Maybe I should merge them all into “long”? Or maybe have “long” and “medium” categories, where “medium” means “about 15 minutes”? Or maybe I should put items of 15 minutes or less into “read”, and accept that occasionally items will stay in there for up to a week? Hard to say; the flip side is that I do like to have categories that don’t get much larger than about 10 items, so if I have reason to feel that way, then I shouldn’t merge them just yet. So I’ll leave them as-is for now, but I probably will merge them in a few months.

And then there’s “recommendation” and “think”. These, especially the former, are the big sinks. I use “recommendation” for blog posts that mention a book that I might want to read, a CD I might want to buy, etc., while “think” is for things that I’m considering doing: upgrading my WordPress installation, taking Alexander Technique lessons, learning a new way to tie a tie, various random stuff.

Those two queues don’t move very fast at all. My rate of reading books is dreadfully slow these days, for example, and I have other sources of book recommendations than blogs, so it’s a rare month when I knock off more than two or maybe three books of the recommendation list, while I can just as easily add two or three new recommendations back on. Similarly, I buy a new CD every week or two these days, but a lot of those are from artists that I’ve discovered elsewhere or artists that I already know I like and am working through the back catalog of. (Fortunately, or rather “fortunately”, I don’t subscribe to many blogs that give me good music recommendations.) To make things worse, some of the posts contain lists of recommendations where I’m interested in more than one item on the list.

Honestly, I’m not sure if the “recommendation” queue is growing or shrinking these days. And its size rather stands out. I should attack both of those problems by breaking it up into multiple categories; that makes since, after all, since I drain the different sorts of recommendations at different rates. Let me go and do that right now…

Okay, I’m back. It turns out that the oldest 8 saved items all fit into that category, which is further evidence that it was a bit out of control. (It would have been the oldest 10 if I hadn’t just shed a few.) The former “recommendation” category has turned into:

  • book: 18 items.
  • music: 9 items.
  • recommendation: 7 items.

So now I’m left with three decent-sized categories instead of one large one; that’s better. And one of the remaining ones is still the largest category on the list! I should clearly spend more time reading books.

I guess I should make another prediction, if for no other reason than that it will let me continue saying false things. Over the last two months, the list has more than shrunk in half, but I don’t think I’m going to be able to keep that up. I’ll predict that, over the next two months, the list will shrink by 20 items, that I’ll eventually reach a steady state of 20 items in total, and that it will take me a year to reach that steady state.

random links: november 5, 2007

November 5th, 2007

Also, some notes to myself: these are links that have stuck around as saved items in my blog reader where I can’t imagine what will either trigger me to act on the information therein yet where I want to keep them around somewhere. So I’m moving them here.

brain buster puzzle pak

November 3rd, 2007

I essentially finished Brain Buster Puzzle Pak some time towards the end of the summer. I’d finished all the built-in levels for the puzzles that I cared about; it has a random puzzle generator, though, which I wanted to explore more. But I never got around to doing that, and then I looked for it last week, and couldn’t find it! Annoying because, if those random puzzles are good (which they were in my brief experience), it’s actually a perfect game for having available at odd moments. Not sure if I like it enough to buy another copy, but I’m considering it. (If I can even find another copy; Amazon for one doesn’t carry the game.)

Enough blathering: I suppose I should tell you what the game is. As you might suspect from the title, it’s a collection of puzzle games. (Of the pen-and-pencil variety as opposed to, say, the falling blocks variety.) It has five types of puzzles in it: Sudoku, Kakuro, Nurikabe, Light On, and Slitherlink.

The sudoku interface is crap, at least compared to the interface in Brain Age. (Or, for that matter, the interface in a random physical book of sudoku puzzles.) And I don’t particularly like kakuro. So I gave up on those puzzles ten or twenty into them, and only made it that far because the initial puzzles were so mindnumbingly easy.

The other puzzle variants, however, were much better. I’d seen nurikabe and slitherlink before; they’re both pleasantly geometric (or perhaps topological would be a more appropriate adjective?), and have a completely different feel to me than most other puzzle types that I’m aware of. (Masyu is another example of that; a pity there aren’t any examples here.) Nurikabe is actually the reason why I’m currently subscribed to Games magazine: before a trip a few years ago, I picked up a copy to go through on the plane, and they had some really fun nurikabe puzzles. Of course, not all puzzle makers are of equal quality, but the ones in Games magazine and the ones in this game are both by Nikoli, and they definitely know their stuff.

So: good puzzles. The DS screen is only so large, and they decided to avoid scrolling, which meant that there weren’t any enormous nurikabe puzzles that take an hour to solve. I can live with that. The slitherlink puzzles were actually done on a grid that was a bit too small, so it occasionally read me as trying to draw a line somewhere other than where I intended; annoying, but I could deal. I’d never seen light up before; it’s a pleasant genre, though all the puzzles that were included were basically trivial, which makes me suspect that it’s impossible to make difficult light up puzzles unless you’re working on a larger grid.

And, in my brief experience, the randomly generated light up puzzles were good, too. I didn’t get around to trying the randomly generated nurikabe or slitherlink puzzles before I lost my copy of the game, unfortunately.

I recommend the game, and Liesl enjoyed it as well. Having said that, if you’re only going to get one DS puzzle game, then Picross is the one you want: Liesl is sitting to my left playing it right now, and it is insanely addictive. But this is good, too; writing this review, I want more of those puzzles to work through! Hmm, I was thinking of doing an order from Amazon Japan soon; I should throw in some of Nikoli’s puzzle books…

earthquake

November 1st, 2007

Now I know what an earthquake feels like. About time; I’ve been living in the Bay Area for nine years, after all.

finished converting dbcdb to ruby

October 28th, 2007

I’ve finally finished converting dbcdb from Java to Ruby. I’ve been using the Ruby version of the tool to write the database for about four months, but I’d still been using the Java version to write the web pages.

Nothing too deep going on here; I was actually done with everything but the indexes as of the middle of September, but I hadn’t gotten around to generating the indexes until this weekend. (Or do people prefer that I spell it ‘indices’?) We’ve been busy with some extra event every single weekend for about the last two months; combining that with wanting to learn Japanese, working through Metroid and Picross, and occasionally working on the game with Miranda means that, unless I’m feeling extraordinarily disciplined, dbcdb falls by the wayside. But we had nothing planned this weekend, so I seized the opportunity.

The new code is a little more than half as long; the acceptance tests also run almost twice as fast. (All that JVM startup takes time, I guess? I don’t think there are significant algorithmic performance variations in the two versions.) Go Ruby, though I’m sure it would be very easy to find situations where the performance goes the other way. Both generate the exact same output, as manifested by running the same acceptance tests on both versions and on, ultimately, doing a diff -r on both outputs from the current live database contents.

What next? There are some cosmetic tweaks I may or may not get around to making; I’m not feeling any urgency on that score right now. I had planned to next convert this from generating static web pages offline to generating them dynamically via mod_ruby; now I’m feeling distinctly less interested in that idea. (Partly because the REST book reminded me of some of the benefits of static web pages, ironically.) I still want to experiment with that at some point, but now I’m thinking I’ll just do that by coming up with a Rails project instead of doing everything from scratch.

So it looks like it might be time to declare this a success and move on. And it has been a success, no question: I’ve brushed up on my Java a bit, dabbled with SQL, learned Ruby, and basically enjoyed myself. So, from a purely didactic standpoint, I’m quite happy.

There is one thing that I’m not happy with, though. I’d originally envisioned the generated web pages as actually being useful in that they’d provide an index into my blog posts: they would give an easy way for people to find all the web pages where I write about a given game, say. And they do provide an index, but it’s not as easy as I’d like: people have to click on the link to the database and then click from there to a search link, and that’s expecting quite a bit from my readers. (Especially since there’s honestly nothing of particular interest on the database web page itself.)

So I’d like to remove one of those links, to compress it down to one level. In this AJAX-aware world, the mechanisms for doing that are pretty well-trodden: write some JavaScript to do the query in the background, and then stick the results in the database web page. And, in fact, it turns out that WordPress can generate an RSS feed of query results, so I don’t have to worry about page scraping and having details change as I upgrade my WordPress installation. (Which I should really do one of these days – I’m still on 2.0…)

One last task, then. Which is made a bit harder than it would otherwise be by the fact that I don’t know how to write JavaScript, I’m not familiar with the DOM model (if indeed that’s the right term to use), and I don’t know how to acceptance test AJAX. But I’m not particularly worried about either of these: like I said, this is a well-trodden path, so it shouldn’t be very hard to find examples that do pretty much exactly what I want to do.

agile open california: the sessions

October 26th, 2007

And now to some actual content from Agile Open California. As I mentioned before, I hosted a session called I Don’t Like Pair Programming, since the topic had been on my mind after our team meeting the previous week.

The title isn’t really accurate: I usually enjoy pair programming when I’m doing it, but my brain nonetheless persists in not looking forward to it. Which is weird—I would like to think that my brain is generally more sensible than that—so I thought I should ask for help understanding myself.

My guess is that it was the single most sparsely attended session at the conference: there were about five of us there. But I really enjoyed it, and am quite grateful to the others who showed up. The main piece of psychological advice that I picked up was contributed by Rob Myers (who learned it from the AYE Conference): it’s not that introverts don’t like people, it’s that we need time alone to recharge. Which suggests that, perhaps, if I had, say, one or two hour-and-a-half pairing sessions a day, I’d be more likely to enjoy (or less likely to feel trepidation towards) pair programming than I do in my team now, where a pair typically sticks together until either the day ends or the card ends. This would require other changes in the way my team operates, but I suspect they’re all to the good: we hog cards too much as is.

Steve Bockman also gave us the following pairing mechanics suggestion: pass the keyboard every time you write a test, get a test to pass, or refactor. Which sounds like fun to try; I don’t think that I’m bothered by keyboard hogging, but other people probably are, and I’m certainly curious what the experiment would feel like.

The other thing I wanted to talk about from the conference: for whatever reason, some discussion that we had during a session that Rob hosted on “Maintaining a Collegial Environment in a Competitive World” got me thinking about teams transitioning to agile. (No idea how the topic led to this thought; which is a sign of the strengths of the conference.) Some people (e.g. Ron Jeffries) strongly suggest that, if you’re intrigued by XP but aren’t sure it’s all a good idea, you should just do it by the book for a while, and see how it works. (As opposed to starting with the parts that make sense to you, and then maybe adding in more stuff and maybe not.)

But we can juxtapose this against two other ideas from the agile and lean worlds:

  • When dealing with legacy code, there’s a temptation to just rip it out wholesale. But that’s a good idea much less often than you’d think: it’s often much better to accept the code and gradually refactor and add tests as you need to touch it.
  • Taiichi Ohno has suggested (I believe, I’m too lazy to dig up a reference) that you shouldn’t start with a standard work specification that’s too good: it’s better to start quickly with something mediocre, among other reasons that it will be easy to find ways to improve it!

I’m not going to take either of these as suggesting that, in general, Ron is wrong: for one thing, sometimes the right thing to do with legacy code is to throw it out, and I’ve read stories from the lean world about Japanese experts coming in, making drastic changes, and getting immediate results. But what they do suggest is that, rather than focusing on getting the details of the situation right immediately, better to focus on how to improve the situation in a disciplined matter. In other words, refactoring supported by testing in the code world, continuous improvement via formal experiments in the process world.

netapp countersuit

October 25th, 2007

My favorite bit from my employer’s counterclaim in the NetApp case:

COMPLAINT PARAGRAPH 3:

NetApp is a pioneer in the design of data storage systems marketed throughout the United States and abroad and continues to innovate new advances in data storage technology. NetApp’s patents cover a host of advanced features found in NetApp’s award-winning Data ONTAP storage operating system and Write Anywhere File Layout (WAFL) filesystem. These include fundamental developments in filesystems, data consistency, data integrity, storage management, write allocation, read-only data images (SnapshotsTM), writeable clones, copy-on-write, RAID arrays and assimilation, and file system image transfer. NetApp’s patented features are demanded by customers the world over because they greatly enhance the performance, reliability and ease of use of data storage systems.

ANSWER TO COMPLAINT PARAGRAPH 3:

Sun denies the allegations of the first, third and fourth sentences of paragraph 3 of the Complaint.

I’m not sure we come off completely smelling like roses in this suit, either, but if we’re going to have a patent lawsuit, this is the right thing to do with the gains:

I am committing that Sun will donate half of those proceeds to the leading institutions promoting free software and patent reform (in specific, The Software Freedom Law Center and the Peer to Patent initiative), and to the legal defense of free software innovators. We will continue to fund the aggressive reexamination of spurious patents used against the community (which we’ve been doing behind the scenes on behalf of several open source innovators). Whatever’s left over will fuel a venture fund fostering innovation in the free software community.

Some reading on the subject:

agile open california: the mechanics

October 24th, 2007

I spent Monday and Tuesday at the first Agile Open California. I learned several things there, which I hope I’ll find time to blog about over the next couple of days, but I want to start by talking about the format.

Actually before getting into the format, I want to talk about the setting. It was at Fort Mason, which is right on the northern edge of San Francisco, and took place during what must have been the two most delightful days of weather in S.F. that entire year: sunny and right around 80 degrees both days, either of which is a rather improbable event. The conference started with me sitting in a large room with half of my attention out the window looking at the sailboats in the marina and the Golden Gate bridge behind them. On the second day, I discovered the delights of spending free time on an outside stairs/fire escape on the northern side of the building: nice and warm, with a bit of a breeze, and while I couldn’t see the bridge and the marina from there, I could look straight across the bay to the northern shore.

So: hard to beat the setting. As to the format: it was the first time I’d gone to an all-open space conference. No talks prepared in advance: we spent the first thirty minutes or so coming up with the schedule, with people just writing a topic on a piece of paper, standing up and explaining it, and putting it on a schedule grid on the wall. Much to my surprise—I had zero plans of doing this going in—I turned out to be one of those people, because I had something on my mind after last week’s team meeting. (My topic being “I Don’t Like Pair Programming”; I’ll leave that to another blog post, other than to say that the title isn’t really accurate.) At the end of this, we had a schedule that averaged around three sessions at any given time, with me always at least somewhat interested in one of the sessions in any given slot and, as often as not, interested enough in two of them to wish I could be in two places at once. Basically, while hardly a stunning revelation, it was about as good a conference schedule as I’ve seen.

Which brings us to another aspect of open space: while you can’t actually be in two places at once, you are explicitly given your blessing to flit from session to session to follow your interest. I really didn’t do this, though: I stayed in a session from start to finish (except one time when I left early and went out to the aforementioned stairs to hang out and read a book), and pretty much everybody else seemed to do the same. (There may have been a contingent of people who didn’t really go to the sessions at all and just hung out and chatted; I’m not sure.) Part of this was that I was enjoying the sessions, part of this was that the sessions led to intricate enough conversations that I’m not sure I would have gotten a lot out of jumping into the middle of them, and part of this was that there weren’t any times where there were two sessions that both looked really interesting and where the one I went to first proved to be uninteresting.

So: the format doesn’t provide a miracle solution to the “be in two places at once” problem. Which is too bad, but what took me until the second day to realize was that it does provide a solution to another problem. Namely: at some point during grad school, I developed an allergy to lectures. I like learning about things by listening to other people, but I want a chance to talk back, to express all the thoughts that they spark, and to do this with more than one person at once. Which I got to do that for a couple of days, and it was great! Sure, some of the discussions were sort of meh, but some of them were completely fascinating, and I found myself having sudden revelations out of the blue, which I could express immediately, get feedback on, and refine in real time.

Honestly, I might now be spoiled for normal conferences. I won’t propose this as the miracle solution for everything: for one thing, not everybody is as allergic to lectures or likes talking as much as I do, and for another thing it probably works better in a setting where intermediate or advanced practitioners are trying to refine knowledge than, say, a setting where people novice practitioners are trying to acquire knowledge. (At least, that’s what I’d guess, but who knows.) And, while I generally prefer to get my canned knowledge in book or other written form, I’ve been to some wonderful talks in my time. But I tentatively think that this is now my new default best practice for running conferences, and any other format has to justify itself.

One other unusual thing about the conference: the makeup of the audience was rather different from what I’m used to in a setting discussing a technical topic. (Which makes sense, actually: agile focuses a lot on interpersonal matters, and open space probably draws more eccentrics than the norm.) In the closing session, I counted 17 men and 13 women; not all the attendees stayed through that session, but I don’t think the gender ration of the stragglers was particularly different from the rest of the conference. Also, I felt like a minority in either my role as a programmer or my role as a person manager: in particular, there were both more consultants and more product/project managers than I’m used to spending time with. Which is great: always good to be exposed to new viewpoints, they certainly had interesting things to say, and the consultants were people who clearly had a lot of valuable knowledge/experience and whom I would be happy to bring into a project that I was working on.

So: sign me up for next year! (Even if the conference can’t guarantee the same weather again.) Who knows, maybe I’ll even gather up a bit of foolhardiness and volunteer to help organize.

magic flute

October 22nd, 2007

We took Miranda to her first opera yesterday, a performance of Die Zauberflöte. The costumes were absolutely stunning; they were designed by Gerald Scarfe, had gorgeous vibrant colours, were very inventive and amusing, and a pleasure in every way to watch. (I wish I could find some good photos online, but my searching didn’t turn up anything that did them justice.) A bit too amusing, actually – in a few places, the audience’s laughter got in the way of the music – but I’ll take that.

The performance itself was good, if not breathtaking. Not that I’m in the best position to speak on the matter – my collection of opera CD’s is rather heavily weighted towards the 20th century, Benjamin Britten in particular. (I can also be found singing snippets of The Mother of Us All not infrequently; why didn’t I go see that when the SF Opera performed it four or five years ago?) Actually, my CD collection is notably light on Mozart in general; I love his Requiem, but I can take or leave most of the rest of his work. (I have been known to enjoy playing his piano sonatas at times.) I’m certainly glad we went; Miranda enjoyed herself, and she wasn’t alone in that. Not sure we’ll make a habit of opera, but we really should start going to orchestra concerts. How is the San Francisco Symphony? (Hmm, they did Alexander Nevsky this weekend.) Are there any decent orchestra options down the peninsula?

go rockies

October 22nd, 2007

My brain would seem to be rooting for the Rockies now. Which surprises me, given that I lived in Boston for nine years; I guess this is what happens when the Red Sox have recently won a World Series, have too much money, beat the Indians, and are up against a team that’s been an entertaining surprise.

cd baby now selling mp3s

October 19th, 2007

I just discovered that CD Baby is now selling mp3s. Nice to see mp3 purchase options opening up like this; also, I like both the fact that they list up front how much of the sale price goes to the artist and that the amount is 91%.

Of course, discovering this wasn’t enough to get me to buy Test Drive Songs from them instead of from Amazon. Not sure why; maybe because I was already planning to buy it from Amazon, maybe because of the price, maybe because of the Amazon iTunes integration.