Archive for March, 2005

More Musicbrainz…

Posted in MeNow, RDF on March 29th, 2005 at 23:33:56

What I posted about yesterday was obviously too ridiculously difficult to actually be a real solution to the problem. So, I set about making something that works at least a little bit better.

It’s possible to generate “TRM”s for songs you have. These TRMs are basically accoustic identifiers for the track: they let you identify the song based on the way it sounds. This is how Musicbrainz does its identification. Yesterday, I installed a bunch of musicbrainz stuff in an effort to get this working, and did end up finding something that will generate TRM files. My current song, Chumbawumba’s Tubthumping, has a TRM of 776643d0-9b47-4eb9-8d29-608fa9ccedcd.

So, I can generate TRMs: but that doesn’t get me very far. Now, I need to figure out the actual track associated. Since I’m doing this mostly non-interactively, I’m just going to use the most popular track with that TRM. (This doesn’t always work: for me so far this evening, it’s given me a ~80% accuracy rate). So, I fetch the RDF version of the TRM file: this can be retrieved from http://musicbrainz.org/trmid/776643d0-9b47-4eb9-8d29-608fa9ccedcd for the song I mentioned earlier.

The first song in the “tracklist” RDF bag is the one that is the best match, so I’ll grab that Track. I can then add that URI, and fetch the creator ID from that file. All these files can be tossed into the general RDF model I keep lying around, along with the turtle that I mentioned in the earlier entry: [a foaf:Person; foaf:nick "crschmidt"; menow:hasStatus [a menow:Status; dc:date "timestamp"; menow:listeningTo <trackuri>]].

Then, I can issue a query against the model: since I know the time, I only return the most recent result:

select ?t, ?n, ?d where (?p foaf:nick “crschmidt”) (?p menow:hasStatus ?s) (?s dc:date ?d) (?s menow:listeningTo ?o) (?o dc:title ?t) (?o dc:creator ?a) (?a dc:title ?n) AND ?d =~ /timestamp/

The end result? A couple hundred extra triples loaded into the global model, and I can see:

23:23:56 <crschmidt> ^listeningTo 776643d0-9b47-4eb9-8d29-608fa9ccedcd
23:24:02 <julie> 2005-03-30T04:24:01Z Tubthumping Chumbawamba

Some of the tracks I’ve been listening to tonight can be shown via:^q select ?t, ?n, ?d where (?p foaf:nick “crschmidt”) (?p menow:hasStatus ?s) (?s dc:date ?d) (?s menow:listeningTo ?o) (?o dc:title ?t) (?o dc:creator ?a) (?a dc:title ?n) AND ?d =~ /2005-03-30/. Feel free to stop by #julie on irc.freenode.net and try it!
Read the rest of this entry »

MeNow and MusicBrainz

Posted in MeNow, RDF, Semantic Web on March 28th, 2005 at 16:05:09

So, I had a few minutes of free time earlier today, and I decided to play a bit with MusicBrainz. On my Mac right now, the only music I have is tagged by Musicbrainz, and I finally have redlandbot/julie back online after some extended DSL line problems.

So, I figured “hey, my music is tagged by musicbrainz, and they do some nifty RDF stuff, right?” So I started exploring.

I’m listening to Lou Bega’s Mambo #5, from Mastermix 160 (disc 1), according to iTunes. As I said before, all these titles are pulled from MusicBrainz. So, I go to Musicbrainz, and type in “Mastermix 160″ to the Albums list, click on the correct response. I arrive at http://www.musicbrainz.org/showalbum.html?albumid=145830 , and from there, move on to Mambo #5. I’m given two RDF links: One for the Track, one for the artist.

I add these to my local RDF store via IRC:

15:43:43 < crschmidt> ^add
http://mm.musicbrainz.org/mm-2.1/track/5c29f67b-5014-40a7-a443-0de7636b26ac
15:43:44 < julie> Adding
http://mm.musicbrainz.org/mm-2.1/track/5c29f67b-5014-40a7-a443-0de7636b26ac to my database…
15:43:45 < julie> Added 14 statements from
http://mm.musicbrainz.org/mm-2.1/track/5c29f67b-5014-40a7-a443-0de7636b26ac. Model size is 2125954.
15:43:51 < crschmidt> ^add
http://mm.musicbrainz.org/mm-2.1/artist/64f9c914-74a0-4f6b-8589-6261851b0ab9
15:43:52 < julie> Adding
http://mm.musicbrainz.org/mm-2.1/artist/64f9c914-74a0-4f6b-8589-6261851b0ab9 to my database…
15:43:53 < julie> Added 8 statements from
http://mm.musicbrainz.org/mm-2.1/artist/64f9c914-74a0-4f6b-8589-6261851b0ab9. Model size is 2125962.

