Crashed my bicycle

Posted by David on Jan 11th, 2007

In The Art of Urban Cycling, Robert Hurst compiles and analyzes a handful of unfortunately spotty bicycle injury statistics to estimate that, on average, the frequent rider will have one wreck a year, with one in four of those being a major wreck. I can’t recall how he defines “major,” and my copy of the book is currently out on loan, but I think I may have just had one. This is the first crash I’ve had that both required medical attention and rendered my bicycle unridable, so I figure that’s at least a little major. As several people have reminded me, I could have died. I’m ok, though, so don’t worry, mom. I didn’t lose consciousness or even end up with a concussion, and the most major injury was a nasty gash over my left eyebrow.

So here’s how it happened. Last night I decided to take a somewhat different route home. I usually take MARTA to Medical Center, which puts me just inside the perimeter, and I ride Glenridge to Roswell Road and ride from there downhill to my apartment. Sometimes, though, I’ll start from farther north. The road to my apartment is at a local minimum, so if I get off at Sandy Springs and ride Mount Vernon to Roswell Road, I end up doing about the same amount of work. The Sandy Springs route gives me the opportunity to stop at the shops along Abernathy or at the Trader Joe’s on Mount Vernon. Last night I stopped at Circuit City to pick up a game pad with the idea of using it to play Zelda on an emulated NES. Once I actually get to Mount Vernon and Roswell Road, though, I have basically two choices: I can go straight across Roswell Road and weave my way through a lightly trafficked, mostly downhill route that has some uphill portions as well as one narrow two-lane stretch where cars can’t pass me, or I can take a left and make a mad dash down Roswell Road, a heavily trafficked four (plus suicide lane) road. I’ve taken each route dozens of times, and I usually base my decision on my load. If I have a lot of groceries from TJ’s, I’ll cross the road and take Sandy Springs Circle, but last night I didn’t have much besides my stupid-heavy lock and the game pad, so I decided to take a left from Mount Vernon (or Johnson Ferry or whatever that road is called through that horrible triangle). Roswell Road is more fun, since I can keep up with the speeding traffic going downhill, which is a hell of rush.

One aspect of Roswell Road that I usually don’t consider until I’m already on it is the drain grates. The grates are perpendicular to the road (thanks, Fulton County), but a handful of them are sunken pretty far into the road (maybe you should fix that, Sandy Springs). Last night, while I was booking it like a librarian down the hill, I didn’t get out of the way of one of these grates fast enough and caught the lip at a pretty gnarly speed. I broke my fancy carbon fiber fork, and I did an endo into the road. I was wearing a helmet, but I don’t know how much of the crash it caught. I had the visor on, so it hit first and snapped off, and I think that pushed my helmet up a little bit. I ended up with a laceration over my right eyebrow, just under the helmet, along with some scrapes on my elbows, a bit of road rash on my right knee, and a chunk of skin missing from the back of my right hand. I have some pictures of my bike and of myself if you want to gross yourself out. The car directly behind me stopped and asked if I needed help while I was dragging the wreckage from the road, but I waved them off since I didn’t break any bones and I figured I could just stagger home if I needed to. Some guy rushed out of the Starbucks to help, and another guy on the road in an SUV stopped and wasn’t so easy to wave off. SUV guy, Harry Wood, is a cyclist himself, and he offered to put my broken bike in the back of his vehicle and drive me to the hospital to get my head stitched up. I think I managed to avoid bleeding on his fancy leather interior, but I figure I should get him a car detailing gift card just in case.

Northside hospital, after making me wait for a couple hours, as is their wont, stitched me up, wrapped my head like a lobotomy patient and sent me home with a prescription for some kind of antibiotic. I turned down the offer for painkillers since that Lortab stuff doesn’t do anything for me, I wasn’t in a whole lot of pain, and I figure that a few days worth of aches will do more to help knock some of the stupid out of me. I got a ride home from Sean, and I’ve been fine since other than the aches from the bruises I discovered this morning. Harry, who runs the local Van Michael Salon and is a really nice dude, hung on to my bike for the night and gave me a coupon for a free haircut—an appointment for which I have for Tuesday—when I picked it up. Though I’ve never cared about my hair enough to be better than a little wary of hair salons, Van Michael was packed full of hotties when I went, so I might end up making a habit of the place.

