As everyone can imagine, I do have a handful of interests. This page seeks to highlight a few of them, and perhaps even point people off to various resources that would interest others who are interested in similar stuff.
Theoretical Computer Science
Theoretical Computer Science interests me, which is why I am doing graduate work in it. I took and passed the Phase II's (aka qualifiers) on May 21, 2004. My advisor David Eppstein is doing his best to keep me focused on research activities, but goodness are there many things to work on.
Literally too many to enumerate, but here are a couple that may be interesting to others:
* Set data structures and algorithms, both ordered and unordered (worked from mid April 2004 to late May 2004 with preliminary research for a survey paper, but was redirected to the precursor to "The Weighted Maximum-Mean Subtree and Other Bicriterion Subtree Problems").
* Adaptive Lossless Data Compression, I have done some minor work in the Winter of 2003 (research indicated that compression better than bzip2 is possible with the algorithm I developed, though is very slow, more research would likely result in a faster algorithm with comparable compression).
I'm also interested in programming (for fun and profit) with the Python programming language. For most everything that I've done since the spring of 2000, Python has been the way I've made it happen. Right now I have two projects that have been released to the masses:
* PASP: Python Anti-Spam Proxy, a bayesian-like spam filter, similar in functionality to SpamBayes and Popfile. PASP is a little short on features and rough around the edges, but it is what I use, and of the 100+ spams I get per day, only around 1-2 get through it. 1082 downloads between October 2002 and April 2004.
* PyPE: Python Programmer's Editor, a multi-tabbed editor with syntax highlighting for a few languages. Just the right amount of editor for me. 9072 downloads between July 2003 and April 2004.
And one commercial product which is backed by (as of September, 2005) around 30k lines of Python.
I've also written a PEP that was rejected quite spectacularly. My three favorite links on the whole deal are here: 1 2 3, though in my defense, I did not whine when it was rejected, I could tell it was coming. In any case, the PEP was the culmination of my desire to give symbolic maximum and minimum values to Python.
I have a handful of recipes in the online ASPN Python Cookbook, and was given a free copy of the 2nd edition of O'Reilly's publishing of the Python Cookbook, which I read through in three days. Strangely enough, I was credited as part of the discussion in the Fifo queue implementation. After the Fifo queue portion, they offered a way to change the Fifo implementation into an LRU with O(n) overhead per update. They didn't bother to include my O(1) LRU implementation, which has been around since the at the latest summer of 2002 (I discussed it with some professors the fall of 2002, because I hadn't seen it previously available), posted on the internet since December of 2003 in PyPE, and used by me in the spring of 2004 in an OS memory paging simulation on top of "Simplesim 3.0" for a processor architecture design course. Se-la-vi. There was a partial asynchronous translation of the SimpleHTTPServer in Python over in the cookbook, which I made completely asynchronous (except for block reads from the disk while serving files of unlimited size) and added some command line options so it could be a simple web server for most people.
My senior capstone project for my undergraduate degree was written in Python.
I've been paid a reasonable amount of money to develop software in Python and wxPython for a company by the name of Next Gen Aeronautics, though they lack a web presence as of this writing (April 27, 2004).
I've also previously worked for Affini (run by William Chang, former chief architect of Infoseek), May 2004-2007.
Currently I work at Networks In Motion as a backend server developer, working with their routing engine and related systems.
When I get the time, I read and post to the comp.lang.python newsgroup, aka the python-list mailing list, hopefully to help people. I'm used to lurk on the python-dev mailing list, occasionally posting when someone says something particularly deserving of a response.
In my spare time, I sometimes write utilities and scripts for personal use. From socket servers and clients, to various GUI utilities (in wxPython of course), I have written well over 300 programs that are as-of-yet unreleased, though a surprising number of them end up giving me the functionality of various *nix shell utilities that I am missing in Windows, that I don't know the name of. Yes, I do know about cygwin. More recently I've been spending more and more time with friends trying to relax.
Some day I hope to release a MUD written in Python to the masses. I'm up to version 4 or 5 on one I started the summer of 2002. I usually get a bit farther every summer, because that's when I usually have time, but if tthe last couple summers are any indication; it will never be done.
This is a bit confusing, but I'm really not interested in politics. If things were going right, no one should be interested in politics, and no one should have to pay attention to politics at all. Unfortunately, the world is, as I see it, messed up. I'm tired of pointing fingers at people who have caused the problems, and I would like for things to get better. The only way for me to make a difference is to pay attention to what is going on, and point out the stupid shit that happens every day.
The first step towards the world getting better is that people need to start telling the truth. No more lies. I'm tired of hearing X, thinking that it sounded fishy, then discovering 6-12 months later that X was a lie crafted to misdirect people away from fact Y, and the course of action caused by X being called the truth, resulting in an outcome that is only good for the people who told X and their financial supporters.
You want to know my political affiliation? I'm all for politicians who tell the truth. No spin, no tactics, no bullshit, just truth. When politicians lie believably, then we can't make educated decisions about what we want, and they get what they want (which for liars in politics usually means their friends get money that they don't deserve). Tell the truth. If you have to lie to get people to agree with you about subect Z, or the course of action to deal with Z, then your position obviously isn't holding water. It's OK to be wrong, admit it, people will think the better of you for it.
During my undergrad career, I occasionally was in attendance of a game of D&D or several. Fun was had by all. I sometimes still do on occasion, but nothing regular as of late.
I used to play quite a few console and computer games. From Civilization 3 to Half-Life (original, Opposing Force, Blue Shift, 2, Episode 1, ...) to Worms to Fallout on the PC side of things, to Metroid Prime, Katamari Damaci, FFX, Amplitude, Worms 3D, Breath of Fire III, Castlevania: Symphony of the Night, Metroid: Fusion, Mario and Luigi: Superstar Saga, etc., on the console side of things.
I don't get much time to play video games anymore, though I occasionally play a quick game of Civ 3.
I do have other interests, and when I have a chance or an idea of what to say about them, I'll post it here.