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.


Dec 22 2008

Pretty New Look!

Hurray, I finally finished updating this site to use a modified version of the Elegant Grunge WordPress theme.  I hacked in support for threaded comments, so now you should be able to directly respond to one another.  There are still a few visual issues, especially with image borders, but everything seems to be functional.  Please let me know if you notice any problems with the site.


Dec 11 2008

WordPress 2.7

I just upgraded this site to WordPress 2.7 and everything seems to be working smoothly so far.  I found a small bug in the comments system, where I kept getting an enqueue_comment_hotkeys_js(); is undefined error every time I tried to edit comments in the administration panel, but commenting out that line in edit-comments.php seems to have fixed everything up.  Please let me know if anything on the site isn’t working properly after the upgrade :)


Dec 10 2008

Visualizing Machine-Learned Programs – CS 550 Term Project

Screenshot

Screenshot

Background

The purpose of this project is to visually explain a machine learning classifier’s logic to an end user.  Additionally, the user must be able to explain back to the classifier when its logic is faulty and how it should be fixed.

Implementation

This project was designed in C++ using OpenGL.  I used GLUT primitives such as glutSolidCube() to create the basic components, then reshaped and arranged them using OpenGL transformations.  In order to create the translucent regions, I needed to enable lighting and shading.  Blending was then used to create the illusion that each word’s bar is inside one or more of the translucent boxes.  The text was created using glutStrokeCharater() calls; regular bitmap fonts were not an option because I wanted to rotate the text beneath the word boxes.  The resulting words suffered from severe aliasing problems, so I used the OpenGL accumulation buffer to enable 8x anti-aliasing.

Usage

While this project is not actually hooked up to a classifier, the word importance can still be manipulated by dragging the bars up or down into the desired regions.  There are also controls in a secondary window for rotating the view or panning right and left.

Room for Improvement

Ideally, this explanation would be interacting with a classifier; changes made to word importance would then be instantly viewable in the application when it re-classifies based upon the user’s adjustments.  I would also have liked to make it possible to zoom in and out so that the user can fit exactly as many words on-screen as she would like.  Finally, the blending of the word boxes with the translucent boxes isn’t entirely right–the word boxes should slightly change color depending on which region they are.

Downloads

Source code (for Visual Studio 2008)

Windows Binary (Requires OpenGL, GLUT and GLUI libraries)


Dec 4 2008

CS 550 Term Project

Yay!  Thanks to some help from Will, I’ve finally finished my 550 term project, a whole 18 hours before the due date!  Since this was a graphics course, it isn’t actually hooked up to a naive bayes classifier backend (unlike the 2D version we did over the summer).  It is, however, infinitely more enjoyable to use than the previous prototype, mostly because you can rotate the view around and zoom down the list of words. :)

3D naive bayes classifier visualization

3D naive bayes classifier visualization


Dec 1 2008

Less Frustration

After another day of coaxing OpenGL to play nice, I’ve managed to make some progress on my final project.  The goal is to create a 3D version of the 2D visualization my research group designed for the logic underlying a Bayesian classifier.  So far I’ve got it displaying blocks representing the importance of each word to the classifier (only using three words at the moment, but I’d like to scale it up so that you can just zoom down a list of hundreds), and translucent regions denoting whether a word is required, forbidden, or unimportant to the classifier’s decision.  The blending isn’t quite right for that last part, but good enough to move on.  Now I need to make it interactive, so that the user can adjust the importance of each word.

Also, Ted and Judy dropped off an electric oil heater when they passed through town today.  My apartment’s furnace does a great job of heating the family room, but that’s about it.  Now maybe my bedroom won’t be freezing each morning!  Sadly they were just passing through while I was on campus; I want to take them out to dinner sometime before heading back to Detroit for the holidays.


Nov 30 2008

Frustration

I’ve been working on the final project for my OpenGL course since 9am today, and I have absolutely nothing new to show for it*.  Argh!

In happier news, on Friday night a burlesque troupe passed through Corvallis. Tim and I went out and caught the show, which was surprisingly good.  Maybe not in the same league as the Apocalypse in Coney Island show Twinkle and I saw at Bumbershoot (nowhere near the same theatrics), but better than anticipated.  Then I spent yesterday catching up with an old friend from Detroit who recently moved to Portland.  We went out to a bar near his place, then headed over to Rontom’s for Simone’s farewell party.  I’d brought my camera all the way for Corvallis, then forgot it in the trunk of my car when we left his apartment, so one photo from my phone is all I have from the night:

Phil and his roommate Dom

Phil (right) and his roommate Dom

[*: Except for a decreased tolerance for OpenGL in general, and increased respect for the people who use it well.]


Nov 23 2008

New Photo Albums

Today I finished working out the kinks in my new photo album workflow.  The result: all of my photo sets since I moved to Corvallis are now available on the site’s Photography section.  I’m keeping the Flickr site for my best photography, but I’ve had all of these images sitting in Lightroom that I suspect friends would love copies of, so now they’re available.

For the curious, I do all of my photo editing in Adobe Lightroom (and occasionally Photoshop).  Using a heavily-modified version of the TTG Shadowbox Gallery Template, I export each album and upload the static HTML and image files to my server.  Nothing terribly exciting there, but now it gets interesting.  I wanted to have an index page that automatically shows all of my galleries, displaying the most recent first.  TTG supplies an XML AutoIndex module that does nearly everything I want, so I integrated that as my index page and hacked the PHP scripts to include better date and description information.  Finally, I wanted to provide an RSS feed of my photo albums, so people won’t need to constantly visit my website if they’re looking for new photos.  A quick modification to the XML AutoIndex script did the trick, so now you can subscribe to an Atom feed of my photo albums!

Everything seems to be working fine for my on Firefox and Safari.  If anyone notices problems with the photo albums or feed, please let me know.