<?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>Cortland Klein &#187; portfolio</title>
	<atom:link href="http://pixelcort.com/tag/portfolio/feed" rel="self" type="application/rss+xml" />
	<link>http://pixelcort.com</link>
	<description>Maker of fine robotic products.</description>
	<lastBuildDate>Fri, 27 Jan 2012 05:59:54 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>Dynamic Form Example</title>
		<link>http://pixelcort.com/258</link>
		<comments>http://pixelcort.com/258#comments</comments>
		<pubDate>Sun, 11 May 2008 23:54:56 +0000</pubDate>
		<dc:creator>Cortland Klein</dc:creator>
				<category><![CDATA[General]]></category>
		<category><![CDATA[portfolio]]></category>

		<guid isPermaLink="false">http://pixelcort.com/?p=258</guid>
		<description><![CDATA[Update: This has moved to my portfolio. This is an example of a dynamic form which serves as an email builder. It is a genericized version of one I wrote for my employer. It uses jQuery and jQuery Cookie and &#8230; <a href="http://pixelcort.com/258">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p><strong>Update:</strong> This has moved to <a href="/portfolio/dynamic-form-example">my portfolio</a>.</p>

<p>This is an example of a dynamic form which serves as an email builder. It is a genericized version of one I wrote for my employer.</p>

<p>It uses jQuery and jQuery Cookie and works in Safari and Firefox. It was last updated on 2008 May 14 to <a href="/261">fix Firefox compatibility</a>.</p>

<p>This is an example of my attempt to separate HTML, CSS, and JS into separate sections. Note that for simplicity purposes the document is one HTML file.</p>
]]></content:encoded>
			<wfw:commentRss>http://pixelcort.com/258/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Interruptible link-dest Backup Solution</title>
		<link>http://pixelcort.com/245</link>
		<comments>http://pixelcort.com/245#comments</comments>
		<pubDate>Wed, 30 Jan 2008 23:37:38 +0000</pubDate>
		<dc:creator>Cortland Klein</dc:creator>
				<category><![CDATA[General]]></category>
		<category><![CDATA[portfolio]]></category>

		<guid isPermaLink="false">http://pixelcort.com/245</guid>
		<description><![CDATA[I was inspired by Time Machine for every Unix out there to use the link-dest technique for backing up one external disk to another, however I found some limitations in its implementation, so I modified the script. Moved Source and &#8230; <a href="http://pixelcort.com/245">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>I was inspired by <a href="http://blog.interlinked.org/tutorials/rsync_time_machine.html">Time Machine for every Unix out there</a> to use the link-dest technique for backing up one external disk to another, however I found some limitations in its implementation, so I modified the script.</p>

<ol>
<li>Moved Source and Destination into variables.</li>
<li>Added a Progress directory so the script can be interrupted and resumed.</li>
<li>Added an exclude file to the Source directory so that the External disk&#8217;s special folders (Spotlight, etc) are not copied.</li>
<li>Added the -E flag to rsync so it copies Extended Attributes on Mac OS X (remove if you are not using Mac OS X).</li>
<li>Added the -x flag to rsync so it does not span disks.</li>
<li>Added the &#8211;delete flag to rsync so if rsync fails upon re-running the script files deleted from the source are deleted from the Progress directory.</li>
<li>Modified the Date format to mimic Time Machine&#8217;s.</li>
<li>Modified the Destination so that it directly uses it rather than a subdirectory.</li>
<li>Modified the symbolic link command so it removes the old Latest link and creates the new one in one step.</li>
<li>Use &amp;&amp; to ensure commands don&#8217;t occur if rsync fails.</li>
</ol>

<p>The script (<strong>Updated to fix bug</strong>):</p>

<pre><code>#!/bin/sh

source="/Volumes/Gray"
destination="/Volumes/Gray Backup"

mkdir -p "$destination/Progress"
rsync -aPEx --delete --exclude-from="$source/.exclude" \
            --link-dest="$destination/Latest" \
            "$source" "$destination/Progress" \
    &amp;&amp; date=`date "+%Y-%m-%d-%H%M%S"` \
    &amp;&amp; mv "$destination/Progress" "$destination/$date" \
    &amp;&amp; ln -sfh "$date" "$destination/Latest"
</code></pre>
]]></content:encoded>
			<wfw:commentRss>http://pixelcort.com/245/feed</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
	</channel>
</rss>

