Archive for the ‘Books’ Category

more love hina fans

Saturday, February 16th, 2008

I’m not the only person in the house who likes Love Hina: Liesl liked them, too, and Miranda is halfway through the series now and is finding them highly entertaining. Glad it’s not just me…

cards in my pocket

Saturday, February 2nd, 2008

A year or two ago, my brother gave me a copy of the Getting Things Done book. I won’t go into the details here (partly because it’s been more than a year since I read the book, so I don’t remember the details!), but it’s basically a system for organizing tasks in such a way that important stuff gets done with as little administrative overhead as possible, while simultaneously freeing your brain from worries that you’ll forget anything.

Which is something that I can use: sometimes I forget tasks, I procrastinate on large/important tasks longer than is desirable (the GTD system has some special techniques to address that one), and my e-mail inboxes are pretty cluttered.

Of course, since this is a potentially large/important task, I immediately set hard to work on procrastinating, not doing anything about it while periodically worrying that I should be something. Which is just the wrong thing to do, from a GTD point of view: instead, I should identify the next concrete step towards implementing the system, write it down somewhere where I won’t forget it, and then take care of it when I have a free moment while I’m in an appropriate place.

I decided that the next important step was finding a place to write down various lists. The main criterion is that it has to always be accessible (part of the system is that you can write down an idea whenever you think of it, and look at your todo list whenever you have a moment). The cool kids all like Moleskine notebooks, and for all I know I might eventually move to one of those, but I didn’t think it was a good idea to start with: I don’t even know what my categories are, and I certainly don’t know at what proportion I’ll move through pages in those categories, so I’d rather start off with something random-access.

My boss carries around a case for holding 3×5 cards; a couple of weeks ago, I took a look at it. It was a bit bulky, but it fit well enough in my pocket. And 3×5 cards are perfectly suited to my random-access desires: give me some white cards to write on and a few colored cards for category dividers, and I’ll be all set. I haven’t yet found a link to that specific case online, but a local Office Depot had one, so I went out and bought one about two weeks ago.

So far, results have been good. I’ve been getting prosaic little things done quickly and reliably: if at home I think of some information at work that I need to e-mail Liesl (e.g. exactly what information I need her to get from the daycare so I can file my last 2007 dependent care receipts), I now get that taken care of the next day. I’ve taken care of some slightly larger projects, and taken a first step (and written down my next step, I just need a bit of free time at work to make a phone call at lunch and a morning when I can work from home, neither of which have been in great supply recently) towards a bigger project. I’m still in the first blush of excitement, and I’m not at all convinced yet that it will continue to have an effect of guilting me into getting stuff taken care of, but it does seem to have real organizational benefits in situations where guilt isn’t necessary. (Which is most of them!)

So far I’m using categories of “task list”, “blog ideas”, “projects”, and “shopping”. (The latter isn’t for stuff I need soon - that goes in the task list - and it’s also not for abstract wish lists, it’s for notes like “if I happen to pass an Indian grocery store, I should buy a bag of ground coriander”.) I expect that I’ll think of one or two more categories eventually, though. The card case I bought works well enough, but it really is a bit thick; I just went and ordered a Circa PDA Notebook from Levenger, and we’ll see how that turns out. It should be thinner and more stylish; I’m worried about how durable it will be, and it may or may not feel less random-access than my current index card solution in ways that matter.

I’m still very much in the playing around stage, of course. I need to reread the book, for one, to see what I’m missing. And, of the things I can think of from the book, I’ve got my task list taken care of, and I’ve stored a simple tickler file on my computer, but I need to rethink my e-mail sorting strategy. That will happen soon enough, though (yay short book queues), and it’s not urgent: if I don’t get around to rereading the book until a month from now, the plus side will be that I’ll have had a month of experience with my new system, which will give me something more concrete to test against when reading it.

random links: december 31, 2007

Monday, December 31st, 2007

reprinting (three-quarters of) zot!

Friday, December 28th, 2007

They’re reprinting Zot!. Well, most if it: they’re only reprinting the black-and-white strips. (Found via Andrew Wheeler.)

This is somewhat old news; I wanted to reread the series first, in particular the color issues, before lamenting the partial reprint. After all, we’ve been through reprinting three-quarters of the series before! I’m glad that they’re reprinting a different three-quarters of it this time, both so that people will be able to find the whole series a bit more easily and because the last quarter is pretty special. But the first quarter is pretty special, too! (Hmm, which quarter would I prefer that they leave out, if they were compelled to do so for some strange reason? The second, I guess.)

According to Publishers Weekly, the partial publication is “a creative decision by Scott”; sigh. Having said that, I don’t want to read too much into this; if the black-and-white reprint sells well, there will probably be a fair amount of lobbying to see the rest, and I wouldn’t be surprised if he gave in: I would think he’d have to be extremely thin-skinned / self-conscious to be actively embarrassed by the early issues.

creation and benefits of implementation patterns

Sunday, 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.

random thoughts: november 11, 2007

Sunday, 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.

throw everything at the language and see what sticks

Saturday, September 29th, 2007

I think I’ve mentioned this before, but learning Japanese continues to increase my sympathy towards kids who are learning to read and misread words in ways which seem inconceivable to me. My brain is pretty much incapable of looking at a word in English and not reading it immediately; the same is far from true in Japanese. For example, one of my vocabulary cards has a character written on the front, and the readings shutsu, desu, and deru on the back. (With their meetings.) At least that’s what I thought was written on the back for several days, until I took a closer book, and noticed that the second reading was dasu, not desu. Oops. I mean, it’s not like da and de even look similar, I simply wasn’t paying attention, and my brain isn’t yet wired to read correctly when I’m not paying attention.

