itunes-size

Perl program to analyze your iTunes library to find the disk space, song count, and the number of days it would take to play every song in the library from the beginning to end.

http://github.com/kevinspencer/itunes-size

burdie

Lots of people have written their own Twitter clients. This one is mine.

burdie.jpg

https://github.com/kevinspencer/burdie

WWW::LongURL

A while back I was searching for a tool to expand shortened URLs. After 5 minutes of looking and not finding anything that tickled my fancy, I decided to just write my own.

WWW::LongURL is the backend code used by expandurl and provides the Perl bindings to the LongURL API.

WWW-LongURL.jpg

https://github.com/kevinspencer/WWW-LongURL

zenfoliodown

Downloading photos from Zenfolio based sites isn't really as easy as it could be. Give zenfoliodown the photoset and it will download all the photos in that album. Easy.

1. perl-1.jpg

https://github.com/kevinspencer/zenfoliodown

SETI::WebStats

The first code I ever released to the public back in 2002. Used to obtain processing statistics from the SETI@home project. I only keep this around for posterity as the code no longer works and hasn't been touched since 2003.

I think the SETI@home project is still alive and well, I just lost interest in it. Consider this code abandonware.

https://github.com/kevinspencer/SETI-WebStats

expandurl

expandurl is a quick Perl program that takes a shortened URL (like those created by bit.ly and expands it to the full original URL.

expandurl.jpg

http://github.com/kevinspencer/expandurl

tweetlinkr

tweetlinkr is a Perl program that retrieves your twitter timeline and examines every tweet for the presence of a link. Each tweet that has a link is then printed to the screen.

tweetlinkr.png

http://github.com/kevinspencer/tweetlinkr

organizr

Simple photo organizer.

I have a really bad habit of placing all my photos in one directory. After letting something like 10,000 photos build up, it was time to do something about that.

organizr will recursively descend into directories looking for photos and sort them into directories of the form YYYY/YYYY-MM.

organizr.png

http://github.com/kevinspencer/organizr

toppr

For a while now I've been using tweekly.fm to submit my last.fm playcounts to Twitter. It works very well and I'm happy with it. This afternoon I thought it might be sort of cool if there was a blog version of that. So I wrote one.

toppr is a Perl program that retrieves last.fm usage data for the previous 7 days, creates a table of the top 5 artists that week and automatically creates a Movable Type blog post. The blog post will look like this:

Screen shot 2010-10-11 at 1.58.31 PM.png

http://github.com/kevinspencer/toppr.

instapaper-actionstreams

Instapaper is a handy tool for saving web pages to read whenever you have time. Action Streams is the Movable Type plugin that powers my asides.

It would be nice to add Instapaper items to my action stream but unfortunately there's no out-of-the-box support for Instapaper.

So I added it.

http://github.com/kevinspencer/instapaper-actionstreams

mt-remove-events

I love Movable Type's Action Streams plugin as it enables you to have your own mini buzz feed. Which is nice.

Unfortunately, every once in a while it will insert the exact same stream event many many many many times into the mt_profileevent table. Before long these duplicates will fill up your feed and let's be honest, no one likes a full feed.

The correct thing to do would be to track down the problem in the ActionStream source and submit a patch. Which I may still do. But for now I wrote this quick Perl hack to scan the mt_profileevent table for duplicates and make them go away.

Set it up as a cron job and you'll never worry about this again.

mt-remove-events.png

http://github.com/kevinspencer/mt-remove-events

mt-close-comments

Movable Type does a pretty decent job of keeping blog comment spam in check. Except for when it doesn't. And when it doesn't, it's handy to be able to go back and close comments on old entries.

mt-close-comments is a Perl program that does just that. By default it will go back and close any entry older than 20 days. Throw this in your crontab and bob is literally your uncle.

mt-close-comments.png

http://github.com/kevinspencer/mt-close-comments

itunes-album-bitrate

Quick Perl program to parse an iTunes library XML file to find albums encoded below a specified bit rate.

I initially wrote this to find albums I'd originally ripped & encoded with Winamp. So now in my spare time I can figure out what needs re-ripping.

http://github.com/kevinspencer/itunes-album-bitrate

lastfm-friendsrecent

Get your friends recently listened to tracks from last.fm. Uses the last.fm API (http://www.last.fm/api/intro) and thus requires a last.fm API key.


Picture 3.png

http://github.com/kevinspencer/lastfm-friendsrecent

lastfm-myrecent

Get your most recently listened to tracks from last.fm. Uses the last.fm API (http://www.last.fm/api/intro) and thus requires a last.fm API key.


Picture 2.png

http://github.com/kevinspencer/lastfm-myrecent

itunes-by-artist

Perl program to parse an iTunes Library XML file and counts the number of songs by each artist.

http://github.com/kevinspencer/itunes-by-artist

rm-empty-dirs

Traverses a directory tree and removes any empty directories. Initially written to cleanup an iTunes music folder with lots of empty directories after an iTunes library reorganization.

rm-empty.png

http://github.com/kevinspencer/rm-empty-dirs

Inconsequential Hacks

Bits of code I've written. You might find some of it handy.

Then again, you might find some of it nicks your cheese in the middle of the night. So consider yourselves suitably warned.

All source code can be found in my github repository and unless otherwise specified, is licensed under the GPL.