feed auto-discovery

I added feed auto-discovery to CastSampler.com today. It was pretty
easy using the feedfinder.py module, except for one small
problem. Something about the timelimit() decorator in that module
causes problems with django or mod_python (probably
mod_python). When timelimit() is enabled, the finder either produces
no URLs at all or an exception about “unmarshalling code objects” in a
“restricted execution environment.” It works great in my development
environment, which does not use mod_python. To get it to work in
production, I disabled the timelimit() decorator. I hope that does not
come back to bite me in the future.

del.icio.us down?

I’ve never worked anywhere that could take a reasonable change window
like del.icio.us apparently can.

We’re in the midst of a scheduled upgrade which will take no more
than a couple of hours. Come back after 2 pm (Pacific) today and you
will see the del.icio.us you’ve come to know and love. For live
updates, please see our `blog`_.

Bravo to their operations team for doing the work during the day instead
of the middle of the night. Of course, they are still working on the
weekend, but this is a start.


According to the BBC:

Left-handed people can think quicker when carrying out tasks such as
playing computer games or playing sport, say Australian researchers.

more specifically:

Extreme left-handed individuals were 43 milliseconds faster at
spotting matching letters across the right and left visual fields
than right-handed people.

It only works if you’re caffeinated, though. I should say, it only
works for me that way.

The Real Problem With Email

There has been a lot of discussion recently about the upsurge in
, especially the increase in image spam. No one seems to have an
answer. I think that is because they have not recognized the real source
of the problem.

The email delivery protocol SMTP was designed to deliver electronic
mail in the same way that postal mail is delivered: The sender hands the
mail to a service which delivers the message to the inbox of the
recipient. That’s all well and good in the real world, where the sender
has to pay for postage to ensure delivery.

In the electronic world, postage is essentially free. There have been
plenty of suggestions that we tack a delivery charge onto email, with
the idea being that charging for delivery of messages would eliminate
the spam problem. That does not hold, though, since we all receive junk
mail at home, too.

Other suggestions depend on authenticating the source of the message,
with PGP or GPG focusing on the sender while SPF and
DomainKeys focus on the sending server (requiring less configuration
on the part of each individual user). None of these address the true
problem with email:

Your inbox is world-writable.

That simple fact places the burden of dealing with spam entirely on
the recipient. Anyone can send you email, and it is up to you (or your
email client) to filter out messages you do not want.

So, the real solution to the spam problem is to deal with the write
permissions on the inbox. More on that later.

Email Archives

Speaking of email, I’ve been working on an AppleScript to organize my
email boxes.

I use Mail.app under OS X, so searching is easy and quick. I can use
smart mailboxes as needed for subject-based organization, so I wanted to
move away from my existing subject-based organization scheme (a folder
for each person, job, client, etc.). But since I have about 7 years of
email on my machine, I still wanted to do better than one big mailbox.
Grouping the messages based on the date sent seemed to give me
manageable chunks, but I didn’t want to have to do that manually. So, I
came up with this script:

on archiveByDate(parentMailboxName)
tell application "Mail"
 set archiveMessages to the selection

 repeat with currentMessage in archiveMessages
  set receivedon to (date received of currentMessage)
  set archiveYear to (year of receivedon as string)
  if ((month of receivedon as number)

This automatically maintains a folder hierarchy like:

  • parentMailboxName
    • 2006
      • 01
      • 02

I use that script as a library, and have another script which I run
via a MailActOn action to file selected messages. The reason for
having a separate script is so I can separate personal messages from
work messages in the archive. For example,

set scriptDirectory to ((path to
 scripts folder as string) & "Mail Scripts")
set scriptPath to (scriptDirectory & ":MailArchiveByDate.scpt")
set theScript to (load script alias scriptPath)

tell theScript to archiveByDate("Personal")

saves my personal messages to a folder called “Personal”, while

set scriptDirectory to ((path to
 scripts folder as string) & "Mail Scripts")
set scriptPath to (scriptDirectory & ":MailArchiveByDate.scpt")
set theScript to (load script alias scriptPath)

tell theScript to archiveByDate("Work")

saves work messages to a separate set of folders.


My most recent project is CastSampler.com, a tool for building a
personal “mix-tape” style podcast. I tend to listen to one or two
episodes from a lot of different shows, so I don’t want to subscribe to
the full show feed. Instead, I add the show to my CastSampler list, then
I can add only those episodes that I want to my personal feed.

I have plenty of work left to do, but the basic features all work now
so I would love to get some feedback.