<?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>Goliath Designs</title>
	<atom:link href="http://www.goliathdesigns.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.goliathdesigns.com</link>
	<description>I have not failed. I&#039;ve just found 10,000 ways that won&#039;t work.</description>
	<lastBuildDate>Thu, 21 Jan 2010 16:21:49 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.1</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>OpenSource! System Information Monitor</title>
		<link>http://www.goliathdesigns.com/2009/12/sixth-post/</link>
		<comments>http://www.goliathdesigns.com/2009/12/sixth-post/#comments</comments>
		<pubDate>Wed, 30 Dec 2009 21:41:09 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Featured]]></category>
		<category><![CDATA[Work]]></category>

		<guid isPermaLink="false">http://portfolio.goliathdesigns.com/?p=39</guid>
		<description><![CDATA[<p>System Information Monitor is a Web Based Java program that monitors various system information, it supports many platform including Windows, Linux and Unix. The underlying API utilizes Hyperic SIGAR API, JFreeChart and the Swing Application Framework.</p><div style="float: right; padding: 20px 30px 10px 10px;"><a href="/wp-content/uploads/jnlp/SystemInformationMonitor/launch.jnlp"><img src="/wp-content/uploads/images/jnlp/Launch.png" width="88" height="23" /></a></div>]]></description>
			<content:encoded><![CDATA[<style>
<!--
div#content div#ct-info div.gallery a img {
	margin: 0px;
	padding: 10px;
}
div#content div#ct-info div.gallery a img.shadow_img{
	padding: 0px;
}
div.alignnone{
	float: left;
	/*padding: 5px;*/
	padding-right: 10px;
}
h2.margin{
	/*margin-bottom: 10px;*/
}
a, a:hover, a:active {
	cursor: pointer;
	text-decoration: none;
}</p>
<p>-->
</style>
<p><script>
<!--
jQuery("document").ready(function() {
	var width = ( typeof( window.innerWidth ) == 'number' ) ? window.innerWidth : document.documentElement.clientWidth;
	var height = ( typeof( window.innerHeight ) == 'number' ) ? window.innerHeight : document.documentElement.clientHeight;
	jQuery("a.popup").fancybox({
	frameWidth: width  * 0.9,
	frameHeight: height  * 0.9 });
	jQuery("a.group").fancybox({ });
});
-->
</script></p>
<div class="alignnone" style="height: 35px;">
<h3 class="margin">Forget about what you thought is possible, and embrace Change</h3>
</div>
<div style="overflow:hidden;width: 100%; " class="alignnone">
<blockquote style="background-color:#ffffff; border: 1px solid; font-style: normal; ; height: 70px;; margin:0 !important; max-width:100% !important;" class="shadow_curl br-rd4"><p style="margin: 0px; padding: 18px;">System Information Monitor was born with the idea of breaking free from platforms and installers.  4 weeks and a lot of hacking later, we have success.</p>
</blockquote>
<img src="http://www.goliathdesigns.com/wp-content/plugins/shadows/shadow_curl.png" class="aligncenter shadow_img" style="margin:0 !important;height:15px;width:100%;"></div>

