Wednesday, December 21, 2005


Long before Wikipedia existed, there was the Portland Pattern Repository's Wiki, aka. the birthplace of the "wiki", aka. "C2". It's content is still quite relevant, and when it comes to information on software development, it can't be beat.

I've visited the C2 wiki before, but recently went back after reading through some Wikipedia articles on software development. Here were some of my favorite finds:

  • Systems As Living Things
  • People Projects And Patterns, a good starting point for browsing.
  • Anti Patterns Catalog, which lists a variety of ways that software development projects can go wrong.
  • Truck Number and Truck Number Fixed. What if someone on a development project gets hit by a truck? What if it were more than one person?
  • WikiPedia: A C2 look at it's younger and bigger brother.
  • Beer O'clock
  • Random Pages, which according to the page, is an autogenerated list of random wiki links. Reloading the page didn't seem to give a different set of links, nor was trying to load the page in a different browser (IE instead of Firefox.) Perhaps it's on a timer, I don't know. Regardless, the set of links I was presented with had some interesting content.

Sunday, November 27, 2005

Carpal Tunnel

Lately, the carpal tunnel in my right arm has been flaring up. My initial response was to ignore it, which wasn't the greatest option. My new response has been to research it. In this process, I found a cool freeware program called Workrave. It's a little applet that sits in my Windows taskbar and tells me to do things like, "take a microbreak", or "take a long break", which to my understanding, can help reduce Carpal Tunnel Syndrome by quite a bit in the long run. The constant stream of breaks will take a bit of getting used to, given that I usually hate being interrupted when I'm coding and "in the zone", but I don't expect any problems with that.

Now I just need a program that says, "make yourself a sandwich and eat damnit", every now and then, optionally with a "pretzels are not a meal" dialog box.

Thursday, November 10, 2005

A Simple Fix

Turns out the problem I had with setting a window procedure before calling IDirectDraw7::SetDisplayMode had to do with the way the window procedure itself was formed. Originally, I had it set up like this:

LRESULT Application::WindowProc(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam)

Once I inserted "CALLBACK" in between "LRESULT" and "Application", everything worked fine. This is how it looks now:

LRESULT CALLBACK Application::WindowProc(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam)

The surprising part was that the malformed window proc would work under Win98, however something about the call to IDirectDraw7::SetDisplayMode made it fail.

Wednesday, November 09, 2005

Die, Win98, Die

Win98... has to die. Really. I realize there are people out there who like it, and still use it as a gaming platform. You guys suck. Writing good Windows API code is enough of a pain, writing good Windows 98 code is worse. Case in point: IDirectDraw7::SetDisplayMode seems to like to crash on Win98 if a custom window procedure is set. If the default window procedure (DefWindowProc) is set, it works fine, but try to set a custom wndproc and it dies, under Win98 at least. Doesn't matter if that wndproc does nothing but call DefWindowProc.

Now then, I'm sure there's a perfectly reasonable explanation for why this happens, except I'm lazy, and like things to Just Work(tm). The more time I spend with Win98, the more happy I am to see its userbase shrink. For the casual games market, however, it's probably years away from being dead enough to ignore.

Anyways, if you like video game music, check out Radio GOSU, a good internet radio station which only plays video game music, mostly classic stuff too.

Wednesday, August 24, 2005

The Coolest Forum Avatar I've Ever Seen


DOSBox rules. In particular, it's been letting me play Scorched Earth on my WinXP and Linux boxes. DOSBox's video operations can be a bit slow, which becomes fairly evident after a large explosion goes off, but the game's very much playable. Setup is a snap too. It takes a minor amount of DOS knowledge to work one's way around, but very little at that.

DOSBox is able to run Second Reality as well, a demo that continues to amaze me, especially considering that it ran at full framerate on a low end 486.

Monday, August 15, 2005

Multi Theft Auto

GTA San Andreas rules. Multiplayer GTA-SA would be even better. That's exactly what the people at Multi Theft Auto are working on. It hasn't been released yet, however they did recently start a blog to chronicle their development efforts.

The cool part about the upcoming MTA is that it'll be easily moddable by third parties. A nice CTF mod would be nice... real nice.

Thursday, August 11, 2005

Book Report

Books I Read On My Summer Vacation
by David Ludwig
Homeroom Teacher: Hell if I remember

My two week vacation is coming to an end. I've been very good, and have prevented myself from doing any sort of coding, whether it be for work or on-the-side. In it's place, I read a few books. Not too too many, but a heck of a lot more than I usually do. (My usual reading list consists of magazine articles and technical documentation.) Anyhoo, here's what I've read:

* The Lost World, by Michael Crichton. A good read. Not as good as its prequel, Jurrasic Park, but still very good.

