<?xml version="1.0" encoding="UTF-8"?>
<feed xml:lang="en-US" xmlns="http://www.w3.org/2005/Atom">
  <title>Elmpowered - Home</title>
  <id>tag:elmpowered.skawaii.net,2008:mephisto/</id>
  <generator version="0.7.3" uri="http://mephistoblog.com">Mephisto Noh-Varr</generator>
  <link href="http://elmpowered.skawaii.net/feed/atom.xml" rel="self" type="application/atom+xml"/>
  <link href="http://elmpowered.skawaii.net/" rel="alternate" type="text/html"/>
  <updated>2008-01-27T00:01:58Z</updated>
  <entry xml:base="http://elmpowered.skawaii.net/">
    <author>
      <name>skawaii</name>
    </author>
    <id>tag:elmpowered.skawaii.net,2008-01-26:30</id>
    <published>2008-01-26T23:59:00Z</published>
    <updated>2008-01-27T00:01:58Z</updated>
    <category term="Random"/>
    <link href="http://elmpowered.skawaii.net/2008/1/26/meet-the-pre-house-hugh-laurie" rel="alternate" type="text/html"/>
    <title>Meet the pre-house Hugh Laurie</title>
<content type="html">
            &amp;lt;object height=&quot;355&quot; width=&quot;425&quot;&gt;&amp;lt;param name=&quot;movie&quot; value=&quot;http://www.youtube.com/v/BWnB0hQWGdI&amp;rel=1&quot;&gt;&amp;lt;/param&gt;&amp;lt;param name=&quot;wmode&quot; value=&quot;transparent&quot;&gt;&amp;lt;/param&gt;&amp;lt;embed type=&quot;application/x-shockwave-flash&quot; src=&quot;http://www.youtube.com/v/BWnB0hQWGdI&amp;rel=1&quot; height=&quot;355&quot; wmode=&quot;transparent&quot; width=&quot;425&quot;&gt;&amp;lt;/embed&gt;&amp;lt;/object&gt;

A friend recently introduced me to the genius that is &lt;a href=&quot;http://en.wikipedia.org/wiki/Jeeves_and_Wooster&quot;&gt;Jeeves and Wooster. Genius, pure genius.
          </content>  </entry>
  <entry xml:base="http://elmpowered.skawaii.net/">
    <author>
      <name>skawaii</name>
    </author>
    <id>tag:elmpowered.skawaii.net,2007-11-10:28</id>
    <published>2007-11-10T17:59:00Z</published>
    <updated>2007-11-10T18:13:44Z</updated>
    <category term="Computers"/>
    <link href="http://elmpowered.skawaii.net/2007/11/10/checking-checksums-in-mac-os-x" rel="alternate" type="text/html"/>
    <title>Checking checksums in Mac OS X</title>
<content type="html">
            Yesterday I download the DVD iso of &lt;a href=&quot;http://www.fedoraproject.org&quot; title=&quot;Fedora Homepage&quot;&gt;Fedora 8&lt;/a&gt;. Wanting to make sure that the file downloaded correctly, I started poking around trying to figure out how to compute the sha1 checksum of the file. Turns out that OS X doesn't come with the sha1sum package installed that comes standard with linux. I discovered that there are various sha1sum packages that you can download, compile, and then install, but that all seemed too complicated for something that I feel should come standard with the OS.&lt;br&gt;&lt;br&gt;

Eventually I discovered that you can use OpenSSL to compute the sha1 (and md5) checksum for you. In the terminal, type&lt;br&gt;
&lt;code&gt;openssl dgst -(sha1|md5) filename&lt;/code&gt;
          </content>  </entry>
  <entry xml:base="http://elmpowered.skawaii.net/">
    <author>
      <name>skawaii</name>
    </author>
    <id>tag:elmpowered.skawaii.net,2007-09-10:26</id>
    <published>2007-09-10T01:39:00Z</published>
    <updated>2007-09-13T06:59:59Z</updated>
    <category term="Computers"/>
    <link href="http://elmpowered.skawaii.net/2007/9/10/installing-fedora-7-on-parallels-3-0" rel="alternate" type="text/html"/>
    <title>Installing Fedora 7 on Parallels 3.0</title>
