
I just finished reading an excellent article on how to fix pathfinding in games. The author presents a number of excellent examples of how today’s pathfinding can break (with examples from legendary games like Oblivion and Half Life 2), and offers a great solution: use a navigation mesh instead of a waypoint graph. Genius.
I ran across another weird and subtle bug in Visual Studio 2005. If you’ve got a solution with many project in it, you can set one of those projects to be the default project at startup (i.e. when you open the solution file). But this setting apparently resides in the user options file (.suo), which is something we don’t keep in our code repository (since it differs for every user). So how can you set a default startup project that affects anyone working with your code? Simple: hack the solution file.
Thankfully, the solution file is just plain text. Apparently, if there’s no user options file for a given solution, Visual Studio 2005 simply selects the first project it comes across in the solution file. Here’s a quick example of what a solution file looks like (wrapped lines marked with »):
Dustin and his wife recently uncovered an interesting limitation of my Monkey Album software: characters outside of the ISO-8859-1 (Latin 1) character set don’t render properly. This comes as no surprise, seeing as I didn’t design for Unicode. Being a rather egregious display error, I decided to set out and fix the problem. In the process, I learned quite a lot about Unicode, and how it affects web applications. This post will be the first of two detailing how to add Unicode support to a web application. I will only be exposing a tip of the Unicode iceberg in these posts. The ideas and practices behind Unicode support can (and do) fill the pages of many books. That said, let’s jump in.
Recently at work, I spent a fair amount of time debugging some strange run-time errors in one of our test tools (after having ported it from Visual Studio 2003 to VS 2005). When starting up a debug build of the tool, I would get the following error message:
An application has made an attempt to load the C runtime library incorrectly. Please contact the application’s support team for more information.
This error message turned out to be a red herring, though it pointed me in the direction of the actual culprit: a circular dependency chain of debug and release versions of various Microsoft DLLs. In trying to figure out what was going wrong, I ran across an incredibly helpful article on troubleshooting these kinds of issues. The author presents seven different scenarios that can arise with executables built in Visual Studio 2005, along with solutions for each one. It’s a great resource to have if you run into these kinds of problems.
Apologies for the infrequent updates: my sister recently came back to the US for about a week (which was fun), then my grandmother came to visit (which I also enjoyed), and now I’m sick. So there you have it.
A two-part series on Unicode support for PHP web applications is coming, provided I can feel better and get rid of my writer’s block.
The latest and greatest version of WordPress has been released. Check the link for the long list of changes. Both this site and Born Geek have been updated using the super simple Subversion update process (type one command and it’s done). I highly recommend that install and update path. Give me a shout if you see something broken.
Just yesterday, Microsoft released a ‘critical update’ for issue 951748, fixing a DNS security hole. It turns out that this fix completely hoses the Zone Alarm software firewall (which I happen to run). In essence, you completely lose your internet connection.
The folks that make the Zone Alarm firewall are aware of the problem. For now, they suggest two workarounds: either uninstall the MS fix or set the firewall security slider to medium (down from high). Hopefully, a true fix will be issued within the next few days.
Update: This problem has even made Slashdot.