So, now the bot knows about the song that I’m listening to - how to tell her I’m listening to it? The MeNow schema is designed for just that. A turtle serialization stating “crschmidt, whose homepage is http://crschmidt.net, is, at time 2005-03-28T20:47Z listening to the track identified by http://musicbrainz.org/track/5c29f67b-5014-40a7-a443-0de7636b26ac” would go something like this:

[a foaf:Person; foaf:nick "crschmidt"; foaf:homepage <http://crschmidt.net>; menow:hasStatus [ a menow:Status; menow:listeningTo <http://musicbrainz.org/track/5c29f67b-5014-40a7-a443-0de7636b26ac>; dc:date "2005-03-28T20:47Z"]].

Just my luck, my IRC bot also understands Turtle, so I add some triples:

15:49:07 < crschmidt> ^addturtle [a foaf:Person; foaf:nick "crschmidt"; foaf:homepage <http://crschmidt.net>; menow:hasStatus [ a menow:Status; menow:listeningTo
<http://musicbrainz.org/track/5c29f67b-5014-40a7-a443-0de7636b26ac>; dc:date "2005-03-28T20:47Z"]].
15:49:08 < julie> Model size increased by 7 to 2125969 via turtle statements.

So, now julie knows what I’m listening to, but how do I tell other people? Using RDQL queries (I haven’t added SPARQL support yet), I can show off what I’m listening to:

15:53:16 < crschmidt> ^q select ?t, ?n, ?d where (?p foaf:nick “crschmidt”) (?p menow:hasStatus ?s) (?s dc:date ?d) (?s menow:listeningTo ?o) (?o dc:title ?t) (?o dc:creator ?a) (?a dc:title ?n)
15:53:17 < julie> 2005-03-28T20:47Z Mambo No. 5 Lou Bega, 2005-03-28T16:59Z Can’t Get Enough of You Baby Smash Mouth, 2005-03-28T16:39:08Z Electric Sleep (Original Version) sHeavy, 2005-03-28T16:47:08Z Dead Already Thomas Newman

As you can see, this shows off all the songs I’ve been listening to recently. If I want to limit them, I can add a regex onto ?d: ?d =~ /20:47/. This gives me the result I want: 2005-03-28T20:47Z Mambo No. 5 Lou Bega

Okay, so it’s the most ass backwards way of sharing what you’re listening to ever. That doesn’t mean it doesn’t have 0 merit however: one of the benefits of RDF is its extensibility. This means that I can do a lot more than just say what I’m listening to. I could, for example, offer a rating, using the review vocabulary. I could find out what license a work is under, using information from the Creative Commons Metadata project. I could find out what songs someone else is listening to, and then find out their contact information via FOAF, check their availability via MeNow information and Jabber Pub/Sub tech, and drop them a message if they’re around.

I’m stretching it, but this is why I want all this stuff which MeNow can work with. RDF is powerful, and an application people might actually use would be a cool way to share this data. Then again, for the most part, I’m preaching to the choir here. But I wanted to write about it anyway. “Now Playing information stored in RDF: Wave of the future! You heard it here first!”

SVG

Posted in RDF, SVG on March 28th, 2005 at 00:19:23

Lately, I’ve been playing with SVG, since I finally got it to work decently well on two of the computers I regularly use. I was able to get it working on a Static FOAFNaut even, which is motivating me to actually write a few more tools in Redland to get FOAFnaut working better. I never realized that much of the speed problem with FOAFNaut before was that it was dynamically parsing RDF in Javascript, which is not fast, rather than something related to the actual SVG rendering, which is actually pretty quick.

With help from #svg on freenode, I’ve got SVG running with a prerelease version of an Adobe plugin on my Linux box, and I’ve had it for a while on Firefox on the mac. I’m really looking forward to the release of Firefox 1.1 now though: having built in SVG support will lead me to be able to try out some pretty neat stuff, and maybe pull a few more people over to Firefox in the fray (if the engine isn’t crap, at least).

SVG is, all and all, pretty cool. I’m probably going to add support for parsing RDF out of SVG files to julie once I get my DSL line problems fixed and start running her again. Yet another source of data… such nifty stuff to be done.

For those who don’t know: SVG is kind of like a standards-compliant version of Flash. It stands for Scalable Vector Graphics, and it lets you describe how to draw things in terms of curves and lines, rather than by specifying the pixels. This means that you don’t get blurriness at any size you look at it, unlike rasterized formats. It’s kind of like comparing Adobe Illustrator files to flattened Photoshop files, for those of you who are familiar with such things: one can be stretched at will and not look odd, whereas the other is just not going to react so well to that. There’s still some issues I’m having with them in the “embedded in web pages” way, but that may just me not knowing how to deal with stuff.

For Linux and Windows SVG authoring, there’s Inkscape, which seems to be a simply fantastic piece of work. Illustrator can also export to SVG, and I’m sure there are other tools which the lazyweb can share.

All in all: SVG is cool, and I hope to do some work with it in the near future. I’m happy to hear anything about success stories you may have had so far.

FilmTrust

Posted in Semantic Web on March 13th, 2005 at 09:57:35

FilmTrust logo
I’m not sure if I’ve posted on this beforecoaching, but I noticed a few new features in the site, so I’m going to mention it again.

FilmTrust is a film rating site, much like the ratings built into NetFlix or other similar services. You rate things you’ve seen, and FilmTrust offers to you suggestions as to what you might want to look into seeing. However, instead of just basing it on what movies you’ve seen and what everyone else thought about those movies, it also uses social connections to make these estimates. You create a “friends” network, and give each of these friends ‘ratings’, which determines how much affect their opinions have on your recommendations.

According to the tour, this calculation is “… calculated using the trust ratings you have for your friends, what they have for their friends, and how those people rated the film.”

One of the cooler aspects of the project is that it is rich with information in RDF. So, you can take the information from the site, and pull it into a local RDF store, and manipulate it ot your heart’s content. If you wanted to do your own suggested ratings system by looking at the reviews that each of your friends have offered, you can do that: you could, indeed, redisplay much of the information available on the site solely by using the RDF information and doing your own calculations. (This would, I’m pretty sure, bring up the issue of copyright, so I wouldn’t recommend it without at least discussing it with the project maintainers first.)

FilmTrust is an academic research project being run by Jennifer Golbeck. More information is available on the About FilmTrust page.

Other people have already written on the topic of FilmTrust: MortenF has some nifty toys based around it, Danny’s post a month ago talked about it, and there’s always the random non-english post when you get any project large enough to get a significant following.

I’d like to see more people joining it, especially people with an interest in good computer related movies, because I need some suggestions. So, join today, and add me as a friend!

Comments Emailed To You, Random

Posted in Social on March 4th, 2005 at 19:44:09

Sometimes, problems have easy solutions. The “Get your comments emailed to you” plugin was not enabled. I reenabled it in the admin interface, and all is well. So, you should be getting your comments emailed to you.

Turning on “Allow only commenters with previously approved comments” somehow let about a dozen spams get through: apparently this setting doesn’t apply to trackbacks, or something. So, for the time being, it’s going to continue being set so that I have to approve all comments.

Set up Subversion today at work: rambled about that, and how awesome it is, and how happy I am I did it, over on noets, specifically, the subversion post. Posting via IRC is easier than posting via Wordpress when I’m distracted by taking care of the chillins.

Plans for this weekend: Get new furniture in the bedroom, finish flickr posting app (specifically, figure out how to set it up so people can upload multiple photos at once), then move back to working on traffic cam stuff. If they’re open on the weekend, grab a sagonet server. Solicit customers ;)

Again, if anyone wants webhosting, where I’ll install things for them, at $10/month on a Linux box (barring unreasonable use cases, like multi terabytes of traffic a month, or more than 10 gig or so of hard drive space), feel free to talk to me and we’ll see if I can work something out that would work well for you.

“Comments Emailed To Me”, Design

Posted in Social on March 3rd, 2005 at 08:00:34

Has anyone been using the “Get comments to this post emailed to me” option? Is it still working? I upgraded some stuff about a week ago, and I haven’t been able to tell if this feature is still working: I haven’t seen a lot of proof to that effect, which makes me wonder if it isn’t.

If you can check back if you think you should have gotten a comment, and let me know…. actually, nevermind. I just tried to check out the subscription manager, and it’s borked by a missing function, so I’m betting that the whole thing is busted.

Sigh, what a pain. I really think this is a useful feature, so I will be reinstalling it, although I have no idea if I’ll be able to keep the subscriptions.

If you were expecting email replies, you should check back on the site: You probably haven’t gotten them. Sorry for the inconvenience.

Additionally, I recently modified the design of the weblog a bit: I changed the Gallery 2 Recent Image thing to be a flickr recent images feed (fetched using Magpie RSS), which I’ve been updating more recently. I’ve also modified the CSS so that the paragraphs run closer together: the default WP template practically double spaces the lines, which was bugging the heck out of me until I fixed it ;) If it’s more b0rked in any of your browsers, feel free to let me know, but I even tested it in IE at 800×600, and it looks pretty decent, so I’m happy with it.