In all, I made it out mostly intact, and I’ll have a funky scar good for some stories, but this was a very expensive wreck. The fork, since I doubt that I can lie my way into cashing in on Schwinn’s lifetime warranty, is going to cost me two or three hundred to replace; the front wheel, though surprisingly round (the guy who trued it last must have been some kind of damn magician), may need replacement if the little dent I picked up won’t come out; my jacket is torn up; my right glove has holes in both sides (I guess it’s a good thing I have another three pairs); I’ll need a new helmet (I’d been wanting to get a bigger one anyway, so I guess that works in my favor), and, perhaps most annoyingly, my new glasses and the attached Third-Eye mirror were run over before I could fetch them from the road. I’m glad I didn’t break any bones or die, and I hope to be back on the bike in another week or two. I have a feeling I won’t be riding that section of Roswell Road quite so frequently, or at least not at night.

Final gopher entry

Posted by David on Feb 27th, 2006

Well, I went and blogged myself up a blog. You can see it http://gophernet.org/blog/. Let’s see how this things work out this time.

Thoughts of abandoning gopher begin

Posted by David on Feb 23rd, 2006

I’ve been publishing my crap on the Internet for a while now. The earliest gopher entry was on May 21st, 2004, a furious screed attacking the institutions and habits of the web, and what was at the time called by some the angriest six paragraphs they’d ever seen me write. Before that, I posted my thoughts to the front page of http://gophernet.org/, sorting things into an unnavigable sequence of days and archiving by quarter approximately whenever I felt like it. Sometimes I didn’t feel like it for six months at a time, so size of the front page was inconsistent. The earliest such writing I can find is from December 28th, 2000, a few months after I registered gophernet.org and settled in to life in the Smith building dorm. Before that, I had been using a dyndns domain for a few years, and I almost certainly had a “News” section on whatever page I used to fill that void. I honestly can’t remember what I did with that site, and the files themselves are certainly long lost. I think they lived on one of those huge (volume and mass, not capacity) hard drives I got off of one of those Egghead auctions [1]. Before that, I have vague memories of FTP clients and Geocities pages. I certainly hope that anything I did before 1997 has since been destroyed, but who knows; I might still have an active account or two out there somewhere. The thought of anything uploaded from an AOL account returning to haunt me doesn’t keep me up at night, but that doesn’t mean I wouldn’t deny my involvement if it were to happen.

Anyhow, my point in all this is what my point has always been with blogs: there is no new thing under the sun. I moved to gopher as a sort of escape, staking my claim in the forgotten backwaters of the Internet as a retreat and a solace from the ridiculous claims and breathless exaggerations of Web innovation. I still stand by the points in my May 21st manifesto—the Web is not the Internet, a turn-based protocol is not suitable for real-time applications, and Tim Berners-Lee is an asshole—, but I’ve thought about moving to what has become a more traditional form of a blog. I don’t want to become the next Cory Doctorwho or anything like that, and I pray that I’m never compared to him, but it might be time to face the realities of this place: I have readers, and a protocol that was dead by 1995 is not convenient for readers. In spite of itself, HTTP has managed to extend in some useful ways: recent years have seen a greater interest in foreign-people languages, which I take advantage of to type words like “coördinate” or “?????” (hint: this file is in utf-8. gopher doesn’t really have a means of conveying that information.) so I can be more pretentious; HTTP over SSL and various newer authentication methods make private content, though not necessarily easy, at least feasible, and MIME information can express file types in a way far more extensible than gopher’s single character in the URL. This doesn’t mean that I don’t still think that whatever google’s up to today is dumb, but it does mean that I think properly used HTTP transfers are pretty alright.

My plan so far is to install and use Nanoblogger, a blog engine that I discovered through clumens’s use of it and which I like for the fact that the interface is a shell script, and it doesn’t look like ass by default. There’s a bundle of of PHP scripts out there to add comment support [2]—a feature that’s been requested a couple of times—and, though the author writing nbcom “with famous KISS rule in mind” (rock and roll all night, party every day) seems like a handy idea, I’d like to make a couple of changes. I don’t feel like installing mysql, so I’d like either to replace the half-dozen or so calls to “mysql_hejaz” with “pg_hejaz” (easy) or figure out how those PEAR database abstraction classes are supposed to work (maybe not so easy). I’d also like to replace the authentication code with Typekey’s so that I can make user accounts someone else’s problem.

