Consolidating Music Metadata

Finally finished a script a couple weekends ago to synchronize data between Amarok, Rhythmbox, and iTunes. I now use Amarok exclusively, and it’d been bugging me for a long time that my old metadata from multiple machines and multiple apps was locked away and unexploitable. So i fixed that, for myself at least. I harvest everything into a common format and populate a big ol database with everything. Then I merge all the metadata together (averaging and adding, whatever, where necessary).

The code is ugly for now, so no public release. I might clean it up some time if anybody else wants it. Just ask.

Migrating From Quicken

A short while back, my wife appropriated my iBook. She couldn’t resist its OSX-y goodness. Until now, I’d been tracking my finances in Quicken on the thing, and, as I have very little love for Quicken on the Mac, this gave me a good excuse to finally migrate away.

My primary machine is a gentoo box, so that shaped my options somewhat.

First, tried a few versions of Quicken (2003, 2005) under Wine. Neither worked. Neither even installed. Googling showed mixed results of sucesses and failures. Perhaps if I invested in Crossover or Cedega I’d have better luck–but for now, I’m a poor PhD student, so I’d rather go the Free as in Beer route. Scratch the easy solution.

There seems to be two main free personal finance apps for Linux: KMyMoney (v 0.8.4) and GnuCash (v 1.8.11).

