[ Content | Sidebar ]

pruning my library

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?

n+

May 4th, 2008

N+ is the first XBLA game that I’ve bought. It’s a platformer in its purest form: your only controls are a joystick for movement and a jump button. Each level is a single screen: you start at one point on the screen, there’s an exit somewhere else, and a button that opens up the exit in a third place. The levels are much less left-to-right and involve much more vertical movement than, say, a classic Super Mario Bros. level: they don’t typically have a ground at the bottom as an important component, and you have a wall jump to help you reach higher areas. There are some enemies: the most important are stationary bombs, but there are also moving bombs, and missiles that track you. (You can also die if you fall far enough, though if you’re next to a wall then you can use it to brake.)

The levels are pleasantly challenging while, generally, fair; I had to play many of them over and over again, but I usually felt that dying was my fault rather than the level designers’ fault: if I could just get my movements executed properly, I’d be able to finish the level, and the levels are short enough that you don’t have to retrace your steps much at all.

The graphics style is very bare-bones, which worked just fine: you’re a stick figure (albeit one with amusing death animations: exploding stick-figure limbs setting off a further chain of bomb explosions can be quite charming), there are no textures to speak of, the enemies are the most basic of sprites. All of which just serves to emphasize the pure platformer nature of the game: it’s all about making your jumps, everything else is secondary.

I’m quite happy with it as my first XBLA experience. I didn’t finish the game, and in fact I only made it through about a third of the levels. But that third of the levels was a good 75 levels, and it was a lot cheaper than a retail game; I got my money’s worth, and if they’ll stick in more levels for people who are more obsessed with that sort of gameplay than I am, more power to them! There’s a free version, too (which came out before the XBLA version); I haven’t tried it out myself, but I’m sure the game play is extremely similar, if you’re curious about it.

types of actions

May 4th, 2008

Another thing that I’d forgotten since the first time I read the GTD book: not everything that advances a project is a Next Action. Some actions are for the future (and hence belong on your calendar or tickler file); some actions need to be carried out by other people.

One concrete effect of this realization is that it gave me a way to flag the current status of all of my projects. I have a list of projects; each project has to have to have at least one item associated to it with the label NEXT, WAITING, or SCHEDULED. I may have multiple such actions, if I’m proceeding along multiple fronts; I may also have items on the project that don’t have any of those labels. (Those items might be ideas for future actions or reference materials.) But I have to have at least one item that’s flagged with one of those labels: if I don’t, that’s either a sign that it’s really a someday/maybe item, not a project, or that I need to sit down and come up with a next action on the project.

This also applies to e-mails. Some e-mails, even e-mails that I have flagged as active instead of archived, aren’t associated to a project; I stick these in a folder called ‘conversations’. But lots of my active e-mails are associated to a project. So I have folders ‘actions’, ‘waiting’, and ‘scheduled’, corresponding to the labels above. (As well as another folder, ‘projects’, for reference material that I don’t want to archive just yet.) (Actually, not every e-mail in actions/waiting/scheduled is associated to a project in my formal project list: some of them are single-action projects that I don’t feel compelled to capture elsewhere. Though some may be few-action projects that really should be captured elsewhere? I don’t think it’s hurting me yet, though.)

The problem is that this requires too much work for some common operations. Say that an e-mail comes in that I’m waiting for. Then it’s a response to something that’s currently in my ‘waiting’ folder; to avoid forgetting that I’ve gotten the response, I typically move the response to ‘waiting’ as well, then (once I’ve finished clearing out my inbox), go to ‘waiting’, look for e-mails that have gotten responses, and characterize them accordingly. Another difficult issue is when an e-mail requires some amount of context to respond to entirely: do I just have a single message in my actions folder, or the whole thread?

I’m starting to think that gmail has gotten it right by replacing folders with (per-thread) tags. But I’m not willing to move even my personal e-mail usage to gmail’s web interface, and I certainly can’t move my work e-mail there. Does Thunderbird use tags, and make it easy to restrict your view to only messages with a certain tag? (Looking at the web page, I think so, but I’m not completely sure.)

