Archive for the ‘Books’ Category

alive games

Saturday, June 28th, 2008

I’m rereading The Phenomenon of Life, by Christopher Alexander, in preparation for reading the other books in the series. And, again, I’m blown away by it: if the book contained nothing but the pictures in it, it would be worth it.

But, of course, there’s a lot more to the book than pretty (beautiful, profound) pictures: it’s a theory about the nature of life. (He’s not one to hide the ambition of his goals: the subtitle to the series is “An Essay on the Art of Building and The Nature of the Universe”.) While, of course, my first reaction to such sweeping claims is to roll my eyes at them, I just can’t do that here: he asks too many uncomfortable questions for me to simply ignore him.

Over lunch today (Cafe Brioche, yum), I finished the section talking about how the fifteen fundamental properties appeared in living objects. Which got me thinking: where else do they appear? I have go on the brain these days, and if any game is going to show signs of life, surely that’s the one, so let’s test them.

To my readers who are not go players, I apologize for the lack of context for the following. (And I have suggestions for how you can fix that!) I looked for good go pictures, but had a hard time finding ones I really liked; here’s one famous example, but that’s an abstract picture of a position, and of course in Alexander’s context I really shouldn’t be ignoring the actual physical objects involved. (Unfortunately, people who post pictures of go boards on flickr seem to like to take them from odd angles.) Anyways, let’s go through the properties:

  • Levels of Scale Individual stones, adjacent stones, eyes, living groups, walls, territories. I can’t really imagine cramming in more levels of scale, given that we only have a 19×19 grid to work with! (And, if we talk about the physical objects involved, there are the lines on the board, the grain of the wood, the grain of the white stones, the room you’re playing in.)
  • Strong Centers Thick positions, stones casting influence, the ear-reddening move, the pon-nuki that the proverb tells us is worth thirty points, areas of white or black territory.
  • Boundaries The borders between black and white territories, that can be as proportionately thick and contested as any of Alexander’s examples.
  • Alternating Repetition I’m not convinced that go games do a particularly good job of exhibiting this property. (The go board itself does, a little too rigidly perhaps.)
  • Positive Space Territories expanding against each other. On a conceptual level, the space of two eyes giving life to the surrounding stones.
  • Good Shape I don’t think I have to comment on the importance of this to anybody who has played any go at all.
  • Local Symmetries The go board and stones exhibit this, of course; I’m not sure that positions generally do in a meaningful way. Though I suppose there are some conceptual manifestations of this idea, e.g. the notion of miai.
  • Deep Interlock and Ambiguity White and black positions butting up against each other, a group of one color on the run between two groups of the other color and then, suddenly, turning the tables so the attacker becomes the attacked. (In fact, Alexander has a picture of a go board in his discussion of this property.)
  • Contrast Black and White. Life and Death. Thickness and Weakness.
  • Gradients I’m not sure the game does a great job of manifesting this.
  • Roughness Boundaries between positions are never straight lines. Leaving a position slightly unfinished to move on to other areas of the game. The fact that people don’t place the stones exactly on the intersections: this stone is a little up, that one is a little to the right.
  • Echoes I’ll have to think about this one a bit more; I think there’s something to it in the go context, but I’m not sure yet.
  • The Void The board at the start of a game. Moyos. Large territories. The fact that (in Japanese rules, at least), you win by enclosing more empty space than your opponent.
  • Simplicity and Inner Calm The game’s made out of a board, a grid, and black and white stones, nothing else.
  • Not-Separateness The effects that stones have on adjacent stones, that groups have on adjacent groups, that (in the context of a ladder) a stone on one side of the board can determine tactical success or failure on the other side of the board.

Works for me; maybe this Alexander chap is on to something? Makes me wonder if I could improve my go game by concentrating more on expressing his properties.

What about a video game example? (I don’t expect them to do nearly as well as go.) I just finished Half-Life 2, so let’s use it as an example.

And, immediately, I run into a problem. The examples in his book are physical objects; in my go example, the physical positions of stones gave enough grist for my analytic mill that I didn’t have to go beyond that. But just talking about the physical layout of (the abstract space in) a video game leaves out so much of what makes them important! Not sure what to do about that; I’ll follow my nose and see where I end up.

  • Levels of Scale Small objects, large objects and characters, vehicles, rooms, buildings, areas, levels, the game as a whole? Shooting a weapon, fighting an enemy, fighting a group of enemies? And perhaps some of my earlier complaints about excessive repetition could be ways in which the game misjudged this?
  • Strong Centers The strikingly different character of some of the levels? The clear distinctions between types of weapons? Alyx? Large battle set pieces (boss battles, effectively) punctuating levels? Different places to take cover (with different virtues) in those battles? Maybe the levels could have used more of this in their physical layout, actually: if I’m going through section after section that feels the same, that’s a sign that I wanted more strong centers.
  • Boundaries At first, I thought the game did a bad job of the sort of thick boundaries that Alexander is talking about. And there really isn’t that much transition from section to section. Then again, maybe the mini-levels (typically involving hooking up with the resistance) that punctuate the longer levels are an example of this? Or the approach to the prision (with bugs!) is a boundary between the travel level and the prison itself? So now I think there are some, but that the game could use more.
  • Alternating Repetition Battle, quiet, battle, quiet. Building, outside, building, outside.
  • Positive Space The buildings, the roads and the plazas between the buildings? That works to the extent that, for example, you can enter the areas on either side of a road; to the extent that you can’t, I don’t think roads feel like positive space. So they probably weren’t in the rural levels; the urban levels may or may not have had some positive space, I’d need to have a better global feel for the map.
  • Good Shape Hmm, not sure I felt this one too strongly. At least on a larger scale, maybe the individual objects did a better job of manifesting this.
  • Local Symmetries Maybe present in the objects/buildings; not sure. Not seeing it on a more conceptal level.
  • Deep Interlock and Ambiguity I’m having a hard time finding good examples of this.
  • Contrast The “Alternating Repetition” examples? The different feels of different levels? The fight of good versus evil? Not sure.
  • Gradients The progression of enemy strength, of the strength of weapons, of the number of options you have available.
  • Roughness I think the game does a great job of this in its physical design, the way buildings are lived-in, run down without descending into ruins.
  • Echoes Again, I’ll have to think about this one; this may be the property that I understand the least.
  • The Void Almost completely lacking (unfortunately the case for most video games). Maybe that’s why the “carried on a track through the Citadel” scene made such a big impact on me?
  • Simplicity and Inner Calm Again, pretty much lacking. Though the game did a decent job of sticking to a not-too-large set of gameplay elements. (E.g. the limited set of weapons.)
  • Not-Separateness At first, I was going to vote against this one: you couldn’t make choices that had significant ramifications elsewhere, the plot was going to do what it wanted whether you liked it or not. Then I went and read the description of the property, and now I’m not so sure: you are presented in the context of a larger world with signs of its own history. So maybe it’s not as lacking here as I thought.

Hmm. It seems like an interesting enough set of analytical categories, at least. And I suspect game designers could use the list to improve the design of their games. And I’d be very curious to see games that did a better job of bringing out The Void without having it dominate the games. Hyrule Field in Ocarina?