KMyMoney

  • First step was to import my years of Quicken data. Its QIF import was FINICKY—it took me quite a while manually regexp-tweaking the quicken data file before I could get the data to import correctly (this step alone told me it’s not ready for the everyday user).
  • The UI is pretty friendly (lots of icons, non-imposing). Will need to try it out more before I can make a judgement on big-picture usability
  • Handles OFX imports (through AQBanking) even better than Quicken does.
  • It’s missing graph-based reports. The text-based reports are nice, but they don’t compare
  • The real game-ender, though, was its epilepsy-inducing flashing red text (the first google hit for “kmymoney flashing red” was this same question, greeted by a RTFM, and the original poster deciding to try GnuCash. Sigh. Maybe that’s what I’ll try next

GnuCash

  • I import my QIF data without problem (and without data tweaking, gnucash + 1).
  • The UI looks to be made circa late 1980s. It is ugly and imposing. The feelings I get are more “Generic industrial-strength cleaning product” than “Friendly personal finance management”.

I’ll update this entry more as I hack around with both over the weekend. I’m not too impressed with Free Software solutions for this. Maybe I’ll try MoneyDance, I’ve heard good things about it.

update 20060709:

  • Entries in kmymoney flash red because they are missing categories. While I agree with the spirit of this “feature” (I do eventually want to categorize everything), it doesn’t make the implementation any less epilepsy-inducing. I long for the day when I can’t say “Good idea, ugly UI. What else can you expect from Free Software”.
  • I ended up using KMyMoney because it seems to be more actively developed than GnuCash. For Free Software, I consider forward momentum to be just as important as current feature set, and it appears KMyMoney has it won here (GnuCash is still in GTK1? Maybe that bit about “late 80’s UI” for GnuCash wasn’t as large of an exaggeration as I’d thought! Phew!).
  • a few more reviews

update 20060710:

  • How timely, GnuCash has just released 2.0 as of last night. And appears to be using a modern version of GTK also. So much for that last comment about “forward momentum”. I’ll give the new version a try.
  • Half an hour later: Errr, this isn’t that much better. Oh well…

update 20070131:

  • I’ve been using KMyMoney for half a year now, and for the most part it’s been good to me. OFX support is decent, and it hasn’t disappeared any of my data. Functionally, the only things it’s really lacking is decent graph visualization and budgeting. However, with this new year, I’ve found that the real deal-breaker for me is no cross-platform support. KMyMoney is all right if it’s only me hacking on the finances, but if I want to get my wife involved then we’ll need something that works in mac and/or windows
  • Enter Moneydance. It’s written in java with crossplatformness in mind, which means it works equally well in Mac/Linux/Windows/Solaris/whatever.
  • It has decent graphing visualization and budgets that KMyMoney lacks. Its UI is better than either KMyMoney or GnuCash… but the best part is it has API hooks into python (!!!) —this means (hopefully) I can automate lots of the drollery of, say, categorizing stuff.
  • The downside to Moneydance is that it’s neither free nor Free, but: the python API allows me to get my data out of I need it (mitigating the data lock-in and the fact that it’s not libre Free)… and as far as gratis free, $30 for a license that allows you free upgrades for multiple years… that’s not that bad.

Gentoo 2006.0

Dusted off my old 5-year-old laptop–thinking it might make a good server–low power consumption, built-in UPS.  The new Gentoo Live CD is very slick.  Too bad it doesn’t quite work:

  • The LiveCD auto-starts a gnome session.  Too bad it doesn’t allow the screen resolution to be any higher than 640×480.  This size is unfortunately too small for the graphical auto-installer to be useable.
  • The command line auto-installer is brittle.  After 6 failed tries with an error dump that closes too quickly to look at, I’m going for the old-school command-line install.  Oh well.

Information, Knowledge as Art

Came across Newsmap this afternoon, a google maps mashup by Ben O’Neill today that plots locations mentioned in BBC news on a map of the world.

The implementation was neat, but I can’t help but dream of what this could be like. Imagine a map of the world (perhaps OLED, mounted on your wall), with regional coloring based on density of news events in that area. You’d need a few hacks to make things look nice (normalization for standard-level-of-news per area (different areas of the world have different minimum levels of media coverage) … smoothing so that local news-concentration influences regional news-concentration). And a gradient would do a lot more for visualization than these discrete news-event-bubbles (but I realize that the google maps api limits you to location bubble markers, and remixers are limitted to the tools at hand).

I love to see non-art becoming art. To this day, one of my favorite random conversations was with Tom and danah at a conference a year or so ago, where we discussed a fellow information addict who had covered all the walls of his house with bookshelfs full of books. Information, knowledge became art–and it evolved so both organically and unobtrusively.

AI Scaremongering

This post on boingboing, “Google: our print scan program has no hidden AI agenda”, which points to this ZDNet story cracks me up.

Talk of a “hidden AI agenda” just cracks me up–it feels like scaremongering, of some lumbering, lovecraftian, inhuman intelligence, artificial intelligence.

When questioned on whether a renaissance of the general paranoia about omnipotent and malign computers was underway now, Levick admitted that such concerns were more abundant, but insisted that Google’s core philosophy of “Don’t be evil” guides all its actions.

“I think that goes back to the concept that these technologies can actually be empowering and good for the world if the companies implementing them are good,” he said. “Could some of these technologies be used for bad purposes? Yes. But will they by us? No.”

Hehe. As someone who works with AI every day, and who knows the prenatal state of natural language processing and so-called “strong AI”, it cracks me up to see public fears of “omnipotent and malign computers”.

Sigh.

Bibliographic Management

Bibliography Management Linkdump:

  • Bibdesk : an excellent BibTeX database management system. Beautiful. But for mac only.
  • jabref : an open-source, java BibTeX database management system. Lacks Bibdesk’s panache, but not bad.
  • bibtexml: an excellent tool. Takes .bib files, converts them to xml, and then uses DTDs or XSLTs to mark them down to html APA, MLA, or whatever. This is the type of thing that XML was made for. Requires sablotron or another xslt engine to work.
  • citeulike : folksonomy + bibliography. A delicious clone built to manage academic paper metadata. Good for storing data, finding new papers to read, and making what I’ve read public

Painfully Learning Zope

My research demands that I write an interface for native speakers to annotate sound files of learner speech. Up until now, my poor annotators had been using an excel sheet I generated via a python script, with one column that pointed to sound files on the web. It worked, and it had nifty features like excel’s builtin autocomplete, but it was easy to run into versioning problems with the halfway-completed excel sheets floating around.

Now, much of our project’s work is done in python, so the powers that be say “hey, write us a web app in python that does this job”. No prob, python has lots of web app frameworks (cherrypy, twisted, django, snakelets, mod_python (and .psp pages) ). And, it was actually a Good Thing, because I’d always wanted to learn web app programming (It’s embarassing, actually. My ivory-tower programming experience has been a lot of working with statistics, machine learning, natural language processing, but I’ve never done things like web programming, database programming, etc; I’ve read php and mod_perl code, but reading is of course much different from writing). So, mod_python and psp it was. They proved to be intuitive enough to get some working teach-myself-how-to-do-this stuff code in a couple hours.

However, project requirements change. “We want you to do it in Zope or Plone” became the new order of the day. Been wrestling learning zope/plone for the past 4 days or so… The architecture has a lot of promise, but in many ways it’s frustratingly immature. It can make things look really slick… but documentation is disappointingly unclear/convoluted. There are many links out there for learning this stuff, but very few good ones.

After much searching, dev shed ended up having a high concentration of good links. I wish I had found this howtoCreating Basic Zope Applications, in particular, 5 days ago.

Zope seems full of inconsistencies. And it’s not very pythonic. Take, for instance, a mishmash of “here”, “this”, and “self” used hodgepodge to fulfil the function of python’s “self”. What’s up with that?

things elecronic

I think part of the reason I enjoy programming so much is that there is no entropy in what I create. Information gets out of date, standards change, yes, but that’s just a synchronization problem, not a Universe problem.

Or is entropy a bad thing? It’s the enemy of order and structure, yes. But it does keep things clean, and as the old stuff wears out, it gives us an excuse and a drive to innovate the new.

Huh.

MediaWiki no more

I came to the realization that while MediaWiki worked, it was hideously industrial-strength for my purposes. Ditched it in favor of MoinMoin. MoinMoin has turned out both snappier (especially when I run it from a mac ;) ) and easier to customize/hack. There’s a handy conversion tool to port MediaWiki data to MoinMoin format, but it was a bit disappointing–crashy, memory-leaky, and most of the time didn’t get the syntax right. But it worked, at least.

