Cixar

XML/RSS

Categories:

/ (124)
  art/ (4)
    tale/ (1)
  bookmark/ (2)
  langlubber/ (4)
  movies/ (2)
  music/ (1)
    garageband/ (2)
  philosophy/ (1)
  photo/ (1)
  politics/ (1)
  program/ (31)
    cli/ (1)
    javascript/ (13)
      chiron/ (5)
    python/ (6)
    swil/ (2)
    tale/ (22)
  reading/ (4)
  tale/ (25)
  writing/ (2)

Archives:

2008-Dec
2008-Nov
2008-Oct
2008-Sep
2008-Aug
2008-May
2008-Apr
2008-Mar
2008-Feb
2008-Jan
2007-Jun
2007-May
2007-Apr
2007-Mar
2007-Feb
2007-Jan
2006-Oct
2006-Sep
2006-Aug
2006-Jun
2006-May
2006-Apr
2006-Mar
2006-Feb
2006-Jan
2005-Dec
2005-Nov
2005-Oct
2005-Sep
2005-Aug
2005-Jul
2005-Jun
2005-May
2005-Apr
2005-Mar


The Sourcerer

by Kris Kowal.

The Sourcerer has moved! Please visit askawizard.blogspot.com.

Sat, 08 Nov 2008

Blogosphere

When I moved my blog over to askawizard.blogspot.com, the quickest and easiest way to give my page a unique look was to make my own banner graphic. I decided to make a depiction of the "blogosphere" as I envisioned it based on the mimetically virulent xkcd 239. Randal Munroe stakes claim to a literal interpretation of the popular term "blogosphere": a layer of the atmosphere where free speech enthusiasts convene aboard various flying platforms and hawk their ideas in a sort of aerial or ethereal bazaar.

According to xkcd, Cory Doctorow from the EFF is the only blogger who actually wears a cape and goggles. I caught a certain implication that he's the only person crazy enough to dress up when they passionately jotcast. This is not true. I put on my robe and wizard hat. Don't take that the wrong way.

So, I drew a depiction of the blogosphere. Over the last few weeks, I've taken some time to characterize more of my web neighborhood.

  • Ryan and I are in the foreground in the guises we took for our web comic, Punnished.
  • Cory Doctorow occupies his ironclad balloon on the opposite side of the scene. (?:T)?ron Paul lurks behind in his blimp.
  • Like the wizards and witches of Harry Potter, in this metaphysical representation of the web, microblogging is facilitated by sending flocks of Twitter bird messengers from balloon to balloon. I called out Josh Lewis, a prolific blogger in my network, by putting him and his family in a balloon the same initial color as his old blog, emanating a halo of tweety birds.
  • Ars Technica is heralded as one of the largest "blogs" on the Internet. My long-time MUD project partner and friend, Ryan Paul edits the Ars Open Ended journal. While the blogosphere is not quite high enough to qualify as "orbital" in the sense of Ars's purported "Orbital HQ", I decided to put Ryan in a nearby balloon emblazoned with a likeness of the Ars logo. Ryan is wearing a cloak of Roman imperial purple.
  • One of the earliest bloggers, Peter-Paul Koch flies in the dark-blue Quirksmode balloon, from which he provides a steady hail of browser compatibility tables.
  • Zeppelin enthusiast, Simon Willson, flies a Django themed zeppelin. He is trailed by the mimetically unstoppable Django Pony.
  • A man I believe saved JavaScript from horrible doom, Doug Crockford occupies a balloon in his blog's colors.
  • As a nod to all the fabulous people who participated in #wotw2, a Martian Unpowered Inter-planetary Attack Cannister falls through the scene on the left.

I've posted an annotated version of the current banner as a larger image, including a version in the original Scalable Vector Graphics format, wherein the annotations are a hidden layer.

I plan to add to the scene every once in a while.

this entry was posted on Sat, 08 Nov 2008 at 21:56 in

My iTunes Playlist