<content type="html">
            With the release of &lt;a href=&quot;http://www.parallels.com&quot;&gt;Parallels 3.0&lt;/a&gt;, the folks over at SWSoft attempted to make it a lot easier to install newer linux distros, such as Ubuntu 7.04 and Fedora 7. I was pretty excited, since I've been using Fedora since version 2 and have been aching to play around in linux again (I've only had my Macbook Pro for the past 3 months...which I love). Even though it was easier to install Fedora 7 with Parallels 3.0 than previous versions of Parallels, I still ran into a little bit of trouble. I figured I'd post my experience here for the benefit of anyone else that is also trying to install Fedora on Parallels 3.0.&lt;br&gt;&lt;br&gt;

The first problem I ran into was that the DVD I created from the ISO image wouldn't work. I kept getting a message that the DVD wasn't a boot disk...odd. I figured out that if I used the ISO image, rather than the DVD, that it worked out just fine. You can tell Parallels to use the ISO image in the advanced options of the install process.&lt;br&gt;&lt;br&gt;

The rest of the install process went smoothly. I even customized what packages were to be installed. No problems at all. However, after the installation and the first reboot, I saw this lovely error message - &quot;Kernel panic -- not syncing! Attempting to kill init.&quot; Turns out that the problem was that I had allocated too much memory to the virtual machine (apparently 1024 MB is too much to handle...why would this cause an error?). All I had to do was turn down the amount of memory from 1024 MB to 512 MB (see this &lt;a href=&quot;http://forum.parallels.com/thread12758.html&quot;&gt;post&lt;/a&gt; on the Parallels support forum).&lt;br&gt;&lt;br&gt;

With the death of the &quot;kernel panic&quot; error, my VM continued to boot and I thought that all was well. Alas, it wasn't. Something was wrong with the display and all I saw was a blank screen. After about a minute, I got a message that &quot;something bad was probably happening.&quot; Ah, just what I had in mind...another problem to solve. A quick search on the Parallels support forum led me to some &lt;a href=&quot;http://forum.parallels.com/showthread.php?t=13775&amp;highlight=fedora&quot;&gt;solutions&lt;/a&gt;. I ended up hitting Alt-F2 to get to a login prompt, logged in as root, and did a &lt;code&gt;yum -y update&lt;/code&gt;. A couple hours later and everything was up and running just fine (in fact, I'm writing this post from Fedora). Turns out I could've also just installed Parallel Tools and saved some time...but oh well.&lt;br&gt;&lt;br&gt;

So far Fedora is running just fine and I'm enjoying the occasional spin in linux again.
          </content>  </entry>
  <entry xml:base="http://elmpowered.skawaii.net/">
    <author>
      <name>skawaii</name>
    </author>
    <id>tag:elmpowered.skawaii.net,2007-09-05:23</id>
    <published>2007-09-05T21:25:00Z</published>
    <updated>2007-09-05T21:43:03Z</updated>
    <category term="Music"/>
    <link href="http://elmpowered.skawaii.net/2007/9/5/steve-s-big-announcement" rel="alternate" type="text/html"/>
    <title>Steve's Big Announcement</title>
<content type="html">
            Amidst all the excitement of Steve Jobs announcing the new iPods at today's event, you may have missed this quickie about a titillating new product from Apple. The following exchange took place as Starbucks' founder and chairman, Howard Schultz, took the stage.&lt;br&gt;&lt;br&gt;

&lt;img title=&quot;iSmell. Coming October 2007&quot; class=&quot;centered&quot; src=&quot;http://elmpowered.skawaii.net/assets/2007/9/5/steve_loves_starbucks2.jpg&quot;&gt;&lt;br&gt;&lt;br&gt;

&lt;b&gt;NOTE:&lt;/b&gt; The original picture is from &lt;a href=&quot;http://www.engadget.com/2007/09/05/steve-jobs-live-apples-the-beat-goes-on-special-event/&quot;&gt;Engadet's live blog&lt;/a&gt; of today's proceedings.
          </content>  </entry>
  <entry xml:base="http://elmpowered.skawaii.net/">
    <author>
      <name>skawaii</name>
    </author>
    <id>tag:elmpowered.skawaii.net,2007-08-25:22</id>
    <published>2007-08-25T04:22:00Z</published>
    <updated>2007-09-05T21:42:50Z</updated>
    <category term="Software Development"/>
    <link href="http://elmpowered.skawaii.net/2007/8/25/dumblox-when-minesweeper-just-doesn-t-cut-it" rel="alternate" type="text/html"/>
    <title>Dumblox - When Minesweeper Just Doesn't Cut it</title>