For the time being, I am one of the eccentrics who reads e-mail using Gnus. I assume I’ll move off of it one of these years, but that time hasn’t yet come, and (despite Gnus’s folder-centric nature) I don’t think this will push me off of Gnus, either. I spent a few hours digging through the source code and asking questions of the newsgroup; Gnus doesn’t have tagging support, but it looks like it should be workable to add an extra header to saved e-mails and tell Gnus to limit its view to headers matching a certain value on that header. (A nice benefit of having a mail reader written in a scripting language.) I haven’t yet found the time to implement this, so there might be something that I’m missing, but I’m optimistic.

Once I’ve done that, I can get rid of the separate action/waiting/scheduled folders: those messages can all be in my projects folder, and I can add keystrokes to narrow my view to messages with a certain tag. Of course, this doesn’t solve the ‘response to waiting’ problem listed above; I may actually have my inbox be the same as my project folder. (I’m not sure what the effects of that will be.)

Even the current system is a big improvement over what my inbox used to look like. My actions folder never gets very big; when I got back from vacation, I had 50 e-mails in there when I was done with my inbox scanning, but that was an exception, and having those e-mails all in one place was very useful. (In particular, it allowed me to get it down to the normal 5-or-so level by the next day.) And the waiting and scheduled folders are useful views for periodic reviews. But it’s clearly an area where improvement is possible.

wozniak the memorious

May 3rd, 2008

Jim pointed me to this article a few weeks ago, and I’m annoyed to say that I can’t get it out of my head. It’s about a guy who claims to have an algorithm (implemented by a computer program) to help you remember a lot more stuff a lot more solidly than you can with other methods, and it strikes just the right balance of potential importance and buy-in required to get me thinking about it more than I’d like.

The basic idea is this: if you want to remember something, you have to practice remembering it periodically. So it’s not enough to cram facts for an exam and then pretend that you know something: a few months later, you won’t consciously remember most of it. (Which is one reason why I question significant parts of our educational structure, but that’s a separate rant.) Instead, you have to periodically refresh your memory of the facts; fortunately, you can refresh less and less frequently over time and still remember those facts. Basically, the optimal time to refresh each fact is right before you’re about to forget it; this guy claims that he has a computer program that will serve up facts to you at the appropriate time for optimal practice.

This would be very useful to me (and, for that matter, to Miranda) right now: while he will happily apply it to anything, it’s clearly extremely applicable to learning foreign-language vocabulary. (And grammar!) And the theory is also obviously quite plausible (and apparently supported by the empirical psychological literature): I’ve spent a lot of time memorizing facts over the years (and in particular over the last year), and I can testify that this phenomenon of memorizing a word, and then not quite having it at the tip of your memory (or barely still having it at the tip of your memory) some time later is quite correct, and I’m quite willing to believe that there’s some optimal decay pattern for the refreshes.

But I also have a system for memorizing vocabulary that works moderately well right now: not perfectly, by a long shot, but I’ve gotten a lot of use out of it. In particular, right now I have 1200 or so vocabulary cards written down; I’m not about to sit down and digitize them all (which isn’t really necessary), but I’m also nervous about switching to another system which may or may not work, and (if I decide to switch back) to then deal with having some of my vocabulary on a computer and some on physical cards.

Also, to make matters worse, the software is basically Windows-only. So using it isn’t a realistic possibility for me. (It does seem like the sort of software that would strike a chord among Mac geeks, but who knows…)

But then I was idly thinking about it some more over the last day or two. Just how hard could it be to whip together a version of the software myself? The basic infrastructure is pretty straightforward: I need a way to save questions and answers, I need it to display questions to me, and I need to tell it whether or not I’ve answered the questions correctly. Then the software could save my history of when I’ve answered each question successfully (or unsuccessfully), and, based on his magic curves, figure out when it should next offer that question up to me. I’d never written a Rails app (a deficiency that I’d like to remedy), but all the data entry/display sounded like it should be very easy to whip up using Rails; I didn’t know what the magic sauce was, but it’s probably some sort of exponential decay curve, so I should be able to just look up his algorithm and implement it, right?

