sdsalyer2012-03-21T14:48:06-04:00http://sdsalyer.com/sdsalyer.comsds@sdsalyer.comSubscribe with My Yahoo!Subscribe with NewsGatorSubscribe with My AOLSubscribe with BloglinesSubscribe with NetvibesSubscribe with GoogleSubscribe with PageflakesSubscribe with PlusmoSubscribe with The Free DictionarySubscribe with Bitty BrowserSubscribe with Live.comSubscribe with Excite MIXSubscribe with WebwagSubscribe with Podcast ReadySubscribe with WikioSubscribe with Daily RotationSubscribe with My Yahoo!Subscribe with NewsGatorSubscribe with My AOLSubscribe with BloglinesSubscribe with NetvibesSubscribe with GoogleSubscribe with PageflakesSubscribe with PlusmoSubscribe with The Free DictionarySubscribe with Bitty BrowserSubscribe with Live.comSubscribe with Excite MIXSubscribe with WebwagSubscribe with Podcast ReadySubscribe with WikioSubscribe with Daily RotationSubscribe with My Yahoo!Subscribe with NewsGatorSubscribe with My AOLSubscribe with BloglinesSubscribe with NetvibesSubscribe with GoogleSubscribe with PageflakesSubscribe with PlusmoSubscribe with The Free DictionarySubscribe with Bitty BrowserSubscribe with Live.comSubscribe with Excite MIXSubscribe with WebwagSubscribe with Podcast ReadySubscribe with WikioSubscribe with Daily RotationSubscribe with My Yahoo!Subscribe with NewsGatorSubscribe with My AOLSubscribe with BloglinesSubscribe with NetvibesSubscribe with GoogleSubscribe with PageflakesSubscribe with PlusmoSubscribe with The Free DictionarySubscribe with Bitty BrowserSubscribe with Live.comSubscribe with Excite MIXSubscribe with WebwagSubscribe with Podcast ReadySubscribe with WikioSubscribe with Daily RotationSubscribe with My Yahoo!Subscribe with NewsGatorSubscribe with My AOLSubscribe with BloglinesSubscribe with NetvibesSubscribe with GoogleSubscribe with PageflakesSubscribe with PlusmoSubscribe with The Free DictionarySubscribe with Bitty BrowserSubscribe with Live.comSubscribe with Excite MIXSubscribe with WebwagSubscribe with Podcast ReadySubscribe with WikioSubscribe with Daily RotationSubscribe with My Yahoo!Subscribe with NewsGatorSubscribe with My AOLSubscribe with BloglinesSubscribe with NetvibesSubscribe with GoogleSubscribe with PageflakesSubscribe with PlusmoSubscribe with The Free DictionarySubscribe with Bitty BrowserSubscribe with Live.comSubscribe with Excite MIXSubscribe with WebwagSubscribe with Podcast ReadySubscribe with WikioSubscribe with Daily RotationSubscribe with My Yahoo!Subscribe with NewsGatorSubscribe with My AOLSubscribe with BloglinesSubscribe with NetvibesSubscribe with GoogleSubscribe with PageflakesSubscribe with PlusmoSubscribe with The Free DictionarySubscribe with Bitty BrowserSubscribe with Live.comSubscribe with Excite MIXSubscribe with WebwagSubscribe with Podcast ReadySubscribe with WikioSubscribe with Daily RotationSubscribe with My Yahoo!Subscribe with NewsGatorSubscribe with My AOLSubscribe with BloglinesSubscribe with NetvibesSubscribe with GoogleSubscribe with PageflakesSubscribe with PlusmoSubscribe with The Free DictionarySubscribe with Bitty BrowserSubscribe with Live.comSubscribe with Excite MIXSubscribe with WebwagSubscribe with Podcast ReadySubscribe with WikioSubscribe with Daily RotationSubscribe with My Yahoo!Subscribe with NewsGatorSubscribe with My AOLSubscribe with BloglinesSubscribe with NetvibesSubscribe with GoogleSubscribe with PageflakesSubscribe with PlusmoSubscribe with The Free DictionarySubscribe with Bitty BrowserSubscribe with Live.comSubscribe with Excite MIXSubscribe with WebwagSubscribe with Podcast ReadySubscribe with WikioSubscribe with Daily RotationSubscribe with My Yahoo!Subscribe with NewsGatorSubscribe with My AOLSubscribe with BloglinesSubscribe with NetvibesSubscribe with GoogleSubscribe with PageflakesSubscribe with PlusmoSubscribe with The Free DictionarySubscribe with Bitty BrowserSubscribe with Live.comSubscribe with Excite MIXSubscribe with WebwagSubscribe with Podcast ReadySubscribe with WikioSubscribe with Daily RotationSubscribe with My Yahoo!Subscribe with NewsGatorSubscribe with My AOLSubscribe with BloglinesSubscribe with NetvibesSubscribe with GoogleSubscribe with PageflakesSubscribe with PlusmoSubscribe with The Free DictionarySubscribe with Bitty BrowserSubscribe with Live.comSubscribe with Excite MIXSubscribe with WebwagSubscribe with Podcast ReadySubscribe with WikioSubscribe with Daily RotationSubscribe with My Yahoo!Subscribe with NewsGatorSubscribe with My AOLSubscribe with BloglinesSubscribe with NetvibesSubscribe with GoogleSubscribe with PageflakesSubscribe with PlusmoSubscribe with The Free DictionarySubscribe with Bitty BrowserSubscribe with Live.comSubscribe with Excite MIXSubscribe with WebwagSubscribe with Podcast ReadySubscribe with WikioSubscribe with Daily RotationSubscribe with My Yahoo!Subscribe with NewsGatorSubscribe with My AOLSubscribe with BloglinesSubscribe with NetvibesSubscribe with GoogleSubscribe with PageflakesSubscribe with PlusmoSubscribe with The Free DictionarySubscribe with Bitty BrowserSubscribe with Live.comSubscribe with Excite MIXSubscribe with WebwagSubscribe with Podcast ReadySubscribe with WikioSubscribe with Daily RotationSubscribe with My Yahoo!Subscribe with NewsGatorSubscribe with My AOLSubscribe with BloglinesSubscribe with NetvibesSubscribe with GoogleSubscribe with PageflakesSubscribe with PlusmoSubscribe with The Free DictionarySubscribe with Bitty BrowserSubscribe with Live.comSubscribe with Excite MIXSubscribe with WebwagSubscribe with Podcast ReadySubscribe with WikioSubscribe with Daily RotationSubscribe with My Yahoo!Subscribe with NewsGatorSubscribe with My AOLSubscribe with BloglinesSubscribe with NetvibesSubscribe with GoogleSubscribe with PageflakesSubscribe with PlusmoSubscribe with The Free DictionarySubscribe with Bitty BrowserSubscribe with Live.comSubscribe with Excite MIXSubscribe with WebwagSubscribe with Podcast ReadySubscribe with WikioSubscribe with Daily RotationSubscribe with My Yahoo!Subscribe with NewsGatorSubscribe with My AOLSubscribe with BloglinesSubscribe with NetvibesSubscribe with GoogleSubscribe with PageflakesSubscribe with PlusmoSubscribe with The Free DictionarySubscribe with Bitty BrowserSubscribe with Live.comSubscribe with Excite MIXSubscribe with WebwagSubscribe with Podcast ReadySubscribe with WikioSubscribe with Daily RotationSubscribe with My Yahoo!Subscribe with NewsGatorSubscribe with My AOLSubscribe with BloglinesSubscribe with NetvibesSubscribe with GoogleSubscribe with PageflakesSubscribe with PlusmoSubscribe with The Free DictionarySubscribe with Bitty BrowserSubscribe with Live.comSubscribe with Excite MIXSubscribe with WebwagSubscribe with Podcast ReadySubscribe with WikioSubscribe with Daily RotationSubscribe with My Yahoo!Subscribe with NewsGatorSubscribe with My AOLSubscribe with BloglinesSubscribe with NetvibesSubscribe with GoogleSubscribe with PageflakesSubscribe with PlusmoSubscribe with The Free DictionarySubscribe with Bitty BrowserSubscribe with Live.comSubscribe with Excite MIXSubscribe with WebwagSubscribe with Podcast ReadySubscribe with WikioSubscribe with Daily RotationSubscribe with My Yahoo!Subscribe with NewsGatorSubscribe with My AOLSubscribe with BloglinesSubscribe with NetvibesSubscribe with GoogleSubscribe with PageflakesSubscribe with PlusmoSubscribe with The Free DictionarySubscribe with Bitty BrowserSubscribe with Live.comSubscribe with Excite MIXSubscribe with WebwagSubscribe with Podcast ReadySubscribe with WikioSubscribe with Daily RotationSubscribe with My Yahoo!Subscribe with NewsGatorSubscribe with My AOLSubscribe with BloglinesSubscribe with NetvibesSubscribe with GoogleSubscribe with PageflakesSubscribe with PlusmoSubscribe with The Free DictionarySubscribe with Bitty BrowserSubscribe with Live.comSubscribe with Excite MIXSubscribe with WebwagSubscribe with Podcast ReadySubscribe with WikioSubscribe with Daily RotationSubscribe with My Yahoo!Subscribe with NewsGatorSubscribe with My AOLSubscribe with BloglinesSubscribe with NetvibesSubscribe with GoogleSubscribe with PageflakesSubscribe with PlusmoSubscribe with The Free DictionarySubscribe with Bitty BrowserSubscribe with Live.comSubscribe with Excite MIXSubscribe with WebwagSubscribe with Podcast ReadySubscribe with WikioSubscribe with Daily RotationSubscribe with My Yahoo!Subscribe with NewsGatorSubscribe with My AOLSubscribe with BloglinesSubscribe with NetvibesSubscribe with GoogleSubscribe with PageflakesSubscribe with PlusmoSubscribe with The Free DictionarySubscribe with Bitty BrowserSubscribe with Live.comSubscribe with Excite MIXSubscribe with WebwagSubscribe with Podcast ReadySubscribe with WikioSubscribe with Daily RotationSubscribe with My Yahoo!Subscribe with NewsGatorSubscribe with My AOLSubscribe with BloglinesSubscribe with NetvibesSubscribe with GoogleSubscribe with PageflakesSubscribe with PlusmoSubscribe with The Free DictionarySubscribe with Bitty BrowserSubscribe with Live.comSubscribe with Excite MIXSubscribe with WebwagSubscribe with Podcast ReadySubscribe with WikioSubscribe with Daily RotationSubscribe with My Yahoo!Subscribe with NewsGatorSubscribe with My AOLSubscribe with BloglinesSubscribe with NetvibesSubscribe with GoogleSubscribe with PageflakesSubscribe with PlusmoSubscribe with The Free DictionarySubscribe with Bitty BrowserSubscribe with Live.comSubscribe with Excite MIXSubscribe with WebwagSubscribe with Podcast ReadySubscribe with WikioSubscribe with Daily RotationSubscribe with My Yahoo!Subscribe with NewsGatorSubscribe with My AOLSubscribe with BloglinesSubscribe with NetvibesSubscribe with GoogleSubscribe with PageflakesSubscribe with PlusmoSubscribe with The Free DictionarySubscribe with Bitty BrowserSubscribe with Live.comSubscribe with Excite MIXSubscribe with WebwagSubscribe with Podcast ReadySubscribe with WikioSubscribe with Daily RotationSubscribe with My Yahoo!Subscribe with NewsGatorSubscribe with My AOLSubscribe with BloglinesSubscribe with NetvibesSubscribe with GoogleSubscribe with PageflakesSubscribe with PlusmoSubscribe with The Free DictionarySubscribe with Bitty BrowserSubscribe with Live.comSubscribe with Excite MIXSubscribe with WebwagSubscribe with Podcast ReadySubscribe with WikioSubscribe with Daily RotationSubscribe with My Yahoo!Subscribe with NewsGatorSubscribe with My AOLSubscribe with BloglinesSubscribe with NetvibesSubscribe with GoogleSubscribe with PageflakesSubscribe with PlusmoSubscribe with The Free DictionarySubscribe with Bitty BrowserSubscribe with Live.comSubscribe with Excite MIXSubscribe with WebwagSubscribe with Podcast ReadySubscribe with WikioSubscribe with Daily RotationSubscribe with My Yahoo!Subscribe with NewsGatorSubscribe with My AOLSubscribe with BloglinesSubscribe with NetvibesSubscribe with GoogleSubscribe with PageflakesSubscribe with PlusmoSubscribe with The Free DictionarySubscribe with Bitty BrowserSubscribe with Live.comSubscribe with Excite MIXSubscribe with WebwagSubscribe with Podcast ReadySubscribe with WikioSubscribe with Daily RotationSubscribe with My Yahoo!Subscribe with NewsGatorSubscribe with My AOLSubscribe with BloglinesSubscribe with NetvibesSubscribe with GoogleSubscribe with PageflakesSubscribe with PlusmoSubscribe with The Free DictionarySubscribe with Bitty BrowserSubscribe with Live.comSubscribe with Excite MIXSubscribe with WebwagSubscribe with Podcast ReadySubscribe with WikioSubscribe with Daily RotationSubscribe with My Yahoo!Subscribe with NewsGatorSubscribe with My AOLSubscribe with BloglinesSubscribe with NetvibesSubscribe with GoogleSubscribe with PageflakesSubscribe with PlusmoSubscribe with The Free DictionarySubscribe with Bitty BrowserSubscribe with Live.comSubscribe with Excite MIXSubscribe with WebwagSubscribe with Podcast ReadySubscribe with WikioSubscribe with Daily RotationSubscribe with My Yahoo!Subscribe with NewsGatorSubscribe with My AOLSubscribe with BloglinesSubscribe with NetvibesSubscribe with GoogleSubscribe with PageflakesSubscribe with PlusmoSubscribe with The Free DictionarySubscribe with Bitty BrowserSubscribe with Live.comSubscribe with Excite MIXSubscribe with WebwagSubscribe with Podcast ReadySubscribe with WikioSubscribe with Daily RotationSubscribe with My Yahoo!Subscribe with NewsGatorSubscribe with My AOLSubscribe with BloglinesSubscribe with NetvibesSubscribe with GoogleSubscribe with PageflakesSubscribe with PlusmoSubscribe with The Free DictionarySubscribe with Bitty BrowserSubscribe with Live.comSubscribe with Excite MIXSubscribe with WebwagSubscribe with Podcast ReadySubscribe with WikioSubscribe with Daily RotationSubscribe with My Yahoo!Subscribe with NewsGatorSubscribe with My AOLSubscribe with BloglinesSubscribe with NetvibesSubscribe with GoogleSubscribe with PageflakesSubscribe with PlusmoSubscribe with The Free DictionarySubscribe with Bitty BrowserSubscribe with Live.comSubscribe with Excite MIXSubscribe with WebwagSubscribe with Podcast ReadySubscribe with WikioSubscribe with Daily RotationSubscribe with My Yahoo!Subscribe with NewsGatorSubscribe with My AOLSubscribe with BloglinesSubscribe with NetvibesSubscribe with GoogleSubscribe with PageflakesSubscribe with PlusmoSubscribe with The Free DictionarySubscribe with Bitty BrowserSubscribe with Live.comSubscribe with Excite MIXSubscribe with WebwagSubscribe with Podcast ReadySubscribe with WikioSubscribe with Daily RotationSubscribe with My Yahoo!Subscribe with NewsGatorSubscribe with My AOLSubscribe with BloglinesSubscribe with NetvibesSubscribe with GoogleSubscribe with PageflakesSubscribe with PlusmoSubscribe with The Free DictionarySubscribe with Bitty BrowserSubscribe with Live.comSubscribe with Excite MIXSubscribe with WebwagSubscribe with Podcast ReadySubscribe with WikioSubscribe with Daily RotationSubscribe with My Yahoo!Subscribe with NewsGatorSubscribe with My AOLSubscribe with BloglinesSubscribe with NetvibesSubscribe with GoogleSubscribe with PageflakesSubscribe with PlusmoSubscribe with The Free DictionarySubscribe with Bitty BrowserSubscribe with Live.comSubscribe with Excite MIXSubscribe with WebwagSubscribe with Podcast ReadySubscribe with WikioSubscribe with Daily RotationSubscribe with My Yahoo!Subscribe with NewsGatorSubscribe with My AOLSubscribe with BloglinesSubscribe with NetvibesSubscribe with GoogleSubscribe with PageflakesSubscribe with PlusmoSubscribe with The Free DictionarySubscribe with Bitty BrowserSubscribe with Live.comSubscribe with Excite MIXSubscribe with WebwagSubscribe with Podcast ReadySubscribe with WikioSubscribe with Daily RotationSubscribe with My Yahoo!Subscribe with NewsGatorSubscribe with My AOLSubscribe with BloglinesSubscribe with NetvibesSubscribe with GoogleSubscribe with PageflakesSubscribe with PlusmoSubscribe with The Free DictionarySubscribe with Bitty BrowserSubscribe with Live.comSubscribe with Excite MIXSubscribe with WebwagSubscribe with Podcast ReadySubscribe with WikioSubscribe with Daily RotationSubscribe with My Yahoo!Subscribe with NewsGatorSubscribe with My AOLSubscribe with BloglinesSubscribe with NetvibesSubscribe with GoogleSubscribe with PageflakesSubscribe with PlusmoSubscribe with The Free DictionarySubscribe with Bitty BrowserSubscribe with Live.comSubscribe with Excite MIXSubscribe with WebwagSubscribe with Podcast ReadySubscribe with WikioSubscribe with Daily RotationGoogle Docs Pedometer Log2012-03-21T00:00:00-04:00http://sdsalyer.com/2012/03/21/google-docs-pedometer-log<p>In accordance with my <a href="/2011/12/27/2012-equals-do.html">goals for 2012</a>, my wife and I have been walking on a daily basis, aiming for 10,000 steps every day of 2012 (and beyond). To help keep us motivated and to track our progress, I created a lovely young <a href="https://docs.google.com/spreadsheet/pub?key=0AgWYFeYIu0radE5mYUFNdTMxVFdjekZxaWtFLWRUUUE&output=html">Pedometer Log</a> in Google Docs.</p>
<p>Here's how it looks with some sample data. The summary page is displayed, but you can click the tabs below to view the log pages and instructions.</p>
<iframe width='100%' height='400' frameborder='0' src='https://docs.google.com/spreadsheet/pub?key=0AgWYFeYIu0radE5mYUFNdTMxVFdjekZxaWtFLWRUUUE&gid=2&output=html&widget=true'></iframe>
<h2>Why 10k?</h2>
<p>Walking 10,000 steps in a day takes some effort. I'd say most people don't breach 3,000-5,000 steps in a day -- perhaps less if they have a sedentary job/lifestyle. But hey, I'm not here to preach (this time). The idea is: you get 10,000 steps a day (which usually involves <em>at least</em> 30 minutes of "aerobic" walking), you maintain a healthy heart and (with a good diet) can better manage your weight. People have <a href="http://www.amazon.com/gp/product/1566252873/ref=as_li_ss_tl?ie=UTF8&tag=sdsalyer-20&linkCode=as2&camp=1789&creative=390957&creativeASIN=1566252873">written</a><img src="http://www.assoc-amazon.com/e/ir?t=sdsalyer-20&l=as2&o=1&a=1566252873" width="1" height="1" border="0" alt="" style="border:none !important; margin:0px !important;" /> <a href="http://www.amazon.com/gp/product/0761133240/ref=as_li_ss_tl?ie=UTF8&tag=sdsalyer-20&linkCode=as2&camp=1789&creative=390957&creativeASIN=0761133240">books</a><img src="http://www.assoc-amazon.com/e/ir?t=sdsalyer-20&l=as2&o=1&a=0761133240" width="1" height="1" border="0" alt="" style="border:none !important; margin:0px !important;" /> <a href="http://www.amazon.com/gp/product/1592287026/ref=as_li_ss_tl?ie=UTF8&tag=sdsalyer-20&linkCode=as2&camp=1789&creative=390957&creativeASIN=1592287026">about it</a><img src="http://www.assoc-amazon.com/e/ir?t=sdsalyer-20&l=as2&o=1&a=1592287026" width="1" height="1" border="0" alt="" style="border:none !important; margin:0px !important;" />.</p>
<h2>"How Do I Get Started?", you ask...</h2>
<p><strong>Step 1: Get a Pedometer.</strong> I recommend the <a href="http://www.amazon.com/gp/product/B0000U1OCI/ref=as_li_ss_tl?ie=UTF8&tag=sdsalyer-20&linkCode=as2&camp=1789&creative=390957&creativeASIN=B0000U1OCI">Omron HJ-112 Digital Pocket Pedometer</a>. <a href="http://www.amazon.com/gp/product/B0000U1OCI/ref=as_li_ss_il?ie=UTF8&tag=sdsalyer-20&linkCode=as2&camp=1789&creative=390957&creativeASIN=B0000U1OCI"><img border="0" style="float: right;" src="http://ws.assoc-amazon.com/widgets/q?_encoding=UTF8&Format=_SL160_&ASIN=B0000U1OCI&MarketPlace=US&ID=AsinImage&WS=1&tag=sdsalyer-20&ServiceVersion=20070822" ></a><img src="http://www.assoc-amazon.com/e/ir?t=sdsalyer-20&l=as2&o=1&a=B0000U1OCI" width="1" height="1" border="0" alt="" style="border:none !important; margin:0px !important;" /> It is highly rated by Consumer Reports and is the most popular and highest rated pedometer on <a href="http://www.amazon.com/gp/product/B0000U1OCI/ref=as_li_ss_tl?ie=UTF8&tag=sdsalyer-20&linkCode=as2&camp=1789&creative=390957&creativeASIN=B0000U1OCI">Amazon.com</a>. It is the pedometer that my wife and I use and have given as gifts to many of our friends and family. The included battery lasts about 6 months, but you may want to <a href="http://www.amazon.com/gp/product/B005HSW33C/ref=as_li_ss_tl?ie=UTF8&tag=sdsalyer-20&linkCode=as2&camp=1789&creative=390957&creativeASIN=B005HSW33C">pick up some extras</a> so you have them on hand (you are going to do this for the rest of your life, after all, <em>right</em>?).</p>
<p><strong>Step 2: Grab the Pedometer Log Template.</strong> You can grab the Pedometer Log as a Google Docs Template. Simply click the the "Use this template" button below, and follow the instructions on the first page. (Be sure to rate it, and tell your friends, of course.) It is designed to accompany the above pedometer, but any should do.</p>
<iframe width="100%" height="200" frameborder="0" scrolling="no" marginheight="0" marginwidth="0" src="https://docs.google.com/embeddedtemplate?id=0AgWYFeYIu0radE5mYUFNdTMxVFdjekZxaWtFLWRUUUE"></iframe>
<p><strong>Step 3: Start Walking!</strong> This is the easy part: Walk. If you can't do 10,000 steps starting out, shoot for something attainable. Then next week, push the limit out a bit, and the next, push it further, etc., etc. until you can earn 10,000+ every day. You don't have to get them all at once, 1000 here, 1500 there -- they add up. Log your steps and track your progress. It really does help to see where you stand, and how far you've come.</p>
<h2>Go Forth!</h2>
<p>I hope this <a href="https://docs.google.com/spreadsheet/pub?key=0AgWYFeYIu0radE5mYUFNdTMxVFdjekZxaWtFLWRUUUE&output=html">Google Docs Pedometer Log Template</a> is helpful for you. I wish you the best of luck with your fitness walking and hope it helps you to maintain a happy, healthy life!</p>
Linux Mint Disc Images2012-01-18T00:00:00-05:00http://sdsalyer.com/2012/01/18/linux-mint-disc-images<p>Just upgraded my desktop PC to Linux Mint 12 and it's not going terribly smoothly. Apparently there isn't very good support for ATI cards at the moment, so I'm just practicing patience and hopefully things will start to look up soon, but I digress...</p>
<h2>Creating an ISO</h2>
<p>I've always found the linux <a href="http://www.gnu.org/software/coreutils/manual/html_node/dd-invocation.html"><strong>dd</strong></a> command to be extremely useful. It is a command line tool for making disc images (technically, it's a bit-stream duplicator, but for my purposes, it's a disc image maker). You basically just supply the input (typically the CDROM device location) and an output (the ISO filename you want). At its most basic, it works like this:</p>
<pre><code>$ dd if=/dev/cdrom of=/home/drew/filename.iso
</code></pre>
<p>For some reason, <a href="http://linuxmint.com/">Linux Mint 12</a> (and likely any current Ubuntu derivative) no longer uses <em>/dev/cdrom</em> to point to the optical drive, so I was a bit flustered when trying to use <strong>dd</strong> today. I noticed that Mint auto-mounts any discs I put in the drive to <em>/media/disc_name</em>, so I issued a <em>mount | grep disc_name</em> command and realized that the true mount point is at <em>/dev/sr0</em>. This is likely true for you as well. So, putting 2 and 2 together, I realized I needed to do things this way:</p>
<pre><code>$ dd if=/dev/sr0 of=/home/drew/filename.iso
</code></pre>
<p>And then things worked out just fine. You could probably make a symbolic link for sr0 at /dev/cdrom instead, if you're used to the old way.</p>
<p>A couple of things to note:</p>
<blockquote><ul>
<li>You should first unmount /dev/cdrom (or in Linux Mint 12, /media/disc_name) using the <strong>umount</strong> command.</li>
<li>There's no progress indicator for dd (though I believe there are forks that include one, and there are <a href="http://www.commandlinefu.com/commands/view/1868/watch-the-progress-of-dd">other methods</a> of indicating progress), so if it looks like nothing is happening, don't be alarmed. You may wish to append the dd command with <strong>&</strong> to start it in the background.</li>
</ul>
</blockquote>
<h2>Mounting an ISO</h2>
<p>Now that you've got an image of your disc, it's probably handy to know how to mount the image so you can utilize it like a regular disc. First you need to make a directory in the /mnt folder. I make a one-size-fits-all directory, name it "iso", and mount all images there, but you can name it (or <em>them</em>, if you routinely mount multiple images at the same time) whatever you want. Here's the command:</p>
<pre><code>$ sudo mkdir -p /mnt/iso
</code></pre>
<p>Note that the <em>-p</em> flag will suppress any errors if the directory already exists. All we need to do now is mount the file with the <strong>mount</strong> command:</p>
<pre><code>$ sudo mount -o loop filename.iso /mnt/iso
</code></pre>
<p>And you're done! Hit the <em>/mnt/iso</em> directory with <strong>ls</strong> to ensure it worked.</p>
<h2>Burning an ISO</h2>
<p>For this task, I leave it to a proper application like <a href="http://www.k3b.org/">K3B</a>, but <a href="http://www.yolinux.com/TUTORIALS/LinuxTutorialCDBurn.html">here's a lengthy tutorial</a> if you want to do it command line style. Cheers.</p>
Open Source Shoutout: K3B2012-01-10T00:00:00-05:00http://sdsalyer.com/2012/01/10/open-source-shoutout-k3b<p>I just want to give a shout out to a great piece of Linux/Open Source software: <a href="http://www.k3b.org/">K3B</a> disk burning utility. This is a really well made program and I feel it's a much better alternative to the Brasero burning software that comes packaged with most current Ubuntu derivatives.</p>
<p>I'm not sure if the software was to blame, or if there's something ghetto about my Asus DVD/RW drive, but I simply could <em>not</em> get Brasero to burn anything without some sort of error. K3B hasn't failed me once -- it looks and works better than Brasero, too. I don't burn a lot of stuff these days, but when I do, I want something simple and easy to use, that <em>works</em>, and K3B fills the bill.</p>
<p>If you're a Brasero fan, I do apologize -- I don't dislike it and I would have likely and happily kept on using it, had it worked without issue with my setup. If it works well for you, I'm glad, but for my purposes, K3B is the superior app. Great job to the folks working on that project!</p>
2012 = Do2011-12-27T00:00:00-05:00http://sdsalyer.com/2011/12/27/2012-equals-do<p>Looking back at 2011, I find I'm very disappointed with myself. Personally, it wasn't a good year for me -- it wasn't a <em>bad</em> year, mind you, but it certainly wasn't <em>good</em> either. I'm talking about goals here, about personal development. I didn't accomplish much of anything I wanted to do. (Granted, I did <em>finally</em> finish my Associate's degree, but that felt more like a "had to" rather than a "want to".) I'm quite upset about it, and I'm pretty mad at myself, too. I fell off all kinds of wagons and didn't bother to climb on to many others. That's why I'm determined that 2012 will be the <strong>Year of Do</strong>.</p>
<h2>Looking Back</h2>
<p>I made a list of "Goals for 2011" in <a href="http://docs.google.com">Google Docs</a>. I don't like calling them <em>resolutions</em> since those are the things people "resolve", but never seem, to do -- goals are things that are <em>supposed</em> to be accomplished. Here's what the list looked like:</p>
<blockquote><ul>
<li>Track Every Penny I Spend</li>
<li>Use tax return to landscape</li>
<li>Grow a vegetable garden</li>
<li>Code a video game</li>
<li>Write and submit for publication at least one short story</li>
<li>Finish my college courses on time or ahead of schedule</li>
<li>Save at least 10% of my income (permanent, no touch savings)</li>
<li>Cultivate a better relationship with my family</li>
<li>Get at least 3,650,000 steps (10k a day * 365 days)</li>
</ul>
</blockquote>
<p>Now, let's mark off the things I accomplished, and see how it looks:</p>
<blockquote><ul>
<li>Track Every Penny I Spend</li>
<li><del>Use tax return to landscape</del></li>
<li>Grow a vegetable garden</li>
<li>Code a video game</li>
<li>Write and submit for publication at least one short story</li>
<li><del>Finish my college courses on time or ahead of schedule</del> <em>(barely on time...</em>)</li>
<li><del>Save at least 10% of my income (permanent, no touch savings)</del> <em>(I actually saved 20% of each payday, though I had to dip into it a time or two, but on the average it was still over 10%)</em></li>
<li><del>Cultivate a better relationship with my family</del> <em>(this is still a work-in-progress, but I feel like I've made substantial improvements)</em></li>
<li>Get at least 3,650,000 steps (10k a day * 365 days)</li>
</ul>
</blockquote>
<p>It doesn't look too terrible -- about 45% or so -- but it's only a few things I wanted to do and managed to jot down prior to New Year's Eve. There were many more things I wanted to do, but didn't get around to doing (or even get around to writing down). I didn't come close to tracking my cash flow. I didn't sprout the first seed on a vegetable garden (or even decide what I might want to grow). I certainly <em>read</em> a lot about games, gaming, and game programming (though oddly enough I don't game often at all). I didn't put one drop of ink to paper on a short story, much less submit one. And my wife lost her <a href="http://www.amazon.com/gp/product/B0000U1OCI/ref=as_li_ss_tl?ie=UTF8&tag=sdsalyer-20&linkCode=as2&camp=1789&creative=390957&creativeASIN=B0000U1OCI">pedometer</a><img src="http://www.assoc-amazon.com/e/ir?t=sdsalyer-20&l=as2&o=1&a=B0000U1OCI" width="1" height="1" border="0" alt="" style="border:none !important; margin:0px !important;" />, so I gave her mine and, consequently, lost track of my steps and stopped trying to earn 10,000 every day (not blaming my wife here, I had a pretty good deficit before I gave her my counter -- I was almost glad to be rid of it). All-in-all, not very impressive.</p>
<p>On top of those shortcomings, I also botched a lot of things I had improved upon the year previous: I got out of the habit of exercising daily and I got back into the habit of eating poorly. I haven't really gained any weight, and don't feel terribly out of shape, but my level of health and physical fitness is certainly lessened from this time last year.</p>
<h2>Doing</h2>
<p>So, the first step in correcting a problem is to <em>identify</em> the problem. I'm not sure I can lay my finger to any one reason <em>why</em> my goals weren't accomplished. Mostly it's laziness, disorganization, and a lack of motivation. I also spend a lot of time <em>reading</em> about stuff, <em>thinking</em> about stuff, <em>dreaming</em> about stuff, but not actually <em>doing</em> stuff. That's why I think the cure for what ails me is to, simply, <strong>do</strong>. I've got to put down the books, the feeds, the <a href="http://news.ycombinator.com">HN</a>, the daydreams. I've got to pick up the tools and get my hands dirty, make some mistakes, make something amazing -- <strong>do</strong> something.</p>
<p>To do that, I've got to get organized. I need a system for setting, tracking, and accomplishing goals. I feel like this is the first step, and I'm already taking measures to <em>get things done</em>. That's what I'm learning about <a href="http://www.amazon.com/gp/product/0142000280/ref=as_li_ss_tl?ie=UTF8&tag=sdsalyer-20&linkCode=as2&camp=1789&creative=390957&creativeASIN=0142000280">Getting Things Done</a><img src="http://www.assoc-amazon.com/e/ir?t=sdsalyer-20&l=as2&o=1&a=0142000280" width="1" height="1" border="0" alt="" style="border:none !important; margin:0px !important;" /> (you see what I did there?). I think the basic premise of this system is pretty clever: write down <em>everything</em> so it isn't taking up space in your brain and subconsciously causing stress. I'm also interested in <a href="http://gettingresults.com/wiki/Main_Page">Getting Results the Agile Way</a>, a free system (<a href="http://www.amazon.com/gp/product/0984548203/ref=as_li_ss_tl?ie=UTF8&tag=sdsalyer-20&linkCode=as2&camp=1789&creative=390957&creativeASIN=0984548203">with a paid paper option</a><img src="http://www.assoc-amazon.com/e/ir?t=sdsalyer-20&l=as2&o=1&a=0984548203" width="1" height="1" border="0" alt="" style="border:none !important; margin:0px !important;" />) that is based on Agile programming practices -- something with which a Software Engineering major can easily relate. There's also a nifty tactic known as the <a href="">Pomodoro Technique</a>, which you can read about for free online as well (also <a href="http://www.amazon.com/gp/product/1445219948/ref=as_li_ss_tl?ie=UTF8&tag=sdsalyer-20&linkCode=as2&camp=1789&creative=390957&creativeASIN=1445219948">with a paid paper version</a><img src="http://www.assoc-amazon.com/e/ir?t=sdsalyer-20&l=as2&o=1&a=1445219948" width="1" height="1" border="0" alt="" style="border:none !important; margin:0px !important;" />), which is basically setting a 25 minute timer and focusing on <em>one</em> task, with no interruptions, until that time is up.</p>
<p>I first of heard of combining these systems on <a href="http://hanselminutes.com/268/personal-systems-of-organization-rey-bango-interviews-scott-hanselman">this Hanselminutes podcast</a> and I think I really like this mixture Scott uses. It's a pretty interesting listen if you have a half hour to spare. I've already read <a href="http://www.amazon.com/gp/product/0743269519/ref=as_li_ss_tl?ie=UTF8&tag=sdsalyer-20&linkCode=as2&camp=1789&creative=390957&creativeASIN=0743269519">The 7 Habits</a><img src="http://www.assoc-amazon.com/e/ir?t=sdsalyer-20&l=as2&o=1&a=0743269519" width="1" height="1" border="0" alt="" style="border:none !important; margin:0px !important;" />, which he mentions briefly, so I'm already covered there. I especially like Scott's emphasis on <em>capturing</em> information. It's very important that there's some reliable means of capturing new information that comes in -- even if it's a simple thing like remembering to pick up some milk on the way home -- you've got to write it down (or plug it into your phone/pda/evernote/etc.). Only after some tidbit has been captured can it be processed into your system, organized, prioritized, and schedulized.</p>
<h2>Moving Forward</h2>
<p>2012 is going to be great a year for me. I know this, because I'm going to <em>make</em> it a great year by <strong>doing</strong>. I'm already off to a great start before the ball has even dropped. The recent <a href="/2011/12/13/migrating-to-jekyll.html">blog revamp</a> was a much-needed first step -- an easy win to build upon -- and I've got it finished in basically a few hours of work (granted, there's still some <a href="/2011/12/17/todo-list.html">things to do</a>, which I'm actively working on in my down time).</p>
<p>In addition to reviewing my 2011 goals, I've set up some goals for 2012, and it's a much more ambitious (and continuously evolving) list than last year:</p>
<blockquote><ul>
<li><strong>Do</strong></li>
<li>Accomplish leftover/recurring goals from 2011:
<ul>
<li>Track Every Penny I Spend</li>
<li>Grow a vegetable garden</li>
<li>Code a video game</li>
<li>Write and submit for publication at least one short story</li>
<li>Finish my college courses on time or ahead of schedule (I will also graduate with a BS in Computer Science at the end of the year)</li>
<li>Save at least 20% of my income (permanent, no touch savings)</li>
<li>Cultivate a better relationship with my family</li>
<li>Get at least 3,650,000 steps (10k a day * 365 days)</li>
</ul>
</li>
<li>Get back on the wellness wagon
<ul>
<li>Exercise</li>
<li>Eat well</li>
<li>Rise early</li>
</ul>
</li>
<li>Develop a personal system of doing
<ul>
<li>7 Habits + Pomodoro + GTD + Agile</li>
</ul>
</li>
<li>Find ways to give</li>
<li>Develop
<ul>
<li>continued blog improvements</li>
<li>local takeout directory website (django)</li>
<li>Personal Log System SaaS app (node.js)</li>
<li>simple mobile app (android/java)</li>
<li>simple game (pygame?)</li>
<li>contribute to open source (AWN plugin?)</li>
</ul>
</li>
<li>Generate passive income
<ul>
<li>affiliate links on blog</li>
<li>ads on mobile/web apps</li>
<li>subscriptions to SaaS apps</li>
</ul>
</li>
<li>Write
<ul>
<li>regular blog posts / essays</li>
<li>short story (see 2011 goal)</li>
</ul>
</li>
<li>Get back into playing music
<ul>
<li>music reading refresher</li>
<li>piano, guitar</li>
<li>learn a new intrument (violin, perhaps)</li>
</ul>
</li>
<li>Learn basic hobby/electronics
<ul>
<li>soldering</li>
<li>kits</li>
<li>microcontrollers (arduino)</li>
</ul>
</li>
<li>Read (always one of each on hand:)
<ul>
<li>one book for personal development / intellectual advancement</li>
<li>one book for entertainment</li>
</ul>
</li>
<li><strong>Do</strong> -- and evolve this list</li>
</ul>
</blockquote>
<p>It's a pretty extensive list compared to last year, but if I am setting and accomplishing goals the way I want to be, a lot of it will be knocked out early on in the year. I'm most excited about getting my hands dirty with development -- I'm always reading about programming and startups, but rarely do much coding outside of school assignments. I'm also pretty excited to learn/play with electronics and microcontrollers. Those are the highlights for me.</p>
<p>I think it also helps to focus on the potential pitfalls and weak spots in this master plan if I'm going to be successful. If I can't get a good organization/goal accomplishing system in place quickly, the whole thing may crumble to pieces before I even begin. I have a hard time eating well, rising early, and staying on track with exercise, so this will be a daily struggle. And, as much as I love to read, both as an intellectual exercise and for fun, I have trouble making time for it (wife, work, and school usually come before Drew), so I don't get much reading done outside of my daily feeds and school assignment.</p>
<p>Right now, I'm <em>excited</em> and feel full of <strong>do</strong>. Moving forward, I hope to carry this energy and excitement with with me, and I'm going to do everything I can to make sure that happens -- especially when the when odds are stacked against me.</p>
<p>Here's to a great New Year, for you and for me. Wake up each and every day and tell yourself: <strong>2012 = Do</strong>.</p>
Pro-Tip for Students: Amazon Rules2011-12-22T00:00:00-05:00http://sdsalyer.com/2011/12/22/pro-tips-for-students-amazon-rules<p>Are you a college student? Are you an avid <a href="http://www.amazon.com">Amazon.com</a> shopper? If you didn't already know, Amazon has a <a href="http://www.amazon.com/gp/student/signup/info?tag=sdsalyer-20">Student</a> initiative which offers several nifty services for anyone enrolled in college (you just need a *.edu email address). I've found Amazon to be a great boon to me during these trying collegiate times, and I wanted to share my experiences with their services in the hopes that others might find them of use.</p>
<h2>Amazon Prime</h2>
<p><a href="http://www.amazon.com/gp/prime?tag=sdsalyer-20">Amazon Prime</a> is a paid service offered by Amazon which offers some pretty good benefits: For $79 a year, you get free two-day shipping (and $3.99 one-day shipping) on any item marked with the Prime logo, free instant streaming of a selection of movies and TV shows, and one free Kindle "loaner" book a month.</p>
<p>Anyone can get a free <a href="http://www.amazon.com/gp/prime?tag=sdsalyer-20">one-month trial of Prime</a>, but the good news is: <em>if you're a student, <a href="http://www.amazon.com/gp/student/signup/info">you can get 6 months <em>FREE</em></a></em>! I was lucky enough to get a year for free when I signed up, though it seems they've recently downgraded it to a 6 month trial -- but hey, don't look a gift horse in the mouth, right? Once the six months is up, you can renew for only <em>$39/year for 4 years</em>! If you order from Amazon as often as we do, I'm sure you'll find it's definitely worth that price. The free shipping applies to any address in the lower 48, so if you want to send something to your grandmother in Grand Rapids, or your Aunt in Auburn, that's cool -- Prime has you covered.</p>
<p>The selection of free movies and TV shows to stream is fairly limited, but it's growing; and if you don't mind paying for stuff once in a while, you can buy or rent digital copies of most anything. You can stream to your computer or any internet-connected device that has an Amazon Instant widget (we have a <a href="http://www.amazon.com/gp/product/B003GDFJTU/ref=as_li_ss_tl?ie=UTF8&tag=sdsalyer-20&linkCode=as2&camp=1789&creative=390957&creativeASIN=B003GDFJTU">VIZIO XVT373SV with Vizio Internet Apps</a><img src="http://www.assoc-amazon.com/e/ir?t=sdsalyer-20&l=as2&o=1&a=B003GDFJTU" width="1" height="1" border="0" alt="" style="border:none !important; margin:0px !important;" />
that has an Amazon streaming app built in). We don't utilize the streaming very often, but it's great to know it's there when we need it.</p>
<h2>Amazon Book Trade-In</h2>
<p>One other Pro-Tip I wanted to mention is Amazon's book buy-back service. I use the term <em>buy-back</em> loosely here, since you don't get cold, hard cash for your books, but instead, you get Amazon gift card credit -- which is almost as good. Being a part-time, distance-ed student who rarely gets much in the way of financial aid, I've found it's usually cheaper to buy textbooks at Amazon, rather than through the college's bookstore. And, when I <em>have</em> bought through the bookstore, I usually miss the book buyback dates (or never get an email about them in the first place), so I find myself stuck with a very expensive pile of paper that I probably won't need again.</p>
<p>In comes the Amazon buy-back service. I go to their website, enter the ISBNs (or if I've bought the books from Amazon, I can just choose them from a list) and see how much they'll give me for each book. Sometimes it's <em>very</em> surprising how much I'll get back: I've gotten $80 for a pretty old Physics book, and $30-50 for many of my computer science books -- hardly incurring much loss at all on some of them. Some books aren't desirable and you may only get a couple of bucks for them, but I usually sell them anyway -- Amazon pays the shipping, so it's not like it costs me anything, and it's one less piece of clutter to deal with later (and your college bookstore probably won't touch old editions). I recently sent in 10 books and got about $300 in Amazon credit -- not too bad, if you ask me.</p>
<p>Maybe I should take some of that spare coin and get a <a href="http://www.amazon.com/gp/product/B0051QVESA/ref=as_li_ss_tl?ie=UTF8&tag=sdsalyer-20&linkCode=as2&camp=1789&creative=390957&creativeASIN=B0051QVESA">Kindle</a><img src="http://www.assoc-amazon.com/e/ir?t=sdsalyer-20&l=as2&o=1&a=B0051QVESA" width="1" height="1" border="0" alt="" style="border:none !important; margin:0px !important;" /> and avoid the paper cuts and dead trees altogether. (Especially since they've been <a href="http://hackaday.com/2011/12/20/hack-removes-ads-from-kindle-special-offers-hardware/">hacked</a> to remove the "special offers").</p>
<h2>Sign Up</h2>
<p>In case you missed it, here's the <a href="http://www.amazon.com/gp/student/signup/info?tag=sdsalyer-20">link to sign up for Amazon Student</a> to get your Free 6-month Prime trial. I've found it be a very convenient and cost-effective tool, and I hope you will, too.</p>
The Fallacy of Future Self (or Recursive Procrastination)2011-12-18T00:00:00-05:00http://sdsalyer.com/2011/12/18/the-fallacy-of-future-self<p>Do you have a "future self"? You know, it's <em>you</em>, but <em>in the future</em> -- the guy who the <em>present</em> you piles so much crap on that he'll never dig himself out? Yeah, that guy.</p>
<p>The problem? He doesn't really exist. Thinking that he does exist is <a href="http://en.wikipedia.org/wiki/Fallacy">fallacious</a>. I'm talking about procrastination. Any time you tell yourself "Oh, I'll do it tomorrow", you're giving future self a task to do. That sounds fan-freakin'-tastic to present you -- you can relax and do what you'd rather do (or worse, do <em>nothing</em>, like veg' in front of a <em>Three Stooges</em> marathon), resting assured that future you has it all covered. It's great!</p>
<p>But, you see, your plan goes awry when tomorrow comes, your chariot of laziness turns back into a pumpkin and, by some dark magic, future self magically morphs into you (or is it the other way around?). Future self <em>always</em> becomes you -- and you're a procrastinator. By the the transitive property, future you is also a procrastinator. You can see where this is going: you never get anything done, future self is you, so, still, you never get anything done. It's <em>recursive procrastination</em>.</p>
<p>You're never going to get anywhere in life unless you do it today -- <em>right now</em>. So stop dicking around and get started. Future you is friggin' <em>buried</em>. It's up to you -- <em>present</em> you -- to dig his ass out. Otherwise, both of you are going to suffocate, shrivel up, and <em>die</em>.</p>
<p>I'm in a bit of a rampaging personal development tantrum at the moment, so expect a few more posts along this vein before the New Year comes. You have been warned!</p>
To Do List2011-12-17T00:00:00-05:00http://sdsalyer.com/2011/12/17/todo-list<p>Well, the migration of <a href="http://sdsalyer.com">sdsalyer.com</a> from a crappy shared host to a <a href="http://www.rackspacecloud.com/2868.html">Rackspace Cloud Server</a> is complete. The blog is powered by an <a href="http://www.archlinux.org/">Arch Linux</a> VPS running the <a href="http://wiki.nginx.org/Main">Nginx</a> webserver. The blog is a static site generated by <a href="http://jekyllrb.com/">Jekyll</a> and comments are handled by <a href="http://disqus.com/">Disqus</a>. It's a pretty spiffy setup, I think.</p>
<p>The back end of things is mostly complete, but there's a lot I'd still like to do on the front end. This is the list so far:</p>
<ul>
<li>Pump the templates through H5BP</li>
<li>Add some jQuery UI beautification</li>
<li>Improve site search (temporary search <a href="/search.html">here</a>)</li>
<li>Fix "related" content links (add categories/tags to posts)</li>
<li><del>Switch from Maruku to RDiscount to parse markdown so strikethrough works</del></li>
<li><del>Re-add Google Analytics stuff</del></li>
<li><del>New favicon</del></li>
<li><del>Add social widgety things</del></li>
<li><del>Add Google+ icon since sharethis doesn't seem to support it</del></li>
<li><del>Prettify the logo/nav stuff</del> ?</li>
<li><del>Export comments from Textpattern to Disqus</del> (kinda sorta done, having problems)</li>
<li><del>Fix "related posts" feature</del> ?</li>
<li><del>Set up email</del></li>
</ul>
<p>That's a start. I'm finding myself pretty stressed about my holiday break. I got so backed up last semester that I couldn't do much in the way of <em>having fun</em> or doing things that weren't work/school related. I'm still stuck with the 8-5 thing, but my evenings are my own again for a month or so, and I'm finding myself overwhelmed with all the things I want to do, so there's another long list I won't really get into here.</p>
<p>One major thing I want to do, though, is learn/experiment with hobby electronics. I've been following a lot of "hack" and "make" feeds for a while, and it's something I've always wanted to try but never really got around to doing (it's the sort of thing you wish people had gotten you into as a kid -- it just didn't happen for me). I think I'll start with some simple, cheap <a href="http://www.radioshack.com/product/index.jsp?productId=11007966">kits from Radio Shack</a>, a cheap soldering iron and some wire (never soldered before in my life, so I thought I could practice just splicing wires), and hopefully graduate to a nice Arduino kit like <a href="http://www.adafruit.com/products/170">this one</a> by the end of the break.</p>
<p>We'll see how it goes. Wish me luck...</p>
Migrating to Jekyll2011-12-13T00:00:00-05:00http://sdsalyer.com/2011/12/13/migrating-to-jekyll<p>Hi. Me, again.</p>
<p>I decided Textpattern wasn't working out for me very well, so I'm to give something radically different and a little more hacker-flavored a try. It's called <a href="https://github.com/mojombo/jekyll">Jekyll</a> and it's pretty cool. Basically, I just have a Git repo that I load up with simple text files (using <a href="http://daringfireball.net/projects/markdown/">Markdown</a> syntax), then use Git to push them to a remote repository. From there, a post-receive hook calls Jekyll to turn it into a static HTML site, which is spat out into my web directory. I think I'm going to like this, especially since Git is starting to become a staple in my day-to-day activities.</p>
<p>This is just a sample post to see how things are working out. In addition to the Jekyll backend swap, the front end design is going to be overhauled as well to something very clean and minimal, so stay tuned for that. I've already imported my posts from the old Textpattern site, though I'll probably have to back through and prune some links and img URLs, so pardon that.</p>
<p>My desire is that these changes will help to simplify and facilitate the blogging process, so I can more easily put what I want or need to say out there for the world.</p>
<p>That's it for now. Til next time, space cowboys.</p>
Happy [belated] Berfday sdsalyer.com!2011-08-26T00:00:00-04:00http://sdsalyer.com/2011/08/26/happy-belated-berfday-sdsalyercom<p>I just realized it’s been over a year since I first got <a href="http://www.sdsalyer.com">sdsalyer.com</a> online and made <a href="http://www.sdsalyer.com/blog/2/">my first blog entry</a>. I missed the occasion by over a week — it was actually last Wednesday, the 17th of August! Doh, me!</p>
<p>In honor of this unprecedented event, I’ve made some quality upgrades to the blog end of the site:</p>
<ul>
<li>I’ve set myself up on <a href="http://feeds.feedburner.com/sdsalyer">FeedBurner</a></li>
<li>I’ve dropped the Facebook icon in favor of <a href="https://plus.google.com/111297346939698362600">Google+</a> ; and, most notably,</li>
<li>I’ve added some social sharing icons to the left of each article. If you enjoy one of my articles, <em>please</em> feel free to Like, +1, Tweet, or otherwise share it!</li>
</ul>
<p>To everyone who’s ever visited my site, a big <strong>Thanks</strong>! I know it’s not much, but it’s my little corner of the interwebz. Keep your eyes peeled for some future site updates, including a <em>much</em> nicer version [or perhaps a replacement] of the <a href="http://www.sdsalyer.com/portfolio">Portfolio</a> page, and of course, many more tantalizingly delicious blog posts from yours truly.</p>
<p>Oh… and Happy birthday, sdsalyer.com!</p>
<p>Til next time!</p>
<p>- Drew</p>Grokking Calculus2011-08-22T00:00:00-04:00http://sdsalyer.com/2011/08/22/grokking-calculus<p>My Mathematics are terrible. It’s not that I’m <em>bad</em> at Math, or even that I don’t <em>like</em> the stuff — I’ve just got a rocky and incomplete (incorrect?) upbringing in it. I feel like not many people know [or care] how to teach Math <em>well</em>, or it’s possible that my learning style just doesn’t mesh with the traditional methods, but after dropping Calculus more than a couple of times, this semester is “do or die” — I’ve got to finish it and get this monkey off my back! Here’s a look at some resources I’ve bookmarked over the past year or so that I plan to delve into this semester so that I might come closer to <a href="http://en.wikipedia.org/wiki/Grok">Grokking</a> Calculus…</p>
<h2>A Little History</h2>
<txp:article_image style="float: right;" />
<p>I think I’m innately pretty decent at Math. I’m no whiz, by any means, and I’m definitely not the greatest at mental calculations (though I think I’ve gotten better over the past few years), but I’m probably a B student without trying (I can, and do, stretch that to an A when I dare to exert a modicum of effort). Heck, I’ve even learned to <em>like</em> Math, to some degree, mostly thanks to Physics courses. So why do I have so much trouble just <em>doing</em> it?</p>
<p>Honestly, I feel like the system failed me in Mathematics. I was set up for failure and conditioned to dislike the stuff. Now, I’m not one to pass on the blame, and I’m certainly not innocent in the matter, but I feel pretty strongly about this. It’s just plain <em>wrong</em> the way Math courses are taught these days, or at least it seems that way to me. They pry open your head, then shovel, hammer, and drill into your brain what’s needed to pass standardized tests, and then you regurgitate it back out so the school gets the funding it wants to do more cranial construction. They don’t really give you the proper foundation, based on <em>principals</em> and Mathematical laws that help you build your understanding and power to <em>reason</em>. It’s more often the short-cut, trickery method that magically gets you to the answer faster than really knowing how. It’s kinda depressing…</p>
<p>I actually excelled at Math prior to High School. Then one fine day, the year before moving up to 8th grade (which was High School for me — sub-freshmen, they called us, the lowliest of the low), I was given the choice: during activity period, I could take Pre-Algebra with the rest of the brainy kids, or continue on with band (I had been playing the saxophone for the past 2 years and was on my way to the lead sax player). That’s not a choice any 12-year-old should have to make, especially on their own — choose between music and higher learning? It’s just <em>wrong</em> on so many levels., but that’s how it played out — I’m not even sure my parents were involved in the decision. My choice… my tragic flaw… was band.</p>
<p>This (as well as several other factors) set the stage for Mathematical disaster. 8th grade came around, and while most of my classmates took Pre-Algebra that year, I was encouraged to take Algebra I with the other kids who chose Pre-Algebra over band the year before. On top of that, my instructor was an ornery old man who was in his last year before retirement. On top of <em>that</em>, he was also the wrestling coach, and had no love for lazy, long-haired hippies (or rather, <em>grunges</em>, which I was awkwardly becoming). On top of <em>that</em>, my 2-years-elder, “bad influence” friend was in the class with me. I got a D the first grading period — maybe the instructor <em>did</em> have some sympathy for me after all — and F’s every grading period thereafter. So my first foray into the world of higher Mathematics was an utter failure. To add salt to the wound, I quit band prior to entering High School for fear of the terrible things that would surely happen to me if I remained a “band geek”.</p>
<p>Despite <strong>failing</strong> Algebra I, I was signed up for Algebra II the next semester! How this farce was allowed to play out, I will never fully understand (yay poor, small-town, public schools?). Not only that, this time I was stuck with another grizzled old guy, this time the football head coach (which is tantamount to godhood where I grew up), no less. The odds were stacked against me again, yet somehow I eeked out an overall grade of D in that course — enough to pass me through to the next level of the inferno.</p>
<p>War-torn, battered, beaten, and bruised, I went into Geometry class ready to bomb as before. This time I had your classic matronly, hair-in-a-bun, reading-glasses-on-the-end-of-the-nose, highfalutin, Grade A Math teacher. The kind that whacks your knuckles with a meter stick if you foul up. I’m not sure if the old broad liked me, or if I just liked Geometry, or maybe, just <em>maybe</em> I started to actually care… I came out of Geometry with a solid B+. Could it be that I was overcoming the odds? Could it be that I had won out, despite the system railing against me?</p>
<p>To be sure, before I could graduate, I had to pass Algebra I. So I went into my Junior year, with Algebra II and Geometry squared away, but no Algebra I (aren’t these supposed to be sequential, hierarchical learnings — you need to understand the first to learn the subsequent ones?), so I had to go back and prove my mettle in the introductory course. Once again, I prevailed, and exited Algebra I again… this time with an A.</p>
<p>I took no other math courses in High School. Despite my poor grades, I still earned an Advanced Studies diploma. I even scored a 650 on the Math portion of the <span class="caps">SAT</span> (without a calculator, no less — no one told me I could use one!). Even though in the end I came out partially on top, my learning path was so crooked, so incomplete, I still didn’t really understand much of anything I had “learned”.</p>
<p>Today, I’m a much better student, but I still struggle with Math — not really because I’m <em>bad</em> at it, but because I didn’t learn it properly. It’s very frustrating, to say the least.</p>
<h2>Resources</h2>
<p>If, like me, you were given a poor shot at Mathematics… If, like me, you want, or need, to improve your skills… then I hope this list of links will be of some help to you.</p>
<ul>
<li><a href="http://www.khanacademy.org">Khan Academy</a> — If you haven’t heard of Khan Academy, <em>where have you been</em>? This may be the best single resource on the internet for Math (and many other subjects as well). Spend a lot of time here.</li>
<li><a href="http://ocw.mit.edu/resources/res-18-006-calculus-revisited-fall-2010">MIT’s Calculus Revisited Course</a> — This, and many other <a href="http://ocw.mit.edu/courses/#mathematics"><span class="caps">MIT</span> Math course</a> materials (and <a href="http://ocw.mit.edu/courses/">other topics</a> including Computer Science!) are available <em>for free</em> online.</li>
<li><a href="http://www.sciencebooksonline.info/mathematics.html">Free Math Books Online</a> — with a <a href="http://www.sciencebooksonline.info/mathematics/analysis-calculus.html">Calculus</a> subsection. Lots of free e-books on Math (and, again, other subjects).</li>
<li><a href="http://web.stonehill.edu/compsci/History_Math/math-read.htm">How to Read Mathematics</a> — some insight on how to read and interpret equations and such.</li>
<li><a href="http://calnewport.com/blog/2008/11/14/how-to-ace-calculus-the-art-of-doing-well-in-technical-courses/">How to Ace Calculus</a> — an interesting take on how to change your mode of learning Math to do well in Calculus.</li>
<li><a href="http://www.quora.com/What-is-the-proper-way-to-learn-mathematics">What is the proper way to learn Mathematics?</a> — a question I asked on Quora. It’s a pretty straightforward answer, but be the subsequent comment helped me feel like I was not alone.</li>
</ul>
<p>I’m sure there’s many other great resources available on the web, but these are links I stumbled onto mostly by accident and bookmarked knowing that I would need them some day.</p>
<p>Have any other Calculus, Mathematics, or other Learning links to share? Let me know — I’m going to need all the help and support I can get!</p>Linux Mint on the MSI X-Slim X370 Notebook2011-08-18T00:00:00-04:00http://sdsalyer.com/2011/08/18/linux-mint-on-the-msi-x-slim-x370-notebook<p>If you followed my <a href="http://www.sdsalyer.com/blog/16/the-penguin-plunge-making-the-switch-to-linux">Penguin Plunge</a> series, you know I’m growing into a bit of a Linux fanboi. So much so, that I’ve installed several different distros either in dual-boot on a physical machine or in Windows as virtual machines (which I highly recommend if you’re curious about VMs or want to try another OS such as Linux without any heavy commitment). I’ve now taken the next step and purchased an <a href="http://www.msi.com/product/nb/X370.html"><span class="caps">MSI</span> X370</a> 13" ultraportable notebook and have it running <a href="http://www.linuxmint.com">Linux Mint</a> 11.4 64-bit as the primary OS. Here’s a look at why I chose the X370, what I like about it, and how I got it loaded up with Linux (it’s easy — you’ll see!).</p>
<p><cite>Update: A <span class="caps">BIOS</span> update fixed the bug causing the notebook not to wake from sleep. See below for more information.</cite></p>
<h2>The Need for … Portability</h2>
<p>Portability doesn’t really rhyme with <em>speed</em>, does it? If you want portability, you’re going to sacrifice a bit of speed, though with the <span class="caps">MSI</span> X370 and its <span class="caps">AMD</span> E-350 1.6 GHz dual-core <em><span class="caps">APU</span></em> (<span class="caps">CPU</span> + <span class="caps">GPU</span> on one chip), you won’t be losing much. And in terms of <span class="caps">RAM</span> (4GB) and hard drive capacity (500GB), you will easily outpace any netbook.</p>
<p>I considered netbooks for a while (<a href="http://peppermintos.com/">Peppermint</a> looks like fun), and still think they’re pretty neat (hopefully tablets won’t kill them completely), but their too-small form factor and weaksauce capabilities didn’t fulfill my requirements for a development machine — and that’s exactly what I wanted: a light, slim, and ultimately portable computer that wasn’t <em>too</em> small, could go more than a few hours without a charge, and was capable of running any dev tool I might need…</p>
<p>The X370 delivered and has exceeded my expectations. Its light, compact form is just right: it’s around an inch thick at the extreme and well under 4 lbs (my Asus m50vm is close to 8lbs), yet the 13.4", 1366 × 768 glossy screen and supple, chiclet-style keyboard feel luxuriously roomy compared to a netbook. The packaged 8-cell battery claims up to 10hrs run time (it’s more like 5-6 under normal use, but that’s impressive nonetheless) and it is one stylish, sexy machine (it’s no Macbook Air, but heck.. it’s 1/3 the cost). On top of all that, the price is stomachable and <a href="http://www.newegg.com/Product/Product.aspx?Item=N82E16834152271">Newegg</a> never fails to please.</p>
<h2>The Love of … Linux</h2>
<p>That’s a bit more poetic (alliterations are always awesome, aren’t they?!) — and so is <a href="http://www.linuxmint.com">Linux Mint</a>. It’s <a href="http://www.ubuntu.com">Ubuntu</a>, refined. My sister-in-law and sysadmin/JavaScript developer has made mention that she often feels “alone” while using Linux. I kinda felt that way, too, with Ubuntu. It’s a bit dull and dreary (granted, we’re just talking about default themes here) and if I didn’t peer up from my monitor once in a while, I could almost convince myself I was alone in a cave, despite being tapped into the billions of people on the net. Not so with Mint: it’s fresh — <em>minty</em> fresh — and clean feeling. I don’t feel alone at all!</p>
<p>Mint is a derivative of Ubuntu. It’s basically the same (Debian => Ubuntu => Mint), with a few minor changes: namely, the default theme, the Mint Menu (which I really like), <span class="caps">GNOME</span> is the default environment (as opposed to Ubuntu’s Unity), the Update Manager is friendlier and more advanced (arguably), and the included software is slightly different (mostly tried and true programs, while Ubuntu seems to be pushing newer, edgier apps). In the end, the performance is going to be the same as Ubuntu (and most anything that applies to Ubuntu applies to Mint — ie. any software that runs on Ubuntu will run on Mint and e.g. if you need help installing/modifying something, it’s typically easier to find Ubuntu-specific instructions, which should apply the same to Mint), so it really boils down to personal preference. I run Ubuntu on my desktop and one of my primary virtual machines. I chose Mint for the new laptop, and won’t be looking back — it just looks too good on this all-white notebook.</p>
<h2>Loading Linux onto the Lappy</h2>
<p>I couldn’t resist another alliteration (please don’t sue)! If you’re here looking for information on getting Linux Mint (and/or Ubuntu — and <em>probably</em> any other Ubuntu derivative like Lubuntu, Xubuntu, Kubuntu, or !# Crunchbang Linux, though I haven’t tried any of these) installed specifically onto the <span class="caps">MSI</span> X370, then look no further — I’ve done it myself, and it’s a breeze.</p>
<h3>Before You Begin..</h3>
<p>There <del>are two annoyances</del> is an annoyance you should be aware of before installing Mint (or probably any other Linux distro) to the X370. <del>The first is that this</del> This notebook comes equipped with a Sentelic touchpad, and while it works fine for basic pointing and clicking and has some primitive scrolling ability, <strong>multitouch does not work under Linux</strong>. This is a <a href="https://bugs.launchpad.net/ubuntu/+source/linux/+bug/311869">known issue</a> with these Sentelic pads, and I’ve yet to find a solution or any indication that it will be solved. I think the only hopes are that Sentelic releases a multi-touch driver for Linux or the Ubuntu gang will put out a generic touchpad driver with multitouch capabilities. I’m not sure that either of those are likely and I wouldn’t hold my breath. Yes, that does suck.</p>
<p><del>The second annoyance involves the proprietary <span class="caps">ATI</span> Catalyst drivers (version 11.7 at least) preventing the X370 (and perhaps <a href="https://bugs.launchpad.net/ubuntu/+source/linux/+bug/767975">all E-350 equipped devices</a>) from waking from sleep/suspend/hibernate. So, you may wish to refrain from installing the <span class="caps">ATI</span> drivers (see <em>Additional Drivers</em> below). Yes, that does suck, too.</del></p>
<p>If you can live with <del>these issues</del> this issue, let’s move ahead to the install.</p>
<h3>1: Grab the <span class="caps">ISO</span> & Make a Bootable <span class="caps">USB</span> Stick</h3>
<p>The first thing you’ll need is an <span class="caps">ISO</span> disk image of Linux Mint. I chose the 64-bit distribution, but 32-bit will work as well (this <em>may</em> limit you to 3.5GB of memory, however). Considering the X370 has no optical drive, you’re going to want a <span class="caps">USB</span> stick with a capacity of at least 2GB (these shouldn’t be more than $5-8 — I found a 4GB SanDisk Cruzer at Office Depot for around $7). If it’s a SanDisk drive, you should probably remove the U3 software using their free <a href="http://u3.sandisk.com/launchpadremoval.htm">removal utility</a> — otherwise it may cause problems in booting from the device.</p>
<p>With that done, I basically just followed the <a href="http://www.ubuntu.com/download/ubuntu/download">instructions</a> on the Ubuntu website for slapping the <span class="caps">ISO</span> onto the <span class="caps">USB</span> stick and making it bootable. I did it on Windows XP using the <a href="http://www.pendrivelinux.com/universal-usb-installer-easy-as-1-2-3">Universal <span class="caps">USB</span> Installer</a> — I just selected Linux Mint 11.4 64-bit from the drop-down instead of Ubuntu. It should be a similar procedure to make a bootable <span class="caps">USB</span> stick on other OSs (again, just follow the Ubuntu instructions).</p>
<h3>2: Prepare the X370</h3>
<p>I decided to keep the factory install of Windows 7 on the X370, so effectively these are instructions for a dual-boot setup. If you don’t want to keep Windows, that’s even easier, and you can skip to the next step.</p>
<p>The X370 came with a slightly sliced up hard disk. There were already 4 partitions: a Windows recovery partition, an <span class="caps">MSI</span> recovery-CD-maker partition, the Win7 install, and an empty “data” partition. I booted into Windows and used the Disk Management tool to <a href="http://www.sevenforums.com/tutorials/2672-partition-volume-shrink.html">shrink the Windows 7 partition</a>. Open a prompt and type in <strong>diskmgmt.msc</strong> and hit <strong>Enter</strong>, then right-click on the Windows 7 partition and click Shrink Volume. I shrunk it as small as it would go, which was about 180GB, leaving around 300GB for Linux (you can divvy this up however you want). And with that, we’re Linux bound…</p>
<h3>3: Install Linux Mint</h3>
<p>Reboot the X370 with your Mint-ified bootable <span class="caps">USB</span> stick attached. It should automatically boot from <span class="caps">USB</span> without any <span class="caps">BIOS</span> changes — how handy is that? If for some reason it doesn’t boot from <span class="caps">USB</span>, you may have to hit <strong>F11</strong> to change the boot sequence.</p>
<p>If you aren’t installing into a dual-boot setup, you can simply install Mint over Windows 7 according to the <a href="http://www.ubuntu.com/download/ubuntu/download">Ubuntu instructions</a>. I didn’t go this route, but one concern is that “data” partition. You may want to remove it and redo the partitions completely. For my dual-boot setup, before starting the Mint install, I did a quick <code>apt-get install gparted</code> and used gParted to remove the data partition and set up a new primary partition with an 8GB Linux swap & the rest devoted to the Mint install as an ext4 filesystem (be sure to set the mount point to “/” — the root directory). Partitions are tricky business, so I won’t get into them here, but needless to say, there’s tons of help online (and you can even browse the net while Mint is installing).</p>
<p>Now you just go through the motions: pick your time zone, keyboard layout, username, etc., then let the installer do its thing. Within minutes, you’ll be booting into Linux (don’t forget to remove the <span class="caps">USB</span> stick).</p>
<h3>4: Additional Drivers</h3>
<p>I’m not sure what went wrong when I activated the additional <span class="caps">ATI</span> Catalyst drivers when Mint prompted me to do so. When I rebooted the machine, the display flickered on and off repeatedly and became unusable (I’ve heard mention of a bug that causes the <span class="caps">LED</span> backlight to cycle off and on and I think this is similar). I couldn’t find an easy way to <a href="http://wiki.cchtml.com/index.php/Ubuntu_Natty_Installation_Guide#Removing_Catalyst.2Ffglrx">uninstall those drivers</a> right away, so I just did another clean install. It’s possible this may only be a 64-bit issue, but I’m not sure.</p>
<p><cite><span class="caps">UPDATE</span>: There is a fix for the bug mentioned below: Update the <span class="caps">BIOS</span> using the instructions <a href="http://www.msi.com/product/nb/X370.html#?div=BIOS">at this link</a>. You’ll need to follow the <span class="caps">DOS</span> instructions by loading the <span class="caps">BIOS</span> flash utility onto a <span class="caps">USB</span> stick. This seems to have fixed the problem for me.</cite></p>
<p><del>As mentioned above (in the <em>Annoyances</em> section), there is currently a bug that prevents the X370 from waking from sleep under the <span class="caps">ATI</span> Catalyst 11.7 (and probably other versions) drivers.</del> If you <del>still</del> wish to install these drivers, there is a manual installation method for them. The <a href="http://wiki.cchtml.com/index.php/Ubuntu_Natty_Installation_Guide">instructions at the Unofficial <span class="caps">AMD</span> Linux Community</a> run through the manual installation and removal of <span class="caps">ATI</span> Catalyst drivers quite thoroughly. I haven’t had any trouble with this method, and the drivers even show up as Activated in the Additional Drivers configuration window.</p>
<h3>5: You’re Done!</h3>
<p>Now all that’s left is to personalize. I found it odd that vim wasn’t installed by default, so that was the first thing to go in. The Software Manager is chock full of any sort of program you might want (a supposed 30k+ packages). I got used to the task bar being at the top of the screen, so I moved that up, and then experimented with Docky and Cairo Dock until finally settling on the former (it’s a bit simpler and easier, while Cairo Dock has tons of customization options). From here, it’s all up to you!</p>
<p>Here’s a looksie at how it turned out for me:<br />
!http://www.sdsalyer.com/images/9.jpg (Linux Mint 11.4)!:http://www.sdsalyer.com/images/8.jpg</p>
<h2><span class="caps">MSI</span> X370 & Linux Resources</h2>
<p>Here’s a few relevant links you may find helpful:</p>
<ul>
<li><span class="caps">MSI</span>: <a href="http://www.msi.com/product/nb/X370.html"><span class="caps">MSI</span> X370</a> (basic info and driver downloads)</li>
<li><del>(Launchpad: <a href="https://bugs.launchpad.net/ubuntu/+source/linux/+bug/767975" title="Natty Narwal Beta">Video does not return after sleep with <span class="caps">AMD</span> E-350 Fusion <span class="caps">APU</span> and <span class="caps">ATI</span> closed driver</a> )</del> <cite>(fixed with a <a href="http://www.msi.com/product/nb/X370.html#?div=BIOS"><span class="caps">BIOS</span> update</a>)</cite></li>
<li>Launchpad: <a href="https://bugs.launchpad.net/ubuntu/+source/linux/+bug/311869">Add driver for Sentelic Touch pad</a></li>
<li>Unofficial <span class="caps">AMD</span> Linux Community: <a href="http://wiki.cchtml.com/index.php/Ubuntu_Natty_Installation_Guide">Ubuntu Natty Installation Guide</a> (lots of <span class="caps">ATI</span> driver info including installation/removal)</li>
<li>Amazon: <a href="http://amzn.com/B004V3PLII"><span class="caps">MSI</span> X370-001US 13.4-Inch X-Slim Laptop – Black</a> (helpful info in some of the reviews, specifically how to tune multitouch in Windows)</li>
<li>Newegg: <a href="http://www.newegg.com/Product/Product.aspx?Item=N82E16834152271" title="white"><span class="caps">MSI</span> X370-062US</a> and <a href="http://www.newegg.com/Product/Product.aspx?Item=N82E16834152259" title="black"><span class="caps">MSI</span> X370-001US</a> (again, the reviews may be helpful)</li>
</ul>
<p>Had any issues with your X370 and/or Linux Mint? Know of solutions to the multitouch or suspension issues? Leave your comments below!</p>The Penguin Plunge Part 3: The Conclusion2011-08-14T00:00:00-04:00http://sdsalyer.com/2011/08/14/the-penguin-plunge-part-3-the-conclusion<p>It’s been a long, grueling Summer semester for me, but at long last it’s finally come to an end. Much to my chagrin, I didn’t have excessive time or energy to round out this Penguin Plunge series as I had intended. However, I did stay true to my goals and completed the experiment as planned, and all that remains is to blog about it. And thus, this entry marks the much-awaited, gripping conclusion to my Penguin Plunge series!</p>
<txp:output_form form="linux_menu" />
<h2>Recap</h2>
<p>It’s been a while since the last post, so I thought I would give a quick recap, both for the reader, and to help oil my own gears as well. This series began as the vessel to convey my long held desire to start using Linux to reality, and then see if it would stick. The timing was right, since Ubuntu 11.4 had just released and I had some extra cash on hand to rebuild my aging desktop computer. I spent a couple of days tearing down and rebuilding the machine and installing Windows 7 alongside Ubuntu 11.4 64-bit to create a dual-boot, gaming & programming powerhouse! (OK, it’s not really a powerhouse, but it was a long overdue update, so it felt like a powerhouse to me).</p>
<p>I posted a bit about the minor growing pains associated with switching to an unfamiliar OS, the most noticeable hurdle being the lack of an ideal solution for shared space between differing filesystems. Windows likes <span class="caps">NTFS</span>, Linux likes journaling filesystems, and while there are utilities that let either OS interact with the other’s filesystem, it’s not a true and complete solution. It does work, however, and I found that in practice, it worked well enough for me, as I’m sure it would work well enough for most any other casual user.</p>
<h2>The Outcome</h2>
<p>As per my rules, I stuck to Linux exclusively for my college coursework, though there was one snafu that <strong>required</strong> me to use Windows briefly. The problem occurred when I took a timed exam online through the university’s course management system. The instructor uploaded a Word document containing a graphic element, which, when opened in Ubuntu’s LibreOffice did not properly display. I didn’t have time to troubleshoot the issue (I’m not sure there really would’ve been a solution anyway), so my only alternative was to rush downstairs, rip the Windows 7 laptop out of my wife’s surprised hands, and quickly log in to display the file in MS Office so I could complete the timed exam. It actually kinda hurt me on the grade, as I had to rush through the discussion questions at the end that might have been more well formed had I not spent those precious minutes early on trying to view the file.</p>
<p>I’m not sure that I view this as a shortcoming of Linux, or even of LibreOffice, but perhaps just collateral damage from a proprietary software world. Should my professor have ensured the file was viewable under any OS/software combination? Ideally, yes, but realistically, you’re pretty much required to have an office suite of some sort for college — and given that Windows is the ubiquitous OS, most universities are going to be using Word instead of OpenOffice or some other solution. It sucked, though, and it made me a little wary of going forward through life as a Linux-only user: there’s likely always going to be situations popping up where proprietary software comes between people. On the other hand, as more apps move to the cloud and more things are done in the browser, rather than the desktop, I feel this divide may narrow over time.</p>
<p>Other than that one isolated situation, Linux worked just fine for me. In fact, as a Computer Science student and development enthusiast, I really have come to prefer it over Windows. The university offers a <span class="caps">VPN</span> utility for Linux, which allowed me to develop Java software driven by the school’s own Oracle database. My growing knowledge of the command line helped me immensely to <span class="caps">SSH</span> into the school’s servers, move <span class="caps">SQL</span> scripts around, fire up SQLPlus and interact directly with the database, and even use the <code>scp</code> command to transfer files back and forth between my machines and the server. Not only that, there’s a plethora of free development tools that are only an <code>apt-get install</code> away. It’s really something every CS student should experience, even if Linux doesn’t become their OS of choice.</p>
<h2>My Conclusions</h2>
<p>This experiment has made me a believer. It’s made me a better programmer and more well-rounded computer user. I’ve learned so much from using Linux for a few short months, and while I’m still stumped occasionally, I’m growing more and more comfortable all the time.</p>
<p>I think Linux isn’t for everyone, however, and I’ve been frustrated by it more than a few times. There’s so many distributions and so many different ways of doing things, it can be a real roadblock at times. Sometimes things just don’t work, and the <em>only</em> way to fix them is to dig into configuration files or put your faith into the hands of an unknown discussion board post found through a Google search, typing command after command into a terminal window, hoping that the next one doesn’t utterly destroy your system.</p>
<p>You simply must have some modicum of skill, faith, fearlessness, or blatant disregard (or perhaps a little of each) to be a full-time Linux user. It’s the only real negative for me — sometimes things just don’t work, or don’t work easily, and you inevitably lose time tweaking things around instead of getting things done. However, once that’s out the way, I feel like the time lost is usually regained in increased productivity (again from a CS perspective) as compared to Windows. The underlying concept just makes more sense, and for that, I’m hooked on Linux.</p>
<h2>The Aftermath</h2>
<p>I spend a great deal of time reading about software development and what’s trending in the industry. It seems like a large number of developers, especially web developers, are Mac users. This caused me to acquire a similar longing to give a <span class="caps">OSX</span> a try. I looked into a acquiring a new Macbook Air, which is one seemingly sexy piece of machinery, but ultimately I couldn’t justify the price. As such, now hooked on the concept of an ultraportable development machine, I purchased a comparatively cheap <a href="http://www.msi.com/product/nb/X370.html"><span class="caps">MSI</span> X370</a> laptop and have since loaded it up with <a href="http://www.linuxmint.com">Linux Mint</a> 11.4 64bit.</p>
<p>I have to say, I’m pretty much in geek heaven now. I’ve got this lightweight, ultraportable, and pretty sexy laptop powered by super sleek and also sexy Linux distro. The Mac still holds a bit of intrigue for me (I even installed <a href="http://sourceforge.net/projects/macbuntu/">Macbuntu</a> on one of my Linux virtual machines), and perhaps some day there may be a similar <em><span class="caps">OSX</span>-periment</em> series here on my blog — if I happen into a nice bit of disposable income. Until then, though, I couldn’t be happer with my new Mint machine, splashing around in Linux.</p>
<p>Thanks for reading.</p>Hacking Your Hometown2011-05-23T00:00:00-04:00http://sdsalyer.com/2011/05/23/hacking-your-hometown<p>I’ve been inspired by Chicago native Christopher Groskopf (<a href="http://twitter.com/onyxfish">@onyxfish</a>) and his <a href="http://hacktyler.com/">Hack Tyler</a> initiative. Christopher made the decision to follow his son from Chicago to Texas to continue to be a part of his life after a recent divorce. To help cope with the drastic change in locale and lifestyle, Christopher is keeping himself busy by “hacking” (in the <a href="http://en.wikipedia.org/wiki/Hacker_%28programmer_subculture%29"><span class="caps">MIT</span> hacker culture</a> sense — not the illegal <a href="http://en.wikipedia.org/wiki/Hacker_%28computer_security%29">cracking</a> sense) his soon-to-be new town, Tyler, Texas.</p>
<p>It’s inspiring to see such dedication to one’s offspring. I would say few people have the fortitude to selflessly give up so much to be with their child. What interests me, though, is the Hack Tyler project. Christopher is moving from a relatively technologically advanced, online city to a smaller Texas town whose online presence is, by comparison, almost nonexistent. It’s an untapped resource waiting to be harvested, unlocked, and shared (and perhaps a potential goldmine).</p>
<p>It bears a striking resemblance to my area: Washington County, VA. The county seat, the town of Abingdon, has fewer than 10,000 residents. The entire county’s population, according to 2010 census data, is 54,876 — about half the population of Tyler, Texas. It’s a very small place in comparison to Tyler. It’s barely a spec on the map in comparison to Chicago’s 2.7 million residents (3rd largest city in the US). It’s uncharted territory, technologically speaking, and for me, I think it’s an opportunity to do something great for my community, and hopefully learn something in the process.</p>
<p>I’ve wanted to “hack” the local scene for quite some time. I’ve had many ideas brewing in the back of mind, just waiting for a good excuse to come out. Thanks to Hack Tyler, and its coincidence with my ongoing and growing initiative to increase my programming skill and experience, I think now is the time to set things into motion — to “hack” my hometown (or perhaps the whole county or the entire region since it seems to function as one large community, rather than a spattering of individual farming and coal mining towns).</p>
<p>Following in Christopher’s footsteps, I’m going to begin by cataloging all the local sources of data I can find. Most of this data, sadly, is in poorly digestible formats, so I’m going to have to learn some new techniques to utilize it. <a href="http://en.wikipedia.org/wiki/Web_scraping">Web scraping</a> may be the most pertinent, along with tools for converting PDFs to text and other data harvesting techniques. In addition, I hope to apply new programming skills I’m working to acquire as well. Namely <a href="http://www.python.org">Python</a> and probably some <a href="http://jquery.com/">jQuery</a> too.</p>
<p>I’m pretty excited about it. I think it’s a great opportunity to improve myself and improve my community. I’m very fortunate to live where I do. I really love it here, in the Appalachian Highlands, and I hope that I can help to move this area towards a more open and online-present community.</p>The 3 D's of Software Development2011-05-17T00:00:00-04:00http://sdsalyer.com/2011/05/17/the-3-d-s-of-software-development<p>The more I study Computer Science, the more I realize how terrible I am at it. There’s so many avenues of learning and growth, and the field is so deep and wide, no one can ever learn every language, every framework, every application, or every process. It’s hard to know in which direction to go, but one thing is for certain: if you <em>don’t</em> go, you’ll be left behind. I’d like to uncover a few roadblocks I have identified which serve as artificial barriers to the advancement of my development knowledge and career. Conveniently, they all can be mapped to D-words, and as such, my quippy title: <em>The 3 D’s of Software Development.</em></p>
<h2>Dread</h2>
<p>The hardest part of most jobs is getting started. I like to think of myself as a self-starter, but a lot of times I’m just a big fat procrastinator head. For one reason or another, I have some reservation, some <strong>dread</strong>, at staring at a blank screen or blank piece of paper, or whatever the prelude to a development project big or small may be. Starting a project is scary stuff. I find that I’m afraid of taking a misstep, making a mistake, or creating something I’m not proud of. It probably seems silly, but it’s a real problem for me.</p>
<p>Going through my Software Engineering I course gave me a big boost in this area. Also of great help is Steve McConnell’s fantabulous book, <a href="http://amzn.com/0735619670">Code Complete</a>, which I’m about halfway through reading, but taking small chips out of every night. It’s a real comfort to know I’m learning the proper processes and best practices for developing software. It inspires confidence that I <em>won’t</em> take that misstep or make [as many] mistakes, and I’m more likely to create the application I envision — one I’m sure to be proud of. And really, that’s what it’s all about for me — <em>creating something I can be proud of</em>. I believe software development really is a craft, or an art, as much as it is a science. The best designs and applications are <em>beautiful</em> in their intuitive simplicity.</p>
<p>Perhaps the most important tool for overcoming dread in software engineering is the old standby, <em>iteration_. It’s OK to make mistakes, especially early on, and it’s probably even encouraged. The sooner you foul up, the less effort you’ve put in, and the easier it is to correct. Iteration tells me I should screw up a time or two, or I’m probably not arriving at the best design or solution that I could be. Iteration is a software developer’s bread and butter. <a href="http://en.wikipedia.org/wiki/Don't_repeat">Don’t Repeat Yourself</a></em>yourself in your final code, but you probably <em>have to</em> repeat yourself by iterating a few times to get to that point.</p>
<p>It’s my new mantra: <em>Iterate, iterate, iterate. And then iterate some more.</em> It applies to every step in developing software, and it quashes the dread by allowing and encouraging mistakes (and what better way to learn?) on the road to the best solution.</p>
<h2>Distraction</h2>
<p>One of the foremost hindrances to my progress is procrastination. I’m constantly finding things to <strong>distract</strong> me from working on a project. They’re not necessarily <em>bad</em> things or wastes of time, and quite often and to the contrary, I’m doing something productive (college work, yard work, reading, writing) — it’s just momentum in the wrong direction.</p>
<p>Probably the biggest chunk of my distracted time spent not developing is, ironically, <em>reading about development.</em> The biggest offender of all is <a href="http://www.google.com/reader">Google Reader</a> — an online <span class="caps">RSS</span> feed reader application. I spend a large portion of my day keeping up with my favorite blogs and websites and reading about trends in software development (and startup companies, among other things) at <a href="http://news.ycombinator.com">Hacker News</a>. I probably pass 300-500 posts a day through Reader, and while I believe it’s a blessing to be able to have so much of my favorite information on tap in one place, it’s my biggest source of distraction. I need to lay off the feeds, stop sweating the urge to process that huge list of unread items, and just check in once in a while — in my downtime when I don’t have something else I should be doing. It’s a tough thing to make myself do, since I feel it’s important to keep one’s thumb on the pulse of the industry, but I simply must cut back. I just won’t get anything done otherwise.</p>
<p>One other distraction I’d like to mention — the one hit after I put Google Reader down — is <em>code</em>. How the heck is the <em>code</em> a distraction? Isn’t it the most important part? To answer the latter, in short: No. To answer both questions in detail, the code is <em>not</em> the most important part — it is perhaps the <em>least</em> important part. Code is a <em>distraction</em> to the design process. I heard a tale not long ago (can’t seem to find the link now) where a group of people with no programming skill won a software design competition just by mocking up an interface design on Powerpoint, iterating on the design a few times, and then polishing up their best solution — all the while, the other teams were mapping program features to elements of code and trying to implement before they had ever really fully understood the problem. I didn’t realize what a problem it can be writing code in your mind, pointing out classes and making mental notes about how you might implement a feature along the way while you are still in the design stages. It clogs up the creative pipes and imposes artificial limitations on your design. Coding is almost an afterthought in the full scope of software development — even though it may be the most work-intensive and time consuming step. While you’re designing, strive to put the code completely out of mind.</p>
<h2>Desire</h2>
<p>What do you want to do with your career? What do you want to learn? What do you want to accomplish? These are all <strong>desire</strong> elements of development, and I spend a great deal of time pondering on them.</p>
<p>I’ve been itching to learn a new language, but I can’t decide which one to choose. I try to be forward-thinking without jumping on a bandwagon that’s destined to crash and burn. Node.js is <em>booming</em> right now, but one wonders at its staying power (I’m not experienced enough to make a call like that, and I’m sure the experts would all disagree). Clojure is also becoming prominent. Python and Ruby both seem like good routes to take for the web and each have large, dedicated, and enthusiastic followings.</p>
<p>What about shifting my paradigm? I’ve only really coded much in <span class="caps">PHP</span>, JavaScript, and Java. They’re all fairly similar languages, with object-oriented characteristics. Maybe I should learn Clojure or Haskell and look at computer science through functional programming glasses for a time? Would that give me a new perspective, or just fog things up?</p>
<p>Do I want to work for a big consulting firm? Do I want to start my own local development business? Perhaps I could make it as a lone-wolf, with several web or mobile apps trickling in small profits, or as a free-lance web developer. Perhaps all of those things (maybe not at the same time, and/or provided big consulting firm doesn’t own my weekend code, as some do).</p>
<p>There’s a long list of <em>wants</em> in a person’s career, just as their are in everyday life. Filtering out the fluff to get to the truly important things is no easy task. As such, the jury is still out on my development desires, but I’ve got plenty of time to try some things and figure it out. Perhaps I should <em>iterate</em> on a few different paths and see where they take me. *chuckle* (My apologies for that.)</p>
<h2>Conclusion</h2>
<p>If you haven’t noticed, all 3 of the D’s are pretty closely related. Desire has heavy elements of distraction and a bit of dread woven in. Dread is also a source of distraction, and distraction is often the product of dread or desire. All of these things pretty much center around emotion, and when you think about it, it’s funny how emotion can play any role at all in Computer Science — an area of supreme logic, structured procedures, and rational thinking. The human element knows no bounds, I suppose.</p>
<p>It’s my belief that recognizing these barriers to forward movement empowers me to avoid them. Now I can look where I want to go, instead of focusing on the obstacles — and in my experiences, you pretty much go where you’re looking. And with that, I think it’s time to <em>go</em> — I’ve got some development to do!</p>ITEC 370 - Software Engineering I - Postmortem2011-05-10T00:00:00-04:00http://sdsalyer.com/2011/05/10/itec-370-software-engineering-i-postmortem<p>I’ve just wrapped up my first <em>iteration</em> of Software Engineering at <a href="http://www.radford.edu">Radford University</a>. I’m theoretically a Junior there in Computer Science, with dual concentrations in Software Engineering and Database as a nontraditional distance education student. Not necessarily the path I would have chosen for myself, but I’m learning it may pay off far more for me in the end than the more Math-centric “Computer Science” concentration (the only real difference is 3 extra math courses). I was pretty upset for a while that said concentration was not offered as a distance course, but the more interested I became in Software Engineering (and the more I saw data that software engineers make more bling than programmers), the more grateful I was that I had been unwittingly pointed down that road. Things happen for a reason, my friends.</p>
<h2>The Project</h2>
<p>I set up a simple page for our project at <a href="http://www.sdsalyer.com/etc/itec_370/">http://www.sdsalyer.com/etc/itec_370/</a></p>
<p>We basically went through the standard Planning, Requirements Analysis, Design, and Development phases in a small (5 person) team. Our “client” (the professor) was a grocery supply owner, and he wanted an application where people could create meal plans for themselves, manage recipes, set nutritional goals, and ultimately use those tools to generate a shopping list so the user could easily order from his store.</p>
<p>This was my first experience going through a formal software development process. I hated the course the first half of the semester, but along the way I realized I was learning more with the “real-world” experience of developing software for a client than I had at any point previous in my collegiate career. I really enjoyed it in the end and I’m actually looking forward to taking Software Engineering II and <span class="caps">III</span> as part of my concentration.</p>
<h2>The Postmortem</h2>
<p>The final assignment for the course was writing up a <a href="http://www.codinghorror.com/blog/2006/11/the-project-postmortem.html">postmortem</a> for the project. Sounds pretty grim, but it’s really just about taking a step back, looking at everything you did in the project, and analyzing what you could do better in the future. In other words, it helps you figure out <em>what you learned</em>.</p>
<p>I will let the postmortem speak for itself:</p>
<p><hr /></p>
<h2>Cooking to Goal Postmortem</h2>
<h3>1 – Introduction</h3>
<p>The Cooking to Goal project was a Software Engineering effort aimed at creating a program to help users easily manage their nutritional goals by automatically scaling portion sizes of selected recipes to meet those goals. The user could enter their own recipes, then create a meal plan with those recipes, and finally, with a click, scale those recipes and generate a weekly shopping list for the necessary ingredients.</p>
<h3>2 – Things We Did Right</h3>
<p><strong>We had a great team.</strong> Not really a factor we had under our control, but I felt the quality of our people was worth mentioning. Not everyone on the team was at the same level of hard technical knowledge, but we all brought something unique to the table which helped us mesh rather well and allowed us to delegate and tackle most of the required tasks quickly and efficiently.</p>
<p><strong>We worked well remotely.</strong> Despite being geographically distributed and unable to meet face-to-face, we managed this problem very well. We set up a Google Group, which effectively gave us a mailing list so we could easily communicate among everyone in the group at once. The real kicker, however, was the Google Docs suite of online MS Office clones. Docs allowed us to store all of our files online, manage their permissions, organize them, share them, and best of all, modify them simultaneously in real time, with a chat feature to boot. We would often have one person working on one section of a document while another worked in a different area, with someone else reviewing the work being done, and all the while, we could communicate about what we were doing in chat. It was really an indispensible tool for collaborating, and best of all, it was free.</p>
<p>Equally as wonderful was access to the Adobe Connect (formerly Breeze) group meeting software provided to us by the college. This gave us further access to one another with additional features such as audio and video communication, the ability to share our desktops (and thus, any software or document on our computers), and even allowed us to record our meeting sessions for later review. Without Connect and Docs, we really would have struggled to work cohesively as a geographically distributed team.</p>
<p><strong>We met all of the deadlines.</strong> We spent some hectic evenings cranking out design documents, but we made the deliverables, come hell or high water, every time. The nitty-gritty work ethic of this team was outstanding. Everyone really stepped up when we were in a pinch.</p>
<p><strong>The <span class="caps">GUI</span> looked great.</strong> The final result of the Cooking to Goal application, in this respect, exceeded my expectations. The program ended up a much more modern-looking “web layout” – styled (or .Net-inspired) application, with which, I think today’s users can easily relate and feel comfortable at first glance. My vision for the product was much simpler, and conformed to the basic Java <span class="caps">GUI</span> applications I was used to seeing in textbooks – rather boring and uninspired, though very utilitarian.</p>
<h3>3 – Things We Did Wrong</h3>
<p><strong>The <span class="caps">GUI</span> looked great.</strong> While the interface turned out great, it went against everything we had designed and planned for. It looked nothing like the drawings we made, and even worse, its creation introduced complexity by bringing another <span class="caps">IDE</span> into the equation. We had been using Eclipse, but now Netbeans was being used to create the interface. With Netbeans came additional “.form” files for every <span class="caps">GUI</span> class and additional settings and project files for the <span class="caps">IDE</span>, which cluttered up the repository. And while Netbeans’ <span class="caps">WYSIWYG</span>, drag-n-drop <span class="caps">GUI</span> editor was easy to use, the code it generated was hard to follow (and if you tweaked certain parts of it, Netbeans wouldn’t let you visually edit it anymore). We should have standardized on an <span class="caps">IDE</span> and stuck to what we designed – even if it meant a less inspired <span class="caps">GUI</span>.</p>
<p><strong>We should have implemented a formal code review and approval process.</strong> We used a revision control tool coupled with an online code repository service to help us manage our source code. This was both a blessing and a curse. I think we should have required group approval of code before it was allowed to be pushed to the shared repository, or restricted access to the repository in some way, rather than allowing any team member to update the code base at any time. Since no such safeguards were in place, it was far too common of an occurrence to sit down for a coding session, pull in the previous night’s code changes, and not recognize a single thing. Then the day was spent, rather than productively continuing work on the code you pushed out yesterday, but instead combing over the changes and trying to re-learn everything that was going on in the source. There were also multiple occasions when the code in the repository did not compile, and that should never happen. This is perhaps our biggest mistake. We should have approved code before making it a part of the application.</p>
<p><strong>We didn’t stick to the plan.</strong> Spending 4/5ths of our time working on project description documents, requirements specifications, design documents, and diagrams galore felt almost like wasted time at the end because we barely stuck to the design we had so meticulously laid out. I realize if there’s a problem in the design, the design should be revisited, but many times, we simply deviated from the design for no good reason. I don’t think a single one of our class implementations carried the same naming convention we designed for it, and we ended up with a staggeringly greater number of classes than we had anticipated. Because of all this, I believe the project became too complex and crept far out of our original scope. We should have iterated back on the design documents, or stuck to them more rigorously (though perhaps that might have been another sort of slippery slope).</p>
<p><strong>We weren’t always on the same page.</strong> I think throughout the project, we all thought we were on the same page. We put our heads together and fleshed out all of the necessary documents. After spending such a great deal of time on these design aspects, in the end, I realized we weren’t really on the same page – we just thought we were. When it was time to start implementing the code, we weren’t seeing eye-to-eye on certain things we thought we had nailed down in the requirements and design phases, but when we started coding, there was too much confusion and dissent about what actually needed to be done. I think a different development method, such as Agile or Extreme Programming may have served us better than the traditional Waterfall method. That way we could start iterating on the code early in the process, instead of hitting a brick wall in implementation at the end – at the point when things should have been crystal clear.</p>
<p><strong>We failed at design because we were coding in our heads the whole time.</strong> While I believe our project was a success and the end result was surprisingly good, we failed at the entire design process on a certain meta-level. Sure, we put in many hard hours slapping things down on paper that looked like a design, but it wasn’t really an abstraction of the problem. We were seeing the whole thing in classes, routines, libraries, and development tools the entire time. I don’t think we ever really put all of that out of our minds and focused on the pure design of the program. All along the way, we were mapping program features to code in our minds (I know this because we were suggesting tools and services and libraries for implementation from day one). We should have forgotten about the code completely – obfuscated it by layer upon layer of abstraction – and focused solely on the user experience and functionality of the program, focused on the design, and then iterated on it and explored other options and iterated on those until we found the best solution. That’s how the best software is built. It makes me wonder if programmers should even play a role in the design process if they can’t not dream in code.</p>
<p><strong>The software didn’t deliver on everything we promised.</strong> A lot of time was spent during implementation in areas out of scope of what we promised to deliver. As a result, we didn’t complete everything we agreed to, leaving some major functionality for “later iterations” of the software. I felt like this was unacceptable, and the delivered program was not a “minimum viable product”, but did have advanced features that, sadly, would not be utilized in the real world since the program does not perform the entire scope of its basic functions. We should have focused on what was important in making the product viable first.</p>
<h3>4 – How We Managed Risk</h3>
<p>This project was a learning experience for all of us. I’m not sure anyone on the team had ever gone through a thorough, structured, team-based software engineering process prior to the class. The whole thing felt risky since we had never done it before. There wasn’t an excess of guidance through the process, so we had to manage ourselves, and often felt like we had our necks stuck out, not knowing whether an axe was about to fall on us or not. While it was a bit uncertain and scary at times, we always rallied together and confidently pushed out our deliverables to the client. Sometimes in business, you just have to jump, even if you can’t see where you’re going to land because standing still is death for certain.</p>
<p>We took a few risks in planning, picking tools and libraries we had never used before, knowing that attempting to utilize them would be a great learning experience for us, but not quite knowing if they would work out, whether in their intended usage or in their actual implementation. There was a very real risk that the libraries would not turn out to be what we had thought or be beyond our technical ability or time constraints to implement, but luckily, their usage was nonessential to the final product. We always had the option that if the library or tool didn’t work out, there was a simpler (though perhaps less desirable) solution in place as a safety net. We didn’t need any external libraries or anything more than a basic text editor to build such a basic program, but we chose to risk utilizing those tools to enhance our learning experience.</p>
<h3>5 – How We Managed Change</h3>
<p>The most unanticipated changes were those we brought upon ourselves in the form of feature creep. We were constantly back and forth about what was going into the program and what wasn’t. The client obviously had a laundry list of things to include, but we agreed only to specific items and they were documented in our requirements and design papers. Still, the undocumented features, and even others we thought would be neat to implement, kept creeping back in over and over again. Several times, both in our design documents and in our code, external features popped up from one place or another, and someone else would have to chime in – Wait a minute, we didn’t agree to implement that or I thought we said that would go in the “next iteration”. So usually, we would have to backtrack a little bit and fix the problem, but in the case of implementation, we ended up further from shore than we realized, so instead of swimming back to England, we had to cross the Channel into France. It wasn’t where we had planned to be, but at least we didn’t drown. Sometimes you have a do-or-die situation, and we managed change by treading water and trying not to die – probably not the best solution.</p>
<h3>6 – Meaningful Conclusions</h3>
<p>This project has been a tremendous learning experience for me – perhaps the most I’ve learned of computer science thus far in my collegiate career. The formal process of planning a project, analyzing requirements, designing a solution and implementing it is something I had never fully considered before. Sure, when I was working on a project, I might sketch out some interface designs (typically for the web) on a napkin or store a few ideas for how to implement something in my head (rarely on paper), but never before had I considered (or even really known about) the software engineering process. I feel like a missing piece has been added to the puzzle – and a very large piece at that.</p>
<p>If I learned anything from going through this process, specifically the traditional Waterfall Method, it would be that said method is not the best, except on very small scale, perhaps even one-man projects. Even then, going linearly through the process, much as our team did, is not sufficient. A software developer must iterate. Iterate, iterate, iterate. And then iterate some more. The Modified Waterfall Method may be a better approach, where returning to previous phases and reviewing and reiterating on those is part of the process. I suspect, though I have not yet fully explored, that other development methods, such as Scrum, Agile, or Extreme Programming might prove to be higher quality approaches to software development.</p>
<p>Perhaps the most important thing I’ve learned during this process (I mentioned it briefly already): The idea that you should put the code completely out of mind until such a time as is appropriate – in the later stages of design and the actual implementation. I’ve read quite a bit outside of my college coursework in the topics of software startup companies (the sort of small companies who come up with great ideas and either dominate some niche with their product or get bought out by Google), software design, and the current trending of software in general (especially mobile and web applications), and it’s become clear to me that programming is perhaps the least important part of developing software. In fact, it’s a common occurrence for a team with zero programmers to win software design competitions, simply by coming up with a design, iterating on it, and, perhaps most importantly, exploring other solutions and iterating on those. That’s the only way to find out what works best, and, in my mind, it is the only way to produce innovative software of the highest quality. How the software is coded – the language and tools used – is becoming less and less relevant, and hardcore, low-level programming skills are less and less necessary as hardware technology increases and software languages evolve to higher levels of abstraction. Perhaps this is why software engineers typically earn far more than programmers: the success of software lies in its design.</p>
<p>We probably made more mistakes than we got things right in this project, and I’m more than OK with that. This was our first turn at software engineering, and what better way to learn the hard lessons, than through our own mistakes. Instead of a flawless run through the engineering process and a perfect end result, we traveled a rocky road and came out with a product that didn’t fully meet our goals, but in many ways surprised us and exceeded our expectations. And going forward, we all now carry with us a set of tools, while well worn through repeated use, are better suited to fulfill our software engineering craft, as well as our career goals and aspirations.</p>
<p><hr /></p>
<p>I hope to have more successful ventures in the future, but I am grateful for the chance to have gone through this process, tough as it was to endure at times. I look forward to bringing you many more postmortems — both for college projects and projects in the real world!</p>The Penguin Plunge: Part 2 - Plunging Pains2011-05-09T00:00:00-04:00http://sdsalyer.com/2011/05/09/the-penguin-plunge-part-2-plunging-pains<p>Now that Ubuntu 11.4 and Windows 7 are installed and happily coexisting on my shiny new machine, I’d like to cover a little bit of the pains experienced in coming to this peaceable (though somewhat imperfect) resolution. Of primary concern is the topic of file systems and shared storage space, and furthermore, the triumphs and tribulations associated with changing to a new, “free” (as in freedom) operating system after many years of acquiescence and abuse. Yes, I <em>do</em> have a flair for dramatic verbiage. Read on!</p>
<txp:output_form form="linux_menu" />
<h2>Shared Space</h2>
<p>If you’ve ever had a roommate, then you know two different people can’t easily coexist together without a few compromises. I suppose the same applies to multi-booting your computer if you intend for the operating systems to share the same storage space — it’s not perfect, but you can make it work.</p>
<p>My original plan was to partition my hard drive into 3 sections: an <a href="http://en.wikipedia.org/wiki/NTFS"><span class="caps">NTFS</span></a> partition for Windows 7, whatever file system Linux liked for its partition (this turned out to be <a href="http://en.wikipedia.org/wiki/Ext4">Ext4</a> — a <a href="http://en.wikipedia.org/wiki/Journaling_file_system">journaling file system</a>), and another <span class="caps">NTFS</span> partition as a shared storage space. In theory, Windows and all its software would go on its drive, Linux and its software would go on its drive, and user files like photos, MP3s, word processing documents, etc., would all go on the storage partition so that either operating system could access those files. Furthermore, I had hoped to map the Linux “/home” directory (or at least my user directory) to the storage partition, and all of that stuff would be there if Windows wanted to use it, or if I decided to change Linux distributions, I could just install to the Linux drive and point the new distro’s /home to the /home on the storage drive. Sounds beautiful, doesn’t it? Sadly, this does not really work out well at all. The reason? The file systems.</p>
<p>Linux can easily read from most any file system. Windows typically requires <span class="caps">NTFS</span> or Fat32 (though I’ve learned there are tools which enable Windows to view ext-family file systems). So, for a shared space, you need to use <span class="caps">NTFS</span>. The problem is, you can’t easily map your /home directory to the <span class="caps">NTFS</span> partition, because, as I understand it, while Linux can read most any file system, it pretty much requires that ext-family file system (and its user read/write permissions) for OS-specific things, like the /home directory. You can see there’s a problem — the two operating systems can’t agree on a file system.</p>
<p>In walks compromise. In the end, I decided to keep the 3-partition layout, and though it didn’t turn out as beautiful a solution as I intended, it still works. After following <a href="http://ubuntuforums.org/showpost.php?p=5341821&postcount=4">some helpful tips</a> to get my <span class="caps">NTFS</span> storage partition to mount at boot up, I copied the visible folders (the standard Photos, Music, Videos, Documents, etc.) to the storage partition, deleted them from my /home directory, then created <a href="http://en.wikipedia.org/wiki/Symbolic_link">symbolic links</a> in my /home directory to point to the same folders on the storage drive. I don’t think Ubuntu views these folders the same as it did before (it used to give them spiffy icons and they listed in the Places menu as an obvious part of the OS, but now neither are true), but their functionality is still there. Windows and Ubuntu can both read from storage, so I don’t have to duplicate my data. In the end, that’s the main benefit, and it is there, so I can work with it (at least for a semester).</p>
<h2>Call Me Dorothy</h2>
<p>…because I’m not in Kansas anymore. I think Ubuntu strives very hard to provide Windows (and perhaps Mac) users ready-made familiarity to ease the transition into Linux. They do a lot of things similarly to the more common OS’s and it really helps. There’s a “task bar” with a system tray complete with time and date. There’s a “start menu” of sorts to get to your applications and system settings (though with Unity, you hardly need it). The <span class="caps">GUI</span> is pretty familiar as well — you have “windows” you can move around, resize, maximize, close, etc., and you have the typical File, Edit, etc. menus at the top (though they sit on the “task bar” instead of on the actual window); you can even do spiffy things like snap two windows side-by-side by dragging them to the left and right side of the screen, or maximize them by dragging to the top (just as in Windows 7). Many of the standard keyboard shortcuts (<span class="caps">CTRL</span>-C to copy, <span class="caps">CTRL</span>-V to paste, things of that nature) are there as well. It’s familiar and comfortable and usable in those respects, and it serves to make me feel more at home after using some version or another of Windows for the past 16+ years (before then it was <a href="http://en.wikipedia.org/wiki/Commodore_64">Commodore64</a>!).</p>
<p>It’s hard to get past the fact that the underlying operating system — the bones beneath the flesh — are vastly different, however. I don’t <em>quite</em> feel as comfortable just <em>doing normal stuff</em>, because it’s still a little new and uncertain feeling. I’m sure it just takes some getting used to and in short order I will be my regular, productive self. I don’t see this sticking around as a problem for long.</p>
<p>In regards to Unity, I think I like it. The “launcher”, as it’s called, felt a little obtrusive at first — sitting there, clinging desperately to the left side of my desktop — but I soon fell into an easy rhythm with it. The “dash” is pretty neat, too — you can quickly search for and access your programs from there (or download new ones). I’m still a little unsure about the mail client and social networking stuff built into the OS (the twitter broadcast box seems a little buggy), but the Banshee music software and its integration into the “task bar” is fantastic. I thought I would miss the Creative software I had on Windows XP, but Banshee is just as good — better, even. While an image viewer (two, actually) are present by default, neither the Image Viewer or Shotwell seemed to have a resize function. Maybe I just missed it, but it’s moot point — I’ll probably install GiMP (through I wish I could still use IrfanView — anyone know of a similar Linux app?).</p>
<p>I’m still a little uneasy with installing software. For the most part, the Software Center is nice and easy, but it doesn’t seem to be all-inclusive. For example, I like to use Chrome as my default browser, but only Chromium was available (though they’re pretty much identical) — I had to hit the Google website for Chrome to get it, which felt odd. It’s great that there’s a Development Tools section in the Software Center — very encouraging. I’ve also grabbed a few things using <a href="http://en.wikipedia.org/wiki/Advanced_Packaging_Tool"><span class="caps">APT</span></a> on the command line. I’ve not yet installed Eclipse, but I’ve read that using apt-get may not result in the latest version, so I should download it directly from the website (it also seems to be available in the software center). All things considered, it’s great to have multiple avenues to find and install software, and furthermore, I’m pretty impressed with the offerings available in Linux. I haven’t noticed any real deficiencies thus far. I really don’t expect I’ll encounter any, games withstanding (not that there aren’t games for Linux — there are <em>many</em> and the list is rapidly expanding, but Windows is still the PC-gaming king for sure).</p>
<h2>Conclusion</h2>
<p>Honestly, I’m loving Ubuntu so far, but it’s really too soon to draw any firm conclusions. I haven’t done much in the way of “computing” as yet, aside from browsing the web and playing some MP3’s. I’ve not installed any development tools (much less do any development), perform any word processing or spreadsheet-ing, process some photos, try to use <span class="caps">WINE</span>, see if Flash support is as bad as I’ve heard, or anything of that nature — any of which could be a potential deal breaker (though I find it doubtful). I just need a lot more good quality time with Linux and the results of which will be divulged in my next (few?) post(s). I’ll see you again soon!</p>The Penguin Plunge: Part 1 - The Install2011-05-09T00:00:00-04:00http://sdsalyer.com/2011/05/09/the-penguin-plunge-part-1-the-install<p>Something terrible and wonderful happened to me yesterday. I woke up early and set about the process of backing up a few recent files to my external hard drive in <a href="http://www.sdsalyer.com/blog/17/the-penguin-plunge-part-0-the-upgrade">preparation for the new build</a>. As I was sitting there, watching the file transfer progress, a curious thing occurred: my PC locked up — big time. The classic CTRL+ALT+DEL combo produced no results, so after a few moments, I did a hard reset. What did I see when my <span class="caps">BIOS</span> loaded up? No hard drives were recognized!</p>
<p>I’m not sure if the raid controller failed, or if one of the disks went kaput (in Raid 0, data is striped across both disks — if one drive dies, you loose everything), but rather than cry out in desperation and despair, I chuckled to myself. I had almost all of my data backed up from a week previous, and the new computer components were scheduled to be delivered that afternoon! I’m not sure if I’m the luckiest S.O.B. on the planet or if I have unwittingly tapped into some sort of hidden psychic ability, but it was a purely ironic happening. After a good laugh, I spent the next 30 minutes or so disassembling the PC and cleaning the chassis to make a nice cozy home for the new parts. Read on to see how the component and dual-boot install turned out…</p>
<txp:output_form form="linux_menu" />
<h2>It’s Alive!!!</h2>
<p><a href="http://www.newegg.com">Newegg</a> is the best. I ordered the parts on Monday afternoon and they were ready and waiting when I returned home from work on Wednesday afternoon. The installation of the components went swimmingly. I was a little uncertain about the <span class="caps">RAM</span> installation since I was used to seeing dual-channel modules installed side-by-side, but the new <a href="http://www.newegg.com/Product/Product.aspx?Item=N82E16813131647">Asus motherboard</a> alternated the channel <span class="caps">DIMM</span> slots. At least I hope I got that right (seems to work!). Other than that, the only real problem encountered was the fact that the <a href="http://www.newegg.com/Product/Product.aspx?Item=N82E16817371016">Antec power supply</a> only had 1 of the mini 4-pin floppy drive connectors, and I needed one for the floppy drive and one for the front I/O panel of the returning Audigy 2 ZS sound card. The motherboard has onboard sound (it may even be equivalent or superior to the Audigy, but I haven’t taken the time to research it), but I wanted to keep the front IO panel and I couldn’t really think of a good reason (other than tradition) to keep the floppy drive — especially since you can just as easily boot from CD or <span class="caps">USB</span> these days. So, the floppy went the way of the dodo.</p>
<p>I was impressed with the heatsink/fan combo that came with the <a href="http://www.newegg.com/Product/Product.aspx?Item=N82E16819103808">Phenom II X4</a>. It’s a good size and doesn’t look bad at all with nice copper tubing going this way and that. I typically opt for a third-party hs/f but I think this stock unit will do just fine for my purposes (I don’t plan to overclock, anyhow). It was a cinch to install, though I was a little wary of the flimsy lock-down piece. It held up fine, though and attached very securely on top of the <span class="caps">CPU</span>.</p>
<p>The <a href="http://www.newegg.com/Product/Product.aspx?Item=N82E16814102873">Sapphire Radeon HD 5770</a> video card was a steal at $114 and I speculate it’s identical to the <span class="caps">XFX</span> model, but when I opened the box I knew why the Sapphire card was $20 cheaper. It came with almost nothing (in the past, with Sapphire or otherwise, I’ve always received a ton of extra software, games, plugs and cables, etc.) aside from a very cheap looking <span class="caps">VGA</span>-<span class="caps">DVI</span> converter, a molex-to-6-pin <span class="caps">PCI</span>-E power connector, and a “manual” which states (and I am <em>barely</em> paraphrasing here), “1. Install Card, 2. Install Drivers,” in 17 languages no less. That’s it. I didn’t really need anything other than the card, but it was still a bit underwhelming.</p>
<p>In the end, I’m quite pleased with all of the components I selected, and best of all I didn’t blow the budget. Not a single problem out of any of the new parts thus far (granted, it’s only been a few days — <em>knock on wood</em>). I did discover, belatedly, that the motherboard <em>does indeed</em> have an <span class="caps">IDE</span> connector, though it wasn’t listed in the specs. I probably didn’t have to order a new <span class="caps">SATA</span> <span class="caps">DVD</span>-RW drive after all, but it’s not worth the effort to send it back for a measly $20. I kinda wished I had known, though, and I might have put that money towards some new case fans (they run fine, but after 6 years, you never know when they might crap out), but I can always swap those down the road if necessary.</p>
<h2>Windows 7 Home Premium 64-bit</h2>
<p>As I mentioned, I sprung for a copy of Windows 7 Home 64-bit, despite the purpose of this experiment being to run Linux as the primary OS. My main motivation for doing so was to play a few Windows-only game titles if I ever find the spare time. Seeing as Windows likes to overwrite any existing boot manager (without your permissions, no less), you pretty much have to install Windows first, or spend some time hacking the Master Boot Record if you install it after another OS. So, it was the first to go into the machine.</p>
<p>I used Windows’ install utility to divvy up my <a href="http://www.newegg.com/Product/Product.aspx?Item=N82E16822136544">640GB hard drive</a> into 3 roughly equal chunks. One partition for Windows 7 (make that two partitions since Windows wanted another 100MB chunk of the pie as a restoration drive or some such), one for Linux, and a common storage area. This probably isn’t the ideal setup. I imagine I could get by on 100GB of Windows + game installs, and I’d wager I can set Linux up on 20GB or less, then configure the /home directory to point to the storage partition. For now, I’ll let it ride and if it turns out to be a problem at the end of the semester (or if either OS outlives its usefulness!), I’ll do another clean install and repartition accordingly.</p>
<p>The rest of the Windows 7 install was pretty standard fare. What language do you speak? What time zone do you live in? Turn automatic updates on? — things of that nature. It took exactly 24 minutes, two reboots, and a bit of twiddling my thumbs to get to the desktop. There I sat at a comical 800 × 600 resolution on a 23", 1920 × 1080 native resolution monitor. The first order of business was to install the video card drivers, but before I could do that, I had to install the <span class="caps">LAN</span> drivers (so I could hop on the <span class="caps">ATI</span> website and get the latest ones), which was a piece of cake with the CD accompanying the motherboard. While I was at it, I installed a few other essential drivers from the CD.</p>
<p>Once the Catalyst drivers were installed, then it was smooth sailing. I was able to customize the desktop to suit my liking and get Chrome (default), FireFox 4, and IE9 all downloaded and running, as well as a free version of Comodo Internet Security.</p>
<p>I don’t have a <em>ton</em> of experience with Windows 7. I’ve been an XP fanboi for quite some time. It was on my old build, and it’s on my work PC. My laptop came pre-installed with Vista 32bit (and 4GB of ram, which it couldn’t fully utilize due to the 32bit OS), which I upgraded to Windows 7 64bit less than a month ago. I hate to admit it, but I like Windows 7. It’s nice and clean and easy (for the most part). All of my peripherals worked immediately — all I had to do was plug in my Canon iP4500 printer, turn it on, and within seconds it was fully installed and ready to go. I like this aspect of the OS, but I’m always wary of these automatic features (how do I <em>know</em> it’s getting the right, best, most current driver?) which don’t always give the user much choice. I suppose that’s where the appeal of Linux comes in.</p>
<h2>Ubuntu 11.4 Desktop 64-bit</h2>
<p>As I mentioned in the <a href="http://www.sdsalyer.com/blog/16/the-penguin-plunge-making-the-switch-to-linux">Intro post</a>, the release of “Ubuntu 11.4 ==”Natty Narwhal"== ":http://www.ubuntu.com/ubuntu/whats-new coincided perfectly with the end of the semester, and the beginning of the plans for this experiment. I already had openSUSE on disk with plans of dual-booting my laptop, but in the end, decided I’d go with the current king of Linux for this install, so naturally I downloaded and burned an install CD prior to chopping up the old PC.</p>
<p>I’m committed to trying Ubuntu 11.4 for at least a while. I have some reservations, though, from things I’ve been reading online about Ubuntu’s new desktop shell, Unity (which is replacing <span class="caps">GNOME</span>). This being my first real trial period of regular Linux usage, I want the experience to be <em>pure</em>. If Unity in 11.4 isn’t working out for me, I may opt to switch to another distribution, such as openSUSE (which I conveniently already have on disk) or Linux Mint (which is an Ubuntu derivative, but still supports <span class="caps">GNOME</span>). I think you may also have the choice to revert back to the “Classic” (which implies <span class="caps">GNOME</span>) Ubuntu experience in 11.4. We’ll just have to see how it goes. I suppose the desktop environment is only a small piece of the pie as far as reasons to use Linux go, so if Unity sucks, it’s not like you just paid $120 for Windows Vista to find out it sucks — it’s free and you have many options if you don’t like what you see. How cool is that?</p>
<p>So, installing Ubuntu is a mixed experience. I popped the CD in and booted up, then chose to “Try Ubuntu” which lets you explore the LiveCD at your leisure. This is a great feature, because from the LiveCD I am able to browse the internet <em>while Ubuntu is installing</em> — take that, Microsoft. I went ahead and fired up the install and started adding to this post, and was also able to look up help online while the install was going on.</p>
<p>One point of confusion for me right off the bat: partitions. I knew I needed a space to install Ubuntu and a space for a “swap” drive (basically, virtual memory). I also wanted that “storage” drive to share between Windows and Ubuntu. The partitions I made during the Windows 7 install were still there, of course, but I decided to delete the two 200GB partitions I set up and shrink the Linux install down, leaving more room for the shared storage space. I figured 50GB sounded like more than enough room for Ubuntu (the installer only asks for 4GB), so I deleted the those 2 partitions and created a new one for Ubuntu. There, I was not sure what to do: I made the new partition a primary partition, set the mount point to “/”, and just left the file system as “Ext4”. Hopefully that’s good and well. I couldn’t figure out how to create an <span class="caps">NTFS</span> partition for the storage space, so I left that for another day. I had read the installer would create a swap drive for me, but when I tried to move forward, it suggested I create one — so I did, another 8GB partition created.</p>
<p>The rest of the install was a piece of cake. Ubuntu did its thing, and I typed up the previous two paragraphs. Now it’s time to reboot and see what happens…</p>
<p>[several days later…] I goofed on my partitioning and ended up redoing it with <a href="http://gparted.sourceforge.net/">GParted</a> — which conveniently comes packed with the LiveCD. I mistakenly assumed that Linux could read and write to most any file system, specifically <span class="caps">NTFS</span> (which Windows requires), and this later turned into a problem for me. In the end, I wound up with a 100MB Windows “restore” partition, a 200GB Windows 7 partition (probably way too big), a 50GB Linux partition (probably too small), which is split into 42GB install and 8GB swap logical drives, and finally a “storage” partition, which takes up the rest of the 640GB disk and is <span class="caps">NTFS</span> files ystem so Windows and Linux can both read it (this didn’t turn out the way I had hoped, but I’ll get to that in a future post).</p>
<p>So, once that was all straight, I had to reinstall Ubuntu. Again, no problems and I’m quickly becoming an expert on installing Linux. Once Ubuntu booted up for the first time, it applied some updates I opted to download during the install, and also suggested I install some “additional drivers” — <span class="caps">ATI</span> Catalyst — which I did. I think it does not install these without your consent due to software licensing (Ubuntu only comes packed with “free”, as in freedom, open source software).</p>
<p>Magically, everything worked fine. I was surprised to find that my Canon iP4500 printer was supported and it installed easily. My sound worked (I did have to change one setting to use my Audigy as output rather than the onboard sound, but this was a piece of cake). My mouse worked (though somewhat limitedly — the front/back buttons on the side work, but the scroll up/down buttons above and below the wheel don’t seem to work — I’m sure there is some fix for this but I haven’t explored it yet) . Even my 1TB Western Digital external <span class="caps">USB</span> hard drive was auto-mounted and readily available when I plugged it in. Grub worked flawlessly and my Windows 7 install is unharmed — I can boot to either OS easily, and the default is Ubuntu. It was all much smoother than I had hoped — just as it should be.</p>
<p>I went through every item in the System Settings page (accessed through the “power” button menu), which is similar to the Control Panel in Windows, just to familiarize myself with things. Settings seems pretty straightforward and I wasn’t terribly confused at any point. I spent a bit of time in the Appearance window, figuring out what colors and controls I liked best (it’s amazing how easily and quickly you can switch between themes and download new ones online). I was glad to see it was no problem at all to move the window controls (minimize, restore, close) back to the more familiar top-right (by default in Ubuntu, they controls on the top left). And if you’re not comfortable with the edgier Gnome themes, you can easily switch to a Windows 7 or MacOS-styled theme from online with a few clicks. It’s great!</p>
<h2>Conclusion</h2>
<p>I’m very pleased with how the computer build and dual-boot installation went. It really couldn’t have been smoother or simpler on either end. If I would proffer any advice for those wishing to go the dual-boot route, I would recommend reading up a bit on partitions and file systems and I would use GParted for creating them from the start. Spend some time thinking hard about how you want to divvy up your drive(s) and consider the implications of your choices — <em>especially concerning any shared storage space</em>. Windows and Linux use different file systems (<span class="caps">NTFS</span> vs ext4) and this was the primary source of trouble for me in getting things set up the way I had envisioned. I will get into the details of that in my next post: Plunging Pains. Til then!</p>The Penguin Plunge: Part 0 - The Build2011-05-02T00:00:00-04:00http://sdsalyer.com/2011/05/02/the-penguin-plunge-part-0-the-upgrade<p>You may recall from <a href="http://www.sdsalyer.com/blog/16/the-penguin-plunge-making-the-switch-to-linux">the Intro</a> of my switching-to-Linux series that I plan to upgrade my PC prior to making the switch. This is a pretty major upgrade… Really, it’s more like building a new PC, but reusing some of my old components. Let’s take a look at the old build and then I’ll highlight the changes…</p>
<h2>Out With the Old</h2>
<p>Copied straight from my Newegg history, here’s my original build from 2005/02/07:</p>
<div style="height: 300px; overflow: auto; border: 1px solid #66AAC9; margin-top: 10px; margin-bottom: 10px; padding: 3px;;">
<table cellpadding="0" cellspacing="0" class="cartSum">
<thead>
<tr>
<td class="optCheckbox"></td>
<td>Qty</td>
<td>Product Description</td>
<td>Price</td>
</tr>
</thead>
<tr>
<td class="optCheckbox"></td>
<td class="qty">1</td>
<td>
<dl class="prodDesc">
<dd><a target="_blank" href="http://www.newegg.com/Product/Product.aspx?Item=N82E16813130449" name="CART_ITEM" title="(New Window)">MSI K8T NEO-FSR 754 VIA K8T800 ATX AMD Motherboard</a></dd>
<dd>Item #: N82E16813130449</dd>
<dd>
</dd>
<dd><dd><em>MSI 626 913 0828</em></dd></dd>
</dl>
</td>
<td class="money">
$73.00
<br />
</td>
</tr>
<tr>
<td class="optCheckbox"></td>
<td class="qty">2</td>
<td>
<dl class="prodDesc">
<dd><a target="_blank" href="http://www.newegg.com/Product/Product.aspx?Item=N82E16822135106" name="CART_ITEM" title="(New Window)">Western Digital Caviar Blue WD800JD 80GB 7200 RPM SATA 3.0Gb/s 3.5" Internal Hard Drive -Bare Drive</a></dd>
<dd>Item #: N82E16822135106</dd>
<dd>
</dd>
<dd><dd><em>This item is serviced by the Western Digital. Please call 800 832 4778 for service.</em></dd></dd>
</dl>
</td>
<td class="money">
$130.00<br/><span>($65.00 ea)</span>
<br />
</td>
</tr>
<tr>
<td class="optCheckbox"></td>
<td class="qty">1</td>
<td>
<dl class="prodDesc">
<dd><a target="_blank" href="http://www.newegg.com/Product/Product.aspx?Item=N82E16823109116" name="CART_ITEM" title="(New Window)">Microsoft Natural Multimedia K50-00022 2-Tone PS/2 Wired Ergonomic Keyboard - OEM</a></dd>
<dd>Item #: N82E16823109116</dd>
<dd>
</dd>
<dd><dd><em>Please Note CD keys are listed on the outside of the plastic wrap accompanying your product.</em></dd></dd>
</dl>
</td>
<td class="money">
$22.00
<br />
</td>
</tr>
<tr>
<td class="optCheckbox"></td>
<td class="qty">1</td>
<td>
<dl class="prodDesc">
<dd><a target="_blank" href="http://www.newegg.com/Product/Product.aspx?Item=N82E16826104151" name="CART_ITEM" title="(New Window)">Logitech MX510 931162-0403 Blue 8 Buttons 1 x Wheel USB or PS/2 Optical Mouse</a></dd>
<dd>Item #: N82E16826104151</dd>
<dd>
</dd>
<dd></dd>
</dl>
</td>
<td class="money">
$33.99
<br />
</td>
</tr>
<tr>
<td class="optCheckbox"></td>
<td class="qty">1</td>
<td>
<dl class="prodDesc">
<dd><a target="_blank" href="http://www.newegg.com/Product/Product.aspx?Item=N82E16837102151" name="CART_ITEM" title="(New Window)">Microsoft Windows XP HOME Edition with Service Pack 2 - OEM</a></dd>
<dd>Item #: N82E16837102151</dd>
<dd>
</dd>
<dd><dd><em>Please Note CD keys are listed on the outside of the plastic wrap accompanying your product.</em></dd></dd>
</dl>
</td>
<td class="money">
$92.95
<br />
</td>
</tr>
<tr>
<td class="optCheckbox"></td>
<td class="qty">1</td>
<td>
<dl class="prodDesc">
<dd><a target="_blank" href="http://www.newegg.com/Product/Product.aspx?Item=N82E16835118118" name="CART_ITEM" title="(New Window)">ZALMAN CNPS7000B-AlCu LED 2 Ball Cooling Fan</a></dd>
<dd>Item #: N82E16835118118</dd>
<dd>
</dd>
<dd></dd>
</dl>
</td>
<td class="money">
$39.99
<br />
</td>
</tr>
<tr>
<td class="optCheckbox"></td>
<td class="qty">1</td>
<td>
<dl class="prodDesc">
<dd><a target="_blank" href="http://www.newegg.com/Product/Product.aspx?Item=N82E16827152038" name="CART_ITEM" title="(New Window)">NEC DVD Burner Black IDE Model ND-3520A BLACK - OEM</a></dd>
<dd>Item #: N82E16827152038</dd>
<dd>
</dd>
<dd></dd>
</dl>
</td>
<td class="money">
$62.99
<br />
</td>
</tr>
<tr>
<td class="optCheckbox"></td>
<td class="qty">1</td>
<td>
<dl class="prodDesc">
<dd><a target="_blank" href="http://www.newegg.com/Product/Product.aspx?Item=N82E16817103914" name="CART_ITEM" title="(New Window)">Antec TruePower TRUEBLUE 480 480W ATX12V Power Supply</a></dd>
<dd>Item #: N82E16817103914</dd>
<dd>
</dd>
<dd></dd>
</dl>
</td>
<td class="money">
$90.00
<br />
</td>
</tr>
<tr>
<td class="optCheckbox"></td>
<td class="qty">1</td>
<td>
<dl class="prodDesc">
<dd><a target="_blank" href="http://www.newegg.com/Product/Product.aspx?Item=N82E16814127150" name="CART_ITEM" title="(New Window)">MSI NX6600GT-VTD128 GeForce 6600GT 128MB 128-bit GDDR3 AGP 4X/8X VIVO Video Card</a></dd>
<dd>Item #: N82E16814127150</dd>
<dd>
</dd>
<dd><dd><em>MSI 626 913 0828</em></dd></dd>
</dl>
</td>
<td class="money">
$214.00
<br />
</td>
</tr>
<tr>
<td class="optCheckbox"></td>
<td class="qty">1</td>
<td>
<dl class="prodDesc">
<dd><a target="_blank" href="http://www.newegg.com/Product/Product.aspx?Item=N82E16819103487" name="CART_ITEM" title="(New Window)">AMD Athlon 64 3200+ Newcastle 2.2GHz Socket 754 Single-Core Processor ADA3200AEP4AX - OEM</a></dd>
<dd>Item #: N82E16819103487</dd>
<dd>
</dd>
<dd></dd>
</dl>
</td>
<td class="money">
$172.00
<br />
</td>
</tr>
<tr>
<td class="optCheckbox"></td>
<td class="qty">1</td>
<td>
<dl class="prodDesc">
<dd><a target="_blank" href="http://www.newegg.com/Product/Product.aspx?Item=N82E16821152005" name="CART_ITEM" title="(New Window)">NEC Black 1.44MB 3.5" Internal Floppy Drive - OEM</a></dd>
<dd>Item #: N82E16821152005</dd>
<dd>
</dd>
<dd></dd>
</dl>
</td>
<td class="money">
$7.00
<br />
</td>
</tr>
<tr>
<td class="optCheckbox"></td>
<td class="qty">1</td>
<td>
<dl class="prodDesc">
<dd><a target="_blank" href="http://www.newegg.com/Product/Product.aspx?Item=N82E16820145450" name="CART_ITEM" title="(New Window)">CORSAIR XMS 1GB (2 x 512MB) 184-Pin DDR SDRAM DDR 400 (PC 3200) Dual Channel Kit Desktop Memory Model TWINX1024-3200C2PT</a></dd>
<dd>Item #: N82E16820145450</dd>
<dd>
</dd>
<dd></dd>
</dl>
</td>
<td class="money">
$189.00
<br />
</td>
</tr>
<tr>
<td class="optCheckbox"></td>
<td class="qty">1</td>
<td>
<dl class="prodDesc">
<dd><a target="_blank" href="http://www.newegg.com/Product/Product.aspx?Item=N82E16836121118" name="CART_ITEM" title="(New Window)">Logitech X-530 70 Watts 5.1 Speaker</a></dd>
<dd>Item #: N82E16836121118</dd>
<dd>
</dd>
<dd></dd>
</dl>
</td>
<td class="money">
$52.00
<br />
</td>
</tr>
<tr>
<td class="optCheckbox"></td>
<td class="qty">1</td>
<td>
<dl class="prodDesc">
<dd><a target="_blank" href="http://www.newegg.com/Product/Product.aspx?Item=N82E16824002037" name="CART_ITEM" title="(New Window)">NEC Display Solutions FE991SB-BK Black 19" CRT Monitor Captive 15-pin mini D-SUB connector</a></dd>
<dd>Item #: N82E16824002037</dd>
<dd>
</dd>
<dd><dd><em>Please call 800-632-0487 for NEC 's direct, quick and perfect service.</em></dd></dd>
</dl>
</td>
<td class="money">
$255.00
<br />
</td>
</tr>
<tr>
<td class="optCheckbox"></td>
<td class="qty">1</td>
<td>
<dl class="prodDesc">
<dd><a target="_blank" href="http://www.newegg.com/Product/Product.aspx?Item=N82E16811112025" name="CART_ITEM" title="(New Window)">LIAN LI PC-61 USB Black Aluminum ATX Mid Tower Computer Case</a></dd>
<dd>Item #: N82E16811112025</dd>
<dd>
</dd>
<dd></dd>
</dl>
</td>
<td class="money">
$99.00
<br />
</td>
</tr>
<tr class="subtotal">
<td colspan="3" class="priceRow">Subtotal</td>
<td>$1,532.92</td>
</tr>
<tr class="noTop">
<td colspan="3" class="priceRow">Tax</td>
<td>$0.00</td>
</tr>
<tr class="noTop">
<td colspan="3" class="priceRow"> FedEx 2Day
</td>
<td>$111.91</td>
</tr>
<tr class="noTop">
<td colspan="3" class="priceRow">Order Total</td>
<td ID="ORDER_TOTAL">$1,644.83</td>
</tr>
</table>
</div><p>In 2005, it was <em>uber</em>, trust me.</p>
<p>I also have a <a href="http://support.creative.com/Products/ProductDetails.aspx?catID=1&subCatID=205&prodID=9107&prodName=Audigy%202%20ZS%20Platinum&subCatName=Audigy&CatName=Sound+Blaster">Sound Blaster Audigy 2 ZS Platinum</a> which I ordered from another website since it was out of stock at Newegg at the time, and I was impatient. :)</p>
<txp:output_form form="linux_menu" />
<p>I built this PC at exactly the wrong time, I think. <span class="caps">AGP</span> video cards were still king, but <span class="caps">PCI</span>-E was gaining speed. Rather than shell out the extra cash for a <span class="caps">PCI</span>-E card and a motherboard to match, I opted for the <span class="caps">AGP</span> route… big mistake. After a few months, <span class="caps">PCI</span>-E came to dominance and <span class="caps">AGP</span> cards became more and more difficult to find. I was pretty much at the top of the food chain with a GeForce 6600GT and there was no place to go but sideways.</p>
<p>You know what happened next… After a couple of years, I was ready to upgrade, but to upgrade my video capabilities, I needed a <span class="caps">PCI</span>-E motherboard. To do that, I would have to change my <span class="caps">CPU</span> and memory, and so I was pretty much building a whole new PC instead of simply plugging in a new video card. I just kept putting it off because the costs would have been too high.</p>
<p>Over the past 6+ years, I’ve upgraded the memory a little bit (can’t believe I paid $190 for 1GB of <span class="caps">RAM</span>!), and that’s pretty much it. My epic 19" <span class="caps">NEC</span> <span class="caps">CRT</span> monitor died about a year ago, and after struggling with a 15" Dell <span class="caps">CRT</span> for a while (thanks for the loaner, Dad!), I finally caved a couple months ago and bought a nice <a href="http://www.newegg.com/Product/Product.aspx?Item=N82E16824236117">23-inch Asus <span class="caps">LED</span> <span class="caps">LCD</span></a> with <span class="caps">HDMI</span>, 1080p, and all that stuff. It’s pretty sweet. I highly recommend it.</p>
<h2>In With the New</h2>
<p>Finally, the time is right, and I have a few extra bucks to throw at this major component swap. I plan for this build to last me at least 2 years, at which point I hope to be in a position to upgrade again (I figure $10/week = $1040 = new PC every 2 years) . Six years is just too long in between PC’s (granted, I’ve had a pretty sweet laptop for the past 2 of those 6 years, otherwise the upgrade would have come <em>much</em> sooner).</p>
<p>So, let’s see what’s going to get upgraded. I will pretty much be retaining only the Lian-Li case and its four 80mm case fans, the 3.5" floppy drive (useless as it is these days), and I may see if the Audigy 2 and its front I/O panel will still work with Linux and Windows 7, even though the new motherboard will have onboard sound. My peripherals will stay, but all the other internal components are seeing an upgrade:</p>
<div style="height: 300px; overflow: auto; border: 1px solid #66AAC9; margin-top: 10px; margin-bottom: 10px; padding: 3px;">
<table cellpadding="0" cellspacing="0" class="cartSum">
<thead>
<tr>
<td class="optCheckbox"></td>
<td>Qty</td>
<td>Product Description</td>
<td>Price</td>
</tr>
</thead>
<tr>
<td class="optCheckbox"></td>
<td class="qty">1</td>
<td>
<dl class="prodDesc">
<dd><a target="_blank" href="http://www.newegg.com/Product/Product.aspx?Item=N82E16814102873" name="CART_ITEM" title="(New Window)">SAPPHIRE 100283-3L Radeon HD 5770 1GB 128-bit GDDR5 PCI Express 2.1 x16 HDCP Ready CrossFireX Support Video Card</a></dd>
<dd>Item #: N82E16814102873</dd>
<dd>
</dd>
<dd><dd><a href="javascript:Biz.NewMyAccount.Order.displayReturnPolicyByOrder(0)">VGA Standard Return Policy</a></dd></dd>
</dl>
</td>
<td class="money">
$114.99
<br />
</td>
</tr>
<tr>
<td class="optCheckbox"></td>
<td class="qty">1</td>
<td>
<dl class="prodDesc">
<dd><a target="_blank" href="http://www.newegg.com/Product/Product.aspx?Item=N82E16820231277" name="CART_ITEM" title="(New Window)">G.SKILL Ripjaws Series 4GB (2 x 2GB) 240-Pin DDR3 SDRAM DDR3 1600 (PC3 12800) Desktop Memory Model F3-12800CL9D-4GBRL</a></dd>
<dd>Item #: N82E16820231277</dd>
<dd>
</dd>
<dd><dd><a href="javascript:Biz.NewMyAccount.Order.displayReturnPolicyByOrder(0)">Memory Standard Return Policy</a></dd></dd>
</dl>
</td>
<td class="money">
$39.99
<br />
</td>
</tr>
<tr>
<td class="optCheckbox"></td>
<td class="qty">1</td>
<td>
<dl class="prodDesc">
<dd><a target="_blank" href="http://www.newegg.com/Product/Product.aspx?Item=N82E16817371016" name="CART_ITEM" title="(New Window)">Antec BP550 Plus 550W Continuous Power ATX12V V2.2 80 PLUS Certified Modular Active PFC Power Supply</a></dd>
<dd>Item #: N82E16817371016</dd>
<dd>
</dd>
<dd><dd><a href="javascript:Biz.NewMyAccount.Order.displayReturnPolicyByOrder(0)">Standard Return Policy</a></dd></dd>
</dl>
</td>
<td class="money">
$64.99
<br />
</td>
</tr>
<tr>
<td class="optCheckbox"></td>
<td class="qty">1</td>
<td>
<dl class="prodDesc">
<dd><a target="_blank" href="http://www.newegg.com/Product/Product.aspx?Item=N82E16822136544" name="CART_ITEM" title="(New Window)">Western Digital Caviar Black WD6402AAEX 640GB 7200 RPM SATA 6.0Gb/s 3.5" Internal Hard Drive -Bare Drive</a></dd>
<dd>Item #: N82E16822136544</dd>
<dd>
</dd>
<dd><dd><a href="javascript:Biz.NewMyAccount.Order.displayReturnPolicyByOrder(0)">Standard Return Policy</a></dd></dd>
</dl>
</td>
<td class="money">
$59.99
<br />
</td>
</tr>
<tr>
<td class="optCheckbox"></td>
<td class="qty">1</td>
<td>
<dl class="prodDesc">
<dd><a target="_blank" href="http://www.newegg.com/Product/Product.aspx?Item=N82E16827135204" name="CART_ITEM" title="(New Window)">ASUS DRW-24B1ST/BLK/B/AS Black SATA 24X DVD Burner - Bulk - OEM</a></dd>
<dd>Item #: N82E16827135204</dd>
<dd>
</dd>
<dd><dd><a href="javascript:Biz.NewMyAccount.Order.displayReturnPolicyByOrder(0)">Standard Return Policy</a></dd></dd>
</dl>
</td>
<td class="money">
$20.99
<br />
</td>
</tr>
<tr>
<td class="optCheckbox"></td>
<td class="qty">1</td>
<td>
<dl class="prodDesc">
<dd><a target="_blank" href="http://www.newegg.com/Product/Product.aspx?Item=N82E16813131647" name="CART_ITEM" title="(New Window)">ASUS M4A87TD EVO AM3 AMD 870 SATA 6Gb/s USB 3.0 ATX AMD Motherboard</a></dd>
<dd>Item #: N82E16813131647</dd>
<dd>
</dd>
<dd><dd><a href="javascript:Biz.NewMyAccount.Order.displayReturnPolicyByOrder(0)">Standard Return Policy</a></dd></dd>
</dl>
</td>
<td class="money">
$104.99
<br />
</td>
</tr>
<tr>
<td class="optCheckbox"></td>
<td class="qty">1</td>
<td>
<dl class="prodDesc">
<dd><a target="_blank" href="http://www.newegg.com/Product/Product.aspx?Item=N82E16832116986" name="CART_ITEM" title="(New Window)">Microsoft Windows 7 Home Premium SP1 64-bit English 1-Pack - OEM</a></dd>
<dd>Item #: N82E16832116986</dd>
<dd>
</dd>
<dd><dd><a href="javascript:Biz.NewMyAccount.Order.displayReturnPolicyByOrder(0)">Software Standard Return Policy</a></dd></dd>
</dl>
</td>
<td class="money">
$99.99
<br />
</td>
</tr>
<tr>
<td class="optCheckbox"></td>
<td class="qty">1</td>
<td>
<dl class="prodDesc">
<dd><a target="_blank" href="http://www.newegg.com/Product/Product.aspx?Item=N82E16819103808" name="CART_ITEM" title="(New Window)">AMD Phenom II X4 955 Black Edition Deneb 3.2GHz Socket AM3 125W Quad-Core Processor HDZ955FBGMBOX</a></dd>
<dd>Item #: N82E16819103808</dd>
<dd>
</dd>
<dd><dd><a href="javascript:Biz.NewMyAccount.Order.displayReturnPolicyByOrder(0)">CPU Replacement Only Return Policy</a></dd></dd>
</dl>
</td>
<td class="money">
$129.99
<br />
</td>
</tr>
<tr class="subtotal">
<td colspan="3" class="priceRow">Subtotal</td>
<td>$635.92</td>
</tr>
<tr class="noTop">
<td colspan="3" class="priceRow">Tax</td>
<td>$0.00</td>
</tr>
<tr class="noTop">
<td colspan="3" class="priceRow"> UPS 3 DAYS
</td>
<td>$10.98</td>
</tr>
<tr class="noTop">
<td colspan="3" class="priceRow">Rush Processing (Preferred Account)</td>
<td>-$3.99</td>
</tr>
<tr class="noTop">
<td colspan="3" class="priceRow">Rush Processing</td>
<td>$3.99</td>
</tr>
<tr class="noTop">
<td colspan="3" class="priceRow">Order Total</td>
<td ID="ORDER_TOTAL">$646.90</td>
</tr>
</table>
</div><p>Not bad, eh? I originally went for a little bit higher end build (pushing about $850), but I decided I needed to keep it closer to $500 if at all possible. That turned out not to happen when I realized I’d forgotten Windows 7 would cost me another $100. That left a bad taste in my mouth, especially since I plan to use Linux as the primary OS, but I bit the bullet anyway. The good news is, I hope to regret it and not have to revert to using Windows as my primary OS after this experiment.</p>
<p>As you can see, I’m finally getting that <span class="caps">PCI</span>-E upgrade I needed about 4 years ago. And with it, a new motherboard, <span class="caps">CPU</span>, and <span class="caps">RAM</span>. Apparently <span class="caps">IDE</span> is dead now, so I had to replace my <span class="caps">DVD</span> burner with a <span class="caps">SATA</span> model, and since my power supply only has 2 <span class="caps">SATA</span> plugs and I will need at least 3, that meant it had to be upgraded, too.</p>
<p>I think this will turn out to be a pretty good build for the money. I’m getting quad core crunching power with an L3 cache, a spacious 6 GB/s hard disk, and pretty spiffy mid-range video performance for the money. The power supply is modular and energy efficient, and the memory is cheap and highly rated (I still can’t believe it cost me $190 for 1GB in 2005 and now I can get 4GB for $40).</p>
<p>Next up, I’ll give a brief run through the computer build (the parts haven’t even shipped yet!) and detail the dual-boot environment setup and all the trials and tribulations that go with each.</p>The Penguin Plunge: Making the Switch to Linux2011-04-28T00:00:00-04:00http://sdsalyer.com/2011/04/28/the-penguin-plunge-making-the-switch-to-linux<p>I’ve had penguins on the brain of late. Namely a specific penguin, goes by the name of Tux — the mascot for the <a href="http://www.gnu.org/gnu/linux-and-gnu.html"><span class="caps">GNU</span>/Linux</a> operating system. <em>But, why?</em> you may ask…</p>
<h2>Here’s My Reasoning</h2>
<p>Linux is more prominent than ever, and partaking of one of its many distributions has always been recognized as a sort of rite of passage to prove one’s mettle as a computer geek (especially as a developer). This isn’t a fly-by-night fantasy I’ve recently stumbled upon… it’s more of a longing I’ve had for many years to satisfy some deep, nerd-ish craving, but never <em>quite</em> dared to commit to in any substantial form.</p>
<txp:output_form form="linux_menu" />
<h2>The Experiment</h2>
<p>My plan is to undertake a semester-long experiment, using a Linux distribution as my operating system of choice. This little trial run may create a religious, super-using, free-software zealot!!! Or it may simply peter out, quashing that aforementioned geek urging and turn to it immediately to dust… But come hell or high water, <strong>I’m going to take the penguin plunge</strong>.</p>
<p>Rather than dive right into Linux, however, I’ve decided to hold off until the current semester (Spring 2011) is completed, so I don’t have the headache of juggling the end-of-semester crunch and trying to backup and migrate all of my data, lean a new environment, etc all at the same time. It’s a recipe for stress and disaster. Between semesters, with my brief respite from college coursework (about 5 days), I plan to upgrade or rebuild my aging desktop PC (~7 years old now) and install Linux as the primary operating system.</p>
<p>Linux, in theory, should easily satisfy any modern computing need. While Windows executables will not <em>natively</em> run on the system (it is possible to emulate Windows with Wine or a similar virtualization program), there are many programs which have Linux versions or there is typically an equivalent (and usually free) alternative to popular Windows-only titles: e.g. <a href="http://www.openoffice.org/">OpenOffice</a> or <a href="http://www.google.com/url?sa=t&source=web&cd=1&sqi=2&ved=0CCIQFjAA&url=http%3A%2F%2Fwww.libreoffice.org%2Fdownload%2F&ei=OMa5Taj9M8jg0QG59tXnDw&usg=AFQjCNGVVTibVTg1lYPaoxQDZmzuBDGCwA">LibreOffice</a> are to Linux as Microsoft Office is to Windows.</p>
<p>So for the most part, not only will I be learning a whole new operating system, I will, in many cases, have to learn new software to complete the same tasks I am used to performing in Windows, while simultaneously <em>not failing</em> my college courses. Luckily, many of the free Linux programs are <em>extremely</em> high quality software, written by people who develop software for love, rather than for money. This also comes with the beneficial side-effect of having great software development tools at my fingertips.</p>
<h2>The Rules</h2>
<p><strong>I will use Linux <em>exclusively</em> for my college course work and daily computing needs for the entire Summer 2011 semester.</strong> I will, however, allow myself the caveat that, should a professor require I use specific non-Linux tool, I will do so (this does happen from time to time).</p>
<p>My <a href="http://www.asus.com/Notebooks/Multimedia_Entertainment/M50Vm/">Asus M50Vm</a> laptop has a fresh install of Windows 7 on it and I <em>may</em> install Windows 7 to the new desktop in dual boot with Linux so my wife and I don’t have to fight over said laptop if the caveat activates. This also gives me the opportunity to explore some newer Windows-only games I’ve been itching to try (<a href="http://www.riftgame.com">Rift</a>), but I <em>will not</em> use Windows for any college coursework or regular day-to-day computing.</p>
<p>As part of this experiment, I will share my experiences in making the switch to Linux here on this blog. I haven’t planned out any specific postings, but topics may cover the build and specs of the new/upgraded PC, the Linux installation process, and especially the challenges faced (and hopefully conquered) in settling into the Linux lifestyle.</p>
<txp:article_image style="float:right;" />
<p>The Rules In Summary:</p>
<ol>
<li>Linux Only for ~3 months, except to game or unless ordered by a professor.</li>
<li>Gotta blog about it.</li>
</ol>
<p>Sounds interesting, eh?</p>
<h2>Which Distro?</h2>
<p>This is the only question left unanswered. The Linux distribution you hack on can say a lot about you, and the installation and usage difficulty run the entire gamut from super-easy (<a href="http://www.ubuntu.com/">Ubuntu</a>) to super-hard (<a href="http://www.google.com/url?sa=t&source=web&cd=1&ved=0CCoQFjAA&url=http%3A%2F%2Fwww.gentoo.org%2F&ei=fsa5TYHAHKjg0gGS9u3QDw&usg=AFQjCNGdqX8r5BzAzibUFyqAeJXMpygQYA">Gentoo</a> — or so it’s said).</p>
<p>I think I will probably follow my own advice and start out small for quick, easy success, and then work my way up to more difficult challenges further down the road (<em>if</em> Linux sticks). Ubuntu (and its derivatives, such as <a href="http://www.linuxmint.com/">Mint</a>) are lauded for their ease of installation and user-friendliness, so I will probably begin there. <a href="http://www.google.com/url?sa=t&source=web&cd=1&sqi=2&ved=0CCwQFjAA&url=http%3A%2F%2Fwww.opensuse.org%2F&ei=osa5TevSFKLq0gHr4onXDw&usg=AFQjCNGfMF1xY0SdUc1JtMpy_IASxb8pdg">openSUSE</a>, <a href="http://www.google.com/url?sa=t&source=web&cd=1&ved=0CCkQFjAA&url=http%3A%2F%2Fwww.debian.org%2F&ei=r8a5TdbEJYnL0QHywMjWDw&usg=AFQjCNEK7OGJ4koxFoqkB5cAatZoXSkZxA">Debian</a>, and <a href="http://www.google.com/url?sa=t&source=web&cd=1&ved=0CEkQFjAA&url=http%3A%2F%2Ffedoraproject.org%2F&ei=vca5TZX3GKTh0QHU8PndDw&usg=AFQjCNGVilHCr2Vq2yk56pgdB1EFPXQS9A">Fedora</a> (supposedly the distro used by Linus Torvalds, the creator of the Linux kernel) are up there with Ubuntu as “easy” options as well. I’m not sure if I would ever have the gumption to attempt one of the distributions like Gentoo, which have a scary reputation following them around, but I may eventually take the step up towards the middle of the food chain with a more advance distribution like <a href="http://www.google.com/url?sa=t&source=web&cd=1&ved=0CCgQFjAA&url=http%3A%2F%2Fwww.archlinux.org%2F&ei=68a5TbOLMsfv0gHGpfDbDw&usg=AFQjCNHBJwJZGGNQOe4ZlnbMOM676Q1H7g">Arch</a>.</p>
<p>Really, there’s <a href="http://distrowatch.com/">dozens of distributions</a> (120+) to choose from, but the ones mentioned here are some of the more popular, prominent ones, and likely candidates for me. Right now, I think the <em>likeliest</em> candidate is Ubuntu. The release of its “Natty Narwhal” 11.4 update (released today) coincides quite nicely with the end of the semester. Perhaps it was just meant to be…</p>
<h2>Conclusion</h2>
<p>So, will I become a free-software zealot? Will I ease into Linux like an old man into a warm bath? Will I spend more time tweaking my OS than I do eating, sleeping, working, or breathing? These are the questions that will soon be answered!</p>
<p><strong>Stay tuned, peeps.</strong></p>Creating a Gantt Chart in Google Docs Spreadsheet2011-02-14T00:00:00-05:00http://sdsalyer.com/2011/02/14/creating-a-gantt-chart-in-google-docs-spreadsheet<h2>Whatsa Gantt Chart??</h2>
<p>Don’t you hate it when you need a Gantt chart and can’t figure out how to make one? Me neither! At least, not until I took a course on Software Engineering. A <a href="http://en.wikipedia.org/wiki/Gantt_chart">Gantt chart</a> is essentially a horizontal bar graph that is used as a way to visualize a project schedule, typically used as part of software development. It usually goes hand-in-hand with a <a href="http://en.wikipedia.org/wiki/Work_breakdown_structure">Work Breakdown Structure</a> (<span class="caps">WBS</span>) chart, which is a type of tree diagram that helps to visualize and break down all the tasks involved in a project and what their dependencies are.</p>
<p>Now that we’ve got that out of the way, let’s get to the fun part: How to create a Gantt chart using a Google Docs Spreadsheet with conditional formatting. Oh boy!</p>
<h2>Credit Where Credit is Due</h2>
<p>First of all, I can’t take credit for figuring this out all on my own. I based this design off of <a href="http://www.vertex42.com/ExcelTemplates/excel-gantt-chart.html">Vertex42’s Free Gantt Chart Template for Excel</a>. If you need a more substantial, powerful Gantt chart, I would highly recommend this chart. It’s free for personal use, and for a small fee you can unlock advanced features and open the licensing up for commercial use, if that’s what you’re looking for. (<em>I should note, the Vertex42 spreadsheet does not import properly to Google Spreadsheet format, thus the reason I created this adaptation…</em>)</p>
<p>Also, I should note, there is already built-in Gantt chart functionality in Google Docs Spreadsheets via a “Gadget” from <a href="http://www.viewpath.com">Viewpath</a>. There is a <a href="http://lifehacker.com/#!5070701/add-a-gantt-chart-to-your-google-spreadsheet">five minute tutorial</a> over at Lifehacker if this solution will work for you. However, the trouble I found with this, is that when you try to save your spreadsheet to <span class="caps">PDF</span>, the Gadget goes invisible, so there’s no real way to export the chart (as an aside, my chart does not export well into other spreadsheet software, either, but exporting to <span class="caps">PDF</span> does work). This is the main reason (OK, well it’s pathetic reason, I really just wanted to see if I could make my own) I decided to try making my own Gantt chart utilizing Google Spreadsheet’s built-in conditional formatting. So, let’s get to it…</p>
<h2>My Gantt Chart</h2>
<p>Take a peek at my Gantt Chart Template:</p>
<p><iframe width='100%' height='450' frameborder='0' style="border: 1px solid #FF8600;" src='https://spreadsheets.google.com/pub?key=0AgWYFeYIu0radE5YY0w3eFYzZTNuVDBVRlgwaE9tdHc&hl=en&output=html&widget=true'></iframe><br />
<span class="caps">URL</span>: <a href="https://spreadsheets.google.com/pub?key=0AgWYFeYIu0radE5YY0w3eFYzZTNuVDBVRlgwaE9tdHc&hl=en&output=html">https://spreadsheets.google.com/pub?key=0AgWYFeYIu0radE5YY0w3eFYzZTNuVDBVRlgwaE9tdHc&hl=en&output=html</a></p>
<p>Pretty snazzy, eh? That’s a plain <span class="caps">HTML</span> view of the spreadsheet. If you want to skip the tutorial and just grab the chart, follow <del>the “Edit this page” link</del> <a href="https://spreadsheets.google.com/spreadsheet/ccc?key=0AgWYFeYIu0radE5YY0w3eFYzZTNuVDBVRlgwaE9tdHc&hl=en_US&authkey=CM3-44IJ">this link</a> and you should be able to view a spreadsheet version and copy it into your own Google Docs folder (<em>File => Make a copy…</em>), though you can’t modify my version.</p>
<p>Here’s a brief rundown of the chart. At the top we have the standard “insert your info here” areas for Project Name, Company Name, and a Start Date. I arbitrarily started the chart dating at 1/20/2011, which was the beginning of my Software Engineering course. In retrospect, I should’ve just started with 1/1/2011 for illustrative purposes, but oh well…</p>
<p>Tasks and Subtasks, in this chart, attempt to follow a basic <span class="caps">WBS</span> structure, with “Task” headings taking a <em>n</em>.0 <span class="caps">WBS</span> number and Subtasks follow with an <em>n</em>.1, <em>n</em>.2, etc. The main task rows contain some formulas that work on the range of subtask rows listed beneath them to compute their own info. Don’t change anything but the Task Name and <span class="caps">WBS</span> number (essentially, the same field for simplicity’s sake). As you can see, the Start Date, Duration, and Percent Complete fields are highlighted in a nice, pleasant light green. These are the fields you should be changing (End Date is calculated automatically by adding the duration to the start date — it would be a simple feat to change this functionality to select start and end dates and have the duration calculated).</p>
<p>Google Spreadsheet would only allow me to freeze the first 5 columns, so there isn’t much room for expansion here unless you’re willing to make some compromises. To the right of the frozen panes is where the conditional formatting comes into play. In essence, there is a formula in each cell that compares the date for that column with the fields for that task row and either inserts a blank character ("") if it does not apply to that date range, inserts an X if it does apply to the date range, but a portion of the task is incomplete, or inserts a Y if it applies to the date range and a portion of the task is complete. From there, Google’s conditional formatting does the magic. By going to <em>Format => Change colors with rules</em>, we can set the text color and background color to be the same for each of our 3 conditions (“X”, “Y”, or ""), which hides the characters and gives us the look of a bar graph by filling in the cell. For main tasks, the X’s turn a cell to an almost black gray. For main tasks that a portion has been completed (Y has been inserted), the black gray turns to yellow to indicate progress is being made. Similarly, the blank cell turn a light gray just so you can follow the main task’s row with ease. Subtasks follow the same pattern with a lighter gray, blue, and no colorization for empty cells.</p>
<p>So, how’d we do it? With this formula:</p>
<pre class="brush: js"> if(AND((F$4>=$B5),(F$4<=$C5)),if((ROUNDDOWN($E5*$D5)<=(F$4-$B5)), "X", "Y"),"")
</pre><p>Looks a big mess, huh? Let’s add some whitespace and comments and see if it makes more sense:</p>
<pre class="brush: js"> if( // if is the conditional flag, how it evaluates (T or F) determines what goes in the cell
AND( // AND tells the spreadsheet to logically compare the following two (or more) items.
// If both (or all) of the conditions are true, the if statement evaluates to true
// and it places the first supplied value in the cell ("X", or "Y" - see below), otherwise
// it evaluates to false, and the second element goes in the cell ("")
(F$4>=$B5),
(F$4<=$C5)
),
if( // A nested if statement within the first if statement to determine the first value
(ROUNDDOWN($E5*$D5)<=(F$4-$B5)), // if this statement evaluates to true, this nested if
// inserts a "X" into the cell, if false, a "Y" goes in
"X", "Y"
), "" // If the encapsulating if statement evaluates to false (via the AND() function above),
// then no "X" or "Y" are inserted, instead the final value ("") is inserted, indicating
// this cell is inactive and no colorized by the conditional formatting we set up
) // end
</pre>
<script type="text/javascript">
SyntaxHighlighter.defaults['toolbar'] = false
SyntaxHighlighter.defaults['class-name'] = 'sh'
SyntaxHighlighter.all();
</script><p>Phew! It’s a bit of confusing logic, but it seems to work well (albeit, simplistically). By comparing the current column’s date field (F$4) with the current row task’s start and end dates ($B5, $C5), we determine if we need to do anything to the current cell (ie. it’s within the date range for the task). If not, we insert the null character ("") and move on (which leaves the cell blank). If it <em>is</em> in the date range, we must first determine, via the Percent Complete ($E5) field, whether to color the cell yellow or blue, indicating progress, or leave it dark, indicating no progress. We do this by multiply the Percent Complete ($E5) field by the number of days ($D5) to figure out how many “days complete” the project is across the range of dates for the task. For the sake of simplicity, the <acronym title=") function rounds this down so we don't have to deal with "fractional" cells (we can't colorize a fraction of a cell, only a whole cell -- one solution is to have many cells for each date column, as in Vertex42's Excel template"><span class="caps">ROUNDDOWN</span></acronym>. We then compare this to be less or equal than the date range (the current date (F$4, less the task’s Start Date ($B5).</p>
<p>Obviously, this won’t give us <em>exact</em> results much of the time on the visual side of the chart. I explained this in the template’s Help field: If you have 50% completed on an item that is 5 days duration, 50% of 5 days is 2.5 days; the chart will round this down to 2 days so only 2 out of 5 cells will be shown as “done”.</p>
<h2>Conclusion</h2>
<p>If you can live with this slight inaccuracy of the bar graph, I think you will find that this chart will work well for you. I’m sure there’s a lot of room for improvement, but hopefully it is enough to get your started. And since it is tailored to Google Docs Spreadsheet format, you can easily share it with your friends, colleagues, or teammates, granting them appropriate access to view or modify the graph at their leisure. Several people can even modify the chart <em>simultaneously in real time</em>! A great boon to keeping your project on schedule and keeping everyone informed, cutting down on wasteful progress meetings and sharing the progress instantaneously with everyone you choose, near or far.</p>
<p>I hope this primer on Google Docs Spreadsheet Gantt Charts with conditional formatting has been useful to you. Feel free to copy and modify the spreadsheet as you see fit, with no limitations other than keeping the credits intact somewhere on the document (inconspicuously in a Comment is fine with me — I just want to ensure that Vertex42 gets their due credit for the original Excel spreadsheet my Google chart is derived from). And of course, share this post with your friends and subscribe to my feed!</p>
<p>Til next time!</p>Update and Changes to the Site2011-02-11T00:00:00-05:00http://sdsalyer.com/2011/02/11/update-and-changes-to-the-site<p>Hello internet.</p>
<p>You may have noticed some changes to the site: I’m reworking the look a little bit, I moved the blog off of the entry page, I threw up a temporary contact form while I flesh out a more impressive one, and I’m also working on a portfolio to showcase some of my work.</p>
<p>This is my first blog post in a long while, so here’s an update: I’ve been pretty busy since the last post. I got married. I killed myself on Fall 2010 coursework. I survived the Holidays. I made a trip to Kentucky to visit my newborn niece, Emma. I dove right back in to killing myself with school. If this semester doesn’t finish me off (and it just might), it should be smooth sailing in collegiate waters thereafter, until I graduate in 2012.</p>
<p>As for the future of the blog, I feel like I’ve got a lot to share. I hope to cover more professional topics like web design, scripting languages, programming, software engineering, etc. Thus far, the blog has been pretty personal-development-centric, and I’m sure I will still feel the need to touch on those subjects and more from time to time, but hopefully I can begin moving in a more technical direction with my topics. So, stay tuned for that (I know you’re thrilled)!</p>
<p>Til next time…</p>How to Become an Early Riser2010-09-09T00:00:00-04:00http://sdsalyer.com/2010/09/09/how-to-become-an-early-riser<p>I strive to wake up every day at 5:30AM (if not earlier). I use the term <em>strive</em> here because it doesn’t always happen. I seem to go through phases of waking up early and sleeping in a little longer (sometimes as late as 7:00AM, but this usually disrupts my entire day). It’s something I’m continually working on and it’s something I believe is a key element to being a happy, productive person. Read on to learn more…</p>
<h2>Why Would You Do Such a Thing?</h2>
<p>Despite staying up all hours of the night and sleeping til noon during my teenage years, nowadays I much prefer to rise <em>early</em> — earlier than most people. I would say your average person’s alarm goes off at just the precise time to allow them to get ready for their day — and if they’re lucky, grab some breakfast — before making the mad dash to their jobs (or what have you). It can be a very stressful way to start your day.</p>
<p>Now imagine you had, say, 2 hours before you normally rise to ready for work. What would you do with that time? I use it to exercise and organize my personal finances, and oftentimes to pursue my passions, such as reading and writing. I try to keep a list of things at the ready, outlining what I’d like to do with this time (e.g. writing a letter to an old friend, making sure bills are paid, post-processing photos for printing and framing, <em>building this website</em> etc.). It keeps me on track and it helps to keep me motivated to wake up early. Using these 2 hours, I accomplish a great deal before most people are out of bed. I use this time to chip away at those things I always wanted to do, but never seemed to find the time for before.</p>
<p>It’s a wonderful way to greet the day. You can accomplish anything if you set aside the time to do it. You can enjoy some much needed peace and quiet (or even do some relaxing yoga). You can have a leisurely breakfast with a cup of coffee and the morning paper. Read a book. Start a blog… Almost anything is possible with 2 extra hours in your day — when you’re fresh and bright, early in the morning, rather than tired and dragging at the end of the day. Do this every day and it can easily add up to a whole extra month over the course of a year. [(365 days * 2 hours ) / 24 hours in a day = 30.4 days]</p>
<h2>How Would You Do Such a Thing?</h2>
<p>If you’re convinced this is a worthwhile endeavor — which you <em>must</em> be… you simply have to have the <em>drive</em> to <em>want</em> to do this — then, if you’re anything like me, you’re going to need to use some special tactics to make sure you get up at the time you desire. It is a hard transition and many people have trouble waking up, even after a good 8 hours of sleep. Believe me, I know.</p>
<p>There are a lot of resources on the web for early rising techniques, so <a href="http://www.google.com/search?q=how+to+be+an+early+riser">be sure to check those out</a> . Here are the tactics that work for me (a couple of which I’ve already mentioned):</p>
<ol>
<li><strong><em>Want</em> to get up early.</strong> It’s essential that you want to do this. If you think it’s a good idea, but you’re reluctant, it will never work out.</li>
<li><strong>Plan for tomorrow, today.</strong> While this is good all around advice, we can apply it more specifically to early rising. Have something planned to do in the morning or keep a “To Do” list. Be excited about the possibility of what you can accomplish when you get up in the morning. These are great motivators for getting you out of bed. If you go to sleep at night thinking “Man, I’m just so <em>tired</em>, I could sleep forever!”, you’re going to try to squeeze every last Snooze you can out of your alarm. If you go to sleep thinking of the events of the next day, you will rise prepared to meet those challenges and accomplish your goals.</li>
<li><strong>Visualize waking up</strong>. This might sound silly, but it works for me. As I’m lying in bed at night, I visualize the process that will unfold in the morning: my alarm goes off, I stretch my legs out, I sit up, and I take a big drink of water, and away I go. Some early risers even suggest <em>practicing</em> waking up early during the day when you have some free time. Do this by setting your alarm for a few minutes ahead of now, then lying down until it goes off and instantly sit up and turn the alarm off. This conditions your internal response to the alarm as jumping up out of bed instantly instead of hitting the snooze and rolling over (or whatever your normal routine might be). Visualization is a powerful technique.</li>
<li><strong>Wake up your insides with water.</strong> I keep a glass of water at my bedside for this purpose. Take a few big gulps of water as soon as you wake up and this will “wake up” your insides also, and subtly inform your body that it’s time to get moving.</li>
<li><strong>Go to bed at the same time every night.</strong> Give yourself plenty of time to get ready for bed. It takes most people 30min to an hour to actually get in bed and fall asleep after they decide to go to bed. Going to bed at the same time every night will help you rise at the same time every morning. You can also ensure you get a necessary amount of sleep (6-8 hours).</li>
<li><strong>Use a calendar to keep yourself in check.</strong> The first time I tried waking up at 5AM every day, I used the advice of Jerry Seinfeld. He suggests, for any new habit, you use a calendar and mark a big red ‘X’ on each day that you accomplish your task. The key is to make a chain of X’s and to <em>not</em> break the chain. This worked for me and the calendar on the wall in our kitchen was a constant reminder of my intentions to rise early every day and to track my progress.</li>
</ol>
<p>These are the tactics that have worked for me. Becoming an early riser was no easy task, but it was something I wanted to accomplish, and so I did it. Before, I could sleep through my alarm indefinitely. I often times would hit my Snooze button in my sleep and just keep on sleeping (impressive, huh?). So, if I can do it, I know you can do it, too!</p>
<p>Keep this one thing in mind, however: Sometimes, you just don’t get up! No matter what elaborate plan you make for waking yourself up in the morning, if your body needs sleep, it will get it one way or another. So, don’t feel bad if things don’t work out every time, but don’t give up, either! Early rising is well worth the effort!</p>Grayson Highlands State Park Panorama2010-08-28T00:00:00-04:00http://sdsalyer.com/2010/08/28/grayson-highlands-state-park-panorama<p>Just wanted to share this stitched together panorama I made today from a peak in <a href="http://www.dcr.virginia.gov/state_parks/gra.shtml">Grayson Highlands State Park</a>. Enjoy!</p>
<p style="text-align:center;"><a href="/img/panorama_.jpg"><img src="/img/panorama_sm.jpg" title="Panorama" alt="Panorama" /></a></p>How to Get Started with Exercise2010-08-27T00:00:00-04:00http://sdsalyer.com/2010/08/27/how-to-get-started-with-exercise<blockquote>
<p><cite>Disclaimer: I am not a doctor or health/fitness professional. I’m new to all of this stuff myself and I’m completely unqualified to be giving fitness advice. I’m just a random Joe who would like to share his experience and encouragement with you and hope that you can take the steps to change your life as well. <strong>Please</strong> see your doctor before starting a new fitness routine.</cite></p>
</blockquote>
<h2>Introduction</h2>
<p>So, you’re curious enough to have at least Googled about exercise or you’ve otherwise meandered to my weblog and found yourself reading about it. Are you motivated enough to take the next steps to begin a lifetime of health and total wellness? It’s no easy task to transition from a sedentary lifestyle to one of daily diet and exercise, but the rewards you reap will pay dividends for the rest of your days on Earth. Exercise sharpens not only our bodies, but also our minds, and the benefits are incredible:</p>
<p>Here are 7 major benefits of exercising, from the <a href="http://www.mayoclinic.com/health/exercise/HQ01676">Mayo Clinic</a></p>
<ol>
<li>Exercise improves your mood.</li>
<li>Exercise combats chronic diseases.</li>
<li>Exercise helps you manage your weight.</li>
<li>Exercise boosts your energy level.</li>
<li>Exercise promotes better sleep.</li>
<li>Exercise can put the spark back into your sex life.</li>
<li>Exercise can be — <em>gasp</em> — fun!</li>
</ol>
<p>And there are at least <a href="http://www.google.com/search?q=benefits+of+exercise">a million more reasons</a> to start exercising right away. There’s no reason <em>not</em> to do it — aside from it being difficult to get started. Theodore Roosevelt has the answer to that conundrum: <cite>Far and away, the best prize that life has to offer is the chance to work hard at work worth doing.</cite> There may be no work <em>more</em> worth doing than <strong>investing in yourself</strong> with exercise.</p>
<h2>Change Your Life[style]</h2>
<p>I think the biggest mistake people make when starting out with exercise is an improper mindset. Too often, we want to see an immediate change or have short-sighted goals like, “I must lose 5lbs to get into that dress” or “I need to get ripped for swimsuit season”. While the swimsuit or dress can be a great motivator, <em>things can’t end there.</em> You don’t put forth the effort to lose the weight or tone up only for that single, material goal. <em>You must commit for life.</em></p>
<p>If you do this one thing, commit yourself to a total lifestyle change — from now until you are unable to exercise — you will be amazed with your results. There will be no “time crunch” weighing you down. There won’t be a rollercoaster of weight loss and gain. There won’t be any pressure to perform. This is the promise you need to make to yourself in order to be successful for the long term. It’s no simple thing and it will drastically change your life — but it will be for the better.</p>
<p>Also, keep this in mind: it’s not about the numbers. Your weight, while important to know and a potential motivating factor, is not who you are. Too many factors can affect your weight and it’s not an all-inclusive indicator of your health. It’s easy to become obsessed with figures and pounds, and in the end, it is <em>not</em> what’s important. Your <em>health</em> and <em>how you feel</em> is the reason for exercising.</p>
<p>Needless to say: don’t do drugs — including tobacco (though some alcohols, like red wine, may be beneficial). It’s just common sense. I smoked for 10 years starting when I was a teen, but I haven’t had a cigarette in nearly four years. I was young and stupid. Don’t be like me.</p>
<h2>Educate Yourself</h2>
<p>Now that you’ve made the commitment, it’s time get the facts. You need to educate yourself and learn the basic principles of nutrition and exercise. It is important you learn the answers to these fundamental questions (I’m still learning about them, too):</p>
<ul>
<li>Which foods are good and which are bad (I honestly did not know this for a long, long time — no one ever taught me, or I didn’t care to learn, about nutrition)?</li>
<li>How do calories, fat, cholesterol, and carbs impact your body when consumed?</li>
<li>The different types of exercise and how they benefit you:
<ul>
<li>Cardio/Aerobic Exercise</li>
<li>Strength/Resistance Exercises</li>
<li>Flexibility/Stretching Exercise</li>
</ul></li>
<li>How do I determine what my heart rate should be?</li>
<li>Etc.</li>
</ul>
<p>There’s a mountain of information related to health, exercise, and nutrition. Some of it is common sense (lean meat is healthier than fatty meat, yogurt is healthier than chocolate cake) and some you will struggle with (how many carbs/calories do I need?). Stick to the basics for now and increase your knowledge, bit by bit, over time.</p>
<h2>Diet: It’s Not a Bad Word</h2>
<p>Before you even begin exercising, you need to work to correct your diet. Diet is not a bad word! You don’t have to punish yourself, you just need to limit the bad things you eat and replace them with healthy choices. It’s OK to cheat or treat once in a while — but not at every meal, like so many of us tend to do. I personally <strong>love</strong> chocolate chip cookies and I can’t begin to tell you how hard it is to resist those babies, but I do it because I don’t want to jeopardize all the hard work I’ve done to get in shape.</p>
<p>I don’t want to discourage anyone from exercising, but if you want to see significant changes, you <em>must</em> eat a healthy diet. Sure, some exercise is better than none even if you do eat poorly, but if you don’t commit to the full lifestyle of healthy eating and healthy living, don’t expect to see mountains being moved. What you eat is equally as important (or arguably more so) as the exercise you do.</p>
<p>One of the major things you can do in this area is to stop eating when you’re no longer hungry — don’t keep eating until you’re full! It’s hard to do, and food is delicious, but eating until you’re full is a big “no no”. Combine this tactic of eating less with eating more often — yes, <em>more often</em>! Try to eat 5 times a day — your standard 3 square meals with light, healthy snacks (such as a handful of nuts or a cup of yogurt or a piece of fruit) in between. This keeps you from feeling hungry between meals (and thus, you’ll be less likely to want to chow down to satiate the hunger feeling at meal time), and will also serve to boost your metabolism.</p>
<p>With the method of “eating less, more often” in hand, your next step is to determine how many calories you need in a day (depending on your exercise goals), and try to maintain that until your goal changes. There are plenty of <a href="http://www.google.com/search?q=calorie+calculator">online calorie calculators</a>, and if you have a smartphone, there are also <a href="http://www.fatsecret.com/connected/android">free apps available</a> to help you keep track of your food intake.</p>
<p>Give yourself a break once in a while. Leah and I give ourselves one meal a week (on our typical “date night”) to eat whatever we want. We still try to stop before we’re full, but if the food is bad for us (pizza, cheeseburger, etc.), that’s OK. If we want dessert, we account for that too and either try to be a <em>little</em> more conscious of the meal choice, or leave <strong>lots</strong> of room for the dessert. The most important thing here, other than giving yourself a reward, is that if you fall off the wagon completely, don’t beat yourself up about it too much — just get right back on. We all make mistakes!</p>
<p>Drink <strong>lots</strong> of water. I drink about 2 liters a day, or more. Some bodybuilders drink 1-2 gallons. It’s the stuff you’re made of and it likes to be refreshed. Choose water instead of sugary (or pseudo-sugary) drinks like soda, and if you simply <em>need</em> some flavor, try green tea (I didn’t think I would like it, but I drink it every day now).</p>
<p>Learn to love your vegetables, especially the green ones. They are the most important food you eat and are packed with fiber, vitamins, and minerals. I’ve struggled with this quite a bit, mainly due to having food texture issues (which I’ve slowly been overcoming for several years). You just have to do it. Green beans, peas, and asparagus (which is super easy to roast with garlic powder in about 10 minutes and quite delicious) are some of my favorites, but I’m learning to expand and I don’t often pass up the opportunity to try something new and different.</p>
<h2>Start Out Easy</h2>
<p>Now that all of that is out of the way, it’s time to start exercising! I think it’s <em>extremely</em> important to start out slowly, doing things that are very easy — like walking or beginner yoga. This eases you into the habit of exercising and allows you to enjoy it, rather than dread it — and even better, you can achieve that great positive feeling from setting and accomplishing goals right away.</p>
<p>I urge you to start out this way, if only for a week or two, with something simple like walking (at a brisk pace, to get your heart rate up — leisurely strolling through the mall while window shopping doesn’t count) for 20-30mins at least 3 days a week. After a week or two, ramp it up to 5 or 6 days a week. Eventually you’ll feel ready to expand again and begin craving more… and then you just keep feeding off of that energy, reciprocating it unto yourself, setting new and higher goals and accomplishing them, <em>ad infinitum</em>.</p>
<p>I personally started out with <a href="http://en.wikipedia.org/wiki/Kundalini_yoga">Kundalini yoga</a>, using an hour-long <span class="caps">DVD</span> that is broken up into 30min beginner and intermediate segments. The beginner portion focuses on breathing and alignment of the spine, which I can attest has improved my lung capacity and my posture by leaps and bounds (I’ve been a bit of a hunch-backed sloucher since my teenage years), and my flexibility also vastly improved (I never really could touch my toes until recently). It’s very low impact and relaxing, but it still gets your blood pumping.</p>
<p>After a few days of getting used to doing the beginners routine, I started stretching it for the full hour of the <span class="caps">DVD</span>. The “intermediate” moves were quite difficult for me and my limbs were contorted into positions I did not know were humanly possible — all the while the lady on the <span class="caps">DVD</span> was breaking rules of physics and anatomy simultaneously with her body as I screamed out in pain… Seriously though, it wasn’t that bad. I really enjoyed it and looked forward to it after the first couple of workouts.</p>
<p>I would recommend this form of yoga to anyone who is looking for a very low key way to get started exercising. The folks who made the <span class="caps">DVD</span> say anyone can do it, as long as you can breathe! The <span class="caps">DVD</span> I used is made by <a href="http://www.raviana.com">Ana Brett and Ravi Singh</a>, called Kundalini Yoga for Beginners and Beyond. I don’t think I’ve ever felt better physically or spiritually than after going through the full hour of this <span class="caps">DVD</span>, and I like it so much, I still try to include it in my weekly regimen.</p>
<p>There are tons of home fitness DVDs and equipment, so I urge you to Google these products and read reviews and find out what is right for you. If you want to dive right in to the gym, that’s an option also, but consider taking beginner classes or hiring a personal trainer if you can afford it — that way there’s less chance of injury and a greater chance of success. And if walking is the best you can do, keep on walking! It’s purported that the simple act of fitness walking on a 5-6 day a week basis is enough to reduce the possibilities of premature death and thus increases longevity.</p>
<h2>Keep Raising the Bar</h2>
<p>Once you’re in the habit of exercising regularly and eating right and have made it a part of your daily routine, it’s time to kick it up a notch if you are interested in losing weight and/or building muscle. Walking 30min a day, 5 or 6 days a week is fantastic and a great way to maintain health, but if your goal is to <strong>change</strong> your body, that won’t cut it anymore. You need a more intense workout routine, and most likely a more time-intensive one (ie. 60 to 90 minutes).</p>
<p>If your goal is to gain muscle and “get ripped”, you have to strength train regularly and modify your diet to accommodate this change (more protein and calories). If your goal is to drop 10lbs and “tone up”, you will need to move towards higher intensity aerobic and cardiovascular routines and modify your calorie and carb intake appropriately.</p>
<p>I moved away from the Kundalini yoga to a more physically demanding <span class="caps">DVD</span> program called Power 90. You’ve probably heard of p90x, which is a <em>very intense</em>, not-for-beginners fitness regimen. Well, Power 90 is it’s little baby brother, or predecessor if you will. Power 90 has 2 sets of DVDs, each with a cardio and strength training workout. It was a big leap forward from the yoga but was still quite doable (they encourage you to take breaks and go at your own pace).</p>
<p>I think another important part of the equation for me is visualization. I have several photos printed out of men with desirable physiques, and I spend several minutes each day looking at them and “seeing” my body taking the shape I desire. It might sound funny, but it’s a tactic used by many athletes for various purposes, and more specifically, is used in this fashion by bodybuilders to help achieve their maximum physical potential. It is like programming your body subconsciously to do as you wish, and your mind brings it to fruition.</p>
<h2>Reap the Rewards</h2>
<p>I’ve only been at this stuff for a few months, but I feel amazing and my body is taking shape as well. Since beginning the Power90 series, both Leah and myself have noticed significant changes in my body. The fat around my stomach and chest is withering away and muscles are poking out here and there. It’s very inspiring and keeps me motivated to do more.</p>
<p>Find what works for you. Stick to it. Invest in a complete, balanced diet full of vegetables and a daily exercise routine, and your life will change: your body will change, your mind will change, you will be happier, less stressed, and more motivated to tackle the other important things in your life. You will be balanced and at peace.</p>
<p>So, take the challenge to better yourself. Don’t put it off for another day — you can start right now by working a 20-30min walk into your schedule. Begin your journey towards a life of total wellness. Change yourself for the better. Do it for your loved ones. —Do it for you.</p>Back to School Special2010-08-25T00:00:00-04:00http://sdsalyer.com/2010/08/25/back-to-school-special<p><strong>How’s it going?</strong> It’s been a very, very busy week for me. I’m already pretty desperate for the weekend, but it seems to still be several days away. Funny, that. I figure the last thing someone wants to read about is a laundry list of the things a person does in the day, but for some reason I’m compelled to write about it. So, without further ado, here’s a little glimpse of how a day in the life of me typically goes:</p>
<p><strong>I try to get up at 5:30am every day.</strong> Sometimes it’s just like magic. I wake up a few minutes before my alarm goes off, stretch out my legs a little bit (I seem to have a nagging bout of plantar fasciitis — or some other such stiffness of the arches), and just lay there, slowly waking up. Then my phone goes off (I’ve been using this as my alarm for the past several months — much more pleasant awakening than the raging, incessant scream that most alarm clocks put out these days), I sit up and take a big swallow of water (supposedly this wakes up your insides — seems to work for me) and away I go.</p>
<p><strong>Next it’s time to exercise.</strong> I’ve recently begun down a path towards total wellness. I’m not exactly sure what incited this change in me, but I seem to be driven to get on track toward being healthy — not the least of which means being physically fit and eating right. I started out with a yoga <span class="caps">DVD</span> and have since progressed to a more intense workout <span class="caps">DVD</span> (more on this stuff in a future post). I spend 30 minutes to 1 hour exercising as soon as I get up, 6 days a week.</p>
<p>Once that’s out of the way, it’s time to <strong>fuel up for the day with a healthy breakfast.</strong> For the past couple of weeks my breakfast of choice has been <a href="http://www.thesimpledollar.com/2009/02/20/bulk-breakfast-burritos-convenient-cheap-healthy-and-easier-than-you-think/">homemade breakfast burritos</a> (follow the link for more info). After my workout, I put one of these babies in the microwave and enjoy a tasty, protein-packed breakfast (much needed after the workout). I typically have this with a cup (~8oz) of orange juice and a cup of milk, sometimes a banana also. This gets my day off on the right foot, I think.</p>
<p>After showering and getting dressed, it’s <strong>off to work for 9 hours</strong>. I won’t go into the details of my job, but suffice it to say, I’m going to college for good reason: I’m not exactly thrilled with my work. I don’t think it’s beneath me in the slightest, but I do think at least 80% of the time I find it boring, unchallenging, and unfulfilling. I suppose most people can relate. :)</p>
<p><strong>School is back in session</strong> now, so my day doesn’t end there. I’m currently dual-enrolled at a local community college and a large, further away university (as a distance student). Here’s how that plays out:</p>
<ul>
<li>On Monday nights I have a physical speech class (Intro to Communication) for 3 hours. Needless to say, I’m terrified of this course. I’ve never been terribly outgoing or personable right off the bat (though I’m finding this has changed drastically in recent years for a plethora of reasons), and the thought of standing in front of a room of 20 people with all eyes on me as my knees knock and voice quivers doesn’t exactly sound like a night of fun. However, I want to excel in this course — I’m bound and determined to — and so I’m rewiring some circuits in my brain and doing everything I can to ensure an ‘A’.</li>
<li>The rest of my evenings are “free”, insomuch as I don’t have to go to school, but I am enrolled in 3 more online courses:
<ol>
<li><em>Philosophy:</em> I really enjoy this course, but it’s terribly heavy time-wise due to vast amounts of reading and writing. I enjoy both, so naturally I enjoy the course — I just wish it weren’t <em>quite</em> so time intensive (there’s so many other things I want to read and write about). It’s great stuff, though, and obviously quite thought-provoking.</li>
<li><em>Pre-Calculus II:</em> I have enrolled and withdrawn from this course so many times it’s not funny. I enjoy math, and I’m pretty good at it, I just have a hell of time getting motivated to do it. This is my last chance to finish this course (I also <em>must</em> finish Calculus with Analytic Geometry in the Spring if I hope to graduate then).</li>
<li><em>Discrete Mathematics:</em> Yes… another math course. This is my university course for this semester. I don’t know a terrible amount about it, just that it mainly deals in Computer Science related areas (logic and sets and such).</li>
</ol></li>
</ul>
<p>As if that weren’t enough, <strong>I still have chores to do when I’m finished.</strong> Yesterday, I didn’t complete anything school-wise. After work, I had to pick up some food for our kitties, which meant driving about 20min to the only pet store in the area that caries the food we chose for them (<a href="http://www.naturalbalanceinc.com">Natural Balance</a>). After that, I had to run by the school to get the books I paid cash for flipped over on to my financial aid bill. Once I got home, I had to mow the yard, which had somehow turned into a forest of dense jungle overnight. Around 8:30-ish, just as it was getting dark, I finished up the mowing and came in to make dinner (my first attempt at preparing — and eating — <a href="http://allrecipes.com//Recipe/homemade-black-bean-veggie-burgers/Detail.aspx">veggie burgers</a> ; they were quite good). I think it was about 9:45pm when we actually sat down to eat.</p>
<p>So, when 10pm rolled around, <strong>I pretty much collapsed into a pile of human flesh and bone</strong> on my bed and instantly fell asleep — zero school work or pleasurable reading completed. Days like this are pretty exhausting. It’s a good thing I get the exercise out of the way early on, because I would never have the time or energy to do so later in the day (I may prattle on about the benefits of early rising in a future article).</p>
<p><strong>Despite the hardships, I’m a happy person</strong> — happier than I’ve ever been. After all of the work of the day has been done, I go to sleep looking forward: <em>planning for tomorrow, today.</em> 5:30am rolls around again, and I rise to the occasion once more. :)</p>
<p>- Drew</p>My First *Real* Post (About Me and About sdsalyer.com)2010-08-18T00:00:00-04:00http://sdsalyer.com/2010/08/18/my-first-real-post-about-me-and-about-sdsalyercom<h2>Introduction</h2>
<p><strong>Greetings!</strong> My name is Drew. I am S. D. Salyer. I’m 28 years old. I work full time and go to school full time (Computer Science). I develop websites in <span class="caps">PHP</span>, MySQL, JavaScript, <span class="caps">XML</span>, <span class="caps">AJAX</span>, etc., occasionally and on the side. I have a wonderful and beautiful soon-to-be-wife, Leah. I live in the foothills of the Appalachian Mountains in the Southwestern corner of Virginia (<em>so</em> beautiful and geologically interesting). I am addicted to caffè mochas. I am a reluctant early riser, but I tend to do it anyway (it’s amazing how much more you accomplish in a day if you get up at 5am). I am in the early stages of a bit of a reinvention of myself, which I seem to undertake every few years (hopefully it is an upward spiral). I’m eating healthier and exercising every day and doing my best to be financially responsible (ie. spending less than I earn). I thrive on personal development and trying to be the best person and spirit that I can be. That’s me, in a nutshell.</p>
<p><strong>I love to read</strong>, especially Fantasy and Science Fiction, though lately I am struggling to find the time to do so. The last novel I read for fun was <a href="http://amzn.com/0812550706">Ender’s Game</a> by Orson Scott Card (for the 2nd time), quite a while ago. The last short story I read was <a href="http://dorinta19.bizland.ro/FLOWERS%20FOR%20ALGERNON%20.htm">Flowers for Algernon</a>, by Daniel Keyes (also for the 2nd time – full text at the link), last week. I also read quite a bit of programming and personal development books, such as <a href="http://amzn.com/0596157134">Learning <span class="caps">PHP</span>, MySQL, and Javascript</a> by Robin Nixon and <a href="http://amzn.com/0743269519">The 7 Habits of Highly Effective People</a> by Stephen R. Covey (I actually listened to the audio book of this in my car). I’m eagerly awaiting George R. R. Martin’s <a href="http://amzn.com/0002247399">next effort</a> in the Song of Ice and Fire series (as well as the new <a href="http://www.hbo.com/game-of-thrones/index.html"><span class="caps">HBO</span> show</a> based on the novels).</p>
<p><strong>I enjoy writing</strong> quite a bit also. It may even be my passion — it’s hard to tell (and I’m still trying to figure it all out, just like the rest of humanity). I’m currently a member of an online critique group, so I spend a fair amount of time reading and critiquing other people’s work (critiquing is good <em>writing</em> practice, believe it or not). I have a medium-term goal of publishing a short story in a literary magazine such as Asimov’s or Fantasy & Science Fiction, but mostly I just want to write for me. [That’s one of the main purposes of this weblog experiment (more about that below).]</p>
<p><strong>I’m a web developer</strong> at heart, I think. I really enjoy the whole process of figuring out a client’s needs, imagining the whole thing up, putting it on paper (and in PhotoShop), coding the markup and stylesheets, and then, best of all, performing all the behind the scenes magic with a clever bit of programming. It’s just very satisfying to me to set forth a list of instructions and watching the computer perform them. Very cool stuff.</p>
<h2>About This Weblog</h2>
<p><strong>“This is Not a Blog”</strong>, as George R. R. Martin put it when he created and named his LiveJournal blog in 2005. I always hated the term “blog” and didn’t see why people made such a fuss about “blogging”. I couldn’t figure out why anyone would care what some random Joe’s opinion was about <span class="caps">XYZ</span> topic. Then I discovered some blogs I enjoyed (<a href="http://grrm.livejournal.com/">Not a Blog</a>, of course, and <a href="http://www.thesimpledollar.com/">The Simple Dollar</a> to name a couple) and subscribed to their feeds, and I realized what all the buzz was about. I’ve changed my tune a bit about blogging, but I think I’ll still refer to this site as a weblog or a personal website rather than a “blog”. Hopefully that’s not too uppity. :)</p>
<p><strong>The purpose of this weblog</strong> is primarily for me to have a writing outlet: a soapbox to stand on, a blackboard to teach from, an empty journal to write in… you get the idea. It’s a bit of an experiment and practice in writing, and sharing what’s on my mind or something I think might benefit those with similar interests.</p>
<p><strong>Expect an eclectic array</strong> of posts. My interests are many and varied and I don’t intend to specialize in one topic at the present time. I know a “general purpose” blog won’t go so far as one with a more clever niche, but I’m doing this mainly for me. A small audience would be just fine. Right now, I am simply imagining I have one. :)</p>
<p><strong>My goal is 1 or 2 posts a week</strong>. I’m just going to feel it out for now and see how things unfold. I’m about to begin a new semester at college and my time may be too limited for even 1 or 2 posts a week. Or I may find that I just have so much to say I make time to write several posts or more a week. We’ll just have to wait and see for now.</p>
<h2>Read, Write, and Share</h2>
<p><strong>If you enjoy this site</strong>, please pass it on. Subscribe to my <a href="http://www.sdsalyer.com/rss"><span class="caps">RSS</span> feed</a> (I use <a href="http://www.google.com/reader">Google Reader</a> myself). Tell your friends. Link to articles you enjoy on Facebook. Tweet about it.</p>
<p><strong>I would love to hear from you!</strong> Feel free to comment on posts here on the website. I’ve not got a contact page up and running yet, but that will be my next priority. I’m still learning the ropes and trying to cultivate a following on Twitter, but feel free to follow me there also. I’d love to hear what you have to say.</p>
<p><strong>Thank you for taking the time to read.</strong> If my weblog is not for you, do find another one to follow. If blogs don’t do it for you, then pick up a book or a magazine (or, if you must, an e-book). Just keep on reading, for <cite>“reading is to the mind what exercise is to the body. – Joseph Addison”</cite></p>
<p>Regards,</p>
<p>S. D. Salyer</p>My First Post2010-08-17T00:00:00-04:00http://sdsalyer.com/2010/08/17/my-first-post<p>Greetings Internet,</p>
<p>As the title implies, this is my first post. I’ve been working on this website / weblog design for the past couple of weeks. I originally came up with the idea for the design about 2 years ago and only recently got the notion to complete the layout, register a domain name, and actually <em>do</em> something with it.</p>
<p>The site looks best in <a href="http://www.google.com/chrome">Chrome</a> — which is the browser I’ve been using of late — or <a href="http://www.mozilla.com/firefox">FireFox</a>, my second choice in browsing. I advise against the use of Internet Explorer for <a href="http://www.google.com/search?hl=en&q=why+you+shouldn't+use+internet+explorer">many reasons</a>, but the site should still function properly in any modern browser.</p>
<p>This is just a test post to ensure that everything is working. I will go into more depth as to my reasons and purpose for this site in a future posting, so keep your eyes peeled.</p>
<p>I’m looking forward to the possibilities. :)</p>
<p>Regards,</p>
<p>S. D. Salyer</p>