Of course, I came to Alexander through the programming community, specifically through groups influenced by his thoughts on patterns. (Which haven’t really lived up to their potential: Kent Beck seems to be the only person getting much mileage out of building a pattern language at multiple scales.) Can I use these ideas in my programming? Can I tell live code apart from dead code by how well it expresses these properties?

Something to think about. But later; this post is already quite long enough, and I’ll need some time to get my thoughts straight in that area anyways. Time to start looking at code through different lenses, though.

nlp, motivation, success

Sunday, June 22nd, 2008

I read a book on neuro-linguistic programming recently. It’s basically a way to reprogram your brain (e.g. to strengthen motivations or weaken phobias), using techniques like visualizing the trigger in question, then changing the way you visualize the scene. (Moving the trigger object farther away from you or closer to you, adding colors, adding theme music, …)

Which I was strangely taken by, but I have to admit that it sounds more like snake oil than not. At least I hope that the psychological profession is sensible enough to pick up on techniques that can cure serious phobias in five minutes, if those techniques actually work! Then again, it’s not like I actually took the few minutes to go through any of the exercises in the book; maybe traditional psychologists took the same approach to the ideas as I did…

Having said that, there were a couple of ideas in the book that seemed worthwhile. One was the notion of the direction of motivation: you can either be motivated towards something you want or away from something you don’t want. Or, of course, a mixture of both, even in a single situation, and certainly people can be motivated towards something in one aspect of their lives and motivated away from something in other aspects of their lives. But their claim that most people, in general, lean in one direction or the other sounds plausible to me; and I think it’s worth playing around with the idea of exploring both sorts of motivations in various context. (Of course, I still think it pales in comparison to the power of the distinction between intrinsic motivation and extrinsic motivation.)

In particular, I’m starting to buy into the notion of how powerful having a strong vision of a future goal can be. This is, of course, the core of “motivation towards”, and also ties in with their approaches that I outlined in the first paragraph. Thinking back on my life, or even about my present-day life, I think it’s not too implausible to think that the areas where I’ve been successful are areas that I’ve had a strong vision pulling me forward, while areas where I’ve been less successful are ones where that hasn’t been the case.

For example, I think you could make a reasonable claim that part of the reason I left academia was that I didn’t transform my vision of somebody who knew a lot of mathematics into a vision of somebody who discovered a lot of mathematics. I was quite good at the former and mediocre at the latter; some of that is doubtless due to my innate talents, but I bet a lot of the reason why I would pull out a math book at a moment’s notice (and work through all of the exercises in it) during parts of my life without putting in the same energy towards discovering new math later in my life had to do with my lack of vision of what the latter would be like.

Though, of course, having a strong vision by itself isn’t good enough. On that note, I thought their presentation of research on what factors lead to successful rehabilitation for injured athletes was quite interesting. The list they presented was:

  1. Inner Motivation. Both towards a future vision and away from the painful present, in the case of rehabilitation.
  2. High Standards. The successful athletes wanted to get back to their former peak performance levels or better: they wanted to run like the wind, not just get to where they can walk.
  3. Chunking Down Goals. They broke goals into extremely small chunks, e.g. gaining an extra quarter-inch of range of motion in their feet.
  4. Combining Present and Future Time Frames. They concentrated on the present when moving towards those small goals, while also having a vision of the future to sustain them through the rough times.
  5. Personal Involvement. They helped design their recovery plans and carry them out themselves, not just putting themselves in others’ hands.
  6. Self-to-Self Comparisons. They’re not worried about comparing themselves (especially in their injured state!) to other athletes: they’re comparing themselves today to themselves last week, and noting how they’ve progressed.

There are several things that I like about this. For one thing, it fits well with my view of areas when I’ve been successful: in those situations, I have a vision for what I want, I break that down in small steps, I take charge of my own plans, I don’t worry particularly about comparing myself against others but instead note the progress that I’ve made on my own. Whereas in areas where I don’t satisfy those criteria (which is also frequently the case), I make much less progress.

To take a much more modest example than a world-class athlete recovering from injury, I want to become a fluent reader and speaker of Japanese. That’s my motivation, mostly towards, though there’s a bit of an away from motivation in that there are art works I can’t really access right now! I won’t claim that my standards are wonderfully high, since even if I succeed fabulously there will still be more than a hundred million people who are more fluent in the language than I am, but I’m also rejecting goals of being able to just get by: one of my goals right now is to memorize the two thousand basic kanji and all of their common readings and meanings, for example, and I have no intention of stopping when I get there. But that goal will take me years to reach; that’s okay, as long as I know 14 more kanji this week than I did last week, and can keep that up for a little over two more years, I’ll make it to that goal. (I suppose that will also serve as an example of combining time frames!) I’m certainly involved personally: I’m not depending on anybody else laying out a course of study for me, I’m doing the best I can of finding resources to help me wherever I can and combining them to make a coherent plan that I’ll actually be able to carry out. And I’m not comparing myself to anybody else while doing this; sure, the kindergartener two houses down is probably learning Japanese much more quickly than I am, but that’s her, I’m me.

And, of course, I’m always gratified to see somebody talk about the virtues of breaking large tasks into small steps. I’ve certainly spent enough time obsessing about that over the last five years, whether in the TDD cycle, in breaking up features into small, coherent stories, or in the GTD notion of “next action”. It’s a very powerful concept.

The list also sheds an interesting light on Seth Godin’s The Dip. I blogged before about my mixed feeling towards the book: I initially found it seductive, but when I thought about it more it didn’t really feel right to me. And comparing it to the above list is useful: Godin does great on the High Standards part, and okay on the Inner Motivation part. (Though even there I think the fit is a bit uneasy.) I think he’s fine on the next three factors (they’re not particularly the focus of his book, but that’s okay), but the Self-to-Self Comparisons seems to me where his presentation really doesn’t work with me. Don’t worry about being better than everybody else in your niche: follow your nose, and see if you’re getting closer to your vision every day. Maybe this will lead you to being king of your niche, maybe you’ll open up a glorious blue ocean, maybe you’ll just end up having your life quietly spiritually richer without being able to say you’re more successful than your neighbors. Any of these seems like a good outcome to me; focusing on being the best has its virtues to the extent that it encourages you to set High Standards, but is harmful to the extent that you’re excessively comparing yourself against others.

Hmm, maybe I should figure out what, if any, my vision is for this blog?

go tournament as 1 dan; japantown

Saturday, June 21st, 2008

I spent the day at this month’s Bay Area Go Players Association tournament. It was my first tournament in recent memory playing as a 1 dan; I had a record of 1 win and 3 losses and got the impression that 1 dan is a more accurate rating for me than 1 kyu, but that I’m not a particularly strong 1 dan.

In my first game, I took one stone, and the only reason why it was particularly close was that my opponent made a stupid mistake in the endgame that cost him about 10 points; I should have resigned earlier. Judging from conversations I overheard, I got the impression that he normally plays as 3 dan but his rating has slipped recently; I’m quite willing to believe that, it felt like he was 2-3 stones stronger than me.

My second game was frustrating in that the score on the board was 61 to 54, and the AGA rules have a rather large komi of 7.5. Oops.

