Saturday, September 27, 2003

Time to give major props to a guy who's been inspiring me with all kinds of cool stuff recently. And of course, in my stupidity it's taken me a while to realize it's the same person : Alex Schroeder

It started at the end of last year, when I decided to try Wiki mode for Emacs. I'm an emacs illiterate. But thanks to the magic of Debian and apt-get I had it installed in a couple of minutes. Within half an hour I was convinced that this was the most powerful 37Kb of code I'd ever used.

I learned :

  • wiki, which I'd seen before and never really got, was the quickest and simplest way to author hypertexts I'd ever encountered.
  • hypertexts were a really good way to capture my disorganized thoughts. And to note down that jumble of loosely connected pieces of information I had to store somewhere but could never think of a good way of organizing ... better than an outliner, better than a hierarchical file system, better than a weblog.
  • I really liked the way I could note things down on pages and then revise the structure by re-editing the index page
  • I liked, even more, the fact I could have different index pages representing different classification schemes
  • The fact that it could spit out flat HTML docs was very handy.
  • Wiki markup was a lot easier than HTML markup for producing things like lists, emphasis, tables, headings and subheadings which were the kind of mark-up I cared about.
  • Emacs was damned cool! Really, all I had to do was get to grips with Emacs lisp and I could create incredible tools like this. Maybe Emacs was what I'd always been dreaming of.

For the next few months I started using Emacs WikiMode to write notes for work, for private projects, my todo lists, and to prepare HTML presentations. I even sent off for a second-hand copy of Bob Glickstein's "Writing Gnu Emacs Extensions".

But ...

There were things that weren't quite right. The time-lag between writing the texts, to publishing to HTML, to FTPing the files up to my site, was still too long. And I found I didn't have time to get into emacs lisp. So I installed UseMod wiki as the core of my site. Over several months, I filled it with random scraps of thought. And gradually, it started paying off

UseMod is a great piece of code. It's one script. Which makes installation and management trivial. I was attracted by other wikis which promised more, but all had a steep increase in complexity. And I found many great wikis were happy with UseMod, and some people who'd tried the more complex wikis felt they'd gained little for the extra pain.

There were patches for UseMod, but none were rolled into the standard download. But then I came across OddMuse. A development of UseMod which incorporated all the new patches and had a couple of secret weapons of it's own : RSS inclusion. Not only did OddMuse spit out an RSS feed of recent changes. It also allowed you to include RSS feeds from other sources.

That was way cool!. It looked like the next step on the road to Wiki as a user configurable dashboard Yet it was still basically UseMod. And it was still one script.

Meanwhile I'd been promising a couple of people that I would set up specialized wikis for their projects. OddMuse became my wiki of choice. Something else took me a bit longer to notice. OddMuse included (or transcluded) raw text from other http sources. You could include text from one page in another. Or text from another wiki if it had raw output. Or in fact, any source you liked.

When I shifted to a new domain I had a problem with BeatBlog. The original beatblog script read the directory of MP3 files and spat out an HTML list of links, wrapped as javascript document.writes so that it could be included in any HTML page. On the new server, this seems to have broken. So I tried an experiment. Get the script to spit out the links as raw wiki markup and use OddMuse's raw include to bring them into a blog-like page. The strategy worked fine. So I've set up the new BeatBlog as another OddMuse wiki. (I'm not entirely happy with the look yet. Unlike most wikis or web-sites, I think BeatBlog could do with a bit of eye-candy. So regard this as a pre-alpha revelation of the new BB.)

OddMuse is also featuring in another early project. For some time I've been making notes for myself of ideas for a new progamming language and development environment. Nothing serious of course. I haven't the time and skill to develop this. But I still make the notes, and maybe the Lazy Web will help me out someday. In the meantime, as one of the key ideas is for the IDE to be wiki-like, I've been thinking of trying to use a wiki to manage my source-code. The necessary precondition is a "make" spider which would run around several pages, weaving code fragments like class descriptions, into a single program. This doesn't exist yet, but once again I find that OddMuse's inclusion of raw text can give me a flavour of it

I'm feeling optimistic about this idea. Wiki does seem a good way to organize source code. And the fact that page histories are kept means it also acts as an equivalent to CVS. But ... editing code in a browser form is lousy. If only you could plug your editor into the wiki ... well today I find SimpleWikiEditMode for Emacs which lets you edit a wiki using raw download to an Emacs buffer. Means you can use an Emacs editor as a client to an OddMuse back-end.

So why the long rambling story? Because today I just noticed that it's by Alex Schroeder. Who also happens to be a major contributor to the evolution of the original EmacsWiki mode which got me into this whole thing in the first place. And is also the author of OddMuse (adapted from UseMod)

This guy is busily spitting out all the components I've always needed, but am only just realizing I need. I fear he's secretly in control of my destiny.

'nuff respect, Alex.

No comments: