<?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>dxmio.com &#187; EWU</title>
	<atom:link href="http://www.dxmio.com/category/education/ewu/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.dxmio.com</link>
	<description>&#34;Brevity is the soul of wit.&#34; --William Shakespeare</description>
	<lastBuildDate>Mon, 07 Dec 2009 08:15:28 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Abstractions</title>
		<link>http://www.dxmio.com/2009/10/02/abstractions/</link>
		<comments>http://www.dxmio.com/2009/10/02/abstractions/#comments</comments>
		<pubDate>Sat, 03 Oct 2009 05:04:15 +0000</pubDate>
		<dc:creator>dxmio</dc:creator>
				<category><![CDATA[Best Practices]]></category>
		<category><![CDATA[EWU]]></category>
		<category><![CDATA[Education]]></category>
		<category><![CDATA[Languages]]></category>
		<category><![CDATA[Personal]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[Software Engineering]]></category>

		<guid isPermaLink="false">http://www.dxmio.com/?p=564</guid>
		<description><![CDATA[Today I went back and re-read Joel Spolsky&#8217;s advice The Law of Leaky Abstractions and it hits a nail on the head about what peers from EWU were missing: 
&#8220;Learn how to do it manually first, then use abstractions to save time. Code generation tools which pretend to abstract out something, like all abstractions, leak, [...]]]></description>
			<content:encoded><![CDATA[<p>Today I went back and re-read Joel Spolsky&#8217;s advice <strong>The Law of Leaky Abstractions</strong> and it hits a nail on the head about what peers from EWU were missing: </p>
<p><em>&#8220;Learn how to do it manually first, then use abstractions to save time. Code generation tools which pretend to abstract out something, like all abstractions, leak, and the only way to deal with the leaks competently is to learn about how the abstractions work and what they are abstracting. So the abstractions save us time working, but they don&#8217;t save us time learning. And all this means that paradoxically, even as we have higher and higher level programming tools with better and better abstractions, <strong>becoming a proficient programmer is getting harder and harder</strong>.&#8221; </em></p>
]]></content:encoded>
			<wfw:commentRss>http://www.dxmio.com/2009/10/02/abstractions/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Chapter 7</title>
		<link>http://www.dxmio.com/2009/06/28/chapter-7/</link>
		<comments>http://www.dxmio.com/2009/06/28/chapter-7/#comments</comments>
		<pubDate>Sun, 28 Jun 2009 13:18:57 +0000</pubDate>
		<dc:creator>dxmio</dc:creator>
				<category><![CDATA[EWU]]></category>
		<category><![CDATA[Education]]></category>
		<category><![CDATA[Personal]]></category>

		<guid isPermaLink="false">http://www.dxmio.com/?p=475</guid>
		<description><![CDATA[Bachelors degree achieved.
]]></description>
			<content:encoded><![CDATA[<p>Bachelors degree achieved.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.dxmio.com/2009/06/28/chapter-7/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Anagrams</title>
		<link>http://www.dxmio.com/2009/02/27/anagrams/</link>
		<comments>http://www.dxmio.com/2009/02/27/anagrams/#comments</comments>
		<pubDate>Fri, 27 Feb 2009 11:39:23 +0000</pubDate>
		<dc:creator>dxmio</dc:creator>
				<category><![CDATA[Algorithms]]></category>
		<category><![CDATA[EWU]]></category>
		<category><![CDATA[Education]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[Personal]]></category>
		<category><![CDATA[Programming]]></category>

		<guid isPermaLink="false">http://www.dxmio.com/?p=453</guid>
		<description><![CDATA[The code below is from an interesting problem I was solving as part of practice for an upcoming programming competition. It&#8217;s purpose is to read in a series of strings from an input file (the number of which is defined on the first line of that file), and discover the various permutations of the letters [...]]]></description>
			<content:encoded><![CDATA[<p>The code below is from an interesting problem I was solving as part of practice for an upcoming programming competition. It&#8217;s purpose is to read in a series of strings from an input file (the number of which is defined on the first line of that file), and discover the various permutations of the letters in the given string. This code is not intended to be elegant; It&#8217;s only an algorithm test drive. The code here is in Java.</p>

<div class="wp_syntax"><div class="code"><pre class="java" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">java.io.*</span><span style="color: #339933;">;</span>
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">java.util.*</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000000; font-weight: bold;">class</span> Anagrams
<span style="color: #009900;">&#123;</span>
&nbsp;
    <span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000000; font-weight: bold;">static</span> <span style="color: #000066; font-weight: bold;">void</span> main<span style="color: #009900;">&#40;</span><span style="color: #003399;">String</span><span style="color: #009900;">&#91;</span><span style="color: #009900;">&#93;</span> args<span style="color: #009900;">&#41;</span> <span style="color: #000000; font-weight: bold;">throws</span> <span style="color: #003399;">Exception</span>
    <span style="color: #009900;">&#123;</span>
        <span style="color: #003399;">ArrayList</span> answers <span style="color: #339933;">=</span> <span style="color: #000066; font-weight: bold;">null</span><span style="color: #339933;">;</span>
&nbsp;
        Scanner fin <span style="color: #339933;">=</span> <span style="color: #000000; font-weight: bold;">new</span> Scanner<span style="color: #009900;">&#40;</span><span style="color: #000000; font-weight: bold;">new</span> <span style="color: #003399;">File</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;src/input.txt&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
        <span style="color: #000066; font-weight: bold;">int</span> numberOfWords <span style="color: #339933;">=</span> fin.<span style="color: #006633;">nextInt</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
        fin.<span style="color: #006633;">nextLine</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
        <span style="color: #000000; font-weight: bold;">for</span><span style="color: #009900;">&#40;</span><span style="color: #000066; font-weight: bold;">int</span> i <span style="color: #339933;">=</span> <span style="color: #cc66cc;">0</span><span style="color: #339933;">;</span> i <span style="color: #339933;">&amp;</span>lt<span style="color: #339933;">;</span> numberOfWords<span style="color: #339933;">;</span> i<span style="color: #339933;">++</span><span style="color: #009900;">&#41;</span>
        <span style="color: #009900;">&#123;</span>
&nbsp;
            <span style="color: #003399;">String</span> toPass <span style="color: #339933;">=</span> fin.<span style="color: #006633;">nextLine</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
            answers <span style="color: #339933;">=</span> findAnagrams<span style="color: #009900;">&#40;</span>toPass<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
        <span style="color: #009900;">&#125;</span>
&nbsp;
        <span style="color: #000000; font-weight: bold;">for</span><span style="color: #009900;">&#40;</span><span style="color: #000066; font-weight: bold;">int</span> p <span style="color: #339933;">=</span> <span style="color: #cc66cc;">0</span><span style="color: #339933;">;</span> p <span style="color: #339933;">&amp;</span>lt<span style="color: #339933;">;</span> answers.<span style="color: #006633;">size</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> p<span style="color: #339933;">++</span><span style="color: #009900;">&#41;</span>
            <span style="color: #003399;">System</span>.<span style="color: #006633;">out</span>.<span style="color: #006633;">println</span><span style="color: #009900;">&#40;</span>answers.<span style="color: #006633;">get</span><span style="color: #009900;">&#40;</span>p<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
    <span style="color: #009900;">&#125;</span>
&nbsp;
    <span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000000; font-weight: bold;">static</span> <span style="color: #003399;">ArrayList</span> findAnagrams<span style="color: #009900;">&#40;</span><span style="color: #003399;">String</span> inputString<span style="color: #009900;">&#41;</span>
    <span style="color: #009900;">&#123;</span>
        <span style="color: #003399;">ArrayList</span> answers <span style="color: #339933;">=</span> <span style="color: #000000; font-weight: bold;">new</span> <span style="color: #003399;">ArrayList</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
        <span style="color: #000066; font-weight: bold;">char</span><span style="color: #009900;">&#91;</span><span style="color: #009900;">&#93;</span> inputStringCharArray <span style="color: #339933;">=</span> inputString.<span style="color: #006633;">toCharArray</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
        <span style="color: #000066; font-weight: bold;">int</span> len <span style="color: #339933;">=</span> inputStringCharArray.<span style="color: #006633;">length</span><span style="color: #339933;">;</span>
&nbsp;
        <span style="color: #000000; font-weight: bold;">for</span><span style="color: #009900;">&#40;</span><span style="color: #000066; font-weight: bold;">int</span> shift <span style="color: #339933;">=</span> <span style="color: #cc66cc;">0</span><span style="color: #339933;">;</span> shift <span style="color: #339933;">&amp;</span>lt<span style="color: #339933;">;</span> inputString.<span style="color: #006633;">length</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> shift<span style="color: #339933;">++</span><span style="color: #009900;">&#41;</span>
        <span style="color: #009900;">&#123;</span>
            answers.<span style="color: #006633;">add</span><span style="color: #009900;">&#40;</span><span style="color: #000000; font-weight: bold;">new</span> <span style="color: #003399;">String</span><span style="color: #009900;">&#40;</span>inputStringCharArray<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
            <span style="color: #000000; font-weight: bold;">for</span><span style="color: #009900;">&#40;</span><span style="color: #000066; font-weight: bold;">int</span> swapPos <span style="color: #339933;">=</span> <span style="color: #cc66cc;">1</span><span style="color: #339933;">;</span> swapPos <span style="color: #339933;">&amp;</span>lt<span style="color: #339933;">;</span> inputString.<span style="color: #006633;">length</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> swapPos<span style="color: #339933;">++</span><span style="color: #009900;">&#41;</span>
            <span style="color: #009900;">&#123;</span>
                <span style="color: #003399;">String</span> potentialAnswer <span style="color: #339933;">=</span> stringFromSwap<span style="color: #009900;">&#40;</span>inputStringCharArray, len<span style="color: #339933;">-</span>swapPos, len<span style="color: #339933;">-</span>swapPos<span style="color: #339933;">-</span><span style="color: #cc66cc;">1</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
                <span style="color: #000000; font-weight: bold;">if</span><span style="color: #009900;">&#40;</span>answers.<span style="color: #006633;">contains</span><span style="color: #009900;">&#40;</span>potentialAnswer<span style="color: #009900;">&#41;</span> <span style="color: #339933;">==</span> <span style="color: #000066; font-weight: bold;">false</span><span style="color: #009900;">&#41;</span>
                    answers.<span style="color: #006633;">add</span><span style="color: #009900;">&#40;</span>potentialAnswer<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
            <span style="color: #009900;">&#125;</span>
&nbsp;
            <span style="color: #666666; font-style: italic;">//shift inputStringCharArray around left by 1 char</span>
            <span style="color: #000066; font-weight: bold;">char</span> startChar <span style="color: #339933;">=</span> inputStringCharArray<span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">0</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span>
            <span style="color: #000000; font-weight: bold;">for</span><span style="color: #009900;">&#40;</span><span style="color: #000066; font-weight: bold;">int</span> curPos <span style="color: #339933;">=</span> <span style="color: #cc66cc;">0</span><span style="color: #339933;">;</span> curPos <span style="color: #339933;">&amp;</span>lt<span style="color: #339933;">;</span> len<span style="color: #339933;">-</span><span style="color: #cc66cc;">1</span><span style="color: #339933;">;</span> curPos<span style="color: #339933;">++</span><span style="color: #009900;">&#41;</span>
            <span style="color: #009900;">&#123;</span>
                inputStringCharArray<span style="color: #009900;">&#91;</span>curPos<span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> inputStringCharArray<span style="color: #009900;">&#91;</span>curPos<span style="color: #339933;">+</span><span style="color: #cc66cc;">1</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span>
            <span style="color: #009900;">&#125;</span>
            inputStringCharArray<span style="color: #009900;">&#91;</span>len<span style="color: #339933;">-</span><span style="color: #cc66cc;">1</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> startChar<span style="color: #339933;">;</span>
&nbsp;
        <span style="color: #009900;">&#125;</span>
        <span style="color: #000000; font-weight: bold;">return</span> answers<span style="color: #339933;">;</span>
    <span style="color: #009900;">&#125;</span>
&nbsp;
    <span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000000; font-weight: bold;">static</span> <span style="color: #003399;">String</span> stringFromSwap<span style="color: #009900;">&#40;</span><span style="color: #000066; font-weight: bold;">char</span><span style="color: #009900;">&#91;</span><span style="color: #009900;">&#93;</span> inputStringCharArray, <span style="color: #000066; font-weight: bold;">int</span> lSpot, <span style="color: #000066; font-weight: bold;">int</span> rSpot<span style="color: #009900;">&#41;</span>
    <span style="color: #009900;">&#123;</span>
        <span style="color: #000066; font-weight: bold;">char</span><span style="color: #009900;">&#91;</span><span style="color: #009900;">&#93;</span> passedByValue <span style="color: #339933;">=</span> inputStringCharArray.<span style="color: #006633;">clone</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
        <span style="color: #000066; font-weight: bold;">char</span> temp <span style="color: #339933;">=</span> passedByValue<span style="color: #009900;">&#91;</span>rSpot<span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span>
        passedByValue<span style="color: #009900;">&#91;</span>rSpot<span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> passedByValue<span style="color: #009900;">&#91;</span>lSpot<span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span>
        passedByValue<span style="color: #009900;">&#91;</span>lSpot<span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> temp<span style="color: #339933;">;</span>
&nbsp;
        <span style="color: #003399;">String</span> toReturn <span style="color: #339933;">=</span> <span style="color: #000000; font-weight: bold;">new</span> <span style="color: #003399;">String</span><span style="color: #009900;">&#40;</span>passedByValue<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
        <span style="color: #000000; font-weight: bold;">return</span> toReturn<span style="color: #339933;">;</span>
&nbsp;
    <span style="color: #009900;">&#125;</span>
<span style="color: #009900;">&#125;</span></pre></div></div>

]]></content:encoded>
			<wfw:commentRss>http://www.dxmio.com/2009/02/27/anagrams/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>A Grab Bag of Busy</title>
		<link>http://www.dxmio.com/2009/02/21/a-grab-bag-of-busy/</link>
		<comments>http://www.dxmio.com/2009/02/21/a-grab-bag-of-busy/#comments</comments>
		<pubDate>Sun, 22 Feb 2009 00:50:54 +0000</pubDate>
		<dc:creator>dxmio</dc:creator>
				<category><![CDATA[C / C++]]></category>
		<category><![CDATA[EWU]]></category>
		<category><![CDATA[Education]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[Personal]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[Software]]></category>

		<guid isPermaLink="false">http://www.dxmio.com/?p=444</guid>
		<description><![CDATA[So I have some time this weekend, so I&#8217;m using it effectively.

Finishing a brush-up skim read through of Code Complete
Starting Design Patterns
Learning Ant
Brushing up on C++ skills in anticipation of&#8230;
Thinking about some planning aspects of a project Ian and I are starting
Playing around with some SVN commands I&#8217;d not used before

I&#8217;m also still working on [...]]]></description>
			<content:encoded><![CDATA[<p>So I have some time this weekend, so I&#8217;m using it effectively.</p>
<ul>
<li>Finishing a brush-up skim read through of Code Complete</li>
<li>Starting Design Patterns</li>
<li>Learning Ant</li>
<li>Brushing up on C++ skills in anticipation of&#8230;</li>
<li>Thinking about some planning aspects of a project Ian and I are starting</li>
<li>Playing around with some SVN commands I&#8217;d not used before</li>
</ul>
<p>I&#8217;m also still working on my Java/Swing Breakout game, but more casually since I&#8217;ve got some time yet with it.</p>
<p>Susanna has been getting into one of my favorite online radio stations, AH.FM. Been telling her about my favorites Tiesto, Ferry Corsten, Oakenfold, etc.</p>
<p>Sleep schedule has been a bit weird. Woke up at 1am after a full 8 hours of sleep. Weird, but not really a problem.</p>
<p>Until next time&#8230;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.dxmio.com/2009/02/21/a-grab-bag-of-busy/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>I&#8217;m Alive</title>
		<link>http://www.dxmio.com/2009/02/15/im-alive/</link>
		<comments>http://www.dxmio.com/2009/02/15/im-alive/#comments</comments>
		<pubDate>Mon, 16 Feb 2009 03:41:31 +0000</pubDate>
		<dc:creator>dxmio</dc:creator>
				<category><![CDATA[C#]]></category>
		<category><![CDATA[CSS]]></category>
		<category><![CDATA[EWU]]></category>
		<category><![CDATA[Education]]></category>
		<category><![CDATA[Gaming]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[Javascript]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Personal]]></category>
		<category><![CDATA[Politics]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[SQL]]></category>
		<category><![CDATA[Software]]></category>
		<category><![CDATA[Web Development]]></category>

		<guid isPermaLink="false">http://www.dxmio.com/?p=434</guid>
		<description><![CDATA[It&#8217;s been a fair amount of time since I last posted warning of the dry spell in my blogging, but I think things have stabilized to a point where I can offer some words.
Of course, the primary reason for my busyness as of late is the 4 classes I&#8217;m taking this quarter, CSCD350 Software Engineering, [...]]]></description>
			<content:encoded><![CDATA[<p>It&#8217;s been a fair amount of time since I last posted warning of the dry spell in my blogging, but I think things have stabilized to a point where I can offer some words.</p>
<p>Of course, the primary reason for my busyness as of late is the 4 classes I&#8217;m taking this quarter, CSCD350 Software Engineering, CSCD370 Graphical User Interface, CSCD427 Database II, CSCD494 Senior Project. All four of these classes has a significant quarter-long project, 2.5 of which I&#8217;m captaining (350, 494, 427), 0.5 of which I&#8217;m leading development (427), and 1 solo (370). I&#8217;m happy about development progress in 427 and 494, slightly concerned at the speed of 350, and just starting on 370. I don&#8217;t know what significance any of these numbers and words has to anyone reading this, unless you are directly involved, since I haven&#8217;t really offered any details. The basic idea is that 3 of them are PHP/MSSQL projects, and the last one is the game <a href="http://en.wikipedia.org/wiki/Breakout_(arcade_game)">Breakout</a>, which I will go into more depth farther down the page in this post. For the curious, you can look at <a href="http://wiki.dxmio.com">wiki.dxmio.com</a> to see the projects.</p>
<p>I started pretty heavy into the job searching last month, and I&#8217;ve probably applied to 100 places or so on the west side of the state. I have a number of contacts through friends and family, but no bites yet. I intend to continue sending resumes and apps for the next 4 months. To this end, I started a website to show off my skills to potential employers at <a href="http://www.benlakey.com">www.benlakey.com</a> . The site includes my resume in a number of formats, as well as several pages of code examples to display my programming skills. Hopefully this helps my search. If you have any contacts on the west side of the state, I&#8217;d love to get in <a href="mailto:benlakey@gmail.com">contact with you</a>. </p>
<p>As of a year ago, I heard things like &#8220;oh you&#8217;ll be able to find employment no problem&#8221; and &#8220;employers will be fighting over you&#8221;. This is not the case anymore, since the economy went belly up, and its been pretty frustrating to follow. It&#8217;s very unfortunate that this all is happening just as I&#8217;m about to graduate, but I suppose that&#8217;s the way life works. I think my substantial amount of experience, combined with my resume site  and code examples, will make me a more attractive candidate than others, so we&#8217;ll see how things turn out here in a few months. You can bet that as soon as I get an employment offer I&#8217;ll post something here expressing my excitement.</p>
<p>Work has been going pretty good. I discovered that <a href="http://www.digitalarchives.wa.gov/">my internship</a> will continue through the end of school, so that&#8217;s encouraging. Lately, I&#8217;ve been doing a pretty significant amount of refactoring on the SFTP libraries and applications that I&#8217;ve been writing, a lot of which I can attribute to knowledge I gained in reading Code Complete by Steve McConnell. If you are a programmer and haven&#8217;t read <a href="http://cc2e.com/">Code Complete</a>, you need to. I&#8217;ve also begun to read <a href="http://www.amazon.com/Design-Patterns-Object-Oriented-Addison-Wesley-Professional/dp/0201633612">&#8216;Design Patterns&#8217; by Gamma, Helm, Johnson, Vlissides</a>, which I am told is equally as important as Code Complete, so I&#8217;m excited to get into that and apply its contents to my code. </p>
<p>So I mentioned that I was developing the game <a href="http://en.wikipedia.org/wiki/Breakout_(arcade_game)">Breakout</a> up near the start of this post. I&#8217;m really happy with how things are going with it; I created a very clean modular design, and I&#8217;m slowly filling in the various components. I&#8217;m so pleased with it that I intend for it to extend beyond the original class project, so you might see it show up on <a href="http://code.google.com/">Google Code</a> as an open source game (under a different name of course, since there are copyright issues). I don&#8217;t know if I really expect anyone to work on it once I post it, but at the very least I can point to it and use it as an example for my programming.</p>
<p>Speaking of open source, the PHCL project that I spoke of a few months ago on here, has completely died, because I realized it lacked any kind of focus, and the code was pretty dirty anyway. It&#8217;s still on google code at the time of this writing, but I intend to take it down shortly since it&#8217;s more of an embarrassing cesspool of code than anything, heh. There were some good ideas in it, but a lot of it is reinvention of the wheel, and in some cases, poor reinvention of the wheel.</p>
<p>Speaking more of open source, Ian and I have been discussing some ideas for starting an open source project this April. While we don&#8217;t have anything planned in any specific sense, there are some ideas floating around. The entire idea is currently on hold until April because I&#8217;m so busy this quarter in school. I&#8217;m very hopeful about developing something though, and given both of our talents, it should be pretty good. Stay tuned, and maybe you&#8217;ll even join us in the future&#8230;</p>
<p>That&#8217;s all for now. Keep checking back for more posts full of ambiguity, as they are sure to continue, although in an infrequent manner until April. </p>
]]></content:encoded>
			<wfw:commentRss>http://www.dxmio.com/2009/02/15/im-alive/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Pause</title>
		<link>http://www.dxmio.com/2009/01/17/pause/</link>
		<comments>http://www.dxmio.com/2009/01/17/pause/#comments</comments>
		<pubDate>Sat, 17 Jan 2009 09:02:03 +0000</pubDate>
		<dc:creator>dxmio</dc:creator>
				<category><![CDATA[C#]]></category>
		<category><![CDATA[CSS]]></category>
		<category><![CDATA[EWU]]></category>
		<category><![CDATA[Education]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Personal]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[SQL]]></category>
		<category><![CDATA[Web Development]]></category>
		<category><![CDATA[xhtml]]></category>

		<guid isPermaLink="false">http://www.dxmio.com/?p=417</guid>
		<description><![CDATA[There is likely going to be a several month pause in my blog postings, because I&#8217;m caught in a tidal wave of work + 4 class projects (2 of which I have to manage).
See you in March.
]]></description>
			<content:encoded><![CDATA[<p>There is likely going to be a several month pause in my blog postings, because I&#8217;m caught in a tidal wave of work + 4 class projects (2 of which I have to manage).</p>
<p>See you in March.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.dxmio.com/2009/01/17/pause/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Windows Server, SQL Server, PHP, and Passion</title>
		<link>http://www.dxmio.com/2008/12/23/windows-server-sql-server-php-and-passion/</link>
		<comments>http://www.dxmio.com/2008/12/23/windows-server-sql-server-php-and-passion/#comments</comments>
		<pubDate>Wed, 24 Dec 2008 02:09:47 +0000</pubDate>
		<dc:creator>dxmio</dc:creator>
				<category><![CDATA[CSS]]></category>
		<category><![CDATA[Domains]]></category>
		<category><![CDATA[EWU]]></category>
		<category><![CDATA[Education]]></category>
		<category><![CDATA[Hosting]]></category>
		<category><![CDATA[Mac OS X]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Personal]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[SQL]]></category>
		<category><![CDATA[Security]]></category>
		<category><![CDATA[Software]]></category>
		<category><![CDATA[Web Development]]></category>
		<category><![CDATA[Windows]]></category>

		<guid isPermaLink="false">http://www.dxmio.com/?p=403</guid>
		<description><![CDATA[For this upcoming quarter our instructor has slated a colleague and I to develop a web application in PHP using a MSSQL database, seperate from the standard student projects. In preparation for this, I decided to set up a development box so we could get started early. It was completely unnecessary for us to get [...]]]></description>
			<content:encoded><![CDATA[<p>For this upcoming quarter our instructor has slated a colleague and I to develop a web application in PHP using a MSSQL database, seperate from the standard student projects. In preparation for this, I decided to set up a development box so we could get started early. It was completely unnecessary for us to get started early, but we&#8217;re overachieving nerdy-types, so it was also an excercise in advancing our knowledge.</p>
<p>I retrieved a copy of Windows Server 2008 and SQL Server 2008 from the MSDNAA (an agreement with Microsoft that allows our school to give students pretty much any MSFT software.), and got to work securing it since it would be internet-facing. I should note to the reader that I had no prior experience with Windows Server, but then again it seems like all Microsoft OS&#8217;s are the same. After I got IIS 7.0 up and running, I installed PHP and locked it down with php.ini configuration edits, and poked a hole in the firewall to allow incoming port 80 traffic (though since it is a NAT&#8217;d server, so at that point still inaccessible to public IP space).  I then installed SVN and set up a repository for our development, set up a default MSSQL database, and defined an ODBC connector in case someone on our team needed it. Poked holes in the firewall for MSSQL and SVN. At this point I felt the box was reasonably ready to be public, so I set up DynDNS on the box, set up a CNAME for my domain to the DynDNS hostname, forwarded the necessary ports in my router, and set it loose.</p>
<p>The next step was to configure NetBeans to connect to the SVN repository as well as connect to the database via ODBC connection through JDBC drivers. All seems in order, and I&#8217;ve been developing the core framework for the project over the past couple of days. I&#8217;ve also decided that since many of the classes I&#8217;m developing have more generic purposes, I&#8217;m going to release a class library at some point, so keep an eye out for that if you are into that kind of thing.</p>
<p>Oh, and that Christmas thing is the day after tomorrow. Photos of goodies will be posted after the 25th.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.dxmio.com/2008/12/23/windows-server-sql-server-php-and-passion/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Development Environment</title>
		<link>http://www.dxmio.com/2008/12/19/development-environment/</link>
		<comments>http://www.dxmio.com/2008/12/19/development-environment/#comments</comments>
		<pubDate>Fri, 19 Dec 2008 17:59:44 +0000</pubDate>
		<dc:creator>dxmio</dc:creator>
				<category><![CDATA[C / C++]]></category>
		<category><![CDATA[EWU]]></category>
		<category><![CDATA[Education]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[Javascript]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Mac OS X]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Personal]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[Python]]></category>
		<category><![CDATA[Ruby]]></category>
		<category><![CDATA[SQL]]></category>
		<category><![CDATA[Software]]></category>
		<category><![CDATA[Web Development]]></category>
		<category><![CDATA[Windows]]></category>

		<guid isPermaLink="false">http://www.dxmio.com/?p=396</guid>
		<description><![CDATA[I&#8217;ve spent the past couple days working towards getting a common development environment set up, so that I don&#8217;t have to use different IDE&#8217;s and tools. I&#8217;m trying to get everything situated, since Winter quarter is likely to be one of the most programming intensive quarters that I&#8217;ve had. I want to be prepared, so [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve spent the past couple days working towards getting a common development environment set up, so that I don&#8217;t have to use different IDE&#8217;s and tools. I&#8217;m trying to get everything situated, since Winter quarter is likely to be one of the most programming intensive quarters that I&#8217;ve had. I want to be prepared, so as to reduce hassle.</p>
<p>Originally, as I made reference to in my previous post, I had settled on Eclipse since it provided more support for C++ than Visual Studio, (and with the added bonus of not being restricted to one platform and set of languages). Eclipse is pretty good, but in order to get everything situated the way I wanted, it would have required an inordinate amount of time setting up &#8216;perspectives&#8217; and &#8216;views&#8217; and installing dozens of plugins. Eclipse is certainly a good IDE, but it&#8217;s far from intuitive or user (developer?) friendly. You kind of get the sense that Eclipse is <em>too</em> modular, <em>too</em> open of a framework. Others have articulated this point better than I can, so check out the links in the previous blog post.</p>
<p>So where did I turn? Well, I had been playing around with NetBeans a couple of months back, and it&#8217;s the other giant in the world of IDE&#8217;s. I had never really dug too deep into it until this week, but I&#8217;m very impressed, to the point where I chose to try and mold it into my &#8216;perfect&#8217; dev environment. NetBeans is centered around being powerful, yet still simple to use. The interfaces have less clutter than other IDE&#8217;s, and there is more &#8216;out-of-the-box&#8217; as well. Without any special configuration, NetBeans has full intellisense, active syntax/semantic checking, refactoring, etc for Java, C, C++, Python, PHP, Javascript, Ruby (and Rails), and a variety of web technologies. Also included out of the box is the ability to have database projects for MySQL, PostgreSQL, MSSQL, Oracle, DB2, and ODBC connections. To top it off, Subversion, CVS, and Murcurial are integrated right into the IDE.  Any items not directly included in that mammoth list of supported things can be added via the plugin interface, which is as simple as selecting them from a repository GUI. </p>
<p>Very impressed with NetBeans. It is available for most platforms over at <a href="http://www.netbeans.org">www.netbeans.org</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.dxmio.com/2008/12/19/development-environment/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>A chilly breather</title>
		<link>http://www.dxmio.com/2008/12/15/a-chilly-breather/</link>
		<comments>http://www.dxmio.com/2008/12/15/a-chilly-breather/#comments</comments>
		<pubDate>Mon, 15 Dec 2008 11:37:46 +0000</pubDate>
		<dc:creator>dxmio</dc:creator>
				<category><![CDATA[C / C++]]></category>
		<category><![CDATA[EWU]]></category>
		<category><![CDATA[Education]]></category>
		<category><![CDATA[Gaming]]></category>
		<category><![CDATA[Personal]]></category>
		<category><![CDATA[Programming]]></category>

		<guid isPermaLink="false">http://www.dxmio.com/?p=386</guid>
		<description><![CDATA[Classes are out for chistmas break, so I&#8217;ve been spending time brushing up on my rusty C++ skills. You might think this is an odd way to spend ones break, unless you live where I do and understand the current weather conditions. Oh who am I kidding, I&#8217;d do it anyway regardless of the weather, [...]]]></description>
			<content:encoded><![CDATA[<p>Classes are out for chistmas break, so I&#8217;ve been spending time brushing up on my rusty C++ skills. You might think this is an odd way to spend ones break, unless you live where I do and understand the current weather conditions. Oh who am I kidding, I&#8217;d do it anyway regardless of the weather, I&#8217;m a nerd through and through. :)</p>
<p>But seriously, with the wind chill, it&#8217;s -15 F here right now.</p>
<p>Keep an eye on <a href="http://www.dxmio.com/code/c-cpp/">this page</a> if you like watching paint dry.</p>
<p>Been enjoying lots of Team Fortress 2 with Susanna. Also, I purchased the original Half-Life on Steam for $5 for both of us, so we&#8217;ve been playing through the entire franchise.</p>
<p>&#8216;Fraid I don&#8217;t have much more to post at the moment, but I&#8217;m sure the holidays will bring posting material, and more C++ code examples.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.dxmio.com/2008/12/15/a-chilly-breather/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Python memory simulator</title>
		<link>http://www.dxmio.com/2008/11/16/python-memory-simulator/</link>
		<comments>http://www.dxmio.com/2008/11/16/python-memory-simulator/#comments</comments>
		<pubDate>Mon, 17 Nov 2008 02:54:46 +0000</pubDate>
		<dc:creator>dxmio</dc:creator>
				<category><![CDATA[EWU]]></category>
		<category><![CDATA[Education]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[Python]]></category>

		<guid isPermaLink="false">http://www.dxmio.com/?p=363</guid>
		<description><![CDATA[I previously mentioned the Python memory simulator project that I was developing, and had set it to run 6 tests on a dual-core machine. 4 of those tests completed, but 2 did not. It turns out that the overhead of performing a sort on Python lists with lengths exceeding 10000, several hundred times per second, [...]]]></description>
			<content:encoded><![CDATA[<p>I previously mentioned the Python memory simulator project that I was developing, and had set it to run 6 tests on a dual-core machine. 4 of those tests completed, but 2 did not. It turns out that the overhead of performing a sort on Python lists with lengths exceeding 10000, several hundred times per second, eventually makes things slow to a crawl. So, given that I only wanted to compare my memory page objects on a single attribute, I wrote a comparer method and passed it in like so:</p>

<div class="wp_syntax"><div class="code"><pre class="python" style="font-family:monospace;">systemPages.<span style="color: black;">sort</span><span style="color: black;">&#40;</span><span style="color: #008000;">cmp</span>=my_comparer<span style="color: black;">&#41;</span></pre></div></div>

<p>And it did indeed speed up the simulator. Problem is that it would still take about 10 days to complete a given simulation this way, so I dug deeper. Turns out that there is some built in Python magic fairy dust that makes this work faster for whatever reason:</p>

<div class="wp_syntax"><div class="code"><pre class="python" style="font-family:monospace;">systemPages.<span style="color: black;">sort</span><span style="color: black;">&#40;</span>key=<span style="color: #dc143c;">operator</span>.<span style="color: black;">attrgetter</span><span style="color: black;">&#40;</span><span style="color: #483d8b;">'timesused'</span><span style="color: black;">&#41;</span><span style="color: black;">&#41;</span></pre></div></div>

<p>This makes the sort only pay attention to just the attribute &#8216;timesused&#8217; when performing a compare. This is also what I thought I was doing when I defined my comparer like so:</p>

<div class="wp_syntax"><div class="code"><pre class="python" style="font-family:monospace;"><span style="color: #ff7700;font-weight:bold;">def</span> timesused_compare<span style="color: black;">&#40;</span>page1, page2<span style="color: black;">&#41;</span> :
    <span style="color: #ff7700;font-weight:bold;">return</span> page1.<span style="color: black;">timesused</span> - page2.<span style="color: black;">timesused</span></pre></div></div>

<p>*shrug*   I don&#8217;t understand why one would be faster than the other, but it is. If anyone has insight, please comment.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.dxmio.com/2008/11/16/python-memory-simulator/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