The way my third game ended was instructional. We were fighting a ko; I made a ko threat. At least I thought it was a ko threat: my opponent started looking at it, and I realized that, because of a snapback, it wasn’t actually a threat to capture the stone it seemed to be threatening.

And then I looked more closely at the ko, and got really nervous. If I’d given in and connected, it would have only cost me a point. If he won the ko, rather than connecting, he’d capture four of my stones, which could be a big amount at some points in the endgame, but I had (despite my misreading of this one) several ko threats on the board that were bigger than that.

But then I realized that his capturing those four stones wasn’t all that was going on: it created a serious threat on my group adjacent to them, and in fact I wasn’t completely sure that my group would survive if I tenukied. (Which I would have to do to make good on any ko threat I would play.) This is something I hadn’t really thought of when doing ko fights: it’s not enough to just calculate the value of your opponent’s first move if he ignores your ko threat, you also have to figure out if that move is sente. And, if it is, you have to play ko threats that are enough larger to make it worthwhile to ignore that sente move.

Despite all of that, it turned out well. My ko threat wasn’t a threat in the way I thought it was; fortunately, when I read it more carefully, there was a more subtle shortage of liberties there. Which my opponent missed, so he won the ko; he captured four of my stones, lost twenty of his, and didn’t manage to capture the other ten of mine that were threatened! (In our post-game review, we decided that the best play after his initial capture lead to my group living in seki, but as it was it lived outright.) A very odd result: we both misread my ko threat, and the result was that, as an outcome of a ko fight that I’d initially miscalculated as small, the game turned from a close game to one where he resigned!

My fourth game was really weird. My opponent’s grasp of large-scale structures was even worse than mine, but he constantly wanted to get into fights with me. And, in doing so, he left himself weak, so I was constantly attacking him! Really bloody, and we both misread situations in significant ways; I misread more than he did, and lost. I really shouldn’t have misread some of those situations; the flip side is that I should probably look for clever attacks more often, because if he can find weaknesses like that in my positions, I’m probably missing some in my opponents’ positions.

One big takeaway from my first two games, which jives with my memories from other recent tournaments: I’m probably doing a better job of building up influence than I did a few years ago, but I’m also being far too cavalier about letting my opponents getting significant territory on the sides. In particular, I really underestimate how valuable it is to have an entire side of the board.

The nice non-go-related aspect of the tournament was that it was in the SF Japantown. I had lunch at Sapporo-ya, which doesn’t look like much from the outside but which we discovered has quite good ramen when we tried it out because we NEEDED FOOD NOW the last time we went to Japantown. And I did some shopping at Kinokuniya; they didn’t have what I was looking for (more Puzzle Nikoli books; fortunately, the ones I have will last me through the only upcoming trip we have planned), but I found a go book I didn’t already own.

And I browsed through the instructional language section, and acquired more inventory there. Which doesn’t entirely thrill me, but I’ll be finishing my Japanese textbook in about half a year, I’m not sure I’ll go to a Japanese bookstore between now and then, and I could use ideas from browsing in a bookstore. And if I learn about books that I want to buy while browsing in a bookstore, I’m going to almost always buy them there, instead of noting them down and buying them elsewhere. The haul:

  • Collections of essays and fiction with “translations of all the complex passages”, copious notes, and a dictionary. (And a CD and profiles of the authors.) I’m really excited about these: they look like a great way to make the transition from book learning to reading real Japanese.
  • Two volumes of Japanese in MangaLand: I liked the other introduction-to-Japanese-via-manga book that I read, so I figured I’d give these a try as well.
  • A Dictionary of Basic Japanese Grammar. I bought this partly because I figure it might be a reasonable thing to read once I’m done with the textbook and/or a reasonable reference, but mostly because there’s an intermediate grammar in the same series, which I expect will be a good follow-up to the textbook.

All in all, if I’m going to accumulate inventory, it doesn’t look like too bad a choice: I have specific triggers coming up in the not-too-distant future that I expect will cause me to start reading all of them, and I’ll probably start reading the manga volumes sooner than that: the first one would be a good candidate to bring on vacation.

A quite pleasant day. I even got some studying done over lunch, so I didn’t particularly fall behind in my regular activities.

memory and references

Thursday, June 19th, 2008

In response to a tweet and tumblr post from Brian Marick:

According to the speaker in a talk I went to several years ago, it was the case until some time last century that educated Chinese people would have memorized hundreds of books going back as far as thousands of years. And these books wove together in a thicket of references: when an author wrote a phrase, it wouldn’t just be an allusion to a phrase/incident in a single book X. Instead, it would be an allusion to a phrase in book A written two thousand years ago and also to phrases is books B, C, D, and E that were written over the intervening centuries/millennia that all also alluded back to book A.

the gold mine

Sunday, June 15th, 2008

The Gold Mine is a business novel about lean. It’s clearly inspired by The Goal; it isn’t nearly as good as the latter, but it does have some real virtues.

The Goal did, in my opinion, a remarkable job of pulling the reader along in the journey of discovery: you could really believe that the protagonist was figuring out this stuff (with Jonah’s help) as he went along, indeed you as the reader were probably figuring out some of the stuff as you went along. (Goldratt consciously adopts a presentation style designed to encourage that.) I’m a bit ashamed to admit it, but I even found the cheesy personal crisis parts of that book somewhat gripping. For some combination of those factors (and because ToC is inherently fascinating stuff), I stayed up way too late finishing that book.

The Gold Mine, in contrast, didn’t have those virtues. Honestly, I’m not sure that somebody who hadn’t already drunk the lean kool-aid would be any more likely to be interested in lean after reading this book than before.

But, as I read along, I found that it had other virtues. If you, like myself, have drunk the lean kool-aid, and if you’ve read some of the theory, you’ll find that this book fills in some gaps. By presenting a (fictional) case study of a lean transformation, it gives some practical advice on how to carry out a lean transformation that I haven’t seen elsewhere. (Not that I’ve looked a lot.) It presents an order in which to introduce the various lean concepts and techniques, it gives you some pointers about what are good and bad signs in your transformation, it makes ideas rather more concrete than I’d seen elsewhere.

I imagine that most readers will also learn something about some of the lean concepts while reading the book. I’d never thought much about 5S, for example; but it’s one of the earlier tools that they introduce in the book, and it has wider-ranging effects (psychologically as well as in its direct effects on processes) than I’d realized. Other people may already be more familiar with 5S than I was, but I suspect that most non-experts will find something new here.

It’s not the first book that I’d recommend on the subject, but I’m certainly glad I read it. It was a pleasant enough way to spend my breaks for a week or so at work, and there’s good stuff here; it’s just not what I expected before I started!

pimps and ferrets

Saturday, June 7th, 2008

The introduction to Pimps and Ferrets: Copyright and Culture in the United States, 1831–1891, by Eric Anderson, leads off with a quote from an 1888 issue of Scientific American lamenting that

all postmasters and customs officers throughout the United States are constituted pimps and ferrets for these foreigners

in regard to a proposed copyright law. The full quote (from the May 19, 1888 issue):