So I spent some more time at his web site, looking up his algorithm. And, at first, I was pretty disappointed. The most obvious place to start was with the paper version, but it had a few glaring deficiencies. The main one is that it had you work on groups of items all at once, treating each group as equally difficult (i.e. with the same decay curve). (Both the grouping and the equal difficulty seemed wrong to me.) Also (and this is, of course, just a minor annoyance, easily tweaked around), having the first review come four days after you’ve written down a group seemed way too long to me.

Reading that, I was pretty let down. After more poking around, though, it turns out that the algorithm has changed a fair amount over the years; I believe this is the most recent version of the algorithm listed on the website, and that page gives links to earlier historical versions. I haven’t tried to fully understand the most recent version (and, as far as I can tell, there’s not enough information there to reconstruct it, some of the constants there apparently need to be determined empirically), but there are enough ideas to try to remedy the above flaws. It seems like the current version doesn’t always use exponential decay, but I believe earlier intermediate versions did (version 4 seems a particularly useful touchstone), so I could easily start with that; there is a per-item difficulty factor, and there’s some idea that you can calculate the difficulty factor by counting the number of times you’ve gotten the item wrong.

Based on that, it sounds plausible that I could hallucinate an algorithm that probably wouldn’t do any worse than my current method for learning vocabulary. (My current method wastes too much time up-front in going over words that I would ideally review in intervals longer than a day, while at the same time not doing enough review of old words.) And I don’t think it would be too much work to whip up a program to implement it, and I’d get some practice with Rails to boot.

So: would doing that be a good idea? I’m still not sure: if I ultimately decide that I don’t like the results (whether because I don’t think it works well or because I don’t want to be tied to a computer when doing vocab review or because of some other reason), then there would be a real cost in switching back. And it may turn out that this is all really a side-issue: maybe it would be more effective than my current system, even significantly so, if I wanted to memorize a dictionary. But I don’t want to memorize a dictionary, I want to be able to, say, read Japanese, and doing so would probably give me frequent enough review of the words I was actually using to make a program like this superfluous.

Not sure where I’ll go with this yet; for now, I’m too busy, so it’s on the someday/maybe stack. But it’s surprisingly close to the top of that stack; we’ll see where I am in a couple of weeks.

saved items queue: april 30, 2008

April 30th, 2008

Time for another tour through my saved items queue in Google Reader. No new categories since last time; the numbers of items in those categories, with the difference from last time, are:

  • blog: 7 (+5)
  • book: 32 (+7)
  • commented: 0 (-2)
  • flash-game: 10 (+2)
  • long: 28 (+14)
  • music: 13 (+6)
  • podcast: 28 (+8)
  • recommendation: 17 (+6)
  • short: 0 (0)
  • think: 12 (+3)

For a total of 147 items, an increase of 49 over last time. Which is 49 off of my prediction.

Hmm, not sure I’m learning anything any more from these posts. Note that all the categories except for blog, commented, and short are part of my someday/maybe list; the three short-term categories aren’t growing (the 7 items in “blog” just means it’s been a little while since a “random links” post), but the someday/maybe categories are. Which is fine; I still get occasional use out of the collection of saved items, and the fact that those categories are growing just says that I have other priorities in my spare time right now.

sticking with twitter

April 27th, 2008

I’m sticking with Twitter, at least for the time being: twittering turns out to be reasonably fun, and my earlier blog post plus a mailing list query turned up enough names to make a critical mass of both people I’m interested in following and people interested in following me. Including a couple of other people who were apparently prompted to join because of my messages, which suggests that I’m not the only person I know who was thinking of joining.