<content type="html">
            Tetris clones are a dime a dozen...so why not one more? Introducing &lt;a href=&quot;http://dumblox.googlecode.com&quot;&gt;Dumblox&lt;/a&gt; (formerly codenamed Tetrix), a joint-venture with my good friend, &lt;a href=&quot;http://www.rmphelps.com&quot;&gt;Ryan&lt;/a&gt;. What is Dumblox, you ask? Quite simply, the most original and entertaining Tetris clone ever programmed.&lt;br&gt;&lt;br&gt;

Well, not really, but we have been having quite a lot of fun developing Dumblox. If you find yourself bored out of your mind, or are simply dying to play some Tetris, go ahead and &lt;a href=&quot;http://http://code.google.com/p/dumblox/downloads/list&quot;&gt;download&lt;/a&gt; Dumblox. All you need is the Java Runtime Environment (JRE) &lt;a href=&quot;http://java.sun.com/javase/downloads/index_jdk5.jsp&quot;&gt;version 5&lt;/a&gt; or greater (download the most current JRE &lt;a href=&quot;http://java.sun.com/javase/downloads/index.jsp&quot;&gt;here&lt;/a&gt;). Check out the &lt;a href=&quot;http://dumblox.googlecode.com&quot;&gt;main page&lt;/a&gt; for more info.&lt;br&gt;&lt;br&gt;

Also, keep in mind that not only is this the first game that we've ever made, but Dumblox is still currently in a fairly early development stage, so don't be too surprised to find some bugs and/or missing elements. The game is definitely playable at this point, so check it out!
          </content>  </entry>
  <entry xml:base="http://elmpowered.skawaii.net/">
    <author>
      <name>skawaii</name>
    </author>
    <id>tag:elmpowered.skawaii.net,2007-08-16:19</id>
    <published>2007-08-16T20:30:00Z</published>
    <updated>2007-08-21T22:05:51Z</updated>
    <category term="Books"/>
    <link href="http://elmpowered.skawaii.net/2007/8/16/kesrith-by-c-j-cherryh" rel="alternate" type="text/html"/>
    <title>Kesrith by C. J. Cherryh</title>
<content type="html">
            I just finished reading the first book of &lt;i&gt;The Faded Sun&lt;/i&gt; trilogy by C. J. Cherryh, called &lt;i&gt;Kesrith&lt;/i&gt;. I had never heard of the author before getting this book. It just so happened that as I was browsing through the selection of Orson Scott Card books at my local Borders, I saw a sign that read, &quot;If you like Orson Scott Card, then try reading C. J. Cherryh.&quot; While Orson Scott Card is my favorite author, there wasn't anything on the shelf that I wanted to get at the moment, so I heeded the sign and made my way to the books by C. J. Cherryh.&lt;br&gt;&lt;br&gt;

Not having read anything by C.J. Cherryh before, I didn't have much to judge the books by except for the cover art and whatever was printed on the back covers. It turned out that that was pretty much all I needed. You see, on the cover of this edition of &lt;i&gt;The Faded Trilogy&lt;/i&gt; is a spherical spaceship in the background and three, arabic-looking ninjas in the foreground. Ninjas in a science fiction setting? Sign me up!&lt;br&gt;&lt;br&gt;

&lt;img title=&quot;Cover art by Michael Whelan&quot; class=&quot;centered&quot; src=&quot;http://elmpowered.skawaii.net/assets/2007/8/16/fadad_sun.jpg&quot;&gt;&lt;br&gt;&lt;br&gt;

It turns out that the story in &lt;i&gt;Kesrith&lt;/i&gt; was just as intriguing as the cover art. The ninjas turned out to be more like samurai, valuing honor above all else, even death. They are a race called the mri. I won't go into to much detailbecause: 1) I don't want to spoil the story for anyone that ends up reading the book and 2) I'm not a book critic. I'll just say that I've really enjoyed the story so far. Simply put, &lt;i&gt;Kesirth&lt;/i&gt; contains a great story coupled with fantastic storytelling.&lt;br&gt;&lt;br&gt;