I have almost 9,000 songs, comprising a month of continuous play and 60GB of storage. I've actually listened to maybe half and rated about 20% of the library. Random shuffle doesn't work for me anymore.

When I was in college, I noticed that trying to do homework with lyrical music hindered my productivity, presumably because it engaged my otherwise occupied language brain-matter. I'm also a musician, so I've definitely collected a trove of anecdotal evidence supporting the assertion that exposure and repetition to particular pieces (and broadly but with weaker correlation, certain genres) expands appreciation. Also, overexposure diminishes the effect, presumably because the amygdala begins tuning out the pattern. Randomly traversing my library usually leads to irritation. Also, I thirst for new, rare, serendipitous musical experiences at the expense of occasionally hearing a piece I'm not ready for.

So, on account of what I presume to be common psychological phenomena, my ideal musical experience would consist of:

  • mostly music I know and like
  • some music I don't know occasionally
  • no music that I definitely don't like
  • some constant minimum interval between playback of a given piece.
  • intervals between hearing a given song inversely proportional to how well I like the piece
  • over time, my playlist should improve as I provide feedback to the system

A few months ago, I found a way to accomplish this with iTunes smart playlists. I construct "pools" of songs. Each pool contains only songs that have a particular rating and haven't been played recently. If there are lot of songs with a particular rating, I generally require a longer interval between plays. So, I created a pool for each rating, and maximum number of songs in each pool to tune the probability of a a song being chosen from each category. Then, I created a master smart playlist that incorporates all of the rating pools.

Playlists

5 stars

I have 76 tunes in this category. Almost all of them can make it to the master playlist. Since they play frequently, the dominant factor is when they were last played. The number of songs that haven't been played or skipped in the last 5 days hovers around 20. As a special factor for these, I broke the songs that are longer than 10 minutes into their own category so that only two of them contribute to the master mix at any time. I like Mahler's second symphony a WHOLE LOT, but a half an hour is a long commitment and I prefer to save it for maybe once every other week. I also have about ten different versions of Beethoven's Symphony 7 movement 2, so I might have to make a new category for it so only one of them comes up at a time.

5 Star Mix Predicates

4 stars

200 tunes total. 200 tune limit. 20 days between playing. Defer 10 days if skipped. Stable around 20 tunes contributed to the master playlist, so minimum interval is the dominant factor.

3 stars

800 tunes total. 100 tune limit, sampled from least recently played. Defer 1 week if skipped. Stable at 100 tunes contributed to the master playlist, so the maximum sample size is the dominant factor.

3 Star Mix Predicates

2 stars

800 tunes total. 20 tune limit, sampled randomly. Defer 4 months when played or skipped. stable at 20 contributed to the master playlist, so the maximum sample size is the dominant factor.

1 star

I reserve this rating for songs I don't want to hear in a random shuffle, but don't want to delete either. This includes Christmas tunes, apart from the soundtrack to The Nightmare Before Christmas. There are about 400 of these. I should probably use this rating for songs I would like to very rarely hear and use the checkbox to exorcise a song from my random shuffle.

0 stars

These are songs I've not rated. 6500 tunes. 30 tune limit, sampled randomly. Playing or skipping defers the next chance to play for six months. There are 30 tunes in this playlist, so the dominant factor is the max tune limit.

Mix

Then I create a my main mix playlist from these rating pool lists. The trick is to create an "any" predicate and include all of the smaller playlists with playlist predicate rules.

Master Mix Predicates


So, believe it or not, this minimizes my need to fiddle with iTunes and keeps me focused on work. If you've got a ridiculous music library too, I highly recommend this technique.

Also, if you work on iTunes, I highly recommend providing a smart playlist abstraction with equalizer knobs for each rating to automate similar processes; not everyone's a programmer and I bet this problem is just beginning to surface for most folks. It would be nice to see how probable a particular song is to be played based on the size of its pool, the effective sample size of its pool, and the total of all sample sizes. I also want to be able to sort and filter and bulk set "checked" and "unchecked".

this entry was posted on Sat, 08 Nov 2008 at 13:56 in program