<p></p>
<div class="alignnone">
<h2 class="margin" style="height: 35px;">the Prototype</h2>
<p> <em style="margin-left: 20px">click to launch the prototype</em>
</div>
<div style="text-align: center; margin: 0 auto; width: 91%;">
<a class="popup iframe" href="/wp-content/uploads/jnlp/System_Information_Monitor/TestPage.html"><div style="overflow:hidden;display:table;line-height:0;text-align:center;width:650px;" class="alignnone"><img src="/wp-content/uploads/images/SystemMonitor/SketchFlow_Map.png" width="650" height="342" class="shadow_curl" style="padding:0 !important; margin:0 !important; max-width:100% !important;"><br/><img src="http://www.goliathdesigns.com/wp-content/plugins/shadows/shadow_curl.png" class="shadow_img" style="margin:0 !important;height:15px;width:100%;"></div></a></div>
<div style="text-align: center; margin: 0 auto; width: 79%;" class="gallery">
<a class="group" href="/wp-content/uploads/images/SystemMonitor/SketchFlow_NetworkAdapter.png" rel="prototype"><div style="overflow:hidden;display:table;line-height:0;text-align:center;width:276px;" class="alignnone"><img src="/wp-content/uploads/images/SystemMonitor/SketchFlow_NetworkAdapter_Small.png" class="shadow_flat"  width="276" height="152" style="padding:0 !important; margin:0 !important; max-width:100% !important;"><br/><img src="http://www.goliathdesigns.com/wp-content/plugins/shadows/shadow_flat.png" class="shadow_img" style="margin:0 !important;height:10px;width:100%;"></div></a><a class="group" href="/wp-content/uploads/images/SystemMonitor/SketchFlow_IO.png" rel="prototype"><div style="overflow:hidden;display:table;line-height:0;text-align:center;width:276px;" class="alignnone"><img src="/wp-content/uploads/images/SystemMonitor/SketchFlow_IO_Small.png" class="shadow_flat"  width="276" height="152" style="padding:0 !important; margin:0 !important; max-width:100% !important;"><br/><img src="http://www.goliathdesigns.com/wp-content/plugins/shadows/shadow_flat.png" class="shadow_img" style="margin:0 !important;height:10px;width:100%;"></div></a>
</div>
<div class="alignnone">
<h2 class = "margin" style="height: 35px;">the Product <a style="margin-right: 10px;" href="/wp-content/uploads/jnlp/SystemInformationMonitor/launch.jnlp"><img src="/wp-content/uploads/images/jnlp/Launch.png" width="88" height="23" /></a></h2>
</div>
<div style="text-align: center; margin-left: 7%; width: 85%;" class="gallery alignnone">
<a class="group" href="/wp-content/uploads/images/SystemMonitor/Light_Process.png" rel="group"><div style="overflow:hidden;display:table;line-height:0;text-align:center;width:195px;" class="alignnone"><img src="/wp-content/uploads/images/SystemMonitor/Light_Process_Small.png" class="shadow_flat"  width="195" height="122" style="padding:0 !important; margin:0 !important; max-width:100% !important;"><br/><img src="http://www.goliathdesigns.com/wp-content/plugins/shadows/shadow_flat.png" class="shadow_img" style="margin:0 !important;height:10px;width:100%;"></div></a><a class="group" href="/wp-content/uploads/images/SystemMonitor/Light_NetworkAdapters.png" rel="group"><div style="overflow:hidden;display:table;line-height:0;text-align:center;width:195px;" class="alignnone"><img src="/wp-content/uploads/images/SystemMonitor/Light_NetworkAdapters_Small.png" class="shadow_flat"  width="195" height="122" style="padding:0 !important; margin:0 !important; max-width:100% !important;"><br/><img src="http://www.goliathdesigns.com/wp-content/plugins/shadows/shadow_flat.png" class="shadow_img" style="margin:0 !important;height:10px;width:100%;"></div></a><a class="group" href="/wp-content/uploads/images/SystemMonitor/Light_Cpu.png" rel="group"><div style="overflow:hidden;display:table;line-height:0;text-align:center;width:195px;" class="alignnone"><img src="/wp-content/uploads/images/SystemMonitor/Light_Cpu_Small.png" class="shadow_flat"  width="195" height="122" style="padding:0 !important; margin:0 !important; max-width:100% !important;"><br/><img src="http://www.goliathdesigns.com/wp-content/plugins/shadows/shadow_flat.png" class="shadow_img" style="margin:0 !important;height:10px;width:100%;"></div></a>
</div>
<div style="text-align: center; margin: 0 auto; width: 91%;" class="gallery"><a class="group" href="/wp-content/uploads/images/SystemMonitor/Dark_Quad.png" rel="group"><div style="overflow:hidden;display:table;line-height:0;text-align:center;width:650px;" class="alignnone"><img src="/wp-content/uploads/images/SystemMonitor/Dark_Quad_Small.png" width="650" height="387" class="shadow_curl"  style="padding:0 !important; margin:0 !important; max-width:100% !important;"><br/><img src="http://www.goliathdesigns.com/wp-content/plugins/shadows/shadow_curl.png" class="shadow_img" style="margin:0 !important;height:15px;width:100%;"></div></a></div>
<div style="text-align: center; margin: 0 auto; width: 85%;" class="gallery">
<a class="group" href="/wp-content/uploads/images/SystemMonitor/Light_System.png" rel="group"><div style="overflow:hidden;display:table;line-height:0;text-align:center;width:195px;" class="alignnone"><img src="/wp-content/uploads/images/SystemMonitor/Light_System_Small.png" class="shadow_flat"  width="195" height="122" style="padding:0 !important; margin:0 !important; max-width:100% !important;"><br/><img src="http://www.goliathdesigns.com/wp-content/plugins/shadows/shadow_flat.png" class="shadow_img" style="margin:0 !important;height:10px;width:100%;"></div></a><a class="group" href="/wp-content/uploads/images/SystemMonitor/Light_IO.png" rel="group"><div style="overflow:hidden;display:table;line-height:0;text-align:center;width:195px;" class="alignnone"><img src="/wp-content/uploads/images/SystemMonitor/Light_IO_Small.png" class="shadow_flat"  width="195" height="122" style="padding:0 !important; margin:0 !important; max-width:100% !important;"><br/><img src="http://www.goliathdesigns.com/wp-content/plugins/shadows/shadow_flat.png" class="shadow_img" style="margin:0 !important;height:10px;width:100%;"></div></a><a class="group" href="/wp-content/uploads/images/SystemMonitor/Light_NetworkConnections.png" rel="group"><div style="overflow:hidden;display:table;line-height:0;text-align:center;width:195px;" class="alignnone"><img src="/wp-content/uploads/images/SystemMonitor/Light_NetworkConnections_Small.png" class="shadow_flat"  width="195" height="122" style="padding:0 !important; margin:0 !important; max-width:100% !important;"><br/><img src="http://www.goliathdesigns.com/wp-content/plugins/shadows/shadow_flat.png" class="shadow_img" style="margin:0 !important;height:10px;width:100%;"></div></a>
</div>
<div class="alignnone">
<h2 class = "margin" style="height: 35px;">the Tech</h2>
</div>
<div>
<div style="overflow:hidden;width: 100%; " class="alignnone">
<blockquote style="background-color:#ffffff; border: 1px solid; font-style: normal; ; height: 500px;; margin:0 !important; max-width:100% !important;" class="shadow_curl br-rd4">
<h3 class="margin">Features</h3>
<h4> &raquo; Monitors System Information</h4>
<h4> &raquo; Supports Windows, Linux, Unix, Solaris</h4>
<h4> &raquo; No Install, Launch from the browser</h4>
<h4> &raquo; 26 Different Skins</h4>
<h4> &raquo; Open Source</h4>
<h3 class="margin">APIs Utilized</h3>
<h4> &raquo; Hyperic Sigar</h4>
<h4> &raquo; JFreeChart</h4>
<h4> &raquo; Swing Application Framework</h4>
<h4> &raquo; Substance</h4>
<h4> &raquo; Swing</h4>
<h3 class="margin">Other boring info</h3>
<p style="margin: 0px; padding: 5px 18px 18px 18px;">The guts of System Monitor lay in concurrency.  At any point in time System Monitor is utilizing a thread pool in order to poll information from the operating system.  Each of these sources respond at very diferrent rates so the thread pool keeps things flowing in at a near constant rate.</p>
</blockquote>
<img src="http://www.goliathdesigns.com/wp-content/plugins/shadows/shadow_curl.png" class="aligncenter shadow_img" style="margin:0 !important;height:15px;width:100%;"></div>

