<?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>Egeste.NET</title>
	<atom:link href="http://egeste.net/feed/" rel="self" type="application/rss+xml" />
	<link>http://egeste.net</link>
	<description>Some Random Phrase</description>
	<lastBuildDate>Mon, 23 Jan 2012 22:17:03 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.4-alpha-19847</generator>
		<item>
		<title>Swedish people still use midi ringtones</title>
		<link>http://egeste.net/blog/2011/09/03/swedish-people-still-use-midi-ringtones/</link>
		<comments>http://egeste.net/blog/2011/09/03/swedish-people-still-use-midi-ringtones/#comments</comments>
		<pubDate>Sat, 03 Sep 2011 15:13:02 +0000</pubDate>
		<dc:creator>Egeste</dc:creator>
				<category><![CDATA[Culture]]></category>
		<category><![CDATA[Infected Mushroom]]></category>
		<category><![CDATA[Midi]]></category>
		<category><![CDATA[Music]]></category>
		<category><![CDATA[Psy Trance]]></category>

		<guid isPermaLink="false">http://egeste.net/?p=387</guid>
		<description><![CDATA[I know, right? Polyphonic ringtones are so 2003. But alas, I see alot of referral traffic, mostly from Sweden, of people looking for some old Infected Mushroom midi ringtones I made back in high school. Well, Swedes be appeased! Here &#8230; </p><p><a class="more-link block-button" href="http://egeste.net/blog/2011/09/03/swedish-people-still-use-midi-ringtones/">Continue reading &#187;</a>]]></description>
			<content:encoded><![CDATA[<p>I know, right? Polyphonic ringtones are <em>so</em> 2003. But alas, I see alot of referral traffic, mostly from Sweden, of people looking for some old Infected Mushroom midi ringtones I made back in high school. Well, Swedes be appeased! Here they are:</p>
<p><a href='http://egeste.net/wp-content/uploads/2011/09/InfectedMushroom-BustAMove.mid'>Infected Mushroom &#8211; Bust A Move</a></p>
<p><a href='http://egeste.net/wp-content/uploads/2011/09/InfectedMushroom-Shakawkaw.mid'>Infected Mushroom &#8211; Shakawkaw</a></p>
]]></content:encoded>
			<wfw:commentRss>http://egeste.net/blog/2011/09/03/swedish-people-still-use-midi-ringtones/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
<enclosure url="http://egeste.net/wp-content/uploads/2011/09/InfectedMushroom-BustAMove.mid" length="137894" type="audio/midi" />
<enclosure url="http://egeste.net/wp-content/uploads/2011/09/InfectedMushroom-Shakawkaw.mid" length="56278" type="audio/midi" />
		</item>
		<item>
		<title>Potbelly Pig Ascii</title>
		<link>http://egeste.net/blog/2011/09/02/potbelly-pig-ascii/</link>
		<comments>http://egeste.net/blog/2011/09/02/potbelly-pig-ascii/#comments</comments>
		<pubDate>Fri, 02 Sep 2011 02:00:09 +0000</pubDate>
		<dc:creator>Egeste</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://egeste.net/?p=385</guid>
		<description><![CDATA[In a weird stretch of weirdness, a prospective employer asked me to send them some ascii art I made. So I made an ascii art image of my pet potbelly pig, Senator Jambon. _-------_ _------_ /\ / *---______---* *-//&#124;&#124;_ / &#8230; </p><p><a class="more-link block-button" href="http://egeste.net/blog/2011/09/02/potbelly-pig-ascii/">Continue reading &#187;</a>]]></description>
			<content:encoded><![CDATA[<p>In a weird stretch of weirdness, a prospective employer asked me to send them some ascii art I made. So I made an ascii art image of my pet potbelly pig, Senator Jambon.</p>

<div class="wp_syntax"><div class="code"><pre class="output" style="font-family:monospace;">      _-------_               _------_   /\
     /          *---______---*        *-//||_
    /                                  (    (*\___-.
   /|                                            ( |
  /|                            |        (     ___/ 
 /  \    /                       \      /-____/
/\   |   \--___             ___---|    \
/\    \  |      *----____--*       \  |
       \ \                          \ \
         \\                           \\</pre></div></div>

]]></content:encoded>
			<wfw:commentRss>http://egeste.net/blog/2011/09/02/potbelly-pig-ascii/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Step By Step: How to root the Motorola I1</title>
		<link>http://egeste.net/blog/2011/08/30/step-by-step-how-to-root-the-motorola-i1/</link>
		<comments>http://egeste.net/blog/2011/08/30/step-by-step-how-to-root-the-motorola-i1/#comments</comments>
		<pubDate>Tue, 30 Aug 2011 14:36:23 +0000</pubDate>
		<dc:creator>Egeste</dc:creator>
				<category><![CDATA[Android]]></category>
		<category><![CDATA[Devices]]></category>
		<category><![CDATA[Featured]]></category>

		<guid isPermaLink="false">http://egeste.net/?p=352</guid>
		<description><![CDATA[One of my friends came to me and asked if I would help her root her Motorola I1. Always up to help friends liberate their devices, I told her I would, then set out on my google quest to find &#8230; </p><p><a class="more-link block-button" href="http://egeste.net/blog/2011/08/30/step-by-step-how-to-root-the-motorola-i1/">Continue reading &#187;</a>]]></description>
			<content:encoded><![CDATA[<p>One of my friends came to me and asked if I would help her root her Motorola I1. Always up to help friends liberate their devices, I told her I would, then set out on my google quest to find all the resources this process would require. As is usually the case with unpopular, niche, or older devices like the Motorola I1, there was a lot of non-working scripts and a hefty handful of misguidance. This article is intended to replace other articles on the subject. Hopefully, you found this article first and didn&#8217;t have to waste too much of your time messing around with the others.</p>
<p><strong><em>Caution:</em></strong> You <strong>must</strong> know how to use the command line to do this. I provide no guarantees and cannot be held liable for any damage that may occur to your phone by following this guide. This is for informational purposes only.</p>
<p><strong>Step 1. Install the android sdk</strong><br />
I won&#8217;t go into this in detail. There are maintained &#038; updated instructions at <a href="http://developer.android.com/sdk/installing.html#Installing" target="_blank">http://developer.android.com/sdk/installing.html#Installing</a></p>
<p><strong>Step 2. Enable USB debugging on your phone</strong><br />
An excerpt from: <a href="http://developer.android.com/guide/developing/device.html" target="_blank">http://developer.android.com/guide/developing/device.html</a></p>
<blockquote><p>Turn on &#8220;USB Debugging&#8221; on your device.<br />
On the device, go to Settings > Applications > Development and enable USB debugging.</p></blockquote>
<p>Once this is complete, plug your phone into your computer via your USB cable.</p>
<p><strong>Step 3. Get the files</strong><br />
The files are available in .zip and .tgz archives <a href="http://archive.egeste.net/android/motorola-i1/" target="_blank">here.</a> You don&#8217;t need both. The tgz is there for convenience for those who prefer it. Once you have the archive, unzip it somewhere that&#8217;s easy to get to from a command line.</p>
<p><strong>Step 4. Edit the install file</strong><br />
I was hoping to automate this step so you didnt have to do it manually, but unfortunately stock android (at least 1.5) does not have the gnu-utils necessary to do this &#8211; so you&#8217;ll have to do it by hand&#8230; Thankfully, it&#8217;s not a terribly difficult process.<br />
In your local terminal (on your computer, not on the device), run the following command:</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;">adb shell <span style="color: #c20cb9; font-weight: bold;">mount</span></pre></div></div>

<p>You will see a bunch of output that looks something like this:</p>
<pre class="output">rootfs / rootfs ro 0 0
tmpfs /dev tmpfs rw,mode=755 0 0
devpts /dev/pts devpts rw,mode=600 0 0
proc /proc proc rw 0 0
sysfs /sys sysfs rw 0 0
tmpfs /sqlite_stmt_journals tmpfs rw,size=4096k 0 0
/dev/block/mtdblock10 /phx/cp yaffs2 rw 0 0
/dev/block/mtdblock18 /phx/cpb yaffs2 rw 0 0
/dev/block/mtdblock17 /phx/bp squashfs ro 0 0
/dev/block/mtdblock15 /phx/csd squashfs ro 0 0
/dev/block/mtdblock14 /phx/ue squashfs ro 0 0
/dev/block/mtdblock11 /phx/logger yaffs2 rw 0 0
<span style="background-color:yellow;">/dev/block/mtdblock7</span> /system yaffs2 ro 0 0
/dev/block/mtdblock9 /data yaffs2 rw,nosuid,nodev 0 0
/dev/block/mtdblock8 /cache yaffs2 rw,nosuid,nodev 0 0
/dev/block/mtdblock12 /data/preload yaffs2 ro 0 0</pre>
<p>I have highlighted the line you are looking for in this example. You want to find the line that shows the device that is mounted to /system. In this example, <span style="background-color:yellow;">/dev/block/mtdblock7</span> is mounted to /system. Yours may be different, hence why we check to see what it is first. Once you have this value, open install.sh in your favorite editor (on Windows, I like <a href="http://notepad-plus-plus.org/" target="_blank">Notepad++</a>), there are instructions as to where to paste this value. Then save the file and close it.</p>
<p><strong>Step 5. Push the files to the phone</strong><br />
In your local terminal, cd to the directory where you unzipped the files, then run the following commands.</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;">adb push Superuser.apk <span style="color: #000000; font-weight: bold;">/</span>sdcard<span style="color: #000000; font-weight: bold;">/</span>Superuser.apk
adb push busybox <span style="color: #000000; font-weight: bold;">/</span>sdcard<span style="color: #000000; font-weight: bold;">/</span>busybox
adb push <span style="color: #c20cb9; font-weight: bold;">su</span> <span style="color: #000000; font-weight: bold;">/</span>sdcard<span style="color: #000000; font-weight: bold;">/</span><span style="color: #c20cb9; font-weight: bold;">su</span>
adb push rage <span style="color: #000000; font-weight: bold;">/</span>data<span style="color: #000000; font-weight: bold;">/</span>local<span style="color: #000000; font-weight: bold;">/</span>tmp<span style="color: #000000; font-weight: bold;">/</span>rage
adb push install.sh <span style="color: #000000; font-weight: bold;">/</span>data<span style="color: #000000; font-weight: bold;">/</span>local<span style="color: #000000; font-weight: bold;">/</span>tmp<span style="color: #000000; font-weight: bold;">/</span>install.sh
adb shell <span style="color: #c20cb9; font-weight: bold;">chmod</span> <span style="color: #000000;">775</span> <span style="color: #000000; font-weight: bold;">/</span>data<span style="color: #000000; font-weight: bold;">/</span>local<span style="color: #000000; font-weight: bold;">/</span>tmp
adb shell <span style="color: #c20cb9; font-weight: bold;">chmod</span> <span style="color: #000000;">755</span> <span style="color: #000000; font-weight: bold;">/</span>data<span style="color: #000000; font-weight: bold;">/</span>local<span style="color: #000000; font-weight: bold;">/</span>tmp<span style="color: #000000; font-weight: bold;">/*</span></pre></div></div>

<p><strong>Step 6. Install ConnectBot</strong><br />
Pretty straightforward. Install ConnectBot from the android market. This method may work with other terminal apps, but I have not tested them. I had no luck getting this method to work over ADB.</p>
<p><strong>Step 7. Execute rage</strong><br />
Open ConnectBot and connect to your phone, then issue the following command:</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">/</span>data<span style="color: #000000; font-weight: bold;">/</span>local<span style="color: #000000; font-weight: bold;">/</span>tmp<span style="color: #000000; font-weight: bold;">/</span>rage</pre></div></div>

<p><strong>Step 8. WAIT</strong><br />
This has its own step because it&#8217;s really important. You have to wait. Be patient. I know, it&#8217;s hard, you&#8217;re excited, but don&#8217;t get all button happy. you&#8217;ll mess up the process. The process is complete when you see</p>
<pre class="output">[*] Forked %d childs.</pre>
<p>(Where %d is replaced by the number of threads forked.)</p>
<p>Once you see this message, disconnect from ConnectBot.</p>
<p><strong>Step 9. Check for root and install root utilities</strong><br />
Open ConnectBot and reconnect to your phone. Where before you saw the $ character indicating you were in userland, you should now see a # indicating that you are root. If you see the # character, congrats! You&#8217;re almost done and you may proceed. If you still see the $ character, something messed up and you need to backtrace your steps and figure out where you went wrong. If you are now root, issue the following command:</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">/</span>data<span style="color: #000000; font-weight: bold;">/</span>local<span style="color: #000000; font-weight: bold;">/</span>tmp<span style="color: #000000; font-weight: bold;">/</span>install.sh</pre></div></div>

<p>If all went well, this script should have executed with no output and no errors. If everything looks good, go ahead and sync/reboot your phone.</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #c20cb9; font-weight: bold;">sync</span>
reboot</pre></div></div>

<p><strong>Step 10. Test your install</strong><br />
At this point, if all went well, your Motorola I1 should be rooted, rebooted and have all the utilities necessary to escalate to root on the command line or run applications that require root permissions. To be sure that it worked correctly let&#8217;s test it.</p>
<p>To test on your phone with ConnectBot, start ConnectBot, connect to your phone and issue the command:</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #c20cb9; font-weight: bold;">su</span></pre></div></div>

<p>To test from your computer, you can simply run:</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;">adb shell <span style="color: #c20cb9; font-weight: bold;">su</span></pre></div></div>

<p>If you&#8217;re a security-minded individual or a researcher and are interested in the details of how the root escalation works, there is a great article about it <a href="http://dtors.org/2010/08/25/reversing-latest-exploid-release/" target="_blank">here.</a></p>
]]></content:encoded>
			<wfw:commentRss>http://egeste.net/blog/2011/08/30/step-by-step-how-to-root-the-motorola-i1/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>J&#8217;aime le J&#8217;aime le Dubstep</title>
		<link>http://egeste.net/blog/2011/08/23/jaime-le-jaime-le-dubstep/</link>
		<comments>http://egeste.net/blog/2011/08/23/jaime-le-jaime-le-dubstep/#comments</comments>
		<pubDate>Tue, 23 Aug 2011 17:35:58 +0000</pubDate>
		<dc:creator>Egeste</dc:creator>
				<category><![CDATA[Culture]]></category>
		<category><![CDATA[Dubstep]]></category>
		<category><![CDATA[Featured]]></category>
		<category><![CDATA[Music]]></category>
		<category><![CDATA[Podcasts]]></category>

		<guid isPermaLink="false">http://egeste.net/?p=337</guid>
		<description><![CDATA[I just wanted to take a moment and show some love to J&#8217;aime le Dubstep. J&#8217;aime le Dubstep is a fantastic dubstep podcast that never fails to keep it interesting with guest DJs, style variation, and new mixes about twice &#8230; </p><p><a class="more-link block-button" href="http://egeste.net/blog/2011/08/23/jaime-le-jaime-le-dubstep/">Continue reading &#187;</a>]]></description>
			<content:encoded><![CDATA[<p><div id="attachment_338" class="wp-caption alignright" style="width: 160px"><a href="http://egeste.net/2011/jaime-le-jaime-le-dubstep/jldlogo/" rel="attachment wp-att-338"><img src="http://egeste.net/wp-content/uploads/2011/08/JLDlogo-150x150.png" alt="J&#039;Aime le Dubstep Logo" title="J&#039;Aime le Dubstep Logo" width="150" height="150" class="size-thumbnail wp-image-338" /></a><p class="wp-caption-text">J&#039;Aime le Dubstep Logo</p></div><br />
I just wanted to take a moment and show some love to <a href="http://www.jaimeledubstep.com/" target="_blank">J&#8217;aime le Dubstep</a>. J&#8217;aime le Dubstep is a fantastic dubstep podcast that never fails to keep it interesting with guest DJs, style variation, and new mixes about twice a week. If you love dubstep and love to discover new music, you can&#8217;t go wrong with J&#8217;Aime le Dubstep. Fist bump.</p>
]]></content:encoded>
			<wfw:commentRss>http://egeste.net/blog/2011/08/23/jaime-le-jaime-le-dubstep/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Encrypting and backing up your data to Amazon S3 on Mac OSX with duplicity &#8211;  the easy way</title>
		<link>http://egeste.net/blog/2011/03/10/encrypting-and-backing-up-your-data-to-amazon-s3-on-mac-osx-with-duplicity-the-easy-way/</link>
		<comments>http://egeste.net/blog/2011/03/10/encrypting-and-backing-up-your-data-to-amazon-s3-on-mac-osx-with-duplicity-the-easy-way/#comments</comments>
		<pubDate>Thu, 10 Mar 2011 03:24:43 +0000</pubDate>
		<dc:creator>Egeste</dc:creator>
				<category><![CDATA[Administration]]></category>
		<category><![CDATA[Amazon]]></category>
		<category><![CDATA[Backup]]></category>
		<category><![CDATA[bash]]></category>
		<category><![CDATA[Cloud]]></category>
		<category><![CDATA[Code]]></category>
		<category><![CDATA[Computing]]></category>
		<category><![CDATA[Featured]]></category>
		<category><![CDATA[Languages]]></category>
		<category><![CDATA[duplicity]]></category>
		<category><![CDATA[encrypted]]></category>
		<category><![CDATA[gpg]]></category>
		<category><![CDATA[mac]]></category>
		<category><![CDATA[macintosh]]></category>
		<category><![CDATA[osx]]></category>
		<category><![CDATA[pgp]]></category>
		<category><![CDATA[s3]]></category>

		<guid isPermaLink="false">http://www.egeste.net/?p=161</guid>
		<description><![CDATA[Seems like there are guides everywhere on the net telling you different ways you can back up your Mac to Amazon&#8217;s S3 service. They seem to mostly fit into one of a few categories: Just download this tool! Download this &#8230; </p><p><a class="more-link block-button" href="http://egeste.net/blog/2011/03/10/encrypting-and-backing-up-your-data-to-amazon-s3-on-mac-osx-with-duplicity-the-easy-way/">Continue reading &#187;</a>]]></description>
			<content:encoded><![CDATA[<p><div id="attachment_180" class="wp-caption alignright" style="width: 160px"><a href="http://egeste.net/wp-content/uploads/2011/03/amazon-web-services.png"><img src="http://egeste.net/wp-content/uploads/2011/03/amazon-web-services-150x150.png" alt="Amazon Web Services" title="Amazon Web Services" width="150" height="150" class="size-thumbnail wp-image-180" /></a><p class="wp-caption-text">Amazon Web Services</p></div><br />
Seems like there are guides everywhere on the net telling you different ways you can back up your Mac to Amazon&#8217;s S3 service. They seem to mostly fit into one of a few categories:</p>
<ul>
<li>Just download <a href="youre://a.tool">this tool</a>!</li>
<li>Download this <a href="just://no">unnecessarily complex script</a>!</li>
<li>Buy our <a href="http://www.carbonite.com/">more expensive, less flexible backup service</a>!</li>
</ul>
<p>To be fair, the vendors of these Mac Amazon GUI things are doing it for teh moneyz, the guys with the unnecessarily complex scripts are mostly novices trying to be helpful, and carbonite just advertises to panicky old people on the Glenn Beck radio show.</p>
<p>This method uses (instead of a ridiculous huge script) a very simple, one-command bash script. It isn&#8217;t as easy as a one-click GUI, but should be more straightforward than some unnecessarily complex script with little, or poorly written instruction and cheaper than some other crappy backup service. With that in mind, lets start with dependencies.</p>
<p><strong>1. Install dependencies</strong><br />
<a href="http://prdownloads.sourceforge.net/macgpg/GnuPG1.4.9.dmg?download">Mac GPG</a><br />
<a href="http://darwinports.com/download/">DarwinPorts</a><br />
Once DarwinPorts is installed, open up your terminal and install duplicity with the following command:</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #c20cb9; font-weight: bold;">sudo</span> port <span style="color: #c20cb9; font-weight: bold;">install</span> duplicity</pre></div></div>

<p><strong>2. Generate your PGP encryption keys</strong><br />
In terminal, type:</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;">gpg <span style="color: #660033;">--gen-key</span></pre></div></div>

<p>It will look like this.</p>
<pre class="output">gpg (GnuPG/MacGPG2) 2.0.14; Copyright (C) 2009 Free Software Foundation, Inc.
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.

Please select what kind of key you want:
   (1) RSA and RSA (default)
   (2) DSA and Elgamal
   (3) DSA (sign only)
   (4) RSA (sign only)
Your selection? 1
RSA keys may be between 1024 and 4096 bits long.
What keysize do you want? (2048) 4096
Requested keysize is 4096 bits
Please specify how long the key should be valid.
         0 = key does not expire
        = key expires in n days
      w = key expires in n weeks
      m = key expires in n months
      y = key expires in n years
Key is valid for? (0) 10y
Key expires at Sat Mar  6 20:17:39 2021 CST
Is this correct? (y/N) y

GnuPG needs to construct a user ID to identify your key.

Real name: Your Name
Email address: Your@Email.com
Comment: Backup
You selected this USER-ID:
    "Your Name (Backup) &lt;Your@Email.com&gt;"

Change (N)ame, (C)omment, (E)mail or (O)kay/(Q)uit? O
You need a Passphrase to protect your secret key.    

We need to generate a lot of random bytes. It is a good idea to perform
some other action (type on the keyboard, move the mouse, utilize the
disks) during the prime generation; this gives the random number
generator a better chance to gain enough entropy.
We need to generate a lot of random bytes. It is a good idea to perform
some other action (type on the keyboard, move the mouse, utilize the
disks) during the prime generation; this gives the random number
generator a better chance to gain enough entropy.
gpg: key <span style="background-color: yellow;">F60F4441</span> marked as ultimately trusted
public and secret key created and signed.

gpg: checking the trustdb
gpg: 3 marginal(s) needed, 1 complete(s) needed, PGP trust model
gpg: depth: 0  valid:   3  signed:   1  trust: 0-, 0q, 0n, 0m, 0f, 3u
gpg: depth: 1  valid:   1  signed:   0  trust: 0-, 0q, 0n, 0m, 1f, 0u
gpg: next trustdb check due at 2011-12-13
pub   4096R/<span style="background-color: yellow;">F60F4441</span> 2011-03-10 [expires: 2021-03-07]
      Key fingerprint = 4BC0 7C11 8436 5AA9 7378  20BD B2FC A648 F60F 4441
uid                  Your Name (Backup) &lt;Your@Email.com&gt;
sub   4096R/FB487F88 2011-03-10 [expires: 2021-03-07]</pre>
<p>Take note of your PGP key ID. The PGP key in the above example is <span style="background-color: yellow;">F60F4441</span>. You can also discover your key ID by listing your keys:</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;">gpg <span style="color: #660033;">--list-keys</span></pre></div></div>

<p>Which outputs:</p>
<pre class="output">pub   4096R/<span style="background-color: yellow;">F60F4441</span> 2011-03-10 [expires: 2021-03-07]
uid                  Your Name (Backup) &lt;Your@Email.com&gt;
sub   4096R/FB487F88 2011-03-10 [expires: 2021-03-07]</pre>
<p><strong>3. Create a bucket on your Amazon S3 account. In it, create a folder.</strong><br />
<a href="http://www.egeste.net/wp-content/uploads/2011/03/s3_bucket.jpg"><img class="size-full wp-image-166" title="S3 Bucket" src="http://www.egeste.net/wp-content/uploads/2011/03/s3_bucket.jpg" alt="S3 Bucket" /></a></p>
<p><strong>4. Create and configure your backup script.</strong><br />
Create a file called s3backup.sh in your home folder with the following content:</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #666666; font-style: italic;">#!/bin/bash</span>
<span style="color: #007800;">root</span>=<span style="color: #007800;">$HOME</span>
<span style="color: #007800;">gpg_key_id</span>=<span style="color: #ff0000;">''</span>	<span style="color: #666666; font-style: italic;"># Your PGP key ID</span>
<span style="color: #007800;">bucket</span>=<span style="color: #ff0000;">''</span> 	<span style="color: #666666; font-style: italic;"># Your bucket name</span>
<span style="color: #007800;">folder</span>=<span style="color: #ff0000;">''</span>	<span style="color: #666666; font-style: italic;"># Your folder name</span>
&nbsp;
<span style="color: #7a0874; font-weight: bold;">export</span> <span style="color: #007800;">PASSPHRASE</span>=<span style="color: #ff0000;">''</span>	<span style="color: #666666; font-style: italic;"># Your PGP passphrase</span>
&nbsp;
<span style="color: #666666; font-style: italic;"># The following two values can be found in </span>
<span style="color: #666666; font-style: italic;"># your Amazon AWS account page under &quot;Security Credentials&quot;</span>
<span style="color: #7a0874; font-weight: bold;">export</span> <span style="color: #007800;">AWS_ACCESS_KEY_ID</span>=<span style="color: #ff0000;">''</span>	<span style="color: #666666; font-style: italic;"># AWS access key ID</span>
<span style="color: #7a0874; font-weight: bold;">export</span> <span style="color: #007800;">AWS_SECRET_ACCESS_KEY</span>=<span style="color: #ff0000;">''</span>	<span style="color: #666666; font-style: italic;"># AWS secret access key</span>
&nbsp;
<span style="color: #666666; font-style: italic;"># These lines are for the cron environment, which likes to complain</span>
<span style="color: #7a0874; font-weight: bold;">export</span> <span style="color: #007800;">PATH</span>=<span style="color: #007800;">$PATH</span>:<span style="color: #000000; font-weight: bold;">/</span>usr<span style="color: #000000; font-weight: bold;">/</span>local<span style="color: #000000; font-weight: bold;">/</span>bin:<span style="color: #000000; font-weight: bold;">/</span>opt<span style="color: #000000; font-weight: bold;">/</span>local<span style="color: #000000; font-weight: bold;">/</span>bin
<span style="color: #7a0874; font-weight: bold;">ulimit</span> <span style="color: #660033;">-n</span> <span style="color: #000000;">1024</span>
gpg-agent
&nbsp;
duplicity incremental \
<span style="color: #660033;">--include-globbing-filelist</span> <span style="color: #800000;">${root}</span><span style="color: #000000; font-weight: bold;">/</span>.filelist \
<span style="color: #660033;">--encrypt-key</span> <span style="color: #800000;">${gpg_key_id}</span> \
<span style="color: #660033;">--full-if-older-than</span> 3M \
<span style="color: #660033;">--name</span> <span style="color: #800000;">${bucket}</span> \
<span style="color: #660033;">--s3-use-new-style</span> \
<span style="color: #660033;">--sign-key</span> <span style="color: #800000;">${gpg_key_id}</span> \
<span style="color: #660033;">-v3</span> \
<span style="color: #800000;">${root}</span> \
s3+http:<span style="color: #000000; font-weight: bold;">//</span><span style="color: #800000;">${bucket}</span><span style="color: #000000; font-weight: bold;">/</span><span style="color: #800000;">${folder}</span></pre></div></div>

<p>Edit the file so that it has all the values it needs. Feel free to read the duplicity manual and make any changes to the duplicity command, then make the file executable. in terminal, type:</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #c20cb9; font-weight: bold;">chmod</span> +x ~<span style="color: #000000; font-weight: bold;">/</span>s3backup.sh</pre></div></div>

<p><strong>5. Create your backup file list</strong><br />
Create a file named &#8220;.filelist&#8221; in your home directory, in it add the following content:</p>
<pre class="output">+ /Users/*/Desktop
+ /Users/*/Documents
+ /Users/*/Downloads
+ /Users/*/Library/Application Support/AddressBook
+ /Users/*/Library/Calendars
+ /Users/*/Library/Mail
+ /Users/*/Library/Mail Downloads
+ /Users/*/Library/Preferences
+ /Users/*/Library/Widgets
+ /Users/*/Movies
+ /Users/*/Music
+ /Users/*/Pictures
+ /Users/*/Public
+ /Users/*/Sites
- **.DS_Store
- **.localized
- **.fseventsd
- **.Spotlight-V100
- **.Trash
- **.Trashes
- **</pre>
<p>If you grok, lines starting with a &#8220;-&#8221; mean exclude. Filenames/directories that match these lines will be excluded from the backup. Lines starting with &#8220;+&#8221; means the opposite, these directories will be included. The file list I posted above is generic and should be useful to standard users. Of course, feel free to modify it as you wish.</p>
<p>You&#8217;re pretty much done at this point. The only thing left to do is add this script to your crontab.</p>
<p><strong>6. Add the script to crontab</strong><br />
In terminal, type:</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;">crontab <span style="color: #660033;">-e</span></pre></div></div>

<p>You will be presented with a command line text editor. If this is too much for you, try <a href="http://quicksilver.be.washington.edu/software/Crontooie/">crontooie</a></p>
<p>I want to have my backups occur daily at 10pm, so my crontab looks like this:</p>
<pre class="output"># min  hr  dom  mon  dow        command
  0    22   *    *    *         ~/s3backup.sh</pre>
<p><strong>7. Have a beer</strong><br />
And that&#8217;s it. Pretty painless with a decent explanation of what&#8217;s going on. I hope this was easy for you. if you need help, check the comments first. Else, comment with your questions</p>
]]></content:encoded>
			<wfw:commentRss>http://egeste.net/blog/2011/03/10/encrypting-and-backing-up-your-data-to-amazon-s3-on-mac-osx-with-duplicity-the-easy-way/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Automating backups/mobile sync for your KeePass database on OSX</title>
		<link>http://egeste.net/blog/2011/03/03/automatingbackups_mobile-sync-for-your-keepass-database/</link>
		<comments>http://egeste.net/blog/2011/03/03/automatingbackups_mobile-sync-for-your-keepass-database/#comments</comments>
		<pubDate>Thu, 03 Mar 2011 19:42:58 +0000</pubDate>
		<dc:creator>Egeste</dc:creator>
				<category><![CDATA[Administration]]></category>
		<category><![CDATA[bash]]></category>
		<category><![CDATA[Code]]></category>
		<category><![CDATA[Computing]]></category>
		<category><![CDATA[Featured]]></category>
		<category><![CDATA[Languages]]></category>
		<category><![CDATA[android]]></category>
		<category><![CDATA[automated]]></category>
		<category><![CDATA[automatically]]></category>
		<category><![CDATA[backup]]></category>
		<category><![CDATA[keepass]]></category>
		<category><![CDATA[mac]]></category>
		<category><![CDATA[osx]]></category>
		<category><![CDATA[scp]]></category>
		<category><![CDATA[ssh]]></category>
		<category><![CDATA[sync]]></category>

		<guid isPermaLink="false">http://www.egeste.net/?p=145</guid>
		<description><![CDATA[After the Gnosis/Gawker hack, my &#8220;primary&#8221; password hash was exposed, leaving most of my internet assets exposed as well. I had been using an 8 character password for almost all of my accounts since I was about 16 or so. &#8230; </p><p><a class="more-link block-button" href="http://egeste.net/blog/2011/03/03/automatingbackups_mobile-sync-for-your-keepass-database/">Continue reading &#187;</a>]]></description>
			<content:encoded><![CDATA[<p><div id="attachment_146" class="wp-caption alignright" style="width: 138px"><a href="http://egeste.net/wp-content/uploads/2011/03/keepass.png"><img src="http://egeste.net/wp-content/uploads/2011/03/keepass.png" alt="KeePass Logo" title="KeePass Logo" width="128" height="128" class="size-full wp-image-146" /></a><p class="wp-caption-text">KeePass Logo</p></div><br />
After the <a href="http://www.mediaite.com/online/exclusive-gawker-hacker-gnosis-explains-method-and-reasoning-behind-his-actions/">Gnosis/Gawker hack</a>, my &#8220;primary&#8221; password hash was exposed, leaving most of my internet assets exposed as well. I had been using an 8 character password for almost all of my accounts since I was about 16 or so. I suppose, in this regard, I should thank Gnosis for finally giving me the incentive necessary to make better choices with my personal security. To this end, I chose to use <a href="http://keepass.info/">KeePass</a> to generate and store all of my passwords.</p>
<p>KeePass is an awesome tool for generating and storing all your strong passwords. You can think of it sort-of like a keychain that requires a key to open. To use it, you simply create a new database, assign a password to that database, and then start populating that database with passwords you use to access various services. There&#8217;s only one problem with this approach&#8230; What if your KeePass database gets corrupted/deleted/you&#8217;re on another computer? </p>
<p><strong>There are a few solutions to this:</strong></p>
<ol>
<li>Back it up on a flash drive</li>
<li>Back it up via a backup service</li>
<li>Back it up on your smartphone</li>
<li>Back it up on your own server</li>
</ol>
<p><strong>Thoughts:</strong></p>
<ol>
<li>I felt like backing this up on a flash drive was useless and irritating, since I don&#8217;t use my flash drive much.</li>
<li>I don&#8217;t want to pay for a backup service.</li>
<li>There&#8217;s a KeePass app for my Android phone</li>
<li>I already pay for my server</li>
</ol>
<p>Obviously, I opted for the last two options&#8230; but then I started thinking about those options&#8230;</p>
<ol>
<li>Why would I manually scp my backup to my server? that sounds tedious.</li>
<li>How do I ensure that my Android has the latest iteration of my KeePass database?</li>
</ol>
<p>I decided that these were reasonable problems, and came up with the following solution.</p>
<p><strong>Launchd to the rescue! (again)</strong><br />
<strong>Statement:</strong> I DON&#8217;T WANT TO THINK ABOUT BACKUPS.<br />
<strong>Solution:</strong> AUTOMATE IT.</p>
<p>And that&#8217;s what I did. Here&#8217;s how.</p>
<p><strong>Backing up to remote server via scp</strong><br />
First, I created my backup script as ~/bin/backup. This script is actually useful for more than just my KeePass db, so you can use it as you will.</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #666666; font-style: italic;">#!/bin/bash</span>
<span style="color: #007800;">user</span>=<span style="color: #7a0874; font-weight: bold;">&#91;</span>your_user<span style="color: #7a0874; font-weight: bold;">&#93;</span>
<span style="color: #007800;">server</span>=<span style="color: #7a0874; font-weight: bold;">&#91;</span><span style="color: #c20cb9; font-weight: bold;">hostname</span><span style="color: #7a0874; font-weight: bold;">&#93;</span>
<span style="color: #007800;">dir</span>=<span style="color: #7a0874; font-weight: bold;">&#91;</span>backup_dir<span style="color: #7a0874; font-weight: bold;">&#93;</span>
<span style="color: #000000; font-weight: bold;">if</span><span style="color: #7a0874; font-weight: bold;">&#40;</span><span style="color: #7a0874; font-weight: bold;">&#40;</span><span style="color: #007800;">$#</span> <span style="color: #000000; font-weight: bold;">&gt;</span> <span style="color: #000000;">0</span><span style="color: #7a0874; font-weight: bold;">&#41;</span><span style="color: #7a0874; font-weight: bold;">&#41;</span>; <span style="color: #000000; font-weight: bold;">then</span>
        <span style="color: #7a0874; font-weight: bold;">eval</span> <span style="color: #000000; font-weight: bold;">`/</span>usr<span style="color: #000000; font-weight: bold;">/</span>bin<span style="color: #000000; font-weight: bold;">/</span><span style="color: #c20cb9; font-weight: bold;">ssh-agent</span> -s<span style="color: #000000; font-weight: bold;">`</span>
        <span style="color: #000000; font-weight: bold;">/</span>usr<span style="color: #000000; font-weight: bold;">/</span>bin<span style="color: #000000; font-weight: bold;">/</span><span style="color: #c20cb9; font-weight: bold;">ssh-add</span>
        <span style="color: #000000; font-weight: bold;">for</span> <span style="color: #c20cb9; font-weight: bold;">file</span> <span style="color: #000000; font-weight: bold;">in</span> $<span style="color: #000000; font-weight: bold;">@</span>; <span style="color: #000000; font-weight: bold;">do</span>
                <span style="color: #7a0874; font-weight: bold;">echo</span> <span style="color: #ff0000;">&quot;Backing up <span style="color: #007800;">${file}</span>&quot;</span>
                <span style="color: #000000; font-weight: bold;">/</span>usr<span style="color: #000000; font-weight: bold;">/</span>bin<span style="color: #000000; font-weight: bold;">/</span>rsync <span style="color: #660033;">-ve</span> <span style="color: #ff0000;">&quot;ssh&quot;</span> <span style="color: #800000;">${file}</span> <span style="color: #007800;">$user</span><span style="color: #000000; font-weight: bold;">@</span><span style="color: #007800;">$server</span>:<span style="color: #007800;">$dir</span>
        <span style="color: #000000; font-weight: bold;">done</span>
<span style="color: #000000; font-weight: bold;">else</span>
        <span style="color: #7a0874; font-weight: bold;">echo</span> <span style="color: #ff0000;">&quot;No file(s) specified for backup&quot;</span>
<span style="color: #000000; font-weight: bold;">fi</span></pre></div></div>

<p>Simple enough. It sets the environment ssh variables for your current user, then uses the rsync binary to xfer the files via ssh. If you use pubkey auth on the remote server with the default key on your local machine (~/.ssh/id_*sa), this will &#8220;just work&#8221; with no interaction. If you&#8217;re using a different key or ssh is running on a non-standard port, you can change the following line as follows:</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">/</span>usr<span style="color: #000000; font-weight: bold;">/</span>bin<span style="color: #000000; font-weight: bold;">/</span>rsync <span style="color: #660033;">-ve</span> <span style="color: #ff0000;">&quot;ssh -i [keyfile_path] -p [port]&quot;</span> <span style="color: #800000;">${file}</span> <span style="color: #007800;">$user</span><span style="color: #000000; font-weight: bold;">@</span><span style="color: #007800;">$server</span>:<span style="color: #007800;">$dir</span></pre></div></div>

<p>Now, we just need to automate it. I decided that I wanted my KeePass file to be backed up only when it is modified&#8230; So I need some sort of something to keep an eye on my KeePass file for changes, and then act accordingly. Launchd is good for this. I created the file ~/Library/LaunchAgents/net.egeste.backup.plist with the following content:</p>

<div class="wp_syntax"><div class="code"><pre class="xml" style="font-family:monospace;"><span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;?xml</span> <span style="color: #000066;">version</span>=<span style="color: #ff0000;">&quot;1.0&quot;</span> <span style="color: #000066;">encoding</span>=<span style="color: #ff0000;">&quot;UTF-8&quot;</span><span style="color: #000000; font-weight: bold;">?&gt;</span></span>
<span style="color: #00bbdd;">&lt;!DOCTYPE plist PUBLIC &quot;-//Apple//DTD PLIST 1.0//EN&quot; &quot;http://www.apple.com/DTDs/PropertyList-1.0.dtd&quot;&gt;</span>
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;plist</span> <span style="color: #000066;">version</span>=<span style="color: #ff0000;">&quot;1.0&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span></span>
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;dict<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
        <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;key<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>Label<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/key<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
        <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;string<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>net.egeste.backup<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/string<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
        <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;key<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>Program<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/key<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
        <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;string<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>/Users/egeste/bin/backup<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/string<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
        <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;key<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>ProgramArguments<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/key<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
        <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;array<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
                <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;string<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>NULL<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/string<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
                <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;string<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>/path/to/keepass.kdb<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/string<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
        <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/array<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
        <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;key<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>WatchPaths<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/key<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
        <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;array<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
                <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;string<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>/path/to/keepass.kdb<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/string<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
        <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/array<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/dict<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/plist<span style="color: #000000; font-weight: bold;">&gt;</span></span></span></pre></div></div>

<p>This will tell launchd to watch /path/to/keepass.kdb and monitor changes. If a change is noticed it will automatically run /Users/egeste/bin/backup with the argument /path/to/keepass.kdb. Hence, the command being run will be:</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">/</span>Users<span style="color: #000000; font-weight: bold;">/</span>egeste<span style="color: #000000; font-weight: bold;">/</span>bin<span style="color: #000000; font-weight: bold;">/</span>backup <span style="color: #000000; font-weight: bold;">/</span>path<span style="color: #000000; font-weight: bold;">/</span>to<span style="color: #000000; font-weight: bold;">/</span>keepass.kdb</pre></div></div>

<p>Now all we need to do is tell launchd to load this configuration. In the command line we type:</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;">launchctl load ~<span style="color: #000000; font-weight: bold;">/</span>Library<span style="color: #000000; font-weight: bold;">/</span>LaunchAgents<span style="color: #000000; font-weight: bold;">/</span>net.egeste.backup.plist</pre></div></div>

<p>Boom. Done. Now every time you make a modification and save your KeePass file, it will automatically be backed up to your server, in the directory you specified. Easy.</p>
<p><strong>Now what about the smartphone?</strong><br />
I thought this was really cool to begin with. Obviously, I cant remember the 25 character 160bit entropic string that is my facebook password, and I don&#8217;t want to copy it by hand from my laptop screen into my Android settings, so lucky for me there&#8217;s an KeePass Android app. Neato! I decided that it would be best to have my KeePass database write in one direction to my phone &#8211; that is to say that changes I make on my computer go to my phone, but changes I make on my phone don&#8217;t go to my computer. This eliminates the issue of conflicts. I decided that the database should be synced whenever my phone is present and the external storage is enabled &#8211; so once again I started with a bash script at ~/bin/sync:</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #666666; font-style: italic;">#!/bin/bash</span>
<span style="color: #000000; font-weight: bold;">if</span><span style="color: #7a0874; font-weight: bold;">&#40;</span><span style="color: #7a0874; font-weight: bold;">&#40;</span><span style="color: #007800;">$#</span> <span style="color: #000000; font-weight: bold;">&gt;</span> <span style="color: #000000;">1</span><span style="color: #7a0874; font-weight: bold;">&#41;</span><span style="color: #7a0874; font-weight: bold;">&#41;</span>; <span style="color: #000000; font-weight: bold;">then</span>
        <span style="color: #007800;">file</span>=<span style="color: #800000;">${1}</span>
        <span style="color: #000000; font-weight: bold;">for</span> i <span style="color: #000000; font-weight: bold;">in</span> $<span style="color: #000000; font-weight: bold;">@</span>; <span style="color: #000000; font-weight: bold;">do</span>
                <span style="color: #000000; font-weight: bold;">if</span> <span style="color: #7a0874; font-weight: bold;">&#91;</span> <span style="color: #800000;">${i}</span> == <span style="color: #800000;">${file}</span> <span style="color: #7a0874; font-weight: bold;">&#93;</span>; <span style="color: #000000; font-weight: bold;">then</span> <span style="color: #7a0874; font-weight: bold;">continue</span>;
                <span style="color: #000000; font-weight: bold;">elif</span> <span style="color: #7a0874; font-weight: bold;">&#91;</span> <span style="color: #660033;">-d</span> <span style="color: #800000;">${i}</span> <span style="color: #7a0874; font-weight: bold;">&#93;</span>; <span style="color: #000000; font-weight: bold;">then</span>
                        <span style="color: #7a0874; font-weight: bold;">echo</span> <span style="color: #ff0000;">&quot;Syncing <span style="color: #007800;">${file}</span> with <span style="color: #007800;">${i}</span>&quot;</span>
                        <span style="color: #000000; font-weight: bold;">/</span>usr<span style="color: #000000; font-weight: bold;">/</span>bin<span style="color: #000000; font-weight: bold;">/</span>rsync <span style="color: #800000;">${file}</span> <span style="color: #800000;">${i}</span>
                <span style="color: #000000; font-weight: bold;">fi</span>
        <span style="color: #000000; font-weight: bold;">done</span>
<span style="color: #000000; font-weight: bold;">else</span>
        <span style="color: #7a0874; font-weight: bold;">echo</span> <span style="color: #ff0000;">&quot;Not enough params&quot;</span>
<span style="color: #000000; font-weight: bold;">fi</span></pre></div></div>

<p>This script will take one file, and copy it to any subsequent directories specified. Example:</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #c20cb9; font-weight: bold;">sync</span> file.txt <span style="color: #000000; font-weight: bold;">/</span>Users<span style="color: #000000; font-weight: bold;">/</span>egeste <span style="color: #000000; font-weight: bold;">/</span>Users<span style="color: #000000; font-weight: bold;">/</span>egeste<span style="color: #000000; font-weight: bold;">/</span>Desktop <span style="color: #000000; font-weight: bold;">/</span>Users<span style="color: #000000; font-weight: bold;">/</span>egeste<span style="color: #000000; font-weight: bold;">/</span>Documents</pre></div></div>

<p>will copy file.txt to /Users/egeste /Users/egeste/Desktop and /Users/egeste/Documents.</p>
<p>Once again, we just need to automate it with launchd. I created the file ~/Library/LaunchAgents/net.egeste.sync.plist with the following content:</p>

<div class="wp_syntax"><div class="code"><pre class="xml" style="font-family:monospace;"><span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;?xml</span> <span style="color: #000066;">version</span>=<span style="color: #ff0000;">&quot;1.0&quot;</span> <span style="color: #000066;">encoding</span>=<span style="color: #ff0000;">&quot;UTF-8&quot;</span><span style="color: #000000; font-weight: bold;">?&gt;</span></span>
<span style="color: #00bbdd;">&lt;!DOCTYPE plist PUBLIC &quot;-//Apple//DTD PLIST 1.0//EN&quot; &quot;http://www.apple.com/DTDs/PropertyList-1.0.dtd&quot;&gt;</span>
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;plist</span> <span style="color: #000066;">version</span>=<span style="color: #ff0000;">&quot;1.0&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span></span>
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;dict<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
        <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;key<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>Label<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/key<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
        <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;string<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>net.egeste.sync.keepass<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/string<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
        <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;key<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>Program<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/key<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
        <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;string<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>/Users/egeste/bin/sync<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/string<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
        <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;key<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>ProgramArguments<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/key<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
        <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;array<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
                <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;string<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>NULL<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/string<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
                <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;string<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>/path/to/keepass.kdb<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/string<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
                <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;string<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>/Volumes/[device_name]/[dir]<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/string<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
        <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/array<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
        <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;key<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>WatchPaths<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/key<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
        <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;array<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
                <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;string<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>/Volumes<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/string<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
        <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/array<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/dict<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/plist<span style="color: #000000; font-weight: bold;">&gt;</span></span></span></pre></div></div>

<p>This will tell launchd to watch the /Volumes directory for any changes (such as a storage device being plugged in) &#8211; if a change occurs, launchd will run the /Users/egeste/bin/sync script, and sync /path/to/keepass.kdb to /Volumes/[device_name]/[dir]. Obviously, you want to change some of these values.</p>
<p>Once again, we register the script with launchd as follows:</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;">launchctl load ~<span style="color: #000000; font-weight: bold;">/</span>Library<span style="color: #000000; font-weight: bold;">/</span>LaunchAgents<span style="color: #000000; font-weight: bold;">/</span>net.egeste.sync.plist</pre></div></div>

<p>And there you have it. If you did this correctly, your keepass database should be backed up to your server every time you save it, and backed up to your phone every time you plug it in/enable external storage.</p>
<p>Enjoy.</p>
]]></content:encoded>
			<wfw:commentRss>http://egeste.net/blog/2011/03/03/automatingbackups_mobile-sync-for-your-keepass-database/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>ATX Hackerspace Launch Party!</title>
		<link>http://egeste.net/blog/2010/11/03/atx-hackerspace-launch-party/</link>
		<comments>http://egeste.net/blog/2010/11/03/atx-hackerspace-launch-party/#comments</comments>
		<pubDate>Wed, 03 Nov 2010 17:00:40 +0000</pubDate>
		<dc:creator>Egeste</dc:creator>
				<category><![CDATA[ATX Hackerspace]]></category>
		<category><![CDATA[Culture]]></category>
		<category><![CDATA[Hackerspaces]]></category>
		<category><![CDATA[Nerd]]></category>
		<category><![CDATA[austin]]></category>
		<category><![CDATA[belmont]]></category>
		<category><![CDATA[hackerspace]]></category>
		<category><![CDATA[launch]]></category>
		<category><![CDATA[opening]]></category>
		<category><![CDATA[party]]></category>

		<guid isPermaLink="false">http://www.egeste.net/?p=136</guid>
		<description><![CDATA[Join us for the official launch of the ATX Hackerspace at our new location! We will have a DJ, project demos, food, beer, and a variety of non-alcoholic beverages Details: * Where: ATX Hackerspace at 1601 Rutherford Ln, Suite A200 &#8230; </p><p><a class="more-link block-button" href="http://egeste.net/blog/2010/11/03/atx-hackerspace-launch-party/">Continue reading &#187;</a>]]></description>
			<content:encoded><![CDATA[<p><div id="attachment_53" class="wp-caption alignright" style="width: 160px"><a href="http://blog.atxhackerspace.org/wp-content/uploads/2010/11/Nov6Flier2.jpg"><img src="http://blog.atxhackerspace.org/wp-content/uploads/2010/11/Nov6Flier2-150x150.jpg" alt="Launch Party Flier" title="Launch Party Flier" width="150" height="150" class="size-thumbnail wp-image-53" /></a><p class="wp-caption-text">Launch Party Flier</p></div><br />
<strong>Join us for the official launch of the ATX Hackerspace at our new location!  We will have a DJ, project demos, food, beer, and a variety of non-alcoholic beverages</strong></p>
<p><em><strong>Details:</strong></em><br />
* <strong>Where:</strong> ATX Hackerspace at <a href="http://maps.google.com/maps?q=1601+Rutherford+Ln,+Austin,+TX&#038;sll=37.0625,-95.677068&#038;sspn=35.957999,74.267578&#038;hnear=1601+Rutherford+Ln,+Austin,+Travis,+Texas+78754">1601 Rutherford Ln, Suite A200</a><br />
* <strong>When:</strong> Saturday November 6th, 5pm &#8211; late<br />
* <strong>Music:</strong> DJ Belmont &#8211; check him out on <a href="http://soundcloud.com/belmontaudio">soundcloud</a> and <a href="http://old.thesixtyone.com/#/KeithMarcks/songs/popular/">thesixtyone</a><br />
* <strong>LAZORZ:</strong> <a href="http://www.facebook.com/midnightgravity">MidnightGravity</a><br />
* <strong>Price:</strong> <em>FREE!</em> &#8211; but donations (cash/check) are encouraged!</p>
<p><em><strong>Schedule:</strong></em><br />
* <strong>5pm &#8211; 7pm:</strong> Open house with demos, project talks, general geeking out<br />
* <strong>6pm:</strong> Begin serving food until we run out!<br />
* <strong>7pm &#8211; 9pm</strong> Egesté spinning<br />
* <strong>9pm &#8211; Late</strong> Belmont spinning, LAZORZ arrive!</p>
<p><em><strong>RSVP:</strong></em><br />
You can see who is coming and RSVP on the <a href="http://www.facebook.com/event.php?eid=110541389012864">Facebook event page!</a>  (RSVP is not required and feel free to just show up!)</p>
]]></content:encoded>
			<wfw:commentRss>http://egeste.net/blog/2010/11/03/atx-hackerspace-launch-party/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Restore AddressBook Contacts From iPhone/iPod Touch After Reformat</title>
		<link>http://egeste.net/blog/2010/09/10/restore-addressbook-contacts-from-iphone_ipod-touch-after-reformat/</link>
		<comments>http://egeste.net/blog/2010/09/10/restore-addressbook-contacts-from-iphone_ipod-touch-after-reformat/#comments</comments>
		<pubDate>Fri, 10 Sep 2010 23:15:10 +0000</pubDate>
		<dc:creator>Egeste</dc:creator>
				<category><![CDATA[Administration]]></category>
		<category><![CDATA[bash]]></category>
		<category><![CDATA[Code]]></category>
		<category><![CDATA[Computing]]></category>
		<category><![CDATA[Featured]]></category>
		<category><![CDATA[Languages]]></category>
		<category><![CDATA[address book]]></category>
		<category><![CDATA[contacts]]></category>
		<category><![CDATA[iphone]]></category>
		<category><![CDATA[jailbreak]]></category>
		<category><![CDATA[mac]]></category>
		<category><![CDATA[macintosh]]></category>
		<category><![CDATA[osx]]></category>
		<category><![CDATA[restore]]></category>

		<guid isPermaLink="false">http://www.egeste.net/?p=108</guid>
		<description><![CDATA[So you reformatted your mac and didn&#8217;t back up your AddressBook contacts? Whoops. That&#8217;s ok though, if you have a jailbroken iPhone you can restore your AddressBook contacts with a little bit of hackery. So lets get started! 1. SSH &#8230; </p><p><a class="more-link block-button" href="http://egeste.net/blog/2010/09/10/restore-addressbook-contacts-from-iphone_ipod-touch-after-reformat/">Continue reading &#187;</a>]]></description>
			<content:encoded><![CDATA[<p><img src="http://www.egeste.net/wp-content/uploads/2010/09/gksu-root-terminal-150x150.png" alt="#" title="#" width="150" height="150" class="size-thumbnail wp-image-118" style="float:right;"/><br />
So you reformatted your mac and didn&#8217;t back up your AddressBook contacts? Whoops. That&#8217;s ok though, if you have a jailbroken iPhone you can restore your AddressBook contacts with a little bit of hackery. So lets get started!</p>
<p><strong>1. SSH into your iphone, and get r00t.</strong></p>
<pre class="output">TheGame:~ egeste$ ssh root@192.168.1.122
root@192.168.1.122's password:
iPhone:~ root:</pre>
<p><strong>2. Go into the mobile user&#8217;s home dir and create a backup folder</strong></p>
<pre class="output">iPhone:~ root: cd /var/mobile
iPhone:/var/mobile root: mkdir Backup</pre>
<p><strong>3. Copy the AddressBook databases into your backup folder</strong></p>
<pre class="output">iPhone:/var/mobile root: cp Library/AddressBook/* Backup/</pre>
<p><strong>4. Open up iTunes and plug in your iPhone/iPod Touch (if it&#8217;s not already).</strong> In iTunes, click on your device under Devices, then click on the tab for Info. Check the box to sync your contacts, then click sync. iTunes will ask you if you want to do this because blah blah blah whatever, just do it.</p>
<p><strong>5. Once the sync is complete you will notice that all the contacts are gone from your phone. DON&#8217;T FREAK OUT.</strong> return to your SSH session and copy the database files back to their original location like so:</p>
<pre class="output">iPhone:/var/mobile root: cp Backup/* Library/AddressBook/</pre>
<p><strong>6. If you check your phone contacts again you should see that all of your contacts are back.</strong> Now all you need to do is sync your phone again. BLAMMO! iTunes should have imported all the contacts from your iPhone into AddressBook. You may have to do some merging and whatnot.</p>
<p>I suppose this would work for Outlook contacts as well, but I haven&#8217;t tested it.</p>
<p>Anyway, that&#8217;s all for now.<br />
-Egeste</p>
]]></content:encoded>
			<wfw:commentRss>http://egeste.net/blog/2010/09/10/restore-addressbook-contacts-from-iphone_ipod-touch-after-reformat/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>How Geeky Are You?</title>
		<link>http://egeste.net/blog/2010/06/14/how-geeky-are-you/</link>
		<comments>http://egeste.net/blog/2010/06/14/how-geeky-are-you/#comments</comments>
		<pubDate>Mon, 14 Jun 2010 20:52:47 +0000</pubDate>
		<dc:creator>Egeste</dc:creator>
				<category><![CDATA[Culture]]></category>
		<category><![CDATA[Nerd]]></category>
		<category><![CDATA[gizmodo]]></category>
		<category><![CDATA[quizzes]]></category>
		<category><![CDATA[repost]]></category>
		<category><![CDATA[test]]></category>

		<guid isPermaLink="false">http://www.egeste.net/?p=62</guid>
		<description><![CDATA[A modified repost from Gizmodo Install a hard drive in a laptop Perform a clean OS install on a machine with two OSes Swap out the battery on your iPod/iPhone Jailbreak an iPhone Wire your house for Ethernet and Coax &#8230; </p><p><a class="more-link block-button" href="http://egeste.net/blog/2010/06/14/how-geeky-are-you/">Continue reading &#187;</a>]]></description>
			<content:encoded><![CDATA[<p>A modified <a href="http://gizmodo.com/5078829/the-50-skills-every-geek-should-have">repost from Gizmodo</a></p>
<p><script type="text/javascript">
var geekCounter = 0;
function geek(sender) {
	if(sender.checked) {
		geekCounter++;
	} else {
		geekCounter--;
	}
	document.getElementById("geekScore").value = geekCounter;
}
</script></p>
<ol>
<li>
<input type="checkbox" disabled=disabled checked/>
<input type="checkbox" onchange="geek(this);"/>Install a hard drive in a laptop</li>
<li>
<input type="checkbox" disabled=disabled checked/>
<input type="checkbox" onchange="geek(this);"/>Perform a clean OS install on a machine with two OSes</li>
<li>
<input type="checkbox" disabled=disabled />
<input type="checkbox" onchange="geek(this);"/>Swap out the battery on your iPod/iPhone</li>
<li>
<input type="checkbox" disabled=disabled checked/>
<input type="checkbox" onchange="geek(this);"/>Jailbreak an iPhone</li>
<li>
<input type="checkbox" disabled=disabled />
<input type="checkbox" onchange="geek(this);"/>Wire your house for Ethernet and Coax cable</li>
<li>
<input type="checkbox" disabled=disabled checked/>
<input type="checkbox" onchange="geek(this);"/>Use BitTorrent and RSS to automatically download new shows from trackers</li>
<li>
<input type="checkbox" disabled=disabled checked/>
<input type="checkbox" onchange="geek(this);"/>Use an A/V receiver to its fullest capability (every port is taken)</li>
<li>
<input type="checkbox" disabled=disabled checked/>
<input type="checkbox" onchange="geek(this);"/>Calibrate an HDTV without the manual</li>
<li>
<input type="checkbox" disabled=disabled checked/>
<input type="checkbox" onchange="geek(this);"/>Use a DSLR in full manual mode</li>
<li>
<input type="checkbox" disabled=disabled checked/>
<input type="checkbox" onchange="geek(this);"/>Hack the encryption and mooch your neighbor&#8217;s Wi-Fi</li>
<li>
<input type="checkbox" disabled=disabled checked/>
<input type="checkbox" onchange="geek(this);"/>Solder cleanly enough to get around a circuit board</li>
<li>
<input type="checkbox" disabled=disabled checked/>
<input type="checkbox" onchange="geek(this);"/>Use your 3G phone as a Wi-Fi access point</li>
<li>
<input type="checkbox" disabled=disabled />
<input type="checkbox" onchange="geek(this);"/>Shove the guts of a modern game console into a retro game console</li>
<li>
<input type="checkbox" disabled=disabled checked/>
<input type="checkbox" onchange="geek(this);"/>Design a webpage in HTML by hand that features a picture of your cat</li>
<li>
<input type="checkbox" disabled=disabled checked/>
<input type="checkbox" onchange="geek(this);"/>Use Photoshop to imperceptibly doctor a photo</li>
<li>
<input type="checkbox" disabled=disabled checked/>
<input type="checkbox" onchange="geek(this);"/>Abstain from buying extended warranties</li>
<li>
<input type="checkbox" disabled=disabled checked/>
<input type="checkbox" onchange="geek(this);"/>Know where to buy cheap cables and accessories</li>
<li>
<input type="checkbox" disabled=disabled checked/>
<input type="checkbox" onchange="geek(this);"/>Fix your parents&#8217;computer over the phone without looking at a computer</li>
<li>
<input type="checkbox" disabled=disabled checked/>
<input type="checkbox" onchange="geek(this);"/>Enter the Konami code</li>
<li>
<input type="checkbox" disabled=disabled checked/>
<input type="checkbox" onchange="geek(this);"/>Comment on Gizmodo from your phone</li>
<li>
<input type="checkbox" disabled=disabled checked/>
<input type="checkbox" onchange="geek(this);"/>Type quickly using T9 texting</li>
<li>
<input type="checkbox" disabled=disabled checked/>
<input type="checkbox" onchange="geek(this);"/>Program a universal remote</li>
<li>
<input type="checkbox" disabled=disabled />
<input type="checkbox" onchange="geek(this);"/>Contribute code to the Linux kernel</li>
<li>
<input type="checkbox" disabled=disabled checked/>
<input type="checkbox" onchange="geek(this);"/>Hide porn from your significant other</li>
<li>
<input type="checkbox" disabled=disabled checked/>
<input type="checkbox" onchange="geek(this);"/>Avoid DRM on everything</li>
<li>
<input type="checkbox" disabled=disabled checked/>
<input type="checkbox" onchange="geek(this);"/>Know how to back up your data to networked storage—and actually do it</li>
<li>
<input type="checkbox" disabled=disabled checked/>
<input type="checkbox" onchange="geek(this);"/>Watch TV shows on the internet for free</li>
<li>
<input type="checkbox" disabled=disabled checked/>
<input type="checkbox" onchange="geek(this);"/>Edit together digital video ripped from YouTube</li>
<li>
<input type="checkbox" disabled=disabled checked/>
<input type="checkbox" onchange="geek(this);"/>Play any SNES game on your computer through an emulator</li>
<li>
<input type="checkbox" disabled=disabled checked/>
<input type="checkbox" onchange="geek(this);"/>Reset expired trial software by messing with the registry</li>
<li>
<input type="checkbox" disabled=disabled checked/>
<input type="checkbox" onchange="geek(this);"/>Hackintosh your PC</li>
<li>
<input type="checkbox" disabled=disabled />
<input type="checkbox" onchange="geek(this);"/>Download pre-release movies from Usenet</li>
<li>
<input type="checkbox" disabled=disabled />
<input type="checkbox" onchange="geek(this);"/>Hack the Wii to play homebrew games</li>
<li>
<input type="checkbox" disabled=disabled checked/>
<input type="checkbox" onchange="geek(this);"/>Get around web content filters on public computers</li>
<li>
<input type="checkbox" disabled=disabled checked/>
<input type="checkbox" onchange="geek(this);"/>Get into a Windows computer if you forgot your password</li>
<li>
<input type="checkbox" disabled=disabled checked/>
<input type="checkbox" onchange="geek(this);"/>Securely erase your data so it can&#8217;t be recovered</li>
<li>
<input type="checkbox" disabled=disabled checked/>
<input type="checkbox" onchange="geek(this);"/>Share a printer between a Mac and a PC on a network</li>
<li>
<input type="checkbox" disabled=disabled checked/>
<input type="checkbox" onchange="geek(this);"/>Build a fighting robot</li>
<li>
<input type="checkbox" disabled=disabled />
<input type="checkbox" onchange="geek(this);"/>Write your own Firefox plugins</li>
<li>
<input type="checkbox" disabled=disabled checked/>
<input type="checkbox" onchange="geek(this);"/>Navigate and reorganize the files on your computer in DOS</li>
<li>
<input type="checkbox" disabled=disabled />
<input type="checkbox" onchange="geek(this);"/>Get something on the front page of Digg</li>
<li>
<input type="checkbox" disabled=disabled checked/>
<input type="checkbox" onchange="geek(this);"/>Get through to executive customer service</li>
<li>
<input type="checkbox" disabled=disabled checked/>
<input type="checkbox" onchange="geek(this);"/>Rip a CD to V0 quality MP3s</li>
<li>
<input type="checkbox" disabled=disabled />
<input type="checkbox" onchange="geek(this);"/>Rip a DVD to DivX</li>
<li>
<input type="checkbox" disabled=disabled checked/>
<input type="checkbox" onchange="geek(this);"/>Build your own computer from parts</li>
<li>
<input type="checkbox" disabled=disabled />
<input type="checkbox" onchange="geek(this);"/>Swap out the hard drive in your DVR for a bigger one</li>
<li>
<input type="checkbox" disabled=disabled checked/>
<input type="checkbox" onchange="geek(this);"/>Get an NES cartridge working again by blowing in it</li>
<li>
<input type="checkbox" disabled=disabled checked/>
<input type="checkbox" onchange="geek(this);"/>Calibrate a 7.1 surround-sound system</li>
<li>
<input type="checkbox" disabled=disabled />
<input type="checkbox" onchange="geek(this);"/>Play downloaded games on a Nintendo DS</li>
<li>
<input type="checkbox" disabled=disabled checked/>
<input type="checkbox" onchange="geek(this);"/>Talk about things that aren&#8217;t tech related</li>
</ol>
<p>My Score:<br />
<input type="text" disabled=disabled value="39" />
<br />
Your score:<br />
<input type="text" disabled=disabled id="geekScore" />
]]></content:encoded>
			<wfw:commentRss>http://egeste.net/blog/2010/06/14/how-geeky-are-you/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>On the subject of objective morality</title>
		<link>http://egeste.net/blog/2010/04/18/on-the-subject-of-objective-morality/</link>
		<comments>http://egeste.net/blog/2010/04/18/on-the-subject-of-objective-morality/#comments</comments>
		<pubDate>Sun, 18 Apr 2010 18:33:18 +0000</pubDate>
		<dc:creator>Egeste</dc:creator>
				<category><![CDATA[Culture]]></category>
		<category><![CDATA[Featured]]></category>
		<category><![CDATA[Ideology]]></category>
		<category><![CDATA[Morality]]></category>
		<category><![CDATA[moral landscape]]></category>
		<category><![CDATA[sam harris]]></category>
		<category><![CDATA[ted]]></category>

		<guid isPermaLink="false">http://www.egeste.net/?p=23</guid>
		<description><![CDATA[]]></description>
			<content:encoded><![CDATA[<p><object width="446" height="326" classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="allowFullScreen" value="true" /><param name="wmode" value="transparent" /><param name="bgColor" value="#ffffff" /><param name="flashvars" value="vu=http://video.ted.com/talks/dynamic/SamHarris_2010-medium.flv&amp;su=http://images.ted.com/images/ted/tedindex/embed-posters/SamHarris-2010.embed_thumbnail.jpg&amp;vw=432&amp;vh=240&amp;ap=0&amp;ti=801&amp;introDuration=16500&amp;adDuration=4000&amp;postAdDuration=2000&amp;adKeys=talk=sam_harris_science_can_show_what_s_right;year=2010;theme=a_taste_of_ted2010;theme=the_rise_of_collaboration;theme=is_there_a_god;theme=new_on_ted_com;theme=unconventional_explanations;theme=bold_predictions_stern_warnings;event=TED2010;&amp;preAdTag=tconf.ted/embed;tile=1;sz=512x288;" /><param name="src" value="http://video.ted.com/assets/player/swf/EmbedPlayer.swf" /><param name="allowfullscreen" value="true" /><param name="pluginspace" value="http://www.macromedia.com/go/getflashplayer" /><embed width="446" height="326" type="application/x-shockwave-flash" src="http://video.ted.com/assets/player/swf/EmbedPlayer.swf" allowFullScreen="true" wmode="transparent" bgColor="#ffffff" flashvars="vu=http://video.ted.com/talks/dynamic/SamHarris_2010-medium.flv&amp;su=http://images.ted.com/images/ted/tedindex/embed-posters/SamHarris-2010.embed_thumbnail.jpg&amp;vw=432&amp;vh=240&amp;ap=0&amp;ti=801&amp;introDuration=16500&amp;adDuration=4000&amp;postAdDuration=2000&amp;adKeys=talk=sam_harris_science_can_show_what_s_right;year=2010;theme=a_taste_of_ted2010;theme=the_rise_of_collaboration;theme=is_there_a_god;theme=new_on_ted_com;theme=unconventional_explanations;theme=bold_predictions_stern_warnings;event=TED2010;&amp;preAdTag=tconf.ted/embed;tile=1;sz=512x288;" allowfullscreen="true" pluginspace="http://www.macromedia.com/go/getflashplayer" /></object></p>
]]></content:encoded>
			<wfw:commentRss>http://egeste.net/blog/2010/04/18/on-the-subject-of-objective-morality/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