I guess the next steps are to find a Linux client (shouldn’t be hard, I guess I can just do it via IM?) and add a few more people to follow. So far I’ve been following a few people I know and a few of the bloggers I read whose tweets are relatively interesting. Which certainly isn’t the case for all bloggers I read; come to think of it, the sort of tweets I prefer from people I know personally are rather different from the sorts I prefer from people I don’t know. I still need more people to follow, because my stream is thinner than I’d like and too heavily dominated by the relatively few frequent posters, but it’s a good start.

someday/maybe

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.

just signed up for twitter

April 24th, 2008

I just signed up for Twitter. (Should I capitalize the T or not? Hmm, looks like I should.) I mostly did that not because I want to start using it now but rather because I can imagine wanting to use it in the future, and, if I do so, I’d prefer to have a relatively readable URI. But some experiences recently in the red-bean IRC room got me thinking that I like getting little status updates from my friends; that IRC room is far too high a volume (at times) for subscribing to it to be a good idea for me, but Twitter could be a good alternative.

So I’m open to the idea of using it. Which means that I need two things:

  • Friends who use it, so I have somebody to follow.
  • Good clients for both Linux and Mac.

Presumably I can figure out the latter easily enough myself (though I’m open to suggestions, especially on the Linux front); can my blog readers provide me with a critical mass of the former?

professor layton and the curious village

April 23rd, 2008

Professor Layton and the Curious Village is a puzzle-based adventure game. Actually, that probably gives the wrong impression, making you think that the game is about figuring out how to use these items to get access to a key that you can use to open a door over there; I should say instead that it’s a puzzle-obsessed adventure game, in the sense that, whenever you strike up a conversation with a random NPC, he or she may or may not have anything to say about whatever is on your mind, but will definitely show you a picture drawn with matchsticks and ask you to, say, turn it from four cubes to three cubes by only moving one matchstick. Or might tell you of a farmer trying to convey wolves and chickens across the river using a boat that only carries two animals, where three chickens can successfully defend themselves against two wolves but one chicken can’t. Or he’ll ask you how he can possibly measure five cups of milk, given that he’s somehow lost his five-cup measure but has a helpful set of ten-cup, seven-cup, and three-cup measures.

I might as well stop here; most people will either run screaming from the game or fall in love with it, and the above paragraph should give you enough information to determine which bucket you fall into. If you want puzzles, this is the place to go: there are 130 or so of them, I enjoyed them all, there are ample hints should you need them. On a non-puzzle-related note, the art style is totally charming, in a sort of Triplets of Belleville way.

And there’s already a sequel out in Japan, with a third game in the series promised; yay!

go buy okami

April 21st, 2008

In honor of the release of the Wii version of Okami, I urge all of you who own a Wii (or a PS2) and who haven’t played the game yet to go out and buy a copy. More here, but the short version is: it’s an adventure game based on Japanese mythology with a beautiful art style based on Japanese brush-work, where you level up by (among other things) growing plants and feeding animals, all on a solid core of Zelda-style gameplay. I haven’t played the Wii version, but I can’t imagine adding Wii controls to the brush commands would lower the quality any…

caught up on japanesepod101

April 19th, 2008

Wow, I haven’t been blogging much recently, have I? Sorry about that; I do most of my blogging on weekends, and the last few weekends have been pretty busy. (And much of my weekday free time in the evenings has been spent watching Twelve Kingdoms.)

Fortunately, I have not been slacking off on all of my side activities: I’m finally caught up with all the back episodes of JapanesePod101! I even managed to catch up a couple of months earlier than I predicted, largely due to the fact that, for a while, they were only doing two episodes a week that were at about the right level for me instead of three episodes a week. (I listen to all the episodes, I just pay more attention to some than others.)

Actually, learning Japanese has been going well for the last two or three months. I was unhappy with how long it took me to go through the first ten chapters of the textbook I’m using; since then, I’ve done six more chapters, and only one of them took more than two weeks, so my pace has increased noticeably. (And that one only took three weeks.) And I’m up to 301 characters in my march through the Joyo Kanji; I still have years to go on that journey, but at least it isn’t showing any signs of stalling.

