<?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>Monkey Style Games</title>
	<atom:link href="http://monkeystylegames.com/?feed=rss2" rel="self" type="application/rss+xml" />
	<link>http://monkeystylegames.com</link>
	<description>Making games, monkey style.</description>
	<lastBuildDate>Tue, 09 Mar 2010 23:48:32 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.4</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Why is not writing code a good thing?</title>
		<link>http://monkeystylegames.com/?p=124</link>
		<comments>http://monkeystylegames.com/?p=124#comments</comments>
		<pubDate>Tue, 09 Mar 2010 23:44:52 +0000</pubDate>
		<dc:creator>Justin</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://monkeystylegames.com/?p=124</guid>
		<description><![CDATA[From a Microsoft tutorial:
If the parameter value is hard-coded, comes from a Web control on the  page, or is in any other source that is readable by a data source Parameter object, for example, that value can be bound to the input parameter  without writing a line of code.
What the hell is wrong [...]]]></description>
			<content:encoded><![CDATA[<p>From a Microsoft <a href="http://www.asp.net/%28S%28pdfrohu0ajmwt445fanvj2r3%29%29/learn/data-access/tutorial-06-cs.aspx" target="_blank">tutorial</a>:</p>
<blockquote><p>If the parameter value is hard-coded, comes from a Web control on the  page, or is in any other source that is readable by a data source <code>Parameter</code> object, for example, that value can be bound to the<em> </em>input parameter  <strong>without writing a line of code</strong>.</p></blockquote>
<p>What the hell is wrong with writing code? For pity&#8217;s sake we&#8217;re <em>programmers</em>. What&#8217;s wrong with actually typing something in to a text file? Since when did we as programmers get elevated above the dirty business of <em>writing code</em>?</p>
<p>As someone smarter than me put it<a href="http://reprog.wordpress.com/2010/03/03/whatever-happened-to-programming/"> Whatever happened to programming?</a></p>
<p>And if you really think that not writing code is somehow saving time, read the <a href="http://www.asp.net/%28S%28pdfrohu0ajmwt445fanvj2r3%29%29/learn/data-access/tutorial-06-cs.aspx">incredible sequence of wizard twiddling</a> to perform this relatively simple task . How the *fuck* is that better than writing code?</p>
]]></content:encoded>
			<wfw:commentRss>http://monkeystylegames.com/?feed=rss2&amp;p=124</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Interzone &#8211; the downward spiral</title>
		<link>http://monkeystylegames.com/?p=121</link>
		<comments>http://monkeystylegames.com/?p=121#comments</comments>
		<pubDate>Sat, 13 Feb 2010 22:52:56 +0000</pubDate>
		<dc:creator>Justin</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://monkeystylegames.com/?p=121</guid>
		<description><![CDATA[http://kranzky.rockethands.com/2010/02/13/interzone-the-downward-spiral/
WTF of the year candidate.
]]></description>
			<content:encoded><![CDATA[<p><a href="http://kranzky.rockethands.com/2010/02/13/interzone-the-downward-spiral/">http://kranzky.rockethands.com/2010/02/13/interzone-the-downward-spiral/</a></p>
<p>WTF of the year candidate.</p>
]]></content:encoded>
			<wfw:commentRss>http://monkeystylegames.com/?feed=rss2&amp;p=121</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Housecleaning</title>
		<link>http://monkeystylegames.com/?p=118</link>
		<comments>http://monkeystylegames.com/?p=118#comments</comments>
		<pubDate>Mon, 30 Nov 2009 00:55:32 +0000</pubDate>
		<dc:creator>Justin</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://monkeystylegames.com/?p=118</guid>
		<description><![CDATA[Going through some old domains I haven’t found a use for yet, and I’ve decided to sell the following:
http://wickid.com
http://feelingshiny.com
http://ninjatek.com
Anyone interested? I’ll link to the auction site soon.
]]></description>
			<content:encoded><![CDATA[<p>Going through some old domains I haven’t found a use for yet, and I’ve decided to sell the following:</p>
<p><a href="http://wickid.com">http://wickid.com</a></p>
<p><a href="http://feelingshiny.com">http://feelingshiny.com</a></p>
<p><a href="http://ninjatek.com">http://ninjatek.com</a></p>
<p>Anyone interested? I’ll link to the auction site soon.</p>
]]></content:encoded>
			<wfw:commentRss>http://monkeystylegames.com/?feed=rss2&amp;p=118</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>TaoTimer available on iTunes store</title>
		<link>http://monkeystylegames.com/?p=109</link>
		<comments>http://monkeystylegames.com/?p=109#comments</comments>
		<pubDate>Fri, 13 Nov 2009 00:04:07 +0000</pubDate>
		<dc:creator>Justin</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://monkeystylegames.com/?p=109</guid>
		<description><![CDATA[Here is the link &#8211; please download and rate if you think it will be helpful for your meditation needs!
See also:
http://monkeystylegames.com/taotimer
http://taoism.about.com/od/meditation/ht/standing.htm
]]></description>
			<content:encoded><![CDATA[<p>Here is the <a href="http://itunes.apple.com/au/app/taotimer/id338522914?mt=8">link</a> &#8211; please download and rate if you think it will be helpful for your meditation needs!</p>
<p>See also:</p>
<p><a href="http://monkeystylegames.com/taotimer">http://monkeystylegames.com/taotimer</a></p>
<p><a href="http://taoism.about.com/od/meditation/ht/standing.htm">http://taoism.about.com/od/meditation/ht/standing.htm</a></p>
]]></content:encoded>
			<wfw:commentRss>http://monkeystylegames.com/?feed=rss2&amp;p=109</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>The MacOS X Job System</title>
		<link>http://monkeystylegames.com/?p=96</link>
		<comments>http://monkeystylegames.com/?p=96#comments</comments>
		<pubDate>Thu, 03 Sep 2009 04:36:52 +0000</pubDate>
		<dc:creator>Justin</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://monkeystylegames.com/?p=96</guid>
		<description><![CDATA[Apple have some details on their developer site about using the &#8220;Grand Central Dispatch&#8221; system. It is interesting to note they mention both Mac OS X and iPhone OS as using the less-threaded, more-asynchronous design approach. Multi-core iPhones are inevitable I guess.
Edit: Further juicy details &#8211; Apple extended C in 10.6 to provide language support [...]]]></description>
			<content:encoded><![CDATA[<p>Apple have some <a href="http://developer.apple.com/mac/library/documentation/General/Conceptual/ConcurrencyProgrammingGuide/ConcurrencyandApplicationDesign/ConcurrencyandApplicationDesign.html#//apple_ref/doc/uid/TP40008091-CH100-SW1">details</a> on their developer site about using the &#8220;<a href="http://monkeystylegames.com/?p=58">Grand Central Dispatch</a>&#8221; system. It is interesting to note they mention both Mac OS X and iPhone OS as using the less-threaded, more-asynchronous design approach. Multi-core iPhones are inevitable I guess.</p>
<p>Edit: Further juicy details &#8211; Apple extended C in 10.6 to provide language support for a &#8220;<a href="http://developer.apple.com/mac/library/documentation/Cocoa/Conceptual/Blocks/Articles/bxOverview.html#//apple_ref/doc/uid/TP40007502-CH3-SW1">Block</a>&#8221; object &#8211; equivalent to a &#8220;lambda&#8221; in other languages. I found the extension specification on the LLVM site <a href="http://clang.llvm.org/docs/BlockLanguageSpec.txt">here</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://monkeystylegames.com/?feed=rss2&amp;p=96</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>ARM NEON Matrix/Vector Multiplication</title>
		<link>http://monkeystylegames.com/?p=94</link>
		<comments>http://monkeystylegames.com/?p=94#comments</comments>
		<pubDate>Tue, 21 Jul 2009 23:43:40 +0000</pubDate>
		<dc:creator>Justin</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://monkeystylegames.com/?p=94</guid>
		<description><![CDATA[I recently submitted some inline assembly versions of Matrix * Matrix, and Matrix * Vector functions for ARM NEON to the Oolong Engine project.
Here is the full source, note the functions assume column-major matrices.
]]></description>
			<content:encoded><![CDATA[<p>I recently submitted some inline assembly versions of Matrix * Matrix, and Matrix * Vector functions for ARM NEON to the Oolong Engine project.</p>
<p>Here is the <a href="http://code.google.com/p/oolongengine/source/browse/trunk/Oolong+Engine2/Math/neonmath/neon_matrix_impl.cpp?spec=svn143&amp;r=143">full source</a>, note the functions assume column-major matrices.</p>
]]></content:encoded>
			<wfw:commentRss>http://monkeystylegames.com/?feed=rss2&amp;p=94</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>ARM/NEON Resources</title>
		<link>http://monkeystylegames.com/?p=89</link>
		<comments>http://monkeystylegames.com/?p=89#comments</comments>
		<pubDate>Mon, 20 Jul 2009 05:21:48 +0000</pubDate>
		<dc:creator>Justin</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://monkeystylegames.com/?p=89</guid>
		<description><![CDATA[In response to a question on this blog, here are a bunch of ARM/NEON/SIMD resources that I have accrued in my bookmarks over the last few months.
There are essentially three approaches in GCC,  which trade off power/flexibilty for ease of use.

Assembly (standalone, or inline).
Compiler intrinsics, and
&#8220;Automatic&#8221; compiler vectorization.

The first link explains the differences:

Introduction to NEON/SIMD [...]]]></description>
			<content:encoded><![CDATA[<p>In response to a question on this blog, here are a bunch of ARM/NEON/SIMD resources that I have accrued in my bookmarks over the last few months.</p>
<p>There are essentially three approaches in GCC,  which trade off power/flexibilty for ease of use.</p>
<ol>
<li>Assembly (standalone, or inline).</li>
<li>Compiler intrinsics, and</li>
<li>&#8220;Automatic&#8221; compiler vectorization.</li>
</ol>
<p>The first link explains the differences:</p>
<ul>
<li><a href="http://www.arm.com/pdfs/NEONSupportintheRealviewCompiler.pdf">Introduction to NEON/SIMD</a> programming (PDF).</li>
<li><a href="http://gcc.gnu.org/onlinedocs/gcc/ARM-NEON-Intrinsics.html">NEON intrinsics</a> implementation in GCC.</li>
<li><a href="http://gcc.gnu.org/onlinedocs/gcc/Extended-Asm.html">Using inline assembly (extended)</a> with GCC.</li>
<li><a href="http://ds9a.nl/gcc-simd/example.html">General SIMD programming</a> using GCC.</li>
<li><a href="http://infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.set.cortex/index.html">Cortex Processor</a> hardware in the ARM Information Center.</li>
<li><a href="http://infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.set.cortex/index.html">NEON/VFP on Cortex</a>, also in the ARM Information Center.</li>
</ul>
<p>Happy reading, and let me know if you find anything else useful.</p>
]]></content:encoded>
			<wfw:commentRss>http://monkeystylegames.com/?feed=rss2&amp;p=89</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>ARM NEON intrinsics</title>
		<link>http://monkeystylegames.com/?p=82</link>
		<comments>http://monkeystylegames.com/?p=82#comments</comments>
		<pubDate>Wed, 08 Jul 2009 05:16:07 +0000</pubDate>
		<dc:creator>Justin</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://monkeystylegames.com/?p=82</guid>
		<description><![CDATA[The ARMv7 CPU (Cortex-A8) used in the iPhone 3GS is a very nice CPU. One of the things it can do is real SIMD intrinsics. Here's how to demonstrate this on Xcode.]]></description>
			<content:encoded><![CDATA[<p>The ARMv7 CPU (Cortex-A8) used in the iPhone 3GS is a very nice CPU. One of the things it can do is real SIMD intrinsics. Although Apple don&#8217;t document this, the fine folks who made GCC do.</p>
<p>Here&#8217;s how to demonstrate this on Xcode.</p>
<p>0. Create a project.</p>
<p>1. Set Target-&gt;Architecture to &#8220;Optimized (armv6 armv7)&#8221;</p>
<p>This builds a fat binary with two executables &#8211; one for the older arm architecture and one for the Cortex/NEON architecture.</p>
<p>2. Set Other C Flags to &#8220;-mfloat-abi=softfp -mfpu=neon&#8221;.</p>
<p>As specified in the &#8220;arm_neon.h&#8221; header. I&#8217;m guessing that these are ignored for the armv6 binary.</p>
<p>3. Include preprocessor guards in the source to make sure the intrinsics are only compiled in for armv7. See the following snippet:</p>
<pre>#ifdef _ARM_ARCH_7
#include &lt;arm_neon.h&gt;
float32x4_t scale( float32x4_t v, float f )
{
  return vmulq_n_f32( v, f );
}
#endif</pre>
<p>Note: At the moment I can only make this code compile under C, there seems to be an internal GCC issue when compiling this code as C++</p>
<p>4. Choose &#8220;Build-&gt;Show Assembly Code&#8221;. You should see a &#8220;vmul.f32    x,  y, z&#8221; assembly instruction buried amongst the stack maintenance code.</p>
<p>Good news for mobile gamers. NEON, together with proper shaders, should help the next wave of iPhone games leapfrog the quality of other handhelds.</p>
]]></content:encoded>
			<wfw:commentRss>http://monkeystylegames.com/?feed=rss2&amp;p=82</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Programmer Stupidity</title>
		<link>http://monkeystylegames.com/?p=70</link>
		<comments>http://monkeystylegames.com/?p=70#comments</comments>
		<pubDate>Thu, 25 Jun 2009 05:22:02 +0000</pubDate>
		<dc:creator>Justin</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://monkeystylegames.com/?p=70</guid>
		<description><![CDATA[A friend, in despair, recently asked:
&#8220;How do they manage to make software go slower at a rate that exceeds Moore&#8217;s Law?&#8221;.
I&#8217;ll take it as given that have we experienced those moments while waiting for files to &#8220;move to trash&#8221; on a 2.5Ghz machine.
Anyway, I glibly answered:
&#8220;Programmers are getting stupider at a rate that exceeds Moore&#8217;s [...]]]></description>
			<content:encoded><![CDATA[<p>A friend, in despair, recently asked:</p>
<p>&#8220;How do they manage to make software go slower at a rate that exceeds Moore&#8217;s Law?&#8221;.</p>
<p>I&#8217;ll take it as given that have we experienced those moments while waiting for files to &#8220;move to trash&#8221; on a 2.5Ghz machine.</p>
<p>Anyway, I glibly answered:</p>
<p>&#8220;Programmers are getting stupider at a rate that exceeds Moore&#8217;s Law.&#8221;</p>
<p>And left it at that.</p>
<p>But it kept bugging me. I don&#8217;t know the reason why software is getting slower. But programmers <em>are</em> getting stupider, here&#8217;s why:</p>
<p>1. The first point is that humans <em>aren&#8217;t</em> getting smarter, there&#8217;s no real natural selection for it. Perhaps external factors like education are decreasing stupidity slightly, but probably not much more than population growth in poor uneducated countries. So for arguments sake I&#8217;m going to say that the percentage of smart people stays constant, or at best increases very slightly.</p>
<p>2. In contrast, the number of programmers that exist has <em>increased</em> significantly in the last twenty years.</p>
<p>3. The last, and most important point is: as a group grows, it becomes more similar to the population as a whole.</p>
<p>Putting these ideas together we arrive at the awful truth. Fifty years ago, there were hardly any programmers. The programmers that did exist were brilliant &#8211; they had to be. What about twenty years ago during the PC revolution? How about ten years ago when computers became commodity items?</p>
<p>The sad fact is that, as programming becomes more and more popular, the stupidity of programmers must approach the stupidity of the average population.</p>
<p>At that is possibly why we have crap software. And &#8220;design patterns&#8221;, and &#8220;Object Oriented&#8221; and other fads that are designed to <em>stop</em> the bulk of programmers in an organization from doing <em>too much damage</em>, rather than lettting individuals come up with <em>creative</em> solutions or clean designs.</p>
]]></content:encoded>
			<wfw:commentRss>http://monkeystylegames.com/?feed=rss2&amp;p=70</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Project Starkiller iPhone/iPod game</title>
		<link>http://monkeystylegames.com/?p=67</link>
		<comments>http://monkeystylegames.com/?p=67#comments</comments>
		<pubDate>Mon, 15 Jun 2009 04:58:45 +0000</pubDate>
		<dc:creator>Justin</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://monkeystylegames.com/?p=67</guid>
		<description><![CDATA[Yup. This is the first public release of the project, just a quick teaser on youtube:

]]></description>
			<content:encoded><![CDATA[<p>Yup. This is the first public release of the project, just a quick teaser on youtube:</p>
<p><object width="480" height="295"><param name="movie" value="http://www.youtube.com/v/gTdtVBRKjCg&#038;hl=en&#038;fs=1&#038;rel=0"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube.com/v/gTdtVBRKjCg&#038;hl=en&#038;fs=1&#038;rel=0" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="480" height="295"></embed></object></p>
]]></content:encoded>
			<wfw:commentRss>http://monkeystylegames.com/?feed=rss2&amp;p=67</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
