Indexing iTunes libraries with playlists

Using smart playlists to organize music by properties helps me find music I want to listen to in my iTunes library.

Simple titles work well when the playlists are in a single folder ("Indexes" works). My iPod carries "Underrated" – transit time is rating time. I have made steady progress towards rating every song.

Complex indexes can be built out of simple components. Playlists such as "Top Rated" and "Checked" encapsulate a set of logic selections as a single "smart playlist". The logic "playlist" is then used in other "smart playlists". Some simple-seeming playlists can only be defined with complex indexes.

Many of these playlists depend on song ratings. Consciously-selected metadata helps improve the "success rate" of the playlists. To rate songs, I use Synergy to bind F1 through F5 to the rating stars in iTunes. Others might bind F6/F7 to increase/decrease by a half-star.

Most of the playlists are at their best in Smart Shuffle with no more than 5 upcoming songs listed. This reduces the delay between when a rating is changed and when the new rating takes effect in Smart shuffle. All rating-logic playlists refresh immediately when a rating is changed.

These playlists simplify using and maintaining an iTunes library. Finding something to listen to takes less energy with these indexes. Genre alone has limited usefulness. I have many more of these. Feedback is welcome. I don't use half stars.

"5 underplayed" lists 5 star songs that haven't been heard recently, providing an instant "mix" of great music.
  • Match the following rule:
    • My Rating is | * * * * * |.
  • Limit to 100 songs selected by least recently played.
  • Live updating.
"Checked" lists all songs that are active in the library.
  • Limit to 10000 GB songs by name.
  • Live updating.
"Top Rated" lists active songs that have at least 4 stars.
  • Match any of the following rules:
    • My rating is in the range | * * * * .  to | * * * * * |.
  • Live updating.
"Unchecked" lists all songs that are not active, using the "Checked" playlist.
  • Match the following rule:
    • Playlist is not "Checked"
  • Live updating.
"Underrated" lists all songs played with no rating stars set.
  • Match the following rule:
    • My Rating is | . . . . . |.
  • Live updating.
"Unplayed" lists good songs that haven't been played recently, using the "Top Rated" playlist.
  • Match the following rule:
    • Playlist is "Top Rated".
  • Limit to 100 songs selected by least recently played.
  • Live updating.

Zero to (free) shopping cart in sixty minutes

This cycle can feasibly be completed in under an hour; most of the time is spent filling out forms over and over again.  PayPal account verification steps may take up to 5 business days, though, but that shouldn't prevent purchases from taking place.

  1. Using Blogger, get a blog (and configure it to use your FTP server, if so desired).
  3. Using Picasa, create a new Hello account and configure it for the blog.
  5. Using PayPal, get a merchant account.
  7. Using Picasa and Hello, send a merchandise photo with a short description to BloggerBot.
  9. Using PayPal's merchant tools, generate an "add to cart" button for the item.
  11. Using Blogger, edit the new post to include a title, a description, and "add to cart" and "view cart" buttons.

Feedback welcomed as to how this performs for y'all out there..  One interesting side effect of this process is that, without any advertising on the site whatsoever, it's a new way to (theoretically, at least) make weblogs profitable.

Continue reading "Zero to (free) shopping cart in sixty minutes" »

filster: Linking reputations networks to email whitelists.

I've written a procmail filter that checks incoming mail against several identity networks; when the sender's email address is listed, it adds a new header: X-Reputation: friend. Currently, plugins are provided for Orkut, FOAFweb, Reputation Research Network, and CPAN.

# When someone's listed as a friend, add X-Reputation: friend.
:0 f

An addition to SpamAssassin's allows mail from these senders to pass through more easily, while allowing super-spam (scoring 20+) to remain blocked.

header REPUTATION_FRIEND X-Reputation =~ /friend/

header REPUTATION_PEER X-Reputation =~ /peer/

Combined with SPF, it becomes quite feasible to tie one's social networking profiles into a list of all the email addresses from which you don't receive spam.

The code is included in the extended entry of this post; please be aware that it is to be considered pre-alpha 0.0.1 pencil draft code. That said, it works quite nicely once you've got the prerequisite perl modules installed.

Update: Added code to link into the Reputations Research Network. Neat :)

Update: Linked into the CPAN author database and an instance of the FOAFweb as well.

Continue reading "filster: Linking reputations networks to email whitelists." »

Configuring Sendmail on OS X 10.2 to use an SSH tunneled smarthost

After a couple days of using Mutt to read my mail, thanks to the constant crashing of when presented with six years of email, I've recorded the steps I took to get sendmail communicating over an SSH tunnel to my actual host.

  1. Tips:

    • I've added a '\' where each of the long commands is wrapped, to indicate that it's all one line.
    • and are two distinct files. If you're not copy-pasting these instructions into your terminal, double-check these filenames before executing the commands.
    • At various points throughout I use the monikers such as to indicate the mail server through which you'll be relaying mail. Please replace these with the public hostname of your relay server.
    • It appears that 10.3 no longer uses sendmail; as such, these instructions are intended only for 10.2.

  2. Open a terminal and become a superuser.
        sudo -s
  3. Create a local copy of the generic file.
        cp \
          /usr/share/sendmail/conf/cf/ \
  4. Add the following lines into /etc/mail/, above the MAILER lines near the end of the file.
        define(`RELAY_MAILER_ARGS', `TCP $h 10025')
        DAEMON_OPTIONS(`Port=smtp,Addr=, Name=MTA, Family=inet')
  5. Backup the system-installed
        mv \
          /etc/mail/ \
  6. Regenerate from the modified
        m4 \
          /usr/share/sendmail/conf/m4/cf.m4 \
          /etc/mail/ \
        > /etc/mail/
  7. Create a local copy of the generic file.
        cp \
          /usr/share/sendmail/conf/cf/ \
  8. Add the following lines into /etc/mail/, above the last two dnl lines near the end of the file.
  9. Backup the system-installed
        mv \
          /etc/mail/ \
  10. Regenerate from the modified
        m4 \
          /usr/share/sendmail/conf/m4/cf.m4 \
          /etc/mail/ \
        > /etc/mail/
  11. Modify /System/Library/StartupItems/Sendmail/Sendmail, adding an "&" character after each of the two occurences of /usr/sbin/sendmail.
        /usr/sbin/sendmail -bd -q1h &
        /usr/sbin/sendmail -C /etc/mail/ -q1h &
  12. Strip group writability from certain system directories, to satisfy security checks.
  13.     chmod g-w /etc/mail /etc /
  14. Start sendmail; issues will be logged to /var/log/mail.log.
        /System/Library/StartupItems/Sendmail/Sendmail start
  15. Optionally, modify /etc/hostconfig to start sendmail on boot.
If everything worked out properly, you now have sendmail listening at, port 25. Messages received for delivery will be queued until an SSH tunnel is available on port 10025. Follow these steps to send the queued mail:
  1. Open the SSH tunnel to your smarthost.
        ssh \
          -f -N -L \
  2. Instruct sendmail to send the queued mail, if any.
        sudo sendmail -q

Continue reading "Configuring Sendmail on OS X 10.2 to use an SSH tunneled smarthost" »

My Photo

Recent Posts

Powered by TypePad




  • Antispam
  • Cloudmark
  • Shadows
  • Styles
  • You were here
  • floating atoll


  • Search


  • Ads