In updating my old ZorkCit project, I came across an old article for CitaNews that I wrote over a year ago. It describes the user-interface issues I took into consideration when designing my first Citadel. It's rather Web-specific, but it does explain some user-interface guidelines that fit any Citadel implementation.
I've decided to name my Python Citadel "MonkeyCit" in the grand tradition of DragCit (written by The Dragon), GremCit (written by The Gremlin), etc. Since I'm Crackmonkey, my choices were "CrackCit" or "MonkeyCit". The decision was pretty obvious.
I'll be starting a Web page for the project soon. For now, there's some aging mailing list archives that describe the early design work on the project.
From the browser:
I'm extremely pleased with how lynx-friendly advogato is. I use lynx partly because when I'm in an edit box like this one, I just hit ^Ve, and up comes $EDITOR (vim in my case). I even turned on syntax highlighting for HTML. You can't do THAT in mozilla!
Of course, this encourages me to write longer diary entries. Make of that what you will.
From the sinuses:
The head cold or sinus infection or whatever it was that was keeping me unable to concentrate during my FreeBSD kernel class last night seems to be subsiding. Of course, now I'm in deadline hell at work.
From the corrupt city government:
Tonight the new sports-whatever stadium in San Francisco opens for business. The traffic congestion will be horrible. I plan to hop on a train and head out of here for the duration. This has been the most poorly-planned operation from the start. Hell, the thing was voted for by the dead to begin with.
First SF destroys its library, and now it does this. Welcome to The City. Guh.
It is a sobering thought, for instance, to realize that by the time Wolfgang Amadeus Mozart was my age he had been dead for three years
The allergies I mentioned earlier are growing into a full-blown head cold or sinus infection. Elisix bought me cinnamon tea at a northside cafe, and now I'm in the bowels of Evans hall, dialed in from my ricochet.
I did a little digging and found my old ZorkCit entry in Freshmeat and some pre-hard-drive-crash era web pages. I am debating whether to make my Python Citadel system part of ZorkCit or if I should just have them kill the entry.
Er, yeah. Maybe I'd better clean up when I have the chance.
Tonight is kernel class, and I have to finish a writeup of my project. Time to whip out my old troff macros. Ugh.
I actually found it because mbp pointed me to dria's diary entries a while back.
I must say that I'm impressed with the response I got from my initial entry. dwhite e-mailed me about medusa (which I know as asyncore.py in the Python standard build). I was already using it (and yes, it is quite helpful in desiging select()-based daemons!), but it was cool to see that I'm not just typing to dead air.
No doubt he was lured in by my Python and FreeBSD fnords.
As I write this, my major project is to reimplement the Citadel BBS software in python. I haven't gotten much past the design phase, but I do have a functioning prototype for a select()-based telnettable server. Since it uses select(), each connected session has to be cooperative and relinquish control quickly. To that end, I envision a latticework of nested dictionaries that map keystrokes to actions and printed feedback, driven by a per-session context stack.
I suppose there are better places to write this up, so I will continue to poke around and figure out what else is on here.
FOAF updates: Trust rankings are now exported, making the data available to other users and websites. An external FOAF URI has been added, allowing users to link to an additional FOAF file.
Keep up with the latest Advogato features by reading the Advogato status blog.
If you're a C programmer with some spare time, take a look at the mod_virgule project page and help us with one of the tasks on the ToDo list!