About

I'm a 44 year old computer programmer in Austin Texas. For a few years now I've been working as a C++/Linux developer for a small company in downtown Austin.

Any opinions expressed here are strictly my own.

I went to high school in Chevy Chase Maryland. I studied physics for my undergraduate at FIT and my masters at Georgia Tech. Later I ended up in Austin where I am now.

Using IPv6 On A Home Network

Overview

These are my notes on setting on IPv6 on my home network. It's not complete and it's not a tutorial, but I thought I'd post it in case it's helpful.

Installing Linux on the MacBook Pro

In Progress - Check back later.

Recently I installed Linux on a MacBook Pro that my employer was kinda enough to provide me. Since I found the experience surprisingly challenging I thought I'd document what I did. Hopefully it will be helpful. The instructions here will be biased toward a recent MacBook Pro (Intel i7 16 GB RAM with OS X 10.8) and a recent version of Linux (Fedora 17 64 bit) since that's what I did.

Preparation

Minimizing Latency With pacat And Tvtime

Update: Since writing this I've decided that a slightly different approach might be better, but what I've described here is probably good enough. I think that when in play mode pacat should fully read stdin every read regardless of what is requested by pulseaudio. It should then buffer just enough so that it's reasonably confident that the current and future requests from pulseaudio can be satisfied. I'll look into "module-loopback" and see if such an approach makes sense for it.

NetworkManager Slow Wi-Fi Connect

Recently I've been annoyed by how slowly (30 seconds or so) my laptop connected to Wi-Fi. Although my laptop runs Fedora 15 with a Broadcom chipset it's possible that what I've found will benefit other configurations.

In terms of communication between NetworkManager and wpa_supplicant the process begins with NetworkManager calling the "Scan" method on wpa_supplicant. wpa_supplicant sends various "PropertiesChanged" signals that may type "Scanning" or "BSSs" as determined by the keys of that signal. Ultimately NetworkManager is waiting for a suitable "BSSs".

Miscellaneous OpenGL Utilities

I thought I'd publish some small OpenGL utitilies that I've written. Included in GLMisc is a utility called "sdl-events" that displays all SDL events. Another utility call "shapes" exercises various OpenGL APIs. Finally there is an odd program called "ellipses" that demonstrates that the perspective projection of a circle is an ellipse. You can download it here.

Making Nexuiz Bots Aim Perfectly

Two years ago I became curious what it would be like if bots in Nexuiz, my favorite FPS video game, were able to aim perfectly when armed with a "nex" (an instant hit weapon that is like a rail-gun or a rifle). Although this at first sounds like a masochistic experiment for the human player there are cases where it makes human/bot play more fun. Making bots aim perfectly is an odd but effective way of compensating for shortcomings in the bot's AI for some of the more complexed modes (CTF, etc.).

Tethering Android Phones

Overview

Although I've had an Android based phone for a while (the ADP1, the developer version of the T-Mobile G1) since I recently purchased what is now a Linux based laptop (Fedora 11 x86_64, to be exact) I'm now interested in tethering (network connectivity via the phone's USB data cable). Jump to the download section to download my scripts without reading this long blog post.

MIDI Experiment

Recently I became curious about MDI files. In order to better understand MIDI files I found that TiMidity++ is helpful for playing and converting MIDI files. This site describes the layout of MIDI files.

I also came across an interesting utility called midicomp that converts MDI files to and from human readable text files.

Compiling Java Expressions In Java

In my previous blog post I mentioned that with JCols I explored evaluating user specified JavaScript expressions in Java with Rhino. In order to make JCols as fast as possible I recently experimented with evaluating user specified Java expressions that are compiled using Java 6's JavaCompiler (that's just the name of the interface, but that's what I'll refer to it as). I've concluded the following about the JavaCompiler:

Syndicate content