I started off studying the language with the help of JapanesePod101 and a textbook (Japanese for Today). Then I added Read Japanese Today, which I continue to think is an excellent way to learn kanji. I’d also been using Kanji & Kana as a reference book, so I got my stroke order right when writing characters for vocabulary cards; over the last few month, however, I found myself browsing through it more often in odd moments.

It’s a book I’ve had around since the last time I tried to learn the language. It contains the government-approved list of 1945 basic kanji, showing how to write each, giving the various readings and meanings, as well as a few compounds in which they appear. And does so in an order based more or less on how important they are. A great book to have around, if you want to immerse yourself in the basic kanji; last decade, I tried to go through the book and memorize the kanji in order.

But I went too far with the book. At one point, I could go through the first 200 characters or so, and write them down in the order given in the book, with the proper stroke order. Which is a very seductive thing to do: it gives you something to practice if you just have some spare time, or are falling asleep at night, or whatever. The problem is that my memorizing of my strokes got ahead of my memorizing of the readings and the meanings, so things got unbalanced.

Because of my bad experience, I stayed away from doing the same thing this time. But then I glanced through the start of the book and realized that I claimed to know most of the characters on the first few pages. So what’s the harm in memorizing the order in the book, and reviewing the strokes in my head?

Thinking about it more, I think that, not only isn’t there harm, there’s virtue in it. If I claim I know a character, even if I’m only interested in reading the language rather than writing it, I have to be able to recognize it completely reliably; given the number of characters that look similar, in practice I can’t claim that unless I could write the character. But vocabulary cards, by their nature, don’t give me practice in writing characters. So I have to find another way to practice writing them; memorizing them in the order in that book is as good a way to practice that as I can think of.

Having said that, I don’t want to forget what happened last time. I think/hope I’m doing a better job of managing my learning; the key here is to not have my memorizing how to write the characters get ahead of my memorizing their readings/meanings. If I do that, I’ll be okay.

The other book I’m reading right now is Japanese the Manga Way. It’s a relatively informal grammar of the language, with examples taken from manga. Which works well: besides being fun, manga gives a natural source of language examples that are closer to regular spoken Japanese than other written examples would be.

Other things I like about the book: for one, I can occasionally figure out what the examples are saying, kanji and all, before reading the explanations. And, for another thing, it presents the grammatical points in a rather different order than other sources that I’m using. (Perhaps because it isn’t constrained by having examples only use material that has been previously introduced.). I like seeing another lens on the language, and one which is perhaps a bit more coherent than others I have access to, one which is less intent on mapping the grammar to concepts in English.

The other thing I’ve been doing is watching (the excellent) Last Exile in Japanese with subtitles; again, nice to occasionally be able to figure out by myself what people are saying. Don’t get me wrong, the vast majority of the time I depend very much on the subtitles, but I’m starting to get the feeling that it might really stick this time.

Or maybe I’ll burn out in another couple of months! Always a possibility…

detailing carpets

Thursday, August 16th, 2007

I’ve been on a bit of a Christopher Alexander kick for the last couple of years. At first, I started reading his most famous books, but those were good enough to leave me curious about what else he’d written. Not all of which is great, but enough is to keep me going.

Still, it’s taken me a while to get around to his book on carpets. For one thing, it’s out of print, and it took me a while to find a copy at a price that I’m willing to pay. For another thing, I don’t particularly care about carpets! But I finally found a copy, which I started reading earlier this week.

And I was completely blown away right from the start. Mainly because of the pictures: I was completely unprepared for the colors that are used in the carpets that he gives as early examples. But he also starts right off with a point that is really resonating with me right now:

What is often called the “detail” of the building—its fine structure—is not some kind of icing on the cake, but … the essence of what it is, and how it makes its impact upon us. (pp. 7–8)

The small stuff matters just as much as the big stuff; the power of the big stuff comes in large part out of the small stuff.

Translated into programming terms: keep your code clean, make every line as expressive as it can be. Which is something that I really enjoy doing, and I’m quite sure that I have a lot more to learn in that area. In particular, I’m fairly sure that there’s a lot more power to the notion that unexpected structure can arise somewhat spontaneously by determined refactoring than I’ve experienced so far. I don’t really believe that determined refactoring is all you need for good structure, but there too I have a lot to learn: where do you need more design, and what sort of extra design do you need?

(Side note: if I’m remembering correctly, Lisa Crawford told me once that Gustav Leonhardt spent a lot of time working with his students on how to best play short musical phrases. This sort of ability worked great for him, but apparently left some of his students able to play pieces in ways that sounded good at the small scale but didn’t work out so well in the large.)

But I’m not getting nearly enough practice at this. In my pet project at home, I’m trying to keep the code expressive and free from duplication, but there’s only so much you can learn from a thousand lines of code. I’ve had some interesting experiences at work, but there’s a lot of legacy code there, and I can’t responsibly spend large amounts of time cleaning it up.