Happy signs everywhere.

comment management in wp 2.5

April 18th, 2008

I’m not convinced I like the comment management UI in WordPress 2.5: I accidentally marked several previously-approved comments as spam and then deleted them. Fortunately, I noticed my mistake within a couple of hours, quickly enough that the most recent nightly backup was still around, but it was still an easier mistake to make than I would have liked.

Lessons:

  • Other WordPress users, beware.
  • If you’re saving something you care about, practice restoring from the backup! (Some googling showed me how to restore from a mysqlhotcopy backup, but I still had one heartstopping moment where the initial restore didn’t work because of a file ownership/permissions problem.)
  • If you’re saving something you care about, keep multiple nights’ worth of backups.

So what’s the best way to address that last issue? We have enough disk space lying around that I could just keep around tens of nightly snapshots. But snapshots from night to night are, in general, not very different, and the process (other than transient spam comments) is largely additive; I don’t see why a complete revision history should take up that much more space than two full backups. (Hmm, maybe that’s a bit optimistic, because of all those spam comments.) But tools like that that I’m aware of are all line-based, and I don’t know offhand of a good way to do a mysql database backup that puts different rows in different lines. So I might have to use a binary diff program, which I’m not that familiar with; maybe bsdiff?

Maybe I’m going at this in the wrong direction – maybe I should approach the problem at a different level, backing it up using some sort of xml format that WordPress can handle through its management interface? If I did that, I’d have more confidence that I’d be able to manipulate the resulting backup files in a non-harmful fashion that’s more amenable to line manipulation.

For now, though, I think I’ll just throw disk space at the problem…

deming on examples

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

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…

floor repairs

March 29th, 2008

The latest victory of my new, organized self: after putting up with quite bouncy floors in this house for the four and a half years that we’d been living here, we finally got it fixed!

The barriers here were was psychological as much as organizational: my brain was imagining all sorts of possible causes that were either too serious or too expensive for me to want to confront them. Having said that, I’d actually finally faced up to the fact that that behavior wasn’t doing me any good and begun dealing with the issue several months ago; at that time, I looked through the phone book, found a house inspector, learned that house inspectors didn’t (in general) do termite inspections, decided that I wanted a termite inspection first, had that inspection, and paid for treatment. Which was a big step.

But not big enough: I still had a bouncy floor! When I took my first GTD steps, I decided that I didn’t have any reason to not be doing some house work, but that floor repairs weren’t actually the highest priority: getting the dryer vent replaced was. So I got that taken care of. (And stopped feeling guilty about not looking at the floor: I’d made a conscious decision not to do it then for a good reason!)

Once the vent was replaced, though, I did decide to launch on the floor repair project. The next step was easy: I’d already found a candidate by leafing through the phone book, so when I had some free time at work (which took most of a week), I called and arranged for an inspection. Which cost more money than I expected, but was worth it.

And the news was actually as good as I could possibly have imagined: yes, the floor was bouncy, but it was bouncy for a reason, the reason wasn’t a structural problem, and the reason was something that could get fixed without paying an arm and a leg. Basically, the floor under the house had dried out and compacted in the three decades since the house was built. (Incidentally, having it be dry was also good news, since I was a bit worried that water had gotten under the house.) So now some posts weren’t touching beams that ran above them. This meant that if you stepped on an area of the floor supported by the beams, the floor would sag until the beam touched the post. Which is easy to fix: you just shim up the beams.

The inspector gave me a contractor recommendation, and they both seemed like reasonable people, so I went with that. And he cleaned out various other things under the house while he was there: aside from shimming the posts, he put in some earthquake straps, cleaned out some lint from the dryer problems, moved some cables off of the floor of the crawl space, and even cleaned up some beer cans that had apparently been left there by some prior worker on the house. (I’m not sure I want to know the story behind that one…)