While I’m on the topic of design… check out cutting edge CSS: it’s an absolutely amazing site demonstrating the nifty things that can be done in CSS.

Flickr Posting App Update

Posted in Flickr, Symbian Python on March 2nd, 2005 at 07:25:29

Since I’ve gotten a couple people asking about it - my application for my phone to post to flickr has a basic shell built, and works, but I’m llooking to add a few more features and make it more user friendly before I post the code for you all to use.

Featureset right now:
* Ability to store options, including default tags, username, password, and security
* Browsing through filesystem in a filebrowser and selecting a photo to upload
* Uploading a photo, and adding additional tags to the defaults

Other Features that I want to implement:
* Actually respecting the security that’s stored.
* Uploading more than one image at a time
* Less confusing interface.

So, it’s still on my todo list, and I’m going to continue to work on it, it just hasn’t gotten done yet. Mostly because I’ve been too busy reading Snow Crash.

One thing I’m not sure if people want to do is type in a title and description for the image while uploading the image. I don’t have any t9 enabled input boxes that are easy to use. So, it’s a question of whether I want to use the more difficult (and possibly confusing) Form box, or if I want to just skip it for the time being.

Actually, now that I think about it, the appuifw.Form wouldn’t be as bad of a way to go as I thought it would be… Hm. Will have to check that out.

