Update: Check
this out if you have an RSS feeder, a lastfm account, and you like music. I've been thinking about doing something like this for -ages- but never could find a reliable feed to get band information from. I wonder where he ended up getting it from.
Nerd Alert.
So, I've been doing a lot of messing around with programming languages I've not used much or at all recently, mostly to get access to APIs that I have henceforth not bothered with.
1.
VBSCRIPT - iTunes COM API - Long story short, this was the only way I know how to get access to iTunesDB on my iPod. I'm wondering if AppleScript is any easier to use than VBSCRIPT, because what wuold have taken me 30-45 minutes in Java, C++, or Python took me about 8 hours to do with VBSCRIPT, merely because I didn't know the syntax, I didn't have a good IDE/compiler, or it was just generally confusing. Debugging necessitated the equivalent of alerts for javascript. It made me truly appreciate how easy it is to read/write to a file with python. That was insanity with VBSCRIPT, comparatively.
On the plus side, I did finally get partially what I wanted. The whole point of it was that I have my iTunes library handled manually, since I have it on an external harddrive. And I have a manual sync, since I don't put all of my music on my iPod. For whatever reason, iTunes gets confused as to which songs on my iPod are the ones on my external hard drive, so I have to always manually sync anything I change on my iPod (ratings and playlists, generally). Since I only rate about 5-15 songs a day at most, this is not horrible, but it's annoying.
Secondly, I'm just annoyed with iTunes in general, and its 80MB RAM footprint. I want to use something else. But iTunes has something over me. My ratings. My 8000 ratings all snuggled inside that huge library xml file. That I can easily use python to parse the xml file, get my ratings and shove them inside id3 or APE tags in the mp3s themselves. Beautiful. But what about when I rate my music on my iPod. I'd have to open up iTunes, view the rating, copy that down, and then run a python program to put in the id3 tags. That seemed like needless manual work to me, and prone to error.
So now I have a 360 degree way to get off of iTunes (for listening to music) for good. I rate things on my iPod. I run my program which uses iTunes to get the ratings off of the iPod into a pipe-delimited file. Then I run a second script to read this file, and put the ratings, last played date, etc. into the mp3s as id3 tags.
The one issue now is mapping the meta-data (Artist, Album, etc.) to the actual location of the file. Sometimes it doesn't match up. Ugh.
I realise I'm rewriting the whole thing iTunes does, but I don't wanna use it. foobar2000, for instance, runs around 20MB, rather than 80MB. And it's scriptable, customizable, etc.
Either way, it was an interesting exercise in using VBSCRIPT to access iTunes. Too bad they can't make an API for a decent language...
2. Javascript - Google Bookmarks - This was easier, and honestly more useful than the iTunes crap.
So here's the problem. I hate Firefox's bookmarks thing outright. No tags. Hard to organize. Not available everywhere. Poo on it.
del.icio.us was workable, and even useful for a time, but I found that I'd be annoyed whenever I had to find a bookmark. I'd end up going to their webpage and performing a search. Which is forever in 'Find Bookmark' use-case land. And I even now, after finishing this up, looked at delicious' button/plugin for firefox. But it's plagued with the problem I finally solved in Google Bookmarks, which is you end up getting a HUGE long list of tags, which is painful to navigate.
At some point in time, I decided to move over to Google Bookmarks, because it worked just as well as delcious, with only one login, and possible compatibility with other Google apps. I'm a Google slut, I admit it. But it's nice to have everything in one place, rarely ever goes down, and usually has APIs all over the place. There's a
convenient script to convert you over to Google, and you can run it locally with python if you're paranoid.
And again, it's worthless without
a button in firefox to easily look at your bookmarks. The nice thing about this particular button is that it allows you to nest/folder your tags for easier navigation, rather than have the unfortunate problem above when you have 500 tags, and a bookmark menu with 500 elements.
This poses a problem, though. The whole BEAUTY of tags is so you don't have to think about organization. You just tag to your heart's content, and use the tags later to find what you need.
And so that's where my script comes in. I made my first greasemonkey script that goes through all your tags and renames them [first_letter]/[tag]. And after running it, you get this beauty in your button:
As you can see, I added tags since I ran the script, but that's the point. I don't have to worry about it since I can just run the script. I might make it automated at some point.
Funny thing is that, while writing this, I realised that maybe Google Bookmarks has an API (one of my supposed reasons for sticking to Google in the first place), and I could use that rather than using greasemonkey. And lo and behold,
they do Ah well. I wanted to learn how to make a greasemonkey script anyways.
If you want it, give me a holler. I still have to clean it up a bit before putting it up somewhere all official-like.
3. Oh, and
my todo over SMS is fully functional, but also just needs cleaning up and generifying (that is, remove my email/password from it) before I can offer it to comrades for using. I've been using it heavily for about a week now, and I have to say it's pretty fucking awesome. I've been about 30x more productive this past week than I've been in months, maybe even years. And I no longer forget things. It's nice, since I'm insanely forgetful.
4. I've also been pretty darn manic this past week. I've been getting an average of 5 hours of sleep a night, and then I pulled another 18 hour straight coding session last night. My schedule is completely fucked, since I ended up going to bed at 7pm and waking up at about 2am. I'm gunna go try to get some more sleep now, in fact.
Update 2: It's not much to show, but I like it and I give Andrea the credit for coming up with the idea that the icon should be an elephant since 'You don't need to have the memory of an elephant'. Tray icons look professional!