The bill in substance provides that […] copyright patents shall be granted to foreigners; they may hold these monopolies for forty-two years; the assigns of foreigners may also obtain copyrights; all postmasters and customs officers throughout the United States are constituted pimps and ferrets for these foreigners; it is made the duty of postmasters to spy out and seize all books going though the mails that infringe the copyrights of foreigners; if an American citizen coming home brings with him a purchased book, it is to be seized on landing unless he can produce the written consent of the man who owns the copyright, signed by two witnesses. Who the said owner may be, in what part of the world he lives, the innocent citizen must find out as best he can, or be despoiled of his property.

I confess that I only skimmed the rest of the dissertation, but I couldn’t pass that quote up; for what it’s worth, the dissertation seemed quite readable, and I recommend it to anybody who happens to be curious about 19th century copyright in the US.

(Via Against Monopoly.)

good calories, bad calories

Saturday, June 7th, 2008

I read Good Calories, Bad Calories about a month ago, and it’s thrown me for a bit of a loop. I’ve had reasonably high cholesterol for a while, and one of my grandfathers died from a heart attack at a younger age than I’d prefer to die, so I’ve been vaguely curious about the subject for a while. But, on the flip side, I like to eat, and there’s a lot of food out there with a high fat content that my life would be much less rich without.

So, for now, I’ve been mostly sitting on the sidelines, watching amused as the fat evidence changes over the last few years. Olive oil is now not only not bad for you but actively good for you; high-fat fish, ditto; while trans fats are now demonized as uniquely bad for you. All of which fits well with my personal preference to eat good food: I’ll take butter over margarine any day and will happily avoid processed junk food where partially hydrogenated vegetable oil is high on the list of ingredients. I was very happy with the “chocolate is good” studies, too; I’m eagerly waiting for somebody to show that cheese is similarly beneficial, though ice cream seems like a bit to much to hope for even to me.

Still, my cholesterol is high, and was a good deal higher when I got it checked a year ago than it was back in my grad school days. My doctor didn’t like that, so she put me on simvastatin; my cholesterol level responded quite nicely to that, yay.

But I perked up when I read about Taubes’s book. I’m pretty sure I read this New York Times article, which discusses Taubes’s claim that the evidence for a link between high fat consumption and heart disease is not very strong.

Which is the subject of the first part of the book; reading it, it looks to me like he’s done a pretty good job of gathering his evidence. His reasoning seems sound, his critiques of others’ reasoning seems sound. Maybe he’s misrepresenting the evidence, I’d like to see an equally well-done refutation of his points, but right now I’m not very convinced at all by the “fat is bad” claims.

What I wasn’t expecting was the rest of the book. One of Taubes’s points is that studies frequently focus on links between cholesterol and death from heart disease. And heart disease is bad, no question, but what I really want to do is increase my (enjoyable) life span, not decrease my chance of dying from heart disease while increasing my chance of dying from something else. (I also don’t want to increase my life span by two months at the cost of having to eat mediocre food for decades, but that’s a separate matter! Not an unimportant one, though.) After talking about fat, he turns to a range of other diseases (diabetes being the one that stuck in my head the most) that, apparently, are completely unknown in many populations before they start moving towards more western lifestyles. (And not unknown solely because of lower life expectancies, either.) So there really is reason to believe that dietary changes over the last century have had significant negative impact on our health; fat, however, doesn’t seem to be the smoking gun.

With which he turns towards presenting a case against excessive carbohydrate consumption. I’d assumed that the Atkins diet was just another fad diet; apparently, it has a rather long history, and the science behind it is a good deal more interesting than I’d thought. (Including links between it and some of the bad kinds of cholesterol; I’ll pay more attention to my triglyceride levels in the future.)

I’m not completely convinced by either the “fat is ok” or “carbohydrates are bad” parts of his argument. (And I don’t think he expects readers to be; the impression that I got is that he’d like a lot more research in certain areas and a lot less reflexive going along with the crowd.) But this doesn’t mesh too badly with my experience; in particular, one of the big changes in my diet since moving out here is that (partly because of the best cookbook ever), we eat pasta all the freaking time. And, going back to my “eat good food” mantra from above, I have a hard time supporting the notion that our diet isn’t rather too pasta-heavy; I’m sure Italians would look at our family menus with horror. So it does seem time to reconsider that part of our diet. And also to ask some basic questions: I’d never seriously considered eating brown rice or whole-grain pasta; maybe I should try them out and figure out if I like them? (The answer turns out to be that I actually seem to prefer brown rice in most contexts; I’m not completely sold on whole-grain pasta yet.)

So we’re experimenting, and our meals have gotten more varied. I’ve done some googling to try to figure out if Taubes is a crackpot or not; so far, I’m not seeing much reason to reject him. Take, for example, this article on carbohydrates from the Harvard School of Public Health. In one section, it talks about measuring the effects of different diets, including the Atkins diet, and says “it looked as though the women in the Atkins group had lost the most weight … and 3.5 for the Zone group. (18) Levels of harmful LDL, protective HDL, and other blood lipids were at least as good among women on the Atkins diet as among those on the low-fat diet”. Note the use of “looked as”: already, we see a rhetorical anti-Atkins positioning in an attempt to mute what sure sounds like good news for Atkins.

They justify their skepticism by saying “If you read the fine print of the study, though, it turns out that few of the women actually stuck with their assigned diets. Those on the Atkins diet were supposed to limit their carbohydrate intake to 50 grams a day, but they took in almost triple that amount. The Ornish dieters were supposed to limit their fat intake to under 10 percent of their daily calories, but they got about 30 percent from fat. There were similar deviations for the Zone and LEARN groups. What this and other diet comparisons tell us is that sticking with a diet is more important than the diet itself.” And, frankly, they should be ashamed of that conclusion: they’re trying to pretend that all of the diets would be equally effective if people stuck with them, without a shred of evidence presented in favor of that, while simultaneously brushing away what evidence the study actually presents.

This is exactly the sort of thing that Taubes mentions over and over in his book, where studies are interpreted in as anti-fat a method as possible. And there’s more of it later in the article: they admit that certain studies give evidence that certain low-carb diets are good for you, but present this in a tone of “well, if you go the low-carb route, you probably aren’t consigning yourself to early death, but who knows” rather than “you know, maybe these low-carb people really are on to something”.

If nothing else, being kicked out of a diet rut is to the good. And I’m happy to no longer have to feel guilty about eating bacon.

random links: june 4, 2008

Wednesday, June 4th, 2008

erik ray, r.i.p.

Sunday, June 1st, 2008

I was very sad to learn that Erik Ray died on May 14, after being hit by a car while riding his bicycle. He was more of a friend-of-a-friend than a direct friend, but I certainly enjoyed the time I spent with him when we were both living in the Boston area.

For those of you who come here for video-game-related reasons, he worked on the excellent System Shock in a variety of roles, including doing some of the level design. He also wrote a pleasant introduction to XML.

But the main reason why I miss him is Lambda Expressway. It’s a fabulous quirky audio novella, mixing a sort of adventure story with mentions of the virtues of building your own backhoe, a character with a theme song immortalizing the virtues of buns, and, well, just go listen. (I do every year or so.)

I think I have another tape or two of his around somewhere; I really need to go and get them digitized. I hope they haven’t fallen apart…

the toyota way and nemawashi

Saturday, May 17th, 2008

(Mostly an e-mail to the leandevelopment group, but I figured I might as well stick it here, too.)