One thing that I did find slightly peculiar was the manner of C. J. Cherryh storytelling. A few times, I found that certain avenues of the story were left unexplored, when I fully expected them to be explored. For example, when the mri edun (their house) was destroyed, I really thought that Niun (the main character) was going to spend more time looking through the rumble for survivors. Not that I expected him to find survivors, but the mri society is one based upon strict observance of rituals and rites. One of these rituals is the passing, or burial, ritual. So I was really expecting Niun to search more dilligently through the wreckage of the edun in order to perform the passing ritual. But he didn't, which really is a big deal...it was just what I expected.&lt;br&gt;&lt;br&gt;

So in conclusion, I really enjoyed &lt;i&gt;Kesrith&lt;/i&gt; and look forward to continue the trilogy. Unfortunately, there are a lot of things happening at the moment, so I have no idea when I'll be able to finish the second book. If you enjoy science fiction and are looking for a classic read, check out &lt;i&gt;The Faded Sun&lt;/i&gt; trilogy
          </content>  </entry>
  <entry xml:base="http://elmpowered.skawaii.net/">
    <author>
      <name>skawaii</name>
    </author>
    <id>tag:elmpowered.skawaii.net,2007-08-15:18</id>
    <published>2007-08-15T08:38:00Z</published>
    <updated>2007-09-05T21:29:24Z</updated>
    <category term="Software Development"/>
    <category term="Work"/>
    <link href="http://elmpowered.skawaii.net/2007/8/15/how-programmers-really-work" rel="alternate" type="text/html"/>
    <title>How Programmers Really Work</title>
<content type="html">
            In all of my experience (both academic and professional), this truthfully sums up how programmers work. The only difference with this and my current job is that swordplay is replaced by foosball.&lt;br&gt;&lt;br&gt;

&lt;img class=&quot;centered&quot; src=&quot;http://imgs.xkcd.com/comics/compiling.png&quot;&gt;
          </content>  </entry>
  <entry xml:base="http://elmpowered.skawaii.net/">
    <author>
      <name>skawaii</name>
    </author>
    <id>tag:elmpowered.skawaii.net,2007-07-30:16</id>
    <published>2007-07-30T18:03:00Z</published>
    <updated>2007-07-30T18:57:53Z</updated>
    <category term="Software Development"/>
    <link href="http://elmpowered.skawaii.net/2007/7/30/ternary-operator-in-python" rel="alternate" type="text/html"/>
    <title>Ternary Operator in Python</title>
