<?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/"
	>

<channel>
	<title>Phil Hassey</title>
	<atom:link href="http://www.philhassey.com/blog/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.philhassey.com/blog</link>
	<description>games, tech, web, stuff, biz, and bilge</description>
	<lastBuildDate>Wed, 03 Mar 2010 05:18:45 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.6</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>FEAR THE PANDA</title>
		<link>http://www.philhassey.com/blog/2010/03/02/fear-the-panda/</link>
		<comments>http://www.philhassey.com/blog/2010/03/02/fear-the-panda/#comments</comments>
		<pubDate>Wed, 03 Mar 2010 05:18:45 +0000</pubDate>
		<dc:creator>philhassey</dc:creator>
				<category><![CDATA[C++]]></category>
		<category><![CDATA[development]]></category>
		<category><![CDATA[iphone]]></category>

		<guid isPermaLink="false">http://www.philhassey.com/blog/?p=304</guid>
		<description><![CDATA[Yeah, you better &#8230;

This image represents the last few days of work.  I have ported some 3000 lines of python code to tinypyC++ code.  Fear it.
-Phil
















]]></description>
			<content:encoded><![CDATA[<p>Yeah, you better &#8230;</p>
<p><a href="http://www.philhassey.com/blog/wp-content/uploads/2010/03/pandapromo.jpg"><img class="aligncenter size-full wp-image-305" title="pandapromo" src="http://www.philhassey.com/blog/wp-content/uploads/2010/03/pandapromo.jpg" alt="pandapromo" width="375" height="532" /></a></p>
<p>This image represents the last few days of work.  I have ported some 3000 lines of python code to tinypyC++ code.  Fear it.</p>
<p>-Phil</p>
<!-- Social Bookmarks BEGIN -->
<div class="social_bookmark">
<div class="d">
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://del.icio.us/post?url=http://www.philhassey.com/blog/2010/03/02/fear-the-panda/&amp;title=FEAR+THE+PANDA" rel="nofollow" title="Add to&nbsp;Del.icio.us"><img class="social_img" src="http://www.philhassey.com/blog/wp-content/plugins/social-bookmarks/images/delicious.png" title="Add to&nbsp;Del.icio.us" alt="Add to&nbsp;Del.icio.us" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://digg.com/submit?phase=2&amp;url=http://www.philhassey.com/blog/2010/03/02/fear-the-panda/&amp;title=FEAR+THE+PANDA" rel="nofollow" title="Add to&nbsp;digg"><img class="social_img" src="http://www.philhassey.com/blog/wp-content/plugins/social-bookmarks/images/digg.png" title="Add to&nbsp;digg" alt="Add to&nbsp;digg" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.facebook.com/sharer.php?u=http://www.philhassey.com/blog/2010/03/02/fear-the-panda/" rel="nofollow" title="Add to&nbsp;Facebook"><img class="social_img" src="http://www.philhassey.com/blog/wp-content/plugins/social-bookmarks/images/facebook.png" title="Add to&nbsp;Facebook" alt="Add to&nbsp;Facebook" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.google.com/bookmarks/mark?op=edit&amp;output=popup&amp;bkmk=http://www.philhassey.com/blog/2010/03/02/fear-the-panda/&amp;title=FEAR+THE+PANDA" rel="nofollow" title="Add to&nbsp;Google Bookmarks"><img class="social_img" src="http://www.philhassey.com/blog/wp-content/plugins/social-bookmarks/images/google.png" title="Add to&nbsp;Google Bookmarks" alt="Add to&nbsp;Google Bookmarks" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://reddit.com/submit?url=http://www.philhassey.com/blog/2010/03/02/fear-the-panda/&amp;title=FEAR+THE+PANDA" rel="nofollow" title="Add to&nbsp;reddit"><img class="social_img" src="http://www.philhassey.com/blog/wp-content/plugins/social-bookmarks/images/reddit.png" title="Add to&nbsp;reddit" alt="Add to&nbsp;reddit" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://slashdot.org/bookmark.pl?url=http://www.philhassey.com/blog/2010/03/02/fear-the-panda/&amp;title=FEAR+THE+PANDA" rel="nofollow" title="Add to&nbsp;Slashdot"><img class="social_img" src="http://www.philhassey.com/blog/wp-content/plugins/social-bookmarks/images/slashdot.png" title="Add to&nbsp;Slashdot" alt="Add to&nbsp;Slashdot" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.stumbleupon.com/submit.php?url=http://www.philhassey.com/blog/2010/03/02/fear-the-panda/&amp;title=FEAR+THE+PANDA" rel="nofollow" title="Add to&nbsp;Stumble Upon"><img class="social_img" src="http://www.philhassey.com/blog/wp-content/plugins/social-bookmarks/images/stumbleupon.png" title="Add to&nbsp;Stumble Upon" alt="Add to&nbsp;Stumble Upon" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.technorati.com/faves?add=http://www.philhassey.com/blog/2010/03/02/fear-the-panda/" rel="nofollow" title="Add to&nbsp;Technorati"><img class="social_img" src="http://www.philhassey.com/blog/wp-content/plugins/social-bookmarks/images/technorati.png" title="Add to&nbsp;Technorati" alt="Add to&nbsp;Technorati" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://twitter.com/home/?status=Check+out+FEAR+THE+PANDA+@+http://www.philhassey.com/blog/2010/03/02/fear-the-panda/" rel="nofollow" title="Add to&nbsp;Twitter"><img class="social_img" src="http://www.philhassey.com/blog/wp-content/plugins/social-bookmarks/images/twitter.png" title="Add to&nbsp;Twitter" alt="Add to&nbsp;Twitter" /></a>
<br />
</div>
</div>
<!-- Social Bookmarks END -->
]]></content:encoded>
			<wfw:commentRss>http://www.philhassey.com/blog/2010/03/02/fear-the-panda/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Guide to finding Phil at GDC</title>
		<link>http://www.philhassey.com/blog/2010/02/26/guide-to-finding-phil-at-gdc/</link>
		<comments>http://www.philhassey.com/blog/2010/02/26/guide-to-finding-phil-at-gdc/#comments</comments>
		<pubDate>Sat, 27 Feb 2010 05:30:51 +0000</pubDate>
		<dc:creator>philhassey</dc:creator>
				<category><![CDATA[gamedev]]></category>

		<guid isPermaLink="false">http://www.philhassey.com/blog/?p=301</guid>
		<description><![CDATA[Hey,
So I&#8217;m going to be at GDC .. all week!  Here&#8217;s how to find me .. look for this guy:

I&#8217;m going to be speaking during the iPhone Summit about multi-player games.  Check out the talk listing here.  I&#8217;ve been slaving away at the talk all this past week, and I think it&#8217;s come out pretty [...]]]></description>
			<content:encoded><![CDATA[<p>Hey,</p>
<p>So I&#8217;m going to be at GDC .. all week!  Here&#8217;s how to find me .. look for this guy:</p>
<p><a href="http://www.philhassey.com/blog/wp-content/uploads/2010/02/IMG_5313.JPG"><img class="aligncenter size-medium wp-image-302" title="IMG_5313" src="http://www.philhassey.com/blog/wp-content/uploads/2010/02/IMG_5313-225x300.jpg" alt="IMG_5313" width="225" height="300" /></a></p>
<p>I&#8217;m going to be speaking during the iPhone Summit about multi-player games.  Check out the talk listing <a href="https://www.cmpevents.com/GD10/a.asp?option=C&amp;V=11&amp;SessID=10398">here</a>.  I&#8217;ve been slaving away at the talk all this past week, and I think it&#8217;s come out pretty sweet.  I&#8217;ll be practicing it quite a bit over the coming week so that I can hit it pretty solid come Tuesday morning.</p>
<p>Other than that, I&#8217;ll be hanging around the iPhone and Indie summits a good bit, and just generally around for the rest of the week.  If you see me, come by and say &#8216;hi&#8217;!  Send me an e-mail or comment if there is anything cool going on that I should know about.</p>
<p>Thanks!<br />
-Phil</p>
<!-- Social Bookmarks BEGIN -->
<div class="social_bookmark">
<div class="d">
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://del.icio.us/post?url=http://www.philhassey.com/blog/2010/02/26/guide-to-finding-phil-at-gdc/&amp;title=Guide+to+finding+Phil+at+GDC" rel="nofollow" title="Add to&nbsp;Del.icio.us"><img class="social_img" src="http://www.philhassey.com/blog/wp-content/plugins/social-bookmarks/images/delicious.png" title="Add to&nbsp;Del.icio.us" alt="Add to&nbsp;Del.icio.us" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://digg.com/submit?phase=2&amp;url=http://www.philhassey.com/blog/2010/02/26/guide-to-finding-phil-at-gdc/&amp;title=Guide+to+finding+Phil+at+GDC" rel="nofollow" title="Add to&nbsp;digg"><img class="social_img" src="http://www.philhassey.com/blog/wp-content/plugins/social-bookmarks/images/digg.png" title="Add to&nbsp;digg" alt="Add to&nbsp;digg" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.facebook.com/sharer.php?u=http://www.philhassey.com/blog/2010/02/26/guide-to-finding-phil-at-gdc/" rel="nofollow" title="Add to&nbsp;Facebook"><img class="social_img" src="http://www.philhassey.com/blog/wp-content/plugins/social-bookmarks/images/facebook.png" title="Add to&nbsp;Facebook" alt="Add to&nbsp;Facebook" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.google.com/bookmarks/mark?op=edit&amp;output=popup&amp;bkmk=http://www.philhassey.com/blog/2010/02/26/guide-to-finding-phil-at-gdc/&amp;title=Guide+to+finding+Phil+at+GDC" rel="nofollow" title="Add to&nbsp;Google Bookmarks"><img class="social_img" src="http://www.philhassey.com/blog/wp-content/plugins/social-bookmarks/images/google.png" title="Add to&nbsp;Google Bookmarks" alt="Add to&nbsp;Google Bookmarks" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://reddit.com/submit?url=http://www.philhassey.com/blog/2010/02/26/guide-to-finding-phil-at-gdc/&amp;title=Guide+to+finding+Phil+at+GDC" rel="nofollow" title="Add to&nbsp;reddit"><img class="social_img" src="http://www.philhassey.com/blog/wp-content/plugins/social-bookmarks/images/reddit.png" title="Add to&nbsp;reddit" alt="Add to&nbsp;reddit" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://slashdot.org/bookmark.pl?url=http://www.philhassey.com/blog/2010/02/26/guide-to-finding-phil-at-gdc/&amp;title=Guide+to+finding+Phil+at+GDC" rel="nofollow" title="Add to&nbsp;Slashdot"><img class="social_img" src="http://www.philhassey.com/blog/wp-content/plugins/social-bookmarks/images/slashdot.png" title="Add to&nbsp;Slashdot" alt="Add to&nbsp;Slashdot" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.stumbleupon.com/submit.php?url=http://www.philhassey.com/blog/2010/02/26/guide-to-finding-phil-at-gdc/&amp;title=Guide+to+finding+Phil+at+GDC" rel="nofollow" title="Add to&nbsp;Stumble Upon"><img class="social_img" src="http://www.philhassey.com/blog/wp-content/plugins/social-bookmarks/images/stumbleupon.png" title="Add to&nbsp;Stumble Upon" alt="Add to&nbsp;Stumble Upon" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.technorati.com/faves?add=http://www.philhassey.com/blog/2010/02/26/guide-to-finding-phil-at-gdc/" rel="nofollow" title="Add to&nbsp;Technorati"><img class="social_img" src="http://www.philhassey.com/blog/wp-content/plugins/social-bookmarks/images/technorati.png" title="Add to&nbsp;Technorati" alt="Add to&nbsp;Technorati" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://twitter.com/home/?status=Check+out+Guide+to+finding+Phil+at+GDC+@+http://www.philhassey.com/blog/2010/02/26/guide-to-finding-phil-at-gdc/" rel="nofollow" title="Add to&nbsp;Twitter"><img class="social_img" src="http://www.philhassey.com/blog/wp-content/plugins/social-bookmarks/images/twitter.png" title="Add to&nbsp;Twitter" alt="Add to&nbsp;Twitter" /></a>
<br />
</div>
</div>
<!-- Social Bookmarks END -->
]]></content:encoded>
			<wfw:commentRss>http://www.philhassey.com/blog/2010/02/26/guide-to-finding-phil-at-gdc/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Rebuilding my GDC talk &#8230;</title>
		<link>http://www.philhassey.com/blog/2010/02/22/rebuilding-my-gdc-talk/</link>
		<comments>http://www.philhassey.com/blog/2010/02/22/rebuilding-my-gdc-talk/#comments</comments>
		<pubDate>Mon, 22 Feb 2010 19:38:53 +0000</pubDate>
		<dc:creator>philhassey</dc:creator>
				<category><![CDATA[python]]></category>

		<guid isPermaLink="false">http://www.philhassey.com/blog/?p=298</guid>
		<description><![CDATA[So, wow .. I&#8217;m going to be speaking during the iPhone summit at GDC in two weeks.  The last few months have been a whirlwind of activity for me as I&#8217;ve been churning out Galcon Fusion.  So now it&#8217;s time to get to business getting my talk ready.
Part of the GDC talk process [...]]]></description>
			<content:encoded><![CDATA[<div class="wp-caption alignright" style="width: 244px"><a href="http://www.philhassey.com/blog/2008/06/02/phil-infiltrates-the-colorado-gop/"><img title="Me speaking two sentences at some political thingie." src="http://www.philhassey.com/blog/wp-content/uploads/2008/06/phil-closeup-234x300.jpg" alt="Me speaking two sentences at some political thingie." width="234" height="300" /></a><p class="wp-caption-text">Me making a 15 second speech at some crazy political thing.</p></div>
<p>So, wow .. I&#8217;m going to be speaking during the iPhone summit at GDC in two weeks.  The last few months have been a whirlwind of activity for me as I&#8217;ve been churning out Galcon Fusion.  So now it&#8217;s time to get to business getting my talk ready.</p>
<p>Part of the GDC talk process is sending them a title and a draft version of your talk a month or so in advance.  I did this with my talk, which was titled, &#8220;Nuts &amp; Bolts of Internet Multiplayer iPhone Game Testing&#8221; .. The feedback I got from the iPhone summit advisors was (to summarize): &#8220;This talk looks short, and maybe a bit boring.&#8221;</p>
<p>After a week of soul searching and considering my options, I had to agree.  I wouldn&#8217;t want to go to my talk, it didn&#8217;t sound that great.  Having nowhere else to turn to, I turned to PyCon.  I knew that at PyCon people gave talks about how to give talks almost every year.  I&#8217;ve missed the last two PyCons, so thankfully they&#8217;ve been posting them online!</p>
<p>I watched Andrew Kuchling&#8217;s <a href="http://us.pycon.org/2009/conference/schedule/event/6/">How to Give a Python Talk</a> which gave me some insight.  The three points he made that really struck me were:</p>
<ul>
<li>Think About Your Audience
<p>This means I need to give my audience a reason to be at my talk.  What are they interested in?  What do they want to accomplish?  What can I give them so they are empowered to accomplish this goal?</li>
<li>Too Short &gt; Too Long
<p>Andrew related that it&#8217;s better to cover too much material in too little time, then to cover too little material in too much time.  If I can cover a blazing amount of information, but at least hit some key points with a strong note, the audience will come away with something.  If I drone away about nothing for 30 minutes, they&#8217;ll come away bored.</li>
<li> Rehearse your talk!
<p>I knew this one.  But, it&#8217;s good to be reminded.  To those who are coming to GDC and plan on seeing my talk, fear not.  I&#8217;ve got this week and next week with NOTHING planned, so I&#8217;ll be rehearsing my talk MANY times.  I plan on delivering this one with a bit more style than last time.  Last time was at 360iDev, my first &#8220;long&#8221; talk at a conference.  I  rehearsed my talk about 1.5 times, and I think it showed.</li>
</ul>
<p>I think for me the first two points answer my question really quickly.  Why does a dev want to hear me talk?  They want to learn how to make a multi-player game.  As for length, I can cover a bunch of keys to creating a multi-player game and maybe people will latch onto a few key points.  If I only cover testing (as was my original plan) the people at my talk would walk away completely unable to use that information if they don&#8217;t have any idea where to start.  Instead, if I give the whole picture, and include testing as part of it, they&#8217;ll have enough to go on to get started creating iPhone multi-player games.</p>
<p>-Phil</p>
<p>P.S. Yeah, if anyone wants to give me tips on talking, feel free.  Oh, and I think my talk is going to be re-titled to: &#8220;How GALCON Conquered the Universe of Online Multiplayer Games&#8221;</p>
<!-- Social Bookmarks BEGIN -->
<div class="social_bookmark">
<div class="d">
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://del.icio.us/post?url=http://www.philhassey.com/blog/2010/02/22/rebuilding-my-gdc-talk/&amp;title=Rebuilding+my+GDC+talk+%26%238230%3B" rel="nofollow" title="Add to&nbsp;Del.icio.us"><img class="social_img" src="http://www.philhassey.com/blog/wp-content/plugins/social-bookmarks/images/delicious.png" title="Add to&nbsp;Del.icio.us" alt="Add to&nbsp;Del.icio.us" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://digg.com/submit?phase=2&amp;url=http://www.philhassey.com/blog/2010/02/22/rebuilding-my-gdc-talk/&amp;title=Rebuilding+my+GDC+talk+%26%238230%3B" rel="nofollow" title="Add to&nbsp;digg"><img class="social_img" src="http://www.philhassey.com/blog/wp-content/plugins/social-bookmarks/images/digg.png" title="Add to&nbsp;digg" alt="Add to&nbsp;digg" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.facebook.com/sharer.php?u=http://www.philhassey.com/blog/2010/02/22/rebuilding-my-gdc-talk/" rel="nofollow" title="Add to&nbsp;Facebook"><img class="social_img" src="http://www.philhassey.com/blog/wp-content/plugins/social-bookmarks/images/facebook.png" title="Add to&nbsp;Facebook" alt="Add to&nbsp;Facebook" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.google.com/bookmarks/mark?op=edit&amp;output=popup&amp;bkmk=http://www.philhassey.com/blog/2010/02/22/rebuilding-my-gdc-talk/&amp;title=Rebuilding+my+GDC+talk+%26%238230%3B" rel="nofollow" title="Add to&nbsp;Google Bookmarks"><img class="social_img" src="http://www.philhassey.com/blog/wp-content/plugins/social-bookmarks/images/google.png" title="Add to&nbsp;Google Bookmarks" alt="Add to&nbsp;Google Bookmarks" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://reddit.com/submit?url=http://www.philhassey.com/blog/2010/02/22/rebuilding-my-gdc-talk/&amp;title=Rebuilding+my+GDC+talk+%26%238230%3B" rel="nofollow" title="Add to&nbsp;reddit"><img class="social_img" src="http://www.philhassey.com/blog/wp-content/plugins/social-bookmarks/images/reddit.png" title="Add to&nbsp;reddit" alt="Add to&nbsp;reddit" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://slashdot.org/bookmark.pl?url=http://www.philhassey.com/blog/2010/02/22/rebuilding-my-gdc-talk/&amp;title=Rebuilding+my+GDC+talk+%26%238230%3B" rel="nofollow" title="Add to&nbsp;Slashdot"><img class="social_img" src="http://www.philhassey.com/blog/wp-content/plugins/social-bookmarks/images/slashdot.png" title="Add to&nbsp;Slashdot" alt="Add to&nbsp;Slashdot" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.stumbleupon.com/submit.php?url=http://www.philhassey.com/blog/2010/02/22/rebuilding-my-gdc-talk/&amp;title=Rebuilding+my+GDC+talk+%26%238230%3B" rel="nofollow" title="Add to&nbsp;Stumble Upon"><img class="social_img" src="http://www.philhassey.com/blog/wp-content/plugins/social-bookmarks/images/stumbleupon.png" title="Add to&nbsp;Stumble Upon" alt="Add to&nbsp;Stumble Upon" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.technorati.com/faves?add=http://www.philhassey.com/blog/2010/02/22/rebuilding-my-gdc-talk/" rel="nofollow" title="Add to&nbsp;Technorati"><img class="social_img" src="http://www.philhassey.com/blog/wp-content/plugins/social-bookmarks/images/technorati.png" title="Add to&nbsp;Technorati" alt="Add to&nbsp;Technorati" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://twitter.com/home/?status=Check+out+Rebuilding+my+GDC+talk+%26%238230%3B+@+http://www.philhassey.com/blog/2010/02/22/rebuilding-my-gdc-talk/" rel="nofollow" title="Add to&nbsp;Twitter"><img class="social_img" src="http://www.philhassey.com/blog/wp-content/plugins/social-bookmarks/images/twitter.png" title="Add to&nbsp;Twitter" alt="Add to&nbsp;Twitter" /></a>
<br />
</div>
</div>
<!-- Social Bookmarks END -->
]]></content:encoded>
			<wfw:commentRss>http://www.philhassey.com/blog/2010/02/22/rebuilding-my-gdc-talk/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>The Galcon Fusion beta testers rocked</title>
		<link>http://www.philhassey.com/blog/2010/02/11/the-galcon-fusion-beta-testers-rocked/</link>
		<comments>http://www.philhassey.com/blog/2010/02/11/the-galcon-fusion-beta-testers-rocked/#comments</comments>
		<pubDate>Fri, 12 Feb 2010 02:21:35 +0000</pubDate>
		<dc:creator>philhassey</dc:creator>
				<category><![CDATA[bugs]]></category>
		<category><![CDATA[development]]></category>
		<category><![CDATA[galcon]]></category>
		<category><![CDATA[gamedev]]></category>
		<category><![CDATA[python]]></category>

		<guid isPermaLink="false">http://www.philhassey.com/blog/?p=294</guid>
		<description><![CDATA[&#8220;Yay, it’s finally here! Check out Galcon Fusion today! We’ve got a free demo and it works on Windows, Mac OS X, Linux, and Steam! It features some crazy nice hi-res graphics and soundtrack. And epic multi-player battles like you’ve never seen ‘em before! Have fun!&#8221; &#60;&#8211; marketing blurb  
Okay, for some dev thoughts. [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.galcon.com/fusion/"><img class="alignright size-medium wp-image-295" title="Galcon Fusion has arrived." src="http://www.philhassey.com/blog/wp-content/uploads/2010/02/fusion-poster2-196x300.jpg" alt="Galcon Fusion has arrived." width="196" height="300" /></a>&#8220;Yay, it’s finally here! Check out <a href='http://www.galcon.com/fusion/'>Galcon Fusion</a> today! We’ve got a free demo and it works on Windows, Mac OS X, Linux, and Steam! It features some crazy nice hi-res graphics and soundtrack. And epic multi-player battles like you’ve never seen ‘em before! Have fun!&#8221; &lt;&#8211; marketing blurb <img src='http://www.philhassey.com/blog/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' /> </p>
<p>Okay, for some dev thoughts.  Man, it was a long week!  Adding the &#8220;demo&#8221; feature to the build was a ton of work.  And then doing all that other &#8217;stuff&#8217; that sort of comes up.  I think the one serious lesson I&#8217;ve learned in this whole process is that beta-testers are awesome.</p>
<p>Really awesome.  I had about 50 people who I passed out 10 builds of the game to over the past 3 months.  Some of these people put in several dozen hours of play time.  All this was a huge help for me, as this was my first desktop &#8216;3D&#8217; game, so I had a lot of learning to do in terms of graphics capabilities.  As in, I was able to get the game to run on my computer which is a pretty nice MacBook Pro .. but not everyone else&#8217;s.</p>
<p>The beta tester feedback was huge, I was able to get the game running on old PPC macs, various linux netbooks, and who knows what else .. as long as it had a somewhat reasonable 3D card.  I changed the memory requirement for graphics from about 200 MB down to < 64MB.  Without any noticeable reduction in graphics quality even in HD video modes.  In fact, that reduction changed the loading time on my computer from 5-8 seconds down to about 1 second <img src='http://www.philhassey.com/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>Anyway, I think I&#8217;m going to take a nap.  It&#8217;s been a long week, and I really appreciate everyone who helped me get this game put together.  Give it a whirl, and thank the beta testers!</p>
<!-- Social Bookmarks BEGIN -->
<div class="social_bookmark">
<div class="d">
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://del.icio.us/post?url=http://www.philhassey.com/blog/2010/02/11/the-galcon-fusion-beta-testers-rocked/&amp;title=The+Galcon+Fusion+beta+testers+rocked" rel="nofollow" title="Add to&nbsp;Del.icio.us"><img class="social_img" src="http://www.philhassey.com/blog/wp-content/plugins/social-bookmarks/images/delicious.png" title="Add to&nbsp;Del.icio.us" alt="Add to&nbsp;Del.icio.us" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://digg.com/submit?phase=2&amp;url=http://www.philhassey.com/blog/2010/02/11/the-galcon-fusion-beta-testers-rocked/&amp;title=The+Galcon+Fusion+beta+testers+rocked" rel="nofollow" title="Add to&nbsp;digg"><img class="social_img" src="http://www.philhassey.com/blog/wp-content/plugins/social-bookmarks/images/digg.png" title="Add to&nbsp;digg" alt="Add to&nbsp;digg" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.facebook.com/sharer.php?u=http://www.philhassey.com/blog/2010/02/11/the-galcon-fusion-beta-testers-rocked/" rel="nofollow" title="Add to&nbsp;Facebook"><img class="social_img" src="http://www.philhassey.com/blog/wp-content/plugins/social-bookmarks/images/facebook.png" title="Add to&nbsp;Facebook" alt="Add to&nbsp;Facebook" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.google.com/bookmarks/mark?op=edit&amp;output=popup&amp;bkmk=http://www.philhassey.com/blog/2010/02/11/the-galcon-fusion-beta-testers-rocked/&amp;title=The+Galcon+Fusion+beta+testers+rocked" rel="nofollow" title="Add to&nbsp;Google Bookmarks"><img class="social_img" src="http://www.philhassey.com/blog/wp-content/plugins/social-bookmarks/images/google.png" title="Add to&nbsp;Google Bookmarks" alt="Add to&nbsp;Google Bookmarks" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://reddit.com/submit?url=http://www.philhassey.com/blog/2010/02/11/the-galcon-fusion-beta-testers-rocked/&amp;title=The+Galcon+Fusion+beta+testers+rocked" rel="nofollow" title="Add to&nbsp;reddit"><img class="social_img" src="http://www.philhassey.com/blog/wp-content/plugins/social-bookmarks/images/reddit.png" title="Add to&nbsp;reddit" alt="Add to&nbsp;reddit" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://slashdot.org/bookmark.pl?url=http://www.philhassey.com/blog/2010/02/11/the-galcon-fusion-beta-testers-rocked/&amp;title=The+Galcon+Fusion+beta+testers+rocked" rel="nofollow" title="Add to&nbsp;Slashdot"><img class="social_img" src="http://www.philhassey.com/blog/wp-content/plugins/social-bookmarks/images/slashdot.png" title="Add to&nbsp;Slashdot" alt="Add to&nbsp;Slashdot" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.stumbleupon.com/submit.php?url=http://www.philhassey.com/blog/2010/02/11/the-galcon-fusion-beta-testers-rocked/&amp;title=The+Galcon+Fusion+beta+testers+rocked" rel="nofollow" title="Add to&nbsp;Stumble Upon"><img class="social_img" src="http://www.philhassey.com/blog/wp-content/plugins/social-bookmarks/images/stumbleupon.png" title="Add to&nbsp;Stumble Upon" alt="Add to&nbsp;Stumble Upon" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.technorati.com/faves?add=http://www.philhassey.com/blog/2010/02/11/the-galcon-fusion-beta-testers-rocked/" rel="nofollow" title="Add to&nbsp;Technorati"><img class="social_img" src="http://www.philhassey.com/blog/wp-content/plugins/social-bookmarks/images/technorati.png" title="Add to&nbsp;Technorati" alt="Add to&nbsp;Technorati" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://twitter.com/home/?status=Check+out+The+Galcon+Fusion+beta+testers+rocked+@+http://www.philhassey.com/blog/2010/02/11/the-galcon-fusion-beta-testers-rocked/" rel="nofollow" title="Add to&nbsp;Twitter"><img class="social_img" src="http://www.philhassey.com/blog/wp-content/plugins/social-bookmarks/images/twitter.png" title="Add to&nbsp;Twitter" alt="Add to&nbsp;Twitter" /></a>
<br />
</div>
</div>
<!-- Social Bookmarks END -->
]]></content:encoded>
			<wfw:commentRss>http://www.philhassey.com/blog/2010/02/11/the-galcon-fusion-beta-testers-rocked/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>5 awkward and 5 awesome things about lua &#8230;</title>
		<link>http://www.philhassey.com/blog/2010/01/29/5-awkward-and-5-awesome-things-about-lua/</link>
		<comments>http://www.philhassey.com/blog/2010/01/29/5-awkward-and-5-awesome-things-about-lua/#comments</comments>
		<pubDate>Fri, 29 Jan 2010 20:33:37 +0000</pubDate>
		<dc:creator>philhassey</dc:creator>
				<category><![CDATA[development]]></category>
		<category><![CDATA[languages]]></category>
		<category><![CDATA[python]]></category>

		<guid isPermaLink="false">http://www.philhassey.com/blog/?p=291</guid>
		<description><![CDATA[Hey,
I&#8217;ve been spending some time checking out lua, because I&#8217;m thinking about using it for scripting in games.  I&#8217;m looking at it instead of tinypy because tinypy is slow and really needs some more TLC to be totally useful to me.  However, after looking at lua for a while, I&#8217;m finding the things that make [...]]]></description>
			<content:encoded><![CDATA[<p>Hey,</p>
<p>I&#8217;ve been spending some time checking out lua, because I&#8217;m thinking about using it for scripting in games.  I&#8217;m looking at it instead of tinypy because tinypy is slow and really needs some more TLC to be totally useful to me.  However, after looking at lua for a while, I&#8217;m finding the things that make it feel awkward to me.</p>
<ol>
<li>List indexes starting at 1.</li>
<li>For loops use [a,b] intervals</li>
<li>No += operator.</li>
<li>do / end keywords instead of { }</li>
<li>List and Dict types combined into one</li>
</ol>
<p>At the same time, I&#8217;ve found that lua is totally awesome.  I mean, wow.  Really slick stuff!  Here&#8217;s 5 awesome things:</p>
<ol>
<li>Small codebase</li>
<li>Faster than other dynamic languages</li>
<li>Easy API integration</li>
<li>Coroutines &lt;- these are neat!</li>
<li>State is serializable</li>
</ol>
<p>So here are my thoughts:</p>
<ul>
<li>The first 4 awkward things are superficial, I could probably hack those into shape in a day or two.  The 5th item (List + Dict) as one item is probably not something I can fix, but I could probably live with it.</li>
<li>If I changed the language like that, and provided it for users to create mods for my games I would not be able to give them a link to the lua documentation, since it would not be accurate anymore.</li>
</ul>
<p>Not quite sure what to do here.  Lua seems great, though a few language design decisions seem awkward to me.  I could change the language easily enough, but then I would be breaking all the lua documentation for my users.</p>
<p>Anyone got some language-design thoughts on this one?</p>
<p>-Phil</p>
<!-- Social Bookmarks BEGIN -->
<div class="social_bookmark">
<div class="d">
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://del.icio.us/post?url=http://www.philhassey.com/blog/2010/01/29/5-awkward-and-5-awesome-things-about-lua/&amp;title=5+awkward+and+5+awesome+things+about+lua+%26%238230%3B" rel="nofollow" title="Add to&nbsp;Del.icio.us"><img class="social_img" src="http://www.philhassey.com/blog/wp-content/plugins/social-bookmarks/images/delicious.png" title="Add to&nbsp;Del.icio.us" alt="Add to&nbsp;Del.icio.us" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://digg.com/submit?phase=2&amp;url=http://www.philhassey.com/blog/2010/01/29/5-awkward-and-5-awesome-things-about-lua/&amp;title=5+awkward+and+5+awesome+things+about+lua+%26%238230%3B" rel="nofollow" title="Add to&nbsp;digg"><img class="social_img" src="http://www.philhassey.com/blog/wp-content/plugins/social-bookmarks/images/digg.png" title="Add to&nbsp;digg" alt="Add to&nbsp;digg" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.facebook.com/sharer.php?u=http://www.philhassey.com/blog/2010/01/29/5-awkward-and-5-awesome-things-about-lua/" rel="nofollow" title="Add to&nbsp;Facebook"><img class="social_img" src="http://www.philhassey.com/blog/wp-content/plugins/social-bookmarks/images/facebook.png" title="Add to&nbsp;Facebook" alt="Add to&nbsp;Facebook" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.google.com/bookmarks/mark?op=edit&amp;output=popup&amp;bkmk=http://www.philhassey.com/blog/2010/01/29/5-awkward-and-5-awesome-things-about-lua/&amp;title=5+awkward+and+5+awesome+things+about+lua+%26%238230%3B" rel="nofollow" title="Add to&nbsp;Google Bookmarks"><img class="social_img" src="http://www.philhassey.com/blog/wp-content/plugins/social-bookmarks/images/google.png" title="Add to&nbsp;Google Bookmarks" alt="Add to&nbsp;Google Bookmarks" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://reddit.com/submit?url=http://www.philhassey.com/blog/2010/01/29/5-awkward-and-5-awesome-things-about-lua/&amp;title=5+awkward+and+5+awesome+things+about+lua+%26%238230%3B" rel="nofollow" title="Add to&nbsp;reddit"><img class="social_img" src="http://www.philhassey.com/blog/wp-content/plugins/social-bookmarks/images/reddit.png" title="Add to&nbsp;reddit" alt="Add to&nbsp;reddit" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://slashdot.org/bookmark.pl?url=http://www.philhassey.com/blog/2010/01/29/5-awkward-and-5-awesome-things-about-lua/&amp;title=5+awkward+and+5+awesome+things+about+lua+%26%238230%3B" rel="nofollow" title="Add to&nbsp;Slashdot"><img class="social_img" src="http://www.philhassey.com/blog/wp-content/plugins/social-bookmarks/images/slashdot.png" title="Add to&nbsp;Slashdot" alt="Add to&nbsp;Slashdot" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.stumbleupon.com/submit.php?url=http://www.philhassey.com/blog/2010/01/29/5-awkward-and-5-awesome-things-about-lua/&amp;title=5+awkward+and+5+awesome+things+about+lua+%26%238230%3B" rel="nofollow" title="Add to&nbsp;Stumble Upon"><img class="social_img" src="http://www.philhassey.com/blog/wp-content/plugins/social-bookmarks/images/stumbleupon.png" title="Add to&nbsp;Stumble Upon" alt="Add to&nbsp;Stumble Upon" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.technorati.com/faves?add=http://www.philhassey.com/blog/2010/01/29/5-awkward-and-5-awesome-things-about-lua/" rel="nofollow" title="Add to&nbsp;Technorati"><img class="social_img" src="http://www.philhassey.com/blog/wp-content/plugins/social-bookmarks/images/technorati.png" title="Add to&nbsp;Technorati" alt="Add to&nbsp;Technorati" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://twitter.com/home/?status=Check+out+5+awkward+and+5+awesome+things+about+lua+%26%238230%3B+@+http://www.philhassey.com/blog/2010/01/29/5-awkward-and-5-awesome-things-about-lua/" rel="nofollow" title="Add to&nbsp;Twitter"><img class="social_img" src="http://www.philhassey.com/blog/wp-content/plugins/social-bookmarks/images/twitter.png" title="Add to&nbsp;Twitter" alt="Add to&nbsp;Twitter" /></a>
<br />
</div>
</div>
<!-- Social Bookmarks END -->
]]></content:encoded>
			<wfw:commentRss>http://www.philhassey.com/blog/2010/01/29/5-awkward-and-5-awesome-things-about-lua/feed/</wfw:commentRss>
		<slash:comments>23</slash:comments>
		</item>
		<item>
		<title>Galcon Fusion announced &#8211; Finally!</title>
		<link>http://www.philhassey.com/blog/2010/01/29/galcon-fusion-announced-finally/</link>
		<comments>http://www.philhassey.com/blog/2010/01/29/galcon-fusion-announced-finally/#comments</comments>
		<pubDate>Fri, 29 Jan 2010 06:16:45 +0000</pubDate>
		<dc:creator>philhassey</dc:creator>
				<category><![CDATA[biz]]></category>
		<category><![CDATA[development]]></category>
		<category><![CDATA[galcon]]></category>
		<category><![CDATA[gamedev]]></category>

		<guid isPermaLink="false">http://www.philhassey.com/blog/?p=288</guid>
		<description><![CDATA[Hey,
So, I&#8217;m finally announcing Galcon Fusion to the world.  Fusion is a port of iPhone Galcon + Galcon Labs to the desktop.  This time with hi-def graphics and a full interactive soundtrack.  It&#8217;s going to be coming to Steam and direct on my website on Feb. 11.  Users who supported me when I was first starting [...]]]></description>
			<content:encoded><![CDATA[<p>Hey,</p>
<p>So, I&#8217;m finally announcing <a href="http://www.galcon.com/fusion/">Galcon Fusion</a> to the world.  Fusion is a port of iPhone Galcon + Galcon Labs to the desktop.  This time with hi-def graphics and a full interactive soundtrack.  It&#8217;s going to be coming to Steam and direct on my website on Feb. 11.  Users who supported me when I was first starting (as in, you bought desktop Galcon), your license is compatible with Galcon Fusion.  Thanks!</p>
<p><a href="http://www.philhassey.com/blog/wp-content/uploads/2010/01/fusion-pink-green.png"><img class="aligncenter size-medium wp-image-289" title="fusion-pink-green" src="http://www.philhassey.com/blog/wp-content/uploads/2010/01/fusion-pink-green-300x168.png" alt="fusion-pink-green" width="300" height="168" /></a></p>
<p>There are a few technical things that were challenging, dealing with endiannes for my network code, supporting fullscreen vs widescreen resolutions, and supporting a wide range of resolutions (from 800&#215;600 all the way up to 1920&#215;1080.)  To make it short, here are a few conclusions: best to support endiannes from the start, fullscreen vs widescreen is a pain, and baking lots of image data into your binary is a pain because it requires a ton of recompilation.  Oh, and installing VC++2008 is waaaay easier than installing mingw32, but keeping code working on both takes more effort.</p>
<p>I think my biggest conclusion comes along with this announcement, is that doing &#8220;secret dev&#8221; work isn&#8217;t really that sensible.  If you look at that last paragraph, there are a ton of issues I could have documented in my blog that I didn&#8217;t because I was all being secretive.  And hey, since I was so mum on this, nobody has heard about it until today.  I guess there might be some benefits to this (??) but I can&#8217;t think of what they are.  I think blogging about my progress is a good way for me to be able to see what I&#8217;m doing and not get lost in the haze myself.  My recent article on VC++2008 is a great example of something I&#8217;m going to get quite a bit of value out of just for my own reference.</p>
<p>One big different thing I&#8217;m doing with this project is my wife Nan is doing the PR for it.  She&#8217;s contacting all the reviewers, the general press, the newsletters, the announcement blog, twitter, and everything.  I&#8217;m trying to take a more dev-only role in the announcement.  This is nice, because I&#8217;m not very good on PR.  I try .. but I really don&#8217;t do it as well as I want to, largely because on a launch of a product I&#8217;ve always got about 50 technical things I&#8217;m trying to do along with the PR!</p>
<p>-Phil</p>
<!-- Social Bookmarks BEGIN -->
<div class="social_bookmark">
<div class="d">
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://del.icio.us/post?url=http://www.philhassey.com/blog/2010/01/29/galcon-fusion-announced-finally/&amp;title=Galcon+Fusion+announced+%26%238211%3B+Finally%21" rel="nofollow" title="Add to&nbsp;Del.icio.us"><img class="social_img" src="http://www.philhassey.com/blog/wp-content/plugins/social-bookmarks/images/delicious.png" title="Add to&nbsp;Del.icio.us" alt="Add to&nbsp;Del.icio.us" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://digg.com/submit?phase=2&amp;url=http://www.philhassey.com/blog/2010/01/29/galcon-fusion-announced-finally/&amp;title=Galcon+Fusion+announced+%26%238211%3B+Finally%21" rel="nofollow" title="Add to&nbsp;digg"><img class="social_img" src="http://www.philhassey.com/blog/wp-content/plugins/social-bookmarks/images/digg.png" title="Add to&nbsp;digg" alt="Add to&nbsp;digg" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.facebook.com/sharer.php?u=http://www.philhassey.com/blog/2010/01/29/galcon-fusion-announced-finally/" rel="nofollow" title="Add to&nbsp;Facebook"><img class="social_img" src="http://www.philhassey.com/blog/wp-content/plugins/social-bookmarks/images/facebook.png" title="Add to&nbsp;Facebook" alt="Add to&nbsp;Facebook" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.google.com/bookmarks/mark?op=edit&amp;output=popup&amp;bkmk=http://www.philhassey.com/blog/2010/01/29/galcon-fusion-announced-finally/&amp;title=Galcon+Fusion+announced+%26%238211%3B+Finally%21" rel="nofollow" title="Add to&nbsp;Google Bookmarks"><img class="social_img" src="http://www.philhassey.com/blog/wp-content/plugins/social-bookmarks/images/google.png" title="Add to&nbsp;Google Bookmarks" alt="Add to&nbsp;Google Bookmarks" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://reddit.com/submit?url=http://www.philhassey.com/blog/2010/01/29/galcon-fusion-announced-finally/&amp;title=Galcon+Fusion+announced+%26%238211%3B+Finally%21" rel="nofollow" title="Add to&nbsp;reddit"><img class="social_img" src="http://www.philhassey.com/blog/wp-content/plugins/social-bookmarks/images/reddit.png" title="Add to&nbsp;reddit" alt="Add to&nbsp;reddit" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://slashdot.org/bookmark.pl?url=http://www.philhassey.com/blog/2010/01/29/galcon-fusion-announced-finally/&amp;title=Galcon+Fusion+announced+%26%238211%3B+Finally%21" rel="nofollow" title="Add to&nbsp;Slashdot"><img class="social_img" src="http://www.philhassey.com/blog/wp-content/plugins/social-bookmarks/images/slashdot.png" title="Add to&nbsp;Slashdot" alt="Add to&nbsp;Slashdot" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.stumbleupon.com/submit.php?url=http://www.philhassey.com/blog/2010/01/29/galcon-fusion-announced-finally/&amp;title=Galcon+Fusion+announced+%26%238211%3B+Finally%21" rel="nofollow" title="Add to&nbsp;Stumble Upon"><img class="social_img" src="http://www.philhassey.com/blog/wp-content/plugins/social-bookmarks/images/stumbleupon.png" title="Add to&nbsp;Stumble Upon" alt="Add to&nbsp;Stumble Upon" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.technorati.com/faves?add=http://www.philhassey.com/blog/2010/01/29/galcon-fusion-announced-finally/" rel="nofollow" title="Add to&nbsp;Technorati"><img class="social_img" src="http://www.philhassey.com/blog/wp-content/plugins/social-bookmarks/images/technorati.png" title="Add to&nbsp;Technorati" alt="Add to&nbsp;Technorati" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://twitter.com/home/?status=Check+out+Galcon+Fusion+announced+%26%238211%3B+Finally%21+@+http://www.philhassey.com/blog/2010/01/29/galcon-fusion-announced-finally/" rel="nofollow" title="Add to&nbsp;Twitter"><img class="social_img" src="http://www.philhassey.com/blog/wp-content/plugins/social-bookmarks/images/twitter.png" title="Add to&nbsp;Twitter" alt="Add to&nbsp;Twitter" /></a>
<br />
</div>
</div>
<!-- Social Bookmarks END -->
]]></content:encoded>
			<wfw:commentRss>http://www.philhassey.com/blog/2010/01/29/galcon-fusion-announced-finally/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>VisualC++ 2008 for gcc / SDL people</title>
		<link>http://www.philhassey.com/blog/2010/01/14/visualc-2008-for-gcc-sdl-people/</link>
		<comments>http://www.philhassey.com/blog/2010/01/14/visualc-2008-for-gcc-sdl-people/#comments</comments>
		<pubDate>Thu, 14 Jan 2010 19:24:27 +0000</pubDate>
		<dc:creator>philhassey</dc:creator>
				<category><![CDATA[C++]]></category>
		<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[development]]></category>

		<guid isPermaLink="false">http://www.philhassey.com/blog/?p=266</guid>
		<description><![CDATA[I&#8217;ve had to port a project to VC 2008 from my usual mingw setup.  Here&#8217;s what I did.  This covers quite a few things, in particular where to find common GCC settings in VC land.
Setting up the project

New project
Type: win32
Template: Win32 console if you want a console.  Or just Win32 Project if you don&#8217;t want [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve had to port a project to VC 2008 from my usual mingw setup.  Here&#8217;s what I did.  This covers quite a few things, in particular where to find common GCC settings in VC land.</p>
<div><strong>Setting up the project</strong></div>
<ol>
<li>New project</li>
<li>Type: win32</li>
<li>Template: Win32 console if you want a console.  Or just Win32 Project if you don&#8217;t want the console to pop up.</li>
<li>Choose a name for your project</li>
<li>The solution name is the folder everything gets put in.  In VC, you can have several projects within a single solution.</li>
<li>On App settings, I choose Windows application, Empty project</li>
</ol>
<p><strong>Adding the source files</strong></p>
<ol>
<li>I right click on my project name and Add&gt;New filter, and use that to bundle a few different sets of source files together</li>
<li>This is done so that VC will compile the files, but keep in mind that the separations don&#8217;t seem to mean anything to VC.  It&#8217;s just for your visual convenience.</li>
<li>Note that if there are two files with the same base name &#8220;dostuff.c&#8221; and &#8220;dostuff.cc&#8221; this will cause VC to choke during compilation as it will create two .obj files with the same name and fail during linking.</li>
<li>VC doesn&#8217;t support C99 so any C99 files will have to be Right Click &gt; Properties &gt; C/C++ &gt; Advanced &gt; Compile as &gt; C++ Code</li>
</ol>
<p>Note: a Project can have a number Configurations (Debug, Release ..) If you are targeting a certain distribution site with some special requirements you can add more Configurations via Solution &gt; Properties &gt; Configuration Manager &gt;</p>
<p><strong>Compilation Options</strong></p>
<p>Adding some project compile time options (mainly -D and -I equivalents for specific defines and include folders.)  Keep in mind which Configuration you are modifying at all times.  You can also switch to &#8220;All Configurations&#8221; for global changes.</p>
<ol>
<li>(GCC -I)  To add in include folders, Project &gt; Configuration Properties &gt; C/C++ &gt; General &gt; Additional Include Directories &gt; &#8230; I found with include folders you often need to stack on a few ../../&#8217;s to get it to point at what you want it to point at.  (In my project I&#8217;ve got my VC project separate from all my source code, so everything is up and over a few folders.)</li>
<li>(GCC -D)  To add in defines, Project &gt; Configuration Properties &gt; C/C++ &gt; Preprocessor &gt; Preprocessor Definitions &gt; .. I often add a few of these to tell the code what build we&#8217;re doing.  (iPhone vs, Windows, vs Linux, etc)</li>
<li>(GCC -W)  Although warnings might be useful .. They made it impossible to see the errors.  You can turn down the warnings from level 3 to 1 in Project &gt; Configuration Properties &gt; C/C++ &gt; General &gt; Warning Level &gt;</li>
<li>(GCC -l)  Linked libraries are probably going to be needed.  Again in my project I&#8217;ve often got a few ../../&#8217;s in the paths.  Here&#8217;s where you add this stuff: Project &gt; Configuration Properties &gt; Linker &gt; Input &gt; Additional Dependencies &gt;</li>
<li>.. an alternate way is to add #pragma comment(lib,&#8221;MyLib.lib&#8221;) into your main.cpp.  By doing this you can refer to a lib right within your source if you prefer.</li>
<li>For whatever reason, you may need to exclude some libs from being compiled into your project.  (If you see errors like &#8220;_tolower already defined in MSVCRTD.lib, etc).  You can exclude a lib in Project &gt; Configuration Properties &gt; Linker &gt; Input &gt; Ignore Specific Library &gt; .. (in my case, I had to add msvcrt.lib and libcmt.lib)</li>
<li>For my project I needed to expand the size of my stack, due to having excessive amounts of static data compiled into the project.  You can do this via Project &gt; Config Properties &gt; Linker &gt; System &gt; Stack (Reserve&amp;Commit) Size &gt; .. I changed them both to 4000000 and things worked.</li>
</ol>
<p><strong>Final packaging</strong></p>
<p>I found that running right from VC didn&#8217;t always work. (Maybe I should find out why, but I haven&#8217;t.)  But I can run from the command-line.  Before doing so, I needed to:</p>
<ol>
<li>Copy in required dlls from SDL, etc</li>
<li>Copy in game data files</li>
<li>Copy in the VC Runtime files from: C:\Program Files\Microsoft Visual Studio 9.0\VC\redist\x86\Microsoft.VC90.CRT</li>
<li>For a release build I&#8217;m sure to build against SDLmain_nostdio.lib so that the game won&#8217;t crash Vista/Win7 where writing out stdout.txt and stderr.txt may result in some kind of fail.</li>
</ol>
<p><strong>Saving to Your_Favorite_Version_Control_System</strong></p>
<ol>
<li>You may leave out all your &#8216;Debug&#8217; folders or other Configuration folders, those seem to only contain generated files.</li>
<li>You may leave out the .ncb and the .COMPUTER.username.blah file, they seem to be used by VC for stuff that can be regenerated, etc.</li>
</ol>
<p>Hopefully this will be helpful to anyone who does the same thing.  Between you and me, I found the install of VC 2008 to be pretty nice in comparison to trying to install mingw, which tends to require considerable muscling.  Also, since everyone provides their libs as MSVC libs, building against those vendor libs is not only easy, but possible.  (With mingw, many MSVC C++ libs are unusable due to binary incompatibility.)</p>
<p>-Phil</p>
<p><strong>P.S. Adding an Icon to your Project</strong></p>
<p>This is pretty easy.  Add a Project.rc to your project.  The Project.rc should include this line:</p>
<p>IDI_PROJECT       ICON         &#8220;path/to/icon256.ico&#8221;</p>
<p>You can create an Icon with <a href="http://icofx.ro/">IconFX</a> .</p>
<p><strong>P.S.S. Creating a windows Installer</strong></p>
<p>I&#8217;ve used <a href="http://www.jrsoftware.org/isinfo.php">Innosetup</a> in the past.  It seems to work.</p>
<p><strong>P.S.S.S. Dealing with LPCTSTR conversions</strong></p>
<p>If your whole project is using C-strings, you can go into Project &gt; Properties &gt; Configuration Properties &gt; General &gt; Character Set &gt; and change it to &#8220;Not Set&#8221; so that VC will no longer try and use Unicode strings to some of its functions (like ShellExecute.)</p>
<!-- Social Bookmarks BEGIN -->
<div class="social_bookmark">
<div class="d">
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://del.icio.us/post?url=http://www.philhassey.com/blog/2010/01/14/visualc-2008-for-gcc-sdl-people/&amp;title=VisualC%2B%2B+2008+for+gcc+%2F+SDL+people" rel="nofollow" title="Add to&nbsp;Del.icio.us"><img class="social_img" src="http://www.philhassey.com/blog/wp-content/plugins/social-bookmarks/images/delicious.png" title="Add to&nbsp;Del.icio.us" alt="Add to&nbsp;Del.icio.us" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://digg.com/submit?phase=2&amp;url=http://www.philhassey.com/blog/2010/01/14/visualc-2008-for-gcc-sdl-people/&amp;title=VisualC%2B%2B+2008+for+gcc+%2F+SDL+people" rel="nofollow" title="Add to&nbsp;digg"><img class="social_img" src="http://www.philhassey.com/blog/wp-content/plugins/social-bookmarks/images/digg.png" title="Add to&nbsp;digg" alt="Add to&nbsp;digg" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.facebook.com/sharer.php?u=http://www.philhassey.com/blog/2010/01/14/visualc-2008-for-gcc-sdl-people/" rel="nofollow" title="Add to&nbsp;Facebook"><img class="social_img" src="http://www.philhassey.com/blog/wp-content/plugins/social-bookmarks/images/facebook.png" title="Add to&nbsp;Facebook" alt="Add to&nbsp;Facebook" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.google.com/bookmarks/mark?op=edit&amp;output=popup&amp;bkmk=http://www.philhassey.com/blog/2010/01/14/visualc-2008-for-gcc-sdl-people/&amp;title=VisualC%2B%2B+2008+for+gcc+%2F+SDL+people" rel="nofollow" title="Add to&nbsp;Google Bookmarks"><img class="social_img" src="http://www.philhassey.com/blog/wp-content/plugins/social-bookmarks/images/google.png" title="Add to&nbsp;Google Bookmarks" alt="Add to&nbsp;Google Bookmarks" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://reddit.com/submit?url=http://www.philhassey.com/blog/2010/01/14/visualc-2008-for-gcc-sdl-people/&amp;title=VisualC%2B%2B+2008+for+gcc+%2F+SDL+people" rel="nofollow" title="Add to&nbsp;reddit"><img class="social_img" src="http://www.philhassey.com/blog/wp-content/plugins/social-bookmarks/images/reddit.png" title="Add to&nbsp;reddit" alt="Add to&nbsp;reddit" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://slashdot.org/bookmark.pl?url=http://www.philhassey.com/blog/2010/01/14/visualc-2008-for-gcc-sdl-people/&amp;title=VisualC%2B%2B+2008+for+gcc+%2F+SDL+people" rel="nofollow" title="Add to&nbsp;Slashdot"><img class="social_img" src="http://www.philhassey.com/blog/wp-content/plugins/social-bookmarks/images/slashdot.png" title="Add to&nbsp;Slashdot" alt="Add to&nbsp;Slashdot" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.stumbleupon.com/submit.php?url=http://www.philhassey.com/blog/2010/01/14/visualc-2008-for-gcc-sdl-people/&amp;title=VisualC%2B%2B+2008+for+gcc+%2F+SDL+people" rel="nofollow" title="Add to&nbsp;Stumble Upon"><img class="social_img" src="http://www.philhassey.com/blog/wp-content/plugins/social-bookmarks/images/stumbleupon.png" title="Add to&nbsp;Stumble Upon" alt="Add to&nbsp;Stumble Upon" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.technorati.com/faves?add=http://www.philhassey.com/blog/2010/01/14/visualc-2008-for-gcc-sdl-people/" rel="nofollow" title="Add to&nbsp;Technorati"><img class="social_img" src="http://www.philhassey.com/blog/wp-content/plugins/social-bookmarks/images/technorati.png" title="Add to&nbsp;Technorati" alt="Add to&nbsp;Technorati" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://twitter.com/home/?status=Check+out+VisualC%2B%2B+2008+for+gcc+%2F+SDL+people+@+http://www.philhassey.com/blog/2010/01/14/visualc-2008-for-gcc-sdl-people/" rel="nofollow" title="Add to&nbsp;Twitter"><img class="social_img" src="http://www.philhassey.com/blog/wp-content/plugins/social-bookmarks/images/twitter.png" title="Add to&nbsp;Twitter" alt="Add to&nbsp;Twitter" /></a>
<br />
</div>
</div>
<!-- Social Bookmarks END -->
]]></content:encoded>
			<wfw:commentRss>http://www.philhassey.com/blog/2010/01/14/visualc-2008-for-gcc-sdl-people/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>xkcd &#8220;Self-Description&#8221; solved with python+pygame</title>
		<link>http://www.philhassey.com/blog/2010/01/13/xkcd-self-description-solved-with-pythonpygame/</link>
		<comments>http://www.philhassey.com/blog/2010/01/13/xkcd-self-description-solved-with-pythonpygame/#comments</comments>
		<pubDate>Thu, 14 Jan 2010 04:02:23 +0000</pubDate>
		<dc:creator>philhassey</dc:creator>
				<category><![CDATA[crazy]]></category>
		<category><![CDATA[pygame]]></category>
		<category><![CDATA[python]]></category>

		<guid isPermaLink="false">http://www.philhassey.com/blog/?p=263</guid>
		<description><![CDATA[Well, something about this xkcd comic drew me in &#8230;

The 3rd panel reminded me of a study I did in college on iterated function system fractals.  These fractals are known for creating ferns, trees, and the Sierpinski triangle.  There are a number of ways of creating these fractals, but one of them is called (something [...]]]></description>
			<content:encoded><![CDATA[<p>Well, something about this xkcd comic drew me in &#8230;</p>
<p><a href="http://xkcd.com/688/"><img class="alignnone" src="http://imgs.xkcd.com/comics/self_description.png" alt="" width="740" height="180" /></a></p>
<p>The 3rd panel reminded me of a study I did in college on <a href="http://en.wikipedia.org/wiki/Iterated_function_system">iterated function system fractals</a>.  These fractals are known for creating ferns, trees, and the <a href="http://en.wikipedia.org/wiki/Sierpinski_gasket">Sierpinski triangle</a>.  There are a number of ways of creating these fractals, but one of them is called (something like) the reducing photo copier method.  Where you can start with ANY starting image on your photo copier, and just shrink the images, make a few copies, position them on the copier, and repeat.  Eventually your image converges towards the fern / triangle / whatever if you are precise.  (This can be done with a &#8216;Real Life&#8217; photo copier for simple IFS like the Sierpinski triangle.)</p>
<p>So as a way to avoid work that I&#8217;m supposed to be doing this evening, I figured I&#8217;d see how &#8220;accurate&#8221; this comic was.  Here&#8217;s my <a href="http://www.philhassey.com/blog/wp-content/uploads/2010/01/xkcd688.zip">pygame code</a> that checks it out.  If you run main.py it will start with an image (the xkcd logo) and each time you press a key it will do an iteration of re-creating the comic.  You can see it flashing between the current iteration and the original strip.  After about 4-5 iterations the images converge (pretty closely.)</p>
<p>The most interesting bit was trying different starting images and seeing how long it took to converge.  Starting with all black  it takes 6 iterations.  Starting with all white takes 5 iterations.  And starting with the xkcd logo takes 4 iterations.  The logo probably goes the quickest because it has some black and white in it (like this image) so it converges faster.  (You can edit main.py towards the bottom page to try these different starting points.)</p>
<p>So .. there ya go!  Enjoy!</p>
<p>-Phil</p>
<!-- Social Bookmarks BEGIN -->
<div class="social_bookmark">
<div class="d">
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://del.icio.us/post?url=http://www.philhassey.com/blog/2010/01/13/xkcd-self-description-solved-with-pythonpygame/&amp;title=xkcd+%26%238220%3BSelf-Description%26%238221%3B+solved+with+python%2Bpygame" rel="nofollow" title="Add to&nbsp;Del.icio.us"><img class="social_img" src="http://www.philhassey.com/blog/wp-content/plugins/social-bookmarks/images/delicious.png" title="Add to&nbsp;Del.icio.us" alt="Add to&nbsp;Del.icio.us" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://digg.com/submit?phase=2&amp;url=http://www.philhassey.com/blog/2010/01/13/xkcd-self-description-solved-with-pythonpygame/&amp;title=xkcd+%26%238220%3BSelf-Description%26%238221%3B+solved+with+python%2Bpygame" rel="nofollow" title="Add to&nbsp;digg"><img class="social_img" src="http://www.philhassey.com/blog/wp-content/plugins/social-bookmarks/images/digg.png" title="Add to&nbsp;digg" alt="Add to&nbsp;digg" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.facebook.com/sharer.php?u=http://www.philhassey.com/blog/2010/01/13/xkcd-self-description-solved-with-pythonpygame/" rel="nofollow" title="Add to&nbsp;Facebook"><img class="social_img" src="http://www.philhassey.com/blog/wp-content/plugins/social-bookmarks/images/facebook.png" title="Add to&nbsp;Facebook" alt="Add to&nbsp;Facebook" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.google.com/bookmarks/mark?op=edit&amp;output=popup&amp;bkmk=http://www.philhassey.com/blog/2010/01/13/xkcd-self-description-solved-with-pythonpygame/&amp;title=xkcd+%26%238220%3BSelf-Description%26%238221%3B+solved+with+python%2Bpygame" rel="nofollow" title="Add to&nbsp;Google Bookmarks"><img class="social_img" src="http://www.philhassey.com/blog/wp-content/plugins/social-bookmarks/images/google.png" title="Add to&nbsp;Google Bookmarks" alt="Add to&nbsp;Google Bookmarks" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://reddit.com/submit?url=http://www.philhassey.com/blog/2010/01/13/xkcd-self-description-solved-with-pythonpygame/&amp;title=xkcd+%26%238220%3BSelf-Description%26%238221%3B+solved+with+python%2Bpygame" rel="nofollow" title="Add to&nbsp;reddit"><img class="social_img" src="http://www.philhassey.com/blog/wp-content/plugins/social-bookmarks/images/reddit.png" title="Add to&nbsp;reddit" alt="Add to&nbsp;reddit" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://slashdot.org/bookmark.pl?url=http://www.philhassey.com/blog/2010/01/13/xkcd-self-description-solved-with-pythonpygame/&amp;title=xkcd+%26%238220%3BSelf-Description%26%238221%3B+solved+with+python%2Bpygame" rel="nofollow" title="Add to&nbsp;Slashdot"><img class="social_img" src="http://www.philhassey.com/blog/wp-content/plugins/social-bookmarks/images/slashdot.png" title="Add to&nbsp;Slashdot" alt="Add to&nbsp;Slashdot" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.stumbleupon.com/submit.php?url=http://www.philhassey.com/blog/2010/01/13/xkcd-self-description-solved-with-pythonpygame/&amp;title=xkcd+%26%238220%3BSelf-Description%26%238221%3B+solved+with+python%2Bpygame" rel="nofollow" title="Add to&nbsp;Stumble Upon"><img class="social_img" src="http://www.philhassey.com/blog/wp-content/plugins/social-bookmarks/images/stumbleupon.png" title="Add to&nbsp;Stumble Upon" alt="Add to&nbsp;Stumble Upon" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.technorati.com/faves?add=http://www.philhassey.com/blog/2010/01/13/xkcd-self-description-solved-with-pythonpygame/" rel="nofollow" title="Add to&nbsp;Technorati"><img class="social_img" src="http://www.philhassey.com/blog/wp-content/plugins/social-bookmarks/images/technorati.png" title="Add to&nbsp;Technorati" alt="Add to&nbsp;Technorati" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://twitter.com/home/?status=Check+out+xkcd+%26%238220%3BSelf-Description%26%238221%3B+solved+with+python%2Bpygame+@+http://www.philhassey.com/blog/2010/01/13/xkcd-self-description-solved-with-pythonpygame/" rel="nofollow" title="Add to&nbsp;Twitter"><img class="social_img" src="http://www.philhassey.com/blog/wp-content/plugins/social-bookmarks/images/twitter.png" title="Add to&nbsp;Twitter" alt="Add to&nbsp;Twitter" /></a>
<br />
</div>
</div>
<!-- Social Bookmarks END -->
]]></content:encoded>
			<wfw:commentRss>http://www.philhassey.com/blog/2010/01/13/xkcd-self-description-solved-with-pythonpygame/feed/</wfw:commentRss>
		<slash:comments>8</slash:comments>
		</item>
		<item>
		<title>Is None more like 0 or -1 ?</title>
		<link>http://www.philhassey.com/blog/2010/01/07/is-none-more-like-0-or-1/</link>
		<comments>http://www.philhassey.com/blog/2010/01/07/is-none-more-like-0-or-1/#comments</comments>
		<pubDate>Thu, 07 Jan 2010 20:07:44 +0000</pubDate>
		<dc:creator>philhassey</dc:creator>
				<category><![CDATA[python]]></category>
		<category><![CDATA[tinypy]]></category>

		<guid isPermaLink="false">http://www.philhassey.com/blog/?p=261</guid>
		<description><![CDATA[In tinypyC++ every variable is a certain type.  In some cases I may have an int x = None;  But I&#8217;m not sure what that should mean?
What&#8217;s the most pythonic?  Here&#8217;s some anecdotal evidence:
&#62;&#62;&#62; None,None==None,None==-1,None==0,None==1,None==False,None==True,bool(None)
(None, True, False, False, False, False, False, False)
&#62;&#62;&#62; -1,-1==None,-1==-1,-1==0,-1==1,-1==False,-1==True,bool(-1)
(-1, False, True, False, False, False, False, True)
&#62;&#62;&#62; 0,0==None,0==-1,0==0,0==1,0==False,0==True,bool(0)
(0, False, False, True, [...]]]></description>
			<content:encoded><![CDATA[<p>In tinypyC++ every variable is a certain type.  In some cases I may have an int x = None;  But I&#8217;m not sure what that should mean?</p>
<p>What&#8217;s the most pythonic?  Here&#8217;s some anecdotal evidence:</p>
<pre>&gt;&gt;&gt; None,None==None,None==-1,None==0,None==1,None==False,None==True,bool(None)
(None, True, False, False, False, False, False, False)
&gt;&gt;&gt; -1,-1==None,-1==-1,-1==0,-1==1,-1==False,-1==True,bool(-1)
(-1, False, True, False, False, False, False, True)
&gt;&gt;&gt; 0,0==None,0==-1,0==0,0==1,0==False,0==True,bool(0)
(0, False, False, True, False, True, False, False)
&gt;&gt;&gt; 1,1==None,1==-1,1==0,1==1,1==False,1==True,bool(1)
(1, False, False, False, True, False, True, True)</pre>
<p>So .. you can see -1 gets 4/7.  0 also gets 4/7.  (1 gets a mere 3/7, so it&#8217;s out.)</p>
<p>Anyone care to tilt the scales to -1 or 0?</p>
<!-- Social Bookmarks BEGIN -->
<div class="social_bookmark">
<div class="d">
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://del.icio.us/post?url=http://www.philhassey.com/blog/2010/01/07/is-none-more-like-0-or-1/&amp;title=Is+None+more+like+0+or+-1+%3F" rel="nofollow" title="Add to&nbsp;Del.icio.us"><img class="social_img" src="http://www.philhassey.com/blog/wp-content/plugins/social-bookmarks/images/delicious.png" title="Add to&nbsp;Del.icio.us" alt="Add to&nbsp;Del.icio.us" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://digg.com/submit?phase=2&amp;url=http://www.philhassey.com/blog/2010/01/07/is-none-more-like-0-or-1/&amp;title=Is+None+more+like+0+or+-1+%3F" rel="nofollow" title="Add to&nbsp;digg"><img class="social_img" src="http://www.philhassey.com/blog/wp-content/plugins/social-bookmarks/images/digg.png" title="Add to&nbsp;digg" alt="Add to&nbsp;digg" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.facebook.com/sharer.php?u=http://www.philhassey.com/blog/2010/01/07/is-none-more-like-0-or-1/" rel="nofollow" title="Add to&nbsp;Facebook"><img class="social_img" src="http://www.philhassey.com/blog/wp-content/plugins/social-bookmarks/images/facebook.png" title="Add to&nbsp;Facebook" alt="Add to&nbsp;Facebook" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.google.com/bookmarks/mark?op=edit&amp;output=popup&amp;bkmk=http://www.philhassey.com/blog/2010/01/07/is-none-more-like-0-or-1/&amp;title=Is+None+more+like+0+or+-1+%3F" rel="nofollow" title="Add to&nbsp;Google Bookmarks"><img class="social_img" src="http://www.philhassey.com/blog/wp-content/plugins/social-bookmarks/images/google.png" title="Add to&nbsp;Google Bookmarks" alt="Add to&nbsp;Google Bookmarks" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://reddit.com/submit?url=http://www.philhassey.com/blog/2010/01/07/is-none-more-like-0-or-1/&amp;title=Is+None+more+like+0+or+-1+%3F" rel="nofollow" title="Add to&nbsp;reddit"><img class="social_img" src="http://www.philhassey.com/blog/wp-content/plugins/social-bookmarks/images/reddit.png" title="Add to&nbsp;reddit" alt="Add to&nbsp;reddit" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://slashdot.org/bookmark.pl?url=http://www.philhassey.com/blog/2010/01/07/is-none-more-like-0-or-1/&amp;title=Is+None+more+like+0+or+-1+%3F" rel="nofollow" title="Add to&nbsp;Slashdot"><img class="social_img" src="http://www.philhassey.com/blog/wp-content/plugins/social-bookmarks/images/slashdot.png" title="Add to&nbsp;Slashdot" alt="Add to&nbsp;Slashdot" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.stumbleupon.com/submit.php?url=http://www.philhassey.com/blog/2010/01/07/is-none-more-like-0-or-1/&amp;title=Is+None+more+like+0+or+-1+%3F" rel="nofollow" title="Add to&nbsp;Stumble Upon"><img class="social_img" src="http://www.philhassey.com/blog/wp-content/plugins/social-bookmarks/images/stumbleupon.png" title="Add to&nbsp;Stumble Upon" alt="Add to&nbsp;Stumble Upon" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.technorati.com/faves?add=http://www.philhassey.com/blog/2010/01/07/is-none-more-like-0-or-1/" rel="nofollow" title="Add to&nbsp;Technorati"><img class="social_img" src="http://www.philhassey.com/blog/wp-content/plugins/social-bookmarks/images/technorati.png" title="Add to&nbsp;Technorati" alt="Add to&nbsp;Technorati" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://twitter.com/home/?status=Check+out+Is+None+more+like+0+or+-1+%3F+@+http://www.philhassey.com/blog/2010/01/07/is-none-more-like-0-or-1/" rel="nofollow" title="Add to&nbsp;Twitter"><img class="social_img" src="http://www.philhassey.com/blog/wp-content/plugins/social-bookmarks/images/twitter.png" title="Add to&nbsp;Twitter" alt="Add to&nbsp;Twitter" /></a>
<br />
</div>
</div>
<!-- Social Bookmarks END -->
]]></content:encoded>
			<wfw:commentRss>http://www.philhassey.com/blog/2010/01/07/is-none-more-like-0-or-1/feed/</wfw:commentRss>
		<slash:comments>16</slash:comments>
		</item>
		<item>
		<title>Exceptions and various compilation option speeds</title>
		<link>http://www.philhassey.com/blog/2010/01/06/exceptions-and-various-compilation-option-speeds/</link>
		<comments>http://www.philhassey.com/blog/2010/01/06/exceptions-and-various-compilation-option-speeds/#comments</comments>
		<pubDate>Thu, 07 Jan 2010 00:26:07 +0000</pubDate>
		<dc:creator>philhassey</dc:creator>
				<category><![CDATA[C++]]></category>
		<category><![CDATA[development]]></category>
		<category><![CDATA[tinypy]]></category>

		<guid isPermaLink="false">http://www.philhassey.com/blog/?p=258</guid>
		<description><![CDATA[So after some discussion yesterday with a few folks about Exceptions in C++, I decided to add a compilation flag to disable the use of exceptions in tinypyC++.  The claim given to me was around these few items: 1. Exceptions slow your code down.  2. Exceptions aren&#8217;t cross-platform (in some cases).  3. Exceptions can easily [...]]]></description>
			<content:encoded><![CDATA[<p>So after some discussion yesterday with a few folks about Exceptions in C++, I decided to add a compilation flag to disable the use of exceptions in tinypyC++.  The claim given to me was around these few items: 1. Exceptions slow your code down.  2. Exceptions aren&#8217;t cross-platform (in some cases).  3. Exceptions can easily add in memory-leaks.</p>
<p>I can&#8217;t argue with #2, although it&#8217;s not completely relevant for the platforms I&#8217;m targeting right now.  #3, with the way tinypyC++ does reference counting, I wouldn&#8217;t be surprised if this could happen.  #1, I figured might be true, but I wanted to know how real #1 actually was.  So here are my results:</p>
<table border="1">
<tbody>
<tr>
<th>g++ flags</th>
<th>ms</th>
</tr>
<tr>
<td>(none)</td>
<td>894</td>
</tr>
<tr>
<td>-g</td>
<td>891</td>
</tr>
<tr>
<td>-O3</td>
<td>414</td>
</tr>
<tr>
<td>-DTP_NO_THROW -fno-exceptions</td>
<td>894</td>
</tr>
<tr>
<td>-g -DTP_NO_THROW -fno-exceptions</td>
<td>878</td>
</tr>
<tr>
<td>-O3 -DTP_NO_THROW -fno-exceptions</td>
<td>378</td>
</tr>
</tbody>
</table>
<p>In the first test I&#8217;m rendering a Julia fractal for 20 frames and averaging the time it takes to render.  In the second test (below) I&#8217;m doing the same test, but I did one code optimization to remove a new/delete that was happening for each pixel &#8211; by reusing the coordinates object.</p>
<table border="1">
<tbody>
<tr>
<th>g++ flags</th>
<th>ms</th>
</tr>
<tr>
<td>(none)</td>
<td>293</td>
</tr>
<tr>
<td>-g</td>
<td>290</td>
</tr>
<tr>
<td>-O3</td>
<td>153</td>
</tr>
<tr>
<td>-DTP_NO_THROW -fno-exceptions</td>
<td>304</td>
</tr>
<tr>
<td>-g -DTP_NO_THROW -fno-exceptions</td>
<td>303</td>
</tr>
<tr>
<td>-O3 -DTP_NO_THROW -fno-exceptions</td>
<td>112</td>
</tr>
</tbody>
</table>
<p>I found it interesting that in the 2nd test case I did, removing exceptions actually increased the time it took to render the fractal!  Not quite sure why .. hmmm.  (I tried it a few times and kept getting similar results too.)</p>
<p>What is clear in the second test is that the compiler is able to optimize the code much more aggressively.  I guess Exceptions choke up the optimizer.  In all cases it seems that adding on the -g flag seems to make the code run slightly faster, surprisingly enough!  (-g adds in debugger info.)  In all cases, the optimizer was able to roughly double the speed of the program, and when I disable exceptions it is able to throw in even more speed.</p>
<p>-Phil</p>
<!-- Social Bookmarks BEGIN -->
<div class="social_bookmark">
<div class="d">
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://del.icio.us/post?url=http://www.philhassey.com/blog/2010/01/06/exceptions-and-various-compilation-option-speeds/&amp;title=Exceptions+and+various+compilation+option+speeds" rel="nofollow" title="Add to&nbsp;Del.icio.us"><img class="social_img" src="http://www.philhassey.com/blog/wp-content/plugins/social-bookmarks/images/delicious.png" title="Add to&nbsp;Del.icio.us" alt="Add to&nbsp;Del.icio.us" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://digg.com/submit?phase=2&amp;url=http://www.philhassey.com/blog/2010/01/06/exceptions-and-various-compilation-option-speeds/&amp;title=Exceptions+and+various+compilation+option+speeds" rel="nofollow" title="Add to&nbsp;digg"><img class="social_img" src="http://www.philhassey.com/blog/wp-content/plugins/social-bookmarks/images/digg.png" title="Add to&nbsp;digg" alt="Add to&nbsp;digg" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.facebook.com/sharer.php?u=http://www.philhassey.com/blog/2010/01/06/exceptions-and-various-compilation-option-speeds/" rel="nofollow" title="Add to&nbsp;Facebook"><img class="social_img" src="http://www.philhassey.com/blog/wp-content/plugins/social-bookmarks/images/facebook.png" title="Add to&nbsp;Facebook" alt="Add to&nbsp;Facebook" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.google.com/bookmarks/mark?op=edit&amp;output=popup&amp;bkmk=http://www.philhassey.com/blog/2010/01/06/exceptions-and-various-compilation-option-speeds/&amp;title=Exceptions+and+various+compilation+option+speeds" rel="nofollow" title="Add to&nbsp;Google Bookmarks"><img class="social_img" src="http://www.philhassey.com/blog/wp-content/plugins/social-bookmarks/images/google.png" title="Add to&nbsp;Google Bookmarks" alt="Add to&nbsp;Google Bookmarks" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://reddit.com/submit?url=http://www.philhassey.com/blog/2010/01/06/exceptions-and-various-compilation-option-speeds/&amp;title=Exceptions+and+various+compilation+option+speeds" rel="nofollow" title="Add to&nbsp;reddit"><img class="social_img" src="http://www.philhassey.com/blog/wp-content/plugins/social-bookmarks/images/reddit.png" title="Add to&nbsp;reddit" alt="Add to&nbsp;reddit" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://slashdot.org/bookmark.pl?url=http://www.philhassey.com/blog/2010/01/06/exceptions-and-various-compilation-option-speeds/&amp;title=Exceptions+and+various+compilation+option+speeds" rel="nofollow" title="Add to&nbsp;Slashdot"><img class="social_img" src="http://www.philhassey.com/blog/wp-content/plugins/social-bookmarks/images/slashdot.png" title="Add to&nbsp;Slashdot" alt="Add to&nbsp;Slashdot" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.stumbleupon.com/submit.php?url=http://www.philhassey.com/blog/2010/01/06/exceptions-and-various-compilation-option-speeds/&amp;title=Exceptions+and+various+compilation+option+speeds" rel="nofollow" title="Add to&nbsp;Stumble Upon"><img class="social_img" src="http://www.philhassey.com/blog/wp-content/plugins/social-bookmarks/images/stumbleupon.png" title="Add to&nbsp;Stumble Upon" alt="Add to&nbsp;Stumble Upon" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.technorati.com/faves?add=http://www.philhassey.com/blog/2010/01/06/exceptions-and-various-compilation-option-speeds/" rel="nofollow" title="Add to&nbsp;Technorati"><img class="social_img" src="http://www.philhassey.com/blog/wp-content/plugins/social-bookmarks/images/technorati.png" title="Add to&nbsp;Technorati" alt="Add to&nbsp;Technorati" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://twitter.com/home/?status=Check+out+Exceptions+and+various+compilation+option+speeds+@+http://www.philhassey.com/blog/2010/01/06/exceptions-and-various-compilation-option-speeds/" rel="nofollow" title="Add to&nbsp;Twitter"><img class="social_img" src="http://www.philhassey.com/blog/wp-content/plugins/social-bookmarks/images/twitter.png" title="Add to&nbsp;Twitter" alt="Add to&nbsp;Twitter" /></a>
<br />
</div>
</div>
<!-- Social Bookmarks END -->
]]></content:encoded>
			<wfw:commentRss>http://www.philhassey.com/blog/2010/01/06/exceptions-and-various-compilation-option-speeds/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
	</channel>
</rss>