* Revolution in the Valley, by Andy Hertzfeld and others. This book chronicled the development of the original Macintosh computer, and was compiled and written by members of its development team. I've read a lot of books about Apple Computer and this one tops them all.

* iCon, The Second Greatest Act In The History Of Business. This was an unauthorized biography of Apple co-founder Steve Jobs. What made this book particularly alluring was the response Jobs had to it's release, which was to pull all of the publisher's books from Apple's stores, which included all of the "For Dummies" series. Not surprising, considering the sub-stellar portrait it displayed of him in the earlier portions of his life, and the seeming fact that Steve Jobs is nuts. The book itself was alright, although I kept getting the feeling that it was rushed to the publisher, and could've used another draft. I can't explain that any further.

* (In Progress) Conspiracy Of Fools, but Kurt Eichenwald. This book, recommended to me by my bos as well as my dad, chronicles the Enron bankruptcy. It's a bit heavy on the finance-speak, but is otherwise alright.

In a few days, when my vacation ends, I think I'm going to try to keep up with the reading. It's been a long time since I read on a recreational basis (tech manuals do NOT count) and I had almost forgotten how relaxing they could be. I do think that more fiction will be in order, however.

Tuesday, July 19, 2005


I found the following while doing some work with SDL:

if (sizes == (SDL_Rect **)NEGATIVE_ONE) {

The variable 'sizes' was indeed -1, so the truth statement passed. What got me was that someone actually took the time to define -1 as NEGATIVE_ONE. I mean, if that can go through, why not NEGATIVE_TWO, NEGATIVE_THREE, or POSITIVE_FOUR_HUNDRED_AND_SEVEN? A little further investigation revealed the following set of defines:

#ifdef macintosh /* MPW optimization bug? */
#define NEGATIVE_ONE -1

My conclusion, part 1: Perhaps I ought to moan less about the quality of my very modern compiler that understands -1.

My conclusion, part 2: Computers are funny. Not funny ha ha, but funny "hmmm".

Friday, June 10, 2005

Apple and Intel, Intel and Apple

Earlier in the week, Apple announced that they were going to start making Macintoshes with Intel-branded x86 processors in them.  Adding to this is Intel's plan to support virtualization in a next-generation of CPUs.  My hope is that it means I could run the MacOS along side Windows on the same machine and both at native speeds, or slightly below that, but who's counting.  The whole situation reminds me of an ad I saw many years ago, which featured Apple's DOS Compatible Mac.  The idea was simple, take an in-production Mac, install an IBM-compatible on-a-card, and sell it as a package deal.  The ad featured a user switching back and forth between a Windows 3.x desktop and the MacOS.  Shortly thereafter I got a Power Mac 6100, which I happily used as my primary machine for about four years or so.  It was this ad that did it though.  In a small fit of nostalgia, I went searching for a copy of this ad.  I never did find it, but I did find a few other interesting Apple ads:

NOTE: The above ads were compiled and hosted at:

Wednesday, June 08, 2005

Integrating Lua Into Visual Studio

I do a lot of dual-language coding for work, most of which is in C++, but an increasing amount is in a scripting language called Lua.  It's a very nice language, with a highly flexible syntax and a small footprint (~200k on-disk for the entire environment plus an additional C++ interface.)  Using it is not without its drawbacks, particularly when it relates to writing C++ code in Visual Studio.  For example, the Visual Studio debugger cannot step-into or break inside-of Lua code.  Some Lua debuggers exist, such as the one provided in the LuaPlus library, however I've yet to find one that provides a good and stable of a debugger as Visual Studio has.  Recently however, I found a V.S. add-on which supports syntax highlighting and auto-completion.  It's not quite the full Lua/V.S. integration I was/still-am hoping for, but it helps.  The add-on is called lualite and if you're a Lua programmer, or are a V.S. user who's interested in checking out Lua, I'd highly recommend taking a look.

Monday, May 02, 2005

My South Park Portrait

Flash apps aren't always the fastest on the planet, however they're often the easiest to run, which usually seems to be far more important.  Anyhoo...

My portrait, which was built using the slick, Flash-based, South Park Generator. :-)

Wednesday, April 27, 2005

x = *((int *)0);

I've decided to start posting a semi-professional blog here. Programming will likely be discussed, as well as video games, open source software, and whatever random bits come out of my head. At the moment, however, I have a C++/Lua bridge to work/hack-away on, something that's a part of my job at Funkitron, Inc.

Speaking of work, Funkitron put out a press release this afternoon regarding our just-released Poker Superstars game. According to the following image, which was provided by Business Wire, we're now among the ranks of such bigwigs as Apple and EA:

Sure, Apple and EA put out more press releases than we do, but, well, whoopdie-do.