It has been about a month since I decided to move my weblog to Movable Type. I've been working on it on and off for a bit, running into a couple obstacles here and there, and learning a lot about the application in the process. The fact that Movable Type is flexible enough to support my crazy ideas is pretty amazing. Overall, I'm still very optimistic about the move.
Here are a few notes about what I'm doing. First, the simple stuff like importing all 1000 or so entries from a bunch of different places (I decided to import stuff that's been sitting in a MySQL table from 1998 to 2000 too). Couple problems I ran into:
* Safari timed out on the import, making me thing that it had died. So I re-imported half of the entries and had duplicates. Later, after I realized what had happened, I found a patch for Safari that disables the 60 second time out.
* I used the Search feature in Movable Type to debug a couple problems with entry import, and hit Enter instead of the Search button and the silly thing thought I wanted to Replace my query with an empty string. So rather than fix all 20 entries that it screwed up, I decided to re-import again.
* It takes something like 20 minutes to rebuild the site, but hopefully I won't have to do that very often.
I've also been working on a few plugins that will work together to give me all kinds of new functionality. The most interesting bit will be my Statement plugin which will let me keep all my wiki-like functionality and also supplement it with some easy-relationship-building markup between words and nodes. For example, I will be able to make "kind of" and "same as" relationships between words like "walking is a kind of transportation". It's done in such a way that "walking" is the word in the entry, but the relationship is extracted from the entry and saved in a database. In another entry, I can just say "walking" and it'll know that I've talked about a kind of transportation in that entry. I can also say "walking is the same as walk" so that whenever I mention my "walk" to work, it'll inherit everything from "walking". It's the first step in my object-oriented writing project. Take all these relationships and you get a taxonomy, from the bottom up. You also get a glossary of words, where each word can list the various breadcrumb trails of relationships that it lives in. There's no limit to how deep the hierarchy can go other than that Mason only allows 32 levels of recursion for its components. That should be deep enough for me as I think my taxonomy is going to be shallow and long rather than deep and short.
What this means is that I am going to add markup to all of my entries going back to 1998. At the current rate of doing about 5 entries a day (since I've been busy with other things like performance reviews and side projects), it could take me a year. But I think things'll speed up as I gain some understanding of my own taxonomy rules.
One rule is that I can't cheat when assigning "kind of" relationships between words. I can say a "row boat" is a kind of "transportation device" but I can't say an "oar" is a kind of "row boat". See, there are different kinds of relationships among words and "kind of" is only one way of drilling down into them. "Belongs to" is another one that I think I'm going to implement before I'm through. Otherwise row boat and oar will live in entirely different branches of the taxonomy... and they should be linked together somehow. Other than "kind of" and "same as" I also has "refers to" for words like "you" that I don't necessarily want to say that "you are the same as K" when I might use "you" to describe someone else in the future. So, "refers to" will let me say that I talked about K in this entry even though none of the synonyms were actually mentioned. I also have "href" which will let me say things like "Amazon links to http://amazon.com"... and then whenever I mention "Amazon" it can automatically assign it the most popular link unless I specify not to. And it'll also keep track of all the different ways I link to Amazon.
One caution is that the markup makes writing (or even reading, for that matter) less fluid. After all, I purposefully don't link to everything that I possibly could in an entry, because it disrupts the flow of writing as well as provides distractions to the people reading the entry. So the markup is really simple on my end. Specify relationships one globally and refer to them using a simple html "k" tag ever after. K is for keyword. If I want to make it link, I've got another MTMacro tag called "link" which will take the most popular link for that keyword and build the link when the entry is built. As for reading the entry, these words will only appear as links when you hover over the words. Otherwise they'll look just like any other word. So people might miss them for a while, but at least they'll be able to read the entry in peace without dealing with all the link overload. I'll have to see how that works more when I'm a bit further along.
Anyway, that probably didn't make a lot of sense. None of my ideas do. You'll have to just see it in action... maybe I'll launch it before I've fully marked up the previous entries to get feedback. I'd like to get enough in there though to at least prove the concept to myself, and then attempt to seek the approval of others a bit later.
rebuild and MySql
Are you using MySql as your database for MT? Cause if you aren't, switching to MySql will definitely speed up rebuilds for you.
Posted by: rannie | Sunday, 25 January 2004 at 09:53 AM