Articles
Backwards is Forwards, my GDC lecture
Noel Llopis and I did a lecture at the Game Developer Conference this year about test driven development. It’s a process we’re using at High Moon and I use at home for all my coding. Gamasutra wrote an article about it, but they’re the ones throwing the conference so it’s not unexpected.
I didn’t realize how much work it takes to put together an hour lecture. In general is was pretty stressful, but worth doing.
Articles
Quartz Composer Screen Saver
I’ve just discovered the Quartz Composer. It’s a graphical tool for rendering things. You can use it to build all sorts of cool stuff. My first project was to build a 3D clock - seriously boring. So I’ve uploaded a screen saver I just finished. I tried to do an optimization pass on it, but it still grinds both my dual G5 and MacBook to a measly 20fps. Regardless, it manages to look good.
Articles
My Aperture Folder Structure
I’ve tried a couple Aperture folder hierarchies and this is the one that seems to work the best for me.
Initially I imported my entire image collection into one library with subfolders for the date. I quickly realized that I was going to hit the 10,000 image-per-project limit. I’ve now decided on a different organization that has worked really well. The basic idea is major category folders at the top, year folders under that and all projects below that.
Articles
The Aperture Database Structure
I’m working on decoding the Aperture database structure. Just playing around in the database has been very interesting.
Update: this was written with Aperture 1.0 in mind. This is probably completely inaccurate now
These tables are incomplete. However, they do contain the columns that I used in my test queries.
Update: I just found a cool tool called SQLite Database Browser that makes it much easier to look around the db than using the command line sqlite3 tool.
Articles
Aperture Performance
Apple’s new Aperture program is awesome. It’s easily the best image cataloging program available, and it’s in version 1. However, the performance leaves quite a bit to be desired. Here are the things I’ve discovered.
I used a combination of the fs_usage tool and the Thread Viewer tool to profile Aperture. Both excellent tools are included in the Developer package. I wanted to find out why it always takes 10 seconds for the search filter dialog to open up, causing the application to become unresponsive the entire time.
Articles
Darkwatch has shipped!
After more than two years of work it’s finally out the door. I worked as a senior programmer on this one. Please buy one.
Articles
Unit Testing Perl
While working on a small script at work today it occurred to me that had I been writing it in C++ I would have already had quite a few tests for the logic I had written. In a fit of madness I wrote a small test function in Perl and called it from the start of the script. After working on a couple more tests to verify some subroutines that I wasn’t sure were working properly I realized that I had more test code than script code!
Articles
Avoiding File I/O In Unit Tests
Noel’s article Test-Driven Game Development mentions that unit test suites should run quickly. That usually means as little file I/O as possible. However, sometimes you’re dealing with middleware or legacy code that requires deserialization to construct objects. What do you do?
The Problem Let’s say you have a class that can only be constructed with a stream, something like:
class Mesh { public: Mesh(InStream& stream); }; You would like to construct a Mesh in a test so you can check some functionality.
Articles
Better Photo Handling In MovableType
After getting sick at the XBox developer conference (and dosing up on plenty of dextromethorphan) I decided to move my website content over to MovableType. I had been using a home-brew system but it was nowhere near as feature rich as the MT system. However, I’m really happy with my old photo gallery system and wanted to be able to show photos from the gallery in my MT entries.
It only took me about three hours to adapt my image embedding tags into a MT text formatting plugin.
Articles
G11 Bearing Upgrade
This is a tutorial on replacing the bearings on the Losmandy G11 telescope mount. This may or may not improve the tracking ability. It’s kind of fun to do anyway.
The Losmandy G11 mount is a great piece of hardware. However, the included bearings seem to fall short when compared to the rest of the mount. Unfortunately these bearings can play a large role in the tracking accuracy of the mount.