Mar
28
2009
Finally, new tune! This one works in some harmonica (be kind, I just started learning it this week). I’ve actually been playing a *far* more upbeat version of this for the past month, but am not really feeling like I could carry that off with any conviction at the moment, so you get the tension-strung edition instead.
American Girl – MP3 download
1 comment | topics: cover tune, dhc, guitar, mp3, music, recording, tom petty | posted in Personal, music
Mar
27
2009
Seriously. What type of cat should I adopt?
[currently leaning toward either a Ragdoll or an Oriental Shorthair, but am very much open to suggestions]
[Update: Throw the Egyptian Mau onto that list as well, assuming I can actually track one down]
8 comments | topics: cats, rfc | posted in Personal
Mar
18
2009
1 comment | posted in Personal
Mar
17
2009
How do you debug a program that you can’t see? This is the problem faced by users interacting with the increasing number of applications utilizing machine-learning components to train themselves to a user’s inclinations. These programs consist of an instance of a machine-learning classifier that has been trained on data from a particular user and either resides on this user’s machine, or is designed solely for interaction with this user over a network. Common examples include email filtering software and recommendation systems, such as the one utilized by Amazon.com. The machine-learned program itself is accessed through a more traditional program, such as an e-mail application, which uses the learned program to decide how incoming messages should be categorized.
Our goal is to create a visualization of the learned program that a user may interact with, allowing the user to both understand why the program makes each of its decisions, and how the program can be corrected when it makes a faulty decision. Our audience consists of end users who neither have knowledge of formal software debugging techniques nor understand how machine-learning systems operate. These are people who use their computers for work or leisure, and are not interested in spending anything more than cursory time and effort to learn, e.g., how to improve the accuracy of their SPAM filter.
One of the most powerful machine-learning systems used today are Conditional Random Fields (CRFs). These systems excel at complex, sequential tasks such as natural language processing, and thus find themselves at the heart of many machine-learned programs. We used the logic for a CRF as the data set for our visualization. This logic includes a set of features, such as words, phrases, and other identifiable aspects of data which is being run through the learned program, as well as the set of numerical values each feature uses to determine its importance to each available category.
The data used to create the visualization is a transcript of a user study. This transcript consists of the words and actions of an end user debugging a spreadsheet in Microsoft Excel. Each sentence of the transcript is assigned to one of four categories (Seeking information, information gained, information lost, or none), which makes analysis of the transcript by researchers easier. Our visualization explains the logic the learned program might use to categorize each sentence of the transcript; future work would include allowing the user to adjust this logic when it results in poor classifications. This release is not connected to an actual classifier. The displayed explanations are randomly generated, but provide a useful idea of what a functional implementation would look like.
Transcript Viewer source code [XCode 3.1 project, requires Mac OS X 10.5 or higher]

A screenshot of our prototype Transcript Viewer
leave a comment | topics: auto-coding, code, machine-learned programs, school, visualizations | posted in Personal, academia
Mar
17
2009
Of all the Dance Hall Crashers tunes to not be transcribed, I can’t believe this is one. Was one. I worked out the album version the other day, still trying to put together a decent acoustic arrangement.
Intro:
C G Dm x2
Verse:
C G Dm
It's morning two and you haven't called me
C G Dm
It's like a thorn burning in my side
C G Dm
Open the blinds, but something is different, can't put my finger on it
C G Dm
The bright clean air makes me wanna hide
Am G F
'Cause now, oh now, this is how it ends
Am G F
Based on promises that we'll still be friends
Chorus:
C G Dm
But ba da, ba da, ba ba ba da, I know it'll never be the same
C G Dm
Ba da, ba da, ba ba ba da, now it's all been broken
C G Dm
Ba da, ba da, ba ba ba da, I know it'll never be the same
C G Dm
Ba da, ba da, ba ba ba da, you know I'd still do anything for you
Verse:
Where is the day you used to inspire me?
Where is the time I used to depend?
On the relief of your anchor I thought I'd never need
Now that it's gone, will I slip away?
So now, oh now, this is how it ends
Based on promises that we'll still be friends
Chorus:
But ba da, ba da, ba ba ba da, I know it'll never be the same
Ba da, ba da, ba ba ba da, now it's all been broken
Ba da, ba da, ba ba ba da, I know it'll never be the same
Ba da, ba da, ba ba ba da, you know I'd still do anything
Bridge:
F C
This is only a letter
F C
Jumbled words, no false pretense
F C
And it's not a true confession
G
'Cause you've cost me much more than you'll ever guess
F C
But I'm not your fallen hero
F C
Someone who came to your defense
F C
And when it's all done and over
G
I'll make it, I'll make it, I'll make it, I'll make it make sense
C G Dm x2
C G
Know it'll never be
Dm
Know it'll never be
C G
Know it'll never be
Dm
Know it'll never be
Chorus:
Ba da, ba da, ba ba ba da, I know it'll never be the same
Ba da, ba da, ba ba ba da, now it's all been broken
Ba da, ba da, ba ba ba da, I know it'll never be the same
Ba da, ba da, ba ba ba da, you know I'd throw it all away
leave a comment | topics: chords, dhc, guitar, tab, transcription | posted in Personal, music
Mar
3
2009
Rachel Maddow just used her news show to promote Square Root Day (news to me!) and Pi Day. She is the best nerdy newscaster evah!
leave a comment | topics: nerdy | posted in Personal
Mar
1
2009
Let’s start this off by admitting a dark secret: my spelling is atrocious. As an example, I initially typed that sentence as, “Let’s start this off by admiting a dark secret: my spelling is attrocious.“ Built-in spell checking serves as a constant face-saver, but repeatedly finishing a sentence, switching from keyboard to mouse, right-clicking on the freshly-underlined words, and choosing what is nearly always the top choice from the built-in dictionary gets old. The fact that the computer’s first suggestion is almost always exactly what I tried to type makes me wonder: why can’t the machine automatically correct misspellings? Spell-checkers already rank the possible solutions, so it seems logical that if the delta of the ranking values between the top two choices is sufficiently large, it would be pretty safe to automatically make the replacement. If the action was accompanied by some sort of animation or color change (like the highlighting Mac OS X’s Preview performs when searching text in PDF files), the user would be aware the change had been made and could quickly evaluate whether it was correct. If it is, no need to switch over to the mouse and lose your train of thought; you can keep merrily typing away. If the correction was wrong, the highlight should remain for a while so that the user can finish typing, then come back to fix any mistaken spelling corrections.
Combining this technique with a machine learning system to detect patterns in a particular user’s misspellings (including the actual word they wanted) you could quickly end up with a highly-accurate spellcorrecter tailored to the end user. This brings the idea into my area of research, since the result would be a machine-learned program that could hold significant time-saving value to users. I’ll have to take a closer look at this at some point soon. In the meantime, I’m just frustrated that such a system doesn’t already exist.
1 comment | topics: machine learning, machine-learned programs, spellcheck, spellcorrect | posted in Personal, Technology, academia