And now the floor feels a lot more sturdy, and I have one fewer low-level worry: huge success!

Unfortunately, our house work isn’t over: we’d been thinking for a while that there were certain aspects of the kitchen that we didn’t like, and recently the stove has given us more problems than we’d like. So it’s time to replace the stove, and if we’re doing that, it’s not going to be a simple replacement: there’s an electric stovetop in one place (above some cabinets) and a pair of electric ovens in another place, and we want instead to have a single gas stove/oven combo located where the stove is currently, with cabinets where the oven is currently. Which sounds like a reasonable amount of work; we will, I think, work hard to have it not turn into a complete kitchen remodel, because while I don’t, for example, like the tile countertops, I also don’t want to have my kitchen unuseable for a long period of time. But some significant work is unavoidable, and poor Zippy will have to be shut up in our room again while people are working downstairs.

I’m not starting it just yet, though: we have other things coming up over the next month or so, so right now just isn’t a good time. We should probably start in May; hopefully Sun’s Q3 bonus will be a good one this year…

upgraded to wordpress 2.5

March 29th, 2008

I’ve just upgraded to WordPress 2.5. Seems okay so far; the administrative interface looks pretty different, and I’m not entirely convinced by it (the blue and orange clash, maybe a bit too much whitespace). And there’s now a space for commenters’ pictures; not sure what I think about that, I’m tempted to remove it because I doubt it will get used much. I’ll think about it for a while, I guess.

i guess they did something else after all

March 24th, 2008

A postscript to my recent mac repair: when I got my computer back, it seemed that the DVD drive sounded a bit different, and now I’m 80% sure that they replaced it without my asking them.

I can’t figure out if this goes in the good column or the bad column. It is true that the drive wasn’t performing as well as I would have liked (though it was probably better than the original drive I got with the machine). Given that, bully on them for noticing it, and I suppose it’s good that they replaced the drive while they were working on the machine.

The flip side is that this machine is on its third optical drive in just under two years; a reminder that the drive quality on these machines isn’t very good, and it raises the possibility that the replacement drive may in fact not turn out to be better than its predecessor.

Still, it did manage to burn a DVD on its first try, which at least suggests that the drive has some basic competency in its anointed function.

A note to myself, should I ever wonder in the future about whether or not the drive has silently been replaced: the current (probably new) drive identifies itself as a “MATSHITA DVD-R UJ-857”

random links: march 23, 2008

March 23rd, 2008

A bit video-heavy today.

eternal sonata

March 22nd, 2008

Eternal Sonata is a quite good Japanese RPG for the Xbox 360. Unfortunately, the main lesson that I’ve learned from it is that I don’t particularly like JRPG’s; I won’t say I’m swearing off of them forever (in fact, I’m glad I played this one), but I won’t give them the benefit of the doubt in the future.

My first impressions were good. I pretty much decided I had to play it as soon as I heard that it took place in the imagination of a dying Frederic Chopin; they didn’t do as much with that theme as they could have, but there were other compensating virtues. The art style is very nice: I loved the color palette, and it used cel-shading in a subtle, less stylized manner than other cel-shaded games that I’m aware of, to good effect. You could see your enemies and avoid them, should you chose (in particular, there weren’t any random monsters), and the battle system was reasonably clever, with you taking an active role controlling movement, with light and dark areas on the battlefield giving access to different powers, and with a party level system making the fights more complicated (albeit not much more complicated) as the game went on.

It started to go south in chapter 2, in the Fort Fermata dungeon. This is the first puzzle dungeon (almost the only one, really), where you press switches that cause a few of the rooms to move; you’re supposed to figure out the effects of the switches and gain access to areas of the dungeon that you couldn’t before. Unfortunately, there were two problems with this. The lesser problem was that it, frankly, wasn’t a very good puzzle: it was hard to tell the effects of the switches, so ultimately I ended up wandering around more or less at random until I eventually noticed a new room that I couldn’t get to before; repeat three times and you’re done. Which would be okay, except that the areas were quite large, with almost all of it unaffected by the switches, so it was heavy on wandering and light on thinking/progressing.

