Wednesday, August 20, 2008
Last.fm Cocoa Tagger v1.2
- Ability to refresh the list of playlists
- Reload playlist data functionality
- Status area indicating the current track being updated and overall progress.
Most of these features allow you to keep the app open (as long as it doesn't crash). Check it out!

Download now
Labels: apple, cocoa, last.fm, lastfmtagger, lastfmtaggercocoa, mac, osx, programming, ruby, software
Friday, June 6, 2008
Last.fm Tagger 1.1
Not a huge change, but slightly significant. I am working on win32 compatibility also. If anyone can help, that would be great!
Ideally, I want to check the ENV constant for a string of /windows/i and then load win32ole gem and then abstract the iTunes interface to handle it properly.
Download last.fm tagger 1.1
Labels: last.fm, lastfmtagger, ruby
Tuesday, March 11, 2008
We Made it to 1.0!
I'm happy to say that build.last.fm accepted my application! So you can now find the tagger on build.last.fm.
If anyone out there would like a feature added, just let me know and I'll see about implementing it.
Get 1.0 now!
Labels: last.fm, lastfmtagger, programming, ruby
Thursday, February 28, 2008
Last.fm Tagger 0.9
As always, you'll need the wonderfully awesome RubyOSA gem installed.
Download it now.
Labels: last.fm, lastfmtagger, music, programming, ruby
Tuesday, October 9, 2007
Last.fm Tagger for RubyOSA Update 3
What's new:
• Nice console messages telling you what's happening.
• Support for skipping over identical genre's.
• Ability to continue or abort tagging process. So if you don't like that tag, type 'n'.
• Use -q to subdue tagging confirmations.
• Full UTF-8 support, as well as proper URL escaping.

Download it now! And have somewhat useful genre's to choose from.
I will tackle cleaning it up later. Add me to your RSS reader if you want script updates.
Remember, you can get RubyOSA with the Last.fm Tagger here.
Labels: computers, last.fm, lastfmtagger, music, nerd, osx, programming, ruby, software
Monday, March 19, 2007
New Last.fm Tagger for RubyOSA
Here's the updated code:
begin require 'rubygems'; rescue LoadError; end
require 'rbosa'
require 'net/http'
require 'cgi'
require 'rexml/document'
include REXML
itunes = OSA.app('iTunes')
selection = itunes.selection.get
if selection.empty?
$stderr.puts "Please select some tracks."
exit 1
end
selection.each do |track|
feed = "http://ws.audioscrobbler.com/1.0/album/#{CGI::escape(track.album)}/toptags.xml"
doc = Document.new(Net::HTTP.get(URI(feed)))
track.genre = doc.root[1][1].text
end
Remember, you can get RubyOSA with the Last.fm Tagger here.
Thanks to Laurent for making an awesome library. It makes playing with Ruby even more fun!
Labels: last.fm, lastfmtagger, osx, programming, ruby, software
Wednesday, November 15, 2006
Get Genre's from Last.fm and Tag with Last.fm Using RubyOSA
I’ve always hated genre’s. They always place a constriction on the acceptance of an artist. However, they do come in handy in certain situations. For instance, I like to tag all my ambient stuff so that I may quickly choose an artist to fall asleep to. Now, I’m on a tagging rampage, however there are some artists where I have no idea how to “genrealize” it. Ah, but the ever-growing community on Last.fm tags artists! Most of the time, the genre is agreeable upon a majority and therefore acceptable to me. I was growing sick of searching Last.fm for each artist, then choosing the most popular tag and tagging it in iTunes. If it weren’t for RubyOSA, I could not have accomplished what I wanted to do.
This is a perfect project for me that I hope to evolve into a more interactive process. Currently, the script is very basic in that you run it, it grabs the tag feed from Last.fm and sets the genre of the artist that you’re listening to. Check it out:
require 'rubygems'
require 'rbosa'
require 'net/http'
require 'cgi'
require 'rexml/document'
include REXML
itunes = OSA.app('iTunes')
track = itunes.current_track
feed = "http://ws.audioscrobbler.com/1.0/artist/#{CGI::escape(track.artist)}/toptags.xml"
doc = Document.new(Net::HTTP.get(URI(feed)))
track.genre = doc.root[1][1].text
In the future, I would like to provide a list of the top 10 tags in which you choose which to tag this song with and ultimately, I’d like to tag the whole artist with the genre. Maybe I could also provide album tagging, since some artists deviate in style across multiple albums.
Labels: last.fm, lastfmtagger, programming, ruby
Thursday, June 29, 2006
Adventures with Ruby (part 1)
These are notes I’m taking while reading the Programming Ruby book. It’s excellent.
General Ruby
- use parens in all but the simplest cases
- single quotes for non-escaped strings, double quotes induce more work
- escaped strings replace with binary val
- double quotes also used with expression interpolation #{name}
- the last expression evaluated by a method is the return value; no need for return unless being of utmost verbose
Classes
- classes are never closed. you can always add methods to an existing class by opening the class like you would a folder or file
Cool and unforgettable features
- statement modifiers: ** expression followed by if or while and the condition ** (ex. puts “danger!” if radiation > 3000)
I AM WHAT I DO NOT UNDERSTAND. I AM ARBITARY!
Labels: programming, ruby
Subscribe to Posts [Atom]