Older blog entries for crackmonkey (starting at number 6)

Wordplay

I spent last night and this morning playing scrabble with my grilf. It's so hideously hot down where she lives that I'm cowering in her apartment with the air conditioning on full blast. She isn't nearly as sensitive to the heat as I am, though.

I was quite astonished to find that the official scrabble dictionary lists gar (one of my favorite interjections and metasyntactic variables) as "to compel". I didn't even know it was a verb! The only meanings I knew were as an expletive ("by gar!"), a fish (much like a swordfish), and an acronym (Grand Army of the Republic). Still, it's one to add to the list.

I personally use it to refer to bile or anger ("Watch out -- Crackmonkey's full of gar today!") or as an interjection ("bus error? GARGARGAR!").

Chaos

I took Caltrain down last night, and the new stadium had created quite a crowd. The new 4th and Townsend train station (a bauhaus nightmare of colored girders and cheap plexiglass) that was built specifically to handle game traffic seemed to lose several marks for macro-ergonomics. The process of getting on a train was made nigh impossible.

The rushing crowds, long lines, and incessant helicopter droning made me feel like I was in some Soviet sausage retailer or something.

MonkeyCit

I had some time on the train last night to take more notes on the design of the Citadel. I've had to reduce the number of helper objects in the system, on account of the fact that the user interface code needs to be able to flush the output queue if a user hits s to stop the flow of text. As soon as I get back to a machine with X on it, I'll play around with layout and design a proper Web site for the thing.

Also, if you have time, check out Brent Bottles's citadel archive if you're interested in that sort of thing.

Pythagoras

It's true, I once accused schoen of being a Pythagorean. In addition to not eating beans, however, the pythagoreans also refused to look in a mirror that had a lamp in front of it. I'm not sure what the reason for that rule was, but I'm certain I've seen him violate it before.

From the attic:

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.

In response to schoen's Pirke Avot quotation, I give you Tom Lehrer:

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

I'm actually slacking in class. Kirk is going over "A Day in the Life of a UDP Packet" starting with bind and moving on down through to the fxp ethernet driver.

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.

Guh. I have been sneezing like a spastic cat lately. I'm not sure if it's allergies to my friends' houses, a cold, or a reaction to the fungus that is growing on the vase of dead roses that has been in my room since Valentine's day.

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'm still getting the hang of this place, but I think I like it.

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.

Well, my projects are all either lost due to hard drive crashes, or still in the larval stage. The only project I'm really actively working on right now is an implementation of congestion control exploitation in the FreeBSD 4.0 kernel (for Kirk McKusick's intensive kernel code walkthrough class).

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.

New Advogato Features

New HTML Parser: The long-awaited libxml2 based HTML parser code is live. It needs further work but already handles most markup better than the original parser.

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!