Monitoring the situation

My monitor has started to lose it in the last week or so. It started with a bright line near the bottom of the screen that I eventually realized was a wrapping of the bottom few pixels. Slowly it’s worked its way up the screen, to the point where as I began typing this message the entire bottom half was rolled up into a centimetre-wide band of white, and no amount of degaussing or power-cycling will fix it.

So now I have a problem: do I go geeky (and expensive) and go for an LCD screen, or stick with the tried-and-(mostly)-true CRT?

Winners

Congratulations to Donna, Amber and Jo-Ann of Sirens, winners of the inaugural London Music Award in the folk/world/Celtic category. Words fail.

Spring thaw

It must be spring. Concerts are sprouting all over the place.

Today was the third of three Sirens performances over the weekend, followed by a two-hour drive to Toronto to see… well, anyone who reads this regularly will know who I went to see. All four were fantastic, from Thursday’s highly-caffeinated Sirens gig to tonight’s Lennipalooza.

Tomorrow Emm Gryner comes to town with Holly McNarland, this Saturday Dayna Manning has a hometown engagement, and… well, there’s a lot more that isn’t coming to my fogged two-thirty-in-the-morning mind.

Highlights of all of the above to come in the next few days. In the meantime, hi Sarah! (And if anyone reading is in Toronto on April 12, be sure to get to One Big No at Nathan Phillips Square.)

Nicetitles for ins and del

In yet another fit of great minds think alike (yeah, I wish), I made some small updates to Stuart Langridge‘s nicetitles… and when I went to send the diffs to him, found that Brad Choate had done almost exactly the same, and added another feature too.

My patch to handle the editing elements in (X)HTML is slightly different than Brad’s in two respects.

  1. Brad’s patch only deals with <ins>. I often use ins and del in pairs, such as in this post, so it’s nice to have support for both.
  2. Brad’s patch parses a datetime format that doesn’t match the specific ISO8601 format specified in HTML 4.01 (and, by inference, XHTML 1.0). My version isn’t quite right–it doesn’t use the specified timezone, because JavaScript’s Date doesn’t–but it’s close and compact.

I also stripped a bunch of old browser-specific code that isn’t used any more after Paul McLanahan‘s remaining-title modifications, and reformatted for consistency.

Here are nicetitles in all their glory: inserted, deleted, and anchored.

Spyce up your life

Good lord, I just quoted the Spice Girls. I need to sit down for a second.


OK, better now. Still, this will just be a jumble of thoughts more than a proper entry.

I’ve been playing some more with Spycyroll, and I think I’m making headway on adapting it for my purposes. Until today I’ve just been letting it continue to accumulate posts without removing any; as a result, my aggregate page was well over 400K and growing. (The reason for this is related to the date issues I referred to earlier.) Tonight I got (slightly) brighter and realized all I had to do is to put read files in one directory and unread files in another. Through the magic of Python, that took all of about five lines of code, and my aggregate page is a much healthier 16K.

Holding on to all of those deleted files is still an issue. Because I can’t tell what items are no longer in a feed, it’s necessary to hold on to all of them. I’m thinking a database will be necessary, probably of MD5 checksums for each post, but I’m not comfortable enough with Python to start messing around with its database support yet.

I’ve also realized that although rssparser.py does nice resource retrieval (using If-Modified-Since/Last-Modified, If-None-Match/ETag, and Accept-Encoding: gzip), Spycyroll doesn’t take advantage of it. I’ll probably use the filesystem to store that information too in the interim.

A few things to consider there, and there’s more, but I’m getting antsy to try some of this out….

It works, mostly. Now that I’m taking advantage of smart retrieval, the site links in the blogroll part of the page aren’t being filled in, because they’re pulled from the channel. Two steps forward….

Think!

…whatever we write, we should say clearly what we mean to say. This is summed up by [Thomas Parrish’s] opening section [to The Grouchy Grammarian], which urges all writers to Think! — not, as the late Thomas J. Watson of IBM meant it, to exercise the little grey cells in the direction of innovation and invention, but just to stop a moment and reflect on what it is one is actually trying to communicate.

Michael Quinion, World Wide Words, 22 Mar 03

Mmm, spycy

AmphetaDesk has started crashing on me every time I try to reload its webpage. I’ve been thinking for a while about trying another RSS aggregator, and this seemed like a good time to do it.

