<?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>jaredrobinson.com</title>
	<atom:link href="http://jaredrobinson.com/blog/feed/" rel="self" type="application/rss+xml" />
	<link>http://jaredrobinson.com/blog</link>
	<description></description>
	<lastBuildDate>Wed, 25 Apr 2012 04:12:28 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.2</generator>
		<item>
		<title>HTC Vivid with Ice Cream Sandwich</title>
		<link>http://jaredrobinson.com/blog/htc-vivid-with-ice-cream-sandwich/</link>
		<comments>http://jaredrobinson.com/blog/htc-vivid-with-ice-cream-sandwich/#comments</comments>
		<pubDate>Wed, 25 Apr 2012 04:12:28 +0000</pubDate>
		<dc:creator>Jared</dc:creator>
				<category><![CDATA[Tech]]></category>

		<guid isPermaLink="false">http://jaredrobinson.com/blog/?p=768</guid>
		<description><![CDATA[A few weeks ago, I was able to borrow an HTC Vivid. I upgraded it to the latest version of Android: Ice Cream Sandwich. My overall verdict is that I like it, almost as much as iOS 5. Android is &#8230; <a href="http://jaredrobinson.com/blog/htc-vivid-with-ice-cream-sandwich/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>A few weeks ago, I was able to borrow an HTC Vivid. I upgraded it to the latest version of Android:<a href="http://www.android.com/about/ice-cream-sandwich/"> Ice Cream Sandwich</a>. My overall verdict is that I like it, almost as much as <a href="http://www.apple.com/ios/">iOS 5</a>. Android is more polished than ever before.</p>

<p>Here&#8217;s what I like about the HTC Vivid ICS experience:
<ol>
    <li>Bluetooth keyboard support. Android ICS is the first release that supports my bluetooth keyboard, and that&#8217;s a killer feature for me. The GMail app is the worst when using the keyboard, because the keyboard suggestions pop up over the top of what I&#8217;m typing, which is very annoying. The other apps, including <a href="http://www.colornote.com/">ColorNote</a>, pop up suggestions just above the words that I type.</li>
    <li>Smoother Dropbox integration. Apps integrate with it far more easily by sharing files on the filesystem. This means that it&#8217;s much easier to keep my password database synced between computers than on my iPod Touch &#8212; I don&#8217;t have to think about it.</li>
    <li>One device instead of three. The Vivid has the functions of my iPod Touch, my Sansa Clip (FM Radio and Ogg Vorbis support), and phone. It&#8217;s easier to carry around one device and charge one device instead of three. On the other hand, it has to be charged more frequently than my iPod and my feature phone. The Sansa Clip is better for exercising because it&#8217;s so lightweight.</li>
    <li>Faster web experience, especially with web pages utilizing heavy JavaScript.</li>
    <li>Better web experience. The larger screen makes it easier to read web pages, books and email. Apple&#8217;s browser zooms in and out on the correct regions much better using double tap than does Android&#8217;s browser. It&#8217;s more convenient to watch YouTube videos on a larger screen and a faster CPU.</li>
    <li>Much nicer camera than the iPod Touch.</li>
    <li>Power usage stats, per application. The screen uses the most power by a wide margin.</li>
    <li>Network usage metering and control per app.</li>
</ol>
Here&#8217;s what I like better about iPod Touch:
<ol>
    <li>Apps are all on the desktop by default, instead of buried.</li>
    <li>No data plan.</li>
    <li>Easier to use apps. Most apps that can be found for both devices are easier to use on iOS than on Android, and they usually have more features on iOS.</li>
    <li>Better email app than Google&#8217;s Gmail app on Android. The Gmail app is too busy, and I haven&#8217;t figured out how to mark messages as unread.</li>
    <li>I find the iOS keyboard easier to work with.</li>
</ol></p>
]]></content:encoded>
			<wfw:commentRss>http://jaredrobinson.com/blog/htc-vivid-with-ice-cream-sandwich/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Janice&#8217;s cool preschool</title>
		<link>http://jaredrobinson.com/blog/janices-cool-preschool/</link>
		<comments>http://jaredrobinson.com/blog/janices-cool-preschool/#comments</comments>
		<pubDate>Tue, 13 Mar 2012 04:40:22 +0000</pubDate>
		<dc:creator>Jared</dc:creator>
				<category><![CDATA[Tech]]></category>

		<guid isPermaLink="false">http://jaredrobinson.com/blog/?p=761</guid>
		<description><![CDATA[My favorite woman, Janice Robinson, has started a preschool in Lehi, UT: Joy of Learning Preschool. She&#8217;s enrolling for fall classes. Check it out. She&#8217;s smart. She&#8217;s practical. She&#8217;s musical. and she&#8217;s great with kids.]]></description>
			<content:encoded><![CDATA[<p>My favorite woman, Janice Robinson, has started a preschool in Lehi, UT: <a title="Joy of Learning Preschool" href="http://joyoflearningpreschool.com" target="_blank">Joy of Learning Preschool</a>. She&#8217;s enrolling for fall classes. <a href="http://joyoflearningpreschool.com" target="_blank">Check it out</a>. She&#8217;s smart. She&#8217;s practical. She&#8217;s musical. and she&#8217;s great with kids.</p>
]]></content:encoded>
			<wfw:commentRss>http://jaredrobinson.com/blog/janices-cool-preschool/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Key stretching</title>
		<link>http://jaredrobinson.com/blog/key-stretching/</link>
		<comments>http://jaredrobinson.com/blog/key-stretching/#comments</comments>
		<pubDate>Mon, 27 Feb 2012 22:17:40 +0000</pubDate>
		<dc:creator>Jared</dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[Tech]]></category>

		<guid isPermaLink="false">http://jaredrobinson.com/blog/?p=757</guid>
		<description><![CDATA[Last October, I learned about &#8220;key stretching&#8221; from Solar Designer&#8217;s &#8220;How to manage a PHP application&#8217;s users and passwords&#8221; &#8212; a concept that is applicable well beyond PHP. Combined with salting, it is effective at slowing down brute forcing attacks, &#8230; <a href="http://jaredrobinson.com/blog/key-stretching/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Last October, I learned about &#8220;key stretching&#8221; from Solar Designer&#8217;s &#8220;<a href="http://www.openwall.com/articles/PHP-Users-Passwords">How to manage a PHP application&#8217;s users and passwords</a>&#8221; &#8212; a concept that is applicable well beyond PHP. Combined with salting, it is effective at slowing down brute forcing attacks, and even against rainbow tables.</p>
]]></content:encoded>
			<wfw:commentRss>http://jaredrobinson.com/blog/key-stretching/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>When CTRL-C in gdb shuts down a program insted of interrupting it</title>
		<link>http://jaredrobinson.com/blog/when-ctrl-c-in-gdb-shuts-down-a-program-insted-of-interrupting-it/</link>
		<comments>http://jaredrobinson.com/blog/when-ctrl-c-in-gdb-shuts-down-a-program-insted-of-interrupting-it/#comments</comments>
		<pubDate>Mon, 27 Feb 2012 22:15:08 +0000</pubDate>
		<dc:creator>Jared</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[Tech]]></category>

		<guid isPermaLink="false">http://jaredrobinson.com/blog/?p=733</guid>
		<description><![CDATA[According to The Linux Programming Interface, a well-behaved multi-threaded UNIX program should use sigwait() or sigwaitinfo() instead of signal() or sigaction(). A linux-only program could even use signalfd(). Unfortunately, Linux/UNIX programs using sigwait() are hard to interrupt in the debugger. &#8230; <a href="http://jaredrobinson.com/blog/when-ctrl-c-in-gdb-shuts-down-a-program-insted-of-interrupting-it/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>According to The Linux Programming Interface, a well-behaved multi-threaded UNIX program should use sigwait() or sigwaitinfo() instead of signal() or sigaction(). A linux-only program could even use signalfd().</p>

<p>Unfortunately, Linux/UNIX programs using sigwait() are hard to interrupt in the debugger. Instead of interrupting the program, it terminates the program. How does one work around this problem? See <a href="http://stackoverflow.com/questions/5857300/gdb-ctrlc-doesnt-interrupt-process-as-it-usually-does">my answer on stackoverflow</a>.</p>

<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://jaredrobinson.com/blog/when-ctrl-c-in-gdb-shuts-down-a-program-insted-of-interrupting-it/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>C++ initializer lists</title>
		<link>http://jaredrobinson.com/blog/c-initializer-lists/</link>
		<comments>http://jaredrobinson.com/blog/c-initializer-lists/#comments</comments>
		<pubDate>Sat, 11 Feb 2012 13:55:34 +0000</pubDate>
		<dc:creator>Jared</dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[Tech]]></category>

		<guid isPermaLink="false">http://jaredrobinson.com/blog/?p=745</guid>
		<description><![CDATA[One of the cool new features in C++ is initializer lists. Here&#8217;s an example from Wikipedia: struct Object { float first; int second; }; Object scalar = {0.43f, 10}; // One Object, with first=0.43f and second=10 Object anArray[] = {{13.4f, &#8230; <a href="http://jaredrobinson.com/blog/c-initializer-lists/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>One of the cool new features in C++ is initializer lists. Here&#8217;s an <a href="http://en.wikipedia.org/wiki/C%2B%2B11#Initializer_lists">example from Wikipedia</a>:</p>

<p><code>
struct Object
{
    float first;
    int second;
};</p>

<p>Object scalar = {0.43f, 10}; // One Object, with first=0.43f and second=10
Object anArray[] = {{13.4f, 3}, {43.28f, 29}, {5.934f, 17}}; // An array of three Objects
</code></p>

<p>There&#8217;s another <a href="http://stackoverflow.com/questions/907471/c0x-initializer-list-example">example over at stackoverflow</a>. </p>

<p>IBM has published the useful <a href="http://www.ibm.com/developerworks/aix/library/au-gcc/index.html">C++0x feature support in GCC 4.5</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://jaredrobinson.com/blog/c-initializer-lists/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Treating work like a race</title>
		<link>http://jaredrobinson.com/blog/treating-work-like-a-race/</link>
		<comments>http://jaredrobinson.com/blog/treating-work-like-a-race/#comments</comments>
		<pubDate>Tue, 07 Feb 2012 04:11:24 +0000</pubDate>
		<dc:creator>Jared</dc:creator>
				<category><![CDATA[Quotes]]></category>
		<category><![CDATA[Work]]></category>

		<guid isPermaLink="false">http://jaredrobinson.com/blog/?p=742</guid>
		<description><![CDATA[Chad Fowler, in his book, My Job Went to India, made the following remarks about working effectively: If you treat your projects like a race, you&#8217;ll get to the end a lot faster than if you treat them like a &#8230; <a href="http://jaredrobinson.com/blog/treating-work-like-a-race/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Chad Fowler, in his book, <em>My Job Went to India</em>, made the following remarks about working effectively:
<p style="padding-left: 30px;">If you treat your projects like a race, you&#8217;ll get to the end a lot faster than if you treat them like a prison cell.</p>
<p style="padding-left: 30px;">A sense of urgency, even if manufactured, is enough to easily double or triple your productivity.</p>
I&#8217;d add that it needs to be an enjoyable race, and that urgency, sustained for too long, can wear a person out. Races are more enjoyable when run with a group of friends.</p>

<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://jaredrobinson.com/blog/treating-work-like-a-race/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Autojump: Faster than &#8216;cd&#8217;</title>
		<link>http://jaredrobinson.com/blog/autojump-faster-than-cd/</link>
		<comments>http://jaredrobinson.com/blog/autojump-faster-than-cd/#comments</comments>
		<pubDate>Sun, 05 Feb 2012 04:32:50 +0000</pubDate>
		<dc:creator>Jared</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[Tech]]></category>

		<guid isPermaLink="false">http://jaredrobinson.com/blog/?p=734</guid>
		<description><![CDATA[Here&#8217;s a cool tool: autojump, written by Joel Schaerer (thanks, Joel). I spend much of my day as a programmer navigating around in the linux filesystem. Built-in tools like &#8216;pushd&#8217; and &#8216;popd&#8217; are nice, as are subprocesses &#8212; e.g. (cd &#8230; <a href="http://jaredrobinson.com/blog/autojump-faster-than-cd/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Here&#8217;s a cool tool: <a title="Autojump as detailed on lifehacker.com" href="http://lifehacker.com/5583546/autojump-is-a-faster-way-to-browse-your-filesystem">autojump</a>, written by Joel Schaerer (thanks, Joel). I spend much of my day as a programmer navigating around in the linux filesystem. Built-in tools like &#8216;pushd&#8217; and &#8216;popd&#8217; are nice, as are subprocesses &#8212; e.g.
<pre> (cd ~/Download &amp;&amp; wget http://somewhere.com/path/to/file)</pre>
&#8230; and when it finishes downloading, I&#8217;m still in the directory I was in before the download was started.</p>

<p>Now there&#8217;s autojump to add in to the mix. After I &#8216;cd&#8217; to various directories, later, I can type &#8216;j Down&#8217; to cd to my Downloads directory. Very convenient. I just wish it were built into every distribution of linux.</p>
]]></content:encoded>
			<wfw:commentRss>http://jaredrobinson.com/blog/autojump-faster-than-cd/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Linux tty auditing</title>
		<link>http://jaredrobinson.com/blog/linux-tty-auditing/</link>
		<comments>http://jaredrobinson.com/blog/linux-tty-auditing/#comments</comments>
		<pubDate>Fri, 20 Jan 2012 05:47:28 +0000</pubDate>
		<dc:creator>Jared</dc:creator>
				<category><![CDATA[Fedora]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Security]]></category>
		<category><![CDATA[Tech]]></category>

		<guid isPermaLink="false">http://jaredrobinson.com/blog/?p=721</guid>
		<description><![CDATA[Since RHEL 5.4, and in recent Fedora releases, it&#8217;s possible to audit what users type at their tty (command prompt), thanks to the work of Steve Grubb, a RedHat employee. Edit /etc/pam.d/system-auth and append the following, but not both: session &#8230; <a href="http://jaredrobinson.com/blog/linux-tty-auditing/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Since RHEL 5.4, and in recent Fedora releases, it&#8217;s possible to audit what users type at their tty (command prompt), thanks to the work of Steve Grubb, a RedHat employee.</p>

<p>Edit /etc/pam.d/system-auth and append the following, <strong>but not both</strong>:
<pre>session required pam&#95;tty&#95;audit.so disable=&#42; enable=root
session required pam&#95;tty&#95;audit.so enable=&#42;</pre>
Wait for users to log in and type into a terminal. Later, to see audited tty input, run:
<pre>aureport --tty</pre>
When a user logs in, the pam module tells the kernel to enable tty auditing for a process and its children. All tty input is logged, but it may not be incredibly easy to read (it includes backspaces, control characters, etc.). I&#8217;m unclear as to when and how often the kernel flushes out accumulated tty input to the audit log. The records are identified with a type of TTY in /var/log/audit/audit.log.</p>

<p>In addition to tty auditing, RedHat patched their bash shell so that it neatly audits each and every command line it executes, with a record type of USER&#95;TTY. It&#8217;s prettier to read than raw tty auditing &#8212; and it&#8217;s easy for a user to bypass by using a shell that doesn&#8217;t send its commands to the Linux audit system, like zsh, or a custom-built unpatched bash. Maybe that&#8217;s why &#8220;aureport &#8211;tty&#8221; doesn&#8217;t show USER&#95;TTY records.</p>

<hr />

<p>The Linux auditing system is powerful. It&#8217;s possible to write rules that watch for modification to certain files, or that log the use of certain system calls. See the &#8220;audit.rules&#8221; manpage for more information.</p>
]]></content:encoded>
			<wfw:commentRss>http://jaredrobinson.com/blog/linux-tty-auditing/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Pitfalls of verifying signed jar files</title>
		<link>http://jaredrobinson.com/blog/pitfalls-of-verifying-signed-jar-files/</link>
		<comments>http://jaredrobinson.com/blog/pitfalls-of-verifying-signed-jar-files/#comments</comments>
		<pubDate>Mon, 12 Dec 2011 17:10:31 +0000</pubDate>
		<dc:creator>Jared</dc:creator>
				<category><![CDATA[java]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[Tech]]></category>

		<guid isPermaLink="false">http://jaredrobinson.com/blog/?p=715</guid>
		<description><![CDATA[In the Java world, it&#8217;s possible to digitally sign a jar file using &#8216;keytool&#8217; to generate or import a digital signature, and &#8216;jarsigner&#8217; to do the signing. What isn&#8217;t so obvious is that when we use &#8216;jarsigner&#8217; to verify a &#8230; <a href="http://jaredrobinson.com/blog/pitfalls-of-verifying-signed-jar-files/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>In the Java world, it&#8217;s possible to digitally sign a jar file using &#8216;keytool&#8217; to generate or import a digital signature, and &#8216;jarsigner&#8217; to do the signing. What isn&#8217;t so obvious is that when we use &#8216;jarsigner&#8217; to verify a signed jar, it doesn&#8217;t verify that we <em>trust</em> the signature that signed the file. It simply tells us whether the contents were signed by a public key that was <em>included with the jar file</em>.</p>

<p>Surprisingly, there&#8217;s no option to tell jarsigner to check for trusted signatures.</p>

<p>In code, we can use java.util.jar.JarFile to check the validity of a jar file. By default, the constructor to JarFile says we want to check the validity. Code must then iterate through each entry in the JarFile and seek to the end of each input stream, otherwise, the integrity isn&#8217;t checked. In other words, the java.util.jar.JarFile doesn&#8217;t give us the integrity checking with a simple method call such as isValid(), and it doesn&#8217;t give us an easy way to check that we <em>trust</em> the signature that the entries were signed with.</p>

<p>Anyone, anywhere, can create their own certificate, and sign a jar file &#8212; so if we want to establish trust for a signed jar, we get to do extra work. On <a href="http://stackoverflow.com/questions/1374170/how-to-verify-a-jar-signed-with-jarsigner-programmatically">stackoverflow.com</a>, Jarek Przygódzki linked to <a href="https://svn.cs.cf.ac.uk/projects/whip/trunk/whip-core/src/main/java/org/whipplugin/data/bundle/JarVerifier.java">code that shows how</a> to check for trusted signatures.</p>

<p>I wonder why establishing trust for a signed jar isn&#8217;t easier. Could it be that signed jar files originated in the bygone era when we ran Java applets in our web browsers? Did web browsers use their certificate authority database to verify some level of trust for the signature contained in a jar file?</p>

<p>Verifying trust is a delicate issue, as demonstrated by the <a href="https://www.google.com/search?q=hacked+certificate+authorities">recently hacked certificate authorities</a> including Diginotar and Comodo. Perhaps it&#8217;s a good thing that Java&#8217;s libraries and command line tools don&#8217;t make it deceptively simple to check jar files based on certificates trusted by Certificate Authorities.</p>

<p>Still, I wish the documentation for jarsigner and JarFile would shed more light on the limits of their default verification. I&#8217;d call it &#8220;hash checking&#8221; or &#8220;integrity checking based on hashing&#8221;.</p>

<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://jaredrobinson.com/blog/pitfalls-of-verifying-signed-jar-files/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Easy updates with iOS and Linux vs bomardment from Windows</title>
		<link>http://jaredrobinson.com/blog/why-i-love-my-ipod-touch-linux/</link>
		<comments>http://jaredrobinson.com/blog/why-i-love-my-ipod-touch-linux/#comments</comments>
		<pubDate>Mon, 12 Dec 2011 16:33:13 +0000</pubDate>
		<dc:creator>Jared</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Tech]]></category>
		<category><![CDATA[Windows]]></category>

		<guid isPermaLink="false">http://jaredrobinson.com/blog/?p=692</guid>
		<description><![CDATA[When I want to check email on my iPod Touch, I simply unlock it, load the email application, and read messages. What a joy. The tool works and works for me. It is my servant, instead of me being its &#8230; <a href="http://jaredrobinson.com/blog/why-i-love-my-ipod-touch-linux/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>When I want to check email on my iPod Touch, I simply unlock it, load the email application, and read messages. What a joy. The tool works and works for me. It is my servant, instead of me being its servant.</p>

<p>Compare that to my corporate Windows Laptop. I open the lid and unlock it, wait for corporate anti-virus (I think) to chew through the I/O on my machine for several minutes. Then I can read my email using the unimpressive and slow Lotus Notes<em> (</em>I&#8217;d rather be using Thunderbird, Outlook, or speedy <em><a href="http://en.wikipedia.org/wiki/Mutt_(e-mail_client)">mutt</a></em>).</p>

<p>Or compare to my home Windows Laptop. I open the lid, log in, and am bombarded with requests from several programs to install updates. I just want to check my email, not be attacked with annoying &#8220;update me!&#8221; windows. I see one from Thunderbird, another from Adobe Flash, another from Mozy and another from Firefox. By the time I&#8217;ve upgraded, sometimes I&#8217;ve forgotten what I wanted to accomplish in the first place.</p>

<p>Apple has it right with updates for the iPod Touch: They stay out of my way until I want to bother with them, and then they&#8217;re all manged together.</p>

<p>Linux has it right: A single package manager updates everything, in one shot, including from third parties.</p>

<p>I&#8217;ll continue to use Windows. There are other benefits, even though third-party updates are annoying.</p>
]]></content:encoded>
			<wfw:commentRss>http://jaredrobinson.com/blog/why-i-love-my-ipod-touch-linux/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