Having the team as a whole spend small amounts of time cleaning it up is something that would be responsible for me to push on; I haven’t been very successful in balancing that against other activities with more immediate payoff so far, but I want to keep on trying. Even if that is successful, though, what I’ll get out of it will be different: I’ll learn a lot about balancing competing short-term and long-term demands, which is great, but I won’t have the experiences of uncovering structure myself.

What to do? One possibility is to try to work on a bigger project myself at home. I don’t feel like I have any big ideas bursting out right now, though. (Do any of my readers? I’m open to collaboration…) Another possibility would be to spend some time on evenings and weekends cleaning up the work code base. That sounds more reasonable; it still raises issues as to whether or not I’d be acting responsibly in doing so (since I’d be doing so for my own benefit, and I wouldn’t want that to hurt my team, e.g. by setting a bad example or depriving them of pleasure/learning opportunities), but in the balance I think that would be okay.

Or I could find a medium-sized open source project with an interesting code base to get involved in. That’s also an intriguing idea, and one that could have other benefits (and, to be sure, down sides); I have a few ideas in the back of my mind, but nothing concrete yet. I’m certainly open to suggestions on this front.

I’ll think it over for a few months: balancing the demands of existing programming projects, learning Japanese, reading blogs, blogging, playing video games, and of course reading books is quite a challenge as is. So, realistically, something has to give, which probably means that I have to wait until I’m done with my current personal programming project, and I already have another couple ones sketched out after it. But maybe in three or six months I’ll have managed to carve out a bit more time.

Back to the book. I’m not as in love with the rest of the first part of the book as I was with the beginning. He’s spending a lot of time talking about centers; I’d already seen those ideas in more refined form in The Phenomenon of Life. Still, it’s interesting enough, and I’m now pretty curious about the catalog of carpets that makes up most of the book.

I now have all of his earlier books except for The Linz Cafe: that one I have been unable to find at a price that I’m willing to pay. I just put in an interlibrary loan request for it, though. Once I’m done with it, I guess I’ll reread The Phenomenon of Life, and then move on to the rest of The Nature of Order.

learning japanese: a month and a half in

Wednesday, August 15th, 2007

I’m on the fourth chapter of my Japanese textbook now, enough for a new set of difficulties to surface. All of which ring vague bells from a decade ago; I’m trying to do things right this time, which means that I need better strategies for facing these difficulties than I had last time.

One problem: when I claim I know a vocabulary word, when I move it from the “review regularly” stack of flash cards to the “mastered” stack of flash cards, I want that to mean that I really do know the word! But, for an uncomfortable number of flash cards, what is really going on is that I can reliably, upon seeing the front of the flash card, recite what is on the back of the card. Which isn’t the same thing.

Some aspects of that problem show up no matter what language you’re learning. For example, I usually only do my cards in one direction, so I regularly drill going from megane to “glasses” but not in the other direction. Also, their are grammatical issues: to really know a verb, you should be able to conjugate it at will, and recognize it in any of its forms.

Those particular problems aren’t that big a deal for me yet. I haven’t learned too much grammar, and I’m doing a pretty good job so far in being able to go from English to Japanese even though I’m drilling Japanese to English.

What is a big deal is the presence of kanji. This increases complexity in a few different ways. For one thing, I have to go between three forms of the word (kanji, pronunciation, and English) instead of just two forms (Japanese and English). And, of course, a single kanji character can have multiple pronunciations, which may or may not have multiple readings, and which may or may not be signalled by adding some kana at the end. (After some experimentation, I’ve decided to exile all the extra kana to the back of the card, instead of leaving it on front.)

That’s the obvious problem, but there’s also a more subtle one. When I see a vocabulary card, I see something I wrote by hand, taken from a limited number of other vocabulary cards that I’ve written. So when I see, say, the kanji for bijutsukan, what I really see is a card with three kanji characters on the front, where in this case I happen to have written the kanji characters a little smaller than would be ideal, and a little bit off center. And, honestly, that enough is almost enough to allow me to uniquely identify the vocabulary card from among my current set, especially if one of the radicals in one of the kanji seems familiar for some reason.

But, of course, that doesn’t mean that I know the word at all: if I saw those same three characters in a Japanese book, I would have almost zero chance of recognizing them as bijutsukan, and for that matter I’d be equally likely to mistakenly think that some other sequence of three characters might represent bijutsukan. I now appreciate what kids learning to read and write English are going through when they see a sequence of letters and guess that it’s some other word that happens to start with the same letter or two and is more or less the same length: they don’t have any deeper grasp of the phonetics of written English than I do of the radicals that make up a kanji character, and in both cases we quickly get overwhelmed by the task of really understanding how a word is written.

So what do I do about this? Part of my solution is to simplify the problem. I can adopt a classic agile planning technique: recognize that there isn’t a strong correlation between the difficulty of a task and its business value, and that, when chosing between two equally tasks of equal business value, you’ll get the quickest bang for the buck by doing the easier one first. What that translates to in this case is that, all things being equal, I should try to memorize words made up of as few kanji characters as possible. So one is best, two might be okay, especially if I’ve seen one of them before, three is unlikely to be a good idea. And not all kanji characters are created equal: given a choice, I should choose characters made up of as few radicals as possible, to increase the chance that I’ll be able to really know the whole character. (As opposed to, say, having the left side of the character trigger a memory in me.)

That alone isn’t good enough, though: it doesn’t leave me with a strategy for dealing with important but more complicated characters/words, and doesn’t directly address the complexity of what it means to learn a character. To really learn a character, I should be able to write it out myself, and be able to reliably tell it apart from similar-looking characters, characters with, say, the same radical on the left and on the upper-right but a different one on the lower right.

