<?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>Big O(random)</title>
	<atom:link href="http://eldalin.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://eldalin.com</link>
	<description>Updates randomly!</description>
	<lastBuildDate>Sat, 21 Apr 2012 06:12:32 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.1.3</generator>
		<item>
		<title>I can rypwe</title>
		<link>http://eldalin.com/2012/04/21/i-can-rypwe/</link>
		<comments>http://eldalin.com/2012/04/21/i-can-rypwe/#comments</comments>
		<pubDate>Sat, 21 Apr 2012 06:12:05 +0000</pubDate>
		<dc:creator>Eris</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://eldalin.com/?p=552</guid>
		<description><![CDATA[Ues iondeed, I cantupe, and badlu at that. You see I just got a Das Keyboard Ultimarte Model S. Now I get to see exactly how bad of a touch typist I am. Pretty terrible, eh? This post is being written entirelu blind with no editing, and it shows! But now that I have Das, [...]]]></description>
			<content:encoded><![CDATA[<p>Ues iondeed, I cantupe, and badlu at that.  You see I  just got a <a href="http://store.daskeyboard.com/Das-Keyboard-Ultimate-Model-Silent/dp/B003M4XGI4">Das Keyboard Ultimarte Model S</a>.  Now I get to see exactly how bad of a touch typist I am.  Pretty terrible, eh?  This post is being written entirelu blind with no editing, and it shows!  But now that I have  Das, I&#8217;ve really hot no choice other than finally learning real rouch tyoising.</p>
<p>Okaaaaayyyyyy&#8230;&#8230;</p>
]]></content:encoded>
			<wfw:commentRss>http://eldalin.com/2012/04/21/i-can-rypwe/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>6 months?</title>
		<link>http://eldalin.com/2012/04/21/6-months/</link>
		<comments>http://eldalin.com/2012/04/21/6-months/#comments</comments>
		<pubDate>Sat, 21 Apr 2012 06:08:56 +0000</pubDate>
		<dc:creator>Eris</dc:creator>
				<category><![CDATA[General]]></category>

		<guid isPermaLink="false">http://eldalin.com/?p=549</guid>
		<description><![CDATA[Wow! Has it really been six months since my last post? I really am not a very good blogger am I? Well, to be honest, I got sucked in by games. First Skyrim, then Mass Effect, then Mass Effect 2, and finally Mass Effect 3. They were all excellent (except for the last few minute [...]]]></description>
			<content:encoded><![CDATA[<p>Wow!  Has it really been six months since my last post?  I really am not a very good blogger am I?  Well, to be honest, I got sucked in by games.  First Skyrim, then Mass Effect, then Mass Effect 2, and finally Mass Effect 3.  They were all excellent (except for the last few minute of ME3, but the Internet is abuzz with that story, so I&#8217;ll spare you).</p>
<p>But I really do get sucked into things and lose track of time.  I&#8217;m really terrible about that.</p>
<p>Oh well!  Back to the grind stone!  My latest project is just learning the fundamentals of GUI programming.  SDL does not support OpenGL 4, and I was have a hard time picking a different windowing library, so I decided to go back to basics.  Right now I writing a simple (very simple!) framework using xlib.  After that I&#8217;ll do the same on Windows.  Once I have a grasp of the basic concepts on both platforms, then I should be better positioned to understand the strengths and weaknesses of the available libraries.</p>
]]></content:encoded>
			<wfw:commentRss>http://eldalin.com/2012/04/21/6-months/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>RIP Dennis Ritchie</title>
		<link>http://eldalin.com/2011/10/13/rip-dennis-ritchie/</link>
		<comments>http://eldalin.com/2011/10/13/rip-dennis-ritchie/#comments</comments>
		<pubDate>Thu, 13 Oct 2011 14:45:43 +0000</pubDate>
		<dc:creator>Eris</dc:creator>
				<category><![CDATA[C/C++]]></category>
		<category><![CDATA[General]]></category>

		<guid isPermaLink="false">http://eldalin.com/?p=518</guid>
		<description><![CDATA[It&#8217;s now being reported that Dennis Ritchie has died. All programmers owe him a great debt of gratitude. He invented C and helped create Unix, and thus in many ways is one of the fathers of modern computing. #include &#60;stdio.h&#62; main&#40;&#41; &#123; &#160; printf&#40;&#34;goodbye, world&#34;&#41;; &#125; &#160; So long, Dennis! We&#8217;ll miss you!.]]></description>
			<content:encoded><![CDATA[<p>It&#8217;s now being reported that <a href="https://plus.google.com/u/0/101960720994009339267/posts/ENuEDDYfvKP?hl=en#101960720994009339267/posts/ENuEDDYfvKP">Dennis Ritchie has died.</a>  All programmers owe him a great debt of gratitude.  <a href="https://en.wikipedia.org/wiki/Dennis_Ritchie#C_and_Unix">He invented C</a> and helped create Unix, and thus in many ways is one of the fathers of modern computing.</p>
<blockquote><div class="dean_ch" style="white-space: wrap;">
<span class="co2">#include &lt;stdio.h&gt;</span></p>
<p>main<span class="br0">&#40;</span><span class="br0">&#41;</span><br />
<span class="br0">&#123;</span><br />
&nbsp; <a href="http://www.opengroup.org/onlinepubs/009695399/functions/printf.html"><span class="kw3">printf</span></a><span class="br0">&#40;</span><span class="st0">&quot;goodbye, world&quot;</span><span class="br0">&#41;</span>;<br />
<span class="br0">&#125;</span><br />
&nbsp;</div>
</blockquote>
<p>So long, Dennis!   We&#8217;ll miss you!.</p>
]]></content:encoded>
			<wfw:commentRss>http://eldalin.com/2011/10/13/rip-dennis-ritchie/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>The Legend of Grimrock</title>
		<link>http://eldalin.com/2011/10/11/the-legend-of-grimrock/</link>
		<comments>http://eldalin.com/2011/10/11/the-legend-of-grimrock/#comments</comments>
		<pubDate>Tue, 11 Oct 2011 09:53:38 +0000</pubDate>
		<dc:creator>Eris</dc:creator>
				<category><![CDATA[Games]]></category>

		<guid isPermaLink="false">http://eldalin.com/?p=511</guid>
		<description><![CDATA[Now here&#8217;s a game in development that I&#8217;ll be following with some interest: The Legend of Grimrock Can you say &#8220;old school&#8221; children? The game play video looks great! They seem to have really captured the spiritl of the old classics, like Ultima Underworld and Wizardry. I hope this turns our well. I certainly know [...]]]></description>
			<content:encoded><![CDATA[<p>Now here&#8217;s a game in development that I&#8217;ll be following with some interest: <a href="http://www.grimrock.net">The Legend of Grimrock</a></p>
<p>Can you say &#8220;old school&#8221; children?  The <a href="http://www.grimrock.net/2011/08/24/first-gameplay-video/">game play video</a> looks great!  They seem to have really captured the spiritl of the old classics, like <a href="https://en.wikipedia.org/wiki/Ultima_Underworld%3A_The_Stygian_Abyss">Ultima Underworld</a> and <a href="https://en.wikipedia.org/wiki/Wizardry">Wizardry</a>.  I hope this turns our well.  I certainly know that I&#8217;ll be keeping an eye on it!</p>
<p><object style="height: 390px; width: 640px;"><param name="movie" value="http://www.youtube.com/v/_HnTeQFBIq0?version=3" /><param name="allowFullScreen" value="true" /><param name="allowScriptAccess" value="always" /><embed type="application/x-shockwave-flash" width="640" height="360" src="http://www.youtube.com/v/_HnTeQFBIq0?version=3" allowfullscreen="true" allowscriptaccess="always"></embed></object></p>
]]></content:encoded>
			<wfw:commentRss>http://eldalin.com/2011/10/11/the-legend-of-grimrock/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>I&#8217;m glad too Richard</title>
		<link>http://eldalin.com/2011/10/11/im-glad-too-richard/</link>
		<comments>http://eldalin.com/2011/10/11/im-glad-too-richard/#comments</comments>
		<pubDate>Tue, 11 Oct 2011 09:43:33 +0000</pubDate>
		<dc:creator>Eris</dc:creator>
				<category><![CDATA[General]]></category>

		<guid isPermaLink="false">http://eldalin.com/?p=506</guid>
		<description><![CDATA[Apparently, Richard Stallman has offended people by not worshiping Steve Jobs. In his blog, Stallman wrote the following Steve Jobs, the pioneer of the computer as a jail made cool, designed to sever fools from their freedom, has died. As Chicago Mayor Harold Washington said of the corrupt former Mayor Daley, &#8220;I&#8217;m not glad he&#8217;s [...]]]></description>
			<content:encoded><![CDATA[<p>Apparently, Richard Stallman has offended people by not worshiping Steve Jobs.  In his blog, <a href="http://stallman.org/archives/2011-jul-oct.html#06_October_2011_%28Steve_Jobs%29">Stallman wrote</a> the following</p>
<blockquote><p>Steve Jobs, the pioneer of the computer as a jail made cool, designed to sever fools from their freedom, has died.</p>
<p>As Chicago Mayor Harold Washington said of the corrupt former Mayor Daley, &#8220;I&#8217;m not glad he&#8217;s dead, but I&#8217;m glad he&#8217;s gone.&#8221; Nobody deserves to have to die &#8211; not Jobs, not Mr. Bill, not even people guilty of bigger evils than theirs. But we all deserve the end of Jobs&#8217; malign influence on people&#8217;s computing.</p>
<p>Unfortunately, that influence continues despite his absence. We can only hope his successors, as they attempt to carry on his legacy, will be less effective.</p></blockquote>
<p>Apparently some people now think Stallman should resign from the FSF over this.  That might be appropriate if not for one thing: Stallman is right.  Steve Jobs was a great businessman and he had an eye for good technology, but by training people to accept restrictions on their freedom as a pre-condition of using computers, he has set back the cause of civil liberties on the Internet, and I simply see no reason to forgive him for that.</p>
<p>Apple frequently bans apps from the iPhone for political and religious reasons.</p>
<p><a href="http://www.huffingtonpost.com/2010/02/19/banned-iphone-apps-most-o_n_468039.html">Banned iPhone Apps: 15 Most Outrageous Rejected Apps</a><br />
<a href="http://www.huffingtonpost.com/2011/07/05/controversial-apps-apple-censored-banned_n_889938.html">The 9 Most Controversial Apps Censored By Apple</a></p>
<p>They also like to ban anything that let&#8217;s you program the computer, or emulate other computers, both activities that are fundamental to software freedom.</p>
<p><a href="http://nearlybanned.com/apps/command-line-for-iphone/">Command Line for iPhone</a><br />
<a href="http://www.pcauthority.com.au/News/148243,retro-on-your-phone-android-users-get-c64-emulator-while-similar-app-gets-banned-on-iphone.aspx">Retro on your phone: Android users get C64 emulator, while similar app gets banned on iPhone</a></p>
<p>Google&#8217;s Android is <a href="http://venturebeat.com/2011/05/30/google-emulator-ban-games/">now following Apple&#8217;s lead</a>, too, so it&#8217;s no use saying &#8220;the market will provide a solution&#8221;.  People have been trained to accept limits on their freedom, and it&#8217;s now virtually impossible to find a smart phone maker that actually respects your right to privacy and to control your own computers.</p>
<p>Thanks, for giving the world such a terrible gift, Steve.  I&#8217;m sorry you died from such a terrible disease, and my sympathy goes out to your family and friend.  I, though, will mourn the lost opportunities.  You turned your brilliant mind to inventing new ways to control people, rather than trying to free them.  You became, Big Brother, Steve.  And just like Winston Smith, we loved you.</p>
<p>But we won&#8217;t miss you.</p>
]]></content:encoded>
			<wfw:commentRss>http://eldalin.com/2011/10/11/im-glad-too-richard/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Trauma</title>
		<link>http://eldalin.com/2011/10/05/trauma/</link>
		<comments>http://eldalin.com/2011/10/05/trauma/#comments</comments>
		<pubDate>Wed, 05 Oct 2011 01:29:23 +0000</pubDate>
		<dc:creator>Eris</dc:creator>
				<category><![CDATA[Games]]></category>

		<guid isPermaLink="false">http://eldalin.com/?p=498</guid>
		<description><![CDATA[This weekend I played Trauma. It&#8217;s an interesting game, but I&#8217;m not sure how I feel about it. It left me with a sense of futility and lack of accomplishment. I think that might actually be the point, really. The game is a series of dreams being had by a young woman who is in [...]]]></description>
			<content:encoded><![CDATA[<p>This weekend I played <i><a href="http://www.traumagame.com/">Trauma</a></i>.  It&#8217;s an interesting game, but I&#8217;m not sure how I feel about it.  It left me with a sense of futility and lack of accomplishment.  I think that might actually be the point, really.  </p>
<p>The game is a series of dreams being had by a young woman who is in the hospital  recovering from a serious car accident.  Like real dreams, they can be repetitive and monotonous.  Also like real dreams, each one can have moments where a bit of the imagery from a different dream peeks through.  (Keep this in mind as you play.  If you get stuck, go have a different dream and you may find the clue you need for the first one.)</p>
<p>Again like real dreams, each sequence seems to hold symbolism whose meaning you just can&#8217;t quite pick out.  Sure, there are obvious messages, such as over-protective parents pushing you in directions you might not want to go,  But seeds of life that become overwhelming burdens instead?  Things never seem to work out how you intended them too, but this imagery leaves me with a nagging feeling that I&#8217;ve missed something.  I expect I have.  </p>
<p>In the end of the game, the memory of the dreams becomes just that &#8211; just a memory &#8211; and your character goes back home to her apartment to pick up her life where she left it, but with a gnawing feeling of dissatisfaction.  Much like my own weekend, actually.  I went into the weekend with the intention of working on a piece of code I&#8217;ve been writing, but instead I ended up doing other things, some useful, some not.  Laundry.  Grocery shopping.  Reading (<a href="http://gameprogramminggems.com/">Game Programming Gems</a> and <a href="https://secure.wikimedia.org/wikipedia/en/wiki/The_Mythical_Man-Month">The Mythical Man Month</a>).  In the end I wrote no code.  I didn&#8217;t even look at it!</p>
<p>And now it&#8217;s back to work for another exciting week of fixing broken websites.</p>
<p>I think the most unnerving thing about <i>Trauma</i> is that it left me with the same feeling that I actually have when I reflect on my own dreams and aspirations.</p>
]]></content:encoded>
			<wfw:commentRss>http://eldalin.com/2011/10/05/trauma/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Shared pointers in C++</title>
		<link>http://eldalin.com/2011/09/04/shared-pointers-in-c/</link>
		<comments>http://eldalin.com/2011/09/04/shared-pointers-in-c/#comments</comments>
		<pubDate>Sun, 04 Sep 2011 16:51:29 +0000</pubDate>
		<dc:creator>Eris</dc:creator>
				<category><![CDATA[C/C++]]></category>

		<guid isPermaLink="false">http://eldalin.com/?p=481</guid>
		<description><![CDATA[Having mostly been a C programmer, I&#8217;ve not kept up with C++ very much. Lately, though, I&#8217;ve been using it, and with the final adoption of the C++0x standard, I&#8217;ve started looking into the new features. Here&#8217;s one that caught my eye this morning: shared_ptr from section 20.7.2.2 of the C++0x standard. To users of [...]]]></description>
			<content:encoded><![CDATA[<p>Having mostly been a C programmer, I&#8217;ve not kept up with C++ very much.  Lately, though, I&#8217;ve been using it, and with the final adoption of the C++0x standard, I&#8217;ve started looking into the new features.  Here&#8217;s one that caught my eye this morning: <code>shared_ptr</code> from section 20.7.2.2 of the <a href="http://www.open-std.org/jtc1/sc22/wg21/">C++0x standard.</a></p>
<p>To users of the <a href="boost.org">Boost libraries</a>, this will be old hat, but to me its quite new and exciting.  <code>shared_ptr</code> is a class template that embodies a pointer that can be shared among different users such that when the last reference to the shared pointer is destroyed, the pointed to object is also destroyed.  In effect, it is a sort of reference counted pointer.  The upshot of this is that you can allocate memory with <code>new</code>, assigning the result to a <code>shared_ptr</code>, and then never have to worry about calling <code>delete</code>.</p>
<p>Here&#8217;s an example:</p>
<blockquote><div class="dean_ch" style="white-space: wrap;"><span class="co2">#include &lt;iostream&gt;</span><br />
<span class="co2">#include &lt;memory&gt;</span></p>
<p>using namespace std;</p>
<p>class C <span class="br0">&#123;</span><br />
public:<br />
&nbsp; &nbsp; C<span class="br0">&#40;</span><span class="br0">&#41;</span> <span class="br0">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <a href="http://www.opengroup.org/onlinepubs/009695399/functions/cout.html"><span class="kw3">cout</span></a> &lt;&lt; <span class="st0">&quot;Constructor: C&quot;</span> &lt;&lt; endl;<br />
&nbsp; &nbsp; <span class="br0">&#125;</span><br />
&nbsp; &nbsp; ~C<span class="br0">&#40;</span><span class="br0">&#41;</span> <span class="br0">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <a href="http://www.opengroup.org/onlinepubs/009695399/functions/cout.html"><span class="kw3">cout</span></a> &lt;&lt; <span class="st0">&quot;Destructor : C&quot;</span> &lt;&lt; endl;<br />
&nbsp; &nbsp; <span class="br0">&#125;</span><br />
<span class="br0">&#125;</span>;</p>
<p>class B <span class="br0">&#123;</span><br />
public:<br />
&nbsp; &nbsp; B<span class="br0">&#40;</span><span class="br0">&#41;</span> <span class="br0">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <a href="http://www.opengroup.org/onlinepubs/009695399/functions/cout.html"><span class="kw3">cout</span></a> &lt;&lt; <span class="st0">&quot;Constructor: B&quot;</span> &lt;&lt; endl;<br />
&nbsp; &nbsp; <span class="br0">&#125;</span><br />
&nbsp; &nbsp; ~B<span class="br0">&#40;</span><span class="br0">&#41;</span> <span class="br0">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <a href="http://www.opengroup.org/onlinepubs/009695399/functions/cout.html"><span class="kw3">cout</span></a> &lt;&lt; <span class="st0">&quot;Destructor : B&quot;</span> &lt;&lt; endl;<br />
&nbsp; &nbsp; <span class="br0">&#125;</span><br />
<span class="br0">&#125;</span>;</p>
<p>class A <span class="br0">&#123;</span><br />
public:<br />
&nbsp; &nbsp; shared_ptr&lt;B&gt; pb;<br />
&nbsp; &nbsp; C *pc;<br />
&nbsp; &nbsp; A<span class="br0">&#40;</span><span class="br0">&#41;</span> <span class="br0">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; pb = shared_ptr&lt;B&gt;<span class="br0">&#40;</span>new B<span class="br0">&#41;</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; pc = new C;<br />
&nbsp; &nbsp; <span class="br0">&#125;</span><br />
<span class="br0">&#125;</span>;</p>
<p><span class="kw4">int</span> main <span class="br0">&#40;</span><span class="kw4">int</span> argc, <span class="kw4">char</span> * argv<span class="br0">&#91;</span><span class="br0">&#93;</span><span class="br0">&#41;</span> <span class="br0">&#123;</span><br />
&nbsp; &nbsp; A a;<br />
<span class="br0">&#125;</span></div>
</blockquote>
<p>This example compiles under GNU g++, but I&#8217;ve not tested it with any other compilers, some of which don&#8217;t have as good support for C++0x yet.  You&#8217;ll need to use the &#8211;std=c++0x or &#8211;std=gnu++0x compiler options.<br />
<code>g++ --std=c++0x -o shared_ptr shared_ptr.cpp</code></p>
<p>If you compiler supports <code>shared_ptr</code>, try running this example.  On my system it produces the following output:</p>
<blockquote><pre>eris@luthien:/vol0/eris/dev/study/c++/shared_ptr $ g++ --std=c++0x -o shared_ptr shared_ptr.cpp  &#038;&#038; ./shared_ptr
Constructor: B
Constructor: C
Destructor : B
</pre>
</blockquote>
<p>Class <code>A</code> has two members, a <code>shared_ptr</code> to class <code>B</code> and a regular pointer to class <code>C</code>.  Both are allocated with <code>new</code> in <code>A</code>&#8216;s constructor, but neither of them is ever explicitly <code>delete</code>d.  Indeed, <code>A</code> has no destructor at all.  But the messages printed by the constructors and destructors of <code>B</code> and <code>C</code> let us see that the <code>B</code> object &#8211; held through a <code>shared_ptr</code> &#8211; does get it&#8217;s destructor called when the program terminates, while the <code>C</code> &#8211; held through a regular pointer &#8211; does not.  <code>C</code>&#8216;s memory has leaked through the programmer &#8220;forgetting&#8221; to define a destructor for <code>A</code>, but the <code>shared_ptr</code> to <code>B</code> takes care of it&#8217;s deletion for us.</p>
<p>In other words, a <code>shared_ptr</code> saves us from having to write a destructor, and helps to prevent our feet from being shot.</p>
<p>Very nice!</p>
]]></content:encoded>
			<wfw:commentRss>http://eldalin.com/2011/09/04/shared-pointers-in-c/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Getting started with Unicode</title>
		<link>http://eldalin.com/2011/08/02/getting-started-with-unicode/</link>
		<comments>http://eldalin.com/2011/08/02/getting-started-with-unicode/#comments</comments>
		<pubDate>Tue, 02 Aug 2011 16:17:18 +0000</pubDate>
		<dc:creator>Eris</dc:creator>
				<category><![CDATA[C/C++]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Windows]]></category>

		<guid isPermaLink="false">http://eldalin.com/?p=453</guid>
		<description><![CDATA[Since I wrote a simple LogFile class to use in my software, I decided that I ought to make sure it works with Unicode so that I can be prepared for multi-lingual support in the future. Hence, I&#8217;ve been reading up on Unicode and how to support it. Of course, the character encoding is closely [...]]]></description>
			<content:encoded><![CDATA[<p>Since I wrote a simple LogFile class to use in my software, I decided that I ought to make sure it works with Unicode so that I can be prepared for multi-lingual support in the future.  Hence, I&#8217;ve been reading up on Unicode and how to support it.  Of course, the character encoding is closely tied to international localization, so I&#8217;ve been reading up on that, too.  In learning about this, I&#8217;ve found a few interesting links that I thought I would share.</p>
<p><strong><em>The Very Basics</em></strong><br />
<a href="http://www.joelonsoftware.com/articles/Unicode.html">The Absolute Minimum Every Software Developer Absolutely, Positively Must Know About Unicode and Character Sets (No Excuses!)</a> by Joel Spolsky.  The article is what it claims, and is a decent introduction to just what Unicode and character sets are.</p>
<p><strong><em>Multi-byte-chars and Unicode on Windows</em></strong><br />
The first article I came across was also my introduction to the <a href="http://www.flipcode.com">Filpcode Archive</a>.  <a href="http://www.flipcode.com/archives/Advanced_String_Techniques_in_C-Part_I_Unicode.shtml">Advanced String Techniques in C++</a> by Fredrik Andersson describes techniques for dealing with multi-byte characters and Unicode on Windows.  It seems a bit complex compared to what I&#8217;m seeing on Linux, but this is an old article, so hopefully things have improved over the years.</p>
<p><strong><em>Unicode and Linux</em></strong><br />
One older but useful article I&#8217;ve found is <a href="http://eyegene.ophthy.med.umich.edu/unicode/">A Quick Primer On Unicode and Software Internationalization Under Linux and UNIX</a> by Ed Trager.  There&#8217;s a little technical information at the top, but mostly this article talks about the practicalities of using Unicode in Linux: the software you need and settings you might have to adjust.</p>
<p><strong><em>The Locale in C</em></strong><br />
Over at IBM Developer works, I found an article titled <a href="http://www.ibm.com/developerworks/linux/library/l-linuni/index.html">Linux Unicode programming</a> by Thomas Burger.  This covers the basics of detecting and setting locale information in C in a Linux environment.  Again, this is an older article, and I probably ought to have learned this information before now, but in the past I was programming system tools that generally had little, if any, user interface, so localization was never an issue.  Now it is.</p>
<p><strong><em>GCC beats VC++ ?</em></strong><br />
A lot of what I&#8217;ve been seeing indicates that working with UTF-8 &#8211; and in particular writing it to a file &#8211; on Windows requires you to explicitly convert your strings using WideCharToMultiByte() or set up some form of automatic conversion that hooks into the C++ streams library.  For example, see <a href="http://mariusbancila.ro/blog/2008/10/20/writing-utf-8-files-in-c/">Writing UTF-8 files in C++</a> by Marius Bancila.  This is information I&#8217;m going to keep in mind, but my testing with GCC 4.5 on Windows and Linux makes me really appreciate that compiler.  The first &#8220;naïve&#8221; example that Mr. Bancila provides as an example of fstream failing to write UTF-8 actually works just fine for me.  On both Windows and Linux it writes a UTF-8 encoded file with no special effort on my part.</p>
<p>I&#8217;m still absorbing everything, but the more I read about this the more it seems that as long as I stick with GCC then I essentially get UTF-8 support for free.</p>
]]></content:encoded>
			<wfw:commentRss>http://eldalin.com/2011/08/02/getting-started-with-unicode/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Source code repository now online</title>
		<link>http://eldalin.com/2011/08/02/source-code-repository-now-online/</link>
		<comments>http://eldalin.com/2011/08/02/source-code-repository-now-online/#comments</comments>
		<pubDate>Tue, 02 Aug 2011 12:21:22 +0000</pubDate>
		<dc:creator>Eris</dc:creator>
				<category><![CDATA[General]]></category>

		<guid isPermaLink="false">http://eldalin.com/?p=461</guid>
		<description><![CDATA[I&#8217;ve set up a Mercurial source code repository. Henceforth, any code that I publish will be included here for convenience. When you click on a project on the home page, you are first taken to the changelog for that project where you can see the recent activity. In the menu on the left, click one [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve set up a <a href="http://hg.eldalin.com/">Mercurial source code repository</a>.  Henceforth, any code that I publish will be included here for convenience.  When you click on a project on the home page, you are first taken to the changelog for that project where you can see the recent activity.  In the menu on the left, click one of the bz2, zip, or gz links to download the latest version of the project as a compressed archive, or click on &#8220;browse&#8221; to check out the individual files.</p>
<p>The repository is linked in menu of the blog to the left as &#8220;My code repository&#8221;.</p>
]]></content:encoded>
			<wfw:commentRss>http://eldalin.com/2011/08/02/source-code-repository-now-online/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>So much to learn!</title>
		<link>http://eldalin.com/2011/07/29/so-much-to-learn/</link>
		<comments>http://eldalin.com/2011/07/29/so-much-to-learn/#comments</comments>
		<pubDate>Fri, 29 Jul 2011 16:55:49 +0000</pubDate>
		<dc:creator>Eris</dc:creator>
				<category><![CDATA[General]]></category>

		<guid isPermaLink="false">http://eldalin.com/?p=445</guid>
		<description><![CDATA[I&#8217;ve been quiet, but I&#8217;ve not been idle. Unfortunately I have nothing to show at the moment but my ignorance. As I delve deeper in game programming I realize more and more how huge the topic is! I&#8217;ve been doing a lot of reading lately: The OpenGL Superbible, 5th ed. OpenGL Shading Language, 3rd ed. [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve been quiet, but I&#8217;ve not been idle.  Unfortunately I have nothing to show at the moment but my ignorance.  As I delve deeper in game programming I realize more and more how huge the topic is!  I&#8217;ve been doing a <em>lot</em> of reading lately:</p>
<ul>
<li><a href="http://www.starstonesoftware.com/OpenGL/">The OpenGL Superbible, 5th ed.</a></li>
<li><a href="http://www.amazon.com/OpenGL-Shading-Language-Randi-Rost/dp/0321637631/ref=sr_1_1?s=books&#038;ie=UTF8&#038;qid=1311957048&#038;sr=1-1">OpenGL Shading Language, 3rd ed.</a></li>
<li><a href="http://gameenginebook.com/">Game Engine Architecture</a></li>
<li><a href="http://gameprogramminggems.com/">Best of Game Programming Gems</a></li>
<li><a href="http://www.mathfor3dgameprogramming.com/">Mathematics for 3d Game Programming and Computer Graphics</a></li>
</ul>
<p>And on top of that, this morning I found the <a href="http://www.flipcode.com/archives/">Flipcode Archives</a> while searching for information about dealing with Unicode.</p>
<p>Of course, once I&#8217;ve worked my way through all of these I&#8217;ll really have only scratched the surface, right?</p>
<p>Well, it&#8217;s going to be a long haul, but I&#8217;m still having a blast with it.  With so much to learn I&#8217;ve been taking the approach of reading in one book until I reach a point where I feel like I can&#8217;t usefully go any further.  For example, I read in <i>Game Engine Architecture</i> through chapter 6 and then felt like I really couldn&#8217;t do anything else until I could put what I&#8217;d learned into a real context, but for that I needed to have some actual graphics code to build on.  So it was then that I turned to the <i>OpenGL Superbible</i>.  I&#8217;ve mostly read through it&#8217;s chapter 6 now, and in order to move forward in it I feel like I need a rudimentary engine to experiment with.  Synergy time!</p>
<p>So now I&#8217;ve set myself the task of creating my first crude object, scene, and resource managers.  For a little inspiration I&#8217;ve turned to the source code of the <a href="http://wiki.frictionalgames.com/hpl1/start">HPL1 Engine</a> from <a href="http://www.frictionalgames.com">Frictional Games</a>.  You can download it <a href="https://github.com/FrictionalGames">here</a>.  Looking at the HPL1 startup code is what got me thinking about Unicode.</p>
<p>So far I really haven&#8217;t made much progress.  I wrote a log file class the other night, and I&#8217;ve got a config file class for dealing with Windows style .ini files that I wrote a while back, but my job and the long drive to and from work keep me busy, so I don&#8217;t have a lot of free time to work on things.</p>
<p>I&#8217;ll post code when I have more of it, but in the meantime enjoy the reading list.  All of the books I linked to are really excellent, and some of them are often described as the definitive tomes on their topics, which is what led me to them in the first place.</p>
]]></content:encoded>
			<wfw:commentRss>http://eldalin.com/2011/07/29/so-much-to-learn/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

<!-- Served from: eldalin.com @ 2012-05-20 20:24:38 by W3 Total Cache -->
