C++: Ray Tracer
Status: So far I've implemented spherical, planar, and cylindrical surfaces with color and reflectivity.
Description:
Got the bare bones of a ray tracer via working through the cs11
advanced c++
course.
What's next?: First I gotta get some nice documentation and allow for textual scene descriptions. Then I'll provide all the code and docs. After that, other surfaces... texture mapping, maybe some constructive solid geometry, or photon-mapping. We'll see.
C++: Metacity Application Tabbing
Status: Just getting started.
Description:
Metacity is the default window manager
used by Gnome. I run gnome on my linux box and was
looking for an open-source
project to contribute to, so I thought I'd try to implement a feature I personally desire,
application-level tabbing.
In Mac OS X, Alt-TAB cycles through the applications you have open, and then alt-` cycles through the open windows within the focused application. I find this to be a useful separation. As it stands right now, Metacity has Alt-F6 'group-tabbing' that basically cycles through windows grouped by their xgroup_leader property. This fails quite notably on xterm (some info here.), but works well with firefox and many other applications. I'm looking into providing a full windowing basis by adding application-level tabbing also.
Gconf exposes an option to have metacity be "application-based", but this has not been implemented. My personal progress so far, as seen in the patch, is simply allowing tabbing between the leaders of the application groups. This is not the full functionality because it should tab between the most recently-focused member of each application group. Also it's just a hack at this point since I haven't gotten to exposing the keybinding to gconf and thus I had to override the normal window Alt-TABing to actually make it work.
The Patch:
metacity_app_tabbing_arsheive.patch.gz.
It's just one, short file. I gzipped it in lieu of trying to get my webhost to let me serve files with
arbitrary extensions.
Perl: The Divisolator
Status: Older than any physical object I currently own.
Description:
While teaching myself Perl a long, long time ago, I quickly became board with
Learning Perl's
examples and wondered how hard it would be to output the work/answer for an arbitrary long division
problem without using the built-in division function. Thus The Divisolator was born.
Changes in the Perl interpreter since the days of yore broke the program, so I had to change a few things just to get it to run. There used to be error-handling for non-numbers (and division by 0 I think), but not anymore, so be nice. Also, the output used to line-up nicely, but no longer.
Maybe I'll get around to restoring it sometime...
Link to form: divform.html
Perl/AMPL: Gillooly
Status: In Progress
Description:
This is a sports handicapping (hence the name) project I'm working on. Phase I
was applied to the 2007 Men's NCAA Basketball Tournament. In the end, I lost a small amount of money
in Vegas based on it's predictions, but the loss was well within confidence intervals. Basically
this year's tourney was a little too boring to make any huge money.
Gillooly is a web app with a Perl back-end used to store/retrieve data, simulate the tournament, and output AMPL code. AMPL is then used to optimize a portfolio of the possible bets based on the simulation data. I'd post the source, but it'd be in my best interest to make the app tell others to bet incorrectly, so why would you want it?
I'm currently spending some free time on Phase II of Gillooly, which is designed for handicapping horse races, and is being built in RoR.