The answer to both of these aspects of knowledge is, for me, the same: I need to learn to love radicals. Once I really know the radicals, I won’t have to, say, recognize and reproduce the thirteen strokes making up a complicated character, I’ll just have to recognize and reproduce the three radicals making it up. That’s not a simple problem, given that there are about 200 radicals to grapple with, but it’s at least a tractable problem. Especially since the radicals in a character aren’t chosen arbitrarily: radicals have meanings on their own, so you can frequently build up the meaning of a larger characters out of the meanings of its radicals, and radicals can at times lend their pronunciation to the pronunciation of the entire character. So there’s real structure to work with here; as I buff up my radical credentials, it should become easier and easier for me to learn more and more complex characters.

And, fortunately, I’ve recently acquired an excellent book on the subject. It does a great job of showing how the characters evolved (and is historically accurate, as far as I can tell), and of gradually introducing radicals and showing how they add meaning in more and more contexts. So I’m gradually adding characters from that book into my stack of cards to memorize, even if I haven’t run into those characters in my textbook, and trying to remember the evolution of those characters in the bargain. Should make learning characters more fun, and easier.

That’s the main problem; there are a couple of other problems that I’m running into as well, though. One is that there are too many new words in each chapter for me to be able to memorize. I was worried about this three weeks ago: it seemed like my stack of unmemorized cards was getting longer and longer. Since then, I’ve been doing a pretty good job of moving cards into the memorized stack, but I don’t want to ignore the problem. (Especially since I’m now adding vocabulary cards from a source other than my textbook!)

Part of the solution is to simply not memorize every new word in each chapter. Each chapter introduces maybe 80-100 new words; I’m pretty sure that I can get away with only learning 40 or 50 of them right then. So I’m picking the ones that seem particularly likely to be important, or particularly likely to be easy to learn, and I don’t sweat the other ones for now. And if, in subsequent chapters, I keep on encountering a word that I didn’t memorize when it first showed up, then I can always learn the word later. It’s not completely clear that this is a scalable strategy - maybe, once I get to chapter 15, I’ll have to memorize 5 new words from each of the previous 15 chapters along with an extra 50 words from that chapter, which would suck - but I think it’s worth giving a try.

The second part of the solution is basic queue management: the problem here is an unbounded queue. And if you don’t want to have an unbounded queue, then put a cap on it! So I could adopt a rule that I can never have more than, say, an inch of unmemorize vocab cards in the box. Once I reach an inch, I have to do something else until the stack goes down: some combination of memorizing a smaller proportion of words in each chapter, taking longer to go through each chapter, and learning to be more effective at memorizing words. I don’t have an exam schedule or anything that I’m working towards: I want to do this right, and to do this right I need to balance my capacities, my time, and the number of words that I’m attempting, instead of letting artificial pressures skew my attempts at the cost of a loss of effectiveness.

So far, all the problems I’ve talked about have been about memorizing words, but it’s also starting to get a little harder to put everything in the chapter together. In the fourth chapter, for the first time, I had a bit of trouble doing all the exercises in the chapter the first time through, because of a combination of not having all the grammatical details, the usage details, and the words at my fingertips. I think that, for now, the best approach is to acknowledge that this is a potential issue, and be alert for warning signs. So I’m planning to go through the exercises in this chapter until I can do them all easily; if that means it takes three weeks to get through the chapter instead of two, that’s fine.

I imagine that further non-vocabulary issues will crop up as I go along: needing to memorize conjugations, for example. It’s been a while (almost 15 years! Ouch) since I’ve had to deal with that sort of thing, but I was once adequate at memorizing grammar, so I assume I’ll be able to do it again, and I don’t think Japanese holds any particular horrors in that area. And further holistic issues will appear: getting practice in reading actual books (and finding a suitable gradual series of books to practice that), practicing spoken Japanese. I imagine that, once those become urgent problems, outside guidance will be essential; fortunately, outside guidance shouldn’t be hard to find around here.

Fun stuff.

boston trip notes

Sunday, July 29th, 2007