I just finished reading The Toyota Way, by Jeffrey Liker. Which I highly recommend: it may actually now be my favorite (non-software-specific) lean book. A clear presentation of a good set of principles; I saw a lot that was new to me, still more that would have been new to me half a year ago (or a year ago or two years ago), I’m sure that I’ll get a lot out of it the next time I read it.

One thing that struck me in the software development context is its principle 13: “Make Decisions Slowly by Consensus, Thoroughly Considering All Options; Implement Rapidly”. It seems to me that there’s a pretty big tension between a naive application of that rule and agile: it sounds to me a lot more like BDUF than traditional agile.

Now, I don’t really believe that that’s true, partly for ideological reasons and partly because I’m sure that most people doing BDUF would do it in a way that is far away from the spirit of that principle. But maybe there’s something to be learned (in both directions?) from Toyota’s slowly building a consensus before deciding as compared to Agile’s quick iterations on development?

Part of the bridge seems to be set-based development. (Which is one concept in the Poppendiecks’ books that I haven’t seen in many (any?) other agile books.) Are there other Toyota techniques in this area that we should take to heart? The chapter talks about A3 reports; I’d been thinking that they might be a good fit to some gaps at work; does anybody have experience using them in software development? (Hmm, the Poppendiecks talk about those, too, don’t they? My copies of their books are at work, so I can’t check.)

One thing about agile that I don’t want to give up is that we’ve got some good techniques for evolving well-designed software. (E.g. Kent Beck’s four rules. Which I wish I could find a good URL for; this is the best I’ve come up with.) Are they in tension with the Toyota principle? Or are they each applicable in different domains?

How do I tell on a software project when we should be spending more time thinking before making a decision and when we should be getting our hands dirty and checking in production code? (With, of course, the expectation that the code will change as our understanding and the requirements change.)

Here’s the book’s description of the principle (emphasis in the original):

The Principle: Thorough Consideration in Decision Making

Many employees outside Japan who have joined Toyota after working for another company have had to face the challenge of learning the Toyota approach to problem solving and decision making. Because Toyota’s process of consensus decision making deviates so dramatically from the way most other firms operate, it is a major reeducation process. New employees wonder how an efficient company like Toyota can use such a detailed, slow, cumbersome, and time-consuming decision-making process. But all the people I have met who have worked for or with Toyota for a few years are believers in the process and have been greatly enriched by it—even in their personal lives.

For Toyota, how you arrive at the decision is just as important as the quality of the decision. Taking the time and effort to do it right is mandatory. In fact, management will forgive a decision that does not work out as expected, if the process used was the right one. A decision that by chance works out well, but was based on a shortcut process, is more likely to lead to a reprimand from the boss. As Warren explained in this chapter’s opening quote, Toyota’s secret to smooth and often flawless implementation of new initiatives is careful, upfront planning. Underlying the entire process of planning, problem solving, and decision making is careful attention to every detail. This behavior is associated with many of the best Japanese firms and Toyota is a master at it. No stone is left unturned. In fact, every stone is inspected under a microscope.

Thorough consideration in decision making includes five major elements:

  • Finding out what is really going on, including genchi gembutsu.
  • Understanding underlying causes that explain surface appearances—asking “Why?” five times.
  • Broadly considering alternative solutions and developing a detailed rationale for the preferred solution.
  • Building consensus within the team, including Toyota employees and outside partners.
  • Using very efficient communication vehicles to do one through four, preferably one side of one sheet of paper.

(Liker, The Toyota Way, pp. 238–9)

paris 2008

Monday, May 5th, 2008

As I have, perhaps, alluded to previously, we spent the second half of April in Paris. Notes:

  • It’s the most wonderful place in the world, but I’m actually not feeling particularly compelled to visit it again any time soon. Some of this has to do with the fact that I’ve been there eight times; some of this has to do with the fact that I rather enjoyed spending the week between Christmas and New Year’s at home, and am not sure how much I want to do any vacationing for the sake of vacationing. Of course, this is all subject to change at any time, and Liesl and Miranda may have different opinions.
  • We’ve had bad hotel luck in the past; based on recommendations from comments on this blog post, we decided to try renting an apartment this time. We went with absoluliving; not as cheap as a cheap hotel, but for the same price as a decent hotel, we could get two bedrooms and a living room, with a clothes washer, a stove (not that we used it), a fridge. Or at least we thought that’s what we were getting; the day before we were supposed to leave, they e-mailed us to tell us, with no explanation whatsoever, that they were changing apartments on us; we ended up in a one-bedroom apartment, which they had the gall to call an upgrade because it was in a trendier neighborhood. To be fair, the apartment wasn’t a complete unknown, since we’d marked it as acceptable from the list of apartments they’d initially proposed to us, but I still didn’t appreciate the bait-and-switch, or whatever it was, at all. (Also, to be fair, I’m happy enough with the area we ended up in, and will consider staying near République in the future, but I didn’t like being in the middle of a very long block on a side street.) The other problem with the apartment was that one window kept squeaking open and closed all night when it got really windy; I’m not really mad at them about this, because I’m not sure how they would have discovered it by inspection, but it does point out a problem with an apartment agency that you don’t have with a hotel, namely that you can’t just complain about a maintenance problem and have them move you, because they might, say, be closed on the weekend. (Fortunately, it happened on a Thursday, and they managed to get somebody in on Friday who eventually stopped the squeaking by duct-taping it shut.) Anyways, one separate bedroom (Miranda was in a sofabed in the living room) is vastly better than everybody sharing a bedroom, so the general idea was a good one.
  • Poor Liesl was sick some of the time; fortunately, it wasn’t nearly as bad as when we were in Amsterdam, but she stayed in the apartment for three (two?) of the days because of that. Partly because of that, we didn’t go to as many restaurants as we might, but we still got some good food out of the trip (including one from a restaurant that apparently changed hands about a week after our last trip and was completely, surprisingly different this time); visiting salons de thé in the afternoon may have been my favorite part of the trip. (The pizza at decent Italian restaurants in Paris is quite nice, too.)
  • Why had I never heard of Lovis Corinth before? My first reaction is that I’d rather look at his art than, say, that of Van Gogh or Gaugin or Seurat. Looking at labels suggested that part of the reason is that his art is scattered around museums in Germany instead of clustered in museums in Paris; glad I’m aware of him now.
  • The baboons at the zoo in the Bois de Vincennes are a hoot.
  • Having internet access in your apartment is a good thing. And no, this is not a sign that I need to relax and tear myself away from the internet: this is a sign that I don’t feel compelled to spend every vacationing hour traipsing from site to site and can, instead, spend time in my hotel just enjoying myself without feeling guilty that I should be doing more on vacation.
  • Having a washing machine in your apartment is also a good thing. And points out another benefit to the internet: if your washing machine is refusing to wash and just blinking when you hit a number, you can google the model name and get a manual. (Answer: you accidentally hit the child lock button; hold it down for four seconds to unlock, and what you thought was the off button is actually the start button.)
  • Miranda’s favorite museum turned out to be the sewer museum.
  • Sacré Coeur is distinctive to look at from a distance but boring on the outside. Not so Notre Dame: there’s something to be said for thousands of people working for hundreds of years to produce something glorious.
  • I really am not impressed by the current Orangina ad campaign: large-breasted zebras just don’t do it for me. Sex, fine; animals, fine; combining the two, ick.
  • We forgot to buy a power converter; fortunately, the basement of BHV had them for sale. (They had one that went both directions, 110-to-220 and 220-110.)
  • Traveling with several puzzle books from Nikoli was an excellent idea: not only are the puzzles top-notch, but the narrower-than-US form factor meant that I could slip one into my jeans pocket, which is very useful when walking through museums where I’ve had to check my backpack, finding myself a room or two ahead of Liesl and Miranda because we go through them at a different pace, and needing to amuse myself. I’m getting a bit burned out on Nurikabe (though I still think they’re an excellent puzzle variant), and Number Link isn’t my fave (once the puzzles get out of the easy range, I have a hard time proving my solution is unique, which frustrates me), but I’m still a big fan of Masyu and Slitherlink. I’ll have to try some of their other puzzle types.
  • I really can dial down the number of books that I take on a trip these days: I have enough other entertainments that I don’t need to carry nearly as many to avoid running out of them. (And there are always bookstores if I guess wrong.)
  • Heavy curtains are great for the first night or two after getting off the plane, but in retrospect I should have stopped closing them completely after that: I never really got my clock adjusted to Paris time. The flip side of which was that lying awake at night gave me lots of practice in going over my Joyo kanji…