So, what do you, the reader, think? Consider this article a request for comments. I haven’t firmly decided on anything yet, but I figure that since I’ve been using gopher for over a year and a half, maybe it’s time for another format change.

References:
[1] http://gophernet.org/images/sd.jpg
[2] http://nhw.pl/blg/articles/nbcom/

j00 b33n 0wn3d, d00d

Posted by David on Feb 21st, 2006

Hey, mom? I disabled your account. It got hacked. I hope you don’t mind.

I’m really more intrigued than shaken by this. I happened to find out when I noticed that my networks were lagging a bit, so I thought I’d check if there was a lot of web traffic. Instead I found that “crond” was connecting to some IRC servers. As clever as the use of “crond” for the IRC bot was, the rootkit I found wasn’t really all that creative. I doubt that anything more than my mom’s account was hacked (I think the password was “mom,” though I don’t know how they found this username. Maybe mom accounts are common in Romania?). The rootkit was installed in a globally writable area, and the script that was used to compile the source (wasn’t just an i386 executable! Maybe you shouldn’t have left the source around, though, chief), though not autoconf, was uncreatively name “configure.” Interestingly, it’s GPL. Here’s the whole header comment:

# !/bin/sh
#
#   EnergyMech, IRC Bot software
#   Copyright (c) 1997-2001 proton, 2002-2003 emech-dev
#
#   This program is free software; you can redistribute it and/or modify
#   it under the terms of the GNU General Public License as published by
#   the Free Software Foundation; either version 2 of the License, or
#   (at your option) any later version.
#
#   This program is distributed in the hope that it will be useful,
#   but WITHOUT ANY WARRANTY; without even the implied warranty of
#   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
#   GNU General Public License for more details.
#
#   You should have received a copy of the GNU General Public License
#   along with this program; if not, write to the Free Software
#   Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
#

I just feel so giddy about this whole thing. I’ve never had a rootkit installed on me before.

Rarity and novelty

Posted by David on Feb 18th, 2006

I do some weird stuff sometimes. As some of you may be aware, I have an odd habit of seeking out the castoff books of yesteryear, a sort of odd neo-antiquarianism. I suppose it all started with that book of suicide notes, …Or Not to Be, compiled my Mark Etkind. For whatever reason, I found the idea of the suicide note as literature fascinating, and I paid like eight bucks for the book on half.com. It seems to still be quite firmly out of print, and the lowest used price on amazon.com is $42, so I suppose I did alright if I treated this as an investment. The point for me isn’t the return, though; it’s the preservation of something that society would rather forget. My most prized book thus far is still the Dune Encyclopedia. It was a collection of essays on the Dune universe written from the point of view of historians about 5000 years after Leto II’s death. Though Frank Herbert reserved the right to contradict the history that it presented, he found it ultimately a source of amusement and enlightenment, and he authorized the printing. He died soon after the 1984 printing, though, and, since his son Brian Herbert is intent on milking the potential Dune history through a new series of novels, it won’t be printed again during the lifetime of the Dune copyright. I think this is highly unfortunate and a great loss of insight into a fascinating world.

Today my collection has moved into the political realm with the arrival Lynne Cheney’s Sisters. It’s a historical fiction about the subjugation of women in the frontier American West and the lesbian relationships that provided their escape. I can’t yet speak about it’s quality, but the attraction it held for me was the fact that it will never be printed again not due to market forces, but rather because it’s become undesirable to the author. Maybe it’s because the wife of a Republican vice president doesn’t want to be associated with homosexual romance, or maybe it’s because it raises questions about the influences on her daughter’s choices in life, but whatever the cause, it’s a suppressed piece of recent literature, and that’s what, to me, makes it interesting. It’s also probably the most I’ve ever paid for a single book—I can’t remember how much that doorstop of a theory textbook cost, which might be the winner,—and it’s certainly the most I’ve ever forked over for a trade paperback. This book better be good.