The more serious problem, though, was that this was where the monsters started getting to me. There was a reasonably high density of monsters in this dungeon, but the monsters (like pretty much all (non-boss?) monsters in the game) just weren’t that much fun to fight. So about five battles into the dungeon, I’d gotten all the pleasure I was going to get from fighting in the dungeon, and was only fighting battles to make sure I’d be appropriately leveled up when I reached the boss; ten battles in, I was actively avoiding the monsters, and cursing when I accidentally touched one of them.

Even that might have been okay, were it not for one very serious flaw: the monsters respawn each time you re-enter an area that you’d previously left. So if I find a room and press a switch, the monsters outside will reappear when I exit. The dungeon was divided into two halves; each time I went from one into the other, the monsters respawned.

There is, as far as I’m concerned, no justification for this. Maybe there is a video game player who would fight all thirty or forty monsters in that dungeon and still be thirsting for more; I have to believe that such players are few and far between. More seriously, there are only so many ways you can enjoy the core mechanics of a game like this; one of those ways of enjoying the game is exploring, seeing what’s around the next corner. But the respawning directly attacks that way of enjoying the game: if poking around a corner brings you into a new area, and then you decide that you wanted to look around the original area some more, tough like, you’ll have to refight all those monsters again. I really would like to know what the thinking was here: did they not think about the matter at all, did they think that players would enjoy respawning monsters? Did they playtest the game or not; if they playtested it, did this issue come up?

Fortunately, that dungeon was the one that was most hurt by that flaw. Having said that, the respawning enemies problem kept on biting me on a lesser scale. Most dungeons were relatively linear, but you frequently came to a fork in the path where going in one direction would keep you in the same area and lead to a chest while the other direction would lead to the next area. The problem is that you couldn’t see the chest from where you were: you’d have to go part way down, and then the camera would shift for you. And if you picked the wrong one, it was very hard to figure out how far to go before deciding that the camera should have shifted by now; if you went too far, you’d be in the next area, at which point you’d have to go back (assuming you didn’t want to skip the chest), and the monsters would respawn.

I should emphasize that there are a lot of traditional RPG mistakes that they didn’t make. As I mentioned above, the battle system was better than normal, and at least you could see and avoid the respawning monsters. And avoiding them was a realistic possibility: most of the time, you could avoid almost all of them if you wished, and while doing so would mean that you weren’t leveling up enough for the boss battles, you certainly could skip several of the monsters and still be strong enough to fight the bosses without breaking too much of a sweat. You had up to nine people in your party, of whom only three could fight at once, but the others leveled up anyways; I believe they leveled up at a somewhat slower rate, but not enough to make the characters unusable if a plot twist forced you to use somebody other than your favorite characters.

The overall rhythm was off, too. Typically, RPGs have a mixture of fighting, exploring your environments, and plot advancement. As I’ve said above, the fighting got in the way of exploring your enviroments in the overworld and dungeons; unfortunately, you spend far too much of your time such environments. The towns are nice enough, but they generally felt like way stations that you’re just passing through. As far as plot goes, I like it, but it’s conveyed by cut scenes that are way too long: about once per chapter, you’ll run into a cut scene that is long enough that your controller will go to sleep if you don’t fiddle with it during the cut scene. (I believe that the sequence of cut scenes at the end of the game lasted a full thirty minutes.)

Having said that, the cut scenes are pretty good. Mostly they’re advancing the plot of the game, but once per chapter there’s a cut scene (usually paired with a traditional one) that consists of somebody playing a piece by Chopin, along with pictures showing places where Chopin spent his life and subtitles explaining that portion of Chopin’s life. So you get some quite nice music and reasonably interesting history mixed in with your adventuring. Also convenient for me was that you can set the game to Japanese voices with English subtitles, so the cut scenes (and many other areas, e.g. battles) let me practice my Japanese; I certainly wouldn’t have been able to follow most of the conversations without the subtitles, but I was glad to be able to pick up words and phrases. (Warning for other people who do the same thing: for whatever reason, they leave off subtitles for most of the final cut scene, so you might want to switch back to English right before the end.)