</div>
<div class="alignnone">
<h2 class = "margin" style="height: 35px;">sharing is Caring</h2>
</div>
<div style="overflow:hidden;width: 100%; " class="alignnone">
<blockquote style="background-color:#ffffff; border: 1px solid; font-style: normal; ; height:150px;; margin:0 !important; max-width:100% !important;" class="shadow_curl br-rd4">
<h3 class="margin">Sourceforge</h3>
<h4><a href="http://sysinfomonitor.sourceforge.net" target="_blank">http://sysinfomonitor.sourceforge.net</a></h4>
<h3 class="margin">Subversion</h3>
<h4><a href="https://sysinfomonitor.svn.sourceforge.net/svnroot/sysinfomonitor" target="_blank">svn co https://sysinfomonitor.svn.sourceforge.net/svnroot/sysinfomonitor sysinfomonitor</a></h4>
</blockquote>
<img src="http://www.goliathdesigns.com/wp-content/plugins/shadows/shadow_curl.png" class="aligncenter shadow_img" style="margin:0 !important;height:15px;width:100%;"></div>

<div class="alignnone">
<h2 class = "margin" style="height: 35px;">the Glorious Code</h2>
</div>
<div style="overflow:hidden;width: 100%; " class="alignnone">
<blockquote style="background-color:#ffffff; border: 1px solid; font-style: normal; ; height: 1500px;; margin:0 !important; max-width:100% !important;" class="shadow_curl br-rd4">
<h3 class="margin">Because documentation comes first!</h3>
<h4><a class="popup iframe" href="/wp-content/uploads/jnlp/SystemInformationMonitor/javadoc/index.html">Online JavaDocs</a></h4>
<p></p>
<h3 class="margin">Snatch it!</h3>
<h4>System Information Monitor</h4>
<p></p>
<h3 class="margin">Just a taste</h3>
<div style="font-size:12px">
<pre class="brush: java;">
// only a snippet to protect the eyes

    @Override
    public void update() {
        final int currentCpu = this.cpu;

        Runnable updateData = new Runnable() {

            public void run() {
                chart.setNotify(false);

                LinkedList&lt;LinkedList&lt;Double&gt;&gt; cpuHistory = cpuProcess.getCpuHistory();
                LinkedList&lt;Double&gt; cpu;

                counter = counter.add(BigInteger.ONE);

                if (dataset.getColumnCount() &gt; 0) {
                    dataset.removeColumn(0);
                }

                if (currentCpu == -1) {
                    // Number of CPUs
                    for (int i = 0; i &lt; cpuHistory.size(); i++) {
                        cpu = cpuHistory.get(i);
                        dataset.addValue((Number) cpu.getFirst(), i, counter);
                    }
                } else {
                    if (currentCpu &lt; cpuHistory.size()) {
                        cpu = cpuHistory.get(currentCpu);
                        dataset.addValue((Number) cpu.getFirst(), currentCpu, counter);
                    }
                }

                chart.setNotify(true);
                chart.fireChartChanged();
            }
        };
        SwingUtilities.invokeLater(updateData);
    }

    /**
     * Moves all the data from the CpuProcess to the dataset.  This operation
     * will do a complete replace on the dataset information.
     */
    private void moveData() {
        final int currentCpu = this.cpu;

        Runnable updateData = new Runnable() {

            public void run() {
                chart.setNotify(false);
                dataset.clear();

                LinkedList&lt;LinkedList&lt;Double&gt;&gt; cpuHistory = cpuProcess.getCpuHistory();
                LinkedList&lt;Double&gt; cpu;

                if (currentCpu == -1) {
                    // Number of CPUs
                    for (int i = 0; i &lt; cpuHistory.size(); i++) {
                        cpu = cpuHistory.get(i);

                        BigInteger beforeCount = counter;

                        // Number of datapoints
                        for (int j = 0; j &lt; cpu.size(); counter = counter.add(BigInteger.ONE), j++) {
                            dataset.addValue((Number) cpu.get(j), i, counter);
                        }

                        counter = beforeCount;
                    }
                } else {
                    cpu = cpuHistory.get(currentCpu);

                    BigInteger beforeCount = counter;

                    // Number of datapoints
                    for (int j = 0; j &lt; cpu.size(); counter = counter.add(BigInteger.ONE), j++) {
                        dataset.addValue((Number) cpu.get(j), currentCpu, counter);
                    }

                    counter = beforeCount;
                }

                counter = counter.add(BigInteger.valueOf(cpuHistory.get(0).size()));

                chart.setNotify(true);
                chart.fireChartChanged();
            }
        };
        SwingUtilities.invokeLater(updateData);
    }
}</pre>
</div>
</blockquote>
<img src="http://www.goliathdesigns.com/wp-content/plugins/shadows/shadow_curl.png" class="aligncenter shadow_img" style="margin:0 !important;height:15px;width:100%;"></div>

]]></content:encoded>
			<wfw:commentRss>http://www.goliathdesigns.com/2009/12/sixth-post/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>PHASE &#8211; 10 Weeks, Start to Finish</title>
		<link>http://www.goliathdesigns.com/2009/12/phase/</link>
		<comments>http://www.goliathdesigns.com/2009/12/phase/#comments</comments>
		<pubDate>Wed, 30 Dec 2009 21:39:17 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Featured]]></category>
		<category><![CDATA[Work]]></category>

		<guid isPermaLink="false">http://portfolio.goliathdesigns.com/?p=35</guid>
		<description><![CDATA[PHASE was a game developed from scratch by four developers in 10 weeks.  The idea of phasing in game means the player can control what they are able to pass through or stand on.  Using this principle the player must traverse the 3d levels.]]></description>
			<content:encoded><![CDATA[<style>
<!--
div#content div#ct-info div.gallery a img {
	margin: 0px;
	padding: 10px;
}
div#content div#ct-info div.gallery a img.shadow_img{
	padding: 0px;
}
div.alignnone{
	float: left;
	/*padding: 5px;*/
	padding-right: 10px;
}
h2.margin{
	/*margin-bottom: 10px;*/
}
a, a:hover, a:active {
	cursor: pointer;
	text-decoration: none;
}
.border{
	border: 3px solid;
}
.small_border{
	border: 2px solid;
}
-->
</style>
<p><script>
<!--
jQuery("document").ready(function() {
	var width = ( typeof( window.innerWidth ) == 'number' ) ? window.innerWidth : document.documentElement.clientWidth;
	var height = ( typeof( window.innerHeight ) == 'number' ) ? window.innerHeight : document.documentElement.clientHeight;
	jQuery("a.popup").fancybox({
	frameWidth: width  * 0.9,
	frameHeight: height  * 0.9 });
	jQuery("a.group").fancybox({ });
});
-->
</script></p>
<div class="alignnone" style="height: 35px;">
<h3 class="margin">a 3d Engine, a 3d World, a 3d Game, everything from scratch</h3>
</div>
<div class="alignnone" style="width: 100%">
<h2 class="margin" style="height: 35px;">the Concept</h2>
</div>
<div style="text-align: center; margin: 0 auto; width: 86%;" class="gallery">
<a class="group" href="/wp-content/uploads/images/phase/Concept_1.png" rel="prototype"><div style="overflow:hidden;display:table;line-height:0;text-align:center;width:290px;" class="alignnone"><img src="/wp-content/uploads/images/phase/Concept_1_small.png" class="shadow_flat br-rd4 small_border"  width="290" height="152" style="padding:0 !important; margin:0 !important; max-width:100% !important;"><br/><img src="http://www.goliathdesigns.com/wp-content/plugins/shadows/shadow_flat.png" class="shadow_img" style="margin:0 !important;height:10px;width:100%;"></div></a><a class="group" href="/wp-content/uploads/images/phase/Concept_3.png" rel="prototype"><div style="overflow:hidden;display:table;line-height:0;text-align:center;width:290px;" class="alignnone"><img src="/wp-content/uploads/images/phase/Concept_3_small.png" class="shadow_flat br-rd4 small_border"  width="290" height="152" style="padding:0 !important; margin:0 !important; max-width:100% !important;"><br/><img src="http://www.goliathdesigns.com/wp-content/plugins/shadows/shadow_flat.png" class="shadow_img" style="margin:0 !important;height:10px;width:100%;"></div></a>
</div>
<div style="text-align: center; margin: 0 auto; width: 93%;">
<a class="group" href="/wp-content/uploads/images/phase/Concept_5.png" rel="prototype"><div style="overflow:hidden;display:table;line-height:0;text-align:center;width:650px;" class="alignnone"><img src="/wp-content/uploads/images/phase/Concept_5_small.png" width="650" height="323" class="shadow_curl br-rd4 border" style="padding:0 !important; margin:0 !important; max-width:100% !important;"><br/><img src="http://www.goliathdesigns.com/wp-content/plugins/shadows/shadow_curl.png" class="shadow_img" style="margin:0 !important;height:15px;width:100%;"></div></a></div>
<div style="text-align: center; margin: 0 auto; width: 86%;" class="gallery">
<a class="group" href="/wp-content/uploads/images/phase/Concept_6.png" rel="prototype"><div style="overflow:hidden;display:table;line-height:0;text-align:center;width:290px;" class="alignnone"><img src="/wp-content/uploads/images/phase/Concept_6_small.png" class="shadow_flat br-rd4 small_border"  width="290" height="152" style="padding:0 !important; margin:0 !important; max-width:100% !important;"><br/><img src="http://www.goliathdesigns.com/wp-content/plugins/shadows/shadow_flat.png" class="shadow_img" style="margin:0 !important;height:10px;width:100%;"></div></a><a class="group" href="/wp-content/uploads/images/phase/Concept_7.png" rel="prototype"><div style="overflow:hidden;display:table;line-height:0;text-align:center;width:290px;" class="alignnone"><img src="/wp-content/uploads/images/phase/Concept_7_small.png" class="shadow_flat br-rd4 small_border"  width="290" height="152" style="padding:0 !important; margin:0 !important; max-width:100% !important;"><br/><img src="http://www.goliathdesigns.com/wp-content/plugins/shadows/shadow_flat.png" class="shadow_img" style="margin:0 !important;height:10px;width:100%;"></div></a>
</div>
<div class="alignnone">
<h2 class = "margin" style="height: 35px;">the Creation</h2>
<p><em style="margin-left: 20px"> in the wild</em>
</div>
<div style="text-align: center; margin-left: 7%; width: 90%;" class="gallery alignnone">
<a class="group" href="/wp-content/uploads/images/phase/Flyby/phase_opening_l.png" rel="group"><div style="overflow:hidden;display:table;line-height:0;text-align:center;width:195px;" class="alignnone"><img src="/wp-content/uploads/images/phase/Flyby/phase_opening_s.png" class="shadow_flat br-rd4 small_border"  width="195" height="122" style="padding:0 !important; margin:0 !important; max-width:100% !important;"><br/><img src="http://www.goliathdesigns.com/wp-content/plugins/shadows/shadow_flat.png" class="shadow_img" style="margin:0 !important;height:10px;width:100%;"></div></a><a class="group" href="/wp-content/uploads/images/phase/Flyby/phase_credit_l.png" rel="group"><div style="overflow:hidden;display:table;line-height:0;text-align:center;width:195px;" class="alignnone"><img src="/wp-content/uploads/images/phase/Flyby/phase_credit_s.png" class="shadow_flat br-rd4 small_border"  width="195" height="122" style="padding:0 !important; margin:0 !important; max-width:100% !important;"><br/><img src="http://www.goliathdesigns.com/wp-content/plugins/shadows/shadow_flat.png" class="shadow_img" style="margin:0 !important;height:10px;width:100%;"></div></a><a class="group" href="/wp-content/uploads/images/phase/Flyby/phase_single_l.png" rel="group"><div style="overflow:hidden;display:table;line-height:0;text-align:center;width:195px;" class="alignnone"><img src="/wp-content/uploads/images/phase/Flyby/phase_single_s.png" class="shadow_flat br-rd4 small_border"  width="195" height="122" style="padding:0 !important; margin:0 !important; max-width:100% !important;"><br/><img src="http://www.goliathdesigns.com/wp-content/plugins/shadows/shadow_flat.png" class="shadow_img" style="margin:0 !important;height:10px;width:100%;"></div></a>
</div>
<div style="text-align: center; margin: 0 auto; width: 91%;" class="gallery"><a class="group" href="/wp-content/uploads/images/phase/Flyby/level_one_3_l.png" rel="group"><div style="overflow:hidden;display:table;line-height:0;text-align:center;width:650px;" class="alignnone"><img src="/wp-content/uploads/images/phase/Flyby/level_one_3_m.png" width="650" height="406" class="shadow_curl br-rd4 border"  style="padding:0 !important; margin:0 !important; max-width:100% !important;"><br/><img src="http://www.goliathdesigns.com/wp-content/plugins/shadows/shadow_curl.png" class="shadow_img" style="margin:0 !important;height:15px;width:100%;"></div></a></div>
<div style="text-align: center; margin-left: 7%; width: 90%;" class="gallery alignnone">
<a class="group" href="/wp-content/uploads/images/phase/Flyby/level_one_1_l.png" rel="group"><div style="overflow:hidden;display:table;line-height:0;text-align:center;width:195px;" class="alignnone"><img src="/wp-content/uploads/images/phase/Flyby/level_one_1_s.png" class="shadow_flat br-rd4 small_border"  width="195" height="122" style="padding:0 !important; margin:0 !important; max-width:100% !important;"><br/><img src="http://www.goliathdesigns.com/wp-content/plugins/shadows/shadow_flat.png" class="shadow_img" style="margin:0 !important;height:10px;width:100%;"></div></a><a class="group" href="/wp-content/uploads/images/phase/Flyby/phase_instructions_l.png" rel="group"><div style="overflow:hidden;display:table;line-height:0;text-align:center;width:195px;" class="alignnone"><img src="/wp-content/uploads/images/phase/Flyby/phase_instructions_s.png" class="shadow_flat br-rd4 small_border"  width="195" height="122" style="padding:0 !important; margin:0 !important; max-width:100% !important;"><br/><img src="http://www.goliathdesigns.com/wp-content/plugins/shadows/shadow_flat.png" class="shadow_img" style="margin:0 !important;height:10px;width:100%;"></div></a><a class="group" href="/wp-content/uploads/images/phase/Flyby/level_one_2_l.png" rel="group"><div style="overflow:hidden;display:table;line-height:0;text-align:center;width:195px;" class="alignnone"><img src="/wp-content/uploads/images/phase/Flyby/level_one_2_s.png" class="shadow_flat br-rd4 small_border"  width="195" height="122" style="padding:0 !important; margin:0 !important; max-width:100% !important;"><br/><img src="http://www.goliathdesigns.com/wp-content/plugins/shadows/shadow_flat.png" class="shadow_img" style="margin:0 !important;height:10px;width:100%;"></div></a>
</div>
<div style="text-align: center; margin: 0 auto; width: 91%;" class="gallery"><a class="group" href="/wp-content/uploads/images/phase/Flyby/level_three_2_l.png" rel="group"><div style="overflow:hidden;display:table;line-height:0;text-align:center;width:650px;" class="alignnone"><img src="/wp-content/uploads/images/phase/Flyby/level_three_2_m.png" width="650" height="406" class="shadow_curl br-rd4 border"  style="padding:0 !important; margin:0 !important; max-width:100% !important;"><br/><img src="http://www.goliathdesigns.com/wp-content/plugins/shadows/shadow_curl.png" class="shadow_img" style="margin:0 !important;height:15px;width:100%;"></div></a></div>
<div style="text-align: center; margin-left: 7%; width: 90%;" class="gallery alignnone">
<a class="group" href="/wp-content/uploads/images/phase/Flyby/level_three_1_l.png" rel="group"><div style="overflow:hidden;display:table;line-height:0;text-align:center;width:195px;" class="alignnone"><img src="/wp-content/uploads/images/phase/Flyby/level_three_1_s.png" class="shadow_flat br-rd4 small_border"  width="195" height="122" style="padding:0 !important; margin:0 !important; max-width:100% !important;"><br/><img src="http://www.goliathdesigns.com/wp-content/plugins/shadows/shadow_flat.png" class="shadow_img" style="margin:0 !important;height:10px;width:100%;"></div></a><a class="group" href="/wp-content/uploads/images/phase/Flyby/level_three_3_l.png" rel="group"><div style="overflow:hidden;display:table;line-height:0;text-align:center;width:195px;" class="alignnone"><img src="/wp-content/uploads/images/phase/Flyby/level_three_3_s.png" class="shadow_flat br-rd4 small_border"  width="195" height="122" style="padding:0 !important; margin:0 !important; max-width:100% !important;"><br/><img src="http://www.goliathdesigns.com/wp-content/plugins/shadows/shadow_flat.png" class="shadow_img" style="margin:0 !important;height:10px;width:100%;"></div></a><a class="group" href="/wp-content/uploads/images/phase/Flyby/level_two_2_l.png" rel="group"><div style="overflow:hidden;display:table;line-height:0;text-align:center;width:195px;" class="alignnone"><img src="/wp-content/uploads/images/phase/Flyby/level_two_2_s.png" class="shadow_flat br-rd4 small_border"  width="195" height="122" style="padding:0 !important; margin:0 !important; max-width:100% !important;"><br/><img src="http://www.goliathdesigns.com/wp-content/plugins/shadows/shadow_flat.png" class="shadow_img" style="margin:0 !important;height:10px;width:100%;"></div></a>
</div>
<div class="alignnone">
<h2 class = "margin" style="height: 35px;">the Ups and Downs</h2>
</div>
<div>
<div style="overflow:hidden;width: 100%; " class="alignnone">
<blockquote style="background-color:#ffffff; border: 1px solid; font-style: normal; ; height: 600px;; margin:0 !important; max-width:100% !important;" class="shadow_curl br-rd4">
<h3 class="margin">5 things that went right</h3>
<h4> &raquo; Implemented all game mechanics</h4>
<h4> &raquo; Created a node based graphics engine</h4>
<h4> &raquo; Create a configuration manager</h4>
<h4> &raquo; Extremely motivated developers</h4>
<h4> &raquo; Early specialization of developers</h4>
<h3 class="margin">5 things that went wrong</h3>
<h4> &raquo; Lua integration</h4>
<h4> &raquo; Learning curve for design patterns</h4>
<h4> &raquo; Not focusing on cohesion</h4>
<h4> &raquo; Not testing builds on other machines</h4>
<h4> &raquo; Destructors were put off till the end of development</h4>
<h3 class="margin">5 things that should have changed</h3>
<h4> &raquo; More focus on gameplay</h4>
<h4> &raquo; Utilize Lua more</h4>
<h4> &raquo; Focus on learning openGL</h4>
<h4> &raquo; Learn advanced Visual Studio practices</h4>
<h4> &raquo; Stress documentation</h4>
</blockquote>
<img src="http://www.goliathdesigns.com/wp-content/plugins/shadows/shadow_curl.png" class="aligncenter shadow_img" style="margin:0 !important;height:15px;width:100%;"></div>