Tech Plenary

Posted in Semantic Web on March 1st, 2005 at 20:46:28

The W3C fifth annual Tech Plenary is in Boston, Massachusetts this week, meaning there’s a large group of the people who I typically work with exclusively over IRC very nearby. Unfortunately, free time is not exactly forthcoming during the daytime, so I missed out on the Semantic Web Interest Group F2F meetings. I was able to grab a few tidbits over IRC: one of the more interesting ones is the fact that Forum Nokia is run with a lot of metadata underneath, as Patrick Stickler’s Slides demonstrate. (Powerpoint files, so a powerpoint viewer of some kind is required.)

In addition, Patrick mentioned a series of other links, which are available from the irc chump for Patrick’s slides. One of the more interesting ones to me is the Device Profile Search, which I assume works off the RDF available from URLs like, for example, the Nokia6100 Device Profile. A list of profiles of this kind from a number of manufacturers is available from the UAProf Profile Repository, a number of which have been aggregated into my Redlandbot service, and are used periodically for answering questions like “What Java Platform does the Nokia 3650 run?” (The answer, in machine readable form, is “Profile/MIDP-1.0, Configuration/CLDC-1.0, rdf:Bag”. This service subject to change at any time.)

So, seeing some demos of that from Patrick was cool. I’m still hoping to catch some of the Semantic Web people lingering in town for a F2F meetup, if nothing else than for getting my picture included in some codepiction stuff for demos. Hoping to gather some people either in the next couple evenings sometime, or on Saturday if anyone is left.

Reading Category, Snow Crash

Posted in Reading on March 1st, 2005 at 19:49:49

New category here on Technical Ramblings: Reading, for things I’m reading, plan to read, want to read, think you should read, am glad I never read, etc. For the most part, I’ll just mention books here unless they’re technical related, since this is tending to be my “technical” weblog compared to my “personal” LiveJournal.

Right now, I’m reading Snow Crash, by Neal Stephenson. Although this may surprise some of you, I’ve never read anything by the author before. I had never even heard of him until just recently. About a month ago, when MS announced that an image-rendering exploit in their code made it possible to hijack your machine by using a specially formatted buddy image on MSN, someone on /. responded with “Already been done, see Snow Crash.” At the time, I paid the commenter no mind: but later that day, I discovered that I had a copy of Snow Crash sitting on my bookshelf. I set it aside at the time, but grabbed it again later, and started reading it over the weekend.

Snow Crash is a book describing a somewhat surrealistic future, in the relatively near future: it describes kids who are only two generations down from WW2 vetrans, so it can’t be more than a dozen or two years in the future. It’s an interesting world: where governments have stopped being national things and instead become small, suburb level regions controlled by all kinds of specific franchises, from the Mob to Mr. Lee’s Greater Hong Kong. There are a million vague edges throughout the story: for example, the US Government still exists, but only in tiny pockets, and there’s no indication of what control it actually has over anything.

The book fits right into the niche of books that I just “can’t put down” - where a lot of vague areas are left in the plot, but the level of detail is incredible. The description of the creation of the Metaverse, something like a visual version of the present day Internet, goes into the creators - the ACM - and the way that it was created, the size of it, how it works, and more. Descriptions of single rooms take up multiple pages, while the development of the “real” world as a whole is left almost entirely to the reader’s imagination, with minor tips dribbled throughout.

I’m not quite done yet - I’ve been reading it for two days straight, but forgot it at work tonight - but thus far it’s been an extremely entertaining book, drawing me away from IRC and the computer in general, something that very few books succeed in doing.

Other books I’ve read recently: Jumper and The Runaway Jury. The first was a reread, the second a first time.