A rough account of what I did with Emacs recently.
- August 31
- I still haven't beaten Gnomine on the large-size game. Even the
small game can be tricky!
- August 30
- Recovering from a few beers. Unwhee!
Happy Birthday Lou!
- August 29
- Out for a few beers. Whee!
Gnomine (Gnome version of the Windows Minesweeper game) is
actually rather hard. I played a game today where I was
twice faced with a square labelled "6" which I
don't think I've ever seen in Windows.
- August 28
- Still some minor weirdness with the feeds, but things mostly
seem to have settled down now. I may have to go back and figure
out exactly what's going on rather than waiting for
inspiration to strike.
One of the things I removed was all the encoding cruft I'd
accumulated previously; I'm not convinced that's right - I'm
seeing the sort of garbage you get when someone claims their feed
is UTF8 but it is, in fact, ISO-8859-1, or worse still, CP-1252. I
have a strong suspicion that Feedburner is a major culprit here,
[My mom tells me that a lot of what I write here is greek to her,
but she frequently enjoys my other output at
LiveJournal. In the interests of clarifying what I'm on about,
I present the following Guide For Mom:
So, that should go some way towards explaining what I'm at
- RSS - well, you know what this is.
- I don't use Thunderbird or anything like that for reading
RSS feeds: I wrote my own RSS reader, which I access via my
website using a web browser.
- There are multiple standards for writing RSS, and unusually
(although not uniquely), later standards are not merely
extensions of earlier standards. Partly this is due to a
quasi-political row over who "owns" RSS, and who
invented it, and who gets to say what happens to it
- In addition to the multiple standards, there are multiple
interpretations of those standards, some correct (in that they
fit within the rules laid down by the standards) and some
incorrect (in that they blatantly contravene the
- Some of the difficulties and variations that crop up include
uniquely identifying an RSS "story", identifying
when a "story" was published, figuring out if the
text of the "story" is just plain text, or has
things like web links and bold text (i.e. what's referred to as
markup), and, if there is markup, whether it's
usable as it stands (one of the feeds I read periodically
produces white-on-white text if you use its markup).
- My attempt at solving this is to have my reader go and grab
all the feeds I want to read, and then apply various clean-up
routines to the feeds based on what I expect to be
- Part of this process generates a unique identifier by
combining the text of each "story", the datestamp,
and any existing unique identifier; if my clean-up routines
alter any one of these, the "story" will reappear in
my reading list as a new item. This is what I'm assuming is
happening at the moment since I just cleaned out my
- The other problem mentioned here is that of how you
interpret the actual data coming over the wire into numbers,
letters, and other characters; there are a variety of
standards - for example, ISO-8859-1 contains everything you'd
need for most of Western Europe, including a pound sign,
letters with acute accents and what not, but it doesn't
include a Euro sign. For a Euro sign, you need to use
ISO-8859-15. If you take a file that was written as
ISO-8859-15 and treat it as ISO-8859-1, every € will come
out as ¤ (listed here as "general currency
sign"). Microsoft being Microsoft have their own set of
encodings; CP-1252 is their Western Europe one, which puts
things like "smartquotes" into a block of numbers
that are invalid in regular ISO-8859-1/15. UTF-8 is a best
attempt at a superset of all of these; in other words, where
ISO-8859-1 only has ¤ and ISO-8859-15 only has €,
UTF-8 can accomodate both. This is all well and good if you
know in advance what encoding you're dealing with, and there
are ways for a webserver to tell you this. Unfortunately, some
of the feeds I read say they're in UTF-8 but turn out
to be in one of the Western European variants.
- August 27
- Hmm, so much for fixed RSS - it all went slightly insane this
morning. Not sure if it's a result of my hacking or just down to
the fact that I ran a janitorial script which may have been a
little overexuberant about what it was cleaning up, but there's
definitely some sort of problem with datestamping things. There's
a problem with this in general: I'd like to keep track of, say, an
evolving news story by having it pop up if the original article
changes, which means ignoring the posting date as that may not
have been updated at the same time; on the other hand, this also
means that trivially changing content (e.g. feeds with embedded
advertising) may get treated as updated. Plus, when I do a cleanup
like the one I did yesterday, everything appears as if it was
posted as soon as the RSS toy notices it, rather than being
backdated to whatever point in the past it was actually
None of this would be a problem if there was such a thing as a
proper RSS feed, of course.
Esat BT once again delight me with their comprehensive customer
tracking systems, sending a mailshot to my parents' address which
I last used for any Internet-related activities in about 1999 or
2000. I've emailed their customer abuse department, but I have no
doubt this will go the way of previous attempts to undo whatever
mess my accounting information is in, and will be duly ignored. Or
perhaps further screwed up.
- August 26
- Doing a script cleanup - checking stuff into CVS and that, to
try and keep track of what I've broken lately. Various things may
appear updated in the workshop. Curiously, a bunch
of my scripts seem to have incorrect permissions. No idea what
I did some more work on my local buildfarm (wherein I pack CPAN
modules into RPMs, along with building RPMs from various other
sources) so that in theory I can now just dump files into a SRPMS
directory and have it rebuild them automatically. It'd be nice if
SRPM provided for a build-hints tag, where you could specify if a
package is intended for a particular target, or needs to be passed
a particular set of defines; last time I read the RPM manual, I
could tell it what architectures not to build on, which
isn't quite the same thing.
Hmm. I think my Palm
may be seriously ill. Lately it's been increasingly harder to turn
it on; just now I decided to reset it because it was reacting to
the hard keys as if I was pressing each one twice. The Palm
reacted to this by getting as far as the "Palm Powered"
splash screen, and staying there. I suspect a jammed/shorting
Aha, and sure enough, the contrast key was jammed. Now unjammed,
and Mr. Vx is behaving once more.
- August 25
- Found one of the bugs in the RSS toy that I've been trying to
track down, and it looks maybe like it's a bug in
XML::RSS - if you build a feed, then use
as_string to turn it into a string, then try to reparse
it, it's, er, not guaranteed to work. This kinda flies smack in
the face of "be generous in what you accept and strict in
what you produce", but doesn't exactly surprise me. For now,
it means my Atom-converted-to-RSS-1.0 feeds are back in working
order, which means I am once more getting a proper feed from William Gibson's
Wound up smearing UTF-8 headers all over the place, after some
futile attempts to get encoding and entities to cooperate with
me. I still don't understand quite why the latter doesn't work; it
should be fairly trivial for me to convert the UTF8 sequence
0xE2 0x80 0x99 into the HTML entity ’,
but somehow every way I've tried it so far breaks (well, except
for a trivial test program which proves exactly nothing).
Still have a problem with XML::RSS not being able to
parse its own output. Gah.
Right, seems to be mostly sorted at this point. There's a minor
issue with non-UTF8 feeds that's not terribly important, but other
than that I'm now getting the RSS more-or-less the way I want
Playing with movie stuff again, and abusing Perl's AUTOLOAD
function; it's not perfect, but it is pretty
- August 24
- Early start courtesy of work stuff.
- August 23
- Poking at someone else's CMS for amusement value.
- August 22
- Hmm, RSS toy is still doing weird things with entities. I
really, really need to fix that. I did, however, have it log to
file instead of mailing me every half-hour to tell me it's not
happy with the RSS feeds it's scanning.
- August 21
- Grey's Anatomy is sort
of a more serious Scrubs or a less serious ER. Not sure I like it enough to
actually follow it, but it's certainly good enough to sit in front
of for a while.
- August 20
- Race times for Saturday are up, but since I had a stopwatch with
me this time it's just confirming what I already knew.
There's a point in Deja Vu where it goes from a sort of
dubious-but-plausible version of Enemy Of The State to an
entirely dubious version of Paycheck, but since it's a Bruckheimer
"Stuff Explodes" movie, it really doesn't matter. Once
you get past the handwavy science bit, it's actually quite a good,
well-paced thriller, and worth watching. Although I didn't quite
buy Washington's cheery character; his frequent laughing at
trivialities at the start made him seem like a live-action version
of Dr. Hibbert from The Simpsons. Thankfully he was his more usual
serious self for the bulk of the movie.
Oh yeah. And when did Val Kilmer get so fat?
- August 19
- Installed MidpSSH on my phone. Failed to connect to anything. I
suspect a firewall. Actually, MIDP ping/traceroute would be
neat. I should seek them out.
Watched Babel. I think it was missing something,
possibly the tying up of a few loose ends, and the Japanese end of
the story didn't feel quite as integrated into the plot as the
rest of the bits. Plus, it's all a bit grim.
Saw about half of As Good As It Gets on TV
afterwards; this is basically Jack Nicholson playing Jack
Nicholson with OCD, plus supporting cast. The dialogue is
wonderfully vicious in places, and it's got the type of schmaltzy
romance that really floors me thrown in for good
measure. Definitely worth making time for.
- August 18
- Went to Phoenix Park. Ran 10 miles. Tired now.
- August 17
- And, uh, more stuff. Mostly relaxing in advance of tomorrow's
- August 16
- Uh, stuff. I'm training for a long run on Saturday, by which I
mean I'm saving my energy by not doing anything
- August 15
- Haven't yet deployed updated RSS code, so I'm still being
annoyed by broken feeds and messages. Bah.
- August 14
- Doing some more RSS cleanup: nuking feeds that are dead or no
longer interesting, and figuring out "more parsing, less
work" for the remainder. Funny thing; I put a goto
into the script and I wasn't attacked by
- August 13
- Blood Diamond isn't bad, but
still has a bit too much of the Hollywood polish on it to make it
meaningful - much like, say, Lord of War. Bits of it reminded me of Tears of The Sun, but then I
guess there's only so many ways to portray small groups of armed
troops running through the African jungle... still, worth a
The big spam appears to have been a massive pump-and-dump scam,
which for some reason happily jumped past the spam filtes -
probably by simply overwhelming them. Actually matching the spam
in question is fairly trivial and I've currently got a script
cleaning up the mess. One thing this has highlighted for me is
that having backup MX records is more trouble than it's worth,
since it allows things to skip past my rather aggressive spam
filtering (otherwise I end up sending bounces to my secondary MX
hosts instead of to the originator) so I've ditched
- August 12
- One of my ex-coworkers has set up a web design company called MyIT. Go check 'em
Final spam bounces tally looks to be over 14,000 mails, on top of
which I discovered that the script I use to clean up this sort of
mess (essentially it checks bounce messages to see if they were
caused by junk mail) gets really choked at around 1000 messages,
and pretty much slows to a snail's pace at about
Aaaand we were soundly beaten by Limerick. Really, the Waterford
team seemed to get everything wrong: something like 16 wides, gave
away a penalty (which resulted in a goal), looked to come away
without the ball in almost every scuffle for possession, and
ultimately lost the game. Disappointing.
- August 11
- It appears that someone's sending spam using various addresses
at my domain as an origin. There's usually a constant low level of
this going on, but right now I'm looking at over 12,000 bounced
mails in 24 hours. That's annoying, that is.
I've been playing with the libnw code again, and it's broken right
now. Sorry, in case anyone was trying to use it...
- August 10
- Playing around with mileage calculations again. Since I bought
my current car (back in 2001) the price to fill the tank has
- August 9
- Further attempts to get Pidgin to play fair with my
- August 8
- Added a distro indicator to cpan-to-rpm.pl, and
started rebuilding Perl modules to include it.
The Mail::Folder stupidity was, of course, my mistake: it
wasn't updating any of the messages, I'd just changed the
way I was writing the messages elsewhere, so they already included
the modifications I was trying to make... what I was missing, of
course, was a call to sync() to flush the changes I was
making to the folder.
I've pretty much given up on ever making the RVP logout process
work correctly, as Pidgin doesn't cater for an asynchronous logout
process - basically it calls your plugin's logout function and
when that function returns, it expects your plugin to be
done. This isn't particularly useful for a protocol where you have
to unsubscribe from the server when you're logging out. To date my
attempts to get around this have made the plugin dependant on GTK
and susceptible to random crashes. So, I'm switching it to a
blocking connection for this phase only, and doing a fast shutdown
in which I only unsubscribe my own userid and leave the server
to clean up the various buddy subscriptions in my wake. Messy, but
it should be more stable, at the cost of potentially locking up
the UI if the blocking connection, well, blocks.
Of course, once again this is made difficult by the Pidgin API,
which has all the useful functions locked away in inaccessible
- August 7
- It's still upgrading...
Also, decided since I have a "spare" FC6 machine lying
around, I'd do a live upgrade of that to FC7. I'm not very
impressed with Red Hat's Sun-style "Let's change the OS name
arbitrarily" and their moving the download location at the
same time (thus breaking a whole bunch of mirrors, among other
Trying to untangle stuff I've built myself for FC5. I really need
to modify my makerpm.pl script to tag
builds with the release, like everyone else seems to be
Having a "duurrrrr?" moment with Mail::Folder,
which isn't exactly the most brilliant piece of code in the first
place: for some reason, it happily locates the messages I want to
modify, but doesn't start actually modifying anything until it's
20 or so messages in. What the hell?
- August 6
- Because there's just not enough instability around
[root@klortho ~]# rpm -Uvh /net/blimp/export/share/FC6/i386/os/Fedora/RPMS/fedora-release-*Let's
see how a live update to FC6 goes, eh?
Apparently the presence of XFCE on my system blocked
it. Uninstall, retry.
Further dependency problems with Bluetooth, probably due to an
"aftermarket" Perl module I installed.
- August 5
- And the senior hurling quarter-final replay result: Waterford
won, Cork didn't. Booyah! We've had to play Cork three times for
this, and our next game is our second against Limerick. Fingers
crossed and all that.
Fiddling with RSS feeds. It occurs to me that it's a bit silly to
be doing intermediate feeds for my RSS toy when I can just toss
stuff straight into its database....
- August 4
- Dad arrived in from Croatia (as you do).
Poseidon was your fairly average
summer blockbuster. Tons of CGI, just-in-time escapes, selfish guy
comes good, etc. etc. Still, it wasn't actually terrible or
- August 3
- Night on the town. Many beers!
- August 2
- All I'm sayin' is "congratulations!"
- August 1
651 waider 18 0 1551m 814m 2512 S 0 40.4 9:35.58 evolution-exchange(accompanied by a 1.3GB/0.5GB evolution-data process...) I really have no comment here.
Ghost Rider: so-so. Not the
unmitigated disaster I'd been led to believe it was, but not
exactly a-list material, either.
previous month | current month | next month
Wettest June/July in 170 years. Yippee.