It’s a quite good game; I’m happy to have played it, though I’m also happy that it’s now over. Miranda really liked it, and has started playing it herself; I’m curious how far she will get. They made several decisions which I consider boneheaded, and which soured me on the genre: Lost Odyssey is getting some amount of buzz right now, for example, but I’m going to stay away from that one. (Admittedly, enough games are clamoring for my attention right now that I would probably have stayed away anyways.) But there are more than enough surprising good decisions that the good outweighs the bad.

version control systems and filesystems

March 19th, 2008

I seem to have version control systems on the brain somewhat these days. Until not very long ago, I didn’t think much of them: they’re obviously important to have around if you’re collaborating on software, but other than that, who cares? But then I started getting addicted to looking at diffs after having checked in code, and thought that, perhaps, they might be important if you’re working on software even if you aren’t collaborating. And then I started getting more involved in the administration of the server hosting this blog, and began to appreciate that they’re useful for storing other kinds of information: in particular, we store all the configuration information in Subversion repositories.

And then Jim Blandy pointed me at the figure in this discussion of ZFS and this figure explaining Subversion’s “bubble-up method”. (Hey Jim, start updating your blog and I’ll actually link to it! :-) ) And I started using Time Machine; as John Cowan reminded me, I’m using it in ways that are seriously lacking from the “catastrophic recovery” viewpoint of backup (if my house burns down, I lose that backup, too), but of course backups are useful for other reasons, namely to save you if you make a stupid mistake and accidentally delete something you wish you hadn’t.

So now I’m starting to wonder: are we moving to a world where VCS-like functionality will be considered a part of basic filesystem functionality? At the very least, every time I create a new directory, I now ask myself if I should place it under revision control; frequently the answer is “yes”. For example, I’ve now placed my GTD files under version control; this seems like a particularly good fit, because GTD is all about removing subconscious worries, and now I don’t have to worry that I’m deleting information as I check off steps in a project that I might want to refer to later! (I’m using Mercurial for that repository, initially for a change of pace and because it’s one of the cool new kids on the block, but after thinking about it more, I can easily imagine wanting to clone that repository to this laptop and make commits while I’m off the net.)

There are some interesting design decisions here. On a basic level: do I want to back up everything (with a revision history), or do I want some files/directories to be excluded? (Browser caches are one candidate for exclusion.) And do I want to be able to rewrite history? In particular, do I want to have the ability to remove confidential information from all backups?

How intentional should the creation of new revisions be? I can imagine a filesystem that stores every single change as a separate revision, or one that takes revisions periodically (as Time Machine does). But, in a VCS, revisions generally serve some sort of communication purpose: if I’m working on source code, I don’t want every time I save a file to be reflected in the revision history, I want control over when I commit. Not so clear in other instances; I’m thinking of setting up a cron job to do a commit on my GTD info every night, and reserving manual commits for special occasions.

I’m also wondering what other lessons filesystems could learn from VCSes. For example, distributed VCSes are all the rage these days; could networked filesystems learn something from that? (Though I can’t quite envision how the merge problem will get solved there.) Are there situations (cloud computing?) where we can get some mileage from relaxing consistency guarantees and viewing different filesystems as repositories with a genetic relationship, with changes periodically pushed/pulled in one direction or another? Maybe we should pay more attention to asynchronous notifications, either in the filesystem world or the VCS world; I spend enough time looking at networking problems through a RESTful lens that I get the feeling that asynchronous notifications are a bit out of style, but I’m appreciating them at work more and more these days. (Hmm, Twitter suggests that they’re not out of style at all, doesn’t it?)

No big conclusions, and I’m sure other people have been aware of some of these issues for decades, but I’m enjoying noticing these things.