<?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>mitch&#039;s meanderings&#187; Geekery</title>
	<atom:link href="http://mitchcontla.com/category/tech/feed/" rel="self" type="application/rss+xml" />
	<link>http://mitchcontla.com</link>
	<description>life, technology, running; links, photos, and videos</description>
	<lastBuildDate>Tue, 18 Oct 2011 19:32:44 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.1.3</generator>
		<item>
		<title>Display recursive directory listing in Terminal</title>
		<link>http://mitchcontla.com/2011/03/08/display-recursive-directory-listing-in-terminal/</link>
		<comments>http://mitchcontla.com/2011/03/08/display-recursive-directory-listing-in-terminal/#comments</comments>
		<pubDate>Tue, 08 Mar 2011 15:03:43 +0000</pubDate>
		<dc:creator>mitch</dc:creator>
				<category><![CDATA[Geekery]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Mac OS X]]></category>

		<guid isPermaLink="false">http://mitchcontla.com/?p=333</guid>
		<description><![CDATA[Use Tree with Mac OS X to display files and folders in a recursive structure with sub folders and files appearing under their parent directories.]]></description>
			<content:encoded><![CDATA[<p><a href="http://mitchcontla.com/blog/wp-content/uploads/2011/03/shell_tree.png"><img src="http://mitchcontla.com/blog/wp-content/uploads/2011/03/shell_tree.png" alt="" title="shell_tree" width="300" height="270" class="alignleft size-full wp-image-335" /></a>Selecting List view in <a href="http://en.wikipedia.org/wiki/Finder">Finder</a> displays files and folders in a recursive structure with sub folders and files appearing under their parent directories.</p>

<p>If you work in <a href="http://en.wikipedia.org/wiki/Apple_Terminal">Terminal</a> with any regularity, you know there are times when listing a directory structure in a manner similar to Finder&#8217;s List view would be handy, but there is no built in command to do so.</p>

<p>Before I switched to Mac OS X, I used Linux where I discovered a package called <a href="http://mama.indstate.edu/users/ice/tree/index.html">Tree</a>. The package consists of a single command that when passed a directory, displays a recursive tree-like listing of its content in <span class="caps">ASCII </span>form. The source for the package is freely available and can be downloaded and built in just a couple minutes.</p>

<h3>Building Tree for Mac OS X</h3>
The following steps assume:<br />
<ol>
	<li>Your using Mac OS X 10.6 Snow Leopard</li>
	<li>The latest <a href="http://developer.apple.com/technologies/xcode.html">Xcode Tools</a> from the Snow Leopard <span class="caps">DVD </span>or downloaded from <a href="http://developer.apple.com/devcenter/mac/index.action">Apple</a> are installed</li>
	<li>Your shell&#8217;s <span class="caps">PATH </span>variable includes <code>/usr/local</code> (if you don&#8217;t know why or how, see this Hivelogic <a href="http://hivelogic.com/articles/using_usr_local/">post</a>)</li>
	<li>You have experience running <span class="caps">UNIX </span>commands in Terminal</li>
</ol>

<p>Change to or create a directory where you can download and unpack the source. I keep a &#8216;Projects&#8217; folder to use for this kind of task.</p>


<div class="wp_syntax"><div class="code"><pre class="sh" style="font-family:monospace;">cd ~/Projects/src/</pre></div></div>




<h4>Download  and unpack the source code</h4>
The links and versions are current at the time of this writing. See the program <a href="http://mama.indstate.edu/users/ice/tree/index.html">site</a> for up to date information.<br />&nbsp;<br />


<div class="wp_syntax"><div class="code"><pre class="sh" style="font-family:monospace;">curl -O ftp://mama.indstate.edu/linux/tree/tree-1.5.3.tgz
tar xzvf tree-1.5.3.tgz</pre></div></div>




<p>Now change to the source directory:</p>


<div class="wp_syntax"><div class="code"><pre class="sh" style="font-family:monospace;">cd tree-1.5.3/</pre></div></div>




<h4>Modify the Makefile for Mac OS X</h4>
The source ships with a file called &#8216;Makefile&#8217; that contains information used by the build process to compile Tree. By default, the source builds for the Linux OS and installs to <code>/usr</code>. Use your favorite text editor to change the file for Mac OS X.<br />&nbsp;<br />

<p>Find the line that reads:</p>


<div class="wp_syntax"><div class="code"><pre class="sh" style="font-family:monospace;">prefix = /usr</pre></div></div>



<p>&#8230; and change to:</p>


<div class="wp_syntax"><div class="code"><pre class="sh" style="font-family:monospace;">prefix = /usr/local</pre></div></div>




<p>Find and uncomment (remove the leading &#8216;#&#8217;) the <code>CFLAGS</code> and <code>XOBJS</code> lines in the Mac OS X section of the Makefile so it looks like this:</p>


<div class="wp_syntax"><div class="code"><pre class="sh" style="font-family:monospace;"># Uncomment for OS X:
#CC=cc
CFLAGS=-O2 -Wall -fomit-frame-pointer -no-cpp-precomp
#LDFLAGS=
XOBJS=strverscmp.o</pre></div></div>




<p><strong>Compile and install</strong></p>


<div class="wp_syntax"><div class="code"><pre class="sh" style="font-family:monospace;">make
sudo make install</pre></div></div>




<p>Assuming you did not receive any errors during the build process, you should be able to type the following and see a recursive listing of all the files and folders in the current directory:</p>


<div class="wp_syntax"><div class="code"><pre class="sh" style="font-family:monospace;">tree</pre></div></div>




<p>If you want to see directories only, try this:</p>


<div class="wp_syntax"><div class="code"><pre class="sh" style="font-family:monospace;">tree -d</pre></div></div>




<p>That&#8217;s all there is.</p>]]></content:encoded>
			<wfw:commentRss>http://mitchcontla.com/2011/03/08/display-recursive-directory-listing-in-terminal/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Quick Tip: Open Finder in current directory from Terminal</title>
		<link>http://mitchcontla.com/2011/03/02/quick-tip-open-finder-in-current-directory-from-terminal/</link>
		<comments>http://mitchcontla.com/2011/03/02/quick-tip-open-finder-in-current-directory-from-terminal/#comments</comments>
		<pubDate>Thu, 03 Mar 2011 02:22:22 +0000</pubDate>
		<dc:creator>mitch</dc:creator>
				<category><![CDATA[Mac OS X]]></category>

		<guid isPermaLink="false">http://mitchcontla.com/?p=313</guid>
		<description><![CDATA[Dead simple: open .]]></description>
			<content:encoded><![CDATA[<p>Love working at the shell. Shortcuts like these save so much time.</p>


<div class="wp_syntax"><div class="code"><pre class="sh" style="font-family:monospace;">open .</pre></div></div>




<p>Dead simple.</p>]]></content:encoded>
			<wfw:commentRss>http://mitchcontla.com/2011/03/02/quick-tip-open-finder-in-current-directory-from-terminal/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Google Calculator: Decimal to Roman</title>
		<link>http://mitchcontla.com/2011/03/02/google-calculator-decimal-to-roman/</link>
		<comments>http://mitchcontla.com/2011/03/02/google-calculator-decimal-to-roman/#comments</comments>
		<pubDate>Wed, 02 Mar 2011 16:57:42 +0000</pubDate>
		<dc:creator>mitch</dc:creator>
				<category><![CDATA[Geekery]]></category>
		<category><![CDATA[InterWeb]]></category>
		<category><![CDATA[google]]></category>

		<guid isPermaLink="false">http://mitchcontla.com/?p=305</guid>
		<description><![CDATA[I guess I should not be surprised, but I just discovered Google Calculator converts decimal to roman numerals. Just type something like &#8220;721 to roman&#8221;, and viola!]]></description>
			<content:encoded><![CDATA[<p>I guess I should not be surprised, but I just discovered <a href="http://www.google.com/intl/en/help/features.html#calculator">Google Calculator</a> converts decimal to roman numerals. Just type something like &#8220;721 to roman&#8221;, and viola!</p>]]></content:encoded>
			<wfw:commentRss>http://mitchcontla.com/2011/03/02/google-calculator-decimal-to-roman/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Use Mac OS X Automator and Services To Speed Up Repetitive Tasks</title>
		<link>http://mitchcontla.com/2011/02/28/mac-os-x-automator-and-services/</link>
		<comments>http://mitchcontla.com/2011/02/28/mac-os-x-automator-and-services/#comments</comments>
		<pubDate>Mon, 28 Feb 2011 17:02:53 +0000</pubDate>
		<dc:creator>mitch</dc:creator>
				<category><![CDATA[Apple]]></category>
		<category><![CDATA[Automation]]></category>
		<category><![CDATA[Geekery]]></category>
		<category><![CDATA[Mac OS X]]></category>
		<category><![CDATA[apple]]></category>
		<category><![CDATA[applescript]]></category>
		<category><![CDATA[automator]]></category>
		<category><![CDATA[mac]]></category>
		<category><![CDATA[os x]]></category>

		<guid isPermaLink="false">http://mitchcontla.com/?p=277</guid>
		<description><![CDATA[Automator is one of best kept secrets in Mac OS X. Using Automator to build workflows is simple and takes little time to learn. Services are an effective way to automate repetitive tasks that save time. Make your computer work for you now by creating a few services of your own.]]></description>
			<content:encoded><![CDATA[<p><a href="http://support.apple.com/kb/HT2488">Automator</a> is one of best kept secrets in Mac OS X. It&#8217;s kind of like drag-and-drop scripting that lets you create workflows to automate and speed up repetitive tasks. In Snow Leopard, you can use Automator to create your own services that are accessible via the Services menu and can also be contextual, showing up when you right-click on an item like text selections or files and folders.</p>

<p>The Automator application lets you build a workflow by choosing from a collection of actions, some native to OS X, some installed by other applications, and dragging those actions into a workflow. There are actions that perform standalone tasks like copying a file to a specific folder, processing an image, or asking for input. If you need something more advanced there are actions that let you run shell commands, or even call other scripting languages like Python, Perl, or Apple&#8217;s own AppleScript. Combining these actions into a workflow lets you automate just about anything.</p>

<p><strong>Addressing an Envelope Using Selected Text</strong><br />
I recently received a request to mail some additional information for a rebate I submitted several weeks ago. The email message contained the mailing address for the fulfillment center. Ordinarily, this means either hand addressing an envelope or going through several steps to launch Pages, choose a template, cut and paste the address, and print the envelope. It felt like I should be able to select the address and have an envelope automatically prepared and ready to print, but there is no built in way to do this.</p>

<p>Using Automator, I created a service that appears as a contextual menu item when working with selected text&#8230; in this case an address. In this workflow the Automator service is essentially a wrapper around AppleScript which does the heavy lifting here.</p>

<p><a href="http://mitchcontla.com/blog/wp-content/uploads/2011/02/auto_envelope-e1298825855688.png"><img src="http://mitchcontla.com/blog/wp-content/uploads/2011/02/auto_envelope-e1298825855688.png" alt="Automator envelope workflow" title="Automator envelope workflow" width="600" height="375" class="aligncenter size-full wp-image-275" /></a></p>

<p>Here is the AppleScript that makes it happen.</p>


<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
</pre></td><td class="code"><pre class="applescript" style="font-family:monospace;"><span style="color: #ff0033; font-weight: bold;">on</span> <span style="color: #0066ff;">run</span> <span style="color: #000000;">&#123;</span>input, parameters<span style="color: #000000;">&#125;</span>
	<span style="color: #808080; font-style: italic;">-- set the name of Envelope template to use</span>
	<span style="color: #ff0033; font-weight: bold;">set</span> theTemplate <span style="color: #ff0033; font-weight: bold;">to</span> <span style="color: #009900;">&quot;Classic Envelope&quot;</span>
	<span style="color: #808080; font-style: italic;">-- set selection to first item of input list, ignore rest</span>
	<span style="color: #ff0033; font-weight: bold;">set</span> theSelection <span style="color: #ff0033; font-weight: bold;">to</span> <span style="color: #0066ff;">item</span> <span style="color: #000000;">1</span> <span style="color: #ff0033; font-weight: bold;">of</span> input <span style="color: #ff0033;">as</span> <span style="color: #0066ff;">text</span>
	<span style="color: #ff0033; font-weight: bold;">tell</span> <span style="color: #0066ff;">application</span> <span style="color: #009900;">&quot;Pages&quot;</span>
		<span style="color: #808080; font-style: italic;">-- launch Pages without &quot;Template Chooser&quot;</span>
		<span style="color: #0066ff;">launch</span>
		<span style="color: #ff0033; font-weight: bold;">try</span>
			<span style="color: #0066ff;">make</span> <span style="color: #0066ff;">new</span> <span style="color: #0066ff;">document</span> <span style="color: #ff0033; font-weight: bold;">with</span> <span style="color: #0066ff;">properties</span> <span style="color: #000000;">&#123;</span>template <span style="color: #0066ff;">name</span>:theTemplate<span style="color: #000000;">&#125;</span>
		<span style="color: #ff0033; font-weight: bold;">on</span> <span style="color: #ff0033; font-weight: bold;">error</span>
			<span style="color: #808080; font-style: italic;">-- display msg if the template does not exist</span>
			display alert ¬
				<span style="color: #009900;">&quot;Template does not exist or
the document could not be created&quot;</span> <span style="color: #0066ff;">buttons</span> <span style="color: #000000;">&#123;</span><span style="color: #009900;">&quot;Cancel&quot;</span>, <span style="color: #009900;">&quot;OK&quot;</span><span style="color: #000000;">&#125;</span> <span style="color: #ff0033;">as</span> warning
			<span style="color: #808080; font-style: italic;">-- If can't create document, then bail out of the whole shebang!</span>
			<span style="color: #0066ff;">quit</span> <span style="color: #0066ff;">application</span> <span style="color: #009900;">&quot;Pages&quot;</span>
			<span style="color: #ff0033; font-weight: bold;">return</span>
		<span style="color: #ff0033; font-weight: bold;">end</span> <span style="color: #ff0033; font-weight: bold;">try</span>
		<span style="color: #ff0033; font-weight: bold;">tell</span> <span style="color: #ff0033;">the</span> <span style="color: #ff0033;">front</span> <span style="color: #0066ff;">document</span>
			<span style="color: #808080; font-style: italic;">--delete the default template text and make a new paragraph</span>
			<span style="color: #0066ff;">delete</span> <span style="color: #ff0033;">every</span> <span style="color: #0066ff;">paragraph</span>
			<span style="color: #0066ff;">make</span> <span style="color: #0066ff;">new</span> <span style="color: #0066ff;">paragraph</span> at <span style="color: #ff0033;">beginning</span>
			<span style="color: #ff0033; font-weight: bold;">tell</span> body <span style="color: #0066ff;">text</span>
				<span style="color: #808080; font-style: italic;">-- put the selected text into the new paragraph</span>
				<span style="color: #ff0033; font-weight: bold;">set</span> <span style="color: #0066ff;">paragraph</span> <span style="color: #000000;">1</span> <span style="color: #ff0033; font-weight: bold;">to</span> theSelection
			<span style="color: #ff0033; font-weight: bold;">end</span> <span style="color: #ff0033; font-weight: bold;">tell</span>
		<span style="color: #ff0033; font-weight: bold;">end</span> <span style="color: #ff0033; font-weight: bold;">tell</span>
		<span style="color: #808080; font-style: italic;">-- open the print dialog ready to print! Enclose in try block to ignore errors</span>
		<span style="color: #ff0033; font-weight: bold;">try</span>
			<span style="color: #0066ff;">print</span> <span style="color: #ff0033;">the</span> <span style="color: #ff0033;">front</span> <span style="color: #0066ff;">document</span> <span style="color: #ff0033; font-weight: bold;">with</span> <span style="color: #0066ff;">print</span> dialog
		<span style="color: #ff0033; font-weight: bold;">end</span> <span style="color: #ff0033; font-weight: bold;">try</span>
	<span style="color: #ff0033; font-weight: bold;">end</span> <span style="color: #ff0033; font-weight: bold;">tell</span>
	<span style="color: #ff0033; font-weight: bold;">return</span> input
<span style="color: #ff0033; font-weight: bold;">end</span> <span style="color: #0066ff;">run</span></pre></td></tr></table></div>




<p><strong>Download All Links on a Web Page</strong><br />
There is a great add-on for <a href="http://mzl.la/dUTkIB">Firefox</a> called <a href="http://bit.ly/emqgQS">DownThemAll</a> that lets you download all the links on a web page without the need to click on each link individually. I have not been able to find anything like it for Safari. I wanted to download several zip archives containing sample code for a tutorial I was working through and was certain this could be done using Automator. In just a few minutes I hacked together a workflow that finds links on the current Safari page, filters them by extension, and displays a list for me to select from, before downloading the links to the Downloads folder. This workflow makes use of several Safari specific actions.</p>

<p><a href="http://mitchcontla.com/blog/wp-content/uploads/2011/02/auto_download-e1298853337900.png"><img src="http://mitchcontla.com/blog/wp-content/uploads/2011/02/auto_download-e1298853337900.png" alt="Automator download all workflow" title="Automator download all workflow" width="599" height="654" class="aligncenter size-full wp-image-276" /></a></p>

<p><strong>Copy or Move Files and Folders to iTunes</strong><br />
One of the easiest ways to add songs to iTunes is by copying audio files or folders containing songs to the aptly named Automatically Add to iTunes folder. While this is relatively easy, why not save a few mouse clicks and drags by adding a service to the contextual menu for Finder items like files and folders. Add one service to copy files or folders, and a second to move them.</p>

<p><a href="http://mitchcontla.com/blog/wp-content/uploads/2011/02/auto_copyitunes-e1298908323917.png"><img src="http://mitchcontla.com/blog/wp-content/uploads/2011/02/auto_copyitunes-e1298908323917.png" alt="Automator copy to iTunes workflow" title="Automator copy to iTunes workflow" width="599" height="474" class="aligncenter size-full wp-image-282" /></a></p>

<p>I have services that copy and move files to my <a href="http://db.tt/SVZWzX3">Dropbox</a> folder, create tar archives from selected files and folders, and even automatically shorten a selected <span class="caps">URL </span>with <a href="http://bit.ly">bit.ly</a>. Automator includes actions for working with text files, creating <span class="caps">PDF </span>documents, and even processing images. There is really no limit to the cool things you can do with Automator.</p>

<p><strong>Resources</strong><br />
There are lots of great places online where you can find workflows. The best place to start is at <a href="http://www.macosxautomation.com/services/download/index.html">Mac OS X Automation</a> where you will not only find sample services, but some great tutorials about Automator and AppleScript.</p>

<p>Using Automator to build workflows is simple and takes little time to learn. Services are an effective way to automate repetitive tasks that save time. Make your computer work for you now by creating a few services of your own.</p>]]></content:encoded>
			<wfw:commentRss>http://mitchcontla.com/2011/02/28/mac-os-x-automator-and-services/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Blogging from TextMate</title>
		<link>http://mitchcontla.com/2010/05/18/blogging-from-textmate/</link>
		<comments>http://mitchcontla.com/2010/05/18/blogging-from-textmate/#comments</comments>
		<pubDate>Wed, 19 May 2010 04:44:08 +0000</pubDate>
		<dc:creator>mitch</dc:creator>
				<category><![CDATA[Blog Stuff]]></category>
		<category><![CDATA[Geekery]]></category>

		<guid isPermaLink="false">http://mitchcontla.com/2010/05/18/blogging-from-textmate/</guid>
		<description><![CDATA[I have reluctantly been using TextMate for a couple weeks. No text editor can ever take the place of Vim, but there are several features that attracted me to TextMate. So far I am impressed, and TM makes editing HTML and CSS a snap. I will write about my experiences when time permits, but for [...]]]></description>
			<content:encoded><![CDATA[<p>I have <em>reluctantly</em> been using <a href="http://macromates.com/" title="TextMate">TextMate</a> for a couple weeks. No text editor can ever take the place of <a href="http://www.vim.org/" title="Vim">Vim</a>, but there are several features that attracted me to <a href="http://macromates.com/">TextMate</a>. So far I am impressed, and <a href="http://macromates.com/">TM</a> makes editing <acronym title="HyperText Markup Language">HTML</acronym> and <acronym title="Cascading Style Sheets">CSS</acronym> a snap.</p>

<p>I will write about my experiences when time permits, but for now how about this&#8230; <a href="http://screencasts.textmate.org/blogging_take_two.mov" title="Screencast: Blogging from TextMate">blogging from</a> <a href="http://macromates.com/">TextMate</a>. That&#8217;s right, this post was written and posted from inside <a href="http://macromates.com/">TM</a>!</p>]]></content:encoded>
			<wfw:commentRss>http://mitchcontla.com/2010/05/18/blogging-from-textmate/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
<enclosure url="http://screencasts.textmate.org/blogging_take_two.mov" length="31736069" type="video/quicktime" />
		</item>
		<item>
		<title>5 Web Applications You Can&#8217;t Live Without</title>
		<link>http://mitchcontla.com/2008/06/05/5-web-applications-i-cant-live-without/</link>
		<comments>http://mitchcontla.com/2008/06/05/5-web-applications-i-cant-live-without/#comments</comments>
		<pubDate>Thu, 05 Jun 2008 12:59:52 +0000</pubDate>
		<dc:creator>mitch</dc:creator>
				<category><![CDATA[Geekery]]></category>
		<category><![CDATA[Personal Productivity]]></category>
		<category><![CDATA[37signals]]></category>
		<category><![CDATA[backpack]]></category>
		<category><![CDATA[google]]></category>
		<category><![CDATA[Google Reader]]></category>
		<category><![CDATA[jott]]></category>
		<category><![CDATA[sandy]]></category>
		<category><![CDATA[web applications]]></category>

		<guid isPermaLink="false">http://mitch.contlafamily.com/?p=163</guid>
		<description><![CDATA[With ever-increasing amounts of information coming from every direction, and personal and professional lives that are busier than ever, it's becoming more difficult to manage all the appointments, messages, notes, tasks, and details that are part of every day. If you need a little help, there are lots of well thought out web applications that provide solutions to many of life's challenges.

Here's five web applications you can't live without.]]></description>
			<content:encoded><![CDATA[<p>With ever-increasing amounts of information coming from every direction, and personal and professional lives that are busier than ever, it&#8217;s becoming more difficult to manage all the appointments, messages, notes, tasks, and details that are part of every day. If you need a little help, there are lots of well thought out web applications that provide solutions to many of life&#8217;s challenges.</p>

<p>Here&#8217;s five web applications you can&#8217;t live without: <span id="more-163"></span></p>

<h4><strong>Sandy</strong></h4>

<p><a href="http://iwantsandy.com"><img src="http://iwantsandy.com/images/flair/iwantsandy_100x40.gif" class="alignleft size-full" alt="Sandy - your free personal email assistant" /></a>Because &acirc;everyone deserves an assistant&acirc;, the clever team at <a href="http://www.valuesofn.com/" title="Values of n, Inc">Values of n</a> give you <a href="http://iwantsandy.com" title="Sandy - your free personal email assistant">Sandy</a>, an electronic executive secretary to help manage your busy life.</p>

<p>Need to remember a meeting with your Boss? Send Sandy an email, and she will remind you when the time comes. Need to remember contact information for someone you just met? Send it to Sandy, she&#8217;ll categorize it as a contact. Want to check out a new website but don&#8217;t have time? Send the details to Sandy and she&#8217;ll check it out, summarizing the site&#8217;s recent changes.</p>

<p><a href="http://mitch.contlafamily.com/images/2008/06/sandy-digest.jpg" title="Daily Digest prepared by Sandy"><img src="http://mitch.contlafamily.com/blog/wp-content/uploads/2008/06/tn-sandy-digest.gif" alt="Daily Digest prepared by Sandy" title="Daily Digest prepared by Sandy" class="alignright size-full wp-image-174" height="198" width="250" /></a>Sandy starts each day by sending you a &#8220;Daily Digest&#8221; listing all the things you need to accomplish. She reminds you about appointments and reoccurring tasks. Sandy will keep track of books you want to read, compile a grocery list, and much more.</p>

<p>All of the magic is accomplished through the exchange of a few naturally worded commands sent to Sandy via email. Sandy sends reminders by email, or by <acronym title="Short Message Service">SMS</acronym> to your mobile phone. If you are a <a href="http://twitter.com" title="Twitter">Twitter</a> fan, Sandy can even take instruction in the form of a tweet.</p>

<h4><strong>Jott</strong></h4>

<p><a href="http://jott.com"><img src="http://mitch.contlafamily.com/blog/wp-content/uploads/2008/06/jott.gif" alt="Jott - Get Simple" title="Jott - Get Simple" class="alignleft size-full wp-image-176" height="60" width="150" /></a>Next on the list is <a href="http://jott.com/" title="Jott">Jott</a>, a service that converts voice messages to text. The concept is simple, call Jott and say who you want to communicate with, then record your message. Jott transcribes the message and routes it to a recipient via email, or takes some predetermined action. Jott&#8217;s transcription is surprisingly accurate, just speak clearly and a little slower than usual.</p>

<p>Record email to your self or others, set reminders, create lists, and even link to other web services like <a href="http://iwantsandy.com" title="Sandy - your free personal email assistant">Sandy</a> (a powerful combination). In a bit of reverse technology, Jott <a href="http://jott.com/jott/feeds.html" title="Jott Feeds">recently added</a>, the ability to call and have your favorite <acronym title="Really Simple Syndication">RSS</acronym> feeds read to you&#8230; great for the drive to work.</p>

<p>Signing up is simple, just tell Jott what phone numbers you want to use to interact with the service and you are ready to go.</p>

<h4><strong>Google Reader</strong></h4>

<p><a href="http://reader.google.com"><img src="http://mitch.contlafamily.com/blog/wp-content/uploads/2008/06/reader.gif" alt="Google Reader" title="Google Reader" class="alignleft size-full wp-image-177" height="60" width="155" /></a>For information junkies, <a href="http://www.google.com/reader" title="Google Reader">Google Reader</a> provides a way to rapidly consume <acronym title="Really Simple Syndication">RSS</acronym> feeds from your favorite web sites, weblogs, and news services. Reader aggregates and provides a <a href="http://www.reallysimplesyndication.com/riverOfNews" title="What is a 'River of News' style aggregator?">&acirc;river of news&acirc;</a> enabling you to quickly review and read the stories that interest you. Its layout is clean and simple (like every other <a href="http://www.google.com/" title="Google">Google</a> service), and if you take advantage of the well thought out keyboard navigation, you can sift through hundreds of feeds in a short amount of time.</p>

<p>Categorize your feeds into folders, and tag with additional keywords to help you quickly spot your favorites. Share interesting or important posts with the whole world, or just a few friends. Google Reader is the cream of the crop web-based feed aggregator.</p>

<h4><strong>Backpack</strong></h4>

<p><a href="http://backpackit.com"><img src="http://mitch.contlafamily.com/blog/wp-content/uploads/2008/06/backpack.gif" alt="Backpack" title="Backpack" class="alignright size-full wp-image-178" height="85" width="214" /></a><a href="http://www.backpackit.com/" title="Backpack">Backpack</a> gives you a place to put and organize your stuff. Notes, lists, ideas, images, just about anything electronic can be kept in your Backpack. Developed by the crew at <a href="http://www.37signals.com/" title="37signals" rel="homepage" class="zem_slink">37 Signals</a>, Backpack was one of the first in the new wave of less is better (not more) applications that does a few things really, really well, and nothing more.</p>

<p>Store your stuff in one place, or spread it across several pages. Create lists wherever you want, reorganize list items, and check things off when you get them done. Add a few notes or even upload files to a page so you can find them later. Backpack even lets you email content directly to a specific page using a super-secret email address.</p>

<p>Driven by a simple, intuitive user interface, Backpack is truly a pleasure to use. Open a free account, and create up to five pages; paid accounts let you create more.</p>

<h4><strong>Gmail</strong></h4>

<p><a href="http://mail.google.com"><img src="http://mitch.contlafamily.com/blog/wp-content/uploads/2008/06/gmail.gif" alt="Gmail" title="Gmail" class="alignleft size-full wp-image-175" height="65" width="140" /></a>Suffering from &#8216;inbox overload&#8217;, ready to declare <a href="http://www.google.com/search?hl=en&amp;q=%22email+bankruptcy%22" title="Google: email bankruptcy">&#8216;email bankruptcy&#8217;</a>, let <a href="http://mail.google.com" title="Gmail">Gmail</a> handle the myriad messages that find their way to you each day. A great layout, slick interface, and of course the best search technology available make this the perfect web-based email client.</p>

<p>Tag messages using keywords, build filters to act on messages before they clutter up your inbox, and use keyboard navigation to read and organize your messages. Combine all that with 6GB+ of storage for free and incredibly effective spam protection, and you have an efficient solution to manage email.</p>

<p>Did I miss anything. What are your favorite web-based applications?</p>]]></content:encoded>
			<wfw:commentRss>http://mitchcontla.com/2008/06/05/5-web-applications-i-cant-live-without/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Nautilus Script: Edit Remote Files (SSH) with Vim</title>
		<link>http://mitchcontla.com/2007/09/06/nautilus-script-edit-remote-files-ssh-with-vim/</link>
		<comments>http://mitchcontla.com/2007/09/06/nautilus-script-edit-remote-files-ssh-with-vim/#comments</comments>
		<pubDate>Thu, 06 Sep 2007 08:11:41 +0000</pubDate>
		<dc:creator>mitch</dc:creator>
				<category><![CDATA[Geekery]]></category>
		<category><![CDATA[Gnome]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[Python]]></category>
		<category><![CDATA[gvim]]></category>
		<category><![CDATA[nautilus]]></category>
		<category><![CDATA[nautilus-script]]></category>
		<category><![CDATA[vim]]></category>

		<guid isPermaLink="false">http://mitch.contlafamily.com/2007/09/06/nautilus-script-edit-remote-files-ssh-with-vim/</guid>
		<description><![CDATA[My on again, off again love affair with KDE is currently off (but that&#8217;s another story). I&#8217;m once again enjoying the simplicity of Gnome, and the elegance of Nautilus. The ability to graphically browse remote servers via SSH is great, but I found out that trying to edit a remote file chokes Vim. Apparently the [...]]]></description>
			<content:encoded><![CDATA[<p>My on again, off again love affair with <a href="http://www.kde.org/" title="K Desktop Environment"><span class="caps">KDE</span></a> is currently off (but that&#8217;s another story). I&#8217;m once again enjoying the simplicity of <a href="http://www.gnome.org/" title="Gnome Desktop">Gnome</a>, and the elegance of <a href="http://www.gnome.org/projects/nautilus/" title="Nautilus file manager">Nautilus</a>.</p>

<p>The ability to graphically browse remote servers via <acronym title="secure shell">SSH</acronym> is great, but I found out that trying to edit a remote file chokes <a href="http://www.vim.org/" title="Vim editor">Vim</a>. Apparently the netrw module does not handle an <span class="caps">SSH </span><acronym title="Uniform Resource Identifier">URI</acronym>, but rather prefers <acronym title="secure copy">SCP</acronym>. So a quick nautilus-script to the rescue.</p>


<div class="wp_syntax"><div class="code"><pre class="python" style="font-family:monospace;"><span style="color: #808080; font-style: italic;">#!/usr/bin/env python</span>
&nbsp;
<span style="color: #ff7700;font-weight:bold;">import</span> <span style="color: #dc143c;">os</span>, <span style="color: #dc143c;">sys</span>
<span style="color: #ff7700;font-weight:bold;">import</span> <span style="color: #dc143c;">re</span>
<span style="color: #ff7700;font-weight:bold;">import</span> <span style="color: #dc143c;">urllib</span>
&nbsp;
files = <span style="color: black;">&#91;</span><span style="color: black;">&#93;</span>
&nbsp;
<span style="color: #ff7700;font-weight:bold;">def</span> unescape<span style="color: black;">&#40;</span>uri<span style="color: black;">&#41;</span>:
    <span style="color: #ff7700;font-weight:bold;">return</span> <span style="color: #dc143c;">re</span>.<span style="color: black;">sub</span><span style="color: black;">&#40;</span>r<span style="color: #483d8b;">'<span style="color: #000099; font-weight: bold;">\s</span>'</span>, r<span style="color: #483d8b;">'<span style="color: #000099; font-weight: bold;">\\</span> '</span>, <span style="color: #dc143c;">urllib</span>.<span style="color: black;">unquote</span><span style="color: black;">&#40;</span>uri<span style="color: black;">&#41;</span><span style="color: black;">&#41;</span>
&nbsp;
<span style="color: #ff7700;font-weight:bold;">for</span> <span style="color: #008000;">file</span> <span style="color: #ff7700;font-weight:bold;">in</span> <span style="color: #dc143c;">os</span>.<span style="color: black;">getenv</span><span style="color: black;">&#40;</span><span style="color: #483d8b;">&quot;NAUTILUS_SCRIPT_SELECTED_URIS&quot;</span>, <span style="color: #008000;">None</span><span style="color: black;">&#41;</span>.<span style="color: black;">split</span><span style="color: black;">&#40;</span><span style="color: #483d8b;">&quot;<span style="color: #000099; font-weight: bold;">\n</span>&quot;</span><span style="color: black;">&#41;</span>:
&nbsp;
    <span style="color: #ff7700;font-weight:bold;">if</span> <span style="color: #dc143c;">re</span>.<span style="color: black;">match</span><span style="color: black;">&#40;</span>r<span style="color: #483d8b;">'^file://'</span>, <span style="color: #008000;">file</span><span style="color: black;">&#41;</span>:
        files.<span style="color: black;">append</span><span style="color: black;">&#40;</span>unescape<span style="color: black;">&#40;</span><span style="color: #dc143c;">re</span>.<span style="color: black;">sub</span><span style="color: black;">&#40;</span>r<span style="color: #483d8b;">'^file://'</span>, r<span style="color: #483d8b;">&quot;&quot;</span>, <span style="color: #008000;">file</span><span style="color: black;">&#41;</span><span style="color: black;">&#41;</span><span style="color: black;">&#41;</span>
&nbsp;
    <span style="color: #ff7700;font-weight:bold;">elif</span> <span style="color: #dc143c;">re</span>.<span style="color: black;">match</span><span style="color: black;">&#40;</span>r<span style="color: #483d8b;">'^ssh://'</span>, <span style="color: #008000;">file</span><span style="color: black;">&#41;</span>:
        files.<span style="color: black;">append</span><span style="color: black;">&#40;</span>unescape<span style="color: black;">&#40;</span><span style="color: #dc143c;">re</span>.<span style="color: black;">sub</span><span style="color: black;">&#40;</span>r<span style="color: #483d8b;">'^ssh://([^/]+)(/[^/]+){2}/(.*)$'</span>, r<span style="color: #483d8b;">'scp://<span style="color: #000099; font-weight: bold;">\1</span>/<span style="color: #000099; font-weight: bold;">\3</span>'</span>, <span style="color: #008000;">file</span><span style="color: black;">&#41;</span><span style="color: black;">&#41;</span><span style="color: black;">&#41;</span>
&nbsp;
    <span style="color: #ff7700;font-weight:bold;">else</span>:
        <span style="color: #ff7700;font-weight:bold;">pass</span>
&nbsp;
<span style="color: #ff7700;font-weight:bold;">if</span> files:
    <span style="color: #dc143c;">os</span>.<span style="color: black;">system</span><span style="color: black;">&#40;</span><span style="color: #483d8b;">&quot;&quot;&quot;gvim &quot;&quot;&quot;</span> + <span style="color: #483d8b;">&quot; &quot;</span>.<span style="color: black;">join</span><span style="color: black;">&#40;</span>files<span style="color: black;">&#41;</span><span style="color: black;">&#41;</span>
&nbsp;
<span style="color: #dc143c;">sys</span>.<span style="color: black;">exit</span><span style="color: black;">&#40;</span><span style="color: #ff4500;">0</span><span style="color: black;">&#41;</span></pre></div></div>




<p>Still some work to do, but for now it&#8217;s simple and effective.</p>]]></content:encoded>
			<wfw:commentRss>http://mitchcontla.com/2007/09/06/nautilus-script-edit-remote-files-ssh-with-vim/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Another Serving</title>
		<link>http://mitchcontla.com/2007/07/30/another-serving/</link>
		<comments>http://mitchcontla.com/2007/07/30/another-serving/#comments</comments>
		<pubDate>Mon, 30 Jul 2007 14:15:47 +0000</pubDate>
		<dc:creator>mitch</dc:creator>
				<category><![CDATA[Blogging]]></category>
		<category><![CDATA[Geekery]]></category>
		<category><![CDATA[Links]]></category>
		<category><![CDATA[Personal Life]]></category>
		<category><![CDATA[blog]]></category>
		<category><![CDATA[Humor]]></category>
		<category><![CDATA[mormon]]></category>
		<category><![CDATA[podcasts]]></category>
		<category><![CDATA[religion]]></category>

		<guid isPermaLink="false">http://mitch.contlafamily.com/2007/07/30/another-serving/</guid>
		<description><![CDATA[We just posted a new episode of the Mormon Potluck podcast. This weekly podcast is created by 4 friends brought together by religion, and a love for all things tech. Each week we talk about life in general, how our Mormon beliefs affect our lives, news, politics, and the technologies we love (or hate).]]></description>
			<content:encoded><![CDATA[<p>We just posted a <a href="http://www.mormonpotluck.com/2007/07/27/mormon-potluck-podcast-episode-4/" title="Mormon Potluck Podcast: Episode 4">new episode</a> of the <a href="http://www.mormonpotluck.com" title="Mormonpotluck.com">Mormon Potluck</a>  podcast. This weekly podcast is created by 4 friends brought together by religion, and a love for all things tech. Each week we talk about life in general, how our <a href="http://www.mormon.org" title="Mormon.org">Mormon beliefs</a> affect our lives, news, politics, and the technologies we love (or hate).</p>]]></content:encoded>
			<wfw:commentRss>http://mitchcontla.com/2007/07/30/another-serving/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Mormon Potluck Podcast</title>
		<link>http://mitchcontla.com/2007/06/29/mormon-potluck-podcast/</link>
		<comments>http://mitchcontla.com/2007/06/29/mormon-potluck-podcast/#comments</comments>
		<pubDate>Fri, 29 Jun 2007 18:55:13 +0000</pubDate>
		<dc:creator>mitch</dc:creator>
				<category><![CDATA[Blogging]]></category>
		<category><![CDATA[Geekery]]></category>
		<category><![CDATA[Humor]]></category>
		<category><![CDATA[Personal Life]]></category>

		<guid isPermaLink="false">http://mitch.contlafamily.com/2007/06/29/mormon-potluck-podcast/</guid>
		<description><![CDATA[If you haven&#8217;t had a chance to listen yet, you don&#8217;t know what you are missing! Episode 2 of the Mormon Potluck Podcast is online now.]]></description>
			<content:encoded><![CDATA[<p>If you haven&#8217;t had a chance to listen yet, you don&#8217;t know what you are missing! <a href="http://www.mormonpotluck.com/2007/06/29/mormon-potluck-podcast-episode-2/" title="Mormon Potluck Podcast: Episode 2">Episode 2</a> of the <a href="http://www.mormonpotluck.com/" title="Mormon Potluck">Mormon Potluck</a> Podcast is online now.</p>]]></content:encoded>
			<wfw:commentRss>http://mitchcontla.com/2007/06/29/mormon-potluck-podcast/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Bash: It&#8217;s the little things</title>
		<link>http://mitchcontla.com/2007/06/27/bash-its-the-little-things/</link>
		<comments>http://mitchcontla.com/2007/06/27/bash-its-the-little-things/#comments</comments>
		<pubDate>Wed, 27 Jun 2007 19:47:50 +0000</pubDate>
		<dc:creator>mitch</dc:creator>
				<category><![CDATA[Geekery]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[bash]]></category>
		<category><![CDATA[gnu]]></category>
		<category><![CDATA[hints]]></category>
		<category><![CDATA[technology]]></category>
		<category><![CDATA[tips]]></category>

		<guid isPermaLink="false">http://mitch.contlafamily.com/2007/06/27/bash-its-the-little-things/</guid>
		<description><![CDATA[The Bash shell always amazes me. I needed to create a Maildir using the typical Maildir/cur, Maildir/new, Maildir/tmp structure and stumbled on this: $ mkdir -m 0700 -p Maildir/{cur,new,tmp} The -m and -p options are no-brainers, but the {cur,new,tmp} was new to me. It was easy to figure out what was going to happen&#8230; one [...]]]></description>
			<content:encoded><![CDATA[<p>The <a href="http://www.gnu.org/software/bash/" title="Bash - GNU Project">Bash</a> shell always amazes me. I needed to create a <a href="http://en.wikipedia.org/wiki/Maildir" title="Wikipedia: Maildir">Maildir</a> using the typical <code>Maildir/cur</code>, <code>Maildir/new</code>, <code>Maildir/tmp</code> structure and stumbled on this:</p>



<pre class="example"><code>$ mkdir -m 0700 -p Maildir/{cur,new,tmp}</code></pre>



<p>The <code>-m</code> and <code>-p</code> options are no-brainers, but the <code>{cur,new,tmp}</code> was new to me. It was easy to figure out what was going to happen&#8230; one command to create the Maildir directory, and the three subdirectories, I was simply unfamiliar with the syntax. A quick look at the <a href="http://www.gnu.org/software/bash/" title="Bash - GNU Project">Bash</a> man page and I discovered <a href="http://www.gnu.org/software/bash/manual/bashref.html#SEC27" title="Bash Reference Manual: Brace Expansion">Brace Expansion</a>:</p>

<blockquote>Brace expansion is a mechanism by which arbitrary strings may be generated.</blockquote>

<p>A comma separated list between opening and closing braces is expanded by the shell including any preamble (in my case Maildir/) or postscript. Brace expansion can also generate ranges:</p>



<pre class="example"><code>$ echo {1..10}
1 2 3 4 5 6 7 8 9 10</code></pre>



<p>Cool, huh?</p>]]></content:encoded>
			<wfw:commentRss>http://mitchcontla.com/2007/06/27/bash-its-the-little-things/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
	</channel>
</rss>