In other news, I think I’ve figured what it is that bugs me about driving on SR 400. Suburb people are dumb. For some background, I first brought a car to Atlanta while at Tech, so I cut my Atlanta driving teeth on the downtown connector and surrounding ground roads. I learned pretty quickly which times were bad to drive, traffic-wise, but even with heavy traffic, certain behaviors make the trip more pleasant for everyone. I noticed this especially on the last time I drove to the airport during rush hour: rather than rushing up to the bumper of the person in front of them, everyone tried to maintain a steady speed, and traffic moved along at a constant 25mph or so. It would have made an industrial engineer weep for joy. Now, I’m not saying that city people are free from their own stupidities—I think that about half the times I’ve been on the controlled-access portion of SB SR 13, I’ve seen someone try to exit onto I-85 from the left lane—but in general people just expect there to be traffic at certain times, and they can deal with it gracefully. 400, on the other hand, chokes in traffic, whatever the anomaly. Today I saw on one of the DOT signs the following message: “ACCIDENT ON SR 400 SOUTH, 2 MILES INSIDE 285. 4 LEFT LANES BLOCKED.” Now, there are actually only three lanes at that point, so I read that to mean that whatever disaster occurred was also blocking the ramp for the poor suckers trying to get on at Glenridge. My reaction, of course, was to get the hell off 400, and I halfway expected to end up in a wreck, or at least a near miss, in a panicked rush for everyone to get off at Abernathy. I was the only one to get off. While making a nice, untrafficed right turn towards the other southbound roads of Sandy Springs, I could clearly see a growing jam of unmoving cars starting just beyond the on-ramp. What the hell, people?

GPLv3 sucks

Posted by David on Feb 15th, 2006

GPLv3 is dumb.

I never liked the Free Software Foundation much to begin with. I have no beef with Stallman or the other GNU project members as programmers—gcc sure is nice, and a system without GNU fileutils is a frustrating one indeed—but as lawyers and activists the organization is just plain annoying. For whatever reason their latest version of the GNU General Public License has made it onto my radar, so I thought I’d take a closer look at the thing. It stinks. The second version of this license wasn’t too terrible; it contained some statements on the intent of the license, a list of freedoms and restrictions that contained enough big words to seem legally sound and a section explaining how to use the license. It was about as straightforward as such things can be and short enough that it could be read on the john. This third version seems to have been transformed into a breathless screed against the perceived injustices of society and the legal system. I guess it’s about the same length as its previous incarnation, but this version of the license contains a lot of language that is either meaningless fluff or just strikes me as very unprofessional.

The most noticed section, of course, is that on Digital Restrictions [sic] Management. Though I think that the free dissemination of creative works is important to the health of a society, I often find myself closer to the Jack Valenti end of this spectrum than to Cory Doctorow. I suppose that by the GNU definitions, I’m a “copyright apologist.” I think that people should be compensated for their creative efforts and have a means of limiting how their works are used and modified. DRM is annoying and unfortunate in that it restricts legitimate usages of a copyrighted work, but, on the other hand, people are assholes. In the context of the GPL, I consider Section 3 harmful in that it places a specific ban on what software may be licensed under the GPL and how licensed software may be used, an action that seems to run counter of the FSF philosophy that free software entails “The freedom to study how the program works, and adapt it to your needs [sic].” Section 3 of GPLv3 is interesting when compared to other GNU legal documents in that, though this is in the meat of the license, it contains only one sentence expounding upon the limitations and freedoms provided by the license, and half of it is just instruction not to violate criminal law. The rest is an exposition of philosophy and a plea to interpret the remainder of the document not necessarily as it is written, but instead through the lens of specific opinion. Here is that one relevant sentence in its entirety: “Regardless of any other provision of this License, no permission is given to distribute covered works that illegally invade users’ privacy, nor for modes of distribution that deny users that run covered works the full exercise of the legal rights granted by this License.” I certainly hope that obstacles to this full exercise can still be built through the means of unusable interfaces, since otherwise transcode might be in trouble.

There’s a part in section 1, the description of what constitutes source code, that tries to further limit the abilities of potential digital restricters by requiring any encryption keys and passwords needed to “install and/or execute the source code of the work…in the recommended or principal context of use.” This is most notable for convincing Linus Torvalds that this could require him to give up his signing PGP key. I can’t recall how integrated signatures are to the Linux source code, but it’s possible that the rest of the paragraph, despite the FSF’s claims to the contrary, could be demanding just that.

