<?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>Jacob Repp &#187; d</title>
	<atom:link href="http://jrepp.com/category/d/feed/" rel="self" type="application/rss+xml" />
	<link>http://jrepp.com</link>
	<description>Game programming, music and life</description>
	<lastBuildDate>Fri, 16 Dec 2011 06:03:01 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.4</generator>
		<item>
		<title>Nice Collection of Hash Functions</title>
		<link>http://jrepp.com/2008/11/05/nice-collection-of-hash-functions/</link>
		<comments>http://jrepp.com/2008/11/05/nice-collection-of-hash-functions/#comments</comments>
		<pubDate>Wed, 05 Nov 2008 19:54:15 +0000</pubDate>
		<dc:creator>proj</dc:creator>
				<category><![CDATA[algorithms]]></category>
		<category><![CDATA[d]]></category>

		<guid isPermaLink="false">http://jrepp.com/2008/11/05/nice-collection-of-hash-functions/</guid>
		<description><![CDATA[Found a nice collection of hash routines written in D. These are easy to convert to other languages. I was just looking for Robert Sedgewick&#8217;s hash function since I didn&#8217;t have his book handy.]]></description>
			<content:encoded><![CDATA[<p>Found a nice collection of <a href="http://derrick.pallas.us/d/hash/">hash routines written in D</a>. These are easy to convert to other languages. I was just looking for <a href="http://en.wikipedia.org/wiki/Robert_Sedgewick_(computer_scientist)">Robert Sedgewick&#8217;s</a> hash function since I didn&#8217;t have his book handy.</p>
]]></content:encoded>
			<wfw:commentRss>http://jrepp.com/2008/11/05/nice-collection-of-hash-functions/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>DMD and Phobos Code Review</title>
		<link>http://jrepp.com/2008/04/18/dmd-and-phobos-code-review/</link>
		<comments>http://jrepp.com/2008/04/18/dmd-and-phobos-code-review/#comments</comments>
		<pubDate>Fri, 18 Apr 2008 06:00:12 +0000</pubDate>
		<dc:creator>proj</dc:creator>
				<category><![CDATA[d]]></category>

		<guid isPermaLink="false">http://jrepp.com/2008/04/18/dmd-and-phobos-code-review/</guid>
		<description><![CDATA[I&#8217;ve been spending time in dmd (via gdc) and libphobos as a research project. While I have enjoyed writing D code I quickly have run into some ugly aspects of D. DMD source: * Ambiguous labels with copious use of &#8230; <a href="http://jrepp.com/2008/04/18/dmd-and-phobos-code-review/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve been spending time in dmd (via gdc) and libphobos as a research project. While I have enjoyed writing D code I quickly have run into some ugly aspects of D. </p>

<p>DMD source:</p>

<pre><code>* Ambiguous labels with copious use of gotos
* Commented out printfs for tracing support
* Class and struct definitions scattered across multiple files
* Bugs?!
</code></pre>

<p>Phobos Runtime:</p>

<pre><code>* Use of a stop the world, mark and sweet garbage collector! Suckage for realtime <img src='http://jrepp.com/wp-includes/images/smilies/icon_sad.gif' alt=':(' class='wp-smiley' /> 
* Signals SIGUSR1, SIGUSR2 are used to pause all threads while garbage is collected
 * Buggy meta-programming that results in strange segfaults in objectInvariant() and gc methods.
* Unpredictable thread stalls in the simulation
* Non-cache friendly touching of memory during marking and collection
</code></pre>

<p><a href="http://en.wikipedia.org/wiki/Garbage_collection_(computer_science)">Good GC research</a></p>

<p><a href="http://www.hpl.hp.com/personal/Hans_Boehm/gc/">Boehm collector</a></p>

<p>I&#8217;m kinda pissed because I realized I would have to rewrite the runtime and the garbage collector. I bet JY could easily handle that. </p>
]]></content:encoded>
			<wfw:commentRss>http://jrepp.com/2008/04/18/dmd-and-phobos-code-review/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Some D on Linux Progress</title>
		<link>http://jrepp.com/2008/03/05/some-d-on-linux-progress/</link>
		<comments>http://jrepp.com/2008/03/05/some-d-on-linux-progress/#comments</comments>
		<pubDate>Wed, 05 Mar 2008 05:46:11 +0000</pubDate>
		<dc:creator>proj</dc:creator>
				<category><![CDATA[d]]></category>
		<category><![CDATA[game programming]]></category>

		<guid isPermaLink="false">http://jrepp.com/2008/03/05/some-d-on-linux-progress/</guid>
		<description><![CDATA[I&#8217;ve spent some time looking at D again and really trying to evaluate it&#8217;s fitness for MMO game development. There&#8217;s a lot of holes left still in the whole development picture. The IRC channel has been a really great source &#8230; <a href="http://jrepp.com/2008/03/05/some-d-on-linux-progress/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve spent some time looking at D again and really trying to evaluate it&#8217;s fitness for MMO game development. There&#8217;s a lot of holes left still in the whole development picture. The IRC channel has been a really great source of information, and is generally a fun place to hang out.</p>

<p>It might seem like a small thing but a huge milestone I&#8217;ve hit recently is getting a full tool chain running patched gcc-4.1 and gdb-6.5 with D support. Here&#8217;s a sample call stack from a crasher I&#8217;m investigating in phobos. Notice that it has the correct line numbers and all the D symbols are correctly demanged. This isn&#8217;t the case if I use stock dmd or gdb.</p>

<pre><code>Program received signal SIGSEGV, Segmentation fault.
[Switching to Thread -1211786352 (LWP 19585)]
0xb7dcccbc in memcpy () from /lib/tls/i686/cmov/libc.so.6
(gdb) bt
#0  0xb7dcccbc in memcpy () from /lib/tls/i686/cmov/libc.so.6
#1  0x0805ac8e in _adDupT (ti=@0x806381c, a={length = 134815743, ptr = 0xb7c72c1f})
    at ../.././libphobos/internal/gc/gc.d:1045
#2  0x08055a25 in std.stdio.readln(std.c.stdio._iobuf*, inout char[]) (fp=0xb7ea1440, buf=@0xb7c5932c) at ../.././libphobos/std/stdio.d:447
#3  0x08055aaa in std.stdio.readln(std.c.stdio._iobuf*) (fp=0xb7ea1440)
    at ../.././libphobos/std/stdio.d:281
#4  0x0804a218 in main.ConsoleThread.run() (this=@0xb7c5bb00) at main.d:37
#5  0x08053620 in std.thread.Thread.threadstart() (p=0xb7c5bb00)
    at ../.././libphobos/std/thread.d:988
#6  0xb7eaa46b in start_thread () from /lib/tls/i686/cmov/libpthread.so.0
#7  0xb7e2e6de in clone () from /lib/tls/i686/cmov/libc.so.6
(gdb) 
</code></pre>
]]></content:encoded>
			<wfw:commentRss>http://jrepp.com/2008/03/05/some-d-on-linux-progress/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Kenta Cho Interview</title>
		<link>http://jrepp.com/2007/02/13/kenta-cho-interview/</link>
		<comments>http://jrepp.com/2007/02/13/kenta-cho-interview/#comments</comments>
		<pubDate>Tue, 13 Feb 2007 15:45:53 +0000</pubDate>
		<dc:creator>proj</dc:creator>
				<category><![CDATA[d]]></category>
		<category><![CDATA[game programming]]></category>
		<category><![CDATA[kenta cho]]></category>

		<guid isPermaLink="false">http://jrepp.com/2007/02/13/kenta-cho-interview/</guid>
		<description><![CDATA[Kenta&#8217;s outlook is modest and refreshing. He simply builds the games he wants to play and lets others have them if they want to enjoy them. No great aspirations but just a simple love of what he does and as &#8230; <a href="http://jrepp.com/2007/02/13/kenta-cho-interview/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Kenta&#8217;s outlook is modest and refreshing. He simply builds the games he wants to play and lets others have them if they want to enjoy them. No great aspirations but just a simple love of what he does and as anyone who has built or tried to build a game a lot of dedication. I hope he continues because this kind of attitude is seriously refreshing these days.</p>

<p><object width="425" height="350"><param name="movie" value="http://www.youtube.com/v/TRIH39FJCos"></param><param name="wmode" value="transparent"></param><embed src="http://www.youtube.com/v/TRIH39FJCos" type="application/x-shockwave-flash" wmode="transparent" width="425" height="350"></embed></object></p>
]]></content:encoded>
			<wfw:commentRss>http://jrepp.com/2007/02/13/kenta-cho-interview/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Game Programming Experiments</title>
		<link>http://jrepp.com/2007/02/09/game-programming-experiments/</link>
		<comments>http://jrepp.com/2007/02/09/game-programming-experiments/#comments</comments>
		<pubDate>Fri, 09 Feb 2007 16:40:29 +0000</pubDate>
		<dc:creator>proj</dc:creator>
				<category><![CDATA[d]]></category>
		<category><![CDATA[game programming]]></category>
		<category><![CDATA[osx]]></category>
		<category><![CDATA[python]]></category>

		<guid isPermaLink="false">http://jrepp.com/2007/02/09/game-programming-experiments/</guid>
		<description><![CDATA[Although I&#8217;ve been plenty busy at work lately I&#8217;ve still had some time to play with various game programming experiments on my Mac. XNA stuff is shelved for the time being until I get my laptop back online. I&#8217;ll list &#8230; <a href="http://jrepp.com/2007/02/09/game-programming-experiments/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Although I&#8217;ve been plenty busy at work lately I&#8217;ve still had some time to play with various game programming experiments on my Mac. XNA stuff is shelved for the time being until I get my laptop back online.</p>

<p>I&#8217;ll list them in order of what I thought was the coolest:</p>

<p><strong> <a href="http://www.digitalmars.com/d/">The D Programming Language</a></strong></p>

<p>My first introduction to D was via japanese indie developer <a href="http://www.asahi-net.or.jp/%7Ecs8k-cyu/index_e.html">Kena &#8220;Saba&#8221; Cho aka ABA Games</a>. This guy turns out some really neat shooters using OpenGL and the D language. He puts the code out for all his games so you can get a very good idea on how the language is used. I threw together a small game engine framework in D the other night and I&#8217;m really impressed. I really need to do a whole post on all the cool things that are available to you in D. It&#8217;s a natively compiled imperitive programming language that lets you write code with templates, interfaces and garbage collection. I haven&#8217;t gotten a good debugger hooked up yet for it, stock GDB doesn&#8217;t seem to interoperate correctly.</p>

<p><a href="http://www.omnigroup.com/applications/omnigraffle/"><strong>OmniGaffle</strong></a></p>

<p>This program is a dream. I had kept all my UML diagrams to pen and paper because I hated visio so much but this program makes diagramming fun. The diagrams look great and are simple to work with. I&#8217;ve known of OMNI before but this program in mind really puts them on the top shelf of program design. I&#8217;ll post an engine design diagram I did later.</p>

<p><a href="http://www.swig.org/"><strong>SWIG </strong></a></p>

<p>SWIG makes it really easy to generate script wrappers for your code. Next time I need to integrate a scripting system for an engine this is likely what I&#8217;ll use. No more of this error-prone manual script wrapper writing. Writing script wrappers is about as entertaining as writing serialization routines but more error prone.</p>

<p><a href="http://pygame.org"><strong>PyGame </strong></a></p>

<p>If it weren&#8217;t for the crappy performance of the PyObjC wrappers to throw up a window I would rank this higher. I&#8217;m sure it&#8217;s awesome on windows or linux but it seriously sucks to have to wait 5 seconds on a dual G5 just for a window to show up. Also there is a hack required to <strong>init</strong> to even get it to work reliably on OSX. Also writing an entire game in python has it&#8217;s problems, not my cup-o-joe. I like writing code in D much better.</p>
]]></content:encoded>
			<wfw:commentRss>http://jrepp.com/2007/02/09/game-programming-experiments/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>

