Transparently rating iTunes tracks with Quicksilver

Wednesday, April 23rd, 2008

I was recently asked about what music I was liking now-a-days by a friend bemoaning the lack of musical cross-pollination since leaving the hallowed halls of our Alma Mater.

“Well, easy, sir!” I chortled, pulling up a quick search for my 'starred' music in iTunes. Hm. Out of 5573 tracks, I'd bothered to star about 10.

I ended up sending him to my last.fm profile but I've realized that there's not a lot of relationship between 'music I think is awesome' and 'music I listen to frequently.' Because my normal mode is 'shuffle', and I have (see above) 5573 tracks, what shows up in last.fm is more or less randomly weighted by how many tracks I have from a given artist, and is no metric of quality.

So, I decided to rate more music. The problem is, I listen to music in the background and don't want to bother myself pulling up itunes, finding the track playing now, deciding how many stars to give something, clicking that slot, and going back to what I was doing. Not going to happen. In fact, searching a bit for this problem, I found that this blog article perfectly captured both my annoyance at the star system AND provided the perfect solution.

So now if I like a track, I just pull up quicksilver with some magic that only my fingers remember (cmd-space iirc) and type what's already turned into just 'in…' and boom, I bump the stars up by one.

Here it is, in action:

So much to learn, so little time.

Friday, April 18th, 2008

I am looking at my lists of books to read and books I'm actually reading and feeling a little overwhelmed by how much good stuff there is to do right now.

I'm learning linux HA, which is going well. I needed to do something that probably could have been done in a r1-style config, but I went with a CRM r2 style config because having owned that, I can do way more interesting things. One very useful model is the loadbalancerless cluster. For 'N' servers, assign 'N' IP's with heartbeat ensuring that each IP will be hosted SOMEWHERE, preferring a server that either (a) doesn't have one, or (b) has lower load. Set up all these IP's in Round Robin DNS. That way if you lose a server, the most lightly loaded server with grab it's additional IP. Availability and simple load balancing without additional hardware. (Obviously suitable to only certain kinds of workloads, but interesting.)

We're moving away from home-rolled configuration management, and puppet looks like the best next thing, which means it's finally time to learn Ruby so we can get more of our magic working.

And, now that we have more Solaris around, I'm spending more time with Dtrace which means learning more about Solaris internals so I can learn true ninja status.

I'm pushing more and more into automated testing and deployment and making things repeatable, so there's always things to learn about packaging, testing, and deployment — we have a test ganeti cluster running which is helping with some of that.

So there's tons of data flying around and I want to be grabbing (and crunching), so we might as well be using the funding over at yahoo — hadoop and hbase are on the list for sure.

Then of course visualization is a big deal when you're trying to understand data, so you'll see some books on processing and I'm also really looking at nodebox.

And the web is changing — apache is looking more and more like your dad's big lumbering caddy compared to lighttpd and nginx. Toss varnish and some horizontal filesystem magic in the form of mogilefs.

And then there are things that are just cool — I already wanted to learn haskell due to it being functional without parentheses eye-bleeding, and it being what parrot is based on — but now I found out I know one of the creators.

WHY, world, WHY? WHY MUST YOU BE SO FILLED WITH AWESOME AND SO DEVIOD OF TIME?

That is all.

I try to tell myself this won’t be me someday.

Saturday, April 5th, 2008