<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0">
    <channel>
        <title>Aurora</title>
        <link>http://www.tilander.org/aurora/</link>
        <description></description>
        <language>en-US</language>
        <copyright>Copyright 2008</copyright>
        <lastBuildDate>Wed, 30 Apr 2008 00:18:25 -0800</lastBuildDate>
        <generator>http://www.sixapart.com/movabletype/</generator>
        <docs>http://www.rssboard.org/rss-specification</docs>
        
        <item>
            <title>Stupid C++ tricks</title>
            <description><![CDATA[<p>A while ago Charles Nicholson wrote an article about how they handled asserts in their engine. I kind of liked the title "Stupid C++ Tricks" and it triggered this article idea. Then since of course Noel Llopis managed to beat me to it, that after I've given him a hard time about his infrequent posts :) So without dwelling too much on why there are so many books and articles about traps, pitfalls, stupidity and secrets regarding C and C++ here you go; some more stupid tricks, don't try this at home.</p>]]></description>
            <link>http://www.tilander.org/aurora/2008/04/stupid-c-tricks.html</link>
            <guid>http://www.tilander.org/aurora/2008/04/stupid-c-tricks.html</guid>
            
                <category domain="http://www.sixapart.com/ns/types#category">C++</category>
            
            
            <pubDate>Wed, 30 Apr 2008 00:18:25 -0800</pubDate>
        </item>
        
        <item>
            <title>Clearly you must be joking</title>
            <description><![CDATA[<p>This post is going to be a little bit different. I'm going to try at some humor, with just a lace of truth to it to be sad.</p>]]></description>
            <link>http://www.tilander.org/aurora/2008/04/clearly-you-must-be-joking.html</link>
            <guid>http://www.tilander.org/aurora/2008/04/clearly-you-must-be-joking.html</guid>
            
                <category domain="http://www.sixapart.com/ns/types#category">Rant</category>
            
            
            <pubDate>Tue, 29 Apr 2008 23:20:19 -0800</pubDate>
        </item>
        
        <item>
            <title>Determinism in your tools</title>
            <description><![CDATA[<p>Determinism in the game itself can be used to easier reproduce bugs, gather performance data and even for gameplay itself. In modern games it does take a little bit of work if you have not had continuous tests during development to catch errors like when a game diverges. Recently I've had to do this as part of our graphics tests at work where we run the game in a special test mode and make sure that recent changes have not broken any rendering features.</p>]]></description>
            <link>http://www.tilander.org/aurora/2008/04/determinism-in-your-tools.html</link>
            <guid>http://www.tilander.org/aurora/2008/04/determinism-in-your-tools.html</guid>
            
                <category domain="http://www.sixapart.com/ns/types#category">Coding</category>
            
            
            <pubDate>Tue, 29 Apr 2008 22:58:59 -0800</pubDate>
        </item>
        
        <item>
            <title>Comparing images</title>
            <description><![CDATA[<p>It's hard to automate testing for graphics programming, most of the times you are looking for something that looks nice or good and you are forced to rely on just eyeballing it. Worse, you might need an artist to take a look at it, since programmer art is a fickle thing. There are some things that you can automate though and the fact that the computer is a cool analytic machine that has no concept of what looks good or bad is actually working to our advantage.</p>]]></description>
            <link>http://www.tilander.org/aurora/2008/03/comparing-images.html</link>
            <guid>http://www.tilander.org/aurora/2008/03/comparing-images.html</guid>
            
                <category domain="http://www.sixapart.com/ns/types#category">Tools</category>
            
            
            <pubDate>Sat, 29 Mar 2008 22:44:04 -0800</pubDate>
        </item>
        
        <item>
            <title>Perforce tips</title>
            <description><![CDATA[<p>How do you use perforce? Some like to stuff as much as possible in the repository, in the hopes that it will be useful to have it all in one place. Others like to keep it minimalistic as to not bog down the server too much. I've already written a little bit about the things that might be good to consider setting up a perforce server, but once it's up and running you might want to have a look at how you are using it.<br />
</p>]]></description>
            <link>http://www.tilander.org/aurora/2008/03/perforce-tips.html</link>
            <guid>http://www.tilander.org/aurora/2008/03/perforce-tips.html</guid>
            
                <category domain="http://www.sixapart.com/ns/types#category">Tools</category>
            
            
            <pubDate>Tue, 25 Mar 2008 23:08:34 -0800</pubDate>
        </item>
        
        <item>
            <title>iPhone SDK demos impresses</title>
            <description>I just finished watching Apple announcing the iPhone SDK. If you have not watched it yet, I recommend it if you have about an hour and 20 minutes to spare. If not, you could just skim through this article instead for my impressions.
</description>
            <link>http://www.tilander.org/aurora/2008/03/iphone-sdk-demos-impresses.html</link>
            <guid>http://www.tilander.org/aurora/2008/03/iphone-sdk-demos-impresses.html</guid>
            
                <category domain="http://www.sixapart.com/ns/types#category">General</category>
            
            
            <pubDate>Fri, 07 Mar 2008 00:03:29 -0800</pubDate>
        </item>
        
        <item>
            <title>Finding a regular expression library</title>
            <description><![CDATA[Regular expressions is somewhat of an oxymoron. They are anything but regular, they are strange beasts that you can write wonderful things in that you won't understand fully yourself after you've written them. I blame (as most things) perl for most of the evolution of regular expressions, they ones contained in perl are very powerful, but with great power comes an awful lot of <strike>responsibility</strike> spaghetti.]]></description>
            <link>http://www.tilander.org/aurora/2008/03/finding-a-regular-expression-l.html</link>
            <guid>http://www.tilander.org/aurora/2008/03/finding-a-regular-expression-l.html</guid>
            
                <category domain="http://www.sixapart.com/ns/types#category">Coding</category>
            
            
            <pubDate>Mon, 03 Mar 2008 22:21:26 -0800</pubDate>
        </item>
        
        <item>
            <title>Vista Is Unusable</title>
            <description><![CDATA[<p>Windows Vista is, in retrospect after trying it out for a couple of months, simply a skip me version of Windows. I can just note my own folly in buying it.</p>]]></description>
            <link>http://www.tilander.org/aurora/2008/01/vista-is-unusable.html</link>
            <guid>http://www.tilander.org/aurora/2008/01/vista-is-unusable.html</guid>
            
                <category domain="http://www.sixapart.com/ns/types#category">Rant</category>
            
            
            <pubDate>Thu, 31 Jan 2008 22:01:05 -0800</pubDate>
        </item>
        
        <item>
            <title>p4shelf</title>
            <description>I&apos;m a big fan of continuous integration, small checkins and very quick checkins. It&apos;s easier to debug afterwards and trying to puzzle together from perforce history afterwards is much easier when the changes are small and atomic. Now, that&apos;s what I like to do. Sometimes things don&apos;t really work out in the real world like you want it to so the other day I found myself with the fun situation of having two weeks worth of changes to try to integrate back into the main line. Of course nothing was backed up, nor did I feel particularly worried about it at the time. I had however done a lot of work, some of the changes involved the fruits of heavy thinking and other changes were the result of an hour or two of menial changes to the code that was a result of some other change.
</description>
            <link>http://www.tilander.org/aurora/2008/01/p4shelf.html</link>
            <guid>http://www.tilander.org/aurora/2008/01/p4shelf.html</guid>
            
                <category domain="http://www.sixapart.com/ns/types#category">Python</category>
            
                <category domain="http://www.sixapart.com/ns/types#category">Tools</category>
            
            
            <pubDate>Sat, 26 Jan 2008 17:35:04 -0800</pubDate>
        </item>
        
        <item>
            <title>Stomping on dialog boxes</title>
            <description>Have you seen the default crash dialog in windows? It&apos;s a dialog that&apos;s pretty much useless for the normal user (I always just click go away when it happens for other applications) but it&apos;s very useful for your own applications. For example, you are debugging some arcane crash that only happens deep inside the content pipeline. It can be tedious to make a reproduction case, that&apos;s small enough so that you can run it standalone in the debugger.</description>
            <link>http://www.tilander.org/aurora/2008/01/stomping-on-dialog-boxes.html</link>
            <guid>http://www.tilander.org/aurora/2008/01/stomping-on-dialog-boxes.html</guid>
            
                <category domain="http://www.sixapart.com/ns/types#category">C++</category>
            
            
            <pubDate>Sun, 13 Jan 2008 13:11:20 -0800</pubDate>
        </item>
        
        <item>
            <title><![CDATA[#include &lt;windows.h&gt;]]></title>
            <description>Windows.h must be the worst engineered header of all times. It&apos;s a meta header, designed to include several others and these are usually so bad that I&apos;m wondering if anyone at Microsoft ever learned to program in a larger environment (ironic is it not?).</description>
            <link>http://www.tilander.org/aurora/2008/01/include-windowsh.html</link>
            <guid>http://www.tilander.org/aurora/2008/01/include-windowsh.html</guid>
            
                <category domain="http://www.sixapart.com/ns/types#category">C++</category>
            
                <category domain="http://www.sixapart.com/ns/types#category">Rant</category>
            
            
            <pubDate>Sun, 06 Jan 2008 18:24:21 -0800</pubDate>
        </item>
        
        <item>
            <title>Is Vista Unusable?</title>
            <description>There is some debate regarding Windows Vista, Microsoft&apos;s flagship that is supposed to be the answer to Apple&apos;s MacOSX. After trying it out for a couple of days now I can only come to the conclusion that OMG it&apos;s bad. It not only looses by a wide margin to MacOSX, it stands no chance against its supposedly older sibling Windows XP. There are a lot of nice features that I do like, foremost the proper support for running as multiple users smoothly, running as a non root user and then installing programs as root. Nice. Now we&apos;ve caught up with UNIX who had it, ah 1970 or so...
</description>
            <link>http://www.tilander.org/aurora/2007/12/is-vista-unusable.html</link>
            <guid>http://www.tilander.org/aurora/2007/12/is-vista-unusable.html</guid>
            
                <category domain="http://www.sixapart.com/ns/types#category">Rant</category>
            
            
            <pubDate>Sat, 08 Dec 2007 23:29:33 -0800</pubDate>
        </item>
        
        <item>
            <title>Comparing std::sort and qsort</title>
            <description>I&apos;m going to do something different today, instead of bashing on C++ as I usually do, I&apos;m going to point at some good things about it. In fact, it&apos;s even involving templates, my old archenemy (Bowser is nothing compared to them). So while I&apos;m happily downloading The Orange Box on Steam, I&apos;m writing this very quick and dirty post.</description>
            <link>http://www.tilander.org/aurora/2007/12/comparing-stdsort-and-qsort.html</link>
            <guid>http://www.tilander.org/aurora/2007/12/comparing-stdsort-and-qsort.html</guid>
            
                <category domain="http://www.sixapart.com/ns/types#category">C++</category>
            
                <category domain="http://www.sixapart.com/ns/types#category">Coding</category>
            
            
            <pubDate>Thu, 06 Dec 2007 22:11:36 -0800</pubDate>
        </item>
        
        <item>
            <title>Is PS3 development hard?</title>
            <description>It&apos;s a little bit disappointing to see that the industry still are clamoring and lamenting the (supposed) difficulties of developing for the Playstation 3. Meanwhile, the consumers must be either thinking that the PS3 is a load of crap, or that the developers are. I can&apos;t really decide if they are correct on both accounts or if we as an industry have to get over ourselves and just stop whining and get to work. Now if it was easy to develop top notch video games, then they wouldn&apos;t need us, right?</description>
            <link>http://www.tilander.org/aurora/2007/11/is-ps3-development-hard.html</link>
            <guid>http://www.tilander.org/aurora/2007/11/is-ps3-development-hard.html</guid>
            
                <category domain="http://www.sixapart.com/ns/types#category">Rant</category>
            
            
            <pubDate>Wed, 28 Nov 2007 01:25:05 -0800</pubDate>
        </item>
        
        <item>
            <title>Assembly Safari, Part I</title>
            <description>Ever since I took the leap from Basic V2 to 6510 assembly on my old Commodore 64, I&apos;ve had a hate/love relationship with assembly. It allowed me back then to do things that were not possibly through any other means (vblank handler, raster coppers etc). My second foray into assembly was through Turbo Pascal funny enough. Turbo Pascal had this really easy mechanism to escape into inline assembly so that you could write your high level constructs in Pascal and then write the guts in assembly. This worked really well for me for a long while, even though real mode x86 assembly is kind of a pain.</description>
            <link>http://www.tilander.org/aurora/2007/11/asm-safari-1.html</link>
            <guid>http://www.tilander.org/aurora/2007/11/asm-safari-1.html</guid>
            
                <category domain="http://www.sixapart.com/ns/types#category">Coding</category>
            
            
            <pubDate>Mon, 26 Nov 2007 23:17:36 -0800</pubDate>
        </item>
        
        <item>
            <title>NULL, how I hate you</title>
            <description><![CDATA[<p>Every now and then a discussion about NULL comes up. Much like operator overloading of multiplication of a geometric vector class. In the course of the discussion many questions and theories are covered, I'd like to give my views on them here in this short article. <br />
</p>]]></description>
            <link>http://www.tilander.org/aurora/2007/10/null-how-i-hate-you.html</link>
            <guid>http://www.tilander.org/aurora/2007/10/null-how-i-hate-you.html</guid>
            
                <category domain="http://www.sixapart.com/ns/types#category">C++</category>
            
            
            <pubDate>Sun, 28 Oct 2007 21:29:25 -0800</pubDate>
        </item>
        
        <item>
            <title>Static initialization in C++</title>
            <description><![CDATA[In one of the murky corners of C++ we find all the rules for static initialization hidden. They hide here because they are hideous, deformed and frightening. If they were out in the open, noone in their right mind would start down the path of actually learning and using C++. Or so I would think. Anyways, if you're with me in the boat of  &quot;<i>we're already screwed and we have to use C++</i>&quot; then read on and we'll try to put some pretty clothes on the monsters instead. ]]></description>
            <link>http://www.tilander.org/aurora/2007/10/static-initialization-in-c.html</link>
            <guid>http://www.tilander.org/aurora/2007/10/static-initialization-in-c.html</guid>
            
                <category domain="http://www.sixapart.com/ns/types#category">C++</category>
            
            
            <pubDate>Sun, 28 Oct 2007 21:00:32 -0800</pubDate>
        </item>
        
        <item>
            <title>Shorter and easier games</title>
            <description><![CDATA[<p>This article is a little random musings about game difficulty, save games and downloadable games...<br />
</p>]]></description>
            <link>http://www.tilander.org/aurora/2007/10/shorter-and-easier-games.html</link>
            <guid>http://www.tilander.org/aurora/2007/10/shorter-and-easier-games.html</guid>
            
                <category domain="http://www.sixapart.com/ns/types#category">Rant</category>
            
            
            <pubDate>Fri, 19 Oct 2007 16:02:33 -0800</pubDate>
        </item>
        
        <item>
            <title>Writing math for the web</title>
            <description>For writing math papers I always use Latex, it&apos;s really the only thing that can be used in a sane manner. As a programmer I kind of like it as well, since it&apos;s very easy to structure your document and you get a lot of things just for free, that seems to work poorly or is right down broken in other so called word processing softwares. For writing mathematical notation it&apos;s great. It&apos;s not all like the editors like Microsoft Equation (in the office suite) or Mathematica&apos;s one for that matter. No, here it&apos;s fairly straightforward and writing more complex things are a breeze. </description>
            <link>http://www.tilander.org/aurora/2007/10/writing-math-for-the-web.html</link>
            <guid>http://www.tilander.org/aurora/2007/10/writing-math-for-the-web.html</guid>
            
                <category domain="http://www.sixapart.com/ns/types#category">Rant</category>
            
            
            <pubDate>Fri, 19 Oct 2007 13:08:34 -0800</pubDate>
        </item>
        
        <item>
            <title>Prehistoric demos</title>
            <description>Here are some of my older projects. This page got lost when I moved the webhost so I&apos;m posting it again here.</description>
            <link>http://www.tilander.org/aurora/2007/10/prehistoric-demos-1.html</link>
            <guid>http://www.tilander.org/aurora/2007/10/prehistoric-demos-1.html</guid>
            
                <category domain="http://www.sixapart.com/ns/types#category">Games</category>
            
            
            <pubDate>Wed, 17 Oct 2007 00:08:47 -0800</pubDate>
        </item>
        
        <item>
            <title>Moved blog</title>
            <description><![CDATA[<p>The old comment system I had on my blog was kind of dated and convoluted. A friend of mine complained a little about it and I set out to see if I could improve it a little bit. Whew. What a can of worms (thanks Nick). Turns out that in order to fix it I needed ssh access to my webhost... </p>]]></description>
            <link>http://www.tilander.org/aurora/2007/10/moved-blog.html</link>
            <guid>http://www.tilander.org/aurora/2007/10/moved-blog.html</guid>
            
                <category domain="http://www.sixapart.com/ns/types#category">Rant</category>
            
            
            <pubDate>Tue, 16 Oct 2007 21:50:08 -0800</pubDate>
        </item>
        
        <item>
            <title>Class instance initialization</title>
            <description><![CDATA[<p>I thought I would ramble on a little about the class constructor in C++ as well as start a new topic in the blog, C++. Here is the first installment. A little random, but fun facts. Keep your copy of the standard close by.</p>]]></description>
            <link>http://www.tilander.org/aurora/2007/10/class-instance-initialization.html</link>
            <guid>http://www.tilander.org/aurora/2007/10/class-instance-initialization.html</guid>
            
                <category domain="http://www.sixapart.com/ns/types#category">C++</category>
            
            
            <pubDate>Mon, 15 Oct 2007 12:36:27 -0800</pubDate>
        </item>
        
        <item>
            <title>Warning for sloppy code</title>
            <description><![CDATA[<p>One of my (maybe bad) pet peeves are compiler warnings. I try to compile cleanly at the highest warning level and go through all the warnings one by one and really understand what they are fuzzing about. And then fix them. The reasoning behind this is that the compiler writers are usually much much better at the language than I am. If they bother enough to put in a warning message, then there is probably a catch somewhere. Dismissing it out of hand as stupid is done at your own peril. Every now and then there is some subtle gotcha that the compiler writers understand but you have yet to grasp about the language. And boy do you feel stupid after a monster debug session only to find that the bug you were searching for was already flagged by the compiler in a warning that you ignored!</p>]]></description>
            <link>http://www.tilander.org/aurora/2007/10/warning-for-sloppy-code.html</link>
            <guid>http://www.tilander.org/aurora/2007/10/warning-for-sloppy-code.html</guid>
            
                <category domain="http://www.sixapart.com/ns/types#category">Coding</category>
            
            
            <pubDate>Sun, 14 Oct 2007 14:24:57 -0800</pubDate>
        </item>
        
        <item>
            <title>BadgerConfig</title>
            <description><![CDATA[<p>For a couple of years now I've been using a system to manage visual studio projects and solutions automatically. It started out as a massive upgrade operation moving from visual studio 6 to 2002 at the time. In order to do this I decided to also generate all the projects automatically since it was such a pain to maintain them manually. I also didn't trust the settings in the current projects since they were all different from project to project. So I decided to move ahead and write these scripts to handle all the generation for me. Something wonderful happens when you can add files to your project and even projects to your solution with minimal work. It eases the pain to add things in their proper place, instead of just adding functions in some unrelated files (have you stumbled upon filename manipulation routines deep inside your AI?) you can take the trouble now to add the files to the project with proper names. You can also easily add new projects to keep separation into libraries sane.</p>]]></description>
            <link>http://www.tilander.org/aurora/2007/10/badgerconfig.html</link>
            <guid>http://www.tilander.org/aurora/2007/10/badgerconfig.html</guid>
            
                <category domain="http://www.sixapart.com/ns/types#category">Tools</category>
            
            
            <pubDate>Fri, 12 Oct 2007 21:45:31 -0800</pubDate>
        </item>
        
        <item>
            <title>Choppers 2D prototype</title>
            <description><![CDATA[<p>Since I try to do video games for a living, it might seem very odd for me to go home and then do the same thing again. I call it recreational programming and in all honesty it's a little bit whacked. I'm not alone in this though, I know a lot of people do the same thing, or similarly taking their day job home and doing it as a hobby. Either we're really lucky or just retarded. Any given day I'm in the balance which. Anyhow, this article starts at a lunch with a friend where we start reminiscing about old games and what we played back in the day before monster processors and even consoles more powerful than the NES 8-bit system. Several games came up but one stuck in the conversation and kind of expanded. The game was Chopper Duel, for the old DOS computers. The game is not that old, but the idea came up to do a revamped version of the game, in full 3D and with destructible environment. Well, suffice to say I didn't make <i>that</i> game.</p>]]></description>
            <link>http://www.tilander.org/aurora/2007/10/choppers-2d-prototype.html</link>
            <guid>http://www.tilander.org/aurora/2007/10/choppers-2d-prototype.html</guid>
            
                <category domain="http://www.sixapart.com/ns/types#category">Games</category>
            
            
            <pubDate>Wed, 03 Oct 2007 13:15:09 -0800</pubDate>
        </item>
        
        <item>
            <title>Spam Ohoy</title>
            <description><![CDATA[<p>It finally happened. I'm starting to get Swedish spam (well, obviously email one, not that pig meat thing) to one of my actual email addresses. Then world is ending! Seriously though, WTF. I just wished that people started to stop clicking on these infernal links. I mean, if someone is willing to pay some amount of money for each email, or just each click originating from a particular email, all we have to do is to stop clicking, right? It's getting ridiculous. We are now having the neural nets we just so touted that would do awesome things to just sort our emails for spam.</p>]]></description>
            <link>http://www.tilander.org/aurora/2007/09/spam-ohoy.html</link>
            <guid>http://www.tilander.org/aurora/2007/09/spam-ohoy.html</guid>
            
                <category domain="http://www.sixapart.com/ns/types#category">Rant</category>
            
            
            <pubDate>Sat, 22 Sep 2007 22:42:16 -0800</pubDate>
        </item>
        
        <item>
            <title>Build Configurations</title>
            <description><![CDATA[<p>There are some things that you take for granted but then again you meet blank stares when you talk about it as it was a given. It is very easy to forget that some things that you take for granted, others have not yet seen or thought about and vice versa. We're all colored by our own quirky way through the maze towards programming enlightenment. My own path has taught me the following of build configurations: Debug and Release are not enough.</p>]]></description>
            <link>http://www.tilander.org/aurora/2007/09/build-configurations.html</link>
            <guid>http://www.tilander.org/aurora/2007/09/build-configurations.html</guid>
            
                <category domain="http://www.sixapart.com/ns/types#category">Coding</category>
            
            
            <pubDate>Sat, 22 Sep 2007 21:30:58 -0800</pubDate>
        </item>
        
        <item>
            <title>Twing twang in Heavenly Sword(s)</title>
            <description><![CDATA[<p>So the other day I got my grubby mits on a retail version of the game Heavenly Swords. Finally I can find out what the hell twing twang is!</p>]]></description>
            <link>http://www.tilander.org/aurora/2007/09/twing-twang-in-heavenly-swords.html</link>
            <guid>http://www.tilander.org/aurora/2007/09/twing-twang-in-heavenly-swords.html</guid>
            
                <category domain="http://www.sixapart.com/ns/types#category">Reviews</category>
            
            
            <pubDate>Fri, 14 Sep 2007 19:11:47 -0800</pubDate>
        </item>
        
        <item>
            <title>Apple Safari on Windows</title>
            <description><![CDATA[<p>I ran MacOSX early on my G3 laptop (now retired) and I loved it. One of the things I really loved was the way Mac rendered fonts. They are really completley different than the way Windows does it. Now I recently found out that I can run Safari (the native browser on MacOSX) on my Windows machine.</p>]]></description>
            <link>http://www.tilander.org/aurora/2007/09/apple-safari-on-windows.html</link>
            <guid>http://www.tilander.org/aurora/2007/09/apple-safari-on-windows.html</guid>
            
                <category domain="http://www.sixapart.com/ns/types#category">Rant</category>
            
            
            <pubDate>Mon, 10 Sep 2007 00:00:34 -0800</pubDate>
        </item>
        
        <item>
            <title>Namespaces, lookup and ADL</title>
            <description><![CDATA[<p>C++ has a lot of nasty corners that smell a lot as well as some remarkable things that can be used in some fairly suprising manners. One of the little understood corners of C++ is name lookup. Name lookup is something very basic but the basics seems to be the things that people skim over when learning C++ or just using it. Things like L-values and R-values are part of the basics and they are sadly little understood.</p>]]></description>
            <link>http://www.tilander.org/aurora/2007/09/namespaces-lookup-and-adl.html</link>
            <guid>http://www.tilander.org/aurora/2007/09/namespaces-lookup-and-adl.html</guid>
            
                <category domain="http://www.sixapart.com/ns/types#category">C++</category>
            
            
            <pubDate>Sun, 09 Sep 2007 23:32:10 -0800</pubDate>
        </item>
        
        <item>
            <title>Reverting a perforce changelist</title>
            <description><![CDATA[<p>Sometimes you wind up with changes in your source control system that shouldn't be in there, or you hit the submit button in perforce when you really meant just update the description. Anyways, you find yourself with a changelist that you want to roll back...</p>]]></description>
            <link>http://www.tilander.org/aurora/2007/06/reverting-a-perforce-changelis.html</link>
            <guid>http://www.tilander.org/aurora/2007/06/reverting-a-perforce-changelis.html</guid>
            
                <category domain="http://www.sixapart.com/ns/types#category">Python</category>
            
                <category domain="http://www.sixapart.com/ns/types#category">Tools</category>
            
            
            <pubDate>Wed, 27 Jun 2007 00:03:43 -0800</pubDate>
        </item>
        
        <item>
            <title>Cell Symposium Atlanta, GA</title>
            <description><![CDATA[<p>Monday I was on the east coast giving a short talk on CELL, games and languages. The talk itself was a little bit of a rant of mine, covering games development and games developers' love of C++. Love hurts. The venue for the talk itself was the CELL Symposium at Georgia Tech, Atlanta.</p>]]></description>
            <link>http://www.tilander.org/aurora/2007/06/cell-symposium-atlanta-ga.html</link>
            <guid>http://www.tilander.org/aurora/2007/06/cell-symposium-atlanta-ga.html</guid>
            
                <category domain="http://www.sixapart.com/ns/types#category">Cell</category>
            
                <category domain="http://www.sixapart.com/ns/types#category">Events</category>
            
            
            <pubDate>Fri, 22 Jun 2007 00:14:44 -0800</pubDate>
        </item>
        
        <item>
            <title>Desktop Commander</title>
            <description><![CDATA[<p>I've got this dual monitor setup at home, a widescreen monitor and a standard aspect monitor rotated 90 degrees. Every now and then I'd like to change my desktop background and I have quite an extensive collection of images that I've taken that I'd like to rotate around. So how do you do it?</p>]]></description>
            <link>http://www.tilander.org/aurora/2007/06/desktop-commander.html</link>
            <guid>http://www.tilander.org/aurora/2007/06/desktop-commander.html</guid>
            
                <category domain="http://www.sixapart.com/ns/types#category">Coding</category>
            
                <category domain="http://www.sixapart.com/ns/types#category">Tools</category>
            
            
            <pubDate>Thu, 21 Jun 2007 23:00:26 -0800</pubDate>
        </item>
        
        <item>
            <title>The performance of map v/s vector</title>
            <description><![CDATA[<p>STL has an unfairly bad reputation in games development circles in my opinion. People that got burnt on the old HP stl that shipped with gcc 2.7.x series was on many platform the norm and that particular implementation coupled with the poor compiler probably left a sour taste for many developers. I think STL as many other things has a place in C++ development, for tools certainly it's a productivity boost and as many of us run their tools on the win32 platform, most of the concerns that we have on consoles are not the dominant part of execution time.</p>]]></description>
            <link>http://www.tilander.org/aurora/2007/04/the-performance-of-map-vs-vect.html</link>
            <guid>http://www.tilander.org/aurora/2007/04/the-performance-of-map-vs-vect.html</guid>
            
                <category domain="http://www.sixapart.com/ns/types#category">Coding</category>
            
            
            <pubDate>Sun, 22 Apr 2007 20:07:08 -0800</pubDate>
        </item>
        
        <item>
            <title>NiftyPlugins source code</title>
            <description><![CDATA[<p>A couple of days ago, Noel emailed me about the source to NiftyPerforce since he wanted to make some changes to it. At this point I only had it on my local subversion repository. I'd heard about this cool feature google recently put up, which should be interesting place to actually host a "real" project...</p>]]></description>
            <link>http://www.tilander.org/aurora/2006/10/niftyplugins-source-code.html</link>
            <guid>http://www.tilander.org/aurora/2006/10/niftyplugins-source-code.html</guid>
            
                <category domain="http://www.sixapart.com/ns/types#category">Tools</category>
            
            
            <pubDate>Wed, 04 Oct 2006 23:49:49 -0800</pubDate>
        </item>
        
        <item>
            <title>Dice</title>
            <description><![CDATA[<p>My very good friend Andreas Brinck and I have been working for some time now on a hobby project on our spare time. It all started out as a very large project, we had a game design and all for a rather ambitious platform game. We quickly realized that we would not be able to pull it off with just two programmers, so we kind of changed gears and decided to try a simple puzzle game with minimal art resources....</p>]]></description>
            <link>http://www.tilander.org/aurora/2006/10/dice.html</link>
            <guid>http://www.tilander.org/aurora/2006/10/dice.html</guid>
            
                <category domain="http://www.sixapart.com/ns/types#category">Coding</category>
            
                <category domain="http://www.sixapart.com/ns/types#category">Games</category>
            
            
            <pubDate>Sun, 01 Oct 2006 21:09:52 -0800</pubDate>
        </item>
        
        <item>
            <title>NiftyPerforce</title>
            <description><![CDATA[<p>Visual Studio is the tool that most games programmers come to use for their day to day work. Perforce also seems to spread amongst games companies as the SCM system of choice. On paper Visual Studio also have source control integration. Great, now everything just happens automagically! No need to think about those mundane issues, I can just concentrate on the code. Well, that's wrong. You do need to concentrate on the "mundane" issues. One of the things that annoys me to no end is the fact that when you have the SCM feature enabled the time it takes to open a solution...</p>]]></description>
            <link>http://www.tilander.org/aurora/2006/09/niftyperforce.html</link>
            <guid>http://www.tilander.org/aurora/2006/09/niftyperforce.html</guid>
            
                <category domain="http://www.sixapart.com/ns/types#category">Tools</category>
            
            
            <pubDate>Thu, 21 Sep 2006 22:48:25 -0800</pubDate>
        </item>
        
        <item>
            <title>UnitTestCg</title>
            <description><![CDATA[<p>Ever after the radioactive TDD bug bit me and I'm now infected with that mode of development I've become more and more interested in good unittest frameworks to help me develop bugfree code fast. If you have not yet experienced Test Driven Development, I'd recommend reading up a little bit on it before continuing with this article, see the resources at the end of the page. One thing that still is lacking is a good solid unittest framework for shader development...</p>]]></description>
            <link>http://www.tilander.org/aurora/2006/09/unittestcg.html</link>
            <guid>http://www.tilander.org/aurora/2006/09/unittestcg.html</guid>
            
                <category domain="http://www.sixapart.com/ns/types#category">Coding</category>
            
            
            <pubDate>Tue, 19 Sep 2006 22:23:17 -0800</pubDate>
        </item>
        
        <item>
            <title>Working offline with perforce</title>
            <description><![CDATA[<p>One of the annoying things about perforce is the need to be connected to the perforce server at all times. Manipulating files underneath perforce is a recipe for a world of hurt and pain. But there are times when you want to do just this, say you're on a trip with your laptop and of course there's not WiFi hotspot where you are just now, but you still want to code something and later on check it in.</p>]]></description>
            <link>http://www.tilander.org/aurora/2006/09/working-offline-with-perforce.html</link>
            <guid>http://www.tilander.org/aurora/2006/09/working-offline-with-perforce.html</guid>
            
                <category domain="http://www.sixapart.com/ns/types#category">Tools</category>
            
            
            <pubDate>Thu, 14 Sep 2006 23:47:29 -0800</pubDate>
        </item>
        
        <item>
            <title>Lint hidden in the PSDK</title>
            <description><![CDATA[<p>I remember back in the day when I started programming C++ on the IBM computer there were a plethora of compilers out there. Borland Turbo C++, Visual Studio, djgpp and my favourite Watcom C++. Watcom was my favourite because it's optimizer and it's powerful inline assembly features allowing you to specify exactly where arguments were passed in registers and dirty registers. The debugger was also good (at least in my memory). We used a freeware extender for flat mode instead of the one supplied with Watcom (which you had to pay money for).</p>]]></description>
            <link>http://www.tilander.org/aurora/2006/08/lint-hidden-in-the-psdk.html</link>
            <guid>http://www.tilander.org/aurora/2006/08/lint-hidden-in-the-psdk.html</guid>
            
                <category domain="http://www.sixapart.com/ns/types#category">Tools</category>
            
            
            <pubDate>Mon, 21 Aug 2006 22:01:51 -0800</pubDate>
        </item>
        
        <item>
            <title>Writing portable code</title>
            <description><![CDATA[<p>Here are some tips for writing portable code. Some of them may apply to your project and some might not, think before you choose and if you're going to make any "stupid" decisions, make sure that you are making them deliberately and with open eyes. It might be ok for your project. And of course if you're never ever cross your heart and hope to die going to port your code to any other platform than the current (you lucky dog) then just disregard everything in here and go home earlier and enjoy a cool beer on the balcony, in short do something better than sit in the office all day.</p>]]></description>
            <link>http://www.tilander.org/aurora/2006/08/writing-portable-code.html</link>
            <guid>http://www.tilander.org/aurora/2006/08/writing-portable-code.html</guid>
            
                <category domain="http://www.sixapart.com/ns/types#category">Coding</category>
            
            
            <pubDate>Wed, 09 Aug 2006 23:32:13 -0800</pubDate>
        </item>
        
        <item>
            <title>Perforce diff and patch</title>
            <description><![CDATA[<p>I'm sitting here in my apartment amongst boxes and boxes, still unpacked from moving from San Diego. Moving is always a pain and this time is no exception. Packing all your stuff takes some time and unpacking takes even more time since you have to figure out where to place stuff, now in the new place you don't really know where everything goes. Speaking of packing and unpacking (nice dissolve, eh? :) doing the same for your changelists in perforce should be a breeze. The command 'p4 diff' actually outputs some interesting information, amongst them a full description of the differences of the currently checked out files. Unfortunately the output is not trivial to reapply again. Well to the rescue comes two little python scripts!</p>]]></description>
            <link>http://www.tilander.org/aurora/2006/08/perforce-diff-and-patch.html</link>
            <guid>http://www.tilander.org/aurora/2006/08/perforce-diff-and-patch.html</guid>
            
                <category domain="http://www.sixapart.com/ns/types#category">Tools</category>
            
            
            <pubDate>Sat, 05 Aug 2006 22:25:39 -0800</pubDate>
        </item>
        
        <item>
            <title>Exploring the ellipsis construct.</title>
            <description><![CDATA[<p>One of many wierd constructs in C++ is the ellipsis construct (...). That's a way to specify that there might come a variable amount of extra parameters after the one that you give. Underneath there is no real magic, the parameters that you specify are pushed onto the stack and then inside the function you can traverse the stack. There are some catches with this though. In this little article we'll explore how the ... works and what not to do.</p>]]></description>
            <link>http://www.tilander.org/aurora/2006/08/exploring-the-ellipsis-constru.html</link>
            <guid>http://www.tilander.org/aurora/2006/08/exploring-the-ellipsis-constru.html</guid>
            
                <category domain="http://www.sixapart.com/ns/types#category">C++</category>
            
            
            <pubDate>Wed, 02 Aug 2006 00:24:24 -0800</pubDate>
        </item>
        
        <item>
            <title>XP San Diego talk</title>
            <description><![CDATA[<p>Noel and I gave a very informal talk on "XP and Scrum in Games Development" the other day (June 8) at the <a href="http://www.xpsd.org/cgi-bin/wiki">XP San Diego</a>.</p>]]></description>
            <link>http://www.tilander.org/aurora/2006/06/xp-san-diego-talk.html</link>
            <guid>http://www.tilander.org/aurora/2006/06/xp-san-diego-talk.html</guid>
            
                <category domain="http://www.sixapart.com/ns/types#category">Events</category>
            
                <category domain="http://www.sixapart.com/ns/types#category">General</category>
            
            
            <pubDate>Wed, 21 Jun 2006 15:46:30 -0800</pubDate>
        </item>
        
        <item>
            <title>Automation with visual basic</title>
            <description><![CDATA[<p>I think one of the most overlooked aspects of Visual Studio is it's extensibility through visual basic for applications (VBA). This is a little discussion about some simple scripts that help me through the day with visual studio. The code is kind of horrible, since I'm really not a basic writer at all but bear with me here.</p>]]></description>
            <link>http://www.tilander.org/aurora/2006/05/automation-with-visual-basic.html</link>
            <guid>http://www.tilander.org/aurora/2006/05/automation-with-visual-basic.html</guid>
            
                <category domain="http://www.sixapart.com/ns/types#category">Tools</category>
            
            
            <pubDate>Sun, 14 May 2006 20:04:00 -0800</pubDate>
        </item>
        
        <item>
            <title>Perforce setup tips</title>
            <description><![CDATA[<p>Installing a new perforce server? Here are some tips that you might want to look into after installation.</p>]]></description>
            <link>http://www.tilander.org/aurora/2006/04/perforce-setup-tips.html</link>
            <guid>http://www.tilander.org/aurora/2006/04/perforce-setup-tips.html</guid>
            
                <category domain="http://www.sixapart.com/ns/types#category">Tools</category>
            
            
            <pubDate>Tue, 25 Apr 2006 21:57:09 -0800</pubDate>
        </item>
        
        <item>
            <title>Memory adventure safari</title>
            <description><![CDATA[<p>C++ is hard people say. Program in some other language. Like Java or C#.     When asked, people who champion these languages usually agree that the     garbage collecting is godsent and that memory management is a mess in C++.     While I'm not disagreeing that sweeping the memory problem under the rug     is kind of nice (hey, I do a lot of python programming) I don't understand why     memory management should inherently be difficult in C++. There are ways to     shoot yourself in the foot, several times with a bazooka. But there are also     relief. There are some simple rules that you can follow to minimize your     allocation hell. We will discuss some of them here, as well what to do when     everything falls down on your head and you wind up with a memory leak.     It's a little bit of a jumble, a little bit of an safari as the title suggests :)</p>]]></description>
            <link>http://www.tilander.org/aurora/2006/04/memory-adventure-safari.html</link>
            <guid>http://www.tilander.org/aurora/2006/04/memory-adventure-safari.html</guid>
            
                <category domain="http://www.sixapart.com/ns/types#category">Coding</category>
            
            
            <pubDate>Wed, 05 Apr 2006 22:38:48 -0800</pubDate>
        </item>
        
        <item>
            <title>Detecting hotload changes</title>
            <description><![CDATA[<p>Hotloading was for a while, well a hot, topic in the game development industry. As games progressed from being very simple programs to more of world simulators today the issue of tweaking and how assets are handled became more of an issue. When your data fits on a standard floppy disk it's not that bad, but when you have your system administrator breathing down your neck because your using up a Gigabyte of disk each night things become complicated.</p>]]></description>
            <link>http://www.tilander.org/aurora/2006/03/detecting-hotload-changes.html</link>
            <guid>http://www.tilander.org/aurora/2006/03/detecting-hotload-changes.html</guid>
            
                <category domain="http://www.sixapart.com/ns/types#category">Python</category>
            
            
            <pubDate>Wed, 15 Mar 2006 23:17:32 -0800</pubDate>
        </item>
        
        <item>
            <title>Continuous integration with CC.net</title>
            <description><![CDATA[<p>So what's wrong with the "traditional" way of having a group of developers write code, checkin and get latest in isolation? It's been working for several projects, right? So why should we fix something that isn't broken? Well, I could argue that it is broken. I obviously don't know what kind of problems you have at your company, but I know that in the past I've been faced with broken builds and didn't even know that it was a problem until much much later.</p>]]></description>
            <link>http://www.tilander.org/aurora/2006/03/continuous-integration-with-cc.html</link>
            <guid>http://www.tilander.org/aurora/2006/03/continuous-integration-with-cc.html</guid>
            
                <category domain="http://www.sixapart.com/ns/types#category">Tools</category>
            
            
            <pubDate>Tue, 14 Mar 2006 22:02:10 -0800</pubDate>
        </item>
        
        <item>
            <title>Static data for unit tests</title>
            <description><![CDATA[<p>Bringing data into your program is always a source of problems. Problems like filesystems, paths and unreliable system calls sound familiar? These problems are not the ones you want to battle with in addition to your unit tests. There is  light at the end of the tunnel though. Static data in the executable. We've all done it, quick hardcoded tables inline with the code. Taking it to the next step is simply integrating this into the buildstep and creating these tables from ordinary data, bypassing the filesystem at runtime completely.</p>]]></description>
            <link>http://www.tilander.org/aurora/2006/03/static-data-for-unit-tests.html</link>
            <guid>http://www.tilander.org/aurora/2006/03/static-data-for-unit-tests.html</guid>
            
                <category domain="http://www.sixapart.com/ns/types#category">Python</category>
            
            
            <pubDate>Thu, 09 Mar 2006 00:17:12 -0800</pubDate>
        </item>
        
        <item>
            <title>Tools for python programming</title>
            <description><![CDATA[<p>This little article will explain how to setup an environment for developing python programs. It will explain the different components and the workflow for developing slightly larger programs in python since the small tutorial ones are pretty much covered and they always (in my opinion) leaves out the really hard stuff.</p>]]></description>
            <link>http://www.tilander.org/aurora/2006/03/tools-for-python-programming.html</link>
            <guid>http://www.tilander.org/aurora/2006/03/tools-for-python-programming.html</guid>
            
                <category domain="http://www.sixapart.com/ns/types#category">Python</category>
            
            
            <pubDate>Wed, 08 Mar 2006 21:25:48 -0800</pubDate>
        </item>
        
        <item>
            <title>NiftySolution</title>
            <description><![CDATA[<p>For a long time now I've been using Honk's (Henrik dot Karlsson at dice dot se) FastOpen plugin for accessing files in Visual Studio quick and easy. Yes, there is Visual Assist to consider as well, but historically it's been buggy and slow (they might have fixed that now) so I've kind of shied away from it. So I though it was a good time to explore a little how the plugins in the new visual studio works and a little practice with C# as well to boot.</p>]]></description>
            <link>http://www.tilander.org/aurora/2006/02/niftysolution.html</link>
            <guid>http://www.tilander.org/aurora/2006/02/niftysolution.html</guid>
            
                <category domain="http://www.sixapart.com/ns/types#category">Tools</category>
            
            
            <pubDate>Sun, 12 Feb 2006 18:53:47 -0800</pubDate>
        </item>
        
        <item>
            <title>Launch of new blog.</title>
            <description><![CDATA[<p>
A while ago I started to think that my webpage was a little bit drab
looking and lacked the any comment system. So I started to look into
how people was doing it nowadays and even briefly considered writing my
own system (horror!). Luckily I quickly realized that it was a pretty 
large project which I didn't particularly wanted to take on. I just wanted
a simple system that could satisfy my needs of a comment system and easy
to maintain...
</p>]]></description>
            <link>http://www.tilander.org/aurora/2006/02/launch-of-new-blog.html</link>
            <guid>http://www.tilander.org/aurora/2006/02/launch-of-new-blog.html</guid>
            
                <category domain="http://www.sixapart.com/ns/types#category">General</category>
            
            
            <pubDate>Sun, 12 Feb 2006 17:41:47 -0800</pubDate>
        </item>
        
    </channel>
</rss>