pruning my library

Monday, May 5th, 2008

My bookshelves have been getting tight, so I just wandered through the house, and found about a hundred books to give away. Given the frequency with which I’m using the library these days, that should give me a good couple of years more space on the shelves, I hope.

I would seem to be ready to give up on much of the random fiction that I acquired during grad school. I’m still hanging on to more of my academic books than I should, though: I didn’t select any math books to discard, or any Sanskrit/Pali/Indian studies books. (I’m certainly not about to give away my 45-volume edition of the Pali canon, what with the stylish elephants on the spine! But other stuff I could probably stand to give away.) Also, I somewhat surprised myself by giving away some books by some authors while keeping other books by those same authors: in the past, I’ve been more of a select-by-author person.

Incidentally, for what it’s worth, this is the sort of blog post that I’m not sure I would have made in my pre-twitter days. But giving away books seemed to meet the twitter-worthy threshold; and when I thought about it a bit more, I decided I had more than 140 characters that I felt like saying on the subject. A good thing, I guess?

someday/maybe

Thursday, April 24th, 2008

I went back and reread the GTD book to see what I’d forgotten from my first read-through a year or two ago. Quite a lot, it turns out (in fact, almost everything except for the definition of a next action), about which more later, but one of the concepts that struck me the most was the notion of a “someday/maybe” list.

This is a list of things that you’re thinking of doing but don’t currently have in progress. As with most GTD concepts, much of its power comes from allowing you to create clear boundaries: the relevant boundary here is that something you’re thinking of doing is either in progress (in which case it’s on your projects list) or is something you’ve consciously decided to defer (in which case it’s on the someday/maybe list). This forces you to think for a few seconds: do I want to work on this now or postpone it? If I want to work on this now, what’s the next action? But once you’ve done that, you can stop worrying about it. (Or at least that’s how the theory goes, and it matches my experience well enough.)

So, basically, the someday/maybe list is a repository for all those pipe dreams and worries that you’ve had that you’re not dealing with right now. Much of its value is simply as a place to write things down: part of the GTD idea is that, when a thought flits through your mind, you probably want to write it down somewhere unless you particularly want that thought to continue flitting through your mind. And many such thoughts translate into either new items for the someday/maybe list or comments on existing items for that list.

Of course, just making a list won’t do you any good if it turns into sweeping unpleasant thoughts under the carpet: that will translate into some combination of not getting things done that should get done and of worrying that you won’t get things done. So you’re supposed to look at your somebody/maybe list once a week, to ask yourself if any items there should be promoted to active projects.

The reason why this struck me so much is that it gave another way to look at my preferred way of dealing with books, namely to have a very short stack (ideally of length at most 1) of books that I’ve bought but haven’t yet read, while keeping a much longer list of books that have caught my eye for some reason. I got this revelation from lean (inventory is waste), and it’s served me very well over the last couple of years, but I had a hard time explaining just why it is that having a big stack of books that I really want to read but haven’t gotten around to reading is bad while having a long list of books that I really want to read but haven’t bought or gotten around to reading is good. (The third option would be to not have a list or a stack; for me, that would translate into an unreliable mental list, which is worse than a physical list.)

If you think about it in GTD terms, though, what’s going on is this: you see a book, and the thought flits through your mind that you should read it. Being a trained devotee, you know that you need to write this down somewhere: so is reading that book a current project, or a someday/maybe item?

If it’s a current project, then the logical next action is to buy it, so by all means do so at once. If you don’t have definite plans to read it soon, though, then it should go on the someday/maybe list, in which case buying it now isn’t appropriate. If you want to get a bit subtler, you can say that you have a current project of “always have a book to read”, in which case buying the book is appropriate if you’re close to finishing your current book and you want to read that book next, but isn’t appropriate otherwise.

Basically, there are (in my experience) a few reasons why I’m tempted to buy the book on the spot. One is because I like to fantasize how exciting it will be to read the book. That’s very pleasant, but buying the book isn’t a good response to fantasies like that: I should only buy the book if I’m actually going to read it, not just because I want to bask in the thought of reading it and can hallucinate that buying the book right now is a constructive step towards that end. Another reason is because I’m afraid that I’ll forget about the book if I don’t buy a copy right new, and I really would like to read it at some point in the future; fair enough, but making an entry on a list (possibly with some notes about what attracted me to the book) is a better response than buying it. A third is because I feel guilty walking into a bookstore, browsing their books, taking notes about what books to buy, and then walking out without giving them money; I still think that’s actually a pretty good reason to buy a book, but what I’ve found is that, if I have a low (frequently zero) unread book inventory, then I can assuage my guilt by buying one book and reading it next (or possibly after I’ve finished my other book in inventory). And if I’m not sure that I want to read the book next, then maybe that’s a sign that I shouldn’t buy it right now: I have lots of experience with the strategy of buying books because I feel that I should read them, and the results aren’t generally particularly positive.

The upshot is that I’ve moved my books-to-read (games-to-play, music-to-listen-to) lists to a ’someday’ subdirectory of my GTD directory, and added a generic someday list there. And the results have been generally pleasant: it’s nice to have a place to write down ideas about things that I’m thinking of doing in the future. Equally importantly, it let me stop worrying about certain things that I knew I should get around to doing but just didn’t have enough spare cycles at the moment to work on; enough items have graduated from the someday list to full-fledged projects that it’s not just a sham.

deming on examples

Sunday, March 30th, 2008

Since I felt compelled to type out a long quote for use on a mailing list, I might as well stick it up here, too. This is from Deming’s Out of the Crisis, pp. 128–129, in its chapter on “Diseases and Obstacles”; the blockquote sections are indented in the original.


Search for Examples. Improvement of quality is a method, transferable to different problems and circumstances. It does not consist of cookbook procedures on file ready for specific application to this or that kind of product.