</div>
]]></content:encoded>
			<wfw:commentRss>http://www.goliathdesigns.com/2009/12/phase/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>TDD for the win &#8211; AES Encryption</title>
		<link>http://www.goliathdesigns.com/2009/12/aes/</link>
		<comments>http://www.goliathdesigns.com/2009/12/aes/#comments</comments>
		<pubDate>Wed, 30 Dec 2009 21:35:51 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Featured]]></category>
		<category><![CDATA[Work]]></category>

		<guid isPermaLink="false">http://portfolio.goliathdesigns.com/?p=33</guid>
		<description><![CDATA[TDD (Test Driven Development) is creating unit tests before ever coding.  Implementing AES encryption was both a test of my bitwise operator skills, as well as putting agile methods to the test.  
<br />
There is no way I could have succeeded without TDD.]]></description>
			<content:encoded><![CDATA[<p><script>
jQuery(document).ready(function () {
	var width = ( typeof( window.innerWidth ) == 'number' ) ? window.innerWidth : document.documentElement.clientWidth;
	var height = ( typeof( window.innerHeight ) == 'number' ) ? window.innerHeight : document.documentElement.clientHeight;
	jQuery("a.popup").fancybox({
		frameWidth: width  * 0.9,
		frameHeight: height  * 0.9
	});
	jQuery("a.aes_java").fancybox({
		frameWidth: width  * 0.9,
		frameHeight: height  * 0.9,
		padding: 0
	});
});
</script></p>
<style>
h2.margin{
	font-size: 20px;
	height: 25px;
	padding-top: 5px;
}
.border{
	border: 3px solid;
}
.small_border{
	border: 2px solid;
}
</style>
<div class="alignnone" style="height: 35px;">
<h3 class="margin">Because documentation > testing &#038;&#038; testing > coding</h3>
</div>
<div>
<div style="overflow:hidden;width: 100%; " class="alignnone">
<blockquote style="background-color:#ffffff; border: 1px solid; font-style: normal; ; height: 80px;; margin:0 !important; max-width:100% !important;" class="shadow_curl br-rd4">
<h3 class="margin">The Standard</h3>
<h4><a href="/wp-content/uploads/files/aes/fips-197.pdf" target="_blank"> &raquo; No cow-boy coding here! FIPS-197</a></h4>
</blockquote>
<img src="http://www.goliathdesigns.com/wp-content/plugins/shadows/shadow_curl.png" class="aligncenter shadow_img" style="margin:0 !important;height:15px;width:100%;"></div>

<h2 class="margin">Don&#8217;t worry, I got it Covered</h2>
<div style="text-align: center; margin: 0 auto; width: 90%;">
<a class="popup iframe" href="/wp-content/uploads/files/aes/coverage/coverage.html"><div style="overflow:hidden;display:table;line-height:0;text-align:center;width:650px;" class="alignnone"><img src="/wp-content/uploads/images/aes/unittests.png" width="650" height="203" class="shadow_flat" style="padding:0 !important; margin:0 !important; max-width:100% !important;"><br/><img src="http://www.goliathdesigns.com/wp-content/plugins/shadows/shadow_flat.png" class="shadow_img" style="margin:0 !important;height:10px;width:100%;"></div></a></div>
<h2 class="margin">and I&#8217;ll tell you exactly how too.</h2>
<div style="text-align: center; margin: 0 auto; width: 90%;">
<a class="popup iframe" href="/wp-content/uploads/files/aes/doc/index.html"><div style="overflow:hidden;display:table;line-height:0;text-align:center;width:650px;" class="alignnone"><img src="/wp-content/uploads/images/aes/javadoc.png" width="650" height="203" class="shadow_flat" style="padding:0 !important; margin:0 !important; max-width:100% !important;"><br/><img src="http://www.goliathdesigns.com/wp-content/plugins/shadows/shadow_flat.png" class="shadow_img" style="margin:0 !important;height:10px;width:100%;"></div></a></div>
<h2 class="margin">better yet, I&#8217;ll show you.</h2>
<div style="overflow:hidden;width: 100%; " class="alignnone">
<blockquote style="background-color:#ffffff; border: 1px solid; font-style: normal; ; height: 800px;; margin:0 !important; max-width:100% !important;" class="shadow_curl br-rd4">
<h3 class="margin">AES_java</h3>
<div style="display: none;">
 <a class="aes_java iframe" href="/aes_java"></a>
</div>
<div style="cursor: pointer; font-size: 12px;" onclick='jQuery("a.aes_java").trigger("click");'>
<pre class="brush: java; toolbar: false;">
// only a snippet because I care about your eyes
// but click here for the uncensored code

  /**
   * Applies S-Box substitution to each byte of a state matrix.
   *
   * @param s
   *          A state matrix having Nb columns and 4 rows.
   * @return s, after S-box substitution is applied to each byte.
   */
  protected int[][] subBytes(int[][] s) {
    for (int i = 0; i &lt; 4; i++) {
      for (int j = 0; j &lt; Nb; j++) {
        s[i][j] = subWord(s[i][j]) &amp; 0xFF;
      }
    }
    return s;
  }

  /**
   * Applies S-box substitution to each byte of a 4-byte word.
   *
   * @param w
   *          A 4-byte word.
   * @return w, after S-box substitution is applied to each byte.
   */
  protected static int subWord(int w) {
    int subWord = 0;
    for (int i = 24; i &gt;= 0; i -= 8) {
      int in = w &lt;&lt; i &gt;&gt;&gt; 24;
      subWord |= sBox[in] &lt;&lt; (24 - i);
    }
    return subWord;
  }

  /**
   * Multiplies x times a polynomial b(x) in GF(2^8) modulo the irreducible
   * polynomial m(x) = x^8+x^4+x^3+x+1. (i.e. m(x) = 0x11b).
   *
   * @param b
   *          A polynomial b(x) = b7x^7+b6x^6+b5x^5+b4x^4+b3x^3+b2x^2+b1x+b0 in
   *          GF(2^8).
   * @return xb(x) mod x8+x4+x3+x+1.
   */
  protected static int xtime(int b) {
    if ((b &amp; 0x80) == 0)
      return b &lt;&lt; 1;
    return (b &lt;&lt; 1) ^ 0x11b;
  }
}</pre>
</div>
</blockquote>
<img src="http://www.goliathdesigns.com/wp-content/plugins/shadows/shadow_curl.png" class="aligncenter shadow_img" style="margin:0 !important;height:15px;width:100%;"></div>

</div>
]]></content:encoded>
			<wfw:commentRss>http://www.goliathdesigns.com/2009/12/aes/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
