My Projects

This is a list of projects I've worked on for work and for fun. They range from simple stuff like my settings for Emacs and Bash to more complex stuff like 3D graphics.

Movie Trailer Bingo

Sometimes it's not the biggest, fanciest things that are the best. I'm proud of this because I was able to take an idea I had and make it real. I wanted to make the experience of watching trailers before a movie less painful, so I decided I wanted to be able to play bingo with all the clichés. It's just a single-page Rails app with mostly frontend logic, but it was a blast to build.

This Website

Here it is! I wrote it in Sinatra because I've worked a lot in Rails already in my career. I've discovered that uneeded complexity kills projects and ruins morale. Sinatra has only what's essential to making a website and it's all I need. All my code is on github, so feel free to take a look and borrow anything you like.

My Dotfiles

This is actually a collection of files that includes my .emacs file and .emacs.d folder, .bashrc, .gitconfig and .gitignore, and shell scripts for setting up a new computer with my software and settings. I'm constantly tweaking these files as needed, and I don't I'll ever really be finished with them, like I would be with other projects, but it's code that I wrote that I can't live without.

Terrain Renderer

I worked on this during my intership in my last year of college, after completing the weather simulation project. My boss basically handed me a SIGGRAPH paper and told me to implement it. He also said this project would be my baby, that I could do anything I wanted -- as long as it was in C, because it had to be fast.

I was incredibly excited. I took the paper home, started reading through it, and promptly fell asleep. Have you ever read a technical paper? It sucks! And this one even had lots of colorful pictures. So, being the mature, level-headed guy I was in college, I promptly began to panic. I went to talk to my boss about the project, and I learned another important lesson that day. The journey of a thousand miles begins with a single step. Of course, I had heard that before, and I even it understood intellectually, but I had to _actually_ have the thousand mile journey before me to really take it to heart. I think that's the kind of stuff you're supposed to learn in college.

So, I took it one step at a time, and eventually produced something pretty awesome. I didn't get anywhere close to finishing all the texturing, smoothing, and detailing describing in the paper. But it renders terrain really fast, I wrote every line of code, and I'm proud as hell of it.

Weather Simulation

This was the first piece of code I ever got paid to write, so it's kind of sentimental to me. It really taught me a lot of important lessons about software development that you just can't learn in a classroom. You can view the source code if you like, but it's not really that impressive. I wrote this before I really understood how to lay out code between functions and files. I didn't even understand not to mix tabs and spaces (I'll go back and fix that someday. edit: FIXED!). A video of this project was shown at the climate change forum at UCLA, on August 21st, 2009.