It is not unusual for a consultant to receive an enquiry for examples of success in a similar product line. One man enquired if the methods of this book had ever been used in the manufacture of wheelchairs. Another enquired about compressors for air conditioners: did I know of any application? Another man enquired about the management of a hospital: would the 14 points apply? Another wondered about application in a large accounting firm. Another man wondered if the principles taught in this book had ever been used in the manufacture of automobiles, as if he had never heard of Japan’s automobiles. A banker wondered about application in banks.

A man just called on the telephone from Johannesburg with the proposal that he come to this country and visit with me six companies that are doing well. He needed examples, he said.

My answer to such enquiries is that no number of examples of success or of failure in the improvement of quality and productivity would indicate to the enquirer what success his company would have. His success would depend totally on his knowledge of the 14 points and of the diseases and obstacles, and the efforts that he himself puts forth.

Too often this is the story. The management of a company, seized with a desire to improve quality and productivity, knowing not how to go about it, having not guidance from principles, seeking enlightenment, embark on excursions to other companies that are ostensibly doing well. They are received with open arms, and the exchange of ideas commences. They (visitors) learn what the host is doing, some of which may by accident be in accordance with the 14 points. Devoid of guiding principles, they are both adrift. Neither company knows whether or why any procedure is right, nor whether or why another is wrong. The question is not whether a business is successful, but why? and why it was not more successful? One can only hope that the visitors enjoy the ride. They are more to be pitied than censured.

It is a hazard to copy. It is necessary to understand the theory of what one wishes to do or to make. Americans are great copiers (QC-Circles, Kanban or just in time, for example). The fact is that the Japanese learn the theory of what they wish to make, then improve on it.

QC-Circles contribute vitally to industry in Japan. American management, without understanding management’s role in a QC-Circle, try to copy QC-Circles, only to find some time later that they have a dud. QC-Circles that enjoy cooperation and action by management will do well anywhere.

It was related to me during a seminar (source unfortunately unrecorded) that the management of a company that makes furniture, doing well, took it into their heads to expand their line into pianos. Why not make pianos? They bought a Steinway piano, took it apart, made or bought parts, and put a piano together exactly like the Steinway, only to discover that they could only get thuds out of their product. So they put the Steinway piano back together with the intention to get their money back on it, only to discover that it too would now only make thuds.

the dip

Sunday, March 30th, 2008

I read Seth Godin’s The Dip last week, and I found it unexpectedly frustrating. It’s a short book, with a very simple premise: you (or your company, or what have you) should pick a niche, and try to be the best in the world at that niche; doing so is alleged to be surprisingly within reach, because most people/companies give up their improvements when they hit “the dip”, a lull that comes before success.

It isn’t just a paean to working harder and longer, though: not all lulls are dips. Some are “cul-de-sacs”, where pushing harder isn’t going to get you anywhere: you’re stuck in a dead-end. (And, to make things more fun, while pushing through the dip to reach a strategic goal, you may find that your tactics have led you into cul-de-sacs, so switch tactics while keeping your eyes on the goal.) So you should marshal your strength: don’t put your energies into cul-de-sacs, don’t put your energies into insufficiently grand goals, pick a goal that matters to you and keep at it until you’re the best.

Which I found quite seductive, until I stopped for a second and thought about it. I suppose I can see this as a fine way in general for businesses to operate: don’t settle for mediocrity, come up with a vision that expresses how you want people to be drawn to your business, and work hard to make it a reality. And if some people want to use that as a way to structure their personal goals, that’s great, too: having people striving to be the best at something generally makes the world a richer place.

But I don’t see why it should necessarily be my goal. I don’t actively want to be bad at things, but I’m usually happiest when I’m following my nose down paths that interest me, when I’m following a few paths (not a lot, but still several distinct ones) at once, and when I give up one path when I’m finding something else significantly more interesting. As is probably obvious to readers of this blog; I’ve long since given up any idea that this blog will be focused on any one topic, or that all the topics will be of interest to anybody but myself: I’m always glad when somebody finds something here of interest, but the reason why I keep on writing is to help focus my thoughts (e.g. via posts like this one!) on whatever happens to be on my mind at any given time.

This doesn’t mean that the book doesn’t have useful lessons: for example, when I began my current study of Japanese, I knew that I’d encounter dips along the way (as, indeed, I have), and made a decision that I was going to stick with it long enough to get some real use out of my learning. (E.g. to be able to read books or to talk to people when traveling to Japan.) But I’m still rejecting the premise of “be the best in your niche”: I can’t think of a niche involving learning Japanese that I’d want to put in the effort to be the best at, but that certainly doesn’t mean that I should avoid learning the language at all because of that!

And (switching back to the winners/losers point of view) I actually think that I’ve gotten some amount of competitive advantage of following my interests down several areas at once; it helped me to some extent in my earlier mathematician career, it certainly helped me in making my career transition out of academia, and it’s helped me make a reasonably successful shift to doing management instead of exclusively programming. (And I think the fact that I’m still doing some programming has helped me be a more effective manager, too.) It’s what I look for when I’m hiring, too: I’m not looking for, say, the world’s top MPEG expert, I’d much prefer somebody who’s happy and good at programming across a wide range of domains and who has the social skills to also elevate those around her. Probably Seth can come up with a niche in which that person would be the best (heck, I probably could myself if I chose to think about it for a while), but I’m not convinced that thinking in terms of niches in which you’re the best is the proper way to analyze that situation. And, having written this paragraph, I’m not even comfortable with its first sentence: I won’t go as far as rejecting competitive advantage, but I don’t want to treat it as a driving force which I’ll unconditionally accept, either.

(Parenthetical note: I’m not sure Seth rejects the idea of being a successful generalist, either. I read somebody, who may or may not have been him, say that being the best at one thing is a good strategy, but being noticeably better than average at a range of things is another successful strategy. And I’m happy to endorse the latter strategy. At least in my role as somebody trying to be successful at a job; I’m still happy to dabble in other areas for fun without worrying about whether or not I’ll become better than average at them. Also, I thought I’d read a blog post where he talked about several (four?) different ways in which people can be motivated and produce wonderful things, of which being the best in a niche was only one; I searched through his blog and couldn’t find it, however.)

I’m glad I read the book; I think I’ve learned something from it, but I really don’t think pursuing the ideas in it very far is what’s right for me. (On which note, I’ll point to Willam Tozier’s paean to generalists, to distraction, to following your nose; see also the Not An Employee blog.) It’s probably time again to think about what is right for me, though. And to reread the Taoism section of my library…

random links: march 23, 2008

Sunday, March 23rd, 2008

A bit video-heavy today.

shore and warden on refactoring

Saturday, March 8th, 2008

I finished reading The Art of Agile Development, by James Shore and Shane Warden a few weeks ago. It’s a quite good book: if you’re looking for a well-written, prescriptive guide for how to do XP, this is what I would recommend.

Though I won’t go into the book in general any more than that. But, a few thoughts that it triggered:

One thing I liked about the book’s discussion of “once and only once” (pp. 316–317) is that it spent some time on the first “once”. I’m used to thinking of the sentence in terms of eliminating duplication, which is great. But the first part of that sentence is important, too: as they say, “don’t just eliminate duplication; make sure that every important concept has an explicit representation in your design”. That way, you have a place to store behavior related to that concept: e.g. having a Dollar class may not seem like a big win over, say, just representing dollar values as integers, but it gives you a place to stash code for formatted output, or parsing, or conversions to related types.