<content type="html">
            Although this is documented elsewhere (I found it &lt;a href=&quot;http://www.wellho.net/mouth/657_The-ternary-operator-in-Python.html&quot;&gt;here&lt;/a&gt;), I just thought it was so elegant, that I wanted to write something up about it.&lt;br&gt;&lt;br&gt;

Anyone who has used Python previous to version 2.5 knows that there is no ternary operator built-in (the ternary operator is the ?: operator that you'll see in C/C++, Java, and other languages). Python 2.5 adds this operator in, but what if you're working with an older version of Python and are unable to upgrade to 2.5? This is the situation I recently found myself in at work.&lt;br&gt;&lt;br&gt;

I've seen many work-arounds posted on various pages. But it wasn't until today that I saw one that was as elegant and intuitive as this.&lt;br&gt;&lt;br&gt;

Say, for example, you have this:&lt;br&gt;&lt;br&gt;

&lt;code&gt;fec_string = (&quot;None&quot;, &quot;Reed-Solomon&quot;)[fec_switch == 1]&lt;/code&gt;&lt;br&gt;&lt;br&gt;

Pretty nice, eh? All it's doing is evaluating the condition (&lt;code&gt;fec_switch == 1&lt;/code&gt;) and using that as the index into the tuple. So when &lt;code&gt;fec_switch&lt;/code&gt; is 1, &lt;code&gt;fec_string&lt;/code&gt; will be &quot;Reed-Solomon&quot;; otherwise it'll be &quot;None&quot;. In C++ or Java, this would be equivalent to:&lt;br&gt;&lt;br&gt;

&lt;code&gt;fec_string = fec_switch == 1 ? &quot;Reed-Solomon&quot; : &quot;None&quot;;&lt;/code&gt;&lt;br&gt;&lt;br&gt;

The Python approach is pretty smooth, if you ask me.
          </content>  </entry>
  <entry xml:base="http://elmpowered.skawaii.net/">
    <author>
      <name>skawaii</name>
    </author>
    <id>tag:elmpowered.skawaii.net,2007-07-27:15</id>
    <published>2007-07-27T07:19:00Z</published>
    <updated>2007-07-27T10:20:16Z</updated>
    <category term="Random"/>
    <link href="http://elmpowered.skawaii.net/2007/7/27/personal-browser-war" rel="alternate" type="text/html"/>
    <title>A Disturbing Discovery</title>
<content type="html">
            I was just poking around the stats for Elmpowered today when I came across this horrifying discovery:&lt;br&gt;&lt;br&gt;

&lt;img src=&quot;http://elmpowered.skawaii.net/assets/2007/7/27/browsers.png&quot;&gt;&lt;br&gt;&lt;br&gt;

And no, it's not that there have only been 22 hits on the site. What is disturbing is that the majority (albeit it's a pretty slight majority) of those 22 people who visited Elmpowered were using Internet Explorer!&lt;br&gt;&lt;br&gt;

Come on people! How do you expect to be able to tap into the infinite power of the elms if you're using IE? Don't you know the IE is the number one tree killer in North America?&lt;br&gt;&lt;br&gt;

If you're going to do me the honor of visiting my site (which I hope you will, by the way), then at least have the courtesy to use the environmentally-sound, and simply awesome, browser called &lt;a href=&quot;http://www.getfirefox.com&quot; title=&quot;A true browser for all your browsing needs&quot;&gt;Firefox&lt;/a&gt;. If you won't do it for me, then do it for the elms.&lt;br&gt;&lt;br&gt;

Now extracting tongue from cheek....
          </content>  </entry>
  <entry xml:base="http://elmpowered.skawaii.net/">
    <author>
      <name>skawaii</name>
    </author>
    <id>tag:elmpowered.skawaii.net,2007-07-25:13</id>
    <published>2007-07-25T13:39:00Z</published>
    <updated>2007-07-27T10:24:35Z</updated>
    <category term="Software Development"/>
    <category term="Work"/>
    <link href="http://elmpowered.skawaii.net/2007/7/25/my-first-three-weeks-in-the-real-world" rel="alternate" type="text/html"/>
    <title>My First Three Weeks in the "Real World"</title>
<content type="html">
            Even after graduating from &lt;a href=&quot;http://www.byu.edu&quot; title=&quot;Brigham Young University&quot;&gt;BYU&lt;/a&gt; a little over two months ago, I still sometimes catch myself thinking about what upcoming assignments I have or some other school-related topic. In fact, just last night I had a dream, in which I decided to skip a class because I was already late (this never, ever happened in real life...no, not ever).&lt;br&gt;&lt;br&gt;

The funny thing is that as my senior year drew to a close, I was so exciting to be getting away from student life. I wanted to get out and work on some cool projects. But a few times during my first week at &lt;a href=&quot;http://www.northropgrumman.com&quot; title=&quot;Northrop Grumman&quot;&gt;Northrop Grumman&lt;/a&gt;, I actually found myself thinking how nice it would be to be a student again. Crazy, I know. I figure that those moments of temporary insanity result from the fact that I was in a new, uncomfortable environment, so I wanted to revert to something I was used to...like going to classes. But, as I said, those moments were temporary, even if the insanity isn't.&lt;br&gt;&lt;br&gt;

All in all, things at work aren't as bad as they could have been. Even though it took a week before I was actually assigned some work to do (and no, I was reading a newspaper...I was reading an &lt;i&gt;exciting&lt;/i&gt; training manual), things are going pretty well right now. I'm actually working on the middleware for a &lt;a href=&quot;http://en.wikipedia.org/wiki/Software_radio&quot; title=&quot;Go ahead. Be a nerd.&quot;&gt;software-defined radio&lt;/a&gt;. Now, I don't understand everything about software-defined radios (I leave that to the EE freaks), so I won't even try to get into explaining that. But as for the middleware, the basic gist is that we want to be able to run a GUI on a client computer and the real application on a server somewhere. So, by using &lt;a href=&quot;http://en.wikipedia.org/wiki/XML-RPC&quot; title=&quot;XML-RPC&quot;&gt;XML-RPCs&lt;/a&gt;, I can do just that. All that's really happening is that some XML messages are getting passed back and forth. The fact that XML-RPC is built into Python has really made it easy. So, while I haven't really done anything that I'd consider really awesome, it was fun to learn something new and actually write some code.&lt;br&gt;&lt;br&gt;

So that's pretty much been the last three weeks for me. Oh, I almost forgot. I play at least five game of foosball each workday.
          </content>  </entry>
  <entry xml:base="http://elmpowered.skawaii.net/">
    <author>
      <name>skawaii</name>
    </author>
    <id>tag:elmpowered.skawaii.net,2007-05-31:8</id>
    <published>2007-05-31T20:37:00Z</published>
    <updated>2007-07-25T13:19:02Z</updated>
    <category term="Random"/>
    <link href="http://elmpowered.skawaii.net/2007/5/31/dave-vs-the-cd-vs-the-shredder" rel="alternate" type="text/html"/>
    <title>Dave vs The CD vs The Shredder</title>
<content type="html">
            So as my wife and I were getting ready for the movers to come and take away our stuff, my buddy Dave Mathis decided to test a CD on my brand new paper shredder.
&lt;br&gt;

&amp;lt;object height=&quot;350&quot; width=&quot;425&quot;&gt;&amp;lt;param name=&quot;movie&quot; value=&quot;http://www.youtube.com/v/I1wUGJs0Riw&quot;&gt;&amp;lt;/param&gt;&amp;lt;param name=&quot;wmode&quot; value=&quot;transparent&quot;&gt;&amp;lt;/param&gt;&amp;lt;embed type=&quot;application/x-shockwave-flash&quot; src=&quot;http://www.youtube.com/v/I1wUGJs0Riw&quot; height=&quot;350&quot; wmode=&quot;transparent&quot; width=&quot;425&quot;&gt;&amp;lt;/embed&gt;&amp;lt;/object&gt;
&lt;br&gt;

Thankfully, the shredder proved victorious. Dave was so exited by the whole experience that he did a nice little dance at the end.
&lt;br&gt;&lt;br&gt;

&lt;b&gt;Update:&lt;/b&gt; Dave told me afterwards that he did the same thing to his mom's paper shredder and broke the shredder. Good thing he didn't tell me before...
          </content>  </entry>
  <entry xml:base="http://elmpowered.skawaii.net/">
    <author>
      <name>skawaii</name>
    </author>
    <id>tag:elmpowered.skawaii.net,2007-02-15:7</id>
    <published>2007-02-15T06:22:00Z</published>
    <updated>2007-02-15T06:47:04Z</updated>
    <category term="Random"/>
    <link href="http://elmpowered.skawaii.net/2007/2/15/1-1-million-dollar-dogs" rel="alternate" type="text/html"/>
    <title>$1.1 Million Dollar Dogs</title>
<content type="html">
            Since my wife is an avid dog lover, we tuned in to the Westminster Dog Show that was held the other day. Well, to be honest, she watched the show as I played Guild Wars, only turning toward the television when a &quot;cute&quot; dog was being shown. For my wife, a &quot;cute&quot; dog usually means something like an Irish Wolfhound.&lt;br&gt;&lt;br&gt;

Just before the &quot;Best in Show&quot; award was handed out at the end of the contest, a representative from Pedigree grabbed the mic to make a thrilling announcement. He told the audience that thanks to their generous contributions, $1.1 million had been gathered for the effort of helping dogs in shelters and pounds find a home.&lt;br&gt;&lt;br&gt;

Just in case you skipped over that, &lt;strong&gt;$1.1 million&lt;/strong&gt;. That's &lt;i&gt;a lot&lt;/i&gt; of money for dogs. I'm sure that this money will do a lot of good for a lot of dogs (at least, I hope so).&lt;br&gt;&lt;br&gt;

Imagine, however, if that money had been raised to help people. Imagine the good that it could have done for those we see and know who don't have it so good. Sure, it wouldn't have helped everyone, but it would've help some people for sure.&lt;br&gt;&lt;br&gt;

Now I don't pretend to be a modern-day Mother Theresa, so don't think I'm up on a soapbox. I just couldn't help but wonder what a difference it would make if $1.1 million were raised in a few days for people, just like it was for dogs.
          </content>  </entry>
  <entry xml:base="http://elmpowered.skawaii.net/">
    <author>
      <name>sofal</name>
    </author>
    <id>tag:elmpowered.skawaii.net,2007-02-12:4</id>
    <published>2007-02-12T15:00:00Z</published>
    <updated>2007-07-25T13:31:52Z</updated>
    <category term="Software Development"/>
    <link href="http://elmpowered.skawaii.net/2007/2/12/extreme-programming" rel="alternate" type="text/html"/>
    <title>eXtreme Programming</title>
<content type="html">
            I've been reading a little about &lt;a href=&quot;http://www.extremeprogramming.org/&quot;&gt;Extreme Programming&lt;/a&gt; (XP) lately in preparation for an interview. I figured I'd write down some of the principles that I like about it.
&lt;p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;b&gt;simplicity&lt;/b&gt; - There is somewhat of a church of simplicity out there in the blogosphere (&lt;a href=&quot;http://www.37signals.com/svn/posts&quot;&gt;37 signals&lt;/a&gt;), and looking at some of the software packages out there (&lt;a href=&quot;http://www.microsoft.com&quot;&gt;www.microsoft.com&lt;/a&gt;), I can see why. There is too much bloat. There's bloat in features, and there's bloat in code. Simplicity is much more respectful to the users (and to the developers who have to pick up after you). A programmer who is not striving for simple will tend to complicate things that should never need to be complicated at all. I've seen code like this, and you'd be surprised at the incredible round-about solutions that are made just to solve tiny little problems. I was once asked to come up with a solution for a data-chunking problem (there was a limit on the amount of records that could be fetched at a time from the database, and so they need to be fetched in 'chunks'). I quickly came up with a one page solution that very concisely solved it. Another developer was also asked to come up with a solution (this developer had much more experience than I did). He came up with about 40-50 pages detailing a complex solution involving a system-wide development effort, the creation of a few more classes, and pages upon pages of documentation. I'm serious. Needless to say, nobody wanted to read his solution. &lt;/li&gt;

&lt;li&gt;&lt;b&gt;refactoring&lt;/b&gt; - I love to refactor my code. I get a great feeling when I can turn the complex into the simple. I love to create nice easy-to-understand abstractions where there were none before. I'm always looking for ways to apply the &lt;a href=&quot;http://en.wikipedia.org/wiki/Don%27t_repeat_yourself&quot;&gt;DRY&lt;/a&gt; principle. Sometimes I'll do this to distraction. It excites me when I come to a realization of how to replace a ton of complexity with a few one-liners. I can never be truly satisfied with my own code. There always seems to be a better way to glue things together or to isolate some logic that is too spread out. I've seen code that was written by people who obviously had no intention of being elegant or simple. Many programmers live for money. They just want to fulfill the requirements, get a paycheck, and go home. I do not want to work with these types of programmers. I want to work with people who have a passion for elegant design.&lt;/li&gt;

&lt;li&gt;&lt;b&gt;emergent design&lt;/b&gt; - While it is imperative that I get a good idea of how I'm going to construct something before I start coding, I always find that I learn more about the design of the application while I'm coding it rather than during my attempts to envision everything beforehand. While I could always force myself to spend time writing down a very detailed design document before I start, I've always found this to be very monotonous and demotivating. I've also found that I rarely follow the detailed design document, and I still learn faster without it. I prefer to have a balance between pondering the design and constructing the application. I've found that this, along with some healthy refactoring, contributes to a more well-thought-out and emergent design.&lt;/li&gt;

&lt;li&gt;&lt;b&gt;adaptability&lt;/b&gt; - Adaptability can be defined within the context of the development process or in the actual code (or both). I like code that is adaptable, flexible, and reusable. The XP methodology dictates that little or no thought should be taken for the future as far as features are concerned. Rather, the software development process should embrace changing requirements as a fact of life. I think that having a process that embraces change might require developers to write smart and adaptable code. It would at least increase the amount of refactoring.&lt;/li&gt;

&lt;li&gt;&lt;b&gt;customer availability&lt;/b&gt; - This may be one of the hardest requirements of XP. XP requires that the customer be constantly available, even on site with the developers. Though this may be difficult to arrange, I believe that it could be very helpful. It is tempting as a developer to want to interpret requirements more favorably towards ease-of-development and my own ideas about what a good application does. Frequent, face-to-face communication with an expert user would help the developer understand what issues are most important and what the big picture is. It has been hard for me at times during my software development experience to get the big picture. Interacting directly with the customer would help me establish the importance of my contributions to the project.&lt;/li&gt;
&lt;/ul&gt;
&lt;/p&gt;

Overall it seems that XP gives more trust and respect to the developers than some other methodologies do. Whether or not developers should be trusted like this depends on what kind of developers you like to hire. It frustrates me to see large companies treat software development as a commodity by pushing all the work to the cheapest code monkeys they can find, regardless of intelligence or skill. It's not surprising to me that piles and piles of strict rules and processes are coupled with these hiring practices, but that's a rant for another day.
          </content>  </entry>
  <entry xml:base="http://elmpowered.skawaii.net/">
    <author>
      <name>skawaii</name>
    </author>
    <id>tag:elmpowered.skawaii.net,2007-02-08:3</id>
    <published>2007-02-08T09:13:00Z</published>
    <updated>2007-07-25T13:31:26Z</updated>
    <category term="Music"/>
    <link href="http://elmpowered.skawaii.net/2007/2/8/wait-he-doesn-t-like-drm" rel="alternate" type="text/html"/>
    <title>Wait...he doesn't like DRM?</title>
<content type="html">
            A friend of mine recently sent me  &lt;a href=&quot;http://www.apple.com/hotnews/thoughtsonmusic/&quot;&gt;this link&lt;/a&gt; to an article by Steve Jobs. In the article, Steve discusses his thoughts on music, FairPlay (iTunes' DRM), and the possible future of DRM'd music. I found the article interesting...not really profound...but interesting.&lt;br&gt;&lt;br&gt;

The reason I say the article is interesting is because Steve Jobs says that Apple would sell DRM-free music if the record companies would allow Apple the opportunity. Not only does he say this, but he expresses his personal desire that it happens.&lt;br&gt;&lt;br&gt;

I can't help but ask myself, &quot;Really? Apple (aka Steve Jobs) doesn't actually like DRM?&quot; I wonder if this is the truth or if Steve Jobs is playing Apple's &quot;we're awesomely cool&quot; card and basically saying what people want to hear.&lt;br&gt;&lt;br&gt;

Now before I get flamed by all the Apple fan-boys/grils (because I'm sure you all read my blog...), let me just say that I have nothing against Apple or Steve Jobs. In fact, I just bought a MacBook Pro and really like it. I'm just wondering if the same company that more or less &quot;forces&quot; you to do things their way is really rooting for more consumer freedom.&lt;br&gt;&lt;br&gt;
          </content>  </entry>
  <entry xml:base="http://elmpowered.skawaii.net/">
    <author>
      <name>skawaii</name>
    </author>
    <id>tag:elmpowered.skawaii.net,2007-02-08:2</id>
    <published>2007-02-08T08:47:00Z</published>
    <updated>2007-02-08T19:07:35Z</updated>
    <category term="Mephisto"/>
    <link href="http://elmpowered.skawaii.net/2007/2/8/mephisto-wonder" rel="alternate" type="text/html"/>
    <title>Mephisto Wonder</title>
<content type="html">
            It's amazing what a good set of instructions will do for you. There is no way that I would've gotten Mephisto up and running with my limited amount of knowledge without &lt;a href=&quot;http://blog.matharvard.com/2006/11/17/installing-mephisto&quot;&gt;Mat Harvard's&lt;/a&gt; help. Thanks to Mat and all those that left comments about getting around errors.&lt;br&gt;&lt;br&gt;

Anyway, the is just a normal &quot;Hello World!&quot; post. There really isn't anything interesting here.
          </content>  </entry>
</feed>
