Saturday morning I had a great idea. I realized my work in modeling second language learner phonology errors was really an approximation of a finite state transducer framework. And the bugs and speed issues I had been dealing with for much of the last 3 months were not on the linguistics side but more on the FSA framework architecture side.
“So if your system approximates a finite state machine, why not use a real one?”. This was my idea. I’ve used Carmel (ISI’s most excellent Finite State engine, that is free and open source and mighty powerful) a lot in the past, so I’m comfortable thinking in FSA terms… I sat down to code, and basically binged this weekend. I can’t remember the last time I was so dedicated or so motivated. Perhaps it was because it was a change of pace, a change of looking at the problem. Perhaps my brain had gotten a little stale this semseter, like cookies left sitting out on the kitchen counter for too long. It was fun, and it was productive, and I reproduced about 3 month’s work in a weekend, and my system’s speed is orders magnitude faster than before and a little more accurate. (Just goes to show how much the right tool for the job can win you–I should have realized this a year and a half ago =/ )
But damn am I tired. 3 days in a row, coding 12-14 hours a day (basically, all my time not spent in meetings, church, commute, or eating). And there went my weekend.
If programming was some sort of drug, then I came off my high yesterday to a huge crash. And I realized that life like that isn’t too healthy. “Moderation is a virtue”, they say.