http://moinmoin.wikiwikiweb.de/MoinMoinQuestions
http://moinmoin.wikiwikiweb.de/MediaWiki

Data Synchronization/Backup Headaching

A friend of mine’s recent hard drive catastrophe finally got me around to implementing a decent, cron’ed backup implementation for all the stuff I don’t store in my svn server (mp3s, photos, and other media just don’t change enough to merit the overhead of checking them into a VCS).

RSync would work well, you’d think… Except that I have all this stuff on a fat32 drive (for the rare boot back into windows). And RSync does NOT play well with fat32, and I’m finding.

mote@server1 /media $ rsync -av -e “ssh -l mote” server2:/fat32/data/media/test_dir /media/test_dir

receiving file list … done
created directory /media/test_dir
rsync: failed to set times on “/media/test_dir/test_dir”: Operation not permitted (1)
rsync: mkstemp “/media/test_dir/test_dir/.1.txt.3FfWKE” failed: Operation not permitted (1)
rsync: mkstemp “/media/test_dir/test_dir/.2.txt.IT6nr2″ failed: Operation not permitted (1)
rsync: failed to set times on “/media/test_dir/test_dir”: Operation not permitted (1)

sent 56 bytes received 212 bytes 21.44 bytes/sec
total size is 22 speedup is 0.08
rsync error: some files could not be transferred (code 23) at main.c(1173)

Google brings up this blog entry dealing with similar troubles. It suggests some rsync workarounds, and looking into FullSync (supposedly rsync with a solution to the fat32 headaches) .
Unison (slick but crashy from what I hear) is also a possible option. (Feature comparison for rsync and unison)

UPDATE:
for a quick get-rsync-working thing, “rsync –rvt” works while “rsynv -av” don’t. It’s that damn “-a” that was causing the problems. I’ll still look into unison, though.