<?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/"
	xmlns:itunes="http://www.itunes.com/dtds/podcast-1.0.dtd"
	xmlns:media="http://search.yahoo.com/mrss/"
>

<channel>
	<title>crashsystems.net</title>
	<atom:link href="http://crashsystems.net/feed/" rel="self" type="application/rss+xml" />
	<link>http://crashsystems.net</link>
	<description>Home of Crashsystems LLC, and a blog about miscellaneous things</description>
	<lastBuildDate>Mon, 29 Jun 2009 22:21:06 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
		<!-- podcast_generator="podPress/8.8" -->
		<copyright>&#xA9;Douglass Clem </copyright>
		<managingEditor>crashsystems@gmail.com (Douglass Clem)</managingEditor>
		<webMaster>crashsystems@gmail.com(Douglass Clem)</webMaster>
		<category></category>
		<ttl>1440</ttl>
		<itunes:keywords></itunes:keywords>
		<itunes:subtitle></itunes:subtitle>
		<itunes:summary>A blog about technology, world travel, spirituality, and random combinations of these themes.</itunes:summary>
		<itunes:author>Douglass Clem</itunes:author>
		<itunes:category text="Society &amp; Culture"/>
		<itunes:owner>
			<itunes:name>Douglass Clem</itunes:name>
			<itunes:email>crashsystems@gmail.com</itunes:email>
		</itunes:owner>
		<itunes:block>No</itunes:block>
		<itunes:explicit>no</itunes:explicit>
		<itunes:image href="http://crashsystems.net/wp-content/plugins/podpress/images/powered_by_podpress.jpg" />
		<image>
			<url>http://crashsystems.net/wp-content/plugins/podpress/images/powered_by_podpress.jpg</url>
			<title>crashsystems.net</title>
			<link>http://crashsystems.net</link>
			<width>144</width>
			<height>144</height>
		</image>
		<item>
		<title>Bing&#8217;s Ballmer Bias (in search of monkey boy)</title>
		<link>http://crashsystems.net/2009/06/bings-ballmer-bias-in-search-of-monkey-boy/</link>
		<comments>http://crashsystems.net/2009/06/bings-ballmer-bias-in-search-of-monkey-boy/#comments</comments>
		<pubDate>Mon, 29 Jun 2009 22:21:06 +0000</pubDate>
		<dc:creator>Douglass Clem</dc:creator>
				<category><![CDATA[Miscellaneous]]></category>

		<guid isPermaLink="false">http://crashsystems.net/?p=261</guid>
		<description><![CDATA[Much has already been said about the fact that Microsoft&#8217;s shiny &#8220;new&#8221; search engine, Bing.com, happens to have a little bias. I think I just discovered a new example of this bias. Try finding the Monkey Boy video on both Google and Bing, and see which one&#8217;s auto-complete is the most helpful.
]]></description>
			<content:encoded><![CDATA[<p><a href="http://crashsystems.net/wp-content/uploads/2009/06/monkey-boy-bing.png"><img class="aligncenter size-full wp-image-262" title="Searching for Monkey Boy" src="http://crashsystems.net/wp-content/uploads/2009/06/monkey-boy-bing.png" alt="Searching for Monkey Boy" /></a>Much has already <a href="http://linux.com/community/blogs/Bing-is-not-Google-but-it-is-a-spin-engine.-14904.html" target="_blank">been said</a> about the fact that Microsoft&#8217;s shiny &#8220;new&#8221; search engine, Bing.com, happens to have a little bias. I think I just discovered a new example of this bias. Try finding the <a href="http://www.youtube.com/watch?v=wvsboPUjrGc" target="_blank">Monkey Boy video</a> on both Google and Bing, and see which one&#8217;s auto-complete is the most helpful.</p>
]]></content:encoded>
			<wfw:commentRss>http://crashsystems.net/2009/06/bings-ballmer-bias-in-search-of-monkey-boy/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Fighting Juno&#8217;s address book lock-in with Python</title>
		<link>http://crashsystems.net/2009/06/juno-address-book-converter/</link>
		<comments>http://crashsystems.net/2009/06/juno-address-book-converter/#comments</comments>
		<pubDate>Mon, 22 Jun 2009 01:23:25 +0000</pubDate>
		<dc:creator>Douglass Clem</dc:creator>
				<category><![CDATA[Technology]]></category>
		<category><![CDATA[programming]]></category>
		<category><![CDATA[python]]></category>

		<guid isPermaLink="false">http://crashsystems.net/?p=254</guid>
		<description><![CDATA[This week I helped a friend with an OS re-install (XP unfortunately). He used Juno for his email service, which refused to work properly when re-installed. I helped him switch to Gmail, but it turns out that Juno refused to implement an export feature for their contacts. After a little hunting around, I discovered the [...]]]></description>
			<content:encoded><![CDATA[<p>This week I helped a friend with an OS re-install (XP unfortunately). He used Juno for his email service, which refused to work properly when re-installed. I helped him switch to Gmail, but it turns out that Juno refused to implement an export feature for their contacts. After a little hunting around, I discovered the text file the software used to store contacts, somewhere in it&#8217;s Program Files folder. What follows is a quick bit of code I wrote to convert the contacts into a CSV file. Hopefully it will be useful to someone else in their efforts to fight lock-in.</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
</pre></td><td class="code"><pre class="python" style="font-family:monospace;"><span style="color: #808080; font-style: italic;">#!/usr/bin/python</span>
&nbsp;
<span style="color: #808080; font-style: italic;"># import libraries</span>
<span style="color: #ff7700;font-weight:bold;">import</span> <span style="color: #dc143c;">csv</span>
&nbsp;
<span style="color: #ff7700;font-weight:bold;">class</span> entry<span style="color: black;">&#40;</span><span style="color: black;">&#41;</span>:
    <span style="color: #483d8b;">&quot;&quot;&quot;A simple data structure for each contact.&quot;&quot;&quot;</span>
    Name = <span style="color: #483d8b;">''</span>
    Phone = <span style="color: #483d8b;">''</span>
    Birthday = <span style="color: #483d8b;">''</span>
    Address = <span style="color: #483d8b;">''</span>
&nbsp;
&nbsp;
<span style="color: #ff7700;font-weight:bold;">class</span> contacts<span style="color: black;">&#40;</span><span style="color: black;">&#41;</span>:
    <span style="color: #483d8b;">&quot;&quot;&quot;This class will contain pure input from the Juno contacts file.&quot;&quot;&quot;</span>
&nbsp;
    <span style="color: #ff7700;font-weight:bold;">def</span> <span style="color: #0000cd;">__init__</span><span style="color: black;">&#40;</span><span style="color: #008000;">self</span>, <span style="color: #008000;">input</span><span style="color: black;">&#41;</span>:
        <span style="color: #808080; font-style: italic;"># Open the input file</span>
        readFile = <span style="color: #008000;">open</span><span style="color: black;">&#40;</span><span style="color: #008000;">input</span>, <span style="color: #483d8b;">'r'</span><span style="color: black;">&#41;</span>
&nbsp;
        <span style="color: #808080; font-style: italic;"># Put the header into list</span>
        header = entry<span style="color: black;">&#40;</span><span style="color: black;">&#41;</span>
        header.<span style="color: black;">Name</span> = <span style="color: #483d8b;">&quot;Name&quot;</span>
        header.<span style="color: black;">Email</span> = <span style="color: #483d8b;">'Email'</span>
        header.<span style="color: black;">Phone</span> = <span style="color: #483d8b;">&quot;Phone Number&quot;</span>
        header.<span style="color: black;">Address</span> = <span style="color: #483d8b;">&quot;Address&quot;</span>
&nbsp;
        <span style="color: #008000;">self</span>.<span style="color: #008000;">list</span> = <span style="color: black;">&#91;</span>header<span style="color: black;">&#93;</span>
&nbsp;
        <span style="color: #808080; font-style: italic;"># Put the input file into a list and close file</span>
        <span style="color: #008000;">self</span>.<span style="color: black;">rawContent</span> = readFile.<span style="color: black;">readlines</span><span style="color: black;">&#40;</span><span style="color: black;">&#41;</span>
        readFile.<span style="color: black;">close</span><span style="color: black;">&#40;</span><span style="color: black;">&#41;</span>
&nbsp;
    <span style="color: #ff7700;font-weight:bold;">def</span> parse<span style="color: black;">&#40;</span><span style="color: #008000;">self</span><span style="color: black;">&#41;</span>:
        <span style="color: #483d8b;">&quot;&quot;&quot;Parse everything and put it in the list&quot;&quot;&quot;</span>
&nbsp;
        count = <span style="color: #ff4500;">0</span>
        <span style="color: #ff7700;font-weight:bold;">while</span><span style="color: black;">&#40;</span>count <span style="color: #66cc66;">&lt;</span> = <span style="color: #008000;">len</span><span style="color: black;">&#40;</span><span style="color: #008000;">self</span>.<span style="color: black;">rawContent</span><span style="color: black;">&#41;</span> -<span style="color: #ff4500;">1</span><span style="color: black;">&#41;</span>:
            person = entry<span style="color: black;">&#40;</span><span style="color: black;">&#41;</span>
            count += <span style="color: #ff4500;">1</span> <span style="color: #808080; font-style: italic;"># Skips over the field specifying the contact as an entry            </span>
&nbsp;
            <span style="color: #808080; font-style: italic;"># Get email address</span>
            item = <span style="color: #008000;">self</span>.<span style="color: black;">rawContent</span><span style="color: black;">&#91;</span>count<span style="color: black;">&#93;</span><span style="color: black;">&#91;</span><span style="color: #ff4500;">6</span>:-<span style="color: #ff4500;">2</span><span style="color: black;">&#93;</span>
            <span style="color: #ff7700;font-weight:bold;">if</span> <span style="color: black;">&#40;</span>item == <span style="color: #483d8b;">''</span><span style="color: black;">&#41;</span>:
                person.<span style="color: black;">Email</span> = <span style="color: #483d8b;">''</span>
            <span style="color: #ff7700;font-weight:bold;">else</span>:
                person.<span style="color: black;">Email</span> = item
            count += <span style="color: #ff4500;">1</span>
&nbsp;
            <span style="color: #808080; font-style: italic;"># Throw alias into bit-bucket</span>
            count += <span style="color: #ff4500;">1</span>
&nbsp;
            <span style="color: #808080; font-style: italic;"># Get first and last name</span>
            item = <span style="color: #008000;">self</span>.<span style="color: black;">rawContent</span><span style="color: black;">&#91;</span>count<span style="color: black;">&#93;</span><span style="color: black;">&#91;</span><span style="color: #ff4500;">5</span>:-<span style="color: #ff4500;">2</span><span style="color: black;">&#93;</span>
            <span style="color: #ff7700;font-weight:bold;">if</span> <span style="color: black;">&#40;</span>item == <span style="color: #483d8b;">''</span><span style="color: black;">&#41;</span>:
                person.<span style="color: black;">Name</span> = <span style="color: #483d8b;">''</span>
            <span style="color: #ff7700;font-weight:bold;">else</span>:
                person.<span style="color: black;">Name</span> = item
            count += <span style="color: #ff4500;">1</span>
&nbsp;
            <span style="color: #808080; font-style: italic;"># Get the phone number</span>
            item = <span style="color: #008000;">self</span>.<span style="color: black;">rawContent</span><span style="color: black;">&#91;</span>count<span style="color: black;">&#93;</span><span style="color: black;">&#91;</span><span style="color: #ff4500;">14</span>:-<span style="color: #ff4500;">2</span><span style="color: black;">&#93;</span>
            <span style="color: #ff7700;font-weight:bold;">if</span> <span style="color: black;">&#40;</span>item == <span style="color: #483d8b;">''</span><span style="color: black;">&#41;</span>:
                person.<span style="color: black;">Phone</span> = <span style="color: #483d8b;">''</span>
            <span style="color: #ff7700;font-weight:bold;">else</span>:
                person.<span style="color: black;">Phone</span> = item
            count += <span style="color: #ff4500;">1</span>
&nbsp;
            <span style="color: #808080; font-style: italic;"># Throw birthday into bit-bucket</span>
            count += <span style="color: #ff4500;">1</span>
&nbsp;
            <span style="color: #808080; font-style: italic;"># Get the address</span>
            item = <span style="color: #008000;">self</span>.<span style="color: black;">rawContent</span><span style="color: black;">&#91;</span>count<span style="color: black;">&#93;</span><span style="color: black;">&#91;</span><span style="color: #ff4500;">8</span>:-<span style="color: #ff4500;">2</span><span style="color: black;">&#93;</span>
            <span style="color: #ff7700;font-weight:bold;">if</span> <span style="color: black;">&#40;</span>item == <span style="color: #483d8b;">''</span><span style="color: black;">&#41;</span>:
                person.<span style="color: black;">Address</span> = <span style="color: #483d8b;">''</span>
            <span style="color: #ff7700;font-weight:bold;">else</span>:
                person.<span style="color: black;">Address</span> = item
&nbsp;
            <span style="color: #808080; font-style: italic;"># incriment count by four to get to the beginning of next entry</span>
            count += <span style="color: #ff4500;">4</span>
&nbsp;
            <span style="color: #808080; font-style: italic;"># add person to the list</span>
            <span style="color: #008000;">self</span>.<span style="color: #008000;">list</span> += <span style="color: black;">&#91;</span>person<span style="color: black;">&#93;</span>
&nbsp;
    <span style="color: #ff7700;font-weight:bold;">def</span> output<span style="color: black;">&#40;</span><span style="color: #008000;">self</span><span style="color: black;">&#41;</span>:
        <span style="color: #483d8b;">&quot;&quot;&quot;Make a CSV file&quot;&quot;&quot;</span>
&nbsp;
        <span style="color: #808080; font-style: italic;"># Set up the output file</span>
        outFile = <span style="color: #008000;">open</span><span style="color: black;">&#40;</span><span style="color: #483d8b;">'output.txt'</span>, <span style="color: #483d8b;">'w'</span><span style="color: black;">&#41;</span>
        output = <span style="color: #dc143c;">csv</span>.<span style="color: black;">writer</span><span style="color: black;">&#40;</span>outFile, delimiter=<span style="color: #483d8b;">','</span><span style="color: black;">&#41;</span>
&nbsp;
        <span style="color: #808080; font-style: italic;"># Iterate through self.list and write stuff</span>
        <span style="color: #ff7700;font-weight:bold;">for</span> person <span style="color: #ff7700;font-weight:bold;">in</span> <span style="color: #008000;">self</span>.<span style="color: #008000;">list</span>:
            output.<span style="color: black;">writerow</span><span style="color: black;">&#40;</span><span style="color: black;">&#91;</span>person.<span style="color: black;">Name</span>, person.<span style="color: black;">Email</span>, person.<span style="color: black;">Phone</span>, person.<span style="color: black;">Address</span><span style="color: black;">&#93;</span><span style="color: black;">&#41;</span>
&nbsp;
        <span style="color: #808080; font-style: italic;"># Close the file</span>
        outFile.<span style="color: black;">close</span><span style="color: black;">&#40;</span><span style="color: black;">&#41;</span></pre></td></tr></table></div>

</pre>
]]></content:encoded>
			<wfw:commentRss>http://crashsystems.net/2009/06/juno-address-book-converter/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>SHA1 is epic fail (aka new keys)</title>
		<link>http://crashsystems.net/2009/05/sha1-is-epic-fail-aka-new-keys/</link>
		<comments>http://crashsystems.net/2009/05/sha1-is-epic-fail-aka-new-keys/#comments</comments>
		<pubDate>Thu, 21 May 2009 20:00:59 +0000</pubDate>
		<dc:creator>Douglass Clem</dc:creator>
				<category><![CDATA[Technology]]></category>
		<category><![CDATA[encryption]]></category>
		<category><![CDATA[security]]></category>

		<guid isPermaLink="false">http://crashsystems.net/?p=244</guid>
		<description><![CDATA[I seem to have the worst of luck, in that shortly after I created new GPG keys and published them, someone found a new attack on the SHA1 hash algorithm. This attack is such that someone could probably pull it off if they had the financial resources of a government or large organization. Therefore, I&#8217;ve [...]]]></description>
			<content:encoded><![CDATA[<p>I seem to have the worst of luck, in that shortly after I created new GPG keys and published them, someone found a new attack on the SHA1 hash algorithm. This attack is such that someone could probably pull it off if they had the financial resources of a government or large organization. Therefore, I&#8217;ve made a new key, 4096 RSA. The key is on the public internets, and is signed by my old key. I will be keeping my old key active until my purchase of 250 business cards runs out, at which point that key will expire. Please make sure to send all emails with my new key.</p>
<p>Also, it is a good idea to use better hash algorithms than SHA1. To do this automatically, simply put the following lines at the end of your .gnupg/gpg.conf file:<br />
personal-digest-preferences SHA256<br />
cert-digest-algo SHA256</p>
<p>Old key fingerprint: E1F6 ADF3 88B4 E5C4 E3B1<br />
New key fingerprint: 37F9 E685 576A CFD3 B08C</p>
<p>P.S.</p>
<p>I had planned on having an inline signature with this blog post, but GPG and/or WordPress and/or Firefox and FireGPG have foiled my plans. <a href="http://crashsystems.net/newkey_05-09.txt" target="_blank">Click here</a> to see a text document containing this post plus valid signatures from my old new key and my new new key.</p>
]]></content:encoded>
			<wfw:commentRss>http://crashsystems.net/2009/05/sha1-is-epic-fail-aka-new-keys/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Does High Price Attract Mac Users?</title>
		<link>http://crashsystems.net/2009/05/mac-high-price/</link>
		<comments>http://crashsystems.net/2009/05/mac-high-price/#comments</comments>
		<pubDate>Sun, 10 May 2009 20:49:31 +0000</pubDate>
		<dc:creator>Douglass Clem</dc:creator>
				<category><![CDATA[Technology]]></category>
		<category><![CDATA[apple]]></category>
		<category><![CDATA[hardware]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[microsoft]]></category>
		<category><![CDATA[ubuntu]]></category>

		<guid isPermaLink="false">http://crashsystems.net/?p=234</guid>
		<description><![CDATA[I was on the #ubuntu-us-fl IRC channel recently, when one of my fellow geeks put forward an interesting theory: People are attracted to Apple products by a high price. The theory assumes that in our society people usually equate price with quality, and not always accurately. Today I decided to do a little price comparison. [...]]]></description>
			<content:encoded><![CDATA[<p>I was on the <a href="http://www.mibbit.com/?server=irc.freenode.net&amp;channel=%23ubuntu-us-fl" target="_blank">#ubuntu-us-fl</a> IRC channel recently, when one of my fellow geeks put forward an interesting theory: People are attracted to Apple products by a high price. The theory assumes that in our society people usually equate price with quality, and not always accurately. Today I decided to do a little price comparison. I gladly admit that I have a bias towards the Linux operating system, specifically the <a href="http://ubuntu.com" target="_blank">Ubuntu</a> distribution. However, in this post I will try to let hopefully unbiased numbers speak for themselves, with the exception of my summary at the end.</p>
<p>Below I have the configurations and prices for four machines: an <a href="http://apple.com" target="_blank">Apple</a> Mac Pro, a <a href="http://dell.com" target="_blank">Dell</a> XPS 630, The Wild Dog performance desktop from <a href="http://system76.com/" target="_blank">System76</a>, and finally a custom built machine with parts from <a href="http://newegg.com" target="_blank">Newegg</a> (thanks to <a href="http://excid3.com/" target="_blank">excid3</a> for the build specs). Though the machines are from four different <a href="http://en.wikipedia.org/wiki/Original_equipment_manufacturer" target="_blank">OEM</a>s (aka companies that build computers), I configured each to be as close as possible in specifications and performance.</p>
<h2><a href="http://store.apple.com/us_smb_78313/configure/MB871LL/A?mco=NDE4NDIwNA" target="_blank">Apple Mac Pro</a>, $2,849.00</h2>
<ul>
<li>Processor: One 2.66GHz Quad-Core Intel Xeon</li>
<li>RAM: 8GB (4&#215;2GB)</li>
<li>Hard drive: 1TB 7200-rpm Serial ATA 3Gb</li>
<li>Graphics card: NVIDIA GeForce GT 120 512MB</li>
<li>DVD burner: One 18x SuperDrive</li>
</ul>
<h2><a href="http://configure.us.dell.com/dellstore/config.aspx?oc=dxcw64c&amp;c=us&amp;l=en&amp;s=dhs&amp;cs=19&amp;kc=productdetails~xpsdt_630" target="_blank">Dell XPS 630</a>, $1,679</h2>
<ul>
<li>Processor: Intel® Core™2 Q9550 (12MB,2.83GHz, 1333FSB) (Also a quad core)</li>
<li>RAM: 8GB Dual Channel DDR2 SDRAM at 800MHz (4 DIMM)</li>
<li>Hard drive: 1TB Performance RAID 0 (2 x 500GB SATA 3Gb/s 7200 RPM HDDs)</li>
<li>Graphics card: SLi, Dual nVidia GeForce 9800GT 512MB</li>
<li>DVD burner: 16X CD/DVD burner (DVD+/-RW) w/double layer write capability</li>
</ul>
<h2>System76 <a href="http://system76.com/product_info.php?cPath=27&amp;products_id=82" target="_blank">Wild Dog Performance Desktop</a>, $1,089.00</h2>
<ul>
<li>Processor: Quad Core Q6600 2.40 GHz FSB 1066 MHz L2 8 MB</li>
<li>RAM: 8 GB &#8211; 4 x 2 GB &#8211; DDR3 &#8211; 1333 MHz</li>
<li>Hard Drive:  1 TB SATA II 300Mbps &#8211; 7200 rpm 32 MB Buffer</li>
<li>Graphics card: 512 MB ATI Radeon 4550 PCI-Express x16 GDDR3 (DVI, VGA, S-Video, DVI to HDMI, DVI to VGA)</li>
<li>DVD burner: CD-RW / DVD-RW</li>
</ul>
<h2>Custom built machine, $608.90</h2>
<p>Note: If you wanted Windows Vista on this machine (not recommended), just <a href="http://www.newegg.com/Product/Product.aspx?Item=N82E16832116493" target="_blank">add $179.99</a> to the price. Also, the links to all the parts are listed below, seeing as there is a lot more customization that goes into a custom build.</p>
<ul>
<li><span><a href="http://www.newegg.com/Product/Product.aspx?item=N82E16819103244" target="_blank">AMD Phenom 9600 Agena 2.3GHz Socket AM2+ 95W Quad-Core Processor Model HD960ZWCGDBOX &#8211; Retail</a> </span></li>
<li><a href="http://www.newegg.com/Product/Product.aspx?Item=N82E16820104072" target="_blank"><span>Kingston HyperX 2GB 240-Pin DDR2 SDRAM DDR2 1066 Desktop Memory Model KHX8500D2/2G &#8211; Retail</span></a> (x4)</li>
<li><a href="http://www.newegg.com/Product/Product.aspx?Item=N82E16817371007" target="_blank"></a><a href="http://www.newegg.com/Product/Product.aspx?item=N82E16817371007" target="_blank">Antec earthwatts EA500 500W Continuous Power ATX12V v2.0 SLI Certified CrossFire Ready 80 PLUS Certified Active PFC Power &#8230; &#8211; Retail</a></li>
<li><a href="http://www.newegg.com/Product/Product.aspx?Item=N82E16813131382" target="_blank"><span> ASUS M4N78 Pro AM3/AM2+/AM2 NVIDIA GeForce 8300 HDMI ATX AMD Motherboard &#8211; Retail </span></a></li>
<li><a href="http://www.newegg.com/Product/Product.aspx?Item=N82E16822136284" target="_blank"><span>Western Digital Caviar Black WD1001FALS 1TB 7200 RPM SATA 3.0Gb/s 3.5&#8243; Hard Drive &#8211; OEM </span></a></li>
<li><a href="http://www.newegg.com/Product/Product.aspx?Item=N82E16811146035" target="_blank"><span>NZXT HUSH Black SECC Steel/ Aluminum/ Plastic ATX Mid Tower Computer Case &#8211; Retail </span></a></li>
<li><a href="http://www.newegg.com/Product/Product.aspx?Item=N82E16827249037" target="_blank"><span>PLEXTOR 20X DVD Super Multi Qflix Drive Black SATA Model PX-806SA SW &#8211; Retail</span></a></li>
</ul>
<h1>Biased Summary</h1>
<p>I&#8217;ll start off with the most obvious and least controversial conclusion: you&#8217;d be crazy not to get a custom built machine. Due to the geeky tendencies of this blog, most people reading this are likely to be fellow geeks. Any geek worth their weight in <a href="http://en.wikipedia.org/wiki/Cathode_ray_tube" target="_blank">old CRT monitors</a> can put that machine together. If however you are not a geek, surely you know someone who is. For $200 and a few hours to play with all the shiny parts, any geek would be glad to put this machine together for you, and you&#8217;d still be saving a huge amount of money.</p>
<p>Now for the slightly more controversial conclusions. I believe that a higher price does play a role in a person&#8217;s decision to buy a Mac. It is certainly not the only factor, since as far as OEM equipment goes, Apple is fairly nice. I agree that Apple has some very high quality hardware. However, the hardware in each of these machines is very similar, and all high quality, and yet the Apple machine is $1,170 more expensive than the second most expensive and yet very similar machine. You could even get any one of these machines and put OSX on it yourself if Apple would let you (or you felt like using <a href="https://thepiratebay.org" target="_blank">The Pirate Bay</a>).</p>
<p>Given the fact that all four machines are very similar, lets assume for a moment that the custom built machine represents the price each manufacturer pays to build their computer (not quite accurate, as the OEM&#8217;s save money by buying parts in bulk). This would mean that what you are really buying from an OEM is the convenience of having someone else put a computer together for you. That convenience costs you $2,240 if Apple builds it and $1,070 if Dell builds it. The lowest OEM service price is from System76, at $480, which is just over twice my recommended build price from the friendly neighborhood geek.</p>
<p>My numbers are certianly not perfect, especially since it is impossible to get an exactly identical machine from two OEMs. However, even after doing tweaking for any innacuracies in my calculations or configurations, I think your findings will be the same: all OEMs are expensive, but Apple is by far the most expensive.</p>
]]></content:encoded>
			<wfw:commentRss>http://crashsystems.net/2009/05/mac-high-price/feed/</wfw:commentRss>
		<slash:comments>15</slash:comments>
		</item>
		<item>
		<title>New Web Host</title>
		<link>http://crashsystems.net/2009/03/new-web-host/</link>
		<comments>http://crashsystems.net/2009/03/new-web-host/#comments</comments>
		<pubDate>Fri, 27 Mar 2009 00:11:29 +0000</pubDate>
		<dc:creator>Douglass Clem</dc:creator>
				<category><![CDATA[Technology]]></category>
		<category><![CDATA[django]]></category>
		<category><![CDATA[internet]]></category>
		<category><![CDATA[web development]]></category>
		<category><![CDATA[WordPress]]></category>

		<guid isPermaLink="false">http://crashsystems.net/?p=220</guid>
		<description><![CDATA[This afternoon I took the plunge and transfered my website from BlueHost to Webfaction. There are two main reasons for this switch. First of all, I&#8217;ve been learning website programming with Python and the Django framework. My previous host does not support Django, and it seems Webfaction is the most popular host among Django geeks. [...]]]></description>
			<content:encoded><![CDATA[<p>This afternoon I took the plunge and transfered my website from BlueHost to Webfaction. There are two main reasons for this switch. First of all, I&#8217;ve been learning website programming with Python and the Django framework. My previous host does not support Django, and it seems Webfaction is the most popular host among Django geeks. Also, BlueHost does seem to oversell a litle too much, while I&#8217;ve heard good things about Webfaction in that regard. There is one good thing that I&#8217;ll say about Bluehost though, which is that their tech support is friendly and very fast.</p>
<p>This afternoon I purchased my Webfaction account, then made a dump of my MySql DB for Wordpress, created a tarball of the Wordpress site files, then downloaded both to my laptop. Webfaction supports full shell/SSH goodness, so I then SCP&#8217;d both files to the server. I had a bit of trouble with importing my MySql dump into a new database, so within minutes of submitting a support ticket, I recieved a responce containing two SED lines to fix the problem. A few minutes latter I was up and running.</p>
<p>30 minutes ago I pointed my domain name to the new servers, and I am waiting for the settings to propagate to DNS servers world wide. Meanwhile, Webfaction does not provide DNS hosting, so I purchased a Network Solutions account, and am waiting for crashsystems.net to transfer there. Once that happens, I&#8217;ll finally be able to create my own bloody cname records (DNS tunnel FTW!).</p>
]]></content:encoded>
			<wfw:commentRss>http://crashsystems.net/2009/03/new-web-host/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Boot Performance In Ubuntu 9.04</title>
		<link>http://crashsystems.net/2009/03/boot-performance-in-ubuntu-904/</link>
		<comments>http://crashsystems.net/2009/03/boot-performance-in-ubuntu-904/#comments</comments>
		<pubDate>Wed, 25 Mar 2009 23:00:59 +0000</pubDate>
		<dc:creator>Douglass Clem</dc:creator>
				<category><![CDATA[Technology]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[ubuntu]]></category>

		<guid isPermaLink="false">http://crashsystems.net/?p=213</guid>
		<description><![CDATA[For several weeks I've been enjoying the Jaunty bootup goodness. Today I ran bootchart to see just how fast that boot is.]]></description>
			<content:encoded><![CDATA[<p>Inspired by a meme making it&#8217;s rounds on <a href="http://planet.ubuntu.com/" target="_blank">Planet Ubuntu</a> and elsewhere on the interwebs, I decided to profile my boot. For several weeks now I have been running the development version of Ubuntu 9.04, and reporting the occasional bug. So far everything has been very stable.</p>
<p>I have 9.04 installed on my Inspiron 1420, using the ext4 filesystem (also quite stable in my experience), with noatime set in /etc/fstab. My CPU is an Intel Core 2 Duo clocked at 1.5 GHz, 4GB of ram and a very average 80GB SATA hard drive.</p>
<p>Profiling a boot with bootchart was as simple as &#8220;sudo apt-get install bootchart&#8221;. With that done, I just rebooted my machine. Once I was back up, there was a .png file in /var/log/bootchart containing the details of my boot process.</p>
<p><strong>Boot time == 20.27 seconds!</strong></p>
<p>And now for the gory details&#8230;</p>
<p><a href="http://crashsystems.net/wp-content/uploads/2009/03/bootchart.png"><img class="aligncenter size-full wp-image-214" title="bootchart" src="http://crashsystems.net/wp-content/uploads/2009/03/bootchart.png" alt="bootchart" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://crashsystems.net/2009/03/boot-performance-in-ubuntu-904/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>New GnuPG keys</title>
		<link>http://crashsystems.net/2009/03/new-gnupg-keys/</link>
		<comments>http://crashsystems.net/2009/03/new-gnupg-keys/#comments</comments>
		<pubDate>Sun, 15 Mar 2009 17:58:34 +0000</pubDate>
		<dc:creator>Douglass Clem</dc:creator>
				<category><![CDATA[Technology]]></category>
		<category><![CDATA[security]]></category>

		<guid isPermaLink="false">http://crashsystems.net/?p=198</guid>
		<description><![CDATA[The idea behind encryption is to make the difficulty of retrieving your private messages higher than the value the attacker perceives in retreating those private messages. In theory, the more content you protect with a set of keys, the more worthwhile an attempt to try to break the cryptography (or whack the key owner upside [...]]]></description>
			<content:encoded><![CDATA[<p>The idea behind encryption is to make the difficulty of retrieving your private messages higher than the value the attacker perceives in retreating those private messages. In theory, the more content you protect with a set of keys, the more worthwhile an attempt to try to break the cryptography (or <a href="http://xkcd.com/538/" target="_blank">whack</a> the key owner upside the head with a wrench) . Because of this, it is a good idea to make new keys every few years.</p>
<p>I have done just that. I&#8217;ve created two files, each containing text explaining that I&#8217;ve created new keys. The <a href="http://crashsystems.net/oldkey.txt" target="_blank">first copy</a> is signed by my old key, <a href="http://keyserver.ubuntu.com:11371/pks/lookup?search=0x298F2C22249D8A7DD16ABCA32731ABF2284005FE&amp;op=index" target="_blank">284005FE</a>. The <a href="http://crashsystems.net/newkey.txt" target="_blank">second copy</a> is signed by my new key, <a href="http://keyserver.ubuntu.com:11371/pks/lookup?search=0x608821A3B9C16DF29548E1F6ADF388B4E5C4E3B1&amp;op=index" target="_blank">E5C4E3B1</a>. If you already trust my old key, then you can verify these signatures to prove that you can trust my new key. If not, feel free to arrange a <a href="http://en.wikipedia.org/wiki/Key_signing_party" target="_blank">key signing party</a> with me. Bring beer or coffee.</p>
]]></content:encoded>
			<wfw:commentRss>http://crashsystems.net/2009/03/new-gnupg-keys/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Simple email encryption with FireGPG</title>
		<link>http://crashsystems.net/2009/03/email-encryption-guide-2/</link>
		<comments>http://crashsystems.net/2009/03/email-encryption-guide-2/#comments</comments>
		<pubDate>Wed, 04 Mar 2009 01:26:32 +0000</pubDate>
		<dc:creator>Douglass Clem</dc:creator>
				<category><![CDATA[Miscellaneous]]></category>
		<category><![CDATA[Email Encryption guide]]></category>
		<category><![CDATA[internet]]></category>
		<category><![CDATA[Planet YWAM]]></category>
		<category><![CDATA[security]]></category>
		<category><![CDATA[Technology]]></category>

		<guid isPermaLink="false">http://crashsystems.net/?p=184</guid>
		<description><![CDATA[Privacy was once the default for most conversations between individuals. While the Internet has become an extremely useful tool for facilitating conversation, it has also done away with almost all of the privacy that was once inherent in communication. This has profound societal consequences that few have even begun to contemplate. Furthermore, the spread of [...]]]></description>
			<content:encoded><![CDATA[<p>Privacy was once the default for most conversations between individuals. While the Internet has become an extremely useful tool for facilitating conversation, it has also done away with almost all of the privacy that was once inherent in communication. This has profound societal consequences that few have even begun to contemplate. Furthermore, the spread of unencrypted email means that it is nearly trivial for various repressive governments to spy on those who differ from the government sanctioned political and religious norms.</p>
<p>Though the technology was once <a href="http://www.eff.org/press/archives/2008/04/21-37" target="_blank">closely guarded</a> by the United States government as a form of export controlled munitions, encryption is now freely available to the masses. However, much of the technology is not easily <em>understandable</em> by the masses. With this in mind, I wrote <em><a href="http://crashsystems.net/projects/email-encryption-guide/">Simple email encryption with FireGPG</a></em> as a cross platform guide for email encryption, with a target audience of ordinary, non-technical Internet users.</p>
<p><em>Simple email encryption with FireGPG</em> is licensed under a Creative Commons <a href="http://creativecommons.org/licenses/by-sa/3.0/us/" target="_blank">Attribution Share Alike license</a>, meaning you are free to copy it, share it, modify and translate it, as long as you do so under the terms of the license. If you do make a derivative or translation, please tell me about it so that I can link to it from the project page.</p>
<p>I plan on periodically updating the guide as changes are made in the <a href="http://getfiregpg.org" target="_blank">FireGPG</a> extension. If you have suggestions for improvement, please leave a comment on this page or <a href="http://crashsystems.net/contact-info/">contact me</a>. You can subscribe to <a href="http://crashsystems.net/tag/email-encryption-guide/feed/" target="_blank">this RSS</a> feed for updates.</p>
<h2>Download Version 1.0</h2>
<ul>
<li><a href="http://ia331426.us.archive.org/3/items/SimpleEmailEncryptionWithFiregpgVersion1.0/Email-Encryption-Guide_v1.0.odt" target="_blank">Open Document Format</a></li>
<li><a href="http://ia331426.us.archive.org/3/items/SimpleEmailEncryptionWithFiregpgVersion1.0/Email-Encryption-Guide_v1.0.pdf" target="_blank">PDF</a> (<a href="http://www.scribd.com/doc/12961528/Email-Encryption-Guide-v10" target="_blank">view in browser</a>)</li>
<li><a href="http://ia331426.us.archive.org/3/items/SimpleEmailEncryptionWithFiregpgVersion1.0/Email-Encryption-Guide_v1.0_media.zip" target="_blank">Screenshot files</a>, both original and edited (for remixing)</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://crashsystems.net/2009/03/email-encryption-guide-2/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Contemplations: Unofficial Identi.ca Group Etiquette</title>
		<link>http://crashsystems.net/2009/01/identica-group-etiquette/</link>
		<comments>http://crashsystems.net/2009/01/identica-group-etiquette/#comments</comments>
		<pubDate>Sun, 25 Jan 2009 02:30:56 +0000</pubDate>
		<dc:creator>Douglass Clem</dc:creator>
				<category><![CDATA[Technology]]></category>
		<category><![CDATA[identi.ca]]></category>
		<category><![CDATA[internet]]></category>

		<guid isPermaLink="false">http://crashsystems.net/?p=162</guid>
		<description><![CDATA[Well, here goes my first attempt to create a blog post intended for starting a conversation&#8230;
As I&#8217;m sure most users have noticed, the Open Source microblogging site Identi.ca underwent a major revamp on 23rd January. In addition to having a very cool new &#8220;Web 2.0&#8243; visual theme, the groups feature was added. As the name [...]]]></description>
			<content:encoded><![CDATA[<p>Well, here goes my first attempt to create a blog post intended for starting a conversation&#8230;</p>
<p>As I&#8217;m sure most users have noticed, the Open Source microblogging site <a href="http://identi.ca" target="_blank">Identi.ca</a> underwent a major revamp on 23rd January. In addition to having a very cool new &#8220;Web 2.0&#8243; visual theme, the <a href="http://identi.ca/group" target="_blank">groups</a> feature was added. As the name implies, this feature allows users to join groups based upon interest, location etc.</p>
<p>Like so many other things, I believe this great feature has one potential downside. Just as one can follow too many people, and therefore become overwhelmed by information overload, it is also quite possible to have groups that fail to serve any real purpose, due to the high level of traffic.</p>
<p>I think part of the issue is due to how easy it can be to <a href="http://identi.ca/notice/1948562" target="_blank">confuse</a> groups with hashtags. They are quite similar, aside from the fact that when a message is sent to a group, it is seen by every member. Some people might think that some sort of control mechanism must be built in to regulate group usage behavior, but I am of the opinion that enforcement should be avoided whenever possible.</p>
<p>There are all sorts of unofficial, unenforced rules that govern society, more commonly known as etiquette. With that in mind, what do you think would be some good unofficial guidelines for the group feature? Feel free to comment below, and/or post your ideas. If you do post, please use the <a href="http://identi.ca/tag/Etiquette" target="_blank">#etiquette</a> tag.</p>
]]></content:encoded>
			<wfw:commentRss>http://crashsystems.net/2009/01/identica-group-etiquette/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Keryx Tutorial: Bringing Updates Home</title>
		<link>http://crashsystems.net/2009/01/keryx-tutorial/</link>
		<comments>http://crashsystems.net/2009/01/keryx-tutorial/#comments</comments>
		<pubDate>Sun, 04 Jan 2009 21:34:18 +0000</pubDate>
		<dc:creator>Douglass Clem</dc:creator>
				<category><![CDATA[Technology]]></category>
		<category><![CDATA[Add new tag]]></category>
		<category><![CDATA[internet]]></category>
		<category><![CDATA[keryx]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[programming]]></category>
		<category><![CDATA[python]]></category>
		<category><![CDATA[ubuntu]]></category>

		<guid isPermaLink="false">http://crashsystems.net/?p=125</guid>
		<description><![CDATA[Update 20/2/09: Keryx 0.92 has been released, with several new features and a few important bug fixes. If you are using the previous version, please upgrade now. Check out the release notes for a list of what has changed. For a screenshot walk-through of the changes, check out this blog post.

Though in most North American [...]]]></description>
			<content:encoded><![CDATA[<p><em>Update 20/2/09: Keryx 0.92 has been released, with several new features and a few important bug fixes. If you are using the previous version, please upgrade now. Check out the <a href="http://keryxproject.org/forum/index.php/topic,43.msg253.html" target="_blank">release notes</a> for a list of what has changed. For a screenshot walk-through of the changes, check out <a href="http://excid3.betaserver.org/2009/02/20/keryx-092-release/" target="_blank">this blog post</a>.<br />
</em></p>
<p>Though in most North American cities one cannot find a spot <em>without</em> at least a weak WiFi signal, many of us Linux geeks still live in rural areas with less Internet connectivity. Also, in various non-Westernized nations, there is a growing number of Linux users who may have a computer at home, but cannot afford a decent connection. For both groups, software updates typically demand an Internet connection, which can make updating difficult if not impossible. There is now a solution though, a new program called Keryx.</p>
<p><a href="http://keryxproject.org/" target="_blank">Keryx</a> was written by Southern Illinois University computer science student <a href="http://excid3.betaserver.org/" target="_blank">Chris Oliver</a>, who wanted a way  to download software and updates for Ubuntu systems that had little or no connectivity. Simply put Keryx on your pen drive, use it to create a new project file which retains a copy of your software sources and other system details, then take the pen drive to a computer with a better connection. Via it&#8217;s Synaptic like interface, users can then select all updates for download, plus select any other software they may want to install, complete with dependency resolution.</p>
<p>Because it is written in Python, and utilizes wxWidgets for it&#8217;s interface, Keryx can run on Linux, OSX and Windows. Pre-compiled binaries for Windows are included in the download (meaning you don&#8217;t need to install Python and wxWidgets first), and similar binaries for OSX and Linux are in the development road-map, along with Debian/Ubuntu packages.</p>
<h1><a name="using-keryx">Using Keryx</a><a href="#using-keryx">.</a></h1>
<p>This tutorial will walk you through the simple process of using Keryx to get updates and new software. Keryx currently only works for Debian based distros, but there are plans for adding support for a number of other package management systems. The system being updated is running Ubuntu 8.10, with no network connectivity. The system that will be grabbing the updates is running Windows XP, though it could just as easily be Windows 95 through Vista, OSX, or another Linux box.</p>
<h2><a name="download-keryx">Step #1: Download Keryx</a><a href="#download-keryx">.</a></h2>
<p><a class="thickbox" href="http://crashsystems.net/wp-content/uploads/2009/01/keryx-1.png"><img class="ngg-singlepic ngg-right alignright" src="http://crashsystems.net/wp-content/uploads/2009/01/keryx-1.png" alt="Extract the zip file" width="55" height="100" /></a><br />
Go to the <a href="http://keryxproject.org/" target="_blank">Keryx</a> website and click the <a href="http://keryxproject.org/ccount/click.php?id=7" target="_blank">download</a> link. Once the download is complete, put it on a USB pen drive that has a decent amount of free space, and unzip it.</p>
<h2><a name="create-a-project">Step #2: Create a project</a><a href="#create-a-project">.</a></h2>
<p><a class="thickbox" href="http://crashsystems.net/wp-content/uploads/2009/01/keryx-cli-new.png"><img class="ngg-singlepic ngg-right alignright" src="http://crashsystems.net/wp-content/uploads/2009/01/keryx-cli-new.png" alt="Starting a project from the CLI" width="100" height="55" /></a><br />
Keryx uses wxWidgets for it&#8217;s graphical interface, and a default Ubuntu install does not have wxWidgets installed. Therefore you must create your project file in a terminal window. Fear not, as it is really quite quick and painless.</p>
<p>Simply open up your terminal, and then navigate into the &#8220;linux&#8221; directory inside the Keryx folder. On my computer this was &#8220;/media/disk/keryx-0.91/linux&#8221; but it will look a little different for you, depending upon what your pen drive is called. Once you are in that directory, enter in the following, making sure to replace &lt;project&gt; for whatever you want to call your project and &lt;plugin&gt; for they type of system you are updating, in this case debian.</p>
<blockquote><p>python keryx.py &#8211;create &lt;project&gt; &lt;plugin&gt;</p>
<p>note: the above is <em>two dashes</em>, but my font makes it look like one.</p></blockquote>
<p>In a few moments the project will be made. When this happens, close out of the terminal and safely remove your pen drive, to take to another computer.</p>
<p><em>Note: For some people, Keryx may experience difficulty fetching the package list files in the next step, if their repository mirror is set to the regional default. If you experience this, consider selecting a different mirror in System/Administration/Software_Sources and then repeating step #2.</em></p>
<h2><a name="opening-keryx">Step #3: Opening Keryx and downloading the package list</a><a href="#opening-keryx">.</a></h2>
<p>In this tutorial I am using a computer running Windows XP as the computer with a high speed connection. However, this could just as easily be done on any Linux or OSX computer, so long as they both had Python and wxWidgets installed.</p>
<p><a class="thickbox" href="http://crashsystems.net/wp-content/uploads/2009/01/keryx-3.png"><img class="ngg-singlepic ngg-right alignright" src="http://crashsystems.net/wp-content/uploads/2009/01/keryx-3.png" alt="The Keryx main window" width="100" height="75" /></a><br />
On your Windows computer, plug in the pen drive and open up the Keryx folder. In this folder you will see a &#8220;win32&#8243; folder containing prepackaged binaries for Keryx. Using these you can run Keryx without having to first install Python and wxWidgets, making Keryx a very portable application. The file you need to run is called &#8220;keryx.exe,&#8221; though Windows may hide the .exe part from you. When Keryx opens, click &#8220;Open Project&#8221; and find the project file you created a few minutes ago.</p>
<p><a class="thickbox" href="http://crashsystems.net/wp-content/uploads/2009/01/keryx-4.png"><img class="ngg-singlepic ngg-right alignright" src="http://crashsystems.net/wp-content/uploads/2009/01/keryx-4.png" alt="Downloading package lists" width="100" height="75" /></a><br />
When you open Keryx, go ahead and let it download the latest package list.</p>
<h2><a name="download-updates">Step #4: Download updates</a><a href="#download-updates">.</a></h2>
<p><a class="thickbox" href="http://crashsystems.net/wp-content/uploads/2009/01/keryx-5.png"><img class="ngg-singlepic ngg-right alignright" src="http://crashsystems.net/wp-content/uploads/2009/01/keryx-5.png" alt="The package list" width="100" height="75" /></a><br />
Once the package lists have been downloaded, you&#8217;ll see the full Synaptic-like package list in Keryx. This list can be sorted by package name, status (not installed, installed, needs updating, etc.), etc. The first thing you&#8217;ll want to do is click &#8220;Get Updates&#8221; near the top of the window.</p>
<p><a class="thickbox" href="http://crashsystems.net/wp-content/uploads/2009/01/keryx-6.png"><img class="ngg-singlepic ngg-right alignright" src="http://crashsystems.net/wp-content/uploads/2009/01/keryx-6.png" alt="Snarfing 210 updates..." width="100" height="75" /></a><br />
When I started the download, Keryx had 210 files to download. Your number will vary, but you are likely to have a lot of updates if you have a fresh install. Keryx will tell you when it is finished, so you might want to go get some coffee.</p>
<h2><a name="download-wxwidgets">Step #5: Download wxWidgets</a><a href="#download-wxwidgets">.</a></h2>
<p><a class="thickbox" href="http://crashsystems.net/wp-content/uploads/2009/01/keryx-7.png"><img class="ngg-singlepic ngg-right alignright" src="http://crashsystems.net/wp-content/uploads/2009/01/keryx-7.png" alt="Searching for a package" width="100" height="75" /></a><br />
You probably want to be able to install wxWidgets on your Ubuntu system, so that you can run the Keryx graphical interface on it. Near the top of the window, start typing &#8220;wxversion&#8221; in the search field. Because the Keryx package search tool is so amazingly fast, you&#8217;ll only need to type the first few letters before you see python-wxversion. Right-click this package and then click download. It has several dependencies that Keryx will tell you about, so go ahead and let the program download those as well.</p>
<h2><a name="install-packages">Step #6: Install your packages</a><a href="#install-packages">.</a></h2>
<p><a class="thickbox" href="http://crashsystems.net/wp-content/uploads/2009/01/keryx-8.png"><img class="ngg-singlepic ngg-right alignright" src="http://crashsystems.net/wp-content/uploads/2009/01/keryx-8.png" alt="Installing updates via dpkg" width="125" height="65" /></a><br />
With all your packages downloaded, close Keryx, safely remove your pen drive, and go back to your Ubuntu machine. When you plug the pen drive back into your Ubuntu machine, you&#8217;ll notice that the package are stored in projects/&lt;project&gt;/packages (where &lt;project&gt; is the name you gave the project). You&#8217;ll need to open up your terminal again, and navigate to this directory. Once there, run the following:</p>
<blockquote><p>sudo dpkg -i &#8211;force-depends *.deb</p></blockquote>
<p><a class="thickbox" href="http://crashsystems.net/wp-content/uploads/2009/01/keryx-9.png"><img class="ngg-singlepic ngg-right alignright" src="http://crashsystems.net/wp-content/uploads/2009/01/keryx-9.png" alt="Running updates" width="100" height="75" /></a><br />
This line will install and/or update all the packages in that directory. The &#8220;force-depends&#8221; parameter is necessary in this case, as we are installing the wxWidgets packages, which have a circular dependency. Without this parameter, dpkg will start whining at you. If you have as many packages as I had, this may take a while. Go refill your coffee, and by the time you get back, the install might be done. Thats all there is to it!</p>
<h1><a name="keryx-next-steps">What is next for Keryx?</a><a href="#keryx-next-steps">.</a></h1>
<p>Despite already being a rather useful tool, there are a lot of enhancements planed for the near future with Keryx. Most of it&#8217;s features, including it&#8217;s package management support, are implemented via a very flexible plugin infrastructure. So if you are a Python hacker and would like to help implement some of the new features, or have some ideas of your own, feel free to check out the code and dive in!</p>
<p>If you run into any problems using Keryx, or would like to report a bug, check out the <a href="http://keryxproject.org/forum" target="_blank">friendly forums</a>.</p>
<h2><a name="upcoming-features">Upcoming features</a><a href="#upcoming-features">.</a></h2>
<ul>
<li>Support for more distributions, such as Fedora, Red Hat, Mandriva et al.</li>
<li>Package management like support for downloading and installing useful Open Source Windows software.</li>
<li>Built-in installation of downloaded packages, so the user need not mess with the CLI</li>
<li>Pre-compiled self contained binaries for Linux and OSX (like what already exists in the win32 folder), so that no matter what OS a user is running, they will be able to simply plug in their USB drive and run the graphical interface.</li>
<li>Improved documentation</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://crashsystems.net/2009/01/keryx-tutorial/feed/</wfw:commentRss>
		<slash:comments>38</slash:comments>
		</item>
	</channel>
</rss>