Some random notes from our recent trip to Boston and its environs:

  • T tokens are no more. Which made me a little sad, but I was very happy that, when arriving Tuesday evening for a trip where we’d be leaving the next Tuesday morning and would spend three days outside of Boston, there was a week pass available that was a good value. And I now know that kids under 12 can ride for free, but didn’t know that when buying the passes…
  • I was surprised that we got a good rate at the Park Plaza for a couple of days - is it normally affordable, or did we get lucky with a Tuesday/Wednesday request? Good location (though it took us a little while to find it, because we were confused by the construction at the Arlington T stop), and I could live without free internet access for two days. And an Amino set-top box on the TV - just like being at work!
  • Hampton Inn has decent internet access at no extra charge. Though I was pretty annoyed at the fake nameserver at the Norwood one that sticks in an ad page if an address doesn’t resolve. Especially the one evening when, for whatever reason, a fair number of lookups were timing out, poisoning any future requests to those domains for the next 15 minutes or so. Not good if you’re reading blogs and can’t get to feedburner.com any more…
  • I was impressed how we could get from downtown Boston to a turnpike entrance three short blocks away to out of town almost immediately. Especially since it doesn’t feel like there’s a turnpike cutting through downtown Boston, though I realize that I have walked on bridges over it several times.
  • Sturbridge Village turned out to be a really good choice for a place to spend much of a day. Enough stuff to keep us interested, very low key, we got to see 1820’s welding technology in practice, Miranda liked it too.
  • The suburbs that aren’t in the inner ring seem to kind of suck, at least near the arteries. I was not pleased with being stuck traveling at 5 miles an hour on 128 at 5pm, and route 1 in Norwood was not a place where I’d want to spend much time, if largely for aesthetic reasons.
  • Got to see a couple more retirement communities. I’m glad these things are around. (Though I’m sure there are bad ones out there, too.)
  • Didn’t get to see almost any friends or old haunts: we were too busy doing other stuff. Which is fine, actually: almost all of my Boston-area friends have moved away. I wish I’d had another day to just putter around places, but I can live with that.
  • The MGA is still active. Unfortunately, I couldn’t make it on a Tuesday or a Friday, so I didn’t get to see any of my old friends from the club, but you can get together a few people to play go on a Sunday at the Diesel Cafe. Which apparently opened about a year after I left the area; it’s a long narrow space (running all the way through the building from one street to the next), with good food and pleasant decor.
  • That day, about 75 percent of the people in the cafe were using laptops, and about 20 percent of the people were reading the latest Harry Potter. (Which had come out the day before.)
  • I enjoyed meeting blog reader Chris Ball in person (and other MGA members and Chris’s wife Madeleine), and we had a couple of exciting games - we turn out to be quite close in strength, conveniently! And I got to see the OLPC laptop in person, too.
  • Harvard Square is doing okay; a few stores I like closed, one out-of-place building has appeared, but no wholesale destruction. Wordsworth’s has closed (though their children’s book store still exists, didn’t go in to see what it’s like these days); Harvard Book Store is still open. (I also didn’t go into the Coop to see what it’s like these days.) I’d be willing to believe that the square is declining, but I’d also be willing to believe that it’s at a steady state.
  • And Schoenhof’s is still open. I broke my rule and bought several books that I don’t plan to read immediately, that indeed it’s not completely clear that I’ll ever read. But I was just so happy that the store is there! One book on learning kanji that I actually have started, a general Japanese grammar, and small individual books on verbs, particles, and connections (”Making your Japanese Flow”.)
  • Grammar and verbs are pretty basic concepts, but I like the ideas of books on particles and connections. I was going to say that those seemed like “only for Japanese” sorts of things, but of course there’s The Greek Particles.
  • We went to a couple of old favorite restaurants. The food at Chez Henri is still good, but the waitress we had drove me crazy. When I go out to eat, I do so for exactly two reasons: the food and the company of people I’m eating with. The waitress apparently thought that I had several other goals for the evening, prioritizing (among other things) her comedy routine above, say, getting us dessert menus. I am pleased to say, however, that the Elephant Walk still has both excellent food and excellent service. (Though it’s not that much better the food we make at home from their cookbook.)

Not sure when we’ll visit again, but I’m glad that we’ve managed to make it back every four years or so.

random links: july 28, 2007

Saturday, July 28th, 2007

random links: july 1, 2007

Sunday, July 1st, 2007

weinberg on incremental construction

Sunday, June 24th, 2007