There was another part of section 1 that I found interesting. As some of you may be aware, dcantrell had a run-in with Richard M. Stallman a while back concerning the enforcement of the GPL for gcc on IRIX. I won’t try to tell his story for him, but the synopsis was that David argued that, since gcc didn’t build on IRIX as distributed, SGI was required to distribute their modified Makefiles per the demand for “the scripts used to control compilation and installation of the executable.” Stallman’s response was that he didn’t mean Makefiles, or maybe just that he didn’t want to go after SGI. I can’t remember; maybe it was both. Anyhow, GPLv3 includes the following exception for such scripts: “Code need not include a particular subunit if…the subunit serves only to enable use of the work with [a major essential component of the operating system on which the executable runs].” Hmm!

In other news, Sandy Springs has a new radio station, AM 1620. I’ve been listening for a little bit, and the music they played over the weekend sounded like about the same sort of thing I’d do if I had a radio station: just a bunch of random crap. At one point I remember it fading from some blues song to some techno song that sounded like it came off a car commercial. It was like listening to WREK except in mono and, since this station is actually an unlicensed network of 100mW transmitters, with horrible clarity. I just recently learned that it’s unlicensed while trying to find out why I’d never heard their call letters, and this truth isn’t very far from my assumption that it was some guy broadcasting from a van in the North Springs MARTA parking lot. Despite their claim of covering all of Sandy Springs, I’m unable to pick the station up on my drive home—90% of which is through the city of Sandy Springs—until I’m well south of Northridge, and I lose it again once I get to Glenridge. According to the amazingly hard to read schedule on their web site, I’m missing out on the Sandy Springs Health Hour in the morning and some undetermined scheduling abyss in the evening. I think that’s when they let winamp be the DJ.

In more other news, the Movie Trading Company has closed its Georgia locations. This is a sad day, indeed, as I no longer know where to take my bad movies to die. Used music stores often take DVDs, but I don’t think it’s a practice that they encourage, and they certainly carry far less potential for finding crappy movies on the cheap. I visited the dying husk of the store on Roswell Rd this weekend in search of half-off bounty, but I quickly found that every item still in the store was there for a good reason. This didn’t stop me, of course, and I ended up walking out with The Sixth Day, Last Action Hero, one of those Tears for Fears albums that the one guy made after the other guy left, and a copy of Queen’s Flash Gordon soundtrack that I found in a bin on the way out. It was cheap, sure, but now my options are more limited for places where I can sell it all back.

Shavin’

Posted by David on Feb 12th, 2006

I remember an article in The Onion a couple years back, after the Schick Quattro came out. The razor itself was a pretty obvious attempt to do one better than the Gillette Mach 3, and the Onion article was written from the viewpoint of an angry Gillette CEO eager now to make a five-bladed razor. “…stick two more blades in there. I don’t care how. Make the blades so thin they’re invisible. Put some on the handle. I don’t care if they have to cram the fifth blade in perpendicular to the other four, just do it!”

Since that article was written, Gillette’s biggest innovation in terms of telling Schick to eat it was to make their razors vibrate, which I still think is a very bad idea. I have enough trouble minimizing my blood loss in the morning without having to worry about a moving target. Does it vibrate from side to side? I still don’t get that thing. Anyhow, you’re probably aware that Gillette did recently fire the definitive next volley in this ridiculous game: a razor with five blades, plus a bonus blade going in the other direction. Maybe it’s time to just get a straight razor. Sure, I’ll slice my face off if I’m not careful, but it still seems a bit less ominous than the way of the future, the six whirring blades of doom.

I don’t like the gate for gated communities

Posted by David on Jan 27th, 2006

I don’t really like the gate in front of the apartment complex. Besides the fact that it’s always broken—I had planned at one point to keep a record of whether and when it’s functional, but I was overly ambitious and tried taking pictures to back up the status, a task that proved difficult while driving to work in a morning haze—it provides no more than a false sense of security. I don’t happen to have any statistics to compare crime rates in gated vs. ungated communities, but if you really want to get inside, it’s not very hard.

