<?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>erlendaakre.com &#187; client</title>
	<atom:link href="http://www.erlendaakre.com/tag/client/feed" rel="self" type="application/rss+xml" />
	<link>http://www.erlendaakre.com</link>
	<description>Erlend Aakre's blog</description>
	<lastBuildDate>Wed, 18 Jan 2012 12:56:58 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>Bye bye msn, welcome xmpp</title>
		<link>http://www.erlendaakre.com/bye-bye-msn-welcome-xmpp.html</link>
		<comments>http://www.erlendaakre.com/bye-bye-msn-welcome-xmpp.html#comments</comments>
		<pubDate>Mon, 08 Mar 2010 21:13:11 +0000</pubDate>
		<dc:creator>Erlend Aakre</dc:creator>
				<category><![CDATA[Computers]]></category>
		<category><![CDATA[General]]></category>
		<category><![CDATA[Chat]]></category>
		<category><![CDATA[client]]></category>
		<category><![CDATA[google]]></category>
		<category><![CDATA[google chat]]></category>
		<category><![CDATA[hotmail]]></category>
		<category><![CDATA[hotmail account]]></category>
		<category><![CDATA[ietf]]></category>
		<category><![CDATA[im]]></category>
		<category><![CDATA[instant messaging]]></category>
		<category><![CDATA[Internet]]></category>
		<category><![CDATA[jabber]]></category>
		<category><![CDATA[Messenger]]></category>
		<category><![CDATA[messenger protocol]]></category>
		<category><![CDATA[microsoft]]></category>
		<category><![CDATA[msn]]></category>
		<category><![CDATA[msn account]]></category>
		<category><![CDATA[open protocol]]></category>
		<category><![CDATA[pidgin]]></category>
		<category><![CDATA[transitivity]]></category>
		<category><![CDATA[windows live messenger]]></category>
		<category><![CDATA[xmpp]]></category>

		<guid isPermaLink="false">http://www.erlendaakre.com/?p=912</guid>
		<description><![CDATA[I&#8217;ve always hated MSN (Windows Live Messenger) but &#8220;everyone&#8221; I know uses it. But today I decided to delete my MSN account, something I&#8217;ve wanted to do for years Why? The default (microsoft) client is horrible, so you have to use a different client like pidgin My account was created way back when you had [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve always hated MSN (Windows Live Messenger) but &#8220;everyone&#8221; I know uses it. But today I decided to delete my MSN account, something I&#8217;ve wanted to do for years <img src='http://www.erlendaakre.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<h2><strong>Why?<br />
</strong></h2>
<ul>
<li>The default (microsoft) client is horrible, so you have to use a different client like <a title="Pidgin" href="http://pidgin.im">pidgin</a></li>
<li>My account was created way back when you had to use a hotmail account to do it, and having a hotmail account is actually quite embarrassing.</li>
<li>It&#8217;s a closed format, so when Microsoft changes something, all the clients that does not sucks breaks, and closed formats are ideologically incompatible with the concept of a free and open Internet.</li>
<li>I hate Microsoft, and by the laws of transitivity everything they make.</li>
<li>By using the Live Messenger protocol, you can only talk to other users of MSN live messenger. Using Live Messenger is like having a Hotmail account that you can only use to send/receive emails from other Hotmail users. Nobody would use such a limited and retarded mail service, but for some reason people are OK with using a IM service that works like this.</li>
</ul>
<h2><strong>The alternative</strong></h2>
<p><strong><br />
</strong><a href="http://www.erlendaakre.com/wp-content/uploads/2010/03/xmpp.png"><img class="alignnone size-full wp-image-913" title="xmpp" src="http://www.erlendaakre.com/wp-content/uploads/2010/03/xmpp.png" alt="" width="176" height="181" /></a></p>
<p>The only viable alternative was to go with <a title="XMPP" href="http://en.wikipedia.org/wiki/XMPP">XMPP</a>, which is an open and standardized protocol which anyone can use. XMPP is pretty much like email, anyone can set up a server and anyone who has an XMPP account can contact anyone else who has a XMPP account no matter which server they use.</p>
<p>The choice of server was between jabber.org or Google (there are thousands of other XMPP servers you can use, but these are the largest ones), but since jabber.org&#8217;s registration page was down while they were moving their servers, and I already have a Google chat account (which uses XMPP), the choice was pretty simple <img src='http://www.erlendaakre.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://www.erlendaakre.com/bye-bye-msn-welcome-xmpp.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Using WeakReference to confirm/find memory leaks in Java</title>
		<link>http://www.erlendaakre.com/using-weakreference-to-confirmfind-memory-leaks-in-java.html</link>
		<comments>http://www.erlendaakre.com/using-weakreference-to-confirmfind-memory-leaks-in-java.html#comments</comments>
		<pubDate>Fri, 04 Sep 2009 15:40:08 +0000</pubDate>
		<dc:creator>Erlend Aakre</dc:creator>
				<category><![CDATA[Computers]]></category>
		<category><![CDATA[programming]]></category>
		<category><![CDATA[client]]></category>
		<category><![CDATA[code]]></category>
		<category><![CDATA[galaxy]]></category>
		<category><![CDATA[java]]></category>
		<category><![CDATA[memory]]></category>
		<category><![CDATA[memory leak]]></category>
		<category><![CDATA[program]]></category>
		<category><![CDATA[trekwar]]></category>
		<category><![CDATA[visualvm]]></category>
		<category><![CDATA[weak reference]]></category>
		<category><![CDATA[weakreference]]></category>

		<guid isPermaLink="false">http://www.erlendaakre.com/?p=733</guid>
		<description><![CDATA[I recently had a memory leak in my Trekwar game, and to find it (or at least confirm it&#8217;s there) I used the WeakReference object in Java.. This is how I proceeded in locating the memory leak, this method could easily be adapted to other programs. Trekwar is turn based, so each turn the client [...]]]></description>
			<content:encoded><![CDATA[<p>I recently had a memory leak in my Trekwar game, and to find it (or at least confirm it&#8217;s there) I used the WeakReference object in Java..</p>
<p>This is how I proceeded in locating the memory leak, this method could easily be adapted to other programs.</p>
<p>Trekwar is turn based, so each turn the client downloads a Galaxy object from the server. There are many references to this objects inside action listeners, threads, etc..</p>
<p><strong>WeakReference</strong><br />
To make a long story short, a weak reference is like a normal reference, except it will not prevent the object it points to from being garbage collected.</p>
<p>This means that is you  have a normal and a weak reference to object A, the weak reference will be null if you remove the &#8220;hard&#8221; reference.</p>
<p><strong>1) </strong>In the client main executable (the class that holds the method that updates the map from the server). Import, declare and make a list of weak references</p>
<div id="wpshdo_1" class="wp-synhighlighter-outer"><div id="wpshdt_1" class="wp-synhighlighter-expanded"><table border="0" width="100%"><tr><td align="left" width="80%"><a name="#codesyntax_1"></a><a id="wpshat_1" class="wp-synhighlighter-title" href="#codesyntax_1"  onClick="javascript:wpsh_toggleBlock(1)" title="Click to show/hide code block">Code block</a></td><td align="right"><a href="#codesyntax_1" onClick="javascript:wpsh_code(1)" title="Show code only"><img border="0" style="border: 0 none" src="http://www.erlendaakre.com/wp-content/plugins/wp-synhighlight/themes/default/images/code.png" /></a>&nbsp;<a href="#codesyntax_1" onClick="javascript:wpsh_print(1)" title="Print code"><img border="0" style="border: 0 none" src="http://www.erlendaakre.com/wp-content/plugins/wp-synhighlight/themes/default/images/printer.png" /></a>&nbsp;<a href="http://www.erlendaakre.com/wp-content/plugins/wp-synhighlight/About.html" target="_blank" title="Show plugin information"><img border="0" style="border: 0 none" src="http://www.erlendaakre.com/wp-content/plugins/wp-synhighlight/themes/default/images/info.gif" /></a>&nbsp;</td></tr></table></div><div id="wpshdi_1" class="wp-synhighlighter-inner" style="display: block;"><pre class="java" style="font-family:monospace;"><span class="kw1">import</span> <span class="co2">java.lang.ref.WeakReference</span><span class="sy0">;</span>
<span class="kw1">private</span> ArrayList<span class="sy0">&lt;</span>WeakReference<span class="sy0">&lt;</span>Galaxy<span class="sy0">&gt;&gt;</span> weakRefs<span class="sy0">;</span>
&nbsp;
weakRefs <span class="sy0">=</span> <span class="kw1">new</span> ArrayList<span class="sy0">&lt;</span>WeakReference<span class="sy0">&lt;</span>Galaxy<span class="sy0">&gt;&gt;</span><span class="br0">&#40;</span><span class="br0">&#41;</span><span class="sy0">;</span></pre></div></div>
<p><strong>2)</strong> Find the place in your program where a new object is being added, in my place this is the localGalaxy object. Create a weak reference to this object, and list all your weak references.</p>
<div id="wpshdo_2" class="wp-synhighlighter-outer"><div id="wpshdt_2" class="wp-synhighlighter-expanded"><table border="0" width="100%"><tr><td align="left" width="80%"><a name="#codesyntax_2"></a><a id="wpshat_2" class="wp-synhighlighter-title" href="#codesyntax_2"  onClick="javascript:wpsh_toggleBlock(2)" title="Click to show/hide code block">Code block</a></td><td align="right"><a href="#codesyntax_2" onClick="javascript:wpsh_code(2)" title="Show code only"><img border="0" style="border: 0 none" src="http://www.erlendaakre.com/wp-content/plugins/wp-synhighlight/themes/default/images/code.png" /></a>&nbsp;<a href="#codesyntax_2" onClick="javascript:wpsh_print(2)" title="Print code"><img border="0" style="border: 0 none" src="http://www.erlendaakre.com/wp-content/plugins/wp-synhighlight/themes/default/images/printer.png" /></a>&nbsp;<a href="http://www.erlendaakre.com/wp-content/plugins/wp-synhighlight/About.html" target="_blank" title="Show plugin information"><img border="0" style="border: 0 none" src="http://www.erlendaakre.com/wp-content/plugins/wp-synhighlight/themes/default/images/info.gif" /></a>&nbsp;</td></tr></table></div><div id="wpshdi_2" class="wp-synhighlighter-inner" style="display: block;"><pre class="java" style="font-family:monospace;">localGalaxy <span class="sy0">=</span> <span class="br0">&#40;</span>Galaxy<span class="br0">&#41;</span> objStream.<span class="me1">readObject</span><span class="br0">&#40;</span><span class="br0">&#41;</span><span class="sy0">;</span>
weakRefs.<span class="me1">add</span><span class="br0">&#40;</span><span class="kw1">new</span> <a href="http://www.google.com/search?hl=en&amp;q=allinurl%3Aweakreference+java.sun.com&amp;btnI=I%27m%20Feeling%20Lucky"><span class="kw3">WeakReference</span></a><span class="br0">&#40;</span>localGalaxy<span class="br0">&#41;</span><span class="br0">&#41;</span><span class="sy0">;</span>
<span class="kw1">for</span><span class="br0">&#40;</span><span class="kw4">int</span> i <span class="sy0">=</span> <span class="nu0">0</span><span class="sy0">;</span> i <span class="sy0">&lt;</span> weakRefs.<span class="me1">size</span><span class="br0">&#40;</span><span class="br0">&#41;</span><span class="sy0">;</span> i<span class="sy0">++</span><span class="br0">&#41;</span> <span class="br0">&#123;</span>
<a href="http://www.google.com/search?hl=en&amp;q=allinurl%3Asystem+java.sun.com&amp;btnI=I%27m%20Feeling%20Lucky"><span class="kw3">System</span></a>.<span class="me1">out</span>.<span class="me1">print</span><span class="br0">&#40;</span><span class="st0">&quot;ref # &quot;</span> <span class="sy0">+</span> i <span class="sy0">+</span> <span class="st0">&quot; = &quot;</span><span class="br0">&#41;</span><span class="sy0">;</span>
<span class="kw1">try</span> <span class="br0">&#123;</span>
Galaxy testG <span class="sy0">=</span> <span class="br0">&#40;</span>Galaxy<span class="br0">&#41;</span>weakRefs.<span class="me1">get</span><span class="br0">&#40;</span>i<span class="br0">&#41;</span>.<span class="me1">get</span><span class="br0">&#40;</span><span class="br0">&#41;</span><span class="sy0">;</span>
<a href="http://www.google.com/search?hl=en&amp;q=allinurl%3Asystem+java.sun.com&amp;btnI=I%27m%20Feeling%20Lucky"><span class="kw3">System</span></a>.<span class="me1">out</span>.<span class="me1">println</span><span class="br0">&#40;</span>testG <span class="sy0">+</span> <span class="st0">&quot;, tick = &quot;</span> <span class="sy0">+</span> testG.<span class="me1">currentTick</span><span class="br0">&#41;</span><span class="sy0">;</span>
<span class="br0">&#125;</span>
<span class="kw1">catch</span><span class="br0">&#40;</span><a href="http://www.google.com/search?hl=en&amp;q=allinurl%3Anullpointerexception+java.sun.com&amp;btnI=I%27m%20Feeling%20Lucky"><span class="kw3">NullPointerException</span></a> npe<span class="br0">&#41;</span> <span class="br0">&#123;</span>
<a href="http://www.google.com/search?hl=en&amp;q=allinurl%3Asystem+java.sun.com&amp;btnI=I%27m%20Feeling%20Lucky"><span class="kw3">System</span></a>.<span class="me1">out</span>.<span class="me1">println</span><span class="br0">&#40;</span><span class="st0">&quot;null&quot;</span><span class="br0">&#41;</span><span class="sy0">;</span>
<span class="br0">&#125;</span>
<span class="br0">&#125;</span></pre></div></div>
<p>And you&#8217;re done!</p>
<p>Now when you run the program, you should see something like this each time the method is called</p>
<div id="wpshdo_3" class="wp-synhighlighter-outer"><div id="wpshdt_3" class="wp-synhighlighter-expanded"><table border="0" width="100%"><tr><td align="left" width="80%"><a name="#codesyntax_3"></a><a id="wpshat_3" class="wp-synhighlighter-title" href="#codesyntax_3"  onClick="javascript:wpsh_toggleBlock(3)" title="Click to show/hide code block">Code block</a></td><td align="right"><a href="#codesyntax_3" onClick="javascript:wpsh_code(3)" title="Show code only"><img border="0" style="border: 0 none" src="http://www.erlendaakre.com/wp-content/plugins/wp-synhighlight/themes/default/images/code.png" /></a>&nbsp;<a href="#codesyntax_3" onClick="javascript:wpsh_print(3)" title="Print code"><img border="0" style="border: 0 none" src="http://www.erlendaakre.com/wp-content/plugins/wp-synhighlight/themes/default/images/printer.png" /></a>&nbsp;<a href="http://www.erlendaakre.com/wp-content/plugins/wp-synhighlight/About.html" target="_blank" title="Show plugin information"><img border="0" style="border: 0 none" src="http://www.erlendaakre.com/wp-content/plugins/wp-synhighlight/themes/default/images/info.gif" /></a>&nbsp;</td></tr></table></div><div id="wpshdi_3" class="wp-synhighlighter-inner" style="display: block;"><pre class="text" style="font-family:monospace;">ref # 0 = org.aakretech.trekwar2.common.Galaxy@11ed166, tick = 37
ref # 1 = org.aakretech.trekwar2.common.Galaxy@9801f4, tick = 37
ref # 2 = org.aakretech.trekwar2.common.Galaxy@1c5d81c, tick = 38
ref # 3 = org.aakretech.trekwar2.common.Galaxy@101f8f4, tick = 39
ref # 4 = org.aakretech.trekwar2.common.Galaxy@1ed1e7e, tick = 40
ref # 5 = org.aakretech.trekwar2.common.Galaxy@e0a7ea, tick = 41</pre></div></div>
<p>Unless you want to wait until your GC decides it&#8217;s time to go, use a tool like <a title="Visual VM" href="http://www.erlendaakre.com/2008/313/visualvm-nifty-java-tool.html">VisualVM</a> to force the Garbage Collector to run.</p>
<p>After the GC has run, the output should look like this:</p>
<div id="wpshdo_4" class="wp-synhighlighter-outer"><div id="wpshdt_4" class="wp-synhighlighter-expanded"><table border="0" width="100%"><tr><td align="left" width="80%"><a name="#codesyntax_4"></a><a id="wpshat_4" class="wp-synhighlighter-title" href="#codesyntax_4"  onClick="javascript:wpsh_toggleBlock(4)" title="Click to show/hide code block">Code block</a></td><td align="right"><a href="#codesyntax_4" onClick="javascript:wpsh_code(4)" title="Show code only"><img border="0" style="border: 0 none" src="http://www.erlendaakre.com/wp-content/plugins/wp-synhighlight/themes/default/images/code.png" /></a>&nbsp;<a href="#codesyntax_4" onClick="javascript:wpsh_print(4)" title="Print code"><img border="0" style="border: 0 none" src="http://www.erlendaakre.com/wp-content/plugins/wp-synhighlight/themes/default/images/printer.png" /></a>&nbsp;<a href="http://www.erlendaakre.com/wp-content/plugins/wp-synhighlight/About.html" target="_blank" title="Show plugin information"><img border="0" style="border: 0 none" src="http://www.erlendaakre.com/wp-content/plugins/wp-synhighlight/themes/default/images/info.gif" /></a>&nbsp;</td></tr></table></div><div id="wpshdi_4" class="wp-synhighlighter-inner" style="display: block;"><pre class="text" style="font-family:monospace;">ref # 0 = null
ref # 1 = null
ref # 2 = null
ref # 3 = null
ref # 4 = null
ref # 5 = null
ref # 6 = org.aakretech.trekwar2.common.Galaxy@2b3c91, tick = 42</pre></div></div>
<p>Now, this means that the object IS being garbage collected, and there is no memory leak.. If you run this and the object you are monitoring (in this example the localGalaxy object) is not GC&#8217;ed because of stray references, you can tell because none of the references will point to null.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.erlendaakre.com/using-weakreference-to-confirmfind-memory-leaks-in-java.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Trekwar GUI updates</title>
		<link>http://www.erlendaakre.com/trekwar-gui-updates.html</link>
		<comments>http://www.erlendaakre.com/trekwar-gui-updates.html#comments</comments>
		<pubDate>Mon, 02 Feb 2009 22:12:46 +0000</pubDate>
		<dc:creator>Erlend Aakre</dc:creator>
				<category><![CDATA[Computers]]></category>
		<category><![CDATA[Games]]></category>
		<category><![CDATA[General]]></category>
		<category><![CDATA[programming]]></category>
		<category><![CDATA[client]]></category>
		<category><![CDATA[design]]></category>
		<category><![CDATA[fleet]]></category>
		<category><![CDATA[galaxy]]></category>
		<category><![CDATA[game]]></category>
		<category><![CDATA[graphical overhaul]]></category>
		<category><![CDATA[gui]]></category>
		<category><![CDATA[java]]></category>
		<category><![CDATA[screenshot]]></category>
		<category><![CDATA[ship]]></category>
		<category><![CDATA[star trek]]></category>
		<category><![CDATA[starsystem]]></category>
		<category><![CDATA[swing]]></category>
		<category><![CDATA[trekwar]]></category>

		<guid isPermaLink="false">http://www.erlendaakre.com/?p=533</guid>
		<description><![CDATA[Recently much of my spare time programming has gone to giving the Trekwar client a graphical overhaul. Now I&#8217;ve managed to get most of what I broke, working again (Research and Starsystem Control), and I&#8217;ve added a glasspane that shows up and prevents the clicking of buttons (and thus creating a weird state of the [...]]]></description>
			<content:encoded><![CDATA[<p>Recently much of my spare time programming has gone to giving the <a title="Trekwar Star trek game" href="http://trekwar.aakretech.com/">Trekwar client</a> a graphical <a title="Trekwar GUI updates" href="http://www.erlendaakre.com/?p=411">overhaul</a>.</p>
<p>Now I&#8217;ve managed to get most of what I broke, working again (Research and Starsystem Control), and I&#8217;ve added a glasspane that shows up and prevents the clicking of buttons (and thus creating a weird state of the client) while each tick is being processed by the server.</p>
<p><a href="http://www.erlendaakre.com/wp-content/uploads/2009/02/trekwar_feb09_01.jpg"><img class="alignnone size-medium wp-image-534" title="trekwar_feb09_01" src="http://www.erlendaakre.com/wp-content/uploads/2009/02/trekwar_feb09_01-300x192.jpg" alt="trekwar_feb09_01" width="300" height="192" /><br />
</a><em>Currently the test galaxy is 100&#215;100 tiles and takes about 0.5 seconds to load to client</em></p>
<p><a href="http://www.erlendaakre.com/wp-content/uploads/2009/02/trekwar_feb09_02.jpg"><img class="alignnone size-medium wp-image-535" title="trekwar_feb09_02" src="http://www.erlendaakre.com/wp-content/uploads/2009/02/trekwar_feb09_02-300x192.jpg" alt="trekwar_feb09_02" width="300" height="192" /></a></p>
<p>Unlike the previous version of the game, it is now possible to have many windows active on top of the actual game map.<br />
The system box (far left of the screen) has been changed to display more information, and next up is a complete redesign of the fleet box.</p>
<p>But before making the new fleet box and fleet management system, I&#8217;ll have to do some major rewrite of the internal ship system and logic, to support <a title="Trekwar shipdesigner" href="http://www.erlendaakre.com/?p=388">user created ship classes</a>.</p>
<p>I&#8217;m looking forward to 8-10 hours of pure java and logic.. There is only so much Swing a man can take <img src='http://www.erlendaakre.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://www.erlendaakre.com/trekwar-gui-updates.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Goddamn memory leak</title>
		<link>http://www.erlendaakre.com/goddamn-memory-leak.html</link>
		<comments>http://www.erlendaakre.com/goddamn-memory-leak.html#comments</comments>
		<pubDate>Wed, 03 Sep 2008 17:09:40 +0000</pubDate>
		<dc:creator>Erlend Aakre</dc:creator>
				<category><![CDATA[Computers]]></category>
		<category><![CDATA[Games]]></category>
		<category><![CDATA[General]]></category>
		<category><![CDATA[programming]]></category>
		<category><![CDATA[bug]]></category>
		<category><![CDATA[client]]></category>
		<category><![CDATA[debug]]></category>
		<category><![CDATA[galaxy]]></category>
		<category><![CDATA[java]]></category>
		<category><![CDATA[memory]]></category>
		<category><![CDATA[server]]></category>
		<category><![CDATA[star trek]]></category>
		<category><![CDATA[trekwar]]></category>

		<guid isPermaLink="false">http://www.erlendaakre.com/?p=353</guid>
		<description><![CDATA[Still havent been able to localize that damn memory leak in the Trekwar client. At least the server  has no leaks and can run for days only using around 15-20 MB of memory (galaxy with 10&#8217;000 sectors): The client however will crash after about 10 ticks if the galaxy is really big. Have stared at [...]]]></description>
			<content:encoded><![CDATA[<p>Still havent been able to localize that damn memory leak in the Trekwar client. At least the server  has no leaks <img src='http://www.erlendaakre.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  and can run for days only using around 15-20 MB of memory (galaxy with 10&#8217;000 sectors):<br />
<a href="http://www.erlendaakre.com/wp-content/uploads/2008/09/server_memory.jpg"><img class="alignnone size-medium wp-image-356" title="server_memory" src="http://www.erlendaakre.com/wp-content/uploads/2008/09/server_memory-300x118.jpg" alt="" width="300" height="118" /></a></p>
<p>The client however will crash after about 10 ticks if the galaxy is really big. Have stared at the code for hours, with no result. I&#8217;m going to have to start some methodical and very tedious debugging to get this thing fixed <img src='http://www.erlendaakre.com/wp-includes/images/smilies/icon_sad.gif' alt=':(' class='wp-smiley' /><br />
<a href="http://www.erlendaakre.com/wp-content/uploads/2008/09/client_memory.jpg"><img class="alignnone size-medium wp-image-357" title="client_memory" src="http://www.erlendaakre.com/wp-content/uploads/2008/09/client_memory-300x118.jpg" alt="" width="300" height="118" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.erlendaakre.com/goddamn-memory-leak.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Research done</title>
		<link>http://www.erlendaakre.com/research-done.html</link>
		<comments>http://www.erlendaakre.com/research-done.html#comments</comments>
		<pubDate>Tue, 29 Jan 2008 23:51:28 +0000</pubDate>
		<dc:creator>Erlend Aakre</dc:creator>
				<category><![CDATA[Computers]]></category>
		<category><![CDATA[Games]]></category>
		<category><![CDATA[General]]></category>
		<category><![CDATA[programming]]></category>
		<category><![CDATA[client]]></category>
		<category><![CDATA[game]]></category>
		<category><![CDATA[gui]]></category>
		<category><![CDATA[java]]></category>
		<category><![CDATA[planet]]></category>
		<category><![CDATA[research]]></category>
		<category><![CDATA[screenshot]]></category>
		<category><![CDATA[software]]></category>
		<category><![CDATA[star trek]]></category>
		<category><![CDATA[trekwar]]></category>

		<guid isPermaLink="false">http://www.erlendaakre.com/?p=256</guid>
		<description><![CDATA[Today I completely finished the research system of my Star Trek game Trekwar. Well, I still have to crawl trough memory alpha to get images for all the 65 technologies in the game. but all the code and the GUI is complete: Next I will make the client download and display the new map / [...]]]></description>
			<content:encoded><![CDATA[<p>Today I completely finished the research system of my Star Trek game Trekwar.</p>
<p>Well, I still have to crawl trough <a title="Memory Alpha" href="http://www.memory-alpha.org/">memory alpha</a> to get images for all the 65 technologies in the game. but all the code and the GUI is complete:<br />
<a title="Trekwar Research view" href="http://www.erlendaakre.com/wp-content/uploads/2008/01/trekwar_research.jpg"><img src="http://www.erlendaakre.com/wp-content/uploads/2008/01/trekwar_research.thumbnail.jpg" alt="Trekwar Research view" /></a></p>
<p>Next I will make the client download and display the new map / research view each time the server starts a new turn.</p>
<p>After that I will be working on the order system, and doing either the build order system (creating new buildings on planets), or the fleet order system (moving starships, giving attack/colonize orders, etc..). Still LOTS to do, and it feels good to have Research out of the way.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.erlendaakre.com/research-done.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