I also really liked the discussion of levels, rhythms, and frequencies of refactoring in the “Incremental Design and Architecture” section. (pp. 321–330.) They distinguish between standard incremental improvements and “breakthrough” changes: the latter are “idea[s] for a new design approach, which will require a series of refactorings to support it. … Breakthroughs happen at all levels of the design from methods to architectures.”

After which they talk about how frequently you do various sorts of refactorings, and how to make time for them. At the method level, “Method refactorings happen every few minutes. Breakthroughs may happen several times per hour and can take 10 minutes or more to complete.” At the class level, “Class-level refactorings happen several times per day. Depending on your design, breakthroughs may happen a few times per week and can take several hours to complete.”

The latter raises the question: several hours is enough to make a noticeable blip in your team’s work for the week, so where do you find the time, if you see something that looks valuable but isn’t on the shortest path to completing a feature? Their answer: “Use your iteration slack to complete breakthrough refactorings.”

And then there are architectural breakthroughs; I’ll quote them at length on the subject (p. 325):

In my experience, breakthroughs in architecture happen every few months. (This estimate will vary widely depending on your team members and code quality.) Refactoring to support the breakthrough can take several weeks or longer because of the amount of duplication involved. Although changes to your architecture may be tedious, they usually aren’t difficult once you’ve identified the new architectural pattern. Start by trying out the new pattern in just one part of your design. Let it sit for a while—a week or two— to make sure the change works well in practice. Once you’re sure it does, bring the rest of the system into compliance with the new structure. Refactor each class you touch as you perform your everyday work, and use some of your slack in each iteration to fix other classes.

Keep delivering stories while you refactor. Although you could take a break from new development to refactor, that would disenfranchise your customers. Balance technical excellence with delivering value. Neither can take precedence over the other. This may lead to inconsistencies within the code during the changeover, but fortunately, that’s mostly an aesthetic problem—more annoying than problematic.

Definitely something to think about: over the last few years, my team has made some progress in terms of lessening the technical debt that we’re adding to the system, but we still haven’t done nearly as well on that as I’d like, and we’ve done a bad job in terms of actually eating away at the technical debt. (As you might suspect from my using the term “last few years”.) We’re just not good at maintaining a good refactoring rhythm at the various scales that are necessary; maybe the authors’ advice on the subject will help, by giving an idea of what our behavior would look like if we were successful.

Note also the importance of slack in carrying this out successfully.

over a hump

Monday, February 18th, 2008

I’ve been going through some changes recently in my Japanese study. I finished the Manga-based grammar I’d been reading sporadically, and finished going through the characters in Read Japanese Today. Which I recommend (both of them, but I’m thinking particularly of the latter here): in my experience, you need as many methods as possible to get kanji characters to really stick, and learning about the origin of the characters is a good one. (I also recommend preferring to learn easy easy characters and focused memorization.)

Of course, now that I’ve finished those, the question is: what next? To follow up the latter book, I’m trying to spend more time imagining ways to link radicals to characters when memorizing characters. And Amazon commenters recommended the book Chinese for Begninners, which is apparently really about the characters rather than other aspects of that language; I’ve ordered a copy, we’ll see if I like it or not.

To follow up the former book, I’d been tentatively thinking that I’d start going through Hikaru no Go: I have the first volume in both English and Japanese, so it seems like a good place to start testing myself against the language more. The problem with that, though, is that I’m not sure exactly where in my schedule I’d find time to read it in Japanese! Fortunately, the problem doesn’t seem very urgent right now: I’ve found other ways to expose myself to Japanese (watching episodes of Hikaru and Twelve Kingdoms in Japanese with English subtitles; playing through Eternal Sonata in Japanese with English subtitles), and I’m learning a fair amount from them. I get the feeling that I’ve gotten over some sort of hump: most of the time, I very much rely on the subtitles, but more and more often I can figure out individual words after the fact or even decode whole sentences after the fact, and there are even some very simple sentences that I can figure out without the translation.

Another cause for optimism: for whatever reason, I’m going through the textbook faster than I had been. The last three chapters have taken me two weeks each to finish, instead of the three weeks pace that I’d been going at before, and the pace feels sustainable. My guess is that I’d run into a patch of unfamiliar grammar before (while the recent grammar has been stuff that I’d been at least somewhat familiar with from other sources), and I’m also getting better now at learning new vocabulary, and those have combined to speed up my progress. I wouldn’t be surprised if I occasionally go back to three week chapters (or longer, if illness/vacation get in the way), but I’m now a good deal more optimistic than I was that I’ll manage to finish the last twenty chapters in about a year.

I’m also getting more out of my use of JapanesePod101. I’d been annoyed by two flaws with their RSS feed: they only list the last seven episodes, which makes me worried if I ever go on vacation or need to send my computer in for repairs (previously, when I’d checked, they listed all episodes since their inception in the feed), and they started to throw in “premium lessons”, which I had to download by hand. (I do have a subscription, but I did that because I wanted to support them rather than because I wanted to have special access to stuff; I wished they’d just make the premium lessons available for free and stick them in the main feed!)

So I poked around a bit, and realized that there was a feed available for paid subscribers. And it not only remedied both of those issues, it also contained more material that I was aware of but hadn’t been using. The occasional “bonus audio” tracks are amusing but nothing special; having the lesson-specific PDFs available in iTunes, though, means that I actually look at them (since I see them in iTunes when deleting episodes that I’ve listened to), and they’re a good tool for helping reinforce my learning. I don’t actually generally use them to follow up on the grammatical points in the lesson: their main benefit for me is that they write out each dialogue in four forms: one including kanji, one kana-only, one in romaji, and an English translation. Which gives me a lot more reading practice, and in particular is a good way to test my kanji recognition skills in a safe environment. So now I’ll recommend a basic subscription to other people learning Japanese: it’s not just good for giving yourself warm fuzzies, the extra material in the RSS feed really is useful. (I don’t yet have an opinion about the premium subscription; the price difference is such that I didn’t seriously give it a thought, given that I’m learning enough via other means.)

So: I still have a long way to go, but I’m happy with the recent concrete signs of progress.

One other tweak that I’m considering: I write up lots of vocabulary flash cards (which is clearly useful!); when I’ve decided I know the word in question, I put it in the box in alphabetical order. This takes a noticeable amount of time (not a huge amount of time, but time I’d be happy to eliminate), and is largely drudgery; is it actually useful?

In some circumstances, the answer is yes: if a kanji has lots and lots of readings, I’ll only memorize a few on my first attempt, and take the card out later to add more. But for other words (kana-only ones, compounds), I almost never take out the card once it’s gone in the box. So I’m tentatively thinking that almost all of the time I spend alphabetizing those cards is waste; and, if I decide that I’ve forgotten a word that I once thought I knew and want to take out the card again, I could always just rewrite the card from scratch.

So now I’m thinking I might just throw away cards that don’t correspond to a single kanji. I’m going to think about it for a few weeks, since that’s not a step that’s easily reversible, but it might be a good opportunity to reduce inventory.

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.