I got to witness a bit of an incident at the gate today. The gate is a Doorking system with an in gate, an out gate and a call box that can be driven around so residents can still get in if someone is spending half an hour trying to use the box. When someone is using the box for its intended purpose, this tends to create a situation where the gate is opened from the box and resident pulls around anyways to open it with the remote. Today while coming home I saw someone open the gate with the box, only to be cut off by a Jeep with a North Carolina plate. To compound the situation, the Jeep made a point of stopping in the middle of the gate until the arm started to go down before continuing. The other car managed to get in unscathed, and, as luck would have it, they both live in the same set of buildings that I do. When everyone had parked, the yelling started.

I can certainly understand the man’s anger, since the Jeep was being a major-league asshole, but the argument still struck me as amusing. First (exaggerations mine), he held forth his gift from on high, the secret resident access code (maybe they ran out of remotes) giving him Holy Writ to enter the complex. He then followed with threats to report the Jeep’s tag to the apartment office, which had a tone combining the futility of both “I’m telling mom” and “this is going on your permanent record.” The Jeep driver countered with his own threats to do the same, there was a shouted exchange of names, and everyone went inside. I do pity the people working in the apartment office who have to face pointless issues like this one, but I really wish that they’d get rid of the gate.

Foreign Films and me

Posted by David on Jan 18th, 2006

The PAL converting DVD player that I bought and which may or may not be in violation of 17 USC 1201 arrived last weekend. I used it watch Fistful of Dynamite in the way that the director intended: restored to include scenes with quotes from Mao and some guy pissing on some ants, titled as Duck You Sucker, and dubbed into English. Some of the scenes with faster or more continuous movement had a spot where the film seemed to jerk, which I guess is because of the conversion. Assuming that the conversion chip uses the same framerate conversion method I had planned to use in http://wiki.burdell.org/wiki/PAL_to_NTSC, the thing’s going to have to clone a frame eventually. It’s not bad enough to be irksome, so I win, Europe. Maybe now I should try finding out what other exclusive works they offer so I can justify having bought a new DVD player for the sake of one movie.

As for the movie itself, it was a lot different than what I expected. Sergio Leone, through the symbolism of Once Upon a Time in the West, had declared this movie frontier dead by the time he made Fistful of Dynamite, and, though it was still another movie set in the West (well, western Mexico), it had a much different tone. Conflicts were set on a societal level instead of a personal one, and it had a sometimes more comic feel to it than the Clint Eastwood movies, when the humor wasn’t overshadowed by class warfare and revolution. Wikipedia says that it was also a criticism of the “Zapata Western” of the early seventies, which I can see, and of Jean-Luc Goddard, which I think someone just made up. Regardless, the fact that someone can relate such a baseless statement to this movie is good enough for me (blah blah, je suis disaffected).

In other news, some dudes in England tried to mail a hamster. The thing I find interesting about this article is not so much the story itself, but its digression into competing mail services for England. How many competing services can England support? Looking at a map, I’d estimate that the island is about 600 miles or so from tip to toe. The CIA World Factbook describes it as “slightly smaller than Oregon”, which is a state. I don’t know what sorts of shortcomings people face with the Royal (hehe! monarchy) Mail, but I’m pretty sure that if your package is that important, you could just take a weekend and drive it over.

Exploration of firefox extensions

Posted by David on Jan 8th, 2006

Some of you probably remember the fun (“fun”) that I had a while back with the differences between PAL and NTSC. To summarize, I bought a copy of the movie Fistful of Dynamite, which, due to some merging and selling of MGM assets before a promised release date, is not available in the US. The Internet suggests that there might be a Japanese DVD, but amazon.co.jp (a site that frightens me to my core) does not have it, so I bought a copy from the Great Britain. The end result of this trans-Atlantic commerce was me being in possession of a Region 2 PAL DVD which, even if I were to get around the small obstacle of region encoding conflicts, I am unable to play on my NTSC television. I may have mentioned to some of you that the bizarre Shinsonic DVD player I have seemed to be converting the signal, but this was me being stupid: I picked Once Upon a Time in the West off of the shelf, instead, and and I didn’t pay enough attention to the 12 seconds I viewed to realize that it was the wrong Western. I’ve now taken the path of least resistance and purchased a region-free PAL to NTSC converting DVD player from some shady shop in Illinois that also sells 50Hz AC ovens. I honestly have no idea why anyone in the US would need a large European appliance, nor do I know what sort of person would try to ship one. I do wonder if they offer an option of filling it with Quikrete before handing it to the freightline. Regardless, I’ll let you know how the player works once it gets here.

In other news, I’ve now entered the dark world of the Firefox extension developer; a stain will forever be borne by my soul. If you’re like me, the switch from Mozilla/Seamonkey/whatever to Phoenix/Firebird/Firefox/Deer Park/whatever was met with a lot of cursing, since most of those options from before that kept the browser from doing stupid, annoying things like making the URL bar pop up at you whenever you type something no longer had any effect. I used a hack in userChrome.css for a while, but eventually my dissatisfaction with a few other features led to me to move my chrome hacks into an extension which you can find at http://gophernet.org/projects/rmannoy/. My current goals are to make things stop freaking pop up all over the place, make the bookmarks toolbar folder go away, and make the password manager work on all sites whether my stupid bank wants it to or not. I’ve so far accomplished all of these goals except for the bookmark-related ones, so I slapped together a release before I lose interest and let the project die. The password feature isn’t in the release, either, since I just finished that and figured that two releases in two days (An incomplete attempt to take care of the bookmarks toolbar folder was interfering with other parts of the browser) is probably enough for a while. If you want this functionality, send me an email and I can send you a sooper seekrit pre-release XPI.

Extending firefox hasn’t really been the most fun ever. My process for any particular feature has been to use the DOM inspector in an attempt to find the offending pieces of the GUI, muck through the firefox source in an attempt to understand it better, and then search through xulplanet.com looking for the controls of the objects I don’t like and any other objects that may help me on my quest. The most fun parts, of course, are the ones that aren’t documented. For example, the password thing mentioned above is controlled by the use of an ‘autocomplete=”off”‘ attribute on HTML text input controls, a feature from IE that banks demanded from the Mozilla developers lest they withhold their official seal of support. Apparently this is important to people who care about market share and the other fickle winds of business. I found all of this out because jwz happened to feel as I do, that I don’t need web designers babysitting my saved passwords, and he posted about this in his blog along with a method for patching the browser binary. I found the event I needed to catch for content pane changes in the code for the greasemonkey extension. As far as I can tell, none of this is written down anywhere by the Mozilla team. According to that jwz blog entry, the means I use of getting my browser to do what I want interferes with Google Suggest, a site I had never heard of that uses autocomplete=off to keep the browser out of the way of their ridiculous hack. I do not care one single bit.

My main gripe with the whole extension development process is that I’m damn sick of writing everything in XML. The GUI definition files sort of make sense in XML, since I guess you could think of a window as a tree, but the paradigm starts to wear thin even with the GUI overlays. The idea with these things is to define a list of element in the document being overlayed along with new content to insert as children. So, at its best, it becomes, rather than a tree of GUI elements, a list of GUI trees, each rooted at an extant element from another document. This is the entire basis of the extension mechanism. Maybe I just lack sufficient XML team spirit, but this seems to me to be pushing it. At their worst, the overlays become what I used them for: an overlay document with a single element to pull in a javascript file and a single processing instruction to pull in a stylesheet. Everything interesting that can be done in an extension must be done through javascript, but the only entry point to any particular chrome file is the XUL overlay.

The stylesheet is even worse. XUL has a sister language, XBL, to add content, event handlers and dynamic properties to a XUL element, and these new XML files can only be added through a mozilla-specific style property. Worse, the XBL files are little more than a list of little javascript containers. Of the three types of grouping elements contained in a binding—content, implementation and handlers—two of them are done entirely through javascript. The XML around them does little more than name them. The content makes sense as XML, since it’s defining new XUL trees to add as the children of a XUL element, but wouldn’t it make more sense to add this ability to the overlay mechanism? Not everything needs to be XML. They would also do better to make the javascript parts more javascripty. There is a means provided for extending an XBL binding, but augmentation is accomplished through adding to the list or replacing the pieces of the original. Subclassing is an alien thing, and you will find none of that here.

Even the RDF files that tie everything together have no business being XML. I hadn’t really thought much of RDF before, but I learned through this research that the RDF XML file is nothing more than a representation for a list of three-element tuples. That’s it: subject, predicate, object. There is no structure beyond that imagined through shared subjects. Maybe I’ve become jaded about the whole thing, but when I think of the best way to represent a list, a tree isn’t the first thing that pops into my head.