Changed the markup code in OddMuse. Debugged some. Looked at MeatBall:TinyWiki and I am impressed. I’m not sure I like active wiki pages, though. Almost nobody seems to use the raw wiki import and the RSS import patches I wrote, so I figure that most people are just interested in reading the wiki pages and writing content – not programming. So if only the founder or a handful of people care for programming, no need to move it all into user space and onto wiki pages. The important part is that the code is easy to understand. And size does matter, so if the the code fits on few pages, then it is easier to understand, easier to maintain, debug, extend. This is the aspect I like. Looking at the markup rules of Tiny Wiki – and considering that I just changed the markup rules of OddMuse – I am surprised at the use of \G in the Perl regular expressions in Tiny Wiki. I must think about this some more. It seems that Tiny Wiki goes through the entire page just once, processing each token and maintaining internal state. A finite state machine. I’m not sure wether that helps much. Perhaps it does. It could avoid a problem that my code still has – if the markup uses tags, then it would be nice if the wiki engine checked nesting. The ideal markup engine would make it impossible to produce invalid HTML, without letting the user know. There is also the partial compilation and caching that a MeatBall:MoinMoin patch does. The parser replaces stuff that will never change, such as bold markup resulting in bold text, and replaces markup that will change, such as links to pages (since it will change depending on wether the other page exists or not), with python byte code (kind of Lisp lambda expressions, I guess). This intermediate representation is then cached. It looks like a neat trick. Which brings me to another point: Tiny Wiki at its home site (slowass) is very sluggish. Why is that? Perhaps some bug in the CVS interaction. Other than that, if the code is significantly smaller, perhaps a CVS backend is the way to go. I am not sure. As I think about OddMuse, in any case, and my MeatBall:FeatureKarma, I am always thinking about the features it has and which I never used. Perhaps they only make sense for very large sites. Example: I never use passwords because I am the only admin anyway, so I can access the site using other means. And imagine I go away on extended holidays – what would I do – define an admin password and share it with some friends? Or would I give them access to my account? If I give them access to the account, no admin password is needed. And perhaps lots of features are not needed. Food for thought.
_perhaps Tiny Wiki is slow because it’s running on http://slowass.net; that page indicates that it’s running on an apple mac 7300_180, which is from ’97, I think. – MeatBall:BayleShanks//
_A grammar is definately the way to go. The statelessness of several global regex is extremely limited. I hadn’t thought for one instant to do things that way - but then again, I knew SNOBOL before I knew Perl =) – MeatBall:ScottWalters// _