<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Kev009.com &#187; Projects</title>
	<atom:link href="http://www.kev009.com/wp/category/projects/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.kev009.com/wp</link>
	<description>Speed and Accuracy are fine, kev009 is final: Projects and Ventures of Kevin Bowling</description>
	<lastBuildDate>Thu, 19 Jan 2012 03:18:08 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>Software Freedom Day 2010 &#8211; Gentoo Linux</title>
		<link>http://www.kev009.com/wp/2010/09/sfd-2010-gentoo-linux/</link>
		<comments>http://www.kev009.com/wp/2010/09/sfd-2010-gentoo-linux/#comments</comments>
		<pubDate>Sat, 18 Sep 2010 15:37:58 +0000</pubDate>
		<dc:creator>kev009</dc:creator>
				<category><![CDATA[Computing]]></category>
		<category><![CDATA[Gentoo]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[Projects]]></category>

		<guid isPermaLink="false">http://www.kev009.com/wp/?p=508</guid>
		<description><![CDATA[I&#8217;m doing a presentation/Q&#38;A for Software Freedom Day 2010 in Charleston, SC.  CSCLUG is putting on the event. Software Freedom Day 2010 &#8211; Gentoo Linux Presentation &#8211; .odp / Open Office Impress Software Freedom Day 2010 &#8211; Gentoo Linux PDF &#8230; <a href="http://www.kev009.com/wp/2010/09/sfd-2010-gentoo-linux/">Continue reading <span class="meta-nav">&#8594;</span></a>
No related posts.]]></description>
			<content:encoded><![CDATA[<p>I&#8217;m doing a presentation/Q&amp;A for Software Freedom Day 2010 in Charleston, SC.  <a href="http://csclug.org/">CSCLUG</a> is putting on the event.</p>
<ul>
<li><a href="http://www.kev009.com/wp/wp-content/uploads/2010/09/GentooSFD2010.odp">Software Freedom Day 2010 &#8211; Gentoo Linux Presentation</a> &#8211; .odp / Open Office Impress</li>
<li><a href="http://www.kev009.com/wp/wp-content/uploads/2010/09/GentooSFD2010.pdf">Software Freedom Day 2010 &#8211; Gentoo Linux PDF</a> &#8211; .pdf / Portable Document Format</li>
</ul>
<p>Here is the presentation.  Feel free to use or modify this under the terms of CC-SA3.0.</p>
<p>No related posts.</p>]]></content:encoded>
			<wfw:commentRss>http://www.kev009.com/wp/2010/09/sfd-2010-gentoo-linux/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>boo2pdf Update</title>
		<link>http://www.kev009.com/wp/2009/11/boo2pdf-update/</link>
		<comments>http://www.kev009.com/wp/2009/11/boo2pdf-update/#comments</comments>
		<pubDate>Fri, 27 Nov 2009 14:48:10 +0000</pubDate>
		<dc:creator>kev009</dc:creator>
				<category><![CDATA[Computing]]></category>
		<category><![CDATA[IBM]]></category>
		<category><![CDATA[java]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[News]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[Projects]]></category>
		<category><![CDATA[Retrocomputing]]></category>
		<category><![CDATA[boo]]></category>
		<category><![CDATA[boo2pdf]]></category>
		<category><![CDATA[BookManager]]></category>

		<guid isPermaLink="false">http://www.kev009.com/wp/?p=394</guid>
		<description><![CDATA[I did some minor updates to boo2pdf. Graphics should now be within the page margins.  Please let me know if there are any other common formatting mistakes. Unfortunately, IBM&#8217;s &#8220;transmogrifier&#8221; utility doesn&#8217;t work very well in Wine, so you should &#8230; <a href="http://www.kev009.com/wp/2009/11/boo2pdf-update/">Continue reading <span class="meta-nav">&#8594;</span></a>
No related posts.]]></description>
			<content:encoded><![CDATA[<p>I did some minor updates to <a href="http://www.kev009.com/wp/boo2pdf/">boo2pdf. </a> Graphics should now be within the page margins.  Please let me know if there are any other common formatting mistakes.</p>
<p>Unfortunately, IBM&#8217;s &#8220;transmogrifier&#8221; utility doesn&#8217;t work very well in Wine, so you should preprocess older books in Windows before running them through the <a href="http://ps-2.kev009.com:8081/boo2pdf/">boo2pdf web</a> service (download is on that page).</p>
<p>Source code is now available from <a href="http://git.kev009.com/gitweb/?p=boo2pdf/.git;a=summary">boo2pdf gitweb</a>.</p>
<p>No related posts.</p>]]></content:encoded>
			<wfw:commentRss>http://www.kev009.com/wp/2009/11/boo2pdf-update/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Announcing boo2pdf</title>
		<link>http://www.kev009.com/wp/2009/10/announcing-boo2pdf/</link>
		<comments>http://www.kev009.com/wp/2009/10/announcing-boo2pdf/#comments</comments>
		<pubDate>Tue, 20 Oct 2009 07:35:07 +0000</pubDate>
		<dc:creator>kev009</dc:creator>
				<category><![CDATA[Computing]]></category>
		<category><![CDATA[Hardware]]></category>
		<category><![CDATA[IBM]]></category>
		<category><![CDATA[java]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[News]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[Projects]]></category>
		<category><![CDATA[Retrocomputing]]></category>
		<category><![CDATA[BookManager]]></category>
		<category><![CDATA[mainframe]]></category>

		<guid isPermaLink="false">http://www.kev009.com/wp/?p=346</guid>
		<description><![CDATA[I&#8217;ve just uploaded a beta of boo2pdf, an IBM BookManager to PDF conversion app &#38; web service. I&#8217;m currently experimenting with the HTML to PDF backends and would like feedback with book files I haven&#8217;t tried. Once the code is &#8230; <a href="http://www.kev009.com/wp/2009/10/announcing-boo2pdf/">Continue reading <span class="meta-nav">&#8594;</span></a>
No related posts.]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve just uploaded a beta of <a href="http://www.kev009.com/wp/boo2pdf/">boo2pdf</a>,  an IBM BookManager to PDF conversion app &amp; web service.  I&#8217;m currently experimenting with the HTML to PDF backends and would like feedback with book files I haven&#8217;t tried. Once the code is cleaned up, I will dump it on my site.</p>
<h3>Motivation</h3>
<p>I have a large collection of old IBM machines and documentation.  I want this documentation indexed by my own search facilities and Google for easy retrieval.  PDF is widely read, while BookManager requires proprietary software and no search engines I know of parse it.  This will probably be useful to Mainframers as well.</p>
<p>Take the web service for a spin here: <a href="http://ps-2.kev009.com:8081/boo2pdf/" target="_blank"></p>
<p>http://ps-2.kev009.com:8081/boo2pdf/</a>.</p>
<p>No related posts.</p>]]></content:encoded>
			<wfw:commentRss>http://www.kev009.com/wp/2009/10/announcing-boo2pdf/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Java: The Good Parts</title>
		<link>http://www.kev009.com/wp/2009/10/java-the-good-parts/</link>
		<comments>http://www.kev009.com/wp/2009/10/java-the-good-parts/#comments</comments>
		<pubDate>Thu, 15 Oct 2009 05:31:24 +0000</pubDate>
		<dc:creator>kev009</dc:creator>
				<category><![CDATA[Computing]]></category>
		<category><![CDATA[Datacenter]]></category>
		<category><![CDATA[Gentoo]]></category>
		<category><![CDATA[java]]></category>
		<category><![CDATA[News]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[Projects]]></category>
		<category><![CDATA[development]]></category>
		<category><![CDATA[jvm]]></category>
		<category><![CDATA[openjdk]]></category>
		<category><![CDATA[Sun]]></category>

		<guid isPermaLink="false">http://www.kev009.com/wp/?p=303</guid>
		<description><![CDATA[A while back, a book entitled JavaScript: The Good Parts made waves on the internet, especially social networking sites.  This book purported to show the inner beauty of a language that was long considered second or third rate, coming of &#8230; <a href="http://www.kev009.com/wp/2009/10/java-the-good-parts/">Continue reading <span class="meta-nav">&#8594;</span></a>
No related posts.]]></description>
			<content:encoded><![CDATA[<p><img class="alignleft size-full wp-image-313" style="margin-left: 5px; margin-right: 5px;" title="javascript-the-good-parts" src="http://www.kev009.com/wp/wp-content/uploads/2009/10/javascript-the-good-parts.gif" alt="javascript-the-good-parts" width="180" height="236" />A while back, a book entitled <a href="http://oreilly.com/catalog/9780596517748" target="_blank">JavaScript: The Good Parts</a> made waves on the internet, especially social networking sites.  This book purported to show the inner beauty of a language that was long considered second or third rate, coming of age.  With the advent of toolkits like JQuery, Javascript/AJAX development has become easy and even fun.</p>
<p>I aim to do the same by showing &#8220;Java: The Good Parts&#8221; here at a high level.<img class="alignright size-full wp-image-312" title="java_powered_logo_rgb" src="http://www.kev009.com/wp/wp-content/uploads/2009/10/java_powered_logo_rgb.gif" alt="java_powered_logo_rgb" width="70" height="131" /></p>
<p>When I was younger, I used to despise Java for political reasons and bad memories of early applets and applications.  I suspect many users and developers (especially Libre software devs!) are on the same boat.  By the end of this article, I hope I swayed your opinion or at least caused you to reevaluate your bias.  I also wish to  encourage further discussion about these points and ways we can improve any deficiencies.</p>
<h2>Rough and Tumble Upbringing</h2>
<p>When Java first started gaining popularity, it was loudly hyped as the end all language.  It was expected that Java would take the &#8220;rich client&#8221; by storm, and applets would be the go to solution for enhancing web pages.  What happened was a bit different.  Java floundered and struggled to find a niche.  On the client side, AWT apps looked horrendous despite using native widgets.  Then Swing came about and despite easing development, it looked equally bad on all platforms (by default).  Applets were basically a stillbirth.  The ugly gray box, loadtime sometime measuring in minutes, and no coordination with the DOM and web browser made the average user hate Java.</p>
<p>One area Java was able to develop and secure a foundation, however, was the back end of large web applications.  The Virtual Machine approach provided a marked advantage over the CGI and interpreted scripts of the day.  Java&#8217;s rich networking libraries, clean Object Oriented design, and safety made this the language de jour for large web applications.</p>
<h2>Open Source Matters</h2>
<p title="Just In Time">In my opinion, the open sourcing of Java during its  early infancy would have  had  little impact on most of the teething issues.  The Virtual Machine, JIT, and Garbage Collection required many years of tuning to get acceptable performance and Sun did an acceptable job keeping it under wing.  The relatively limited CPU and RAM of the mid &#8217;90s also made these concepts a bit ahead of their time.  Somewhere in the 1999-2002 time frame, though, Sun really dropped the ball.  An Open Source Java would have led to ubiquity on the booming Linux platform and a chance for all sorts of cross-platform software.</p>
<p>Open Source matters, and not just for the source code.  Open Source  projects naturally bring about very pragmatic and intelligent  developers.  These are the folks that thoroughly enjoy their hobby,  work, and tools.  The marketing guys and pointed haired bosses have much  less pull here.  On one hand, a vibrant community built itself with the many Apache Software Foundation projects.  However, most of these were squarely focused on web applications or low level things such as build tools, testing frameworks, and message buses.</p>
<p style="text-align: center;"><img class="aligncenter size-full wp-image-331" title="ThumbsUp" src="http://www.kev009.com/wp/wp-content/uploads/2009/10/ThumbsUp.jpg" alt="ThumbsUp" width="224" height="180" />Due to the void, interpreted languages such as Python rose to the challenge while C and C++ remained the mainstay for applications programming.  Microsoft started dominating Windows development with their .NET CLR languages.  The glib/Gtk+ and Qt toolkits brought about a renaissance in cross-platform development with C and C++ respectively [though not limited].</p>
<p>It wasn&#8217;t until the open-sourcing of SWT that GUI development in Java became attractive.  The obvious killer apps here were the <a href="http://www.eclipse.org/" target="_blank">Eclipse IDE</a> and the Azureus (now <a href="http://en.wikipedia.org/wiki/Vuze" target="_blank">Vuze</a>) bittorrent client.</p>
<p>Sun&#8217;s closed grip of Java really stagnated any chance of abundant expansion in these middle years (2001-2006).  Microsoft leveraged this weakness to create the excellent .NET platform and associated languages to maintain their closed platform and market dominance.  The counterbalance that would have been Java was thus left playing catchup.</p>
<p>We are just beginning to see the fruits of this labor from 2006 through today.  The OpenJDK project is now distributed with popular Linux distributions such as Ubuntu and Fedora.  We finally have decent browser plugins and Java Web Start applications across 32 and 64-bit machines.  The Java deployment problem will slowly fade from memory.</p>
<h2>Application Development</h2>
<p>SWT made Java apps beautiful.  OpenJDK should make them ubiquitous.  We finally have an Open Source platform that is widely deployed.  The strong built in standard library and clean OO design patterns of Java make it a very pleasant host for developing rich client apps.  Obvious areas for improvement here include better layout/form design tools and closer integration with upstream Linux distributors.</p>
<p><img class="alignleft size-full wp-image-319" title="qt-logo" src="http://www.kev009.com/wp/wp-content/uploads/2009/10/qt-logo.png" alt="qt-logo" width="196" height="80" />Somewhere along the line, Trolltech/<a href="http://www.qtsoftware.com/" target="_blank">QT Software</a> (now owned by Nokia) released Jambi &#8212; the complete Qt bindings, GUI framework, and incredibly rich library &#8212; for Java.  Oddly, this bombshell received little of the community and fanfare I thought it would or deserves.  Indeed, QT Software demoted Jambi from their teir-1 platforms and hopes the community will pick it up.  I hope this project isn&#8217;t allowed to stagnate as there is a lot of potential here.</p>
<h2>Web Apps</h2>
<p>Along the &#8220;Enterprise Web Application&#8221; lineage of Java, we wound up with some disgustingly overcomplicated and bloated frameworks for building web apps.  Ruby on Rails and Python Django came about and put a new spin on the development of rapid and robust web apps.  The learning curve of these frameworks is much less than Java EE and I will go as far as saying they are more capable because of it.</p>
<p>By using Java, JSP, and Servlets directly on top of a light Model-View-Controller, I believe Java is just as compelling as some of the more popular scripting languages.  Developers need to know they can trim the fat and that there are many advantages to developing in Java, namely because of the next topic&#8230;</p>
<h2>Dynamic Languages, its all about the VM</h2>
<p>It&#8217;s all about the JVM stupid!  One of the best features of Java and .NET are the underlying Virtual Machines.  By using JIT compiled VMs, Java code has a distinct advantage over the common interpreted languages such as Perl, Python, and PHP.  In the case of Java, the resultant is even naturally crossplatform.</p>
<p>The really interesting developments here focus on extending the JVM to syntax and paradigms other than the statically typed C++ lookalike.  <a href="http://clojure.org/" target="_blank">Clojure</a> and <a href="http://www.scala-lang.org/" target="_blank">Scala</a> deliver innovative new techniques while <a href="http://www.jython.org/" target="_blank">Jython</a> and <a href="http://www.jruby.org/" target="_blank">JRuby</a> bring these excellent languages to the Java software platform and virtual machine.</p>
<p>In short, Java provides everyone with a counter to Microsoft&#8217;s .NET CLR.  The Java VM has been around the block and tuned by giants such as Sun, IBM, Oracle, SAP and more.</p>
<p>I call on the community to discuss how we can encourage use of the JVM for languages other than Java and build this into a defacto runtime.  Continued tuning and integration with Windows, Mac OS X, and Gnome/KDE *NIX systems is paramount.  Research for easy multi-core development is also worthwhile.  Meanwhile, distributions need to continue packaging the JRE and make it a default.  Individual developers need to be made aware of &#8220;Java: The Good Parts&#8221; and myths debunked.</p>
<h2>Applets, Rich Media, Native Code!?</h2>
<p><img class="alignright size-full wp-image-311" title="javafx_logo" src="http://www.kev009.com/wp/wp-content/uploads/2009/10/javafx_logo.png" alt="javafx_logo" width="120" height="52" />With the release of <a href="http://www.javafx.com/" target="_blank">Java FX</a>, widespread deployment of the JRE, and better browser integration, Java has set the stage for a comeback to its roots.</p>
<p>During the late &#8217;90s and 2000s, Adobe Flash became the tool of choice for web animation and interactive pages.  It really exploded with the advent of Youtube and other internet streaming sites making use of the Flash video format.  Unfortunately, Flash player is notoriously insecure, resource intensive, and crash-prone.  It is also not widely available for the millions of smartphones that have become more accessible than computers.</p>
<p>Luckily, there seems to be a shift back to the browser with new developments in AJAX, JavaScript, and HTML.  The &lt;video&gt; tag will hopefully make video as easy and portable as graphics are today in the browser.  Clean JavaScript libraries and fast JIT JS engines make it practical to use this paradigm for many domains.</p>
<p>Yet one must acknowledge that somewhere along the line, manipulating a DOM/markup language with a scripting language isn&#8217;t the most effective development platform for everything.  Google even thinks it poignant to run x86 machine code in a sandboxed environment in your browser.  I personally fail to see the logic behind this.  Java provides a well evolved, cross-platform solution.   Java can run on your ARM powered Android.  Requiring an x86 CPU just seems like the wrong track in this modern age.  Hopefully JavaFX will pick up the slack and return Java to its roots.  I would love to see the demise of the terrible Flash plugin.</p>
<h2>Future and Conclusion</h2>
<p>It&#8217;s time we considered Java for The Good Parts.</p>
<p>I hope some of my points caused you to reevaluate any bad preconceptions or past experiences you may have had with Java.  Java has undergone great change since its birth and I think it is capable of becoming the premier development platform for applications programming of all types.  Particularly interesting are some of the new languages such as Scala and Clojure.  Java has long been a staple in web development, but has traditionally scared away amateur coders.  If you cut the fat, Servlets and JSP are not much harder to set up than common place scripting languages.  Frameworks such as Grails bring it to parity with Rails or Django.</p>
<p>Java underwent a sea change in 2006 with the releasing of the source code and opening of the development process.  Java and the JVM should be championed by Libre software developers and users alike!</p>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow: hidden;"><img class="alignleft size-full wp-image-313" style="margin-left: 5px; margin-right: 5px;" title="javascript-the-good-parts" src="http://www.kev009.com/wp/wp-content/uploads/2009/10/javascript-the-good-parts.gif" alt="javascript-the-good-parts" width="180" height="236" /></div>
<p>No related posts.</p>]]></content:encoded>
			<wfw:commentRss>http://www.kev009.com/wp/2009/10/java-the-good-parts/feed/</wfw:commentRss>
		<slash:comments>9</slash:comments>
		</item>
		<item>
		<title>Kernel developers don&#8217;t get Xen</title>
		<link>http://www.kev009.com/wp/2009/06/kernel-developers-dont-get-xen/</link>
		<comments>http://www.kev009.com/wp/2009/06/kernel-developers-dont-get-xen/#comments</comments>
		<pubDate>Sat, 06 Jun 2009 05:55:55 +0000</pubDate>
		<dc:creator>kev009</dc:creator>
				<category><![CDATA[Computing]]></category>
		<category><![CDATA[Datacenter]]></category>
		<category><![CDATA[Gentoo]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Projects]]></category>
		<category><![CDATA[Redhat]]></category>
		<category><![CDATA[2.6.31]]></category>
		<category><![CDATA[dom0]]></category>
		<category><![CDATA[paravirt_ops]]></category>
		<category><![CDATA[xen]]></category>

		<guid isPermaLink="false">http://www.kev009.com/wp/?p=256</guid>
		<description><![CDATA[The recent bruhaha surrounding Xen on LKML (http://lkml.org/lkml/2009/6/2/475) is really disheartening.  Essentially, the Linux kernel devs are at a disconnect with users.  Some are proposing narrow-minded ideas such as DROPPING software paravirt or merging Xen as a whole into the &#8230; <a href="http://www.kev009.com/wp/2009/06/kernel-developers-dont-get-xen/">Continue reading <span class="meta-nav">&#8594;</span></a>
No related posts.]]></description>
			<content:encoded><![CDATA[<p>The recent bruhaha surrounding <a href="http://xen.org/">Xen</a> on <a href="http://lkml.org/lkml/2009/6/2/475" target="_blank">LKML (http://lkml.org/lkml/2009/6/2/475)</a> is really disheartening.  Essentially, the Linux kernel devs are at a disconnect with users.  Some are proposing narrow-minded ideas such as DROPPING software paravirt or merging Xen as a whole into the kernel.</p>
<p>I use Xen for a few primary reasons:  it bar none has the best speed &#8212; full software paravirtualization pays dividends here;  it is mature;  it works on perfectly good machines that don&#8217;t happen to have the latest chips;  it does hardware passthrough on these same systems;  it has great live migration that actually works.</p>
<p>Ingo Molnar wants you to send all your perfectly good enterprise iron to the landfill even though these systems will last 10+ useful years without boneheaded software decisions such as this.</p>
<p>These same FUDsters want to strip the crossplatform nature of Xen dom0 out too.  Xen dom0 runs on <a href="http://www.netbsd.org/" target="_blank">NetBSD</a> and Solaris.  It is a true hypervisor and will plug into exisiting architectures, and not force you to use Linux for everything.</p>
<p>I have to admire all the hoops Jeremy Fitzhardinge has jumped through to date, as I know my patience is wearing thin.</p>
<p>Xen powers huge sites such as <a href="http://amazon.com" target="_blank">Amazon</a> and services like <a href="http://linode.com" target="_blank">linode.com</a>/<a href="http://slicehost.com" target="_blank">slicehost.com</a>.  By not having dom0 in the kernel where distros such as Ubuntu and Fedora can easily integrate it, kernel devs are doing a disservice to users.</p>
<p>I use KVM, VMWare, and Virtual Box at work in addition, but Xen is firmly entrenched in my toolbox.  The <a href="http://wiki.xensource.com/xenwiki/XenRoadMap" target="_blank">roadmap</a> they have looks great, and I just don&#8217;t see a reason for decline in Xen popularity.  High availability in Xen 4.0 is what I&#8217;ve always been waiting for.</p>
<p>Jeremy has gone to great lengths to work with upstream but keeps getting shot down and asked to do something else when he meets one requirement.  The solution is to merge Jeremy&#8217;s conservative dom0 patch set and work on a technical solution to the patches that the FUDsters consider bad.  It&#8217;s what the users want!</p>
<p>No related posts.</p>]]></content:encoded>
			<wfw:commentRss>http://www.kev009.com/wp/2009/06/kernel-developers-dont-get-xen/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>One Small Step for QT, One Giant Leap for Free Software</title>
		<link>http://www.kev009.com/wp/2009/01/one-small-step-for-qt-one-giant-leap-for-free-software/</link>
		<comments>http://www.kev009.com/wp/2009/01/one-small-step-for-qt-one-giant-leap-for-free-software/#comments</comments>
		<pubDate>Fri, 16 Jan 2009 16:57:41 +0000</pubDate>
		<dc:creator>kev009</dc:creator>
				<category><![CDATA[Computer Music]]></category>
		<category><![CDATA[Computing]]></category>
		<category><![CDATA[Gentoo]]></category>
		<category><![CDATA[kde]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[Projects]]></category>

		<guid isPermaLink="false">http://www.kev009.com/wp/?p=204</guid>
		<description><![CDATA[QT Software, under the graces of Nokia, has released the superb QT cross-platform toolkit under the LGPL. This. is. HUGE. For the libre software purist, this still benefits you, if indirectly.  Companies that make changes to the toolkit must still &#8230; <a href="http://www.kev009.com/wp/2009/01/one-small-step-for-qt-one-giant-leap-for-free-software/">Continue reading <span class="meta-nav">&#8594;</span></a>
No related posts.]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.qtsoftware.com/">QT Software,</a> under the graces of Nokia, has released the superb QT cross-platform toolkit under the LGPL.</p>
<p>This. is. <strong>HUGE</strong>.</p>
<p>For the libre software purist, this still benefits you, if indirectly.  Companies that make changes to the toolkit must still submit patches.  More influential, GPL incompatible software may now readily use QT for free.  This will likely foster more QT centric developers, boost adoption of the underlying stack (Linux, etc), and lower the barrier for vendors to release cross-platform tools.</p>
<p>From a Nokia business perspective, it makes perfect sense and makes the whole thing that much more beautiful.  &#8220;QT Everywhere&#8221; is really a possibility now.  And, it&#8217;s beneficial to Nokia as well as the ecosystem they are enriching.  The more QT developers, the bigger the talent pool for Nokia software.  The more contributors, the better the toolkit.  Win.  A small company like Trolltech could not afford to do this, but to a big dog like Nokia, the revenue from commercial licensing is insignificant and unimportant compared to device sales.</p>
<p>I know the company I work for, <a href="http://www.analograils.com/">Analog Rails</a>, will be able to take advantage of the license switch.  Being previous commercial QT customers, it was expensive to juggle around machines to maintain compliance.  For a companies like VMWare that deploy cross-platform software and maintain their own cross-platform extensions, this surely must be compelling.  I say, the more the merrier!</p>
<p>What a great day for free software, computing, and life in general  :-) .</p>
<p>Ars Technica has outstanding coverage of the news: <a href="http://arstechnica.com/news.ars/post/20090114-nokia-qt-lgpl-switch-huge-win-for-cross-platform-development.html">http://arstechnica.com/news.ars/post/20090114-nokia-qt-lgpl-switch-huge-win-for-cross-platform-development.html</a></p>
<p>No related posts.</p>]]></content:encoded>
			<wfw:commentRss>http://www.kev009.com/wp/2009/01/one-small-step-for-qt-one-giant-leap-for-free-software/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>I dream of pervasive virtualization&#8230;</title>
		<link>http://www.kev009.com/wp/2009/01/i-dream-of-pervasive-virtualization/</link>
		<comments>http://www.kev009.com/wp/2009/01/i-dream-of-pervasive-virtualization/#comments</comments>
		<pubDate>Fri, 02 Jan 2009 19:09:47 +0000</pubDate>
		<dc:creator>kev009</dc:creator>
				<category><![CDATA[Computing]]></category>
		<category><![CDATA[Datacenter]]></category>
		<category><![CDATA[Hardware]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[Projects]]></category>

		<guid isPermaLink="false">http://www.kev009.com/wp/?p=181</guid>
		<description><![CDATA[I dream of a day where virtualization is pervasive. Instead of thinking about services in terms of servers, CPUs or directly mapped resources, I should be able to to add virtual machines in terms of guaranteed throughput rate over a &#8230; <a href="http://www.kev009.com/wp/2009/01/i-dream-of-pervasive-virtualization/">Continue reading <span class="meta-nav">&#8594;</span></a>
No related posts.]]></description>
			<content:encoded><![CDATA[<p>I dream of a day where virtualization is pervasive.</p>
<p>Instead of thinking about services in terms of servers, CPUs or directly mapped resources, I should be able to to add virtual machines in terms of guaranteed throughput rate over a whole grid.  Scaling out should be as easy as adding a blade or racking another server.</p>
<p>At the low level, I should have the option of running N+N redundancy.  That is, the VM should run in lockstep across multiple machines &#8211; so if it is running on 2 vcpus, 4 in total would be used.  This would allow for any node to fail.  And the VM should be an aggregate of the low level hardware &#8211; e.g. a VM grid across 4 8-core servers should scale near-linearly when a single OS instance is running 32 processes.</p>
<p>Current solutions only attempt to do some of the tasks above, and most fail miserably.  IBM mainframes have been doing it for ages.</p>
<p>If I had the time, I know I could build software to do this better than anyone else.  All the puzzle pieces are there, especially the tough ones like hypervisors and Infiniband.  This could have been done at least 3 years ago.  I bet it will take the industry 3-4 years yet to get anywhere close.</p>
<p>This is a real virtual datacenter.</p>
<p>No related posts.</p>]]></content:encoded>
			<wfw:commentRss>http://www.kev009.com/wp/2009/01/i-dream-of-pervasive-virtualization/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>How to upgrade to ext4 in place</title>
		<link>http://www.kev009.com/wp/2008/12/how-to-upgrade-to-ext4-in-place/</link>
		<comments>http://www.kev009.com/wp/2008/12/how-to-upgrade-to-ext4-in-place/#comments</comments>
		<pubDate>Wed, 24 Dec 2008 12:19:44 +0000</pubDate>
		<dc:creator>kev009</dc:creator>
				<category><![CDATA[Computing]]></category>
		<category><![CDATA[Gentoo]]></category>
		<category><![CDATA[kde]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[Projects]]></category>

		<guid isPermaLink="false">http://www.kev009.com/wp/?p=163</guid>
		<description><![CDATA[Here&#8217;s how you upgrade to ext4.  The process is pretty easy, but requires an fsck which means unmounting or rebooting if the file system is in use. Make sure you are using at least e2fstools 1.41.3 and kernel 2.6.28 (or &#8230; <a href="http://www.kev009.com/wp/2008/12/how-to-upgrade-to-ext4-in-place/">Continue reading <span class="meta-nav">&#8594;</span></a>
No related posts.]]></description>
			<content:encoded><![CDATA[<p>Here&#8217;s how you upgrade to ext4.  The process is pretty easy, but requires an fsck which means unmounting or rebooting if the file system is in use.</p>
<p>Make sure you are using at least e2fstools 1.41.3 and kernel 2.6.28 (or a vendor kernel with latest ext4 patches applied)!  Also, its probably a good idea to have proper backups (really!).  ext4 has just been declared stable, but what that really means is that the battle hardening has just begun.  I&#8217;ve done several heavily used systems without fault so far though, so its probably good enough for your desktop.</p>
<p><strong>WARNING: DON&#8217;T CONVERT YOUR /boot PARTITION.</strong> Right now, there is no stable version of grub with ext3 support.  Even if there was, it really won&#8217;t gain you anything  :-) .</p>
<p>Run tune2fs, e.g.:</p>
<blockquote>
<pre>tune2fs -I 256 -O sparse_super,filetype,resize_inode,dir_index,ext_attr,has_journal,\
extents,huge_file,flex_bg,uninit_bg,dir_nlink,extra_isize /dev/sd[x][n]</pre>
</blockquote>
<p>Those are the default options for an ext4 file system if you were to create it with mkfs.ext4 (e2fsprogs 1.41.3 &#8211; see /etc/mke2fs.conf).  I&#8217;m getting pretty damn good performance with this!  The &#8216;-I 256&#8242; option sets 256 bit inodes, which most recent ext3 FSs use already.  If this is the case, and you get a message telling you so, remove this option.  Note that extents will make the FS backwards <strong>INCOMPATIBLE</strong> with ext3.</p>
<p>Next, edit /etc/fstab, e.g.:</p>
<blockquote><p>/dev/vg/home            /home                ext4    defaults	0 0</p></blockquote>
<p>Either unmount and mount or reboot your system.  tune2fs marks the fs as dirty and performs a fsck and conversion.<br />
<strong>NOTICE:</strong> distros with initrds may need to be regenerated or you won&#8217;t be able to mount your root file system.  In Fedora (replace kernel version with your own):</p>
<pre>cd /boot
mv initrd-2.6.27.7-134.fc10.i686.img initrd-2.6.27.7-134.fc10.i686.img.old
mkinitrd initrd-2.6.27.7-134.fc10.i686.img initrd-2.6.27.7-134.fc10.i686.</pre>
<p>That&#8217;s all there is to it.  Stay tuned for future ext4 developments like online defragmentation.</p>
<p>Also, ext{2,3,4} reserve 5% of space for root in case the drive fills up.  On large modern drives, this can be excessive (e.g: 50GB on a 1TB disk).  Consider running &#8216;tune2fs -m 1 /dev/sd[x][n]&#8216; to reduce this to 1%.</p>
<p>For more information and tweaking:</p>
<ol>
<li> Documentation/filesystems/ext4.txt from the latest kernel sources</li>
<li><a href="http://ext4.wiki.kernel.org/index.php/Main_Page">http://ext4.wiki.kernel.org/index.php/Main_Page</a></li>
<li>man tune2fs</li>
<li><a href="http://e2fsprogs.sourceforge.net/" target="_blank">http://e2fsprogs.sourceforge.net/</a></li>
</ol>
<p>No related posts.</p>]]></content:encoded>
			<wfw:commentRss>http://www.kev009.com/wp/2008/12/how-to-upgrade-to-ext4-in-place/feed/</wfw:commentRss>
		<slash:comments>10</slash:comments>
		</item>
		<item>
		<title>Retrocomputing for Fun and Profit</title>
		<link>http://www.kev009.com/wp/2008/12/retrocomputing-for-fun-and-profit/</link>
		<comments>http://www.kev009.com/wp/2008/12/retrocomputing-for-fun-and-profit/#comments</comments>
		<pubDate>Sun, 07 Dec 2008 21:22:04 +0000</pubDate>
		<dc:creator>kev009</dc:creator>
				<category><![CDATA[Computing]]></category>
		<category><![CDATA[Hardware]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[Projects]]></category>

		<guid isPermaLink="false">http://www.kev009.com/wp/?p=123</guid>
		<description><![CDATA[Buy Old Computers ??? Profit What is retrocomputing? I define retrocomputing [wikipedia] as the collecting and use of old computers.  Why might one do this?  Well, for one, enterprises cycle out machines fairly frequently.  2,3,4 and 5 year old systems &#8230; <a href="http://www.kev009.com/wp/2008/12/retrocomputing-for-fun-and-profit/">Continue reading <span class="meta-nav">&#8594;</span></a>
No related posts.]]></description>
			<content:encoded><![CDATA[<ol>
<li>Buy Old Computers</li>
<li>???</li>
<li>Profit</li>
</ol>
<h3>What is retrocomputing?</h3>
<p>I define <strong>retrocomputing</strong> [<a href="http://en.wikipedia.org/wiki/Retrocomputing" target="_blank">wikipedia</a>] as the collecting and use of old computers.  Why might one do this?  Well, for one, enterprises cycle out machines fairly frequently.  2,3,4 and 5 year old systems are often sent out to scrappers in droves despite still being plenty useful.  Top of the line systems for large companies often have more than enough power for small and medium sized ones at pennies on the dollar compared to new hardware.  These machines are likely complete overkill for home use, but none the less are very useful for fun and learning.</p>
<p><object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="425" height="344" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="allowFullScreen" value="true" /><param name="allowscriptaccess" value="always" /><param name="src" value="http://www.youtube.com/v/Cwj6pfhWBps&amp;hl=en&amp;fs=1" /><embed type="application/x-shockwave-flash" width="425" height="344" src="http://www.youtube.com/v/Cwj6pfhWBps&amp;hl=en&amp;fs=1" allowscriptaccess="always" allowfullscreen="true"></embed></object></p>
<p><em>IBM mainframe ops in the 1980s</em></p>
<h3>Why?!</h3>
<p>A lot of what I know about computers has been learned on old machines.  Hooking up a couple of servers and desktops and trying to make something useful out of them is a great exercise for the aspiring system administrator.  With open source software, it can all be done freely and easily.</p>
<p>Yes, you can run Linux, BSD, and Solaris from the comfort of your Windows desktop in a virtual machine (weak sauce&#8230;).  Yet there is something much different when you cluster several high technology servers together, tethered to a Fibre Channel storage array and have them share a single distributed file system.  The knowledge of setup, installation, and troubleshooting I&#8217;ve gained from mock scenarios like this I cannot compare to anyone else I&#8217;ve ever met.  Breaking things here usually means digging deep and fixing it.  If you were to screw something up at work like some of the things I&#8217;ve gotten into, it would probably cost you your job.</p>
<div id="attachment_126" class="wp-caption alignnone" style="width: 310px"><a href="http://www.kev009.com/wp/wp-content/uploads/2008/12/bench1.jpg"><img class="size-medium wp-image-126" title="BENCHNET" src="http://www.kev009.com/wp/wp-content/uploads/2008/12/bench1-300x225.jpg" alt="" width="300" height="225" /></a><p class="wp-caption-text">BENCHNET - where I rip into computers that cost as much as a house and my &quot;production&quot; rack</p></div>
<p>Retrocomputing is also fun.  I am personally into old IBM hardware, though old UNIX workstations of all sorts are interesting to me.  You can see my collection of IBM PS/2 and RS/6000 knowledge here: <a href="http://ps-2.kev009.com:8081/" target="_blank">http://ps-2.kev009.com:8081/</a>.  There is a particular thrill to booting up a machine that cost between $20,000 and $50,000 10 years ago.  Knowing that these same machine models were used to design the Boeing 777, composed the famous <a href="http://en.wikipedia.org/wiki/Deep_Blue_%28chess_computer%29" target="_blank">Deep Blue</a> machine, and were used in the largest automotive and shipbuilding firms not to mention some of the most important <a href="http://en.wikipedia.org/wiki/RAD6000" target="_blank">space craft</a> to date also brings a sense of power and nostalgia.  In some ways its similar to having a classic car, but different.  Maybe <strong>if that classic car was a big ass bulldozer, tank, jet</strong> or some other well engineered piece of equipment :-P.</p>
<div id="attachment_127" class="wp-caption alignnone" style="width: 310px"><a href="http://www.kev009.com/wp/wp-content/uploads/2008/12/systems1.jpg"><img class="size-medium wp-image-127 " title="Systems" src="http://www.kev009.com/wp/wp-content/uploads/2008/12/systems1-300x225.jpg" alt="Some old systems I had at one time or another.  Left to right: IBM PS/2e (first &quot;green&quot; environmental pc), RS/6000 43p (7043-140), Apple PowerMac 7100/80, RS/6000 7006-42W, RS/6000 7012-397, HP Visualize c360 (PARISC)" width="300" height="225" /></a><p class="wp-caption-text">IBM PS/2e, RS/6000 43p, PowerMac 7100, RS/6000 x2, HP Visualize c360</p></div>
<p>Nostalgia is one of the biggest things I get out of using particularly old hardware.  I missed the mainframe days, the minicomputer days, the PC and DOS days, the Apple II days (well, actually I used these a bit at a very young age), and to a degree the early Windows days.  Just like a history class, studying these old machines gives me insight as to why things are done the way they are today.  It gives me appreciation for modern systems and makes <strong>me write clean and well optimized code</strong>.  The old computer games that captivated me as a child <em>(Sim City, Sim Tower, Sim Ant, Sim Farm, Gizmos and Gadgets, The Incredible Machine, Oregon Tail etc.)</em> implanted a high degree of logic and understanding at a young age and it is heartwarming to revisit these.  I grew up a Mac user as well, so seeing what I was<em>(or: was not :&gt;)</em> missing on PCs is also interesting.</p>
<p><object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="425" height="344" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="allowFullScreen" value="true" /><param name="allowscriptaccess" value="always" /><param name="src" value="http://www.youtube.com/v/dLBeLKFsFCA&amp;hl=en&amp;fs=1" /><embed type="application/x-shockwave-flash" width="425" height="344" src="http://www.youtube.com/v/dLBeLKFsFCA&amp;hl=en&amp;fs=1" allowscriptaccess="always" allowfullscreen="true"></embed></object></p>
<p><em>Old MIPS UNIX server booting and logging in</em></p>
<h3>Some of the benefits of retrocomputing:</h3>
<ul>
<li>Enterprise class hardware</li>
<li>Cheap, possibly even free</li>
<li>Different design philosophies &#8211; not everything is x86 &#8211; a lot of this gear is quite different.  For example, UNIX workstations integrated most of what we enjoy on our PCs years before it became available to consumers.  SGI machines were doing A/V and 3D in the early 90s.  IBM midrange <a href="http://en.wikipedia.org/wiki/AS/400" target="_blank">AS/400</a>s have an advanced integrated database, programming languages, and environment that make PCs look like a joke for business programming.  <a href="http://en.wikipedia.org/wiki/Winfs">WinFS</a>, <a href="http://en.wikipedia.org/wiki/Object_storage_device" target="_blank">Object Storage Devices</a>, etc are just now being talked about for PCs.  The channel philosophy from mainframes is still pretty new to PC servers (<a href="http://en.wikipedia.org/wiki/Fibre_channel" target="_blank">fibre channel</a>), not to mention <a href="http://en.wikipedia.org/wiki/VM_%28Operating_system%29" target="_blank">virtualization</a>.</li>
<li>If you break it, you can fix it and learn from it or toss it</li>
<li>The engineering and craftsmanship in some of these systems is downright astonishing</li>
<li>Old computers are works of art: they give you a window into the technology and culture of times past</li>
<li>You should never trust a computer you can&#8217;t lift</li>
</ul>
<p>It is interesting that we as humans produce such elaborate machines, only to discard them as scarp a few years later.  It is humbling and shows you the incredible progress we are making.</p>
<h3>How?</h3>
<p>eBay is your friend, but also look for local scrapyards or businesses doing overhauls.</p>
<p>If you are faint of heart, plenty of good abandonware sites exist for games and operating systems that can be run on emulators or VMs.  Check out this IBM mainframe emulator, <a href="http://www.hercules-390.org/" target="_blank">Hercules</a>.  Some of the original IBM OSes are <a href="http://www.ibiblio.org/jmaynard/" target="_blank">public domain</a>.</p>
<p>If you don&#8217;t want old PCs and big iron overtaking your house, there is plenty of good material on YouTube as well.  <a href="http://www.youtube.com/user/ComputerHistory" target="_blank">The Computer Museum</a> is a good start.  Some of the consoles, offices, and outfits are hilarious.</p>
<p><object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="425" height="344" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="allowFullScreen" value="true" /><param name="allowscriptaccess" value="always" /><param name="src" value="http://www.youtube.com/v/Z45nbzMLk98&amp;hl=en&amp;fs=1" /><embed type="application/x-shockwave-flash" width="425" height="344" src="http://www.youtube.com/v/Z45nbzMLk98&amp;hl=en&amp;fs=1" allowscriptaccess="always" allowfullscreen="true"></embed></object></p>
<p><em>Old SGI tech demo &#8211; pretty impressive!</em></p>
<p>No related posts.</p>]]></content:encoded>
			<wfw:commentRss>http://www.kev009.com/wp/2008/12/retrocomputing-for-fun-and-profit/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Building NAS, Part 2</title>
		<link>http://www.kev009.com/wp/2007/04/building-nas-part-2/</link>
		<comments>http://www.kev009.com/wp/2007/04/building-nas-part-2/#comments</comments>
		<pubDate>Mon, 16 Apr 2007 00:13:25 +0000</pubDate>
		<dc:creator>kev009</dc:creator>
				<category><![CDATA[Computing]]></category>
		<category><![CDATA[Hardware]]></category>
		<category><![CDATA[Projects]]></category>

		<guid isPermaLink="false">http://www.kev009.com/wp/2007/04/15/building-nas-part-2/</guid>
		<description><![CDATA[Building your own Network Attached Storage server In an earlier post, I discussed what was necessary to cable 1U servers up with power to run SATA drives. Next, you&#8217;ll need some drives and a controller if you have not already &#8230; <a href="http://www.kev009.com/wp/2007/04/building-nas-part-2/">Continue reading <span class="meta-nav">&#8594;</span></a>
No related posts.]]></description>
			<content:encoded><![CDATA[<p>Building your own Network Attached Storage server</p>
<p>In an earlier <a href="http://www.kev009.com/wp/2007/03/28/ibm-xseries-330-x330-sata-retrofit/">post</a>, I discussed what was necessary to cable 1U servers up with power to run SATA drives.  Next, you&#8217;ll need some drives and a controller if you have not already purchased them.</p>
<p><strong>Controllers</strong></p>
<p>The SATA controller you select is one of the most important pieces of the NAS box.  It is my recommendation you get a high quality card, even if you are just doing RAID-1 (Mirroring).  There are basically three types of controllers: standard, fakeraid, and hardware RAID.  A standard controller is just a host-bus adapter.  Any advanced features like striping and mirroring will need to be performed by your OS.  Fakeraid includes a RAID BIOS, but all processing is left to a software driver.  Hardware RAID is a complete subsystem with a dedicated CPU.</p>
<p>Standard controllers and fakeraid cards are generally cheap and maybe even integrated on your motherboard.  However, these are rarely a good choice for servers.  Aside from requiring the host to perform a lot more work,  these can also cause a lot of trouble down the road.  For instance, if a hard disk fails with software RAID, the system may not be able to reboot without intervention.  Fakeraid may present the disks to the machine as one logical disk to avoid this, but these cards are the most evil.  They tend to use closed drivers and proprietary disk formats which basically means avoid these like the plague.  The cards themselves are fine, just use them like a standard controller and use the software RAID of your operating system.  That leaves us with hardware RAID controllers.</p>
<p>Hardware RAID controllers are the only logical choice for a server.  Hardware RAID cards offload all RAID processing to a subsystem on the card.  These cards have an integrated CPU to perform parity calculations for RAID-5, and usually a large amount of RAM to act as cache.  The RAM can even be used as write cache, but it is important to have a battery <strong>ON THE CARD</strong> in case of a power failure or crash to avoid potentially much greater data loss.   Hardware RAID controllers present their RAID volumes as logical disks to the computer and operating system, so faults are transparent to the host.  They also tend to allow hot addition of storage.  Finally, since the card is handling all the I/O, bandwidth requirements are heavily reduced.  If I am writing to a hardware RAID-1 device, data only needs to be sent across the PCI bus once as opposed to software RAID which will need to write the data to each disk.  This is a very important consideration for older machines that have limited bus bandwidth and large arrays.</p>
<p>All things considered, I went with a 3Ware 9500S.  Cost: $100 on eBay.</p>
<p><a href="http://www.kev009.com/wp/wp-content/uploads/2007/04/3ware_9500s.jpg" title="3Ware 9500S"><img src="http://www.kev009.com/wp/wp-content/uploads/2007/04/3ware_9500s.thumbnail.jpg" alt="3Ware 9500S" /></a></p>
<p>3Ware has good drivers in the Linux kernel, and has been manufacturing SATA RAID controllers for some time.  Other decent manufactures are Adaptec and LSI Logic.  Be sure to check for OS compatibility before purchasing a card.</p>
<p><strong>Hard Drives</strong></p>
<p>Just because you are getting the price point of SATA, you should not disregard the quality of drives you are purchasing.  Although most standard consumer drives will work fine, there is a much more attractive option.  Seagate and others offer what they call &#8220;nearline&#8221; drives which are basically the consumer drives with a RAID friendly firmware and continuous duty cycle.  What&#8217;s best is that these usually only have a $10 or so premium over their consumer counterparts.  When it comes to selecting a manufacturer, take a look at the warranty and technology integrated in the drives.  Seagate and Hitachi are both good choices.  Take a look at reviews too, especially <a href="http://storagereview.com/" target="_blank">StorageReview</a>.</p>
<p>When most people purchase a hard disk, they make their choice simply on size.  For a server (and even desktop!), you should also consider the spindle speed and size of the drive cache.  7,200RPM is enough for most servers, but 10,000RPM will deliver far greater performance under concurrent and random access.  Of course, these usually come at a a heavy price premium and lesser capacity.</p>
<p>Here, I went with a pair of nearline Seagate Barracuda ES drives. The 320GB model was ample for my need, but these go all the way up to 750GB.  They use perpendicular magnetic recording which increases density and speed, and feature a large 16MB cache.  My initial testing shows nearly 80MB/s throughput!  That level of speed has traditionally only been available on expensive SCSI disks.  Cost: $100/drive.</p>
<p><a href="http://www.kev009.com/wp/wp-content/uploads/2007/04/barracudaes.jpg" title="Seagate Barracuda ES 320GB"><img src="http://www.kev009.com/wp/wp-content/uploads/2007/04/barracudaes.thumbnail.jpg" alt="Seagate Barracuda ES 320GB" /></a></p>
<p><strong>Networking</strong></p>
<p>Equally important to a NAS server is ample networking bandwidth.  This is largely dependent on the scale of services, but a decent gigabit NIC should get you near disk performance.  I picked up an Intel Pro/1000 MT Server Adapter, which features various offloading schemes to free the host&#8217;s CPUs from networking tasks.  If your needs are greater, consider aggregating several gigabit ports together.  Cost: $20.</p>
<p><strong>Final Thoughts</strong></p>
<p>The total cost for storage hardware comes to about $320.</p>
<p>Cabling the drives up and configuring the array is a pretty straight forward task.  If you chose software RAID, there are plenty of guides on the internet to assist you in setting up md and device-mapper.  Try <a href="http://linas.org/linux/raid.html">http://linas.org/linux/raid.html</a>.</p>
<p>When it comes to RAID levels, the choice depends on the number of drives you have and the level of protection you need.  RAID-1 is a great choice for most applications in that you get true redundancy and greater read performance, but at the cost of half the physical capacity.  RAID-5 is also commonly used in which you lose the capacity of one drive,  with a three drive minimum.  It allows for the failure of a single drive.  With the size of modern hard disks, RAID-5 is less attractive than it once was and also suffers from heavy write performance loss due to parity calculations.  Try <a href="http://www.acnc.com/04_01_00.html" target="_blank">http://www.acnc.com/04_01_00.html</a> for the lowdown on various RAID levels.</p>
<p>My next post will cover file system selection.</p>
<p>No related posts.</p>]]></content:encoded>
			<wfw:commentRss>http://www.kev009.com/wp/2007/04/building-nas-part-2/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

