Feb 7 2010

StrayLight Photography

I’ve been meaning to revamp the photography section of this site for a while now; this weekend, I finally found the time to do it. I registered a new domain, straylightphotography.com, and put together a portfolio consisting of my 20 favorite shots (<shamelessPlug>many of which are currently on display at Interzone through February 28th!</shamelessPlug>). I’m hoping to quickly expand the site with themed portfolios (portraits, urban decay, etc.), but… first things first.

Also, the new portfolio has been an excuse to play with CSS3 and jQuery 1.4.  Visitors using Firefox, Safari, Chrome, or Opera should see a site that behaves like it was created with Adobe Flash, but is fully accessible and doesn’t require the proprietary Flash plug-in.  Visitors using Internet Explorer… well… it at least degrades cleanly.  Mostly.


May 19 2009

Mapping Caps Lock to Control without Admin Access

Somewhere along the line, I picked up the habit of mapping the otherwise utterly useless caps lock key to act as another control key.  If you’re an Emacs user, this is sort of critical to avoid the wrist strain of constant pinky-stretches to the lower-left corner of the keyboard.  Its become second nature now, so when I recently found myself working on a Windows-based lab computer where caps lock actually performed as-advertised, the result was a lot of code THAT lOOKED LIKE thIS.  Unpleasant, to be sure.

Linux and Mac OS X make remapping this key extremely easy.  System Preferences on the Mac and the GNOME keyboard control panel on Linux include a simple option to enable.  Tada!  No more wasted space west of ‘A’.  Windows, of course, is a different beast.

The good news: there’s a very simple registry hack to remap caps to control.  Seriously, it’s floating all over the internet.  Except, there’s a wrinkle–you need administrative access to edit the HKEY_LOCAL_MACHINE registry tree, which is what all of these hacks do.  For whatever reason, our school has decided computer science graduate students aren’t to be trusted with administrative access to their own computers [another rant for another time], so what’s a wrist-strained user to do?

Muck around in the Windows registry, of course!  It turned out to be pretty straight forward.  There’s a duplicate of the keyboard mapping registry key under HKEY_CURRENT_USER, which non-administrators can modify, and it appears to behave exactly like the key under HKEY_LOCAL_MACHINE.  So, for anyone in a similar position, here’s the registry key to modify:

HKEY_CURRENT_USER\Keyboard Layout\Scancode Map =
hex:00,00,00,00,00,00,00,00,02,00,00,00,1d,00,3a,00,00,00,00,00


You can download a registry update file here.  Save it to your computer, double-click it to update your registry, then reboot and enjoy your vastly-improved keyboard.


May 3 2009

Meet Elliot

Last week I did what you all suggested: I went to the local animal shelter and picked out an adorable kitty.  I didn’t head in looking for any particular characteristics (beyond wanting an animal past kitten-stage… everyone is willing to adopt kittens), I figured I’d play with a few and see if I got on well with any of them.  There was one particularly-needy-looking little domestic short hair, Elliot, on their website, but I didn’t really expect the site to be up-to-date.  Better to just go and look around.

A volunteer at the desk points me to a door and says, “Just go ahead.  Find one to fall in love with.”  As soon as I open the door, this raspy yowl is let loose from the cage on the lower-right.  I’ve lived with chatterbox cats before, and they’re cute, but this guy… this guy did not sound cute.  Picture what copious amount of whiskey and cigarettes could do to a cat’s voice, a feline variant of a smokey jazz pianist; that’s what this little fellow sounded like.

So I pass him by and check out the top row, where some truly beautiful kitties were lazily playing, batting at my arms or at each other.  I’m reading the names on each cage, wondering if Elliot is still there.  I’m a tad disappointed when this beautiful tuxedo-coated cat that’s been vying for my attention turns out to be not-him (a her, in fact, though I can’t recall the name now), but she’s cute and lively ,so I take her out of the cage and she doesn’t claw or bite, and I’m thinking, “Hrmm… this one could be perfect.”

Meanwhile the relentless pleas from whiskey-cat have taken on a hint of desperation: “You are not paying attention to me!” he cried.  “Not even a little bit!”  So I kneel down to take a closer look at him, and he immediately shuts up and starts nuzzling the cage door as hard as he could.  I put a hand through the bars to scratch his head, but can’t maintain for long because kitty starts rolling over himself in ecstasy (judging from the amount and quality of purring emanating from his tiny little self).  OK, so this guy seems to need a home desperately. I open his cage and he bolts straight into my lap, starts climbing over my shoulders, still purring like a V8, and I notice his name tag.  Elliot, domestic short hair, male, rescued Feb 2009, age approx 1 yr.  I gently put him back in his cage, where he once again let out that bizarre meow of his, and went to the desk to tell them I found one I want.

So!  That was just over a week ago.  Elliot’s adjusting to his new home pretty well.  He’s not nearly as vocal as when we first met, but when he does have something to say, I’ve started to find that raspy meow rather endearing.  He’s beginning to learn his boundaries (e.g., he can sit and walk on things that I also sit and walk on.  NOT COFFEE TABLES.  etc.), and he’s stunningly playful.  Seriously.  Everything is a game to him.  He even wowed the vet and her staff by showing no fear and insisting they play fetch with him.  And for all his energy, by the end of the day, he’s perfectly content to curl into a little ball beside me while I read.  Or hack.  Or play guitar.  Or sip martinis and watch old movies.  He doesn’t care.  He is perfect.

Elliot checking out the neighborhood Sleepy kitty


Apr 1 2009

Mythbusters + Countdown

My two favorite [non-fiction] shows collide!


Mar 28 2009

American Girl

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


Mar 27 2009

Request for Comment: Kitties

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]


Mar 18 2009

Beautiful Ruins

This just makes me sad: Incredible Hulks – Exploring the ruins of Detroit


Mar 17 2009

CS 519 Final Project

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

A screenshot of our prototype Transcript Viewer


Mar 17 2009

Won’t be the Same Guitar Chords

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

Mar 3 2009

Square Root Day

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!