So what better place to start than Google? I’m not sure exactly what made me look for a Python aggregator–probably reading Mark Pilgrim‘s weblog has had some more-than-subliminal effect. I’d tried Straw and Peerkat before, but both had their problems: Straw is heavily GNOME 2 dependent, and Peerkat didn’t handle newer RSS feeds. (I’ve since upgraded to GNOME 2 via RedHat 8, but Straw requires more libraries than I care to attempt to find or install.)

Oh yes, the Google search. I came across this post which pointed to Mark Pasc‘s notes, which in turn led to SpycyRoll (aka Pyblagg). It’s kind of similar to AmphetaDesk in that it’s a browser-based tool, but that’s about it. For one, it only runs periodically, instead of continuously. It’s forgiving of RSS errors (mostly; more later) via Mark Pilgrim’s ultra-liberal RSS parser. It caches its output page rather than regenerating the content at each reload. And, also via Mark’s parser, it seems to Do The Right Thing when it retrieves feeds by respecting and using ETags, If-None-Match, If-Modified-Since and User-Agent headers and gzip encoding, which is better than AmphetaDesk’s hand-rolled (but fairly effective) way.

Which isn’t to say it’s perfect. While the parser is tolerant of errors, the code to handle the values retrieved isn’t particularly forgiving. Of the thirty-some feeds I read, three couldn’t be read and so were ignored; I’ve worked around the two underlying problems with the little bit of Python I’ve learned in the last month (mostly from Mark Pilgrim again, this time via Dive Into Python). The other big problem I’ve found is that for feeds that don’t provide per-item dc:date values–i.e. most of the ones I read–it will continually recreate its caches of those items, throwing off the display and ordering of the items. I’ve worked around this too, but at the expense (I think) of breaking If-Modified-Since retrieval for those feeds.

I can live with SpycyRoll; after a couple of days, it already feels better to me than AmphetaDesk, for mostly intangible reasons. Neither one is what I ultimately want, but currently SpycyRoll is the more usable of the two for me, even ignoring AmphetaDesk’s crashes. (I haven’t been able to track down why AmphetaDesk is crashing, it just is; the shell reports a Broken pipe. I’m hesitant to report it to Morbus Iff without any further information or investigation, but let’s see just how good his ability to appear out of nowhere really is. <grin>)

There are still features I haven’t come across yet that I’d like to see in a browser-based aggregator. I want to be able to remove some items without reading them while making others sticky. I want headline, compact and expanded views, and mixed-feed and single-channel modes. (The kitchen sink would be nice, too.) To my way of thinking, these would be best accomplished using a combination of server-style commands (à la AmphetaDesk’s Add New Channel and My Settings pages) and DOM manipulation on top of the functionality of SpycyRoll. As Morbus Iff suggests (in another context), these are things better handled by limited-purpose shell utilities instead of a monolithic single application. I’m going to try to add some of these things to SpycyRoll in the next few days… wish me and my not-so-mad Python skillz luck….

Close enough for jazz

Some people drink to forget. I go to concerts.

Tonight I chose to slake memories with Jazz Violin Summit 2 at the London Public Library’s Wolf Performance Hall. The two in question were Sig Martin and Peter Robertson, joined by guitarist Larry Smith, bass player Peter Hysen, drummer Sandy MacKay, and Dean Harrison on piano and accordion. The group was excellent; my only complaint is that they’d only really started to cook by the end of the night, capping the evening with Dinah.

(Don’t look at me like that. I’m allowed to use cook that way. Anyone who knows me knows I am nothing if not a hep cat.)

It’s ironic that Dinah should have been the last tune, given the reason I went, but I’m not going to dwell on that right now. I’ve still got a couple of hours left on my musical high, and I intend to make full use of them.

Murder most fair

What follows is not for the squeamish.

James Patrick Kelly, Murder Your Darlings

Kym turned me on to this article a couple of weeks ago, and I’m beginning to understand what it’s all about. The item that resonates most at the moment is toss out that extra twist and the plot might come clear, something that I’ve applied (to good effect, I think) while updating the excerpts I posted earlier.

There was a line in tonight’s episode of Angel that’s à propos to my story. Paraphrasing a bit, it’s that a sign of insanity is repeating the same events over and over.

Feedback loop

Ah, glorious feedback. I’m tempted to take down the excerpts entirely until I can rewrite them, but I decided when I started this weblog that I wouldn’t delete anything. So the torture will continue (yours and mine).

Synchronicity. Weird… I posted just before Donna sent her comment. Thanks kindly.