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.

Last excerpt

The glowing, pulsing blob of… well, none of the scientists had been able to figure it out, how was he supposed to make sense of it?… whatever-it-was, was speaking to him somehow. He blocked his ears, not wanting to hear its words, wanting to hear anything but its words, but they were already inside his mind. He suddenly knew exactly why whoever-they-were had sent whatever-it-was to earth, and that there wasn’t a damned thing he or anyone else could do about it.

Third excerpt

Heffalumps, said the bear to his young porcine friend. I believe heffalumps may have taken my honey. I have never known heffalumps to particularly like honey, but the rabbit told me just yesterday that heffalumps are mysterious and strange creatures that often behave just as you’d expect them not to.

Why do you like honey so much anyway, Bear? asked the pig.

Bears like honey. I’m a bear, so I like honey.

Then why do bears like honey?

Because it’s sweet, I suppose. Don’t you like sweet things?

This isn’t about me, Bear. Give me a straight answer for once, will you?

What do you want to know?

Why do you like honey so much?

Hum… hum. Hum! I don’t know.

You can’t not know, silly bear. What is it that you like about honey?

Hum. It’s sweet.

You already said that, and it’s not an answer. Let’s try this a different way: is there anything you don’t like about honey?

It’s sticky. It gets all over my paws, and I can never get all of it out of the honey jars, and there are bees sometimes.

Now we’re getting somewhere. Honestly, I swear sometimes you’re more stubborn than the donkey.

What do you mean?

Oh, never mind, said the pig.

Do you think the heffalumps will give my honey back? asked the bear.

Second excerpt

It was a perfect plan. The vault would be open and not a single guard in sight, as was so common in the small towns that had sprung up, fully formed, seemingly overnight, from the midwestern plains. It wasn’t about the money; he had been born into a wealthy family, and with skill belying his twenty-eight years had massaged his personal fortune to almost eight times his inheritance. No, it wasn’t about the money at all: it was the thrill of the experience.

As he’d expected, there was a crowd at the courthouse. He didn’t much care about the sentence–anything less than death by hanging would incite the townspeople to lynch the bastard anyway. The time was coming fast for both of them.

He stepped into the dirt street and sauntered, casually, casually, toward the clapboard facade of the bank, as the door to the courthouse opened. The murmur of the mob faded to nothing as the judge stepped behind the makeshift podium, then rose again as the sheriff and his deputies led the convicted man from the building. His eyes were already dead as he surveyed the crowd, finally resting his gaze on the lone man making his way toward the bank next door. No one paid either of them any mind as the judge cleared his throat and began, I sentence this man….

From the far side of the crowd a man’s voice screamed. You murdered my wife and daughters, you sonuvabitch! My darlings! My…. The hollow report of the shotgun blast severed the rest of the words. He watched the chained man stagger and fall to the ground, then glanced down at the grotesque liquid warmth that stained his own chest as he tumbled forward.

First excerpt

The door hit him in the forehead, hard. Shaken, he leaned forward, his right arm extended against the frame for support.

The creak of the rusty hinge was scant warning: again, the heavy wooden slab found its target. He dropped to one knee momentarily, then half-stood, wavering from side to side on his newly unsure footing.

He stayed on his knees the next time it came, slamming into the crown of his bowed head. And the next time.

And the next. And the next.

And the next.

The self-inflicted pain was bewildering in its intensity. It was constant. It was good.

Second thoughts

I’ve been trying to write something the last few days that’s somewhat out of character. It kind of defies description: it’s fiction, but is semi-autobiographical; it’s a short story, but is primarily a set of barely-germinated stories; and it’s allegorical but true to history.

In its current form, the piece will never see the light of phosphor. The semi-autobiographical parts are still way too close to the mark for my liking, and unfortunately they’re what unifies the rest of the jumble.

It’s my first attempt at creating anything of this sort in ages, and it’s the first thing I’ve ever really been inspired to write. It might even be good, although I don’t hold out much hope–there’s little in it that would be of interest to anyone not living inside my brain. (My friend Kym points out that I put myself down a lot, and she’s right as usual. She kindly fails to notice that it’s with good reason.)

Certain sections will appear here shortly anyway. They will appear unrelated, and that’s because they are; they’ll be ripped verbatim with no framing structure at all, save for a relation to the latter part of this quote.