I’m a fan of authors on construction whose works I can read in a programming context. On a related note, here’s a bit from Gerald Weinberg with a building/programming analogy that I like. (Quality Software Management, v. 4: Anticipating Change, pp. 216–217:

Imagine building a house by bringing all the parts to the lot, then having everybody run to the foundation and put their part in place, after which people walk around and see if the lights work or the floor collapses. There is no house test in house building to compare with the system test in system building. There are, instead, many incremental, intensive tests all throughout, especially when something is added that

  • other people will depend on
  • will be invisible (like wires and pipes in walls)

At every stage, the house must be stable. When it may not be, scaffolding is added so that the system of partially completed house plus scaffolding is stable. When the house becomes stable on its own, the scaffolding is taken away. Examples of scaffolding include concrete forms, extra framing, power brought to the site, and portable toilets.

Using the Stability Principle, we see that testing is not a stage, but a part of a control process embedded in everystage. What is often called system test is not a test at all, but another part of system construction, perhaps better named “system integration.” People are reworking errors in previous parts, and building the systems as they do.

Don’t get me wrong, all analogies are suspect, and I’m sure you would run into problems if you probed this one too far, but I liked it nonetheless. Incidentally, he uses “test” in a much broader sense than I normally do, including activities such as code and design reviews in the name.

I like the format of the book: it’s fairly free-form, but he frequently sprinkles in “Phrases to listen for” and “Actions to take”. The phrases in this example:

The following phrases warn a manager that the process of building while using stable phases has been or is about to be violated:

  • Just wait till it’s all done, then you’ll be surprised.
  • We’ll clean that up in system test.
  • The testers will fix that.
  • Of course we don’t have what we need, but get started anyway.
  • They can clean up the design when they write the code.
  • Ship it. The customers will tell us if anything is wrong.

My favorite of the phrases to listen for are those with a parenthetical note saying something like “(Warning: you may be saying this)”, as in this example from a section on fear:

  • You will do this. It’s nonnegotiable. (Listen carefully: This may be coming out of your mouth.)

The point, or at least one point, of the phrases is that people’s actions are often incongruent with their beliefs and/or with stated plans and goals, and that people have a way of making statements designed to lull the listener into not realizing that. So what you should be alert to are frequently statements that are soothing on the surface, instead of statements that are alarming on the surface.

I won’t give the complete list of actions from this example; an excerpt:

DO NOT allow tests to be skipped or postponed to later stages. Whatever is pushed to the end of the cycle will be sacrificed to the schedule.

DO be aware that tests take many forms. …

In general, reasonable practical advice.

maintaining a steady state of books

Friday, June 15th, 2007

In response to my previous post, Stuart asked: “So, what do you do with all your books?” The answer got a little long, so I’m forking it out as a separate post.

I don’t have any great solutions. But, if you assume a fixed capacity, there are basically two tacks you can take: get rid of existing books, and limit acquisition of new books.

For a while, I was successful in getting rid of existing books: I would go through my shelves, and, for each book, ask myself “what would cause me to reread this book?” (Or read it for the first time - at the time I started doing this, I owned way too many books that I’d never read.) If I couldn’t think of a good trigger, I would then ask myself “then why am I keeping it around?” Often, I didn’t have a good answer to that, either, at which point it would go on the stack to give away. And I still revisit my shelves periodically with this question in mind: if I ask that question about a book twice a year for five years, and I haven’t actually reread the book over those five years, then my brain is sometimes willing to accept that as evidence that, perhaps, I don’t need to keep the book around.

Also, it’s useful to remind yourself that it’s okay to make mistakes. If you give away a book that you want to read five year later, you’ll probably be able to find a copy five years later. (Which is one of the nice ways in which the world has changed in the last decade and a half!) There are certain rare out-of-print books that I’ll probably never give away, but if it’s some random novel from a non-tiny press, I’ll be able to track down a replacement copy if I want one. Which means that you shouldn’t sweat over being perfect: as long as you don’t just give away books willy-nilly, chances are that the replacement costs of mistakes will be much less than the savings from reduced storage.

This helped a lot. Having said that, in recent years, my rate of book reduction has slowed. Fortunately, we still have some amount of blank wall space in our townhouse. (True story: when moving to California, our first landlady gave us a choice between one apartment with windows on three sides of the living room and one with windows on two sides. We chose the latter: sunlight is all well and good, but we really needed the wall space for bookshelves.) So we’ll buy a few new bookshelves this summer, and I imagine that will last us for a while. (Miranda is actually the one who really needs more bookshelf space.) My guess is that we’re giving away enough books that we’ll last for another decade and a half or so without bursting at the seams, at which point Miranda will be living in her own apartment and we can take over her bedroom!

So that’s the “get rid of books” side. The flip side is: how do you make yourself happy about not buying tons of new books? One answer is the library: if I don’t have reason to believe I’ll want to reread a book or use it as a reference book, I check it out of the library if possible. (And Mountain View has access to a good interlibrary loan program, which I use pretty heavily - I miss Harvard’s libraries, but having interlibrary loan access to several decent smaller college libraries is good enough most of the time.) Another answer is to reread books that I already own: as part of the pruning books exercise, I’m making claims that I want to reread most of the books on my shelves at some point. Which means that I should be happy to test those claims by actually rereading them! If I’m finding that I don’t want to reread those books, well, that’s interesting information too.

For a while I was on a fixed schedule where I’d read a new book, then a book I already owned, then a book from the library. That was useful as far as it went, but I’m hoping that, now that my queue has gone away, I can relax that schedule, reading even fewer new books while still being happy. So if I’m in a mood to, say, reread all the Jeeves and Wooster books (which I already own), I can just go and do that without worrying about screwing up any schedule; if there’s some new book that I’m curious about right now, I can go and read that, but I’ll try to get it from the library most of the time; and I’ll try to browse random books at the library periodically so I get exposed to new authors.

I suppose I should set a target here, just to make my planning empirical. Maybe I should try to restrict myself to, on average, acquiring at most one net new book every two weeks? (Which I can meet either by not buying many new books or by giving away old ones.) I don’t see any reason why I shouldn’t be able to do that (if for no other reason than that work prevents me from spending as much time reading as I’d like); I usually buy 6 foot by 3 foot bookshelves, so if the average width of books I buy is a little less than an inch, then I’d only have to buy a new bookshelf once a decade under that plan. Seems workable to me.

finished book queue; rorty

Thursday, June 14th, 2007

Looking back, I had my lean book-buying revelation more than a year ago. As I said at the time, “right now, I have … lots of books to read before I can start buying again”, and while I have hardly sworn off from buying books since then, I have made an effort to read down my stack of unread books.

And now I’m done: there are no books left in the stack of unread books that I’d bought before that time. Well, the main stack: there are still some French-language books from my last trip to Paris, not to mention the complete Pali canon (in a 45-volume edition with elephants on the spines) and maybe a hundred or so other unread books firmly entrenched on my bookshelves. Those latter stacks had already been filed away as “sunk costs” for some time, but the main stack contained books that I really did intend to read.

If I’d been asked to predict at the time what the last book in the stack was that I’d get around to, I probably would have guessed correctly. (I hope that the shock of my finally getting around to reading the book wasn’t the last straw for its author.) Which raises a question: am I ever going to get around to reading the third volume of Rorty’s philosophical papers? If not, is that a good thing or a bad thing? In the old days, I would have tossed it onto my next Amazon order along with 20 or 30 or 40 other books, and gotten around to it eventually. Now, though, I won’t get it until I feel like I really want to read some more Rorty right now. (At which point I’ll probably check it out of the library rather than buy it, actually.)

My guess is that I will read the third volume eventually: I’ve read enough philosophy over my life that I think I’d be a bit sad if I stopped completely, and Rorty’s quite interesting and readable as philosophers go. And I’m enjoying the second volume; it’s not life-changing or anything, but pragmatism is interesting enough to me that I really would like to dig into it somewhat more, because I get the impression that Rorty is saying lots of things that I really do agree with. Also, it’s complicated enough that I’d need to revisit his writings eventually, to test my vague memories with what he actually says, and to see where I should think more.

So that’s half of the question. What about the other half? I think that there, my answer is: if I don’t ever read it, that’s okay. I’m happy and confident enough with how I spend my time these days that I don’t think I need to worry about feeling insecure about not getting enough highbrow culture.

We’ll see how it plays out. While typing this, I’ve been browsing his works at Amazon, and there are a few interesting looking ones there that I didn’t know existed. (And I didn’t know a fourth volume of his philosophical papers was published earlier this year.) So maybe the answer is: I’ll actually read more Rorty sooner rather than later. Still not sure when I’ll get around to the next volume of his papers: it looks like it will take me about three weeks to finish this volume, and I don’t lightly spend that much time on a single book these days. But some of his other books are less dense.

We’ll see how it all plays out: in the meantime, I’m just happy that I have one fewer big queue in my life, and I’m also happy that I’ve stuck with this queue-removal plan for more than a year and it’s turned out well. Though at least one decent-sized queue remains, but that’s the topic for another post…

weinberg quotes

Saturday, May 19th, 2007

I’m in the middle of rereading Gerald Weinberg’s Quality Software Management series, which is motivating me to type various quotes on mailing lists that I’m on. Not sure that they’ll do much without the context (actually, I have no reason to believe that they did much for anybody even with the context!), but if I’m going to go through the trouble of typing it out once, I might as well reuse the effort.

From the first volume, Systems Thinking, p. 110:

I once was called in to consult on a troubled project that was missing all of its goals, much to the puzzlement of its project manager, Simon. As part of my visit, I attended a code review meeting that (against my advice) Simon also attended. Herb, whose code was being reviewed, took a lot of personal abuse from Simon to the point where his eyes started watering. I called for a “health break,” and during the break, Simon came up to me and asked, “Does Herb have something in his eye?”

“Why do you ask?” I replied.

“Well, I noticed that there was water coming out of his eye.”

From the third volume, Congruent Action, pp. 60–61:

If you are acting incongruently, you are likely to trigger incongruent reactions in others. Rather than blaming them for incongruence, ask yourself, “What could I be doing to contribute to their behavior?” Here’s how it worked for Parson, one of my students:

“I was telling one of my project managers that I had to see a plan to get her project back on schedule. As she handed me a folder containing her revised project plan, I became aware that the papers in her hand were rattling. That caught my attention, and I thought, ‘How strange that the papers should rattle like that.’ Looking for an explanation, I noticed she was trembling, that her face was ashen, and finally that her eyes were wet.

“My first thought was, ‘Oh, she’s sick!’ but then I remembered the idea from class that she might be reacting to me. That seemed ridiculous, as I thought I was merely talking to her normally, but I decided to check it out.

“The first thing I noticed about myself was that I was gripping the edge of my desk as if it were a safety rail between me and the Grand Canyon. I thought I should loosen my grip, but then I realized I would probably fall on my face toward her if I did. All this while I continued talking to her about the project plan, until I noticed that I was actually shouting and banging my other fist on the desk. That’s when I had my big AHA!”

From the second volume, First-Order Measurement, p. 109, defending the definition that “Quality is value to some person”:

Why is this definition so troublesome to some people? There are people in the world whose strongest desire is to find perfection, the one right way. Many of these people choose to work with computers, and particularly with software. They don’t like the idea that quality is relative - to people, to place, to time - but it is.

And again from Congruent Action, p. 196 this time:

Avoiding blamers works if you don’t have to deal with them again, but this is exactly the opposite of engaging. If your work requires that you engage the blamer, you need to learn the method of the aikido masters when dealing with all forms of attack, including blame:

When someone hits you, he is extending his ki toward you and it starts to flow when he thinks he will hit you — even before his body moves. His action is directed by his mind. You don’t need to deal with his body at all if you can redirect his mind and the flow of his ki. That’s the secret; lead his mind away from you and the body will folow.

In aikido, you lead the mind away by physical means, though these are always as gentle as possible. The idea is not to further upset the person or draw more attention to yourself, as stiff resistance or a punch would do. In fact, skilled aikidoists often disable their attackers without even touching them, which of course is what you want to do with someone who is blaming you.

Blaming can be handled in the same way, first by yielding, but in such a way that the blame is unable to harm you. Done properly, this surprising move engages the blamer’s mind, so that you can easily change its direction. For example, suppose that an employee blames you for his failure to develop a specified function. “You didn’t tell me that this function was part of the spec,” he screams. Although you remember telling him, you don’t try to deny the allegation, which only focuses his blame more firmly on you. Instead, you may say, “If you didn’t know it was in the spec, I can certainly understand why you didn’t develop it.”

Saying this, you have agreed with his anger without accepting his blame. Next, you redirect the energy of this blame (the ki, in aikido terms) into something more productive. You have aligned with his energy, so you can push from behind rather than resisting it from the front. You might say, “What’s the best way for you to be informed of functions to implement?” This makes you collaborators, rather than opponents, by turning the energy toward preventing the problem in the future, rather than belaboring the unchangeable past. Even better, you have not become a blamer yourself.

earthsea thoughts from 2007

Sunday, April 1st, 2007

Since I finished rereading the Earthsea books more than a month ago, I suppose it’s time for me to say something about them. To be honest, I’m feeling a little intimidated by what I wrote last time; I should have done a better job of taking notes right after finishing the books. Ah well.

I don’t think I have anything to add about the first four books. A Wizard of Earthsea is still my favorite of the series; I imagine it will be comfort reading for me until the day I die. And Tehanu is still my next favorite, and I like The Tombs of Atuan and The Farthest Shore more than I did when I was a kid.

And the question remains: after Tehanu, what next? I’m happy to accept the notion that the sayings “weak as woman’s magic” and “wicked as women’s magic” are signs of sexism instead of accurate representations of how magic works in the world: that’s the way these things normally work in real life, after all. But how do we make an interesting story starting from that? What else about our understanding of the world might need to change? And what do we do with the human/dragon story from Tehanu?

The obvious thing to do (at least about the notion that women are as talented in magic as men) would be to write a story about a girl going to school at Roke, being confronted with prejudice, and valiantly overcoming it. Which is all well and good, but I’m glad Le Guin didn’t go that route; it would be rather too straightforward. Alternatively, I’m sure there could be interesting stories written that take their example from, say, battles in the US over the last century or two over this issue, but that really doesn’t excite me too much, either.

Which means, I guess, that we’re left with picking at that and other loose ends, enlarging the scope of the differences, and seeing what happens. Tales from Earthsea is a transition book in this regard. Three of the stories are really quite charming, without any obvious grand ambitions (though gender issues certainly play a role in them). One (re?)writes the early history of Earthsea and Roke, in ways that I find unsatisfactory (if only because it’s supposed to take place a mere three centuries earlier). And one looks like a straightforward “girl overcoming prejudice” story, and then pulls out another dragon at the end.

Which brings us to The Other Wind. Did I really write my previous notes before reading that book? If so, I’m impressed: the Kargad problem is, indeed front and center. (Quite possibly I wrote some of the notes after reading that book, though, and just ran out of steam before talking about it explicitly.) In particular, harmonizing the Kargad belief in reincarnation with others’ belief (and, in fact, direct experience of) a (rather depressing) afterlife is, well, important but a bit difficult, no?

And Le Guin obviously felt the difficulty. One thing that occurs somewhere in the last two books: magicians are talking about what happens if you start to cast a spell and then have second thoughts. You can’t just stop and pretend that you didn’t say anything: instead, you have to explicitly undo the partial spell that you’ve spoken. Which is what Le Guin is doing here: the afterlife that played such a large role in the first and third books turns out to be a mistake, an artificial construct that has to be undone.

Which she does. And she does it well, unweaving the various plot strands that were out of place, reweaving them into a newly coherent whole. I enjoyed the book much more than most books I read, and more than its predecessor.

But there’s a real cost, too: the strands she unwove were quite deeply embedded into the fabric of the story. So even though I’m willing to accept that those strands were out of place, she’s had to reweave vast amounts of a fabric that I (and others) have known and loved for decades. That is a loss by itself; I don’t have enough experience with the new fabric to have any confidence that it’s an improvement.

I hope that, the next time I reread these, I actually remember what goes on in the fifth and sixth books, so I’ll be able to reread them with a more critical eye. Maybe I’ll like them more next time (it happened before with Tehanu); I suspect, however, that I’ll continue to be uneasy with them.

(Are more Earthsea books coming? Hard to see what she would do next; I’m not sure the world could survive another earthquake like this.)

ear-reddening

Thursday, March 29th, 2007

What a glorious day yesterday was: the seventh Hikaru No Go DVD came out, and the ninth book. And now I have to wait another two months for the next DVD, another four months for the next book. Aargh!

We finished the DVD today, after which Miranda asked me if we could play through the ear-reddening game. So we did. Funny what she remembers me telling her about; it’s not like we’ve actually played go since I first taught her several months ago. She’s asked twice if we can play again this weekend, though.

mental arithmetic

Sunday, March 25th, 2007

A random factoid from Cheaper by the Dozen:

Also of exceptional general interest was a series of tricks whereby Dad could multiply large numbers in his head, without using pencil and paper. The explanation of how the tricks are worked is too complicated to explain in detail here, and two fairly elementary examples should suffice.

1. To multiply forty-six times forty-six, you figure how much greater forty-six is than twenty-five. The answer is twenty-one. Then you figure how much less forty-six is than fifty. The answer is four. You can square the four and get sixteen. You put the twenty-one and the sixteen together, and the answer is twenty-one sixteen, or 2,116.

2. To multiply forty-four times forty-four, you figure how much greater forty-four is than twenty-five. The answer is nineteen. Then you figure how much less forty-four is than fifty. The answer is six. You square the six and get thirty-six. You put the nineteen and the thirty-six together, and the answer is nineteen thirty-six, or 1,936.

dad had enough gall to be divided into three parts

Saturday, March 24th, 2007

On Mary Poppendieck’s recommendation, I’m reading Cheaper by the Dozen. Two paragraphs into it and I’m already a fan!