<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	xmlns:itunes="http://www.itunes.com/dtds/podcast-1.0.dtd"
	xmlns:media="http://search.yahoo.com/mrss/"
>

<channel>
	<title>Wanton Hubris &#187; Misc</title>
	<atom:link href="http://wantonhubris.com/blog/tag/misc/feed/" rel="self" type="application/rss+xml" />
	<link>http://wantonhubris.com/blog</link>
	<description>My work on display for the world to see.  And possibly ignore.</description>
	<lastBuildDate>Fri, 08 Apr 2011 13:46:27 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.1</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
		<!-- podcast_generator="podPress/8.8" - maintenance_release="8.8.4" -->
		<copyright>2006-2007 </copyright>
		<managingEditor>epicboy@gmail.com (Wanton Hubris)</managingEditor>
		<webMaster>epicboy@gmail.com (Wanton Hubris)</webMaster>
		<category>posts</category>
		<itunes:keywords></itunes:keywords>
		<itunes:subtitle></itunes:subtitle>
		<itunes:summary>My work on display for the world to see.  And possibly ignore.</itunes:summary>
		<itunes:author>Wanton Hubris</itunes:author>
		<itunes:category text="Society &amp; Culture"/>
		<itunes:owner>
			<itunes:name>Wanton Hubris</itunes:name>
			<itunes:email>epicboy@gmail.com</itunes:email>
		</itunes:owner>
		<itunes:block>No</itunes:block>
		<itunes:explicit>no</itunes:explicit>
		<itunes:image href="http://wantonhubris.com/blog/wp-content/plugins/podpress/images/powered_by_podpress_large.jpg" />
		<image>
			<url>http://wantonhubris.com/blog/wp-content/plugins/podpress/images/powered_by_podpress.jpg</url>
			<title>Wanton Hubris</title>
			<link>http://wantonhubris.com/blog</link>
			<width>144</width>
			<height>144</height>
		</image>
		<item>
		<title>ToeTag 2.15</title>
		<link>http://wantonhubris.com/blog/2008/08/09/toetag-215/</link>
		<comments>http://wantonhubris.com/blog/2008/08/09/toetag-215/#comments</comments>
		<pubDate>Sat, 09 Aug 2008 13:49:33 +0000</pubDate>
		<dc:creator>Warren</dc:creator>
				<category><![CDATA[Misc]]></category>
		<category><![CDATA[ToeTag]]></category>

		<guid isPermaLink="false">http://wantonhubris.com/blog/?p=256</guid>
		<description><![CDATA[Hey, a new version of ToeTag is available!  This version fixes the problems that 2.00 was having with WAD loading/saving and improves the CSG code quite a bit.
Download it here!
Of course, the source code is available on that page as well.  Have fun!
]]></description>
			<content:encoded><![CDATA[<p>Hey, a new version of ToeTag is available!  This version fixes the problems that 2.00 was having with WAD loading/saving and improves the CSG code quite a bit.</p>
<p><a href="http://wantonhubris.com/toetag/Download.html">Download it here!</a></p>
<p>Of course, the source code is available on that page as well.  Have fun!</p>
]]></content:encoded>
			<wfw:commentRss>http://wantonhubris.com/blog/2008/08/09/toetag-215/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Home Page Updated</title>
		<link>http://wantonhubris.com/blog/2008/07/26/home-page-updated/</link>
		<comments>http://wantonhubris.com/blog/2008/07/26/home-page-updated/#comments</comments>
		<pubDate>Sat, 26 Jul 2008 21:00:47 +0000</pubDate>
		<dc:creator>Warren</dc:creator>
				<category><![CDATA[Misc]]></category>
		<category><![CDATA[home page]]></category>
		<category><![CDATA[shooter in the abstract]]></category>

		<guid isPermaLink="false">http://wantonhubris.com/blog/?p=251</guid>
		<description><![CDATA[I&#8217;ve been working on the main page for the site in my minimal amounts of spare time. It now has a section for links to any games or applications I write on this site.  &#8216;Shooter in the Abstract&#8216; also has a nice web page to hold it now.
Check it out!
]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve been working on the main page for the site in my minimal amounts of spare time. It now has a section for links to any games or applications I write on this site.  &#8216;<a href="http://wantonhubris.com/shooterintheabstract">Shooter in the Abstract</a>&#8216; also has a nice web page to hold it now.</p>
<p><a href="http://wantonhubris.com">Check it out</a>!</p>
]]></content:encoded>
			<wfw:commentRss>http://wantonhubris.com/blog/2008/07/26/home-page-updated/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Zombie Garden</title>
		<link>http://wantonhubris.com/blog/2008/07/13/zombie-garden/</link>
		<comments>http://wantonhubris.com/blog/2008/07/13/zombie-garden/#comments</comments>
		<pubDate>Sun, 13 Jul 2008 20:43:14 +0000</pubDate>
		<dc:creator>Warren</dc:creator>
				<category><![CDATA[Misc]]></category>
		<category><![CDATA[garden]]></category>
		<category><![CDATA[zombie]]></category>

		<guid isPermaLink="false">http://wantonhubris.com/blog/?p=249</guid>
		<description><![CDATA[No garden is really complete without a zombie.  Here&#8217;s ours:

Click here to see more pics.
If you want one of your own, click here!
]]></description>
			<content:encoded><![CDATA[<p>No garden is really complete without a zombie.  Here&#8217;s ours:</p>
<p><img src='http://www.sandramcewen.com/zombiegarden/IMG_0042.JPG' alt='Zombie Garden' class='aligncenter' /></p>
<p><a href="http://www.sandramcewen.com/zombiegarden/">Click here to see more pics.</a></p>
<p>If you want one of your own, <a href="http://www.designtoscano.com/product/garden+statues/fantasy+statues/assorted+creatures+outdoors/the+zombie+of+montclaire+moors+sculpture+-+db383020.do">click here</a>!</p>
]]></content:encoded>
			<wfw:commentRss>http://wantonhubris.com/blog/2008/07/13/zombie-garden/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Command Line Processing In Cocoa</title>
		<link>http://wantonhubris.com/blog/2008/07/12/command-line-processing-in-cocoa/</link>
		<comments>http://wantonhubris.com/blog/2008/07/12/command-line-processing-in-cocoa/#comments</comments>
		<pubDate>Sat, 12 Jul 2008 16:37:43 +0000</pubDate>
		<dc:creator>Warren</dc:creator>
				<category><![CDATA[Misc]]></category>
		<category><![CDATA[Cocoa]]></category>
		<category><![CDATA[objective-c]]></category>

		<guid isPermaLink="false">http://wantonhubris.com/blog/?p=248</guid>
		<description><![CDATA[I stumbled over this great article from 2006 that outlines a really easy to use method of grabbing command line arguments in a Cocoa application.
Read About It Here
I threw this into a test application and it works great!  Amazing what you can find on the web sometimes.
]]></description>
			<content:encoded><![CDATA[<p>I stumbled over this great article from 2006 that outlines a really easy to use method of grabbing command line arguments in a Cocoa application.</p>
<p><a href="http://unixjunkie.blogspot.com/2006/07/command-line-processing-in-cocoa.html">Read About It Here</a></p>
<p>I threw this into a test application and it works great!  Amazing what you can find on the web sometimes.</p>
]]></content:encoded>
			<wfw:commentRss>http://wantonhubris.com/blog/2008/07/12/command-line-processing-in-cocoa/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>ToeTag 2.0 + Source Code</title>
		<link>http://wantonhubris.com/blog/2008/07/05/toetag-20-source-code/</link>
		<comments>http://wantonhubris.com/blog/2008/07/05/toetag-20-source-code/#comments</comments>
		<pubDate>Sat, 05 Jul 2008 09:54:54 +0000</pubDate>
		<dc:creator>Warren</dc:creator>
				<category><![CDATA[Misc]]></category>
		<category><![CDATA[Quake]]></category>
		<category><![CDATA[ToeTag]]></category>

		<guid isPermaLink="false">http://wantonhubris.com/blog/?p=247</guid>
		<description><![CDATA[So my Sparkle framework and appcast decided that they weren&#8217;t going to talk to each other anymore so I hit the reset button.  ToeTag is now kicking off from version 2.0 and now includes a download link for the source code!  The appcast still seems fucked up for whatever reason but I&#8217;ve decided [...]]]></description>
			<content:encoded><![CDATA[<p>So my Sparkle framework and appcast decided that they weren&#8217;t going to talk to each other anymore so I hit the reset button.  ToeTag is now kicking off from version 2.0 and now includes a download link for the source code!  The appcast still seems fucked up for whatever reason but I&#8217;ve decided to stop caring.  Anyway, download ahoy!</p>
<p><a href="http://wantonhubris.com/toetag/Download.html">Download ToeTag 2.0 + Source Code (optional)</a></p>
<p>The download for the source code is at the bottom of that page.  It&#8217;s an XCode3 project written entirely in Objective-C using the Cocoa framework.  It&#8217;s a native OSX application and compiles to a universal binary.  Enjoy!</p>
<p>This doesn&#8217;t mean that I&#8217;m going to stop developing ToeTag.  I intend to continue adding features and polishing it up until I reach a point where I can use it for level work and not ever have to think, &#8220;Man, it would be cool if ToeTag could do X&#8230;&#8221;</p>
]]></content:encoded>
			<wfw:commentRss>http://wantonhubris.com/blog/2008/07/05/toetag-20-source-code/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Updates Slowing For Now</title>
		<link>http://wantonhubris.com/blog/2008/06/17/updates-slowing-for-now/</link>
		<comments>http://wantonhubris.com/blog/2008/06/17/updates-slowing-for-now/#comments</comments>
		<pubDate>Tue, 17 Jun 2008 10:29:40 +0000</pubDate>
		<dc:creator>Warren</dc:creator>
				<category><![CDATA[Misc]]></category>

		<guid isPermaLink="false">http://wantonhubris.com/blog/?p=246</guid>
		<description><![CDATA[Work is whipping itself into a frenzy in the push to get Gears 2 out the door so updates here will be slower until that is done.  I won&#8217;t have time during the week to do anything on home projects and on the weekends I&#8217;ll probably want to go outside and refresh my memories [...]]]></description>
			<content:encoded><![CDATA[<p>Work is whipping itself into a frenzy in the push to get Gears 2 out the door so updates here will be slower until that is done.  I won&#8217;t have time during the week to do anything on home projects and on the weekends I&#8217;ll probably want to go outside and refresh my memories of what it looks like.</p>
<p>See you on the other side!</p>
]]></content:encoded>
			<wfw:commentRss>http://wantonhubris.com/blog/2008/06/17/updates-slowing-for-now/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Garbage Collection Redux</title>
		<link>http://wantonhubris.com/blog/2008/06/08/garbage-collection-redux/</link>
		<comments>http://wantonhubris.com/blog/2008/06/08/garbage-collection-redux/#comments</comments>
		<pubDate>Sun, 08 Jun 2008 12:19:40 +0000</pubDate>
		<dc:creator>Warren</dc:creator>
				<category><![CDATA[Misc]]></category>
		<category><![CDATA[garbage collection]]></category>
		<category><![CDATA[Quake]]></category>
		<category><![CDATA[ToeTag]]></category>

		<guid isPermaLink="false">http://wantonhubris.com/blog/?p=245</guid>
		<description><![CDATA[OK, so I&#8217;m back to NSAllocateCollectable as my weapon of choice instead of using NSMutableData objects.  I was getting weird errors with NSMutableData here and there so I thought, well, why not see what was actually wrong with my NSAllocateCollectable implementation?
The problem I was having that loading a large map would completely blow out [...]]]></description>
			<content:encoded><![CDATA[<p>OK, so I&#8217;m back to <strong>NSAllocateCollectable</strong> as my weapon of choice instead of using <strong>NSMutableData</strong> objects.  I was getting weird errors with <strong>NSMutableData</strong> here and there so I thought, well, why not see what was actually wrong with my <strong>NSAllocateCollectable</strong> implementation?</p>
<p>The problem I was having that loading a large map would completely blow out my 2 GB of RAM and stall the machine.  That didn&#8217;t seem right for a Quake map.  So I looked into it and the problem was two things.</p>
<p>First, the garbage collector wasn&#8217;t getting any time to run during the map load sequence.  So while I&#8217;m creating verts and brushes and planes like crazy the GC is sitting there patiently waiting for a processor break to do it&#8217;s job &#8211; which doesn&#8217;t come until the end.  So I stuck in some strategic calls to <strong>[[NSGarbageCollector defaultCollector] collectIfNeeded]</strong> and that&#8217;s happy now.  Map loading only allocates a few hundred MB in total.</p>
<p>Secondly, my render array implementation was doing a lot more work than it needed to.  What I wrote for speeding up rendering was an array of vertices, uv coordinates and colors represented by a blob of float data in RAM.  It allocates a new blob within the greater blog for each new vert/uv/color that the editor wants to draw (<em>these are grouped by texture, so all of the verts that use the same texture are drawn as one OpenGL call</em>).  It tried to optimize performance by keeping a chunk allocated that represented the maximum number of verts that were ever requested for that particular texture.  This meant that it could save itself from allocating the data blob every frame for every texture.  The trouble was that when it came time to resize the array to accommodate more verts, it wouldn&#8217;t allocate very much so it was constantly resizing the array during a map load.  This ate time like crazy.  Once I changed my &#8220;grow array by&#8221; value to something much larger, it took maybe 45% off of the load time for large maps.  It wastes a little more RAM now but since we&#8217;re talking about a few hundred MB at the most here, I&#8217;m not concerned.</p>
<p>So I&#8217;m fully garbage collected now.  Hooray!</p>
]]></content:encoded>
			<wfw:commentRss>http://wantonhubris.com/blog/2008/06/08/garbage-collection-redux/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Versions (source Control)</title>
		<link>http://wantonhubris.com/blog/2008/06/04/versions-source-control/</link>
		<comments>http://wantonhubris.com/blog/2008/06/04/versions-source-control/#comments</comments>
		<pubDate>Wed, 04 Jun 2008 23:39:23 +0000</pubDate>
		<dc:creator>Warren</dc:creator>
				<category><![CDATA[Misc]]></category>
		<category><![CDATA[source control]]></category>
		<category><![CDATA[svn]]></category>
		<category><![CDATA[versions]]></category>

		<guid isPermaLink="false">http://wantonhubris.com/blog/?p=244</guid>
		<description><![CDATA[As a heads up to any Mac users out there, the SVN (Subversion) front end called &#8216;Versions&#8217; is in BETA and available for free download:
Versions BETA
I grabbed a copy and it looks -really- slick!
]]></description>
			<content:encoded><![CDATA[<p>As a heads up to any Mac users out there, the SVN (Subversion) front end called &#8216;Versions&#8217; is in BETA and available for free download:</p>
<p><a href="http://versionsapp.com/">Versions BETA</a></p>
<p>I grabbed a copy and it looks -really- slick!</p>
]]></content:encoded>
			<wfw:commentRss>http://wantonhubris.com/blog/2008/06/04/versions-source-control/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Garbage Collection Pain</title>
		<link>http://wantonhubris.com/blog/2008/06/04/garbage-collection-pain/</link>
		<comments>http://wantonhubris.com/blog/2008/06/04/garbage-collection-pain/#comments</comments>
		<pubDate>Wed, 04 Jun 2008 16:19:57 +0000</pubDate>
		<dc:creator>Warren</dc:creator>
				<category><![CDATA[Misc]]></category>

		<guid isPermaLink="false">http://wantonhubris.com/blog/?p=243</guid>
		<description><![CDATA[So I decided to be a smarty man and change ToeTag so that every piece of memory allocated would be handled by the garbage collector.  I had several spots in the code where I was allocating standard C style memory chunks (via malloc and free) and that never sat right with me seeing as [...]]]></description>
			<content:encoded><![CDATA[<p>So I decided to be a smarty man and change ToeTag so that every piece of memory allocated would be handled by the garbage collector.  I had several spots in the code where I was allocating standard C style memory chunks (<em>via malloc and free</em>) and that never sat right with me seeing as this is 2008 and all.  I suppose when dealing with a game engine and data structures from over 10 years ago (<em>Quake</em>) it&#8217;s understandable but I wanted to do better.</p>
<p>I picked up a copy of the latest revision of Aaron Hillegass&#8217;s excellent book, <a href="http://www.amazon.com/Cocoa-Programming-Mac-OS-3rd/dp/0321503619/ref=pd_bbs_1?ie=UTF8&#038;s=books&#038;qid=1212595865&#038;sr=8-1">Cocoa Programming for Mac OSX</a>.  Within it&#8217;s pages, I found the garbage collection section which was newly added as of this version of the book.  It mentioned using the function call <strong>NSAllocateCollectable </strong>as a way of getting C style chunks of memory allocated that would be garbage collected.  Marvelous, I thought!  Unfortunately, either something is wrong or I&#8217;ve coded ToeTag in some retarded fashion that breaks this idea.  ToeTag, when loading large maps, would allocate 2+ gigs of RAM and stall the machine until I killed the process.  Just loading DM1 was taking upwards of 750 MB.  Something was wrong.</p>
<p>So I ditched that idea and noticed a class called <strong>NSMutableData</strong>.  This class gives you a beautiful object oriented way to allocate chunks of memory and get a pointer to that memory quickly and easily.  Eureka!  I changed all of the NSAllocateCollectable code to use this class instead and everything works great!</p>
<p>Not sure what was wrong with the former but the latter works perfectly.  Now ToeTag no longer has those ugly C warts on it.</p>
]]></content:encoded>
			<wfw:commentRss>http://wantonhubris.com/blog/2008/06/04/garbage-collection-pain/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>More QBSP Work</title>
		<link>http://wantonhubris.com/blog/2008/05/30/more-qbsp-work/</link>
		<comments>http://wantonhubris.com/blog/2008/05/30/more-qbsp-work/#comments</comments>
		<pubDate>Fri, 30 May 2008 12:59:04 +0000</pubDate>
		<dc:creator>Warren</dc:creator>
				<category><![CDATA[Misc]]></category>
		<category><![CDATA[qbsp]]></category>
		<category><![CDATA[Quake]]></category>

		<guid isPermaLink="false">http://wantonhubris.com/blog/?p=242</guid>
		<description><![CDATA[So I decided to take a look at multithreading QBSP since I already set up LIGHT and VIS to do it.  In looking at the code, it seems Carmack set it up to fork() the process twice instead of threading the hull building.  I assume this is because QBSP uses a ton of [...]]]></description>
			<content:encoded><![CDATA[<p>So I decided to take a look at multithreading QBSP since I already set up LIGHT and VIS to do it.  In looking at the code, it seems Carmack set it up to fork() the process twice instead of threading the hull building.  I assume this is because QBSP uses a ton of global variables which makes threading a major hassle without a lot of code refactoring.</p>
<p>At any rate, this worked straight away on Mac OSX once I enabled that code path.  What that means is that ToeTag&#8217;s QBSP will build all 3 hulls (<em>small collision, large collision and drawing hulls</em>) simultaneously instead of sequentially.  It&#8217;s not a huge savings but, hey, it&#8217;s something right?  It was getting nasty with my remix map which now takes upwards of 30 seconds to QBSP itself.  That&#8217;s been cut down to about 17 seconds now so I&#8217;m happy!</p>
]]></content:encoded>
			<wfw:commentRss>http://wantonhubris.com/blog/2008/05/30/more-qbsp-work/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>

