<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/atom10full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><feed xmlns="http://www.w3.org/2005/Atom" xmlns:openSearch="http://a9.com/-/spec/opensearch/1.1/" xmlns:blogger="http://schemas.google.com/blogger/2008" xmlns:georss="http://www.georss.org/georss" xmlns:gd="http://schemas.google.com/g/2005" xmlns:thr="http://purl.org/syndication/thread/1.0" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" gd:etag="W/&quot;CkEEQ3ozfCp7ImA9WhBQFEU.&quot;"><id>tag:blogger.com,1999:blog-7817780699562333449</id><updated>2013-03-16T18:36:42.484-06:00</updated><category term="lifehacks" /><category term="gtd" /><category term="cs61a" /><category term="media" /><category term="math" /><category term="java" /><category term="clojure" /><category term="books" /><category term="lists" /><category term="conference" /><category term="inspiration" /><category term="trends" /><category term="iphone" /><category term="lifedesign" /><category term="agile" /><category term="essentials" /><category term="languages" /><category term="objective C" /><category term="sicp" /><category term="windows" /><category term="Brian Harvey" /><category term="eclipse" /><category term="code" /><category term="gmail" /><category term="database" /><title>Mile High Code</title><subtitle type="html">Life with altitude.</subtitle><link rel="http://schemas.google.com/g/2005#feed" type="application/atom+xml" href="http://blog.milehighcode.com/feeds/posts/default" /><link rel="alternate" type="text/html" href="http://blog.milehighcode.com/" /><link rel="next" type="application/atom+xml" href="http://www.blogger.com/feeds/7817780699562333449/posts/default?start-index=26&amp;max-results=25&amp;redirect=false&amp;v=2" /><author><name>joshua@milehighcode.com</name><uri>http://www.blogger.com/profile/13708809858339902902</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><generator version="7.00" uri="http://www.blogger.com">Blogger</generator><openSearch:totalResults>33</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/atom+xml" href="http://feeds.feedburner.com/milehighcode/Fefh" /><feedburner:info uri="milehighcode/fefh" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><entry gd:etag="W/&quot;CEcDQHw-eSp7ImA9WhJVEU4.&quot;"><id>tag:blogger.com,1999:blog-7817780699562333449.post-1753369324299579978</id><published>2012-08-27T07:13:00.000-06:00</published><updated>2012-08-27T23:34:31.251-06:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2012-08-27T23:34:31.251-06:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="gmail" /><category scheme="http://www.blogger.com/atom/ns#" term="trends" /><category scheme="http://www.blogger.com/atom/ns#" term="lifehacks" /><category scheme="http://www.blogger.com/atom/ns#" term="gtd" /><title>From 60 to 0 with Gmail Shortcuts</title><content type="html">&lt;div class="tr_bq"&gt;
Welcome to Monday. This is what my inbox looked liked when I got in... the message list continues outside of the screen capture, but you get the idea:&lt;/div&gt;
&lt;br /&gt;
&lt;table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style="text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/-PGtKRcgYzsI/UDvunqdIqfI/AAAAAAAABBI/c_y1D80Fv5w/s1600/Inbox+-+joshua.ayson@gmail.com+-+Gmail+-+Google+Chrome_2012-08-27_10-56-27.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"&gt;&lt;img border="0" height="312" src="http://3.bp.blogspot.com/-PGtKRcgYzsI/UDvunqdIqfI/AAAAAAAABBI/c_y1D80Fv5w/s640/Inbox+-+joshua.ayson@gmail.com+-+Gmail+-+Google+Chrome_2012-08-27_10-56-27.png" width="640" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class="tr-caption" style="text-align: center;"&gt;Monday morning inbox of horrors.&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;br /&gt;
If you are like me and crave the fabled inbox zero, then seek no more -- I can help you reduce and keep your Gmail inbox at a manageable level or zero if you prefer. All you have to do is invest a little time reading this article and try a couple practice keyboard shortcut sessions. Once the shortcuts are second nature you will be able to reduce your inbox message conversations from 60 to 0 in a matter of minutes. This is where I got in 10 minutes time:&lt;br /&gt;
&lt;br /&gt;
&lt;table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style="text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/-DqkjnHlvci0/UDvvZgSbN6I/AAAAAAAABBQ/XCYLU4pA-QU/s1600/Inbox+-+joshua.ayson@gmail.com+-+Gmail+-+Google+Chrome_2012-08-27_15-57-33.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"&gt;&lt;img border="0" height="324" src="http://1.bp.blogspot.com/-DqkjnHlvci0/UDvvZgSbN6I/AAAAAAAABBQ/XCYLU4pA-QU/s640/Inbox+-+joshua.ayson@gmail.com+-+Gmail+-+Google+Chrome_2012-08-27_15-57-33.png" width="640" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class="tr-caption" style="text-align: center;"&gt;Ahh, bliss - a clean inbox.&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;br /&gt;
Before we start let's see why this strategy works:&lt;br /&gt;
&lt;br /&gt;
&lt;div style="text-align: center;"&gt;
&lt;span style="font-size: large;"&gt;&lt;b&gt;Keyboard shortcuts save time. Exponentially.&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-size: large;"&gt;&lt;b&gt;Trust me... R&lt;/b&gt;&lt;/span&gt;&lt;b style="font-size: x-large;"&gt;eally!&lt;/b&gt;&lt;/div&gt;
&lt;div style="text-align: left;"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style="text-align: left;"&gt;
Usually the pain about learning keyboard shortcuts is that there are too many to take in all at once. This article shows you the exact keyboard shortcuts you need to learn for to efficiently reduce messages in your inbox. (If you don't know why you might want to have fewer messages in your inbox read David Allen's &lt;a href="http://www.amazon.com/Getting-Things-Done-Stress-Free-Productivity/dp/0142000280" target="_blank"&gt;Getting Things Done&lt;/a&gt;&amp;nbsp;book for starters.)&lt;/div&gt;
&lt;div style="text-align: left;"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style="text-align: left;"&gt;
&lt;span style="font-size: x-large;"&gt;1.&lt;/span&gt; The first thing you'll want to setup is a Google Labs feature called &lt;b&gt;Auto-advance&lt;/b&gt;&amp;nbsp;found in your Gmail settings -&amp;gt; Labs.&amp;nbsp;&lt;/div&gt;
&lt;div style="text-align: left;"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style="text-align: left;"&gt;
&lt;i&gt;FYI: The image below shows the information relevant to this article in green, although I've also highlighted some areas in pink with settings/features I also find useful that happened to be in the same screenshot.&lt;/i&gt;&lt;/div&gt;
&lt;div style="text-align: left;"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;/div&gt;
&lt;table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style="text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/-Gb9XjpvClBg/UDvxghEP1RI/AAAAAAAABBg/rdroa9z74pw/s1600/Settings+-+joshua.ayson@gmail.com+-+Gmail+-+Google+Chrome_2012-08-27_10-57-56.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"&gt;&lt;img border="0" height="540" src="http://3.bp.blogspot.com/-Gb9XjpvClBg/UDvxghEP1RI/AAAAAAAABBg/rdroa9z74pw/s640/Settings+-+joshua.ayson@gmail.com+-+Gmail+-+Google+Chrome_2012-08-27_10-57-56.png" width="640" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class="tr-caption" style="text-align: center;"&gt;Auto-advance Labs Feature&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;div style="text-align: left;"&gt;
&lt;span style="font-size: x-large;"&gt;&lt;br /&gt;2.&lt;/span&gt; Next, configure turn on Gmail keyboard shortcuts and configure the Auto-advance feature you installed in step 1.&lt;/div&gt;
&lt;div style="text-align: left;"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style="text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/-BdCwuhWN53k/UDvyiFdMQnI/AAAAAAAABBo/0TyYAfxKqBc/s1600/Settings+-+joshua.ayson@gmail.com+-+Gmail+-+Google+Chrome_2012-08-27_10-57-21.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"&gt;&lt;img border="0" height="264" src="http://3.bp.blogspot.com/-BdCwuhWN53k/UDvyiFdMQnI/AAAAAAAABBo/0TyYAfxKqBc/s640/Settings+-+joshua.ayson@gmail.com+-+Gmail+-+Google+Chrome_2012-08-27_10-57-21.png" width="640" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class="tr-caption" style="text-align: center;"&gt;Add some bling to your Settings.&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;div style="text-align: left;"&gt;
&lt;span style="font-size: x-large;"&gt;&lt;br /&gt;3.&lt;/span&gt; Great now that your Gmail is setup, here are the keyboard shortcuts that you need for this task. Again focus on the green, which are relevant to this task, although I've also highlighted other frequently used shortcuts in pink. You might learn those once you are comfortable with the green commands.&lt;/div&gt;
&lt;table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style="text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/-F-wMS7kA4Dk/UDv1x5hhgoI/AAAAAAAABCI/vVGwNQhxlIA/s1600/Back+in+the+pH+swing+-+joshua.ayson@gmail.com+-+Gmail+-+Google+Chrome_2012-08-27_15-15-49.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"&gt;&lt;img border="0" height="568" src="http://1.bp.blogspot.com/-F-wMS7kA4Dk/UDv1x5hhgoI/AAAAAAAABCI/vVGwNQhxlIA/s640/Back+in+the+pH+swing+-+joshua.ayson@gmail.com+-+Gmail+-+Google+Chrome_2012-08-27_15-15-49.png" width="640" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class="tr-caption" style="text-align: center;"&gt;Gmail Keyboard Shortcuts Help Menu (press '?' to see this)&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;/div&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;/div&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;/div&gt;
Here's the list of the green items which are relevant for the clean-up task in text form along with a brief description of what each command does:&lt;br /&gt;
&lt;blockquote&gt;
&lt;span style="font-size: x-small;"&gt;&lt;b&gt;u&lt;span style="white-space: pre;"&gt;&amp;nbsp;-- &lt;/span&gt;Return to conversation list&lt;span style="white-space: pre;"&gt;&amp;nbsp;-- &lt;/span&gt;&lt;/b&gt;Refreshes your page and returns you to the inbox, or list of conversations.&lt;/span&gt;&lt;/blockquote&gt;
&lt;blockquote&gt;
&lt;span style="font-size: x-small;"&gt;&lt;b&gt;k&lt;span style="white-space: pre;"&gt;&amp;nbsp;-- &lt;/span&gt;Move to newer conversation&lt;/b&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;&lt;b&gt;  -- &lt;/b&gt;&lt;/span&gt;Opens or moves your cursor to a more recent conversation. You can hit &lt;enter&gt; to expand a conversation.&lt;/enter&gt;&lt;/span&gt;&lt;/blockquote&gt;
&lt;blockquote&gt;
&lt;span style="font-size: x-small;"&gt;&lt;b&gt;j&lt;span style="white-space: pre;"&gt;&amp;nbsp;-- &lt;/span&gt;Move to older conversation&lt;span style="white-space: pre;"&gt;&amp;nbsp;-- &lt;/span&gt;&lt;/b&gt;Opens or moves your cursor to the next oldest conversation. You can hit &lt;enter&gt; to expand a conversation.&lt;/enter&gt;&lt;/span&gt;&lt;/blockquote&gt;
&lt;blockquote&gt;
&lt;span style="font-size: x-small;"&gt;&lt;b&gt;o or &lt;/b&gt;&lt;enter&gt;&lt;b&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &amp;lt;Enter&amp;gt; -- &lt;/span&gt;Open&lt;span style="white-space: pre;"&gt;&amp;nbsp;-- &lt;/span&gt;&lt;/b&gt;&lt;/enter&gt;Opens your conversation. Also expands or collapses a message if you are in 'Conversation View.'&lt;/span&gt;&lt;/blockquote&gt;
&lt;blockquote&gt;
&lt;span style="font-size: x-small;"&gt;&lt;b&gt;p&lt;span style="white-space: pre;"&gt;&amp;nbsp;-- &lt;/span&gt;Previous message --&lt;span style="white-space: pre;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/b&gt;Moves your cursor to the previous message. You can hit &lt;enter&gt; to expand or collapse a message. (Only applicable in 'Conversation View.')&lt;/enter&gt;&lt;/span&gt;&lt;/blockquote&gt;
&lt;blockquote&gt;
&lt;span style="font-size: x-small;"&gt;&lt;b&gt;n -- Next message&lt;span style="white-space: pre;"&gt;&amp;nbsp;-- &lt;/span&gt;&lt;/b&gt;Moves your cursor to the next message. You can hit &lt;enter&gt; to expand or collapse a message. (Only applicable in 'Conversation View.')&lt;/enter&gt;&lt;/span&gt;&lt;/blockquote&gt;
&lt;blockquote&gt;
&lt;span style="font-size: x-small;"&gt;&lt;b&gt;v -- Move to --&amp;nbsp;&lt;/b&gt;Moves the conversation from the inbox to a different label, Spam or Trash.&lt;/span&gt;&lt;/blockquote&gt;
&lt;blockquote&gt;
&lt;span style="font-size: x-small;"&gt;&lt;b&gt;s&lt;span style="white-space: pre;"&gt;&amp;nbsp;-- &lt;/span&gt;Star a message or conversation&lt;span style="white-space: pre;"&gt;&amp;nbsp;-- &lt;/span&gt;&lt;/b&gt;Adds or removes a star to a message or conversation. Stars allow you to give a message or conversation a special status.&lt;/span&gt;&lt;/blockquote&gt;
&lt;blockquote&gt;
&lt;span style="font-size: x-small;"&gt;&lt;b&gt;# -- Delete&lt;span style="white-space: pre;"&gt;&amp;nbsp;-- &lt;/span&gt;&lt;/b&gt;Moves the conversation to Trash.&lt;/span&gt;&lt;/blockquote&gt;
&lt;blockquote&gt;
&lt;span style="font-size: x-small;"&gt;&lt;b&gt;r&lt;span style="white-space: pre;"&gt;&amp;nbsp;-- &lt;/span&gt;Reply&lt;span style="white-space: pre;"&gt;&amp;nbsp;-- &lt;/span&gt;&lt;/b&gt;Replies to the message sender. &lt;shift&gt; + r allows you to reply to a message in a new window. (Only applicable in 'Conversation View.')&lt;/shift&gt;&lt;/span&gt;&lt;/blockquote&gt;
&lt;blockquote&gt;
&lt;span style="font-size: x-small;"&gt;&lt;b&gt;a --&lt;span style="white-space: pre;"&gt;&amp;nbsp;&lt;/span&gt;Reply all &lt;span style="white-space: pre;"&gt;-- &lt;/span&gt;&lt;/b&gt;Replies to all message recipients. &lt;shift&gt; +a allows you to reply to all message recipients in a new window. (Only applicable in 'Conversation View.')&lt;/shift&gt;&lt;/span&gt;&lt;/blockquote&gt;
&lt;blockquote&gt;
&lt;span style="font-size: x-small;"&gt;&lt;b&gt;f -- forward&amp;nbsp;&lt;/b&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;&lt;b&gt;-- &lt;/b&gt;&lt;/span&gt;Forwards a message. &lt;shift&gt; + f allows you to forward a message in a new window. (Only applicable in 'Conversation View.')&lt;/shift&gt;&lt;/span&gt;&lt;/blockquote&gt;
&lt;blockquote&gt;
&lt;span style="font-size: x-small;"&gt;&lt;b&gt;Tab then &amp;lt;Enter&amp;gt;&lt;/b&gt; --&amp;nbsp;&lt;enter&gt;Send message&amp;nbsp;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;--&amp;nbsp;&lt;/span&gt;&lt;/enter&gt;&lt;/span&gt;&lt;span style="font-size: x-small;"&gt;&lt;i&gt;Combo key:&lt;/i&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="font-size: x-small;"&gt;After composing your message, use this combination to send it automatically.&lt;/span&gt;&lt;/blockquote&gt;
&lt;blockquote&gt;
&lt;span style="font-size: x-small;"&gt;&lt;b&gt;z &amp;nbsp; -- Undo --&amp;nbsp;&lt;/b&gt;Undoes your previous action, if possible (works for actions with an 'undo' link).&lt;/span&gt;&lt;/blockquote&gt;
&lt;enter&gt;&lt;enter&gt;&lt;enter&gt;&lt;enter&gt;&lt;enter&gt;&lt;shift&gt;&lt;shift&gt;&lt;shift&gt;&lt;tab&gt;&lt;enter&gt;Some of the shortcuts are intuitive and some will require getting used to. (The navigation key choices stem from Vi, so sysadmins rejoice!)&lt;br /&gt;
&lt;/enter&gt;&lt;/tab&gt;&lt;/shift&gt;&lt;/shift&gt;&lt;/shift&gt;&lt;/enter&gt;&lt;/enter&gt;&lt;/enter&gt;&lt;/enter&gt;&lt;/enter&gt;&lt;br /&gt;
&lt;enter&gt;&lt;enter&gt;&lt;enter&gt;&lt;enter&gt;&lt;enter&gt;&lt;shift&gt;&lt;shift&gt;&lt;shift&gt;&lt;tab&gt;&lt;enter&gt;&lt;br /&gt;&lt;/enter&gt;&lt;/tab&gt;&lt;/shift&gt;&lt;/shift&gt;&lt;/shift&gt;&lt;/enter&gt;&lt;/enter&gt;&lt;/enter&gt;&lt;/enter&gt;&lt;/enter&gt;
&lt;br /&gt;
&lt;div style="text-align: center;"&gt;
&lt;span style="font-size: large;"&gt;&lt;u&gt;The clean-up process&lt;/u&gt;&lt;/span&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;ol&gt;
&lt;li&gt;From inbox view, jump into a message using &amp;lt;Enter&amp;gt;.&amp;nbsp;&lt;/li&gt;
&lt;li&gt;Once on a message decide if I want to delete (#), move (v), reply/reply all/forward (r/a/f), or mark with a star (s - pushing repeatedly cycles through the star icons). &lt;br /&gt;&lt;br /&gt;&lt;b&gt;GTD TIP: &lt;/b&gt;If the item is actionable I may decide to forward to Evernote if it is&amp;nbsp;something I want to look at later, like an article, image or attachment&amp;nbsp;or to ToodleDo if the message is really a task that I need to get done. Repeat with me: My inbox is not my task list, my inbox is not my task list, my inbox is not my task list!!! &lt;br /&gt;&lt;br /&gt;To make it easy to do these forwards add your Evernote and ToodleDo email accounts to your Gmail contacts so they appear in the&lt;i&gt; To:&lt;/i&gt; pop-up when you need to send a message to a 3rd party service. Then use the tab+enter combo shortcut to send your message, &lt;i&gt;sans&lt;/i&gt; mouse.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://2.bp.blogspot.com/-JcEnPx7mUio/UDv5KrDAqDI/AAAAAAAABCc/rJJBT2yMapc/s1600/I+like+this+-+joshua.ayson@gmail.com+-+Gmail+-+Google+Chrome_2012-08-27_15-54-13.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em; text-align: center;"&gt;&lt;img border="0" height="144" src="http://2.bp.blogspot.com/-JcEnPx7mUio/UDv5KrDAqDI/AAAAAAAABCc/rJJBT2yMapc/s320/I+like+this+-+joshua.ayson@gmail.com+-+Gmail+-+Google+Chrome_2012-08-27_15-54-13.png" width="320" /&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Rinse and repeat.&lt;/li&gt;
&lt;/ol&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
You may have noticed the clean-up process only uses a subset of the keyboard shortcuts I highlighted in green as relevant to the task. This is because you really only need those other keys (&lt;b&gt;u&lt;/b&gt;,&amp;nbsp;&lt;b&gt;k&lt;/b&gt;,&amp;nbsp;&lt;b&gt;j&lt;/b&gt;,&amp;nbsp;&lt;b&gt;p&lt;/b&gt;,&amp;nbsp;&lt;b&gt;n&lt;/b&gt;&amp;nbsp;and&amp;nbsp;&lt;b&gt;z)&lt;/b&gt;&amp;nbsp;to navigate comfortably while you are cleaning house. These navigation keys are definitely worth learning right away and will liberate your mouse hand.&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
If you decide to try this out please leave a comment to let me know how it goes. The only thing I can say about learning this technique for myself is: &lt;b&gt;&lt;span style="font-size: large;"&gt;Why didn't I learn these shortcuts sooner!?&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;
&lt;img src="http://feeds.feedburner.com/~r/milehighcode/Fefh/~4/dhAeSjiN6_c" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://blog.milehighcode.com/feeds/1753369324299579978/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://blog.milehighcode.com/2012/08/from-60-to-0-with-gmail-shortcuts.html#comment-form" title="1 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/7817780699562333449/posts/default/1753369324299579978?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/7817780699562333449/posts/default/1753369324299579978?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/milehighcode/Fefh/~3/dhAeSjiN6_c/from-60-to-0-with-gmail-shortcuts.html" title="From 60 to 0 with Gmail Shortcuts" /><author><name>Joshua Ayson</name><uri>https://plus.google.com/102042414478549404260</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh4.googleusercontent.com/-PXgvIyzXdhw/AAAAAAAAAAI/AAAAAAAABY4/a3eROUodr-g/s512-c/photo.jpg" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://3.bp.blogspot.com/-PGtKRcgYzsI/UDvunqdIqfI/AAAAAAAABBI/c_y1D80Fv5w/s72-c/Inbox+-+joshua.ayson@gmail.com+-+Gmail+-+Google+Chrome_2012-08-27_10-56-27.png" height="72" width="72" /><thr:total>1</thr:total><feedburner:origLink>http://blog.milehighcode.com/2012/08/from-60-to-0-with-gmail-shortcuts.html</feedburner:origLink></entry><entry gd:etag="W/&quot;D0ICQXs_eip7ImA9WhJQFkU.&quot;"><id>tag:blogger.com,1999:blog-7817780699562333449.post-4400649632284809827</id><published>2012-07-30T06:37:00.000-06:00</published><updated>2012-07-30T15:59:20.542-06:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2012-07-30T15:59:20.542-06:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="lifedesign" /><category scheme="http://www.blogger.com/atom/ns#" term="inspiration" /><category scheme="http://www.blogger.com/atom/ns#" term="media" /><title>Work, Success and Happiness</title><content type="html">&lt;blockquote class="tr_bq"&gt;
&lt;b&gt;“Happiness is an attitude. We either make ourselves miserable, or happy and strong. The amount of work is the same.”&lt;/b&gt;&lt;/blockquote&gt;
&lt;blockquote class="tr_bq"&gt;
&lt;b&gt;&lt;span style="background-color: white; color: #222222; font-family: arial, sans-serif; font-size: x-small; line-height: 16px;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; ~Francesca Reigler&lt;/span&gt;&amp;nbsp;&lt;/b&gt;&lt;/blockquote&gt;
&lt;br /&gt;
To be happy at work it really helps to love what you do.&amp;nbsp;Unfortunately not all of us can say we love our work, but fear not! I've found some videos sure to increase motivation and interest in the work we do.&lt;br /&gt;
&lt;br /&gt;
In these 3 TED videos you will hopefully find a renewed interest in whatever work you do and be inspired to make the world a better place!&lt;br /&gt;
&lt;br /&gt;
&lt;b style="background-color: rgba(255, 255, 255, 0.917969); color: #1155cc; font-family: arial, sans-serif;"&gt;&lt;span style="background-color: rgba(255, 255, 255, 0.917969); color: #1155cc; font-family: arial, sans-serif; font-size: large;"&gt;&lt;a href="http://www.ted.com/talks/richard_st_john_s_8_secrets_of_success.html" style="background-color: rgba(255, 255, 255, 0.917969); color: #1155cc; font-family: arial, sans-serif;" target="_blank" title="Richard St. John's 8 secrets of success"&gt;Richard St. John's 8 secrets of success&lt;/a&gt;&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;
&lt;div style="text-align: center;"&gt;
&lt;object height="374" width="398"&gt;&lt;param name="movie" value="http://video.ted.com/assets/player/swf/EmbedPlayer.swf"&gt;&lt;/param&gt;
&lt;param name="allowFullScreen" value="true" /&gt;&lt;param name="allowScriptAccess" value="always"/&gt;&lt;param name="wmode" value="transparent"&gt;&lt;/param&gt;
&lt;param name="bgColor" value="#ffffff"&gt;&lt;/param&gt;
&lt;param name="flashvars" value="vu=http://video.ted.com/talk/stream/2005/Blank/RichardStJohn_2005-320k.mp4&amp;su=http://images.ted.com/images/ted/tedindex/embed-posters/RichardSt.John-2005.embed_thumbnail.jpg&amp;vw=384&amp;vh=288&amp;ap=0&amp;ti=70&amp;lang=en&amp;introDuration=15330&amp;adDuration=4000&amp;postAdDuration=830&amp;adKeys=talk=richard_st_john_s_8_secrets_of_success;year=2005;theme=not_business_as_usual;theme=presentation_innovation;theme=how_we_learn;event=TED2005;tag=business;tag=culture;tag=education;tag=entertainment;tag=happiness;tag=psychology;tag=short+talk;tag=work;&amp;preAdTag=tconf.ted/embed;tile=1;sz=512x288;" /&gt;&lt;embed src="http://video.ted.com/assets/player/swf/EmbedPlayer.swf" pluginspace="http://www.macromedia.com/go/getflashplayer" type="application/x-shockwave-flash" wmode="transparent" bgColor="#ffffff" width="398" height="374" allowFullScreen="true" allowScriptAccess="always" flashvars="vu=http://video.ted.com/talk/stream/2005/Blank/RichardStJohn_2005-320k.mp4&amp;su=http://images.ted.com/images/ted/tedindex/embed-posters/RichardSt.John-2005.embed_thumbnail.jpg&amp;vw=384&amp;vh=288&amp;ap=0&amp;ti=70&amp;lang=en&amp;introDuration=15330&amp;adDuration=4000&amp;postAdDuration=830&amp;adKeys=talk=richard_st_john_s_8_secrets_of_success;year=2005;theme=not_business_as_usual;theme=presentation_innovation;theme=how_we_learn;event=TED2005;tag=business;tag=culture;tag=education;tag=entertainment;tag=happiness;tag=psychology;tag=short+talk;tag=work;&amp;preAdTag=tconf.ted/embed;tile=1;sz=512x288;"&gt;&lt;/embed&gt;&lt;/object&gt;
&lt;/div&gt;
&lt;div style="text-align: center;"&gt;
&lt;table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style="text-align: center;"&gt;&lt;img border="0" height="240" src="http://1.bp.blogspot.com/-jBWckcU9gzw/Ty8M2Fb9SSI/AAAAAAAAAKQ/FsA8z8rYyfk/s320/Richard+St.+John's+8+secrets+of+success++Video+on+TED.com+-+Google+Chrome_2012-02-05_15-32-35.png" style="margin-left: auto; margin-right: auto;" width="320" /&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class="tr-caption" style="text-align: center;"&gt;&lt;div style="font-size: medium;"&gt;
&lt;a href="http://www.richardstjohn.com/" style="font-family: arial, sans-serif; font-size: 13px; text-align: right;"&gt;http://www.richardstjohn.com/&lt;/a&gt;&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;
&lt;h2 style="text-align: center;"&gt;
&lt;a href="http://www.ted.com/talks/shawn_achor_the_happy_secret_to_better_work.html" style="color: #1155cc; font-family: arial, sans-serif;" target="_blank" title="Shawn Achor: The happy secret to better work"&gt;&lt;span style="font-size: large;"&gt;Shawn Achor: The happy secret to better work&lt;/span&gt;&lt;/a&gt;&lt;object height="374" width="526"&gt;&lt;param name="movie" value="http://video.ted.com/assets/player/swf/EmbedPlayer.swf"&gt;&lt;/param&gt;
&lt;param name="allowFullScreen" value="true" /&gt;&lt;param name="allowScriptAccess" value="always"/&gt;&lt;param name="wmode" value="transparent"&gt;&lt;/param&gt;
&lt;param name="bgColor" value="#ffffff"&gt;&lt;/param&gt;
&lt;param name="flashvars" value="vu=http://video.ted.com/talk/stream/2011X/Blank/ShawnAchor_2011X-320k.mp4&amp;su=http://images.ted.com/images/ted/tedindex/embed-posters/ShawnAchor_2011X-embed.jpg&amp;vw=512&amp;vh=288&amp;ap=0&amp;ti=1344&amp;lang=en&amp;introDuration=15330&amp;adDuration=4000&amp;postAdDuration=830&amp;adKeys=talk=shawn_achor_the_happy_secret_to_better_work;year=2011;theme=what_makes_us_happy;theme=not_business_as_usual;event=TEDxBloomington;tag=business;tag=happiness;tag=psychology;tag=science;&amp;preAdTag=tconf.ted/embed;tile=1;sz=512x288;" /&gt;&lt;embed src="http://video.ted.com/assets/player/swf/EmbedPlayer.swf" pluginspace="http://www.macromedia.com/go/getflashplayer" type="application/x-shockwave-flash" wmode="transparent" bgColor="#ffffff" width="526" height="374" allowFullScreen="true" allowScriptAccess="always" flashvars="vu=http://video.ted.com/talk/stream/2011X/Blank/ShawnAchor_2011X-320k.mp4&amp;su=http://images.ted.com/images/ted/tedindex/embed-posters/ShawnAchor_2011X-embed.jpg&amp;vw=512&amp;vh=288&amp;ap=0&amp;ti=1344&amp;lang=en&amp;introDuration=15330&amp;adDuration=4000&amp;postAdDuration=830&amp;adKeys=talk=shawn_achor_the_happy_secret_to_better_work;year=2011;theme=what_makes_us_happy;theme=not_business_as_usual;event=TEDxBloomington;tag=business;tag=happiness;tag=psychology;tag=science;&amp;preAdTag=tconf.ted/embed;tile=1;sz=512x288;"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;/h2&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;div style="text-align: right;"&gt;
&lt;div style="text-align: center;"&gt;
&lt;a href="http://www.shawnachor.com/"&gt;http://www.shawnachor.com/&lt;/a&gt;&lt;/div&gt;
&lt;div style="text-align: left;"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;h4 style="background-color: rgba(255, 255, 255, 0.917969); color: #222222; font-family: arial, sans-serif; font-size: 13px;"&gt;
&lt;/h4&gt;
&lt;h4 style="background-color: rgba(255, 255, 255, 0.917969); color: #222222; font-family: arial, sans-serif; text-align: center;"&gt;
&lt;span style="color: #1155cc; font-size: large;"&gt;&lt;a href="http://www.ted.com/talks/matt_cutts_try_something_new_for_30_days.html" style="color: #1155cc;" target="_blank" title="Matt Cutts: Try something new for 30 days"&gt;Matt Cutts: Try something new for 30 days&lt;/a&gt;&lt;/span&gt;&lt;object height="374" width="526"&gt;&lt;param name="movie" value="http://video.ted.com/assets/player/swf/EmbedPlayer.swf"&gt;&lt;/param&gt;
&lt;param name="allowFullScreen" value="true" /&gt;&lt;param name="allowScriptAccess" value="always"/&gt;&lt;param name="wmode" value="transparent"&gt;&lt;/param&gt;
&lt;param name="bgColor" value="#ffffff"&gt;&lt;/param&gt;
&lt;param name="flashvars" value="vu=http://video.ted.com/talk/stream/2011U/Blank/MattCutts_2011U-320k.mp4&amp;su=http://images.ted.com/images/ted/tedindex/embed-posters/MattCutts-2011U.embed_thumbnail.jpg&amp;vw=512&amp;vh=288&amp;ap=0&amp;ti=1183&amp;lang=en&amp;introDuration=15330&amp;adDuration=4000&amp;postAdDuration=830&amp;adKeys=talk=matt_cutts_try_something_new_for_30_days;year=2011;theme=how_we_learn;event=TED2011;tag=culture;tag=success;&amp;preAdTag=tconf.ted/embed;tile=1;sz=512x288;" /&gt;&lt;embed src="http://video.ted.com/assets/player/swf/EmbedPlayer.swf" pluginspace="http://www.macromedia.com/go/getflashplayer" type="application/x-shockwave-flash" wmode="transparent" bgColor="#ffffff" width="526" height="374" allowFullScreen="true" allowScriptAccess="always" flashvars="vu=http://video.ted.com/talk/stream/2011U/Blank/MattCutts_2011U-320k.mp4&amp;su=http://images.ted.com/images/ted/tedindex/embed-posters/MattCutts-2011U.embed_thumbnail.jpg&amp;vw=512&amp;vh=288&amp;ap=0&amp;ti=1183&amp;lang=en&amp;introDuration=15330&amp;adDuration=4000&amp;postAdDuration=830&amp;adKeys=talk=matt_cutts_try_something_new_for_30_days;year=2011;theme=how_we_learn;event=TED2011;tag=culture;tag=success;&amp;preAdTag=tconf.ted/embed;tile=1;sz=512x288;"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;/h4&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/milehighcode/Fefh/~4/EX_L4nSqjZU" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://blog.milehighcode.com/feeds/4400649632284809827/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://blog.milehighcode.com/2012/07/work-success-and-happiness.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/7817780699562333449/posts/default/4400649632284809827?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/7817780699562333449/posts/default/4400649632284809827?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/milehighcode/Fefh/~3/EX_L4nSqjZU/work-success-and-happiness.html" title="Work, Success and Happiness" /><author><name>Joshua Ayson</name><uri>https://plus.google.com/102042414478549404260</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh4.googleusercontent.com/-PXgvIyzXdhw/AAAAAAAAAAI/AAAAAAAABY4/a3eROUodr-g/s512-c/photo.jpg" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://1.bp.blogspot.com/-jBWckcU9gzw/Ty8M2Fb9SSI/AAAAAAAAAKQ/FsA8z8rYyfk/s72-c/Richard+St.+John's+8+secrets+of+success++Video+on+TED.com+-+Google+Chrome_2012-02-05_15-32-35.png" height="72" width="72" /><thr:total>0</thr:total><feedburner:origLink>http://blog.milehighcode.com/2012/07/work-success-and-happiness.html</feedburner:origLink></entry><entry gd:etag="W/&quot;D0QASXk-cCp7ImA9WhJRFUs.&quot;"><id>tag:blogger.com,1999:blog-7817780699562333449.post-1667037006013476050</id><published>2012-07-17T06:40:00.000-06:00</published><updated>2012-07-17T16:49:08.758-06:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2012-07-17T16:49:08.758-06:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="essentials" /><category scheme="http://www.blogger.com/atom/ns#" term="windows" /><title>Shock The Taskbar, Shock The Taskbar</title><content type="html">&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;/div&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;/div&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;/div&gt;
&lt;div style="text-align: left;"&gt;
&lt;/div&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://4.bp.blogspot.com/-H1cs10PBWCQ/UAXr2bZi73I/AAAAAAAAAWU/kqFaxYhOqLo/s1600/Greenshot_2012-07-17_16-47-10.jpg" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="640" src="http://4.bp.blogspot.com/-H1cs10PBWCQ/UAXr2bZi73I/AAAAAAAAAWU/kqFaxYhOqLo/s640/Greenshot_2012-07-17_16-47-10.jpg" width="332" /&gt;&lt;/a&gt;&lt;/div&gt;
I really don't like it&lt;br /&gt;
Shockin' the Taskbah&lt;br /&gt;
Shock the Taskbah&lt;br /&gt;
&lt;span style="background-color: white;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style="background-color: white;"&gt;A few years back I caught a glimpse of a coworkers screen and noticed his Windows taskbar was in a funny location. I tried moving my own taskbar over to the side and immediately saw how much more useful the window titles were, now that I could partially see what they said. I generally keep my "sidebar" width around 3-4 mini icons.&lt;/span&gt;&lt;br /&gt;
&lt;span style="background-color: white;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style="background-color: white;"&gt;So what are you waiting for?!&lt;/span&gt;&lt;br /&gt;
&lt;span style="background-color: white;"&gt;&lt;span style="font-size: x-large;"&gt;Get vertical!&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;&lt;img src="http://feeds.feedburner.com/~r/milehighcode/Fefh/~4/F4fSCXbUkLw" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://blog.milehighcode.com/feeds/1667037006013476050/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://blog.milehighcode.com/2012/07/shock-taskbar-shock-taskbar.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/7817780699562333449/posts/default/1667037006013476050?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/7817780699562333449/posts/default/1667037006013476050?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/milehighcode/Fefh/~3/F4fSCXbUkLw/shock-taskbar-shock-taskbar.html" title="Shock The Taskbar, Shock The Taskbar" /><author><name>Joshua Ayson</name><uri>https://plus.google.com/102042414478549404260</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh4.googleusercontent.com/-PXgvIyzXdhw/AAAAAAAAAAI/AAAAAAAABY4/a3eROUodr-g/s512-c/photo.jpg" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://4.bp.blogspot.com/-H1cs10PBWCQ/UAXr2bZi73I/AAAAAAAAAWU/kqFaxYhOqLo/s72-c/Greenshot_2012-07-17_16-47-10.jpg" height="72" width="72" /><thr:total>0</thr:total><feedburner:origLink>http://blog.milehighcode.com/2012/07/shock-taskbar-shock-taskbar.html</feedburner:origLink></entry><entry gd:etag="W/&quot;AkcBQHc8eip7ImA9WhJRE0o.&quot;"><id>tag:blogger.com,1999:blog-7817780699562333449.post-8099916335493181309</id><published>2012-07-15T12:47:00.001-06:00</published><updated>2012-07-15T12:47:31.972-06:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2012-07-15T12:47:31.972-06:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="lifedesign" /><category scheme="http://www.blogger.com/atom/ns#" term="inspiration" /><title>Nature Inspires Creativity</title><content type="html">&lt;br /&gt;
&lt;table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="float: left; margin-right: 1em; text-align: left;"&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style="text-align: center;"&gt;&lt;img border="0" src="http://4.bp.blogspot.com/-htjquVP7bI4/UAL1M-3wrrI/AAAAAAAAATk/cn984du1Cnk/s320/IMG_1388.JPG" style="margin-left: auto; margin-right: auto;" /&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class="tr-caption" style="text-align: center;"&gt;Apricots and Avocado&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;div style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;span style="background-color: white;"&gt;Nature is inspiring and living simply doesn't mean you have to leave creativity at home! Unleashing the creative artist within is a wonderful way to create more balance throughout your life.&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="float: right; margin-left: 1em; text-align: right;"&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style="text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/-j6hYBu1J7Bo/UAL1OM_1oRI/AAAAAAAAAUU/iX7SMRvS5jk/s1600/IMG_1434.JPG" style="margin-left: auto; margin-right: auto;"&gt;&lt;img border="0" src="http://2.bp.blogspot.com/-j6hYBu1J7Bo/UAL1OM_1oRI/AAAAAAAAAUU/iX7SMRvS5jk/s320/IMG_1434.JPG" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class="tr-caption" style="text-align: center;"&gt;Laura's Nature Mosaic&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;span style="background-color: white;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style="background-color: white;"&gt;A nature mosaic can be made&amp;nbsp;practically&amp;nbsp;anywhere out of doors and from materials you find in your natural surroundings. To the right is &amp;nbsp;a mosaic with a giant redwood tree, some wispy green clouds and a sun in the background.&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="float: right; margin-left: 1em; text-align: right;"&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style="text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/-VNvc9uvRwIw/UAL1O5xTysI/AAAAAAAAAUs/4R6IUFwF6yA/s1600/IMG_1436.JPG" style="margin-left: auto; margin-right: auto;"&gt;&lt;img border="0" src="http://3.bp.blogspot.com/-VNvc9uvRwIw/UAL1O5xTysI/AAAAAAAAAUs/4R6IUFwF6yA/s320/IMG_1436.JPG" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class="tr-caption" style="text-align: center;"&gt;Joshua's Nature Mosaic&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;br /&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style="background-color: white;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style="background-color: white;"&gt;A framed nature mosaic with tall aquamarine trees, a log house with chimney smoke and a little garden.&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style="background-color: white;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style="background-color: white;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style="background-color: white;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style="background-color: white;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style="background-color: white;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style="background-color: white;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style="background-color: white;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style="background-color: white;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style="background-color: white;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style="background-color: white;"&gt;There was charcoal all over the forest we were visiting due to the &lt;/span&gt;&lt;a href="http://en.wikipedia.org/wiki/Hayman_Fire" target="_blank"&gt;2002 Colorado Hayman fire&lt;/a&gt;&lt;span style="background-color: white;"&gt;&amp;nbsp;and we left a few tags, in hidden places, to revisit in the future.&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style="text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/-X5XwlbC35jk/UAL1PSjyyeI/AAAAAAAAAVA/cvqf_gxNtDo/s1600/IMG_1444.JPG" style="margin-left: auto; margin-right: auto;"&gt;&lt;img border="0" src="http://4.bp.blogspot.com/-X5XwlbC35jk/UAL1PSjyyeI/AAAAAAAAAVA/cvqf_gxNtDo/s320/IMG_1444.JPG" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class="tr-caption" style="text-align: center;"&gt;Charcoal Tagging&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style="text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/-2lamfKo9LuM/UAL1PlKs0dI/AAAAAAAAAVQ/KJpapDm13cE/s1600/IMG_1445.JPG" style="margin-left: auto; margin-right: auto;"&gt;&lt;img border="0" src="http://3.bp.blogspot.com/-2lamfKo9LuM/UAL1PlKs0dI/AAAAAAAAAVQ/KJpapDm13cE/s320/IMG_1445.JPG" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class="tr-caption" style="text-align: center;"&gt;Mr. Smiley&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/milehighcode/Fefh/~4/66n7s3JFgfM" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://blog.milehighcode.com/feeds/8099916335493181309/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://blog.milehighcode.com/2012/07/nature-inspires-creativity.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/7817780699562333449/posts/default/8099916335493181309?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/7817780699562333449/posts/default/8099916335493181309?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/milehighcode/Fefh/~3/66n7s3JFgfM/nature-inspires-creativity.html" title="Nature Inspires Creativity" /><author><name>Joshua Ayson</name><uri>https://plus.google.com/102042414478549404260</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh4.googleusercontent.com/-PXgvIyzXdhw/AAAAAAAAAAI/AAAAAAAABY4/a3eROUodr-g/s512-c/photo.jpg" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://4.bp.blogspot.com/-htjquVP7bI4/UAL1M-3wrrI/AAAAAAAAATk/cn984du1Cnk/s72-c/IMG_1388.JPG" height="72" width="72" /><thr:total>0</thr:total><feedburner:origLink>http://blog.milehighcode.com/2012/07/nature-inspires-creativity.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CUYNSHY6fyp7ImA9WhJREEk.&quot;"><id>tag:blogger.com,1999:blog-7817780699562333449.post-562041751994869071</id><published>2012-07-11T06:10:00.000-06:00</published><updated>2012-07-11T15:46:39.817-06:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2012-07-11T15:46:39.817-06:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="essentials" /><category scheme="http://www.blogger.com/atom/ns#" term="windows" /><category scheme="http://www.blogger.com/atom/ns#" term="lifehacks" /><category scheme="http://www.blogger.com/atom/ns#" term="gtd" /><title>Greenshot For My Screenshot</title><content type="html">&lt;a href="http://getgreenshot.org/" style="background-color: white;" target="_blank"&gt;Greenshot&lt;/a&gt;&amp;nbsp;is a free screen capture tool and is a must have if you still use your print screen button &amp;lt;PrtScn&amp;gt; and paste images into Paint and MS Word.&lt;br /&gt;
&lt;br /&gt;
My favorite features in the Greenshot image editor include drawing shapes, obfuscating image areas, adding annotations and highlighting.&amp;nbsp;
&lt;br /&gt;
&lt;br /&gt;
&lt;table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style="text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/-J9X-fnXGarw/T_3y82SbSaI/AAAAAAAAATU/9rHJdb2-r3Q/s1600/annotating.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"&gt;&lt;img border="0" src="http://3.bp.blogspot.com/-J9X-fnXGarw/T_3y82SbSaI/AAAAAAAAATU/9rHJdb2-r3Q/s1600/annotating.jpg" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class="tr-caption" style="text-align: center;"&gt;Greenshot Editor Demo&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;span style="background-color: white;"&gt;
&lt;br /&gt;
After I take a Greenshot using the PrtScn button, I can directly paste this image into Gmail when I use Chrome. This combination is really efficient for saving words in an email by using an image.&lt;/span&gt;&lt;img src="http://feeds.feedburner.com/~r/milehighcode/Fefh/~4/MnJFeNWSDCo" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://blog.milehighcode.com/feeds/562041751994869071/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://blog.milehighcode.com/2012/07/greenshot-for-my-screenshot.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/7817780699562333449/posts/default/562041751994869071?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/7817780699562333449/posts/default/562041751994869071?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/milehighcode/Fefh/~3/MnJFeNWSDCo/greenshot-for-my-screenshot.html" title="Greenshot For My Screenshot" /><author><name>Joshua Ayson</name><uri>https://plus.google.com/102042414478549404260</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh4.googleusercontent.com/-PXgvIyzXdhw/AAAAAAAAAAI/AAAAAAAABY4/a3eROUodr-g/s512-c/photo.jpg" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://3.bp.blogspot.com/-J9X-fnXGarw/T_3y82SbSaI/AAAAAAAAATU/9rHJdb2-r3Q/s72-c/annotating.jpg" height="72" width="72" /><thr:total>0</thr:total><feedburner:origLink>http://blog.milehighcode.com/2012/07/greenshot-for-my-screenshot.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DE8GQHY4cSp7ImA9WhJSE08.&quot;"><id>tag:blogger.com,1999:blog-7817780699562333449.post-2298397024219224540</id><published>2012-07-03T07:43:00.000-06:00</published><updated>2012-07-03T08:47:01.839-06:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2012-07-03T08:47:01.839-06:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="lifehacks" /><category scheme="http://www.blogger.com/atom/ns#" term="gtd" /><title>Sort Your Way to a Trimmer Inbox in Outlook</title><content type="html">&lt;span style="background-color: white;"&gt;Oftentimes I have messages in my inbox with matching subjects. These are usually easy targets for mass deletion. As I'm looking at what to trash, most of the time when my messages are in groups I generally only care about the last message and members with attachments.&lt;/span&gt;&lt;br /&gt;
&lt;span style="background-color: white;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style="background-color: white;"&gt;First add the "conversations" field to the current view. To do so r&lt;/span&gt;&lt;span style="background-color: white;"&gt;ight-click on current view bar and "Customize":&lt;/span&gt;&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://4.bp.blogspot.com/-EteJ92JnzrQ/T_IZHLX85vI/AAAAAAAAATI/cpXdJPopsbU/s1600/Inbox+-+Microsoft+Outlook_2012-07-02_15-54-14.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://4.bp.blogspot.com/-EteJ92JnzrQ/T_IZHLX85vI/AAAAAAAAATI/cpXdJPopsbU/s1600/Inbox+-+Microsoft+Outlook_2012-07-02_15-54-14.png" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;
Add the "conversation" field to the view&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://4.bp.blogspot.com/-4fvqrxsRii4/T_IZDH3GVJI/AAAAAAAAATA/tY_YJ9WeLWU/s1600/Inbox+-+Microsoft+Outlook_2012-07-02_15-54-42.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="275" src="http://4.bp.blogspot.com/-4fvqrxsRii4/T_IZDH3GVJI/AAAAAAAAATA/tY_YJ9WeLWU/s400/Inbox+-+Microsoft+Outlook_2012-07-02_15-54-42.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;
Then do the following to get sorted:&lt;br /&gt;
&lt;ul&gt;
&lt;li&gt;&lt;span style="background-color: white;"&gt;click "Conversation" tab to sort and group based on subjects&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style="background-color: white;"&gt;hold down &amp;lt;Shift&amp;gt; key throughout the rest of this process&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style="background-color: white;"&gt;click "Received" tab to sort based on this additional vector&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style="background-color: white;"&gt;click "Received" tab again to reverse the date sort, so newest messages are on top&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;br /&gt;
&lt;table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style="text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/-yqWvaz4Y3mA/T_IYLW7XUOI/AAAAAAAAAS4/4VGtc22ey4U/s1600/Inbox+-+Microsoft+Outlook_2012-07-02_15-49-18.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"&gt;&lt;img border="0" height="356" src="http://3.bp.blogspot.com/-yqWvaz4Y3mA/T_IYLW7XUOI/AAAAAAAAAS4/4VGtc22ey4U/s640/Inbox+-+Microsoft+Outlook_2012-07-02_15-49-18.png" width="640" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class="tr-caption" style="text-align: center;"&gt;Outlook Inbox messages sorted by conversation, received&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;span style="background-color: white;"&gt;Hopefully this sort tip will get your Outlook Inbox closer to "zero" in short order!&lt;/span&gt;&lt;img src="http://feeds.feedburner.com/~r/milehighcode/Fefh/~4/FDWRQzg7_Ns" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://blog.milehighcode.com/feeds/2298397024219224540/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://blog.milehighcode.com/2012/07/sort-your-way-to-trimmer-inbox-in.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/7817780699562333449/posts/default/2298397024219224540?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/7817780699562333449/posts/default/2298397024219224540?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/milehighcode/Fefh/~3/FDWRQzg7_Ns/sort-your-way-to-trimmer-inbox-in.html" title="Sort Your Way to a Trimmer Inbox in Outlook" /><author><name>Joshua Ayson</name><uri>https://plus.google.com/102042414478549404260</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh4.googleusercontent.com/-PXgvIyzXdhw/AAAAAAAAAAI/AAAAAAAABY4/a3eROUodr-g/s512-c/photo.jpg" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://4.bp.blogspot.com/-EteJ92JnzrQ/T_IZHLX85vI/AAAAAAAAATI/cpXdJPopsbU/s72-c/Inbox+-+Microsoft+Outlook_2012-07-02_15-54-14.png" height="72" width="72" /><thr:total>0</thr:total><feedburner:origLink>http://blog.milehighcode.com/2012/07/sort-your-way-to-trimmer-inbox-in.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DEIBQH0-eCp7ImA9WhJSEkg.&quot;"><id>tag:blogger.com,1999:blog-7817780699562333449.post-7609865433391867094</id><published>2012-07-02T07:30:00.000-06:00</published><updated>2012-07-02T13:15:51.350-06:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2012-07-02T13:15:51.350-06:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="essentials" /><category scheme="http://www.blogger.com/atom/ns#" term="windows" /><category scheme="http://www.blogger.com/atom/ns#" term="lifehacks" /><title>Pimp My Explorer</title><content type="html">&lt;span style="background-color: white;"&gt;In my quest to find a better alternative to Windows Explorer I searched low and high for replacements. Midnight Commander running on Cygwin became my chosen setup, however there were always situations in which I found myself back in an Explorer window.&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
My solution was to find an add-on that made up for Explorer's deficiencies. Having tabs and a hotlist of folders to jump to were the main things I was looking for. &lt;a href="http://qttabbar.sourceforge.net/" target="_blank"&gt;QTTabBar &lt;/a&gt;does all this and lots more. Although it doesn't come with great documentation and is not very intuitive once you get used to this tool, you will not want to go back.&lt;br /&gt;
&lt;br /&gt;
After installation I encourage making the following customization to help get used to QTTabBar with only one Explorer window:&lt;br /&gt;
&lt;a href="http://4.bp.blogspot.com/-BnCUFjaZOF0/T_HxIaj3HmI/AAAAAAAAASs/8JlphRYSoVU/s1600/Computer_2012-07-02_10-28-50.png" imageanchor="1" style="background-color: white; clear: left; display: inline !important; margin-bottom: 1em; margin-right: 1em; text-align: center;"&gt;&lt;img border="0" height="530" src="http://4.bp.blogspot.com/-BnCUFjaZOF0/T_HxIaj3HmI/AAAAAAAAASs/8JlphRYSoVU/s640/Computer_2012-07-02_10-28-50.png" width="640" /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style="background-color: white;"&gt;Uncheck this box to open all external Explorer windows in a single QTTabBar instance:&lt;/span&gt;&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://1.bp.blogspot.com/-ThioDhK1tI0/T_HwiujVtVI/AAAAAAAAASY/EuLCtD1EcL4/s1600/CUsersjoshua_aysonAppDataRoamingMicrosoftWindowsStart+Menu_2012-07-02_10-45-24.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="400" src="http://1.bp.blogspot.com/-ThioDhK1tI0/T_HwiujVtVI/AAAAAAAAASY/EuLCtD1EcL4/s400/CUsersjoshua_aysonAppDataRoamingMicrosoftWindowsStart+Menu_2012-07-02_10-45-24.png" width="333" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;/div&gt;
&lt;br /&gt;
&lt;span style="background-color: white;"&gt;That's it. Like I said this add-on takes a little bit to get used to, but the rewards are there. For the more advanced, keyboard shortcuts are available.&lt;/span&gt;&lt;br /&gt;
&lt;span style="background-color: white;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style="background-color: white;"&gt;One last tip: To create a new group, simply right click on one of the open tabs and then select the "Create new Group..." option:&lt;/span&gt;&lt;br /&gt;
&lt;a href="http://3.bp.blogspot.com/-w_BNIZimkH8/T_HwsJuH6FI/AAAAAAAAASk/m37y742FBds/s1600/Cdev_2012-07-02_11-13-59.png" imageanchor="1" style="background-color: white; clear: left; display: inline !important; margin-bottom: 1em; margin-right: 1em; text-align: center;"&gt;&lt;img border="0" height="400" src="http://3.bp.blogspot.com/-w_BNIZimkH8/T_HwsJuH6FI/AAAAAAAAASk/m37y742FBds/s400/Cdev_2012-07-02_11-13-59.png" width="343" /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;&lt;img src="http://feeds.feedburner.com/~r/milehighcode/Fefh/~4/TzDpIKpGeDE" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://blog.milehighcode.com/feeds/7609865433391867094/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://blog.milehighcode.com/2012/07/pimp-my-explorer.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/7817780699562333449/posts/default/7609865433391867094?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/7817780699562333449/posts/default/7609865433391867094?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/milehighcode/Fefh/~3/TzDpIKpGeDE/pimp-my-explorer.html" title="Pimp My Explorer" /><author><name>Joshua Ayson</name><uri>https://plus.google.com/102042414478549404260</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh4.googleusercontent.com/-PXgvIyzXdhw/AAAAAAAAAAI/AAAAAAAABY4/a3eROUodr-g/s512-c/photo.jpg" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://4.bp.blogspot.com/-BnCUFjaZOF0/T_HxIaj3HmI/AAAAAAAAASs/8JlphRYSoVU/s72-c/Computer_2012-07-02_10-28-50.png" height="72" width="72" /><thr:total>0</thr:total><feedburner:origLink>http://blog.milehighcode.com/2012/07/pimp-my-explorer.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DUANRHw7fSp7ImA9WhVVFEk.&quot;"><id>tag:blogger.com,1999:blog-7817780699562333449.post-5776743577334294477</id><published>2012-05-07T21:29:00.001-06:00</published><updated>2012-05-07T21:29:55.205-06:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2012-05-07T21:29:55.205-06:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="inspiration" /><title>Thoughts on thoughts...</title><content type="html">&lt;blockquote&gt;
&lt;span class="bqq"&gt;“&lt;/span&gt;
&lt;span class="bqt"&gt;&lt;b&gt;It is more important to follow your beliefs than speak of them.&lt;/b&gt;&lt;/span&gt;
&lt;span class="bqq"&gt;”&lt;/span&gt;
&lt;/blockquote&gt;
&lt;br /&gt;&lt;img src="http://feeds.feedburner.com/~r/milehighcode/Fefh/~4/x_9YgtyXyEQ" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://blog.milehighcode.com/feeds/5776743577334294477/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://blog.milehighcode.com/2012/05/thoughts-on-thoughts.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/7817780699562333449/posts/default/5776743577334294477?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/7817780699562333449/posts/default/5776743577334294477?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/milehighcode/Fefh/~3/x_9YgtyXyEQ/thoughts-on-thoughts.html" title="Thoughts on thoughts..." /><author><name>Joshua Ayson</name><uri>https://plus.google.com/102042414478549404260</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh4.googleusercontent.com/-PXgvIyzXdhw/AAAAAAAAAAI/AAAAAAAABY4/a3eROUodr-g/s512-c/photo.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://blog.milehighcode.com/2012/05/thoughts-on-thoughts.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DkIMRXg_fSp7ImA9WhVWE08.&quot;"><id>tag:blogger.com,1999:blog-7817780699562333449.post-2765072051461067377</id><published>2012-04-24T21:29:00.004-06:00</published><updated>2012-04-24T21:29:44.645-06:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2012-04-24T21:29:44.645-06:00</app:edited><title>Refocusing Mile High Code: The Bigger Picture</title><content type="html">My blog writing recently came to a standstill. I finally figured out the cause and what I had to do to move on.&amp;nbsp;I was having trouble keeping up with my tech posts and trying to keep other non-techy ideas at bay. I really needed a change in focus.&lt;br /&gt;
&lt;br /&gt;
At first the idea for a tech blog was a great outlet for me, but it has gotten to feel like I'm boxing myself into a corner. What I really want is to spread my creative wings and write about many things in my life. Things that I feel make life really worth living.&lt;br /&gt;
&lt;br /&gt;
Whether its learning LISP (and why), modifying my diet and exercise, or trying out new life hacks the new "Mile High Code" will span a number of life's arenas and no longer remain confined to the realm of coding and nerdom.&lt;br /&gt;
&lt;br /&gt;
Mile High Code is about living. Living better.&lt;br /&gt;
&lt;br /&gt;
This is a start in a new, broader direction and will hopefully benefit those who peruse my posts as much as it will help me.&lt;img src="http://feeds.feedburner.com/~r/milehighcode/Fefh/~4/naRa3ZrOnTw" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://blog.milehighcode.com/feeds/2765072051461067377/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://blog.milehighcode.com/2012/04/refocusing-mile-high-code-bigger.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/7817780699562333449/posts/default/2765072051461067377?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/7817780699562333449/posts/default/2765072051461067377?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/milehighcode/Fefh/~3/naRa3ZrOnTw/refocusing-mile-high-code-bigger.html" title="Refocusing Mile High Code: The Bigger Picture" /><author><name>Joshua Ayson</name><uri>https://plus.google.com/102042414478549404260</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh4.googleusercontent.com/-PXgvIyzXdhw/AAAAAAAAAAI/AAAAAAAABY4/a3eROUodr-g/s512-c/photo.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://blog.milehighcode.com/2012/04/refocusing-mile-high-code-bigger.html</feedburner:origLink></entry><entry gd:etag="W/&quot;AkUCQXg4fSp7ImA9WhRaGEg.&quot;"><id>tag:blogger.com,1999:blog-7817780699562333449.post-3954162741167481877</id><published>2012-02-15T22:44:00.000-07:00</published><updated>2012-02-21T14:04:20.635-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2012-02-21T14:04:20.635-07:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="conference" /><category scheme="http://www.blogger.com/atom/ns#" term="database" /><title>RMOUG Training Days Conference - Day 2 &amp; 3</title><content type="html">After a full day of intensive talks, networking and blog promoting I'm zapped. I hand drew mind maps of all the presentations and will post them as soon as I'm able. In the near future I'll try creating these directly into digital form using iThoughts and a Bamboo stylus.&lt;br /&gt;
&lt;br /&gt;
Here is the first map on the fantastic keynote given by &lt;a href="http://carymillsap.blogspot.com/" target="_blank"&gt;Cary Milsap&lt;/a&gt;&amp;nbsp;from&amp;nbsp;Method R Corp on "Happiness and Learning". Delivered with the spirit of a TED talk it was a welcome way to start the conference and a great surprise as far as content goes!&lt;br /&gt;
&lt;div style="text-align: -webkit-auto;"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style="text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/-8blf-wPtlKE/T0LjmysTAzI/AAAAAAAAANU/8ebwc5aWZOw/s1600/RMOUG-LearningHappinessKeynote.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"&gt;&lt;img border="0" height="251" src="http://3.bp.blogspot.com/-8blf-wPtlKE/T0LjmysTAzI/AAAAAAAAANU/8ebwc5aWZOw/s640/RMOUG-LearningHappinessKeynote.png" width="640" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class="tr-caption" style="text-align: center;"&gt;Cary Milsap's Happiness &amp;amp; Learning Keynote
&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;div style="text-align: -webkit-auto;"&gt;
Cary gave a similar talk in the UK, which is available on YouTube: &lt;a href="http://www.youtube.com/watch?v=QMHfJ1Fl4kw&amp;amp;list=UUGo43TGHMsGpr-XvyHN8maw&amp;amp;index=5&amp;amp;feature=plcp" target="_blank"&gt;Part 1&lt;/a&gt;, &lt;a href="http://www.youtube.com/watch?v=HqgYmA46sgo&amp;amp;list=UUGo43TGHMsGpr-XvyHN8maw&amp;amp;index=4&amp;amp;feature=plcp" target="_blank"&gt;part 2&lt;/a&gt;, &lt;a href="http://www.youtube.com/watch?v=urpNTV84p6M&amp;amp;list=UUGo43TGHMsGpr-XvyHN8maw&amp;amp;index=3&amp;amp;feature=plcp" target="_blank"&gt;part 3&lt;/a&gt;, and&amp;nbsp;&lt;a href="http://www.youtube.com/watch?v=3eTTa1XJQFQ&amp;amp;list=UUGo43TGHMsGpr-XvyHN8maw&amp;amp;index=2&amp;amp;feature=plcp" target="_blank"&gt;part 4&lt;/a&gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://3.bp.blogspot.com/-s6dmzYkx2o0/T0LoM7RtVcI/AAAAAAAAANc/ug03rKIPAys/s1600/Richard+St.John+-+Google+Chrome_2012-02-20_17-36-29.png" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"&gt;&lt;img border="0" height="200" src="http://3.bp.blogspot.com/-s6dmzYkx2o0/T0LoM7RtVcI/AAAAAAAAANc/ug03rKIPAys/s200/Richard+St.John+-+Google+Chrome_2012-02-20_17-36-29.png" width="136" /&gt;&lt;/a&gt;&lt;/div&gt;
It reminded me a lot of a TED talk I recently saw by Richard St. John, author of the "8 To Be Great," book.&lt;br /&gt;
&lt;br /&gt;
&lt;object height="374" width="398"&gt;
&lt;param name="movie" value="http://video.ted.com/assets/player/swf/EmbedPlayer.swf"&gt;

&lt;/param&gt;
&lt;param name="allowFullScreen" value="true" /&gt;


&lt;param name="allowScriptAccess" value="always"/&gt;


&lt;param name="wmode" value="transparent"&gt;

&lt;/param&gt;
&lt;param name="bgColor" value="#ffffff"&gt;

&lt;/param&gt;
&lt;param name="flashvars" value="vu=http://video.ted.com/talk/stream/2005/Blank/RichardStJohn_2005-320k.mp4&amp;su=http://images.ted.com/images/ted/tedindex/embed-posters/RichardSt.John-2005.embed_thumbnail.jpg&amp;vw=384&amp;vh=288&amp;ap=0&amp;ti=70&amp;lang=&amp;introDuration=15330&amp;adDuration=4000&amp;postAdDuration=830&amp;adKeys=talk=richard_st_john_s_8_secrets_of_success;year=2005;theme=presentation_innovation;theme=how_we_learn;theme=not_business_as_usual;event=TED2005;tag=business;tag=culture;tag=education;tag=entertainment;tag=happiness;tag=psychology;tag=short+talk;tag=work;&amp;preAdTag=tconf.ted/embed;tile=1;sz=512x288;" /&gt;


&lt;embed src="http://video.ted.com/assets/player/swf/EmbedPlayer.swf" pluginspace="http://www.macromedia.com/go/getflashplayer" type="application/x-shockwave-flash" wmode="transparent" bgColor="#ffffff" width="398" height="374" allowFullScreen="true" allowScriptAccess="always" flashvars="vu=http://video.ted.com/talk/stream/2005/Blank/RichardStJohn_2005-320k.mp4&amp;su=http://images.ted.com/images/ted/tedindex/embed-posters/RichardSt.John-2005.embed_thumbnail.jpg&amp;vw=384&amp;vh=288&amp;ap=0&amp;ti=70&amp;lang=&amp;introDuration=15330&amp;adDuration=4000&amp;postAdDuration=830&amp;adKeys=talk=richard_st_john_s_8_secrets_of_success;year=2005;theme=presentation_innovation;theme=how_we_learn;theme=not_business_as_usual;event=TED2005;tag=business;tag=culture;tag=education;tag=entertainment;tag=happiness;tag=psychology;tag=short+talk;tag=work;&amp;preAdTag=tconf.ted/embed;tile=1;sz=512x288;"&gt;&lt;/embed&gt;
&lt;/object&gt;
&lt;br /&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style="text-align: -webkit-auto;"&gt;
&lt;br /&gt;
&lt;br /&gt;&lt;/div&gt;
Here a few mind maps I did at some of the talks:&lt;br /&gt;
&lt;br /&gt;
&lt;a href="http://www.teamycc.com/RMOUG_2012_Conference/Presentations.html#Law" target="_blank"&gt;Times Ten: High Performance In-Memory Database&lt;/a&gt;&lt;br /&gt;
Simon Law, Oracle&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://1.bp.blogspot.com/-8BJwuimqZTQ/T0QFfQf05FI/AAAAAAAAAN0/rhVyJrlD61E/s1600/law_simon.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="247" src="http://1.bp.blogspot.com/-8BJwuimqZTQ/T0QFfQf05FI/AAAAAAAAAN0/rhVyJrlD61E/s320/law_simon.jpg" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;a href="http://www.teamycc.com/RMOUG_2012_Conference/Presentations.html#Smith" target="_blank"&gt;SQL Developer Tips &amp;amp; Tricks&lt;/a&gt;&amp;nbsp;(download Jeff's updated&amp;nbsp;&lt;a href="http://dl.dropbox.com/u/9267089/SMITH_SQL%20Developer%20Tips%20and%20Tricks%20for%20Developers.ppt" target="_blank"&gt;PowerPoint slides&lt;/a&gt;)&lt;br /&gt;
Jeff Smith, Oracle
&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://3.bp.blogspot.com/-oOkrD8WmxNU/T0QFihY0reI/AAAAAAAAAOM/GWaj--7sxSo/s1600/smith_jeff.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="247" src="http://3.bp.blogspot.com/-oOkrD8WmxNU/T0QFihY0reI/AAAAAAAAAOM/GWaj--7sxSo/s320/smith_jeff.jpg" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;a href="http://www.teamycc.com/RMOUG_2012_Conference/Presentations.html#Mensah" target="_blank"&gt;End-to-end Java: Decide when to use Java within your DB and best practices&lt;/a&gt;&lt;br /&gt;
Kuassi Mensah, Oracle
&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://1.bp.blogspot.com/-AMvVmlwufiM/T0QFeepG7tI/AAAAAAAAANs/CAiYFYf3IF0/s1600/kuassi_mensah.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="247" src="http://1.bp.blogspot.com/-AMvVmlwufiM/T0QFeepG7tI/AAAAAAAAANs/CAiYFYf3IF0/s320/kuassi_mensah.jpg" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;a href="http://www.teamycc.com/RMOUG_2012_Conference/Presentations.html#Presser" target="_blank"&gt;Beyond SQL: No SQL and Not Only SQL movements&lt;/a&gt;&lt;br /&gt;
Marshall Presser, Greenplum / EMC
&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://1.bp.blogspot.com/-8qAHGF4A-l8/T0QFhWWYBnI/AAAAAAAAAOE/lb_bVAjqtEc/s1600/presser_marshall.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="247" src="http://1.bp.blogspot.com/-8qAHGF4A-l8/T0QFhWWYBnI/AAAAAAAAAOE/lb_bVAjqtEc/s320/presser_marshall.jpg" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://2.bp.blogspot.com/-cahgwjrD3Uc/T0QFgUC7XOI/AAAAAAAAAN8/SkMKLeI-sd4/s1600/presser_marshall-2.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="247" src="http://2.bp.blogspot.com/-cahgwjrD3Uc/T0QFgUC7XOI/AAAAAAAAAN8/SkMKLeI-sd4/s320/presser_marshall-2.jpg" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;a href="http://www.teamycc.com/RMOUG_2012_Conference/Presentations.html#Wille" target="_blank"&gt;Difficult Decisions&lt;/a&gt;&lt;br /&gt;
Steve Wille, Great-West Life and Annuity&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://1.bp.blogspot.com/-BpvFh1URBM4/T0QFjgae-ZI/AAAAAAAAAOU/1aTxvfnI2r4/s1600/steve_wille.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="247" src="http://1.bp.blogspot.com/-BpvFh1URBM4/T0QFjgae-ZI/AAAAAAAAAOU/1aTxvfnI2r4/s320/steve_wille.jpg" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;a href="http://www.teamycc.com/RMOUG_2012_Conference/Presentations.html#Helskyaho" target="_blank"&gt;Modern Database Design&lt;/a&gt;&lt;br /&gt;
Heli Helskyaho, Miracle Finland Oy&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://1.bp.blogspot.com/-uTbXsoHaHh0/T0QFbspPzrI/AAAAAAAAANk/Cx8hXfYnJ3A/s1600/heli.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="246" src="http://1.bp.blogspot.com/-uTbXsoHaHh0/T0QFbspPzrI/AAAAAAAAANk/Cx8hXfYnJ3A/s320/heli.jpg" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;
Denver is such a beautiful place and RMOUG is a great conference!&lt;br /&gt;
&lt;br /&gt;
&lt;center&gt;
&lt;table cellpadding="0" cellspacing="0" class="tr-caption-container" style="float: left; margin-right: 1em; text-align: center;"&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style="text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/-RxFTLfy86Ng/TzyZwJPqKJI/AAAAAAAAAMw/i4u4zkPl99E/s1600/rmougday2.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"&gt;&lt;img border="0" height="400" src="http://3.bp.blogspot.com/-RxFTLfy86Ng/TzyZwJPqKJI/AAAAAAAAAMw/i4u4zkPl99E/s400/rmougday2.jpg" width="266" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class="tr-caption" style="text-align: center;"&gt;Presentations &amp;amp; Vendors&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;table cellpadding="0" cellspacing="0" class="tr-caption-container" style="float: left; margin-right: 1em; text-align: center;"&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style="text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/-z3fphkGWV3Y/T0Lhn2zJynI/AAAAAAAAANM/cA50mOEHMY4/s1600/rmougday3.jpg" imageanchor="1" style="clear: right; display: inline !important; margin-bottom: 1em; margin-left: 1em; text-align: center;"&gt;&lt;img border="0" height="400" src="http://2.bp.blogspot.com/-z3fphkGWV3Y/T0Lhn2zJynI/AAAAAAAAANM/cA50mOEHMY4/s400/rmougday3.jpg" width="265" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class="tr-caption" style="text-align: center;"&gt;Denver Convention Center&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;/center&gt;&lt;img src="http://feeds.feedburner.com/~r/milehighcode/Fefh/~4/laTUxXOZMvg" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://blog.milehighcode.com/feeds/3954162741167481877/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://blog.milehighcode.com/2012/02/rmoug-training-days-conference-day-2.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/7817780699562333449/posts/default/3954162741167481877?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/7817780699562333449/posts/default/3954162741167481877?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/milehighcode/Fefh/~3/laTUxXOZMvg/rmoug-training-days-conference-day-2.html" title="RMOUG Training Days Conference - Day 2 &amp; 3" /><author><name>Joshua Ayson</name><uri>https://plus.google.com/102042414478549404260</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh4.googleusercontent.com/-PXgvIyzXdhw/AAAAAAAAAAI/AAAAAAAABY4/a3eROUodr-g/s512-c/photo.jpg" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://3.bp.blogspot.com/-8blf-wPtlKE/T0LjmysTAzI/AAAAAAAAANU/8ebwc5aWZOw/s72-c/RMOUG-LearningHappinessKeynote.png" height="72" width="72" /><thr:total>0</thr:total><feedburner:origLink>http://blog.milehighcode.com/2012/02/rmoug-training-days-conference-day-2.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DUAMRnk7fyp7ImA9WhRaEko.&quot;"><id>tag:blogger.com,1999:blog-7817780699562333449.post-4750772546918803938</id><published>2012-02-14T20:34:00.000-07:00</published><updated>2012-02-14T20:49:47.707-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2012-02-14T20:49:47.707-07:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="java" /><category scheme="http://www.blogger.com/atom/ns#" term="conference" /><category scheme="http://www.blogger.com/atom/ns#" term="database" /><title>RMOUG Training Days Conference - Day 1</title><content type="html">The Rocky Mountain Oracle User Group (RMOUG)&amp;nbsp;&lt;a href="http://www.rmoug.org/training.htm" target="_blank"&gt;Training Days Conference&lt;/a&gt;&amp;nbsp;launched this week. It is a three day conference hosted at the Denver Convention center, focused on Oracle products and technologies. There are four different tracks this year covering: Database Development, Java, .NET and Oracle Application Express.&lt;br /&gt;
&lt;br /&gt;
&lt;table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style="text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/-7MzCPAhksT8/TzsjZwIbNOI/AAAAAAAAAMY/tfBVz4JcDw0/s1600/photo+(1).JPG" imageanchor="1" style="margin-left: auto; margin-right: auto;"&gt;&lt;img border="0" height="400" src="http://3.bp.blogspot.com/-7MzCPAhksT8/TzsjZwIbNOI/AAAAAAAAAMY/tfBVz4JcDw0/s400/photo+(1).JPG" width="266" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class="tr-caption" style="text-align: center;"&gt;Traveling &amp;amp; Buffeting&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;br /&gt;
&lt;u&gt;RMOUG Keynote Overview&lt;/u&gt;&lt;br /&gt;
The morning began with a two hour keynote presentation, that was fairly well orchestrated. Highlights included new Oracle 11g features, Java interoperability, Oracle Enterprise Manager and open source language compatibility. During the presentation I drew this MindMap, which helped keep me engaged:&lt;br /&gt;
&lt;br /&gt;
&lt;table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style="text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/-8BOcuUqP4-k/TzrX1Abr5FI/AAAAAAAAAMQ/WG7uWQ6pLNI/s1600/Oracle+RMOUG+Keynote.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"&gt;&lt;img border="0" height="310" src="http://2.bp.blogspot.com/-8BOcuUqP4-k/TzrX1Abr5FI/AAAAAAAAAMQ/WG7uWQ6pLNI/s640/Oracle+RMOUG+Keynote.png" width="640" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class="tr-caption" style="text-align: center;"&gt;RMOUG 2012 Keynote MindMap&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;u&gt;&lt;br /&gt;&lt;/u&gt;&lt;br /&gt;
&lt;u&gt;Hands-On Labs&lt;/u&gt;&lt;br /&gt;
The first day of the training days focuses on hands-on labs. I chose to participate in the Java track. You can work through the Java lab exercises using a virtual machine (VM), which has the labs and software ready to go. You'll need to create a free Oracle account and then download&amp;nbsp;&lt;a href="http://www.oracle.com/technetwork/database/enterprise-edition/databaseappdev-vm-161299.html" target="_blank"&gt;Oracle VirtualBox and the pre-configured Oracle Linux VM&lt;/a&gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;table cellpadding="0" cellspacing="0" class="tr-caption-container" style="float: right; margin-left: 1em; text-align: right;"&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style="text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/-P2cdnXHhj7M/TzskFSc_bEI/AAAAAAAAAMg/6bBmxAma4Js/s1600/photo+(2).JPG" imageanchor="1" style="clear: right; margin-bottom: 1em; margin-left: auto; margin-right: auto;"&gt;&lt;img border="0" height="400" src="http://4.bp.blogspot.com/-P2cdnXHhj7M/TzskFSc_bEI/AAAAAAAAAMg/6bBmxAma4Js/s400/photo+(2).JPG" width="245" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class="tr-caption" style="text-align: center;"&gt;Oracle on the Brain&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
The VM includes&amp;nbsp;the following software:&lt;br /&gt;
&lt;ul&gt;
&lt;li&gt;Oracle Linux 5&lt;/li&gt;
&lt;li&gt;Oracle Database 11g Release 2 Enterprise Edition&lt;/li&gt;
&lt;li&gt;Oracle TimesTen In-Memory Database Cache&lt;/li&gt;
&lt;li&gt;Oracle XML DB&lt;/li&gt;
&lt;li&gt;Oracle SQL Developer&lt;/li&gt;
&lt;li&gt;Oracle SQL Developer Data Modeler&lt;/li&gt;
&lt;li&gt;Oracle Application Express&lt;/li&gt;
&lt;li&gt;Oracle JDeveloper&lt;/li&gt;
&lt;li&gt;Hands-On-Labs (accessed via the Toolbar Menu in Firefox)&lt;/li&gt;
&lt;/ul&gt;
&lt;br /&gt;
The following user/passwords are used in the VM environment:&lt;br /&gt;
&lt;ul&gt;
&lt;li&gt;Database: sys/oracle, system/oracle&lt;/li&gt;
&lt;li&gt;OS: oracle/oracle, root/oracle&lt;/li&gt;
&lt;li&gt;APEX: workspace: obe, username: obe, password: obe&lt;/li&gt;
&lt;/ul&gt;
&lt;div&gt;
&lt;br /&gt;
After a full day of hands-on labs you too can have Oracle on your brain! (Bag not included.)&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/milehighcode/Fefh/~4/t6_jPSzep0c" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://blog.milehighcode.com/feeds/4750772546918803938/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://blog.milehighcode.com/2012/02/rmoug-training-days-conference-day-1.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/7817780699562333449/posts/default/4750772546918803938?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/7817780699562333449/posts/default/4750772546918803938?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/milehighcode/Fefh/~3/t6_jPSzep0c/rmoug-training-days-conference-day-1.html" title="RMOUG Training Days Conference - Day 1" /><author><name>Joshua Ayson</name><uri>https://plus.google.com/102042414478549404260</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh4.googleusercontent.com/-PXgvIyzXdhw/AAAAAAAAAAI/AAAAAAAABY4/a3eROUodr-g/s512-c/photo.jpg" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://3.bp.blogspot.com/-7MzCPAhksT8/TzsjZwIbNOI/AAAAAAAAAMY/tfBVz4JcDw0/s72-c/photo+(1).JPG" height="72" width="72" /><thr:total>0</thr:total><feedburner:origLink>http://blog.milehighcode.com/2012/02/rmoug-training-days-conference-day-1.html</feedburner:origLink></entry><entry gd:etag="W/&quot;C0cARXs8cSp7ImA9WhRbGEg.&quot;"><id>tag:blogger.com,1999:blog-7817780699562333449.post-6748316312850223556</id><published>2012-02-09T20:20:00.000-07:00</published><updated>2012-02-09T22:17:24.579-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2012-02-09T22:17:24.579-07:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="sicp" /><category scheme="http://www.blogger.com/atom/ns#" term="inspiration" /><category scheme="http://www.blogger.com/atom/ns#" term="media" /><category scheme="http://www.blogger.com/atom/ns#" term="math" /><title>Really Getting Back to Basics</title><content type="html">&lt;table cellpadding="0" cellspacing="0" class="tr-caption-container" style="float: left; margin-right: 1em; text-align: left;"&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style="text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/-lI_EM1G1kRA/TzH6fDax0II/AAAAAAAAALo/Gf_qBodsdEY/s1600/wizard.jpg" imageanchor="1" style="clear: left; margin-bottom: 1em; margin-left: auto; margin-right: auto;"&gt;&lt;img border="0" height="155" src="http://3.bp.blogspot.com/-lI_EM1G1kRA/TzH6fDax0II/AAAAAAAAALo/Gf_qBodsdEY/s200/wizard.jpg" width="200" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class="tr-caption" style="text-align: center;"&gt;The SICP Wizard&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
With my interest in &lt;a href="http://groups.csail.mit.edu/mac/classes/6.001/abelson-sussman-lectures/" target="_blank"&gt;SICP &lt;/a&gt;and programming I've decided to &lt;i&gt;really &lt;/i&gt;get back to the basics. Mathematics!&lt;br /&gt;
&lt;br /&gt;
My lack of critical math skills intertwines why it has taken so long to get into programming professionally and why this endeavor remains such a challenge. I dabbled with BASIC when I was 12, had a fleeting interest in Assembly, checked out Pascal, yet to my dismay the youthful curiosity I exhibited became an itch, which would fester and burn into my soul throughout my early adult life. My programming pipe dream turned a reality when the opportunity of a lifetime presented itself for me to pursue this passion and learn on the job. Released from the rut I had worn with time spent in systems administration, I was free to fly to creative heights not yet envisioned.&lt;br /&gt;
&lt;br /&gt;
Programming was not something I studied much in school. I did take a semester of C, twice in fact due to low grades, but it was my failure to attain above a high enough average in my college pre-calculus class, which barred me from getting into the computer science program. This is the story I would tell people why I had become derailed from programming professionally for so many years when I had such early potential. Time for me to stop spinning this deterministic tale and choose a new reality!&lt;br /&gt;
&lt;br /&gt;
I'm not slow to learn, but math and programming knowledge don't come easy. I've wondered about this and am have come to the conclusion that I'm missing some key stones in my foundation. There is a reason that universities have mathematics prerequisite for computer science student. While an argument can be made that you don't need to know much math to program, it really does help, particularly if you there are intuitive blocks in understanding or you try to tackle something like SICP. I believe to have found the key to my trouble, why programming has been such a tough journey aside from the fact that I'm passionate about it. This time around I've also got a few tricks up my sleeve, which will add momentum and keep things lively.&lt;br /&gt;
&lt;br /&gt;
&lt;table cellpadding="0" cellspacing="0" class="tr-caption-container" style="float: right; margin-left: 1em; text-align: right;"&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style="text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/-Q9bOTkOnF6o/TzH9nPkBdSI/AAAAAAAAALw/OQJJq_kq8bA/s1600/Khan+Academy+-+Google+Chrome_2012-02-07_21-40-34.png" imageanchor="1" style="clear: right; margin-bottom: 1em; margin-left: auto; margin-right: auto;"&gt;&lt;img border="0" height="400" src="http://2.bp.blogspot.com/-Q9bOTkOnF6o/TzH9nPkBdSI/AAAAAAAAALw/OQJJq_kq8bA/s400/Khan+Academy+-+Google+Chrome_2012-02-07_21-40-34.png" width="103" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class="tr-caption" style="text-align: center;"&gt;Khan Academy's Math Topics&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
A thirst yearns in my belly to learn about calculus and linear algebra, to go beyond what I had the chance to study in school. I plan to spend 3 months watching&amp;nbsp;&lt;a href="http://www.khanacademy.org/" target="_blank"&gt;Khan Academy's videos&lt;/a&gt;&amp;nbsp;on their multitude of arithmetic topics. I'm thinking of the whole endeavor as a big time-box! I seek an intuitive, pragmatic and deep understanding to unlock the mysteries of computing.&lt;br /&gt;
&lt;br /&gt;
Relearning math is a wonderful gift I'm giving myself. Conviction fills me with assurance this gift will keep on giving. Conquering mathematics will &amp;nbsp;provide me with immeasurable practical benefit and psychological confidence. My excitement is not mere hyperbole. I don't just plan on reading and watching lectures, I plan on working many maths and sharing the journey with my readers!&lt;br /&gt;
&lt;br /&gt;
I intend to&amp;nbsp;&lt;a href="http://www.xmind.net/" target="_blank"&gt;MindMap&lt;/a&gt;&amp;nbsp;as I cover topics to help retain what I'm learning. I plan to use &lt;a href="http://blog.milehighcode.com/2012/01/use-you-spaced-repetition-system-for.html" target="_blank"&gt;Anki&lt;/a&gt;, a spaced repetition flashcard system, to help commit formulas and theorems to permanent memory. I will &lt;a href="http://blog.milehighcode.com/2012/01/enhancing-focus-with-pomodoro.html" target="_blank"&gt;time-box&lt;/a&gt; to ensure I spend time on this endeavor.&amp;nbsp;Learning need not create pain, it should invoke pleasure, induce passion and spur motivation. A supportive system tailored to your specific brain type can only help in this quest. Learning is hardwired into human nature. So why would so academic and professional workplaces alike &amp;nbsp;rob and unwittingly&amp;nbsp;&lt;a href="http://www.ted.com/talks/ken_robinson_says_schools_kill_creativity.html" target="_blank"&gt;undermine our ability to indulge our minds in creative growth&lt;/a&gt;?&amp;nbsp;As guardians of our minds we must grab hold the reins and till our mental soil, keeping the synapses fertile for growth!&lt;br /&gt;
&lt;br /&gt;
Few adults regard learning as an enjoyable past time, however, children instinctively know how to &lt;b&gt;learn&lt;/b&gt; &lt;b&gt;with fun&lt;/b&gt;.&amp;nbsp;Fun things are easy.&amp;nbsp;Learning produces a&amp;nbsp;&lt;i&gt;joie de vivre&lt;/i&gt;,&lt;i&gt;&amp;nbsp;&lt;/i&gt;stirring passion and igniting creativity from a intimately human place deep within each of us. When you indulge in your passions success becomes a snowball, building to an avalanche. Utilize tools which work leverage how you think. Continually search for new ways to keep learning fun. Start today and it will never be too late.&lt;br /&gt;
&lt;br /&gt;
&lt;table cellpadding="0" cellspacing="0" class="tr-caption-container" style="float: left; margin-right: 1em; text-align: left;"&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style="text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/-sTgiBRfmNQs/TzIDzSM--rI/AAAAAAAAAL4/Qz-JA1rBHqw/s1600/crazysnowshoer-1.jpg" imageanchor="1" style="clear: left; margin-bottom: 1em; margin-left: auto; margin-right: auto;"&gt;&lt;img border="0" height="320" src="http://4.bp.blogspot.com/-sTgiBRfmNQs/TzIDzSM--rI/AAAAAAAAAL4/Qz-JA1rBHqw/s320/crazysnowshoer-1.jpg" width="313" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class="tr-caption" style="text-align: center;"&gt;I'z gonna eat maths for breakfast!&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
The&amp;nbsp;&lt;a href="http://betterexplained.com/philosophy/" target="_blank"&gt;BetterExplained&lt;/a&gt;&amp;nbsp;blog writes an intriguing series of articles with a philosophical bent on "intuitive teaching".&amp;nbsp;Human intuition contains immense raw power. Think about the great brains before us, who walked those first steps onto a moonscape of problems and brought light to bear where there was none. Their&amp;nbsp;experiential&amp;nbsp;forays into uncharted territories are rich for our emulation and study.&amp;nbsp;Let us drink from the cup of intuition, the shared consciousness from which the giants of our collective pasts tapped.&lt;br /&gt;
&lt;br /&gt;
With a strong footing in mathematics rising on my horizon, I humble the thought that I might dip into the wizards goblet of wisdom and help others pursue their dreams banishing frustration and building fun!&lt;br /&gt;
&lt;br /&gt;&lt;img src="http://feeds.feedburner.com/~r/milehighcode/Fefh/~4/J6n0NaIEsyU" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://blog.milehighcode.com/feeds/6748316312850223556/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://blog.milehighcode.com/2012/02/really-getting-back-to-basics.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/7817780699562333449/posts/default/6748316312850223556?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/7817780699562333449/posts/default/6748316312850223556?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/milehighcode/Fefh/~3/J6n0NaIEsyU/really-getting-back-to-basics.html" title="Really Getting Back to Basics" /><author><name>Joshua Ayson</name><uri>https://plus.google.com/102042414478549404260</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh4.googleusercontent.com/-PXgvIyzXdhw/AAAAAAAAAAI/AAAAAAAABY4/a3eROUodr-g/s512-c/photo.jpg" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://3.bp.blogspot.com/-lI_EM1G1kRA/TzH6fDax0II/AAAAAAAAALo/Gf_qBodsdEY/s72-c/wizard.jpg" height="72" width="72" /><thr:total>0</thr:total><feedburner:origLink>http://blog.milehighcode.com/2012/02/really-getting-back-to-basics.html</feedburner:origLink></entry><entry gd:etag="W/&quot;AkIHQX0zcSp7ImA9WhRaFUw.&quot;"><id>tag:blogger.com,1999:blog-7817780699562333449.post-6957112281073661222</id><published>2012-02-05T22:48:00.002-07:00</published><updated>2012-02-17T15:42:10.389-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2012-02-17T15:42:10.389-07:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="agile" /><category scheme="http://www.blogger.com/atom/ns#" term="lifehacks" /><title>Two Weeks of Time-Boxing</title><content type="html">A few weeks ago I came across the&amp;nbsp;&lt;a href="http://blog.milehighcode.com/2012/01/enhancing-focus-with-pomodoro.html" target="_blank"&gt;Pomodoro technique&lt;/a&gt;, a detailed system for using time-boxing as a time management strategy for becoming more productive and liberating oneself from procrastination. My initial reflections on using the Pomodoro technique have been positive and I plan on continuing to work with the techniques outlined in the book.&lt;br /&gt;
&lt;br /&gt;
&lt;table cellpadding="0" cellspacing="0" class="tr-caption-container" style="float: left; margin-right: 1em; text-align: left;"&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style="text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/-K0N3yvAhCBY/TzHP7VGhoXI/AAAAAAAAAKg/pPgIh0UEnV8/s1600/time-box2.JPG" imageanchor="1" style="clear: left; margin-bottom: 1em; margin-left: auto; margin-right: auto;"&gt;&lt;img border="0" height="200" src="http://4.bp.blogspot.com/-K0N3yvAhCBY/TzHP7VGhoXI/AAAAAAAAAKg/pPgIh0UEnV8/s200/time-box2.JPG" width="138" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class="tr-caption" style="text-align: center;"&gt;Undisciplined Mind&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
Why do I have trouble managing my time and why would I need a system to help me with this?&amp;nbsp;My biggest problem: Self-discipline.&amp;nbsp;I let my passions sway my interest.&amp;nbsp;When it comes to buckling down and working on something I'm not emotionally invested in, I've found the technique of time-boxing to have great value. It is odd to get over the feeling of having to put yourself on a timer in order to be productive, but there really are immediate benefits by applying this technique.&lt;br /&gt;
&lt;br /&gt;
The first time I ran a timer and decided to focus on a single task I realized how strong my mind pulled in many directions. I'm not a fan of multitasking, so it was a great surprise to me how hard it was to have extreme, singular focus on a single task for a set period of time.&lt;br /&gt;
&lt;br /&gt;
Even though I only fit in a single time-box the first day, the sweet taste of supreme focus was a breath of fresh air from my chaotic attention span.&amp;nbsp;The biggest problem I had with my initial time-boxing was dedicating the time I needed to a time-box without getting distracted. If I became distracted and left my task for more than making note of the side thought, then I wouldn't count the time as was suggested in the Pomodoro book.&lt;br /&gt;
&lt;br /&gt;
Once I missed a time-box I was reluctant to start time-boxing again, as I didn't feel I could commit to a full 25 minutes of work since my mind was going in many directions for the moment. I know it sounds uncontrolled, but perhaps if you give it a try, you might have a similar time with it. In the first week it was difficult to get more than one to two time-boxes completed in a day, although I didn't set any goals, I was just playing with the experience of working within a 25 minute time-box.&lt;br /&gt;
&lt;br /&gt;
What I began to notice by the second week was that the technique got me going on unsavory tasks, which were primed for procrastination. Whether I had low interest in a task, perhaps the effort loomed to large, or the work felt too mundane for my mood, giving myself a time-box, which contained the effort to a closed amount of time was something I could commit myself to. As I continued to practice the technique I found myself chipping away at tasks, that otherwise would have been sidelined until the built up pressure from procrastination became so great, that I would need to work through the night or on the weekend in order to catch up.&lt;br /&gt;
&lt;br /&gt;
&lt;table cellpadding="0" cellspacing="0" class="tr-caption-container" style="float: right; margin-left: 1em; text-align: right;"&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style="text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/-oy48VgPg5s8/TzHP3lIc9EI/AAAAAAAAAKY/I9Dr9Ggi9uw/s1600/time-box1.JPG" imageanchor="1" style="clear: right; margin-bottom: 1em; margin-left: auto; margin-right: auto;"&gt;&lt;img border="0" height="320" src="http://2.bp.blogspot.com/-oy48VgPg5s8/TzHP3lIc9EI/AAAAAAAAAKY/I9Dr9Ggi9uw/s320/time-box1.JPG" width="183" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class="tr-caption" style="text-align: center;"&gt;Time-box to the rescue!&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
There is a lot to be said for the feeling of being on top of your tasks and in control of time. It is a liberation to be ahead of time. That is the payoff for planning and action. Dare I say freedom? Whenever I find myself behind on tasks, my emotions sink, motivation wanes. The time-box is a buoy of productivity, pulling my energy back up from the depths and getting me back on track, albeit in small manageable increments.&lt;br /&gt;
&lt;br /&gt;
Time-boxes have also helped limit time spent on things that I feel take away my balance. They might be things I enjoy, or are not important for the "bottom line", but they are necessary for my good functioning. Things like reading, re-editing blog posts, studying flashcards, practicing the craft of programming, journaling, drawing, woodworking, the list goes on! These are all important to me, but there are just too many things I want to do. If I spread myself so thin, that I'm able to delve into all these areas, my chances for mastery in any one area are slim. Problem is I don't know how to properly balance my time spent on all these interests. The Pomodoro book states that one should not time-box pleasurable activities, but I've found a time-box has the potential to possibly be a useful method for incorporating more balance into my life. Right now it is food for thought in this arena.&lt;br /&gt;
&lt;br /&gt;
I still have issues accomplishing more than a handful of time-boxes in a given day and for now the time-box has been more useful as a task starter than a project finisher. Notwithstanding this is an interesting start and the next phase is to begin working towards concrete goals for how many time-boxes I wish to accomplish and tracking my progress in a useful manner.&lt;br /&gt;
&lt;br /&gt;
Throughout this experience I've begun to think more about how I spend my time and where my energy goes. I want to make sure that I am truly living life, that is with passion, purpose and zest - not the soap. I'll discuss this more in a later post where I begin to think about the concept of "life design" and how to find a symbiosis between productivity enhancing life hacks and meaningful purpose. For now I wish you happy time-boxing and luck with getting all of your tasks started... and finished!&lt;img src="http://feeds.feedburner.com/~r/milehighcode/Fefh/~4/Nr5pvNYqnAQ" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://blog.milehighcode.com/feeds/6957112281073661222/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://blog.milehighcode.com/2012/02/two-weeks-of-time-boxing.html#comment-form" title="1 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/7817780699562333449/posts/default/6957112281073661222?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/7817780699562333449/posts/default/6957112281073661222?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/milehighcode/Fefh/~3/Nr5pvNYqnAQ/two-weeks-of-time-boxing.html" title="Two Weeks of Time-Boxing" /><author><name>Joshua Ayson</name><uri>https://plus.google.com/102042414478549404260</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh4.googleusercontent.com/-PXgvIyzXdhw/AAAAAAAAAAI/AAAAAAAABY4/a3eROUodr-g/s512-c/photo.jpg" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://4.bp.blogspot.com/-K0N3yvAhCBY/TzHP7VGhoXI/AAAAAAAAAKg/pPgIh0UEnV8/s72-c/time-box2.JPG" height="72" width="72" /><thr:total>1</thr:total><feedburner:origLink>http://blog.milehighcode.com/2012/02/two-weeks-of-time-boxing.html</feedburner:origLink></entry><entry gd:etag="W/&quot;Ak8ASHwyeSp7ImA9WhRaFUw.&quot;"><id>tag:blogger.com,1999:blog-7817780699562333449.post-8388647469174355802</id><published>2012-01-20T07:45:00.000-07:00</published><updated>2012-02-17T15:47:29.291-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2012-02-17T15:47:29.291-07:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="agile" /><category scheme="http://www.blogger.com/atom/ns#" term="lifehacks" /><title>Enhancing Focus with Pomodoro</title><content type="html">In my quest for increased productivity and focus I came across a time-boxing technique called&amp;nbsp;
Pomodoro. A short free book describing the application of the practice in detail can be found on the&amp;nbsp;&lt;a href="http://www.pomodorotechnique.com/book.html" target="_blank"&gt;Pomodoro web site&lt;/a&gt;, but for now I'm employing a simplified version to see what time-boxing feels like and how it affects my general productivity and focus. Perhaps I will return to the book and the system to begin applying more of the described methodology for managing time once I see how my initials trials with time-boxing go. The idea of time-boxing while I'm working on things within my sprint, seems like a good pairing and smells of agile spirit.&lt;br /&gt;
&lt;br /&gt;
&lt;table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style="text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/--wraC6Y_Pd8/TxmuH_TFp0I/AAAAAAAAAKA/ZjIUzHEnnyo/s1600/The+Pomodoro+Technique%25C2%25AE+-+Google+Chrome_2012-01-20_11-09-52.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"&gt;&lt;img border="0" height="200" src="http://4.bp.blogspot.com/--wraC6Y_Pd8/TxmuH_TFp0I/AAAAAAAAAKA/ZjIUzHEnnyo/s200/The+Pomodoro+Technique%25C2%25AE+-+Google+Chrome_2012-01-20_11-09-52.png" width="149" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class="tr-caption" style="text-align: center;"&gt;The Pomodoro Book&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;br /&gt;
From the&amp;nbsp;Pomodoro book, page 3, there are two interrelated aspects that seem to coexist with the reference to time:&lt;br /&gt;
&lt;ul&gt;
&lt;li&gt;&lt;b&gt;Becoming&lt;/b&gt;. An abstract, dimensional aspect of time, which gives rise to the habit of&amp;nbsp;measuring time (seconds, minutes, hours); the idea of representing time on an axis, as we&amp;nbsp;would spatial dimensions; the concept of the duration of an event (the distance between two&amp;nbsp;points on the temporal axis); the idea of being late (once again the distance between two&amp;nbsp;points on the temporal axis).&lt;/li&gt;
&lt;li&gt;The &lt;b&gt;succession of events&lt;/b&gt;. A concrete aspect of temporal order: we wake up, we take a&amp;nbsp;shower, we have breakfast, we study, we have lunch, we have a nap, we play, we eat, and&amp;nbsp;we go to bed. Children come to have this notion of time before they develop the idea of&amp;nbsp;abstract time which passes regardless of the events that take place (16).&lt;/li&gt;
&lt;/ul&gt;
&lt;br /&gt;
Of these two aspects, it is becoming that generates anxiety – it is, by nature, elusive,&amp;nbsp;indefinite, infinite: time passes, slips away, moves toward the future. If we try to measure&amp;nbsp;ourselves against the passage of time, we feel inadequate, oppressed, enslaved, defeated, more&amp;nbsp;and more with every second that goes by.&lt;br /&gt;
...&lt;br /&gt;
The succession of events, instead, seems to be the less&amp;nbsp;anxiety-ridden aspect of time. At times it may even represent the regular succession of activity,&amp;nbsp;a calm-inducing rhythm.&lt;br /&gt;
&lt;br /&gt;
Here are the goals of the&amp;nbsp;Pomodoro&amp;nbsp;technique outlined in the book:&lt;br /&gt;
&lt;ul&gt;
&lt;li&gt;Alleviate anxiety linked to becoming&lt;/li&gt;
&lt;li&gt;Enhance focus and concentration by cutting down on interruptions&amp;nbsp;&lt;/li&gt;
&lt;li&gt;Increase awareness of your decisions&amp;nbsp;&lt;/li&gt;
&lt;li&gt;Boost motivation and keep it constant&amp;nbsp;&lt;/li&gt;
&lt;li&gt;Bolster the determination to achieve your goals&amp;nbsp;&lt;/li&gt;
&lt;li&gt;Refine the estimation process, both in qualitative and quantitative terms &amp;nbsp;&lt;/li&gt;
&lt;li&gt;Improve your work or study process&amp;nbsp;&lt;/li&gt;
&lt;li&gt;Strengthen your determination to keep on applying yourself in the face of complex&amp;nbsp;situation&lt;/li&gt;
&lt;/ul&gt;
&lt;br /&gt;
Page 4 describes the three basic assumptions upon which technique is founded:&lt;br /&gt;
&lt;ul&gt;
&lt;li&gt;A different way of seeing time (no longer focused on the concept of becoming) alleviates&amp;nbsp;anxiety and in doing so leads to enhanced personal effectiveness.&amp;nbsp;&lt;/li&gt;
&lt;li&gt;Better use of the mind enables us to achieve greater clarity of thought, higher&amp;nbsp;consciousness, and sharper focus, all the while facilitating learning.&amp;nbsp;&lt;/li&gt;
&lt;li&gt;Employing easy-to-use, unobtrusive tools reduces the complexity of applying the&amp;nbsp;Technique while favoring continuity, and allows you to concentrate your efforts on the&amp;nbsp;activities you want to accomplish. Many time management techniques fail because they&amp;nbsp;subject the people who use them to a higher level of added complexity with respect to the&amp;nbsp;intrinsic complexity of the task at hand.&lt;/li&gt;
&lt;/ul&gt;
&lt;br /&gt;
FYI - The technique is not suggested to be used during your free time!&lt;br /&gt;
&lt;br /&gt;
Too much detail? No problem check out Greg Head's 5-minute Ignite talk on Pomodoro:&lt;br /&gt;
&lt;object height="360" width="640"&gt;&lt;param name="movie" value="http://www.youtube.com/v/cH-z5kmVhzU&amp;rel=0&amp;hl=en_US&amp;feature=player_embedded&amp;version=3"&gt;
&lt;/param&gt;
&lt;param name="allowFullScreen" value="true"&gt;
&lt;/param&gt;
&lt;param name="allowScriptAccess" value="always"&gt;
&lt;/param&gt;
&lt;embed src="http://www.youtube.com/v/cH-z5kmVhzU&amp;rel=0&amp;hl=en_US&amp;feature=player_embedded&amp;version=3" type="application/x-shockwave-flash" allowfullscreen="true" allowScriptAccess="always" width="640" height="360"&gt;&lt;/embed&gt;&lt;/object&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Here is how I setup my first Pomodoro. The screen shot below shows my desktop, with dual monitors, taskbar on the far left and vertical, The two right-most windows in Eclipse are on the right monitor and the other 4 windows on the left are on the left monitor. Notice how I'm using Eclipse internal web browser to display the Pomodoro countdown, which says "time expired".&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;/div&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;/div&gt;
&lt;table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style="text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/-L0Dfv-29yMo/TzWvAjzCHQI/AAAAAAAAAMA/e0LGjOJo-WQ/s1600/Program+Manager_2012-02-10_16-53-09.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"&gt;&lt;img border="0" height="256" src="http://4.bp.blogspot.com/-L0Dfv-29yMo/TzWvAjzCHQI/AAAAAAAAAMA/e0LGjOJo-WQ/s640/Program+Manager_2012-02-10_16-53-09.png" width="640" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class="tr-caption" style="text-align: center;"&gt;Pomodoro Desktop&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;br /&gt;
I tried out a few different ways of using a timer, kitchen timer, iPhone, etc..., but what I've found works best for me is to use the&amp;nbsp;&lt;a href="http://e.ggtimer.com/" target="_blank"&gt;E.ggTimer&lt;/a&gt;&amp;nbsp;web site and keep it open in a sliver of my screen space. I like the use of the Egg Timer, as it has an non-intrusive countdown and also makes an audible alert, which I can hear while I'm listening to Pandora.&amp;nbsp;I thought my smartphone might make a good timer, but the screen kept shutting off and it really didn't appeal to me as much as having the Pomodoro on-screen. The E.ggTimer site also offers a&amp;nbsp;&lt;a href="http://e.ggtimer.com/pomodoro" target="_blank"&gt;pomodoro timer&lt;/a&gt;, which is setup for a 25 minute&amp;nbsp;Pomodoro with a 5 minute break.&lt;br /&gt;
&lt;br /&gt;
I've not had much practice with the technique yet, but there is something different about working and seeing the countdown of the Pomodoro timer, that gave me a heightened sense of focus. I was definitely more aware of the many distractions I have, even though I thought I was doing well with minimizing distractions and avoiding task switching. This technique really puts anything that distracts you in your face, you should make quick note of it, if it is important and continue with the work at hand. It will be interesting to see the effects of this practice over a few weeks and whether I make the determination to &amp;nbsp;stick with it.&lt;img src="http://feeds.feedburner.com/~r/milehighcode/Fefh/~4/Ty9fx03qA0o" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://blog.milehighcode.com/feeds/8388647469174355802/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://blog.milehighcode.com/2012/01/enhancing-focus-with-pomodoro.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/7817780699562333449/posts/default/8388647469174355802?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/7817780699562333449/posts/default/8388647469174355802?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/milehighcode/Fefh/~3/Ty9fx03qA0o/enhancing-focus-with-pomodoro.html" title="Enhancing Focus with Pomodoro" /><author><name>Joshua Ayson</name><uri>https://plus.google.com/102042414478549404260</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh4.googleusercontent.com/-PXgvIyzXdhw/AAAAAAAAAAI/AAAAAAAABY4/a3eROUodr-g/s512-c/photo.jpg" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://4.bp.blogspot.com/--wraC6Y_Pd8/TxmuH_TFp0I/AAAAAAAAAKA/ZjIUzHEnnyo/s72-c/The+Pomodoro+Technique%25C2%25AE+-+Google+Chrome_2012-01-20_11-09-52.png" height="72" width="72" /><thr:total>0</thr:total><feedburner:origLink>http://blog.milehighcode.com/2012/01/enhancing-focus-with-pomodoro.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DUIEQH49eSp7ImA9WhRVF0o.&quot;"><id>tag:blogger.com,1999:blog-7817780699562333449.post-8597374669944197373</id><published>2012-01-16T19:43:00.001-07:00</published><updated>2012-01-16T22:18:21.061-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2012-01-16T22:18:21.061-07:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="inspiration" /><category scheme="http://www.blogger.com/atom/ns#" term="media" /><title>Take an Hour to Inspire Your Work</title><content type="html">Every now and again I need something to renew how I feel about my day to day job and liven things up. I found three videos, which give raise my spirits about work, encourage positive thinking and gave me something to chew on as I was looking for some perspective.&lt;br /&gt;
&lt;br /&gt;
These video go well together and just might have you thinking differently and get you revved up about what you are doing, what you want to do, and figuring out what you were meant to do.&lt;br /&gt;
&lt;br /&gt;
First a thought provoking TED video by Daniel Pink on the surprising &lt;a href="http://www.youtube.com/watch?v=rrkrvAUbU9Y" target="_blank"&gt;science of motivation&lt;/a&gt;&amp;nbsp;in which he&amp;nbsp;discusses autonomy, mastery and purpose being key motivators for today's knowledge worker and how the carrot and stick method no longer applies to the current paradigm.&lt;br /&gt;
&lt;br /&gt;
&lt;table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style="text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/-WqLUSfrO3Po/TxUEWFYt-QI/AAAAAAAAAJg/5CjGIiOszVg/s1600/Doc-1_16_12+10_11+PM-page-1.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"&gt;&lt;img border="0" height="298" src="http://2.bp.blogspot.com/-WqLUSfrO3Po/TxUEWFYt-QI/AAAAAAAAAJg/5CjGIiOszVg/s400/Doc-1_16_12+10_11+PM-page-1.png" width="400" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class="tr-caption" style="text-align: center;"&gt;Get AMP'ed!&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;br /&gt;
Up second is a video that shows how important play, creativity and having fun is. Tim Brown the CEO and president of IDEO talks about&amp;nbsp;&lt;a href="http://www.ted.com/talks/lang/en/tim_brown_on_creativity_and_play.html" target="_blank"&gt;creativity and play&lt;/a&gt;&amp;nbsp;in another TED video.&lt;br /&gt;
&lt;div&gt;
&lt;br /&gt;
And finally three stories from Steve Jobs life that really put it all into perspective. Check out Steve's 2005 Stanford commencement address, "&lt;a href="http://youtu.be/UF8uR6Z6KLc" target="_blank"&gt;How to Live Before you Die&lt;/a&gt;".&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/milehighcode/Fefh/~4/52aifvbzCEk" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://blog.milehighcode.com/feeds/8597374669944197373/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://blog.milehighcode.com/2012/01/take-hour-to-inspire-your-work.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/7817780699562333449/posts/default/8597374669944197373?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/7817780699562333449/posts/default/8597374669944197373?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/milehighcode/Fefh/~3/52aifvbzCEk/take-hour-to-inspire-your-work.html" title="Take an Hour to Inspire Your Work" /><author><name>Joshua Ayson</name><uri>https://plus.google.com/102042414478549404260</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh4.googleusercontent.com/-PXgvIyzXdhw/AAAAAAAAAAI/AAAAAAAABY4/a3eROUodr-g/s512-c/photo.jpg" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://2.bp.blogspot.com/-WqLUSfrO3Po/TxUEWFYt-QI/AAAAAAAAAJg/5CjGIiOszVg/s72-c/Doc-1_16_12+10_11+PM-page-1.png" height="72" width="72" /><thr:total>0</thr:total><feedburner:origLink>http://blog.milehighcode.com/2012/01/take-hour-to-inspire-your-work.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DE4HQ308fyp7ImA9WhRVFkQ.&quot;"><id>tag:blogger.com,1999:blog-7817780699562333449.post-2546843480484465193</id><published>2012-01-15T23:44:00.000-07:00</published><updated>2012-01-15T23:55:32.377-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2012-01-15T23:55:32.377-07:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="agile" /><title>Agile Training with Mike DePaoli from VersionOne</title><content type="html">Last week I attended a two day&amp;nbsp;workshop&amp;nbsp;with &lt;a href="http://blogs.versionone.com/agile_management/author/mdepaoli/" target="_blank"&gt;Michael DePaoli&lt;/a&gt; on agile processes. It was very enlightening and we were lucky to have such a great speaker.&lt;br /&gt;
&lt;br /&gt;
Here is my partially organized brain dump of the concepts that stuck with me from my notes. It will be interesting to see how some of the concepts might be incorporated in my current work environment and what the effects will be. Thumbs up to continuous improvement and&amp;nbsp;re-factoring!&lt;br /&gt;
&lt;b&gt;&lt;br /&gt;&lt;/b&gt;
&lt;b&gt;&lt;span style="font-size: large;"&gt;Process Overview&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;
Typical daily scrum questions:&lt;br /&gt;
&lt;br /&gt;
&lt;ul&gt;
&lt;li&gt;What did I learn?&lt;/li&gt;
&lt;li&gt;What am I going to learn?&lt;/li&gt;
&lt;li&gt;What are the impediments?&lt;/li&gt;
&lt;/ul&gt;
&lt;br /&gt;
The goal is to remove impediments and keep forward momentum going.&lt;br /&gt;
&lt;br /&gt;
&lt;table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style="text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/-vTFstCpuypo/TxO3xxK2kOI/AAAAAAAAAJU/IreDcgEiul0/s1600/Doc-1_13_12+5_11+PM-page-1.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"&gt;&lt;img border="0" height="218" src="http://3.bp.blogspot.com/-vTFstCpuypo/TxO3xxK2kOI/AAAAAAAAAJU/IreDcgEiul0/s640/Doc-1_13_12+5_11+PM-page-1.png" width="640" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class="tr-caption" style="text-align: center;"&gt;Agile Lifecycle&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
Key agile points:&lt;br /&gt;
&lt;br /&gt;
&lt;ul&gt;
&lt;li&gt;&lt;u&gt;individuals and interaction&lt;/u&gt; over processes &amp;amp; tools&lt;/li&gt;
&lt;li&gt;&lt;u&gt;working software&lt;/u&gt; over comprehensive docs&lt;/li&gt;
&lt;li&gt;&lt;u&gt;customer collaboration&lt;/u&gt; over contract negotiation&lt;/li&gt;
&lt;li&gt;&lt;u&gt;responding to change&lt;/u&gt; over following a plan&lt;/li&gt;
&lt;/ul&gt;
&lt;br /&gt;
While there is value to the items on the right, put higher value to the underlined items on the left.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;&lt;span style="font-size: large;"&gt;Management and Leadership&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;
Agile leadership must learn to&amp;nbsp;&lt;u&gt;manage teams&lt;/u&gt;&amp;nbsp;and&amp;nbsp;&lt;u&gt;coach individuals&lt;/u&gt;.&lt;br /&gt;
&lt;br /&gt;
The kaizen process ("good change") from Toyota, shows how many small changes amount to big change without evoking a fear response.&lt;br /&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
Don't be fooled by a waterfall process within an iteration. (A "scrumfall" or "wateration".)&lt;br /&gt;
&lt;br /&gt;
Expose problems as soon as possible to give product owners the maximum number of choices for how to react.
&lt;br /&gt;
&lt;br /&gt;
Reactionary behavior is a handicap of corporate America.
&lt;br /&gt;
&lt;br /&gt;
Learn what it means to be a "servant leader".&lt;br /&gt;
&lt;br /&gt;
Facilitative management role is not done by review, rather by actively observing teams and helping remove impediments.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;&lt;span style="font-size: large;"&gt;Task Estimation&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;
An estimate involves a range. A single value/date is a commitment.&lt;br /&gt;
&lt;br /&gt;
Agile estimation drives down cost.&lt;br /&gt;
&lt;br /&gt;
Important to have team agree on the reference example during the sprint planning process to start the relative estimation process of other tasks. It is much like a keystone, which should not be updated since other tasks will be estimated in relation to this entity.
&lt;br /&gt;
&lt;br /&gt;
Identify assumptions and boundaries for which task estimates are based on.
&lt;br /&gt;
&lt;br /&gt;
Estimates should not be in days. Use T-shirt sizes or fibonacci numbers for your estimates, to reinforce that these numbers are estimates.&lt;br /&gt;
&lt;div&gt;
&lt;br /&gt;
&lt;b&gt;&lt;span style="font-size: large;"&gt;Problem-solving&lt;/span&gt;&lt;/b&gt;
&lt;br /&gt;
&lt;div&gt;
The&amp;nbsp;&lt;a href="http://marshmallowchallenge.com/Welcome.html" target="_blank"&gt;marshmallow challenge&lt;/a&gt;&amp;nbsp;taught us to prove key assumptions as soon as possible. Check out&amp;nbsp;&lt;a href="http://www.ted.com/talks/view/lang/en//id/837" target="_blank"&gt;Tom Wujec's TED talk&lt;/a&gt;&amp;nbsp;about the challenge.&lt;br /&gt;
&lt;ul&gt;
&lt;li&gt;remember the objective&lt;/li&gt;
&lt;li&gt;become familiar with the materials&lt;/li&gt;
&lt;/ul&gt;
Think about the challenge as it relates to gathering requirements.&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;
&lt;div&gt;
Learn the power of the intuitive mind&amp;nbsp;for problem solving and estimation.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;&lt;span style="font-size: large;"&gt;Team&lt;/span&gt;&lt;/b&gt;
&lt;br /&gt;
As soon as you assign blame you stop learning.&lt;br /&gt;
&lt;br /&gt;
Team cadence should be kept regular, but not set in stone. The general rule is to work to get the cadence smaller and always keep it consistent.&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;
A self-organizing team does their own resource leveling.&amp;nbsp;The highest definition of this is that the team can overcome obstacles and reach agreement through conflict. This is a high performing "team smell".&amp;nbsp;Take tasks based on importance and priority.&lt;br /&gt;
&lt;br /&gt;
The team has to honor the process throughout. If it is not working analyze, change, modify, but don't give up what you've started.
&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;&lt;span style="font-size: large;"&gt;Meetings&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;
The daily stand-up is about re-planning based in what is known TODAY.&amp;nbsp;Stand-up meetings are not for problem solving, but rather problem identifying. The daily stand-up meeting is the way to implement active issue management.&lt;br /&gt;
&lt;br /&gt;
During the sprint retrospective inspect the process, not the people.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;&lt;span style="font-size: large;"&gt;Agile Tips&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;
Velocity defined: Stabilized number of estimation units a team can accomplish with a high value, that can be marked as being done. Velocity should be averaged based on the team over a number of sprints and also takes into account capacity.&lt;br /&gt;
&lt;br /&gt;
Velocity is observed. Team capacity changes and is flushed out during sprint planning, which then affects the velocity.
&lt;br /&gt;
&lt;ul&gt;
&lt;li&gt;size (complexity) is&amp;nbsp;&lt;u&gt;estimated&lt;/u&gt;&lt;/li&gt;
&lt;li&gt;velocity is&amp;nbsp;&lt;u&gt;measured&lt;/u&gt;&lt;/li&gt;
&lt;li&gt;duration is&amp;nbsp;&lt;u&gt;forecast&lt;/u&gt;&lt;/li&gt;
&lt;/ul&gt;
Then enemy of predictability is variability. Add buffers to remain predictable.&lt;br /&gt;
&lt;br /&gt;
Burndown - how much work do we have left?&lt;br /&gt;
Cumulative flow - how much value have we delivered?&lt;br /&gt;
&lt;br /&gt;
A&amp;nbsp;burn-down&amp;nbsp;chart can be analyzed for trends:&lt;br /&gt;
&lt;ul&gt;
&lt;li&gt;how many hours remain on tasks&lt;/li&gt;
&lt;li&gt;what has changed&lt;/li&gt;
&lt;li&gt;who needs help&lt;/li&gt;
&lt;/ul&gt;
&lt;div&gt;
The easiest lowest cost way of dealing with defects is to fix them when found, in the current sprint and take out a similar sized lower priority task. This reduced technical debt.&lt;br /&gt;
&lt;br /&gt;
Focus of the agile process isn't starting new work, it is about finishing what was begun.&lt;br /&gt;
&lt;br /&gt;
Mnemonic for writing good stories:&lt;br /&gt;
&lt;ul&gt;
&lt;li&gt;Specific&lt;/li&gt;
&lt;li&gt;Measurable - can we mark it as done&lt;/li&gt;
&lt;li&gt;Achievable - task needs to be do-able&lt;/li&gt;
&lt;li&gt;Relevant - needs to contribute to the story's bottom line&lt;/li&gt;
&lt;li&gt;Time boxed - limited to a specific duration&lt;/li&gt;
&lt;/ul&gt;
&lt;br /&gt;
&lt;b&gt;&lt;span style="font-size: large;"&gt;Task switching overhead&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;
Time yourself for this exercise, it has two parts. Write the phrase "Multitasking&amp;nbsp;is worse than a lie" and after writing a single letter write the index number of the letter below of the letter itself. Now repeat the exercise by writing the sentence to completion first and then labeling the numbers below the letters from 1 to 27. The resulting output is the same, but the exercise highlights the high cost of task switching in the completion time difference.&lt;br /&gt;
&lt;br /&gt;
Work in process limits: A single piece of flow results in highest quality and will surface bottlenecks.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;&lt;span style="font-size: large;"&gt;Good Thoughts&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;
Software development professionals understand the whole system.&lt;br /&gt;
&lt;br /&gt;
Focusing on learning will create energy and fight lethargy.&lt;br /&gt;
&lt;br /&gt;
If you take an action without direct add value you have to think carefully about the transaction cost and coordination cost.&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/milehighcode/Fefh/~4/5yfRp76uzp4" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://blog.milehighcode.com/feeds/2546843480484465193/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://blog.milehighcode.com/2012/01/agile-training-with-mike-depaoli-from.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/7817780699562333449/posts/default/2546843480484465193?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/7817780699562333449/posts/default/2546843480484465193?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/milehighcode/Fefh/~3/5yfRp76uzp4/agile-training-with-mike-depaoli-from.html" title="Agile Training with Mike DePaoli from VersionOne" /><author><name>Joshua Ayson</name><uri>https://plus.google.com/102042414478549404260</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh4.googleusercontent.com/-PXgvIyzXdhw/AAAAAAAAAAI/AAAAAAAABY4/a3eROUodr-g/s512-c/photo.jpg" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://3.bp.blogspot.com/-vTFstCpuypo/TxO3xxK2kOI/AAAAAAAAAJU/IreDcgEiul0/s72-c/Doc-1_13_12+5_11+PM-page-1.png" height="72" width="72" /><thr:total>0</thr:total><feedburner:origLink>http://blog.milehighcode.com/2012/01/agile-training-with-mike-depaoli-from.html</feedburner:origLink></entry><entry gd:etag="W/&quot;AkIERX0_cCp7ImA9WhRWF0Q.&quot;"><id>tag:blogger.com,1999:blog-7817780699562333449.post-524524223307467007</id><published>2012-01-02T17:17:00.001-07:00</published><updated>2012-01-05T14:21:44.348-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2012-01-05T14:21:44.348-07:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="clojure" /><category scheme="http://www.blogger.com/atom/ns#" term="lifehacks" /><category scheme="http://www.blogger.com/atom/ns#" term="languages" /><title>Use You a Spaced Repetition System for Great Good!</title><content type="html">In 2008 I came upon an article in Wired (&lt;a href="http://www.wired.com/medtech/health/magazine/16-05/ff_wozniak?currentPage=all" target="_blank"&gt;Want to Remember Everything You'll Ever Learn? Surrender to This Algorithm&lt;/a&gt;)&amp;nbsp;about the SuperMemo spaced repetition memory system application. SuperMemo was developed by Piotr Woźniak who wrote his 1995 Ph.D. dissertation paper, &lt;a href="http://www.supermemo.com/english/el.htm" target="_blank"&gt;Economics of Learning&lt;/a&gt; on the topic.&lt;br /&gt;
&lt;br /&gt;
Here is the definition of an SRS system, from wikipedia:&lt;br /&gt;
&lt;blockquote class="tr_bq"&gt;
"&lt;a href="http://en.wikipedia.org/wiki/Spaced_repetition" target="_blank"&gt;Spaced repetition&lt;/a&gt; is a learning technique that incorporates increasing intervals of time between subsequent review of previously learned material; this exploits the psychological spacing effect.&lt;br /&gt;
[...]&lt;br /&gt;
the &lt;a href="http://en.wikipedia.org/wiki/Spacing_effect" target="_blank"&gt;spacing effect&lt;/a&gt; refers to the fact that humans and animals more easily remember or learn items in a list when they are studied a few times over a long period of time (spaced presentation), rather than studied repeatedly in a short period time (massed presentation)."&lt;/blockquote&gt;
&lt;table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style="text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/-Dcme5gnLFvE/TwJHqplMSgI/AAAAAAAAAIk/c7Axvjq-P-M/s1600/Want+to+Remember+Everything+You%2527ll+Ever+Learn+Surrender+to+This+Algorithm+-+Goo_2012-01-02_17-10-43.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"&gt;&lt;img border="0" height="372" src="http://4.bp.blogspot.com/-Dcme5gnLFvE/TwJHqplMSgI/AAAAAAAAAIk/c7Axvjq-P-M/s640/Want+to+Remember+Everything+You%2527ll+Ever+Learn+Surrender+to+This+Algorithm+-+Goo_2012-01-02_17-10-43.png" width="640" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class="tr-caption" style="text-align: center;"&gt;Image Copyright Wired: "Want to Remember Everything You'll Ever Learn? Surrender to This Algorithm"&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;br /&gt;
When I came across the section in chapter 5 in the Practical Clojure book, that described the Clojure sequence API, I knew this knowledge would be perfect for an SRS system and right now I'm sufficiently motivated to try it out.&lt;br /&gt;
&lt;br /&gt;
I choose to use &lt;a href="http://ankisrs.net/" target="_blank"&gt;Anki&lt;/a&gt;&amp;nbsp;to help me learn Clojure, which is an easy to use, free, multi-platform, SRS system. Anki also allows you to sync/share your flashcards and offers a free basic web interface to your synced decks through your Anki web account. Anki uses the &lt;a href="http://www.supermemo.com/english/ol/sm2.htm" target="_blank"&gt;SM-2 algorithm&lt;/a&gt;&amp;nbsp;developed by Piotr&amp;nbsp;Woźniak, father of SuperMemo.&lt;br /&gt;
&lt;br /&gt;
Regardless of which SRS system you use, I highly recommend reading these Woźniak articles before you begin training. Although these articles are written specifically for SuperMemo users, the knowledge they contain are universal and will be invaluable for your practice:&lt;br /&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="http://www.supermemo.com/articles/20rules.htm" target="_blank"&gt;Effective learning: Twenty rules of formulating knowledge&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.supermemo.com/articles/decalog.htm" target="_blank"&gt;Learning Decalogue&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;br /&gt;
Also of interest is Jack Kinsella's great article, "&lt;a href="http://www.jackkinsella.ie/2011/12/05/janki-method.html" target="_blank"&gt;Janki Method&lt;/a&gt;,"&amp;nbsp;which discusses using Anki to learn and retain techincal knowedge, shortening the time needed to learn programming.&lt;br /&gt;
&lt;br /&gt;
If you decide to use Anki, you can download this shared deck of flash cards for the Clojure sequence API, based on Chapter 5 in Apress' Practical Clojure book.&lt;br /&gt;
&lt;br /&gt;
To install the Anki deck, open up Anki and select Download from the File menu:&lt;br /&gt;
&lt;br /&gt;
&lt;table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style="text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/-VAy2teNldb4/TwI_3vBbR0I/AAAAAAAAAIE/_yzFLaS1VOw/s1600/Anki_2012-01-02_15-19-14.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"&gt;&lt;img border="0" height="174" src="http://2.bp.blogspot.com/-VAy2teNldb4/TwI_3vBbR0I/AAAAAAAAAIE/_yzFLaS1VOw/s320/Anki_2012-01-02_15-19-14.png" width="320" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class="tr-caption" style="text-align: center;"&gt;Download Shared Deck in Anki&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;br /&gt;
&lt;br /&gt;
In the Download Shared Deck window filter on "clojure" and you will see the latest Clojure Sequence API deck:&lt;br /&gt;
&lt;br /&gt;
&lt;table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style="text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/-4ZmVYmPBECs/TwJAGXn0F5I/AAAAAAAAAIY/uQMavpFLuCg/s1600/Download+Shared+Deck_2012-01-02_15-18-57.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"&gt;&lt;img border="0" height="400" src="http://4.bp.blogspot.com/-4ZmVYmPBECs/TwJAGXn0F5I/AAAAAAAAAIY/uQMavpFLuCg/s640/Download+Shared+Deck_2012-01-02_15-18-57.png" width="640" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class="tr-caption" style="text-align: center;"&gt;Anki Shared Deck Browser&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;&lt;img src="http://feeds.feedburner.com/~r/milehighcode/Fefh/~4/YdsP6XiCSO0" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://blog.milehighcode.com/feeds/524524223307467007/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://blog.milehighcode.com/2012/01/use-you-spaced-repetition-system-for.html#comment-form" title="1 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/7817780699562333449/posts/default/524524223307467007?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/7817780699562333449/posts/default/524524223307467007?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/milehighcode/Fefh/~3/YdsP6XiCSO0/use-you-spaced-repetition-system-for.html" title="Use You a Spaced Repetition System for Great Good!" /><author><name>Joshua Ayson</name><uri>https://plus.google.com/102042414478549404260</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh4.googleusercontent.com/-PXgvIyzXdhw/AAAAAAAAAAI/AAAAAAAABY4/a3eROUodr-g/s512-c/photo.jpg" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://4.bp.blogspot.com/-Dcme5gnLFvE/TwJHqplMSgI/AAAAAAAAAIk/c7Axvjq-P-M/s72-c/Want+to+Remember+Everything+You%2527ll+Ever+Learn+Surrender+to+This+Algorithm+-+Goo_2012-01-02_17-10-43.png" height="72" width="72" /><thr:total>1</thr:total><feedburner:origLink>http://blog.milehighcode.com/2012/01/use-you-spaced-repetition-system-for.html</feedburner:origLink></entry><entry gd:etag="W/&quot;C0ADQ38yfCp7ImA9WhRWE0o.&quot;"><id>tag:blogger.com,1999:blog-7817780699562333449.post-7301717252396624086</id><published>2011-12-31T14:02:00.000-07:00</published><updated>2011-12-31T15:49:32.194-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-12-31T15:49:32.194-07:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="code" /><category scheme="http://www.blogger.com/atom/ns#" term="clojure" /><category scheme="http://www.blogger.com/atom/ns#" term="languages" /><title>Amit Rathore's Introduction to Clojure: Week 3</title><content type="html">&lt;script src="http://www.milehighcode.com/Scripts/shCore.js" type="text/javascript"&gt;
&lt;/script&gt;
&lt;script src="http://www.milehighcode.com/Scripts/shAutoloader.js" type="text/javascript"&gt;
&lt;/script&gt;
&lt;script src="http://www.milehighcode.com/Scripts/shBrushClojure.js" type="text/javascript"&gt;
&lt;/script&gt;
&lt;link href="http://www.milehighcode.com/Stylesheets/shThemeDefault.css" rel="stylesheet" type="text/css"&gt;&lt;/link&gt;
&lt;link href="http://www.milehighcode.com/Stylesheets/shCore.css" rel="stylesheet" type="text/css"&gt;&lt;/link&gt;
&lt;br /&gt;
Shit, I've fallen behind, but thank goodness I'm still learning. Class is moving along a little too quickly for me and I'm not finding enough explanation in Amit's &lt;a href="http://www.manning.com/rathore/" target="_blank"&gt;Clojure in Action&lt;/a&gt; book's first half.&lt;br /&gt;
&lt;br /&gt;
I've realized that I needed to take a step back and fill in some of the gaps in my mind. I did this by reading Apress' &lt;a href="http://www.amazon.com/Practical-Clojure-Experts-Voice-Source/dp/1430272317" target="_blank"&gt;Practical Clojure&lt;/a&gt; by Luke VanderHart and Stuart Sierra, which I'll refer to as the&amp;nbsp;&lt;b&gt;PC &lt;/b&gt;book&amp;nbsp;in this post. I still need to dig into the state, parallel programming, macro, protocols and performance chapters, but it really helped explain some things I just wasn't understanding from Amit's book.&lt;script type="text/javascript"&gt;
     SyntaxHighlighter.all()
&lt;/script&gt;&lt;br /&gt;
&lt;br /&gt;
It will be interesting to see what the second half of the Clojure in Action is about, since that is where it seems to differentiates itself from the other beginner manuals. So, instead of talking about Java interop and concurrency this week, which is what we covered in class, I'll instead go over some of the materials I highlighted while reading the PC book, which further illuminated points I hadn't fully understood.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Tail Recursion&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
I didn't realize the &lt;i&gt;recur&lt;/i&gt; form in clojure was what is used to explicitly use tail call optimization so you don't blow the stack. In Scheme this happens automatically whenever a recursive call is in tail position, not so with Clojure, but then you know that you are in tail recursion when you use &lt;i&gt;recur&lt;/i&gt;!&lt;br /&gt;
&lt;br /&gt;
And here is is a great explanation of why tail call recursion is able to optimized, from page 39 in PC, "If the&amp;nbsp;return value of the “outer” function is wholly delegated to the “inner” function, the call is in tail position.&amp;nbsp;If the “outer” function does anything with the value returned from the inner function except just return&amp;nbsp;it, it is not tail recursive and cannot be optimized. This makes sense when the nature of the call stack is&amp;nbsp;considered; if a call is in tail position, then the program can effectively “forget” that it was called&amp;nbsp;recursively at all and delegate the entire program flow to the result of the inner function. If there is&amp;nbsp;additional processing to do, the compiler can’t throw away the outer function. It has to keep it around in&amp;nbsp;order to finish computing its result."&lt;br /&gt;
&lt;br /&gt;
I also&amp;nbsp;benefited&amp;nbsp;from seeing this refactor using the &lt;i&gt;loop &lt;/i&gt;special form to show how it is much more compact.&lt;br /&gt;
&lt;br /&gt;
Here is Newton's algorithm to recursively calculate the square root of a number:&lt;br /&gt;
&lt;br /&gt;
&lt;pre class="brush: clojure"&gt;(defn abs
   "Calculates the absolute value of a number"
   [n]
   (if (&amp;lt; n 0)
      (* -1 n)
      n))

(defn avg
   "returns the average of two arguments"
   [a b]
   (/ (+ a b) 2))

(defn good-enough?
   "Tests if a guess is close enough to the real square root"
   [number guess]
   (let [diff (- (* guess guess) number)]
      (if (&amp;lt; (abs diff) 0.001)
         true
         false)))

(defn sqrt
   "returns the square root of the supplied number"
   ([number] (sqrt number 1.0))
   ([number guess]
   (if (good-enough? number guess)
      guess
      (sqrt number (avg guess (/ number guess))))))
&lt;/pre&gt;
&lt;br /&gt;
Now check out the refactor of the sqrt function using &lt;i&gt;loop &lt;/i&gt;making the code a little tighter:
&lt;br /&gt;
&lt;br /&gt;
&lt;pre class="brush: clojure"&gt;(defn loop-sqrt
   "returns the square root of the supplied number"
   [number]
   (loop [guess 1.0]
      (if (good-enough? number guess)
         guess
         (recur (avg guess (/ number guess))))))
&lt;/pre&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Closures&amp;nbsp;&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
On page 45 in PC an example is given of a first-class function called rangechecker. The function is first-class because it returns a function, and you can think of the rangechecker function as a "function factory":&lt;br /&gt;
&lt;br /&gt;
&lt;pre class="brush: clojure"&gt;(defn rangechecker
   "Returns a function that determines if a number is in a provided range."
   [min max]
   (fn [num]
      (and (&amp;lt;= num max)
           (&amp;lt;= min num))))
&lt;/pre&gt;
&lt;br /&gt;
To use the rangechecker function you can assign the function to a symbol in your REPL, then call it with a it's single arity parameter, which needs to be a number:
&lt;br /&gt;
&lt;br /&gt;
&lt;pre class="brush: clojure"&gt;user=&amp;gt; (def myrange (rangechecker 2 10))
#'user/myrange

user=&amp;gt; (myrange 5)
true
&lt;/pre&gt;
&lt;br /&gt;
The definition for a closure given on page 46 of PC is that they are &lt;b&gt;first-class functions that contain values as well as code&lt;/b&gt;. The rangechecker function is an example of this.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Currying&lt;/b&gt;
&lt;br /&gt;
&lt;br /&gt;
Page 46 of PC also talks about currying and the use of the partial function to illustrate the concept. Currying refers to the process of transforming a function into a function with fewer arguments by wrapping it in a closure. Since that is pretty heavy for me to understand just by reading I was thankful for this example using &lt;i&gt;partial&lt;/i&gt;, which incidentally also helped me better understand how to use &lt;i&gt;partial&lt;/i&gt;:&lt;br /&gt;
&lt;br /&gt;
&lt;pre class="brush: clojure"&gt;user=&amp;gt; (def times-pi (partial * 3.14159))
#’user/times-pi

user=&amp;gt; (times-pi 2)
6.28318
&lt;/pre&gt;
&lt;br /&gt;
This could have been written by manually definining the following function, which is really just a wrapper for the multiplication function, supplying specific values. Sounds like a closure, doesn't it:&lt;br /&gt;
&lt;br /&gt;
&lt;pre class="brush: clojure"&gt;(defn times-pi
   “Multiplies a number by PI”
   [n]
   (* 3.14159 n))&lt;/pre&gt;
&lt;br /&gt;
So now &lt;i&gt;partial &lt;/i&gt;makes sense to me and I have a better understanding of what closure are used for and what it means when someone talks about currying and that it has nothing to do with Indian food.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Sequences&amp;nbsp;&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
I'm glad the PC book had it's own chapter on sequences, because I had not totally understood how they were used, why and what exactly they were. From page 73, "Sequences are simply a way to read, write and modify a data structure that is logically a collection of items."&lt;br /&gt;
&lt;br /&gt;
Not only was this a great chapter describing sequences in detail it was followed by a chapter on the sequence API, which further explained the benefits one could get out of using sequences. I didn't realize a lot of the function we were using in our exercises such as &lt;i&gt;range, partition, map, first, second, last, rest, reduce, apply&lt;/i&gt; are all part of the sequence API. Ah, my synapses were firing in sequence after reading these two chapters from the PC book.&lt;br /&gt;
&lt;br /&gt;
In looking at the anatomy of a sequence I was able to finally make the bridge between Lisp's &lt;i&gt;car &lt;/i&gt;and &lt;i&gt;cdr&lt;/i&gt; functions, which are the equivalents to Clojure's &lt;i&gt;first&lt;/i&gt; and &lt;i&gt;rest&lt;/i&gt;. They were just renamed to make more sense for modern programmers. The sequence golden rule is that conceptually all sequences share the conceptual model of being a singly-linked list, implemented in terms of &lt;i&gt;first&lt;/i&gt; and &lt;i&gt;rest&lt;/i&gt;.&lt;br /&gt;
&lt;br /&gt;
To construct a sequence you can use the &lt;i&gt;cons&lt;/i&gt; function, which stands for construct. A sequence created by &lt;i&gt;cons&lt;/i&gt; is known as a "cons cell", which is just a simple first/rest pair. So here is how we chain multiple cons cells together programmatically, which just so happens to be a common Lisp idiom:&lt;br /&gt;
&lt;br /&gt;
&lt;pre class="brush: clojure"&gt;(defn make-int-seq [max]
   (loop [acc nil n max]
      (if (zero? n)
         acc
         (recur (cons n acc) (dec n)))))

user=&amp;gt; (make-int-seq 5)
(1 2 3 4 5)
&lt;/pre&gt;
&lt;br /&gt;
The sequence chapter helped me get a firm understanding of laziness. "Briefly stated lazy sequences are a highly efficient way to operate on data too large to fit in system memory at once." (Page 77, PC)&lt;br /&gt;
&lt;br /&gt;
This handy little combination of print statements and using the map function from the sequence API, which like most of the higher order functions in the API returns a lazy sequence is highly insightful into the behavior of a lazy sequence.&lt;br /&gt;
&lt;br /&gt;
First a simple squaring function is defined, which produces print side-effects:
&lt;br /&gt;
&lt;br /&gt;
&lt;pre class="brush: clojure"&gt;(defn square [x]
   (do
      (println (str "Processing: " x))
      (* x x)))
&lt;/pre&gt;
&lt;br /&gt;
To look at the behavior in your REPL try the following.&lt;br /&gt;
&lt;br /&gt;
Assign the result of a call to the &lt;i&gt;map&lt;/i&gt; function using &lt;i&gt;square&lt;/i&gt; to a symbol. Then use &lt;i&gt;nth&lt;/i&gt; to get a specific item in the list. Call &lt;i&gt;nth&lt;/i&gt; again and you will see that the result was cached. Now print the &lt;i&gt;map-result&lt;/i&gt; symbol and you will see only values that were not yet cached are realized.&lt;br /&gt;
&lt;br /&gt;
&lt;pre class="brush: clojure"&gt;user =&amp;gt;(def map-result (map square '(1 2 3 4 5))
#'user/map-result

user =&amp;gt; (nth map-result 2)

user =&amp;gt; (nth map-result 2)

user =&amp;gt; (println map-result)
&lt;/pre&gt;
&lt;pre class="brush: clojure"&gt;&lt;/pre&gt;
&lt;br /&gt;
When using a lazy sequence calls are not made until they are absolutely required, the point at which the system needs to realize the lazy values.


&lt;br /&gt;
&lt;br /&gt;
Another great example which illustrates how lazy sequences can eat memory if there are reference to the realized sequence is given on page 82 in PC.&lt;br /&gt;
&lt;br /&gt;
This version eats up heap space.&lt;br /&gt;
When &lt;i&gt;nth&lt;/i&gt; is called, the sequence is realized and references are created:
&lt;br /&gt;
&lt;br /&gt;
&lt;pre class="brush: clojure"&gt;user=&amp;gt; (def integers (iterate inc 0))
#'user/integers

user=&amp;gt; (nth integers 1000000)
1000000
&lt;/pre&gt;
&lt;pre class="brush: clojure"&gt;&lt;/pre&gt;
&lt;br /&gt;
Here is the more efficient version using &lt;i&gt;nth&lt;/i&gt;, which does not maintain references, by skipping the binding to the &lt;i&gt;integers&lt;/i&gt; symbol:&lt;br /&gt;
&lt;br /&gt;
&lt;pre class="brush: clojure"&gt;user=&amp;gt; (nth (iterate inc 0) 1000000)
1000000
&lt;/pre&gt;
&lt;br /&gt;
&lt;b&gt;State and Parallel Programming&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
I still have more to learn regarding state and concurrency so I have little to say on the matter at this point in time. However the following explanation of the&amp;nbsp;coordinated&amp;nbsp;state of &lt;i&gt;refs&lt;/i&gt;, made a lot of sense to me:&lt;br /&gt;
&lt;br /&gt;
"The most common example of coordinated state is a transfer of funds between two bank accounts: money deposited into one account must also be subtracted from the others, and these two action must occur as a single, coordinated event, or not at all." (Page 97, PC)&lt;br /&gt;
&lt;br /&gt;
Yay, for examples!&amp;nbsp;I also really appreciate the follow-up chapter on state in Chapter 11, Parallel Programming of the PC book, which talks about how to perform concurrent operations, since the discussion of state alone does not address how a program becomes parallel and the strategies involved with doing this.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
So that is where I'm at so far in week three of Amit's class. I'm feeling better about my understanding, but this detour to better understand the fundamentals has left me behind. It's now time to catch up and work on the assignments, which I've found really helps to imprint the new concepts. I can only learn so much from reading, at some point I have to switch over to doing, which is a whole different way of using the brain. Time to code!!!&lt;br /&gt;
&lt;script type="text/javascript"&gt;
     SyntaxHighlighter.all()
&lt;/script&gt;&lt;img src="http://feeds.feedburner.com/~r/milehighcode/Fefh/~4/n0su7KlGIwI" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://blog.milehighcode.com/feeds/7301717252396624086/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://blog.milehighcode.com/2011/12/amit-rathores-introduction-to-clojure_31.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/7817780699562333449/posts/default/7301717252396624086?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/7817780699562333449/posts/default/7301717252396624086?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/milehighcode/Fefh/~3/n0su7KlGIwI/amit-rathores-introduction-to-clojure_31.html" title="Amit Rathore's Introduction to Clojure: Week 3" /><author><name>Joshua Ayson</name><uri>https://plus.google.com/102042414478549404260</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh4.googleusercontent.com/-PXgvIyzXdhw/AAAAAAAAAAI/AAAAAAAABY4/a3eROUodr-g/s512-c/photo.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://blog.milehighcode.com/2011/12/amit-rathores-introduction-to-clojure_31.html</feedburner:origLink></entry><entry gd:etag="W/&quot;C04HQnk-fSp7ImA9WhRXFEU.&quot;"><id>tag:blogger.com,1999:blog-7817780699562333449.post-5404427889888398191</id><published>2011-12-21T06:31:00.000-07:00</published><updated>2011-12-21T08:38:53.755-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-12-21T08:38:53.755-07:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="code" /><category scheme="http://www.blogger.com/atom/ns#" term="clojure" /><category scheme="http://www.blogger.com/atom/ns#" term="books" /><category scheme="http://www.blogger.com/atom/ns#" term="languages" /><title>Amit Rathore's Introduction to Clojure: Week 2</title><content type="html">&lt;script src="http://www.milehighcode.com/Scripts/shCore.js" type="text/javascript"&gt;
&lt;/script&gt;
&lt;script src="http://www.milehighcode.com/Scripts/shAutoloader.js" type="text/javascript"&gt;
&lt;/script&gt;
&lt;script src="http://www.milehighcode.com/Scripts/shBrushClojure.js" type="text/javascript"&gt;
&lt;/script&gt;
&lt;link href="http://www.milehighcode.com/Stylesheets/shThemeDefault.css" rel="stylesheet" type="text/css"&gt;&lt;/link&gt;
&lt;link href="http://www.milehighcode.com/Stylesheets/shCore.css" rel="stylesheet" type="text/css"&gt;&lt;/link&gt;
&lt;br /&gt;
This week we learned about Clojure's multimethods, which is Chapter 4 in Amit's book &lt;a href="http://www.manning.com/rathore/" target="_blank"&gt;Clojure in Action&lt;/a&gt;. In this chapter we learn about polymorphism, the use of single dispatch in other languages, and the concept of multiple dispatch and then Clojure's multimethods.&lt;br /&gt;
&lt;br /&gt;
So after reading the chapter I felt I needed to get really grounded with polymorphism. The book refers to the Cardelli/Wegner paper, linked below, but I also found this article by Dan Umbarger as a great way to get my mind in gear for thinking about types and polymorphism which connected new synapses readying me to learn more about the concept of dispatching.&lt;br /&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="http://apcentral.collegeboard.com/apc/public/repository/Intro_to_Polymorphismin_Umbargar.pdf" target="_blank"&gt;AP Computer Science&amp;nbsp;Curriculum Module: An Introduction to Polymorphism in Java&lt;/a&gt;&amp;nbsp;Dan Umbarger (2008)&lt;/li&gt;
&lt;li&gt;&lt;a href="http://lucacardelli.name/Papers/OnUnderstanding.pdf" target="_blank"&gt;On Understanding Types,&amp;nbsp;Data Abstraction, and Polymorphism&lt;/a&gt;&amp;nbsp;Luca Cardelli &amp;amp; Peter Wegner (1985)&lt;/li&gt;
&lt;/ul&gt;
&lt;br /&gt;
Then I decided to look into the visitor pattern some more and see if I could get a better understanding of why you might use dispatch in a program. I found these papers and articles contained helpful information.&lt;br /&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="http://sourcemaking.com/design_patterns/visitor" target="_blank"&gt;Visitor Design Pattern&lt;/a&gt;&amp;nbsp;(Sourcemaking.com)&lt;/li&gt;
&lt;li&gt;&lt;a href="http://objectmentor.com/resources/articles/visitor.pdf" target="_blank"&gt;Visitor&amp;nbsp;&lt;/a&gt;&amp;nbsp;Robert C. Martin (2002)&lt;/li&gt;
&lt;li&gt;&lt;a href="http://goo.gl/rXyQl" target="_blank"&gt;Essence of the Visitor Pattern&lt;/a&gt;&amp;nbsp;Jens Palsberg &amp;amp; C. Barry Jay (2007)&lt;/li&gt;
&lt;/ul&gt;
&lt;br /&gt;
After reading all this I appreciate the simplicity with which Clojure's multimethods handle multiple dispatch, but I'll admit, I'm not sure when to make the design decision to implement them, so I've still got a little more learning to do.&lt;br /&gt;
&lt;br /&gt;
This week Amit had us implement a fantasy banking system with some crazy specs and his example code is posted on &lt;a href="http://pastie.org/3044834" target="_blank"&gt;Pastie.org&lt;/a&gt;. When I have time I'll come back to this post to dissect his code and get a better understanding of the code.&lt;br /&gt;
&lt;br /&gt;
While I was able to implement my own version of a half-solution this week, I still did not complete the assignment and had a lot of difficulties. It definitely was easier than the first assignment though as I'm getting more familiar with Clojure. Here is what I've come up with thus far:&lt;br /&gt;
&lt;br /&gt;
&lt;pre class="brush: clojure"&gt;(def coin [:heads :tails])
(def acct-type [:checking :savings :moneymarket])
(def overdraft-acct {:overdraft {:balance 100000 :type :overdraft}})

(defn randomize [objects]
    (rand-nth objects))

(defn coin-flip []
    (randomize coin))

(defn rand-transaction []
    (rand-nth [:withdrawal :deposit]))

(defn create-accounts [n]
  (reduce (fn [mymap mykey] (assoc mymap mykey {:balance 500 :type (randomize acct-type) :transactions 0})) 
                      {} 
                      (for [x (range 1 (+ n 1))] (str "account" x) )))

(defn get-transaction []
  (randomize (filter #(zero? (mod % 10))
     (take (- 400 1) (iterate inc 100)))))

(defn get-account [n] 
  (randomize (keys (create-accounts n))))

(defn interest-amount [percentage acct]
  (float (* 0.01 percentage (acct :balance))))

(defmulti apply-interest :type)

(defmethod apply-interest :checking [acct]
  (interest-amount 0.02 acct))
(defmethod apply-interest :savings [acct]
  (interest-amount 0.04 acct))
(defmethod apply-interest :moneymarket [acct]
  (interest-amount 0.06 acct))

(defn update-trans [accts acct]
  (update-in accts [acct :transactions] + 1))

(defn check-interest-trans [accts acct]
  (let [myaccts (update-trans accts acct)]
  (if (= 0 (mod (get-in accts [acct :transactions]) 2))
      (update-in myaccts [acct :balance] * (apply-interest (myaccts acct)))
     myaccts)))

(defn process-trans [accts n]
  (let [acct (get-account n)
        myaccts (check-interest-trans accts acct)
        trans-type (rand-transaction)]
    (cond 
      (= :withdrawal trans-type)(update-in myaccts [acct :balance] - (get-transaction))
      (= :deposit trans-type) (update-in myaccts [acct :balance] + (get-transaction))
      :default (println "no match"))
      ))

(defn run-fantasy [n]
  (let [acct-count n]
             (loop [accts (create-accounts n)
                    transactions (* n 100)]
                     (if (= 0 transactions)
                       (println "\nloop done")
                       (do
                         (dotimes [x n]
                           (if (&amp;gt; (get-in accts [(str "account" (+ x 1)) :transactions]) 0)
                           (print
                             (str "\n trans" transactions ", acct" (+ x 1)": ")
                             (str "bal: ")(get-in accts [(str "account" (+ x 1)) :balance])
                             (str "tot-trans: ")(get-in accts [(str "account" (+ x 1)) :transactions]))))
                         (recur (process-trans accts acct-count) (dec transactions)))))))
               
(run-fantasy 10)
&lt;/pre&gt;
&lt;br /&gt;
Stay tuned for next week:&lt;i&gt; Jave interop and Concurrency, &lt;/i&gt;Chapters 5 &amp;amp; 6...
&lt;script type="text/javascript"&gt;
     SyntaxHighlighter.all()
&lt;/script&gt;&lt;img src="http://feeds.feedburner.com/~r/milehighcode/Fefh/~4/-GW5DMeXFk0" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://blog.milehighcode.com/feeds/5404427889888398191/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://blog.milehighcode.com/2011/12/amit-rathores-introduction-to-clojure_21.html#comment-form" title="2 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/7817780699562333449/posts/default/5404427889888398191?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/7817780699562333449/posts/default/5404427889888398191?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/milehighcode/Fefh/~3/-GW5DMeXFk0/amit-rathores-introduction-to-clojure_21.html" title="Amit Rathore's Introduction to Clojure: Week 2" /><author><name>Joshua Ayson</name><uri>https://plus.google.com/102042414478549404260</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh4.googleusercontent.com/-PXgvIyzXdhw/AAAAAAAAAAI/AAAAAAAABY4/a3eROUodr-g/s512-c/photo.jpg" /></author><thr:total>2</thr:total><feedburner:origLink>http://blog.milehighcode.com/2011/12/amit-rathores-introduction-to-clojure_21.html</feedburner:origLink></entry><entry gd:etag="W/&quot;AkEDR3o9eyp7ImA9WhRWFkw.&quot;"><id>tag:blogger.com,1999:blog-7817780699562333449.post-3613440060100490734</id><published>2011-12-19T21:04:00.000-07:00</published><updated>2012-01-03T12:24:36.463-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2012-01-03T12:24:36.463-07:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="trends" /><category scheme="http://www.blogger.com/atom/ns#" term="lifehacks" /><category scheme="http://www.blogger.com/atom/ns#" term="iphone" /><title>My Personal Information Management System</title><content type="html">The reason for writing this post is to share my current implementation of a system I use to simplify my digital life wishing to help others and hoping to offer a shortcut to the process of getting things done. The system may seem complicated, and indeed took me years to refine, but the methods are now second nature for me. I continue to evaluate the system and look for improvements and am curious what others are employing successfully in order to manage their daily dose of information.&lt;br /&gt;
&lt;br /&gt;
Let me start with a bit of personal history before I go into the system itself. My first digital personal information management (PIM) tool was a Palm III, which I bought sometime in 1998 for around $399.&amp;nbsp;The Palm platform served my very well for many years. To be able to have your contacts synced to your mobile, make calls, send emails, that was the future, and is today's reality, with prolific smartphone markets and many free network services.&lt;br /&gt;
&lt;br /&gt;
The Palm brought organization and clarity to calendaring, contacts, tasks and notes that previously were in the day planner. Those four areas are the cornerstone of the system I use, along with the concepts that were outlined in David Allen's &lt;a href="http://www.amazon.com/Getting-Things-Done-Stress-Free-Productivity/dp/0142000280" target="_blank"&gt;Getting Things Done&lt;/a&gt; (GTD) book.&lt;br /&gt;
&lt;br /&gt;
My first accomplishment using Allen's GTD concepts was to bring my email inbox down to zero messages. I have always kept my personal and work inboxes separate and it took me about a year to get down to the zero mark for both. In the beginning of my GTD practices the inbox would occasionally jump back up to several hundred messages. These setbacks would set things off track for a little while, but I stuck to the method of taking time to get things under control and &amp;nbsp;always managed to make &amp;nbsp;my way back to zero after the first time.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td&gt;&lt;a href="http://2.bp.blogspot.com/-0o1HASj4fjQ/Tu_0GCYFhNI/AAAAAAAAAHE/5Bwa-jcRhxQ/s1600/gmailinbox.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"&gt;&lt;img border="0" height="251" src="http://2.bp.blogspot.com/-0o1HASj4fjQ/Tu_0GCYFhNI/AAAAAAAAAHE/5Bwa-jcRhxQ/s640/gmailinbox.png" width="640" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class="tr-caption" style="font-size: 13px;"&gt;My Gmail Inbox&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;br /&gt;
The discipline of getting my inbox to zero required practice, but this was the training I needed to begin seriously gaining control over the information flood. If I could manage data flow in one area, I knew I could repeat the process, thereby freeing up more of my time, which the true gold.&lt;br /&gt;
&lt;br /&gt;
I've now spent over &amp;nbsp;a decade finding ways which I think increase my productivity, simplify my life, and help me stay more in balance. Simplifying things in your digital life has a high reward potential if you are willing to put in the work upfront.&lt;br /&gt;
&lt;br /&gt;
After years of work keeping my inbox as close to zero as possible, the GTD practice has become rather effortless. Rarely do I have more than 25 emails in my work or personal inbox, and like a well-trained muscle, the process of purging is not painful, particularly since there is nothing "out of control". I now enjoy being able to keep up on not getting behind and flexing new muscles on other problems.&lt;br /&gt;
&lt;br /&gt;
In this post I will share the tools I am using today and how I leverage them to make GTD concepts work for me. This flowchart from Francis Heylighen and Clément Vidal's, "&lt;a href="http://cogprints.org/6289/1/Heylighen-Vidal-GTD-Science.pdf" target="_blank"&gt;Getting Things Done: The Science behind Stress-Free Productivity&lt;/a&gt;" research paper, elegantly illustrates the information capturing process.&lt;br /&gt;
&lt;br /&gt;
&lt;table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style="text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/-0XHTiyivilI/Tu_bPSSHIcI/AAAAAAAAAG8/kQVJsGO2Jrs/s1600/Heylighen-Vidal-GTD-Science.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"&gt;&lt;img border="0" src="http://3.bp.blogspot.com/-0XHTiyivilI/Tu_bPSSHIcI/AAAAAAAAAG8/kQVJsGO2Jrs/s1600/Heylighen-Vidal-GTD-Science.png" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class="tr-caption" style="text-align: center;"&gt;&lt;span style="font-size: small; text-align: -webkit-auto;"&gt;Francis Heylighen and Clément Vidal's GTD Flowchart&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;br /&gt;
Here are the&amp;nbsp;tools which I use to catch the many inputs in my life and get the streams organized as quickly as possible without becoming overwhelmed with data.
&lt;br /&gt;
&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;br /&gt;
&lt;b&gt;The Google Trifecta: Gmail/contacts, Gcal, Gdocs&amp;nbsp;&lt;/b&gt;&lt;br /&gt;
Google's key concept for organization are views. Without sensible views into your data you have no organization. Views are similar to folders or containers, but the beauty of a view is that an object can live in more than one place at a time and that the view is virtual. For me the key to organizing my email is to have a simple, fairly flat, folder structure, which I can easily sort mail into, without thinking about very much.&lt;br /&gt;
&lt;br /&gt;
As you'll come to see my method for organizing data involves the&amp;nbsp;hierarchical&amp;nbsp;organization of the folders, views and groupings I'm using, which ease archival and retrieval of data. The structures have important differences to me, based on their application and context. By seeing my hierarchies perhaps you might be able to shortcut what has taken me multiple refactors and many years to perfect.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Email&lt;/b&gt;&lt;br /&gt;
My high level email folder structure looks like this:&lt;br /&gt;
&lt;ul&gt;
&lt;li&gt;acquaintance&lt;/li&gt;
&lt;li&gt;biz&lt;/li&gt;
&lt;li&gt;diy&lt;/li&gt;
&lt;li&gt;fam&lt;/li&gt;
&lt;li&gt;friends&lt;/li&gt;
&lt;li&gt;personal&lt;/li&gt;
&lt;li&gt;spirit&lt;/li&gt;
&lt;li&gt;sys&lt;/li&gt;
&lt;/ul&gt;
&lt;div&gt;
As a rule of thumb each contact or business I correspond with gets their own folder. I generally only have one level of&amp;nbsp;sub folders in my email. This gives me all the flexibility I need to easily archive messages and find them when I need them later on.&lt;br /&gt;
&lt;br /&gt;
I use Gmail keystroke features, it is easy to jump to folders using the "g+l" quick keys. In case you don't use keystrokes, I recommend turning them on where possible and learning at a minimum how to bring up the help menu, so you can begin to replace your most used clicks with keystrokes. (&lt;i&gt;add this as a task if you need to&lt;/i&gt;)&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;b&gt;Calendaring&lt;/b&gt;&lt;/div&gt;
&lt;div&gt;
I use the following Google Calendar sharing setup to help me organize and separate the views for appointments and events in my life. When I talk about permissions, I am referring to the permission my spouse and I find work well for us. You likely have similar people in your life for which you can create a shared calendaring model to ease the burden of tracking time and appointments.&lt;/div&gt;
&lt;div&gt;
&lt;ul&gt;
&lt;li&gt;Main Calendar (read-only to spouse)&lt;/li&gt;
&lt;li&gt;Spouse's shared main calendar (read-only to me)&lt;/li&gt;
&lt;li&gt;Joint calendar with my spouse (both can edit)&lt;/li&gt;
&lt;li&gt;Well-being&lt;/li&gt;
&lt;li&gt;Maintenance (both can edit)&lt;/li&gt;
&lt;li&gt;Toodledo iCal (manually added iCal feed from Toodledo)&lt;/li&gt;
&lt;li&gt;Contacts' birthdays (added from Google special calendars)&lt;/li&gt;
&lt;li&gt;Holidays (added from Google special calendars)&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;div&gt;
My main calendar, syncs with my work outlook calendar using &lt;a href="http://support.google.com/bin/answer.py?hl=en&amp;amp;answer=1086914" target="_blank"&gt;Google Calendar Sync&lt;/a&gt;. The well-being calendar records activities I like to track like exercise, meditation, journaling and things that are good for my well-being. The maintenance calendar is a place to put things that re-occur around the house, subscriptions, and yearly reminders.Given certain life circumstances I have some calendars come and go based on my tracking needs. It is great to be able to turn on and off any of the calendars, to see just the amount of information I need to see.&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style="text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/-not-IsdiavA/Tu_0zLz2CeI/AAAAAAAAAHM/EX5B-_6Ygnw/s1600/calendar.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"&gt;&lt;img border="0" height="416" src="http://1.bp.blogspot.com/-not-IsdiavA/Tu_0zLz2CeI/AAAAAAAAAHM/EX5B-_6Ygnw/s640/calendar.png" width="640" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class="tr-caption" style="text-align: center;"&gt;My Calendar(s)&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;div&gt;
&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/div&gt;
&lt;div&gt;
&lt;b&gt;Contacts&lt;/b&gt;&lt;/div&gt;
&lt;div&gt;
Here are my high level correspondence contact groups. If you have two monitors you may find it handy to open another Gmail window and switch it to Contacts, and have this on your second monitor if you are working on updating contacts and need to also use your email window.&lt;/div&gt;
&lt;div&gt;
&lt;ul&gt;
&lt;li&gt;Acquaintance&lt;/li&gt;
&lt;li&gt;Automated&lt;/li&gt;
&lt;li&gt;Business&lt;/li&gt;
&lt;li&gt;Family&lt;/li&gt;
&lt;li&gt;Friends&lt;/li&gt;
&lt;li&gt;Medical&lt;/li&gt;
&lt;li&gt;Pastlife&lt;/li&gt;
&lt;li&gt;Groups&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;div&gt;
Three of the above groups are further broken out, using the following naming conventions:&lt;/div&gt;
&lt;div&gt;
&lt;ul&gt;
&lt;li&gt;Friends + "Context" (e.g. FriendsWork, FriendsSoccer)&lt;/li&gt;
&lt;li&gt;Family + "Location/Familyname"&lt;/li&gt;
&lt;li&gt;Groups + "Groupname"&lt;/li&gt;
&lt;/ul&gt;
&lt;div&gt;
I use the "automated" category for account linked service email accounts (e.g. Evernote, Blogger, Toodledo) which create an entry when a message is sent to that inbox.&amp;nbsp;The "pastlife" category is for contact information I want to hold onto, but don't really plan on actively using. I could let these go if I really needed to, but there aren't that many items in that folder.&lt;/div&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
Every now and again I import my Facebook contacts into my Gmail Contacts. To do so, you can Import your Facebook contacts into Yahoo, export from yahoo to CSV, and finally import this back into &amp;nbsp;to Google Contacts. It's kind of a pain, but I don't do it that often and allows me to keep address and phone information up-to-date, that I might not necessarily have otherwise.&lt;br /&gt;
&lt;br /&gt;
It is good practice to perform maintenance on your contacts. Using the Google "merge contacts" feature and assigning new contacts into their correct folders are examples of what I do to keep things tidy. When you are done cleaning house, perform an export to get a backup of your contacts and store this file in an encrypted volume in the cloud -- more on this below! By the way this is an example of a task I have in my maintenance calendar, which recurs each year.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Gdocs&lt;/b&gt;&lt;br /&gt;
Although I mostly use dropbox to store files in the cloud, Google Docs is ideal for collaborative work.&lt;/div&gt;
&lt;br /&gt;
&lt;b&gt;Task Management: Maximizing &lt;a href="http://www.toodledo.com/" target="_blank"&gt;Toodledo&lt;/a&gt;&amp;nbsp;for GTD&lt;/b&gt;&lt;br /&gt;
The key for managing my individual tasks is organizing them into contexts and folders and give them each a &amp;nbsp;status, priority and sometimes a due date. I add a&amp;nbsp;Toodledo iCal feed to my Google Calendars, so any tasks with dates will show up. I like Toodledo, because it syncs well with smartphone application, Pocket Informant, which I have been using since the early days with my Palm Pilot. It is my favorite mobile app interface into my tasks and also combines the Gcal information into its interface.&lt;br /&gt;
&lt;br /&gt;
&lt;table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style="text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/-4TaNFPScxGo/Tu_1Qqp1HuI/AAAAAAAAAHU/blHnKREgk2g/s1600/toodledo.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"&gt;&lt;img border="0" height="225" src="http://1.bp.blogspot.com/-4TaNFPScxGo/Tu_1Qqp1HuI/AAAAAAAAAHU/blHnKREgk2g/s640/toodledo.png" width="640" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class="tr-caption" style="text-align: center;"&gt;Toodledo Tasks&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;br /&gt;
My Toodledo&amp;nbsp;&lt;b&gt;contexts&lt;/b&gt;&amp;nbsp;are as follows:&lt;br /&gt;
&lt;ul&gt;
&lt;li&gt;Communications&lt;/li&gt;
&lt;li&gt;Home&lt;/li&gt;
&lt;li&gt;Online&lt;/li&gt;
&lt;li&gt;Out &amp;amp; About&lt;/li&gt;
&lt;li&gt;Planning&lt;/li&gt;
&lt;li&gt;Tracking&lt;/li&gt;
&lt;li&gt;Work&lt;/li&gt;
&lt;li&gt;Workshop&lt;/li&gt;
&lt;li&gt;Yard&lt;/li&gt;
&lt;/ul&gt;
&lt;br /&gt;
My Toodledo&amp;nbsp;&lt;b&gt;folders &lt;/b&gt;are fairly granular and include:&lt;br /&gt;
&lt;ul&gt;
&lt;li&gt;Various names of work projects&lt;/li&gt;
&lt;li&gt;Things to checkout&lt;/li&gt;
&lt;li&gt;Audio&lt;/li&gt;
&lt;li&gt;Call&lt;/li&gt;
&lt;li&gt;Email&lt;/li&gt;
&lt;li&gt;Finance&lt;/li&gt;
&lt;li&gt;Habits&lt;/li&gt;
&lt;li&gt;Info&lt;/li&gt;
&lt;li&gt;Letter&lt;/li&gt;
&lt;li&gt;Maintenance&lt;/li&gt;
&lt;li&gt;Medical&lt;/li&gt;
&lt;li&gt;Blog&lt;/li&gt;
&lt;li&gt;Music&lt;/li&gt;
&lt;li&gt;Notes (I give my notes "-1 priority", so they are not mixed in with actual tasks)&lt;/li&gt;
&lt;li&gt;Personal&lt;/li&gt;
&lt;li&gt;Reading&lt;/li&gt;
&lt;li&gt;Remodeling&lt;/li&gt;
&lt;li&gt;Spouse&lt;/li&gt;
&lt;li&gt;Tech&lt;/li&gt;
&lt;li&gt;Travel&lt;/li&gt;
&lt;li&gt;Video&lt;/li&gt;
&lt;/ul&gt;
&lt;br /&gt;
My Toodledo&amp;nbsp;&lt;b&gt;status &lt;/b&gt;fields, resemble classical GTD states:&lt;br /&gt;
&lt;ul&gt;
&lt;li&gt;Next Action&lt;/li&gt;
&lt;li&gt;Active&lt;/li&gt;
&lt;li&gt;Planning&lt;/li&gt;
&lt;li&gt;Delegated&lt;/li&gt;
&lt;li&gt;Waiting&lt;/li&gt;
&lt;li&gt;Hold&lt;/li&gt;
&lt;li&gt;Postponed&lt;/li&gt;
&lt;li&gt;Someday&lt;/li&gt;
&lt;li&gt;Canceled&lt;/li&gt;
&lt;/ul&gt;
I prefer to sort my tasks first by Context, then by folder, and finally using Toodledo's "automatic"&amp;nbsp;setting, which means dated items first, followed by priority. Sometimes I sort by Folder first, or Priority, ToodleDo makes it easy to change how you look at your data.&lt;br /&gt;
&lt;br /&gt;
I also recommend turning on the create a task via email feature. To do so click on the "Tools" menu and select "More". Then go into the "Email Import" section. Make sure the checkbox is checked, and then click the "Save Changes" button. This will enable email access to your account. Add this email address to your contacts and also save it as a auto-complete for your mobile phone so you can just type a few letters and the account will be automatically completed.&lt;br /&gt;
&lt;br /&gt;
To add a task, send an email to your secret Toodledo email address with the task in the subject. In addition to the name of the task, you can also set the priority, due-date, folder, context and other values using a special syntax. For example:&lt;br /&gt;
&lt;blockquote class="tr_bq"&gt;
Folder - To set the folder use the * symbol and then type the name of your folder.&lt;br /&gt;
Context - To set the context use the @ symbol and then type the name of your context.&lt;/blockquote&gt;
That is all I do to customize Toodledo, and I just make sure things trickle into the structure from email, voice notes, and photos and are tagged at a minimum with Folder, Context and Status. As a side note I like to leave newly created tasks with no status, since they then appear on my mobile Pocket Informant in the inbox folder. New adds, which I've not yet categorized are also easier to find this way.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Paper &amp;amp; Mail&lt;/b&gt;&lt;br /&gt;
For all of my incoming paper and mail items, I carry around a plastic folder, with dividers, which I've used for many years.&lt;br /&gt;
&lt;br /&gt;
&lt;table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style="text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/-ZZR3lyqB7v8/TwNLsMrL3-I/AAAAAAAAABQ/EKkm8mNi9Jk/s1600/bluefolder.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"&gt;&lt;img border="0" height="240" src="http://1.bp.blogspot.com/-ZZR3lyqB7v8/TwNLsMrL3-I/AAAAAAAAABQ/EKkm8mNi9Jk/s640/bluefolder.jpg" width="640" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class="tr-caption" style="text-align: center;"&gt;My Mail and Paper Organizer&amp;nbsp;&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;br /&gt;
It has the following categories, which I revise whenever I find one not being used and I need something new:&lt;br /&gt;
&lt;br /&gt;
&lt;ul&gt;
&lt;li&gt;Inbox&lt;/li&gt;
&lt;li&gt;Next Actions&lt;/li&gt;
&lt;li&gt;Someday&lt;/li&gt;
&lt;li&gt;To Scan&lt;/li&gt;
&lt;li&gt;Waiting&lt;/li&gt;
&lt;li&gt;Projects (several of these)&lt;/li&gt;
&lt;li&gt;To Be Filed&lt;/li&gt;
&lt;/ul&gt;
&lt;div&gt;
I keep a separate file drawer at home, which I go through yearly to weed out old stuff. I've started to scan some things from my file drawer and organize those files into my Dropbox or Evernote folders. If it's important I'll put it into Dropbox, since I have more control over those files and can back them up, otherwise and Evernote article will work.&lt;/div&gt;
&lt;br /&gt;
&lt;b&gt;&lt;a href="http://www.evernote.com/" target="_blank"&gt;Evernote&lt;/a&gt;&lt;/b&gt;&lt;br /&gt;
I've just recently added Evernote to my bag of tricks and have not settled in yet on how I will use it. For now it has been a handy way to take pictures from my smartphone, dictate using Dragon Dictate and capture information via email, or record audio clips, which all of syncs to all of the systems I use.&lt;br /&gt;
&lt;br /&gt;
I've begun storing my dream journal in Evernote and it seems like a good platform for capturing multimedia rich thought streams. I go through my Evernote notebook to process items I've captured much like I do for email. Some things I do just leave in Evernote, since it has nice organization capabilities.&lt;br /&gt;
&lt;br /&gt;
I'm not ready to put my important data files into Evernote, since I like to have those in their raw data format for security and backup purposes. Although you can do a backup of your Evernote notebooks, you'd have to restore it back into Evernote and can't get directly at the files within. My Evernote setup will likely be used to get media rich information on all of my systems, which I can then properly file into a more traditional file based location (like my dropbox folders).&lt;br /&gt;
&lt;br /&gt;
I'd also recommend using your Evernote email account if you like submitting things from your mobile. I have the account added to my contacts and an&amp;nbsp;auto-complete&amp;nbsp;for it on my mobile phone, so when I type "je" the address is auto-propagated.&lt;br /&gt;
&lt;br /&gt;
&lt;blockquote class="tr_bq"&gt;
1. Select a destination notebook for your email by adding @[notebook name] to the end of the subject line.&lt;br /&gt;
2. Add tags to your note by typing &amp;nbsp;#[tag name] at the end of the subject line. This feature works with existing tags in your account.&lt;br /&gt;
3. To designate a destination notebook and add tags, be sure to list the notebook name before the tags.&lt;/blockquote&gt;
&lt;blockquote class="tr_bq"&gt;
An example subject:&lt;br /&gt;
Fwd: Recipe for Bouillabaisse @Recipes #soup #fish #french&lt;/blockquote&gt;
&lt;br /&gt;
&lt;table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style="text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/-Sj88fE4Vo58/Tu_38aYqq8I/AAAAAAAAAHc/aPtR87mJV70/s1600/evernote.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"&gt;&lt;img border="0" height="273" src="http://3.bp.blogspot.com/-Sj88fE4Vo58/Tu_38aYqq8I/AAAAAAAAAHc/aPtR87mJV70/s640/evernote.png" width="640" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class="tr-caption" style="text-align: center;"&gt;My Evernote Notebook&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;br /&gt;
&lt;b&gt;&lt;a href="https://www.dropbox.com/" target="_blank"&gt;Dropbox&lt;/a&gt;&lt;/b&gt;&lt;br /&gt;
I use dropbox to organize my smaller files. I have a Western Digital My Book to store larger personal files.&lt;br /&gt;
&lt;br /&gt;
Here are the folders for my Dropbox accounts, which I try to keep fairly flat and unnested:&lt;br /&gt;
&lt;ul&gt;
&lt;li&gt;_safe (contains the following &lt;a href="http://www.truecrypt.org/" target="_blank"&gt;TrueCrypt &lt;/a&gt;encrypted volumes: data.tc, small.tc, journals.tc, pim.tc)&lt;/li&gt;
&lt;li&gt;astrology&lt;/li&gt;
&lt;li&gt;carving&lt;/li&gt;
&lt;li&gt;consulting&lt;/li&gt;
&lt;li&gt;cygwin&lt;/li&gt;
&lt;li&gt;fitness&lt;/li&gt;
&lt;li&gt;for sale&lt;/li&gt;
&lt;li&gt;genealogy&lt;/li&gt;
&lt;li&gt;shopping&lt;/li&gt;
&lt;li&gt;insurance&lt;/li&gt;
&lt;li&gt;jobsearch&lt;/li&gt;
&lt;li&gt;letters&lt;/li&gt;
&lt;li&gt;lists&lt;/li&gt;
&lt;li&gt;network&lt;/li&gt;
&lt;li&gt;recipes&lt;/li&gt;
&lt;li&gt;papers&lt;/li&gt;
&lt;li&gt;programming&lt;/li&gt;
&lt;li&gt;spiritual&lt;/li&gt;
&lt;li&gt;templates-forms-spreadsheets&lt;/li&gt;
&lt;li&gt;travel&lt;/li&gt;
&lt;li&gt;web&lt;/li&gt;
&lt;li&gt;work&lt;/li&gt;
&lt;/ul&gt;
&lt;div&gt;
Encryption is important to me for the safety of my data. I keep a large &lt;a href="http://www.truecrypt.org/" target="_blank"&gt;TrueCrypt &lt;/a&gt;volume with data that rarely changes since the entire volume has to sync if you make a change. Within the "_safe" folder I have a small volume, which contains spreadsheets with passwords and so forth. &amp;nbsp;A third TrueCrypt volume is used for private journals.&lt;br /&gt;
&lt;br /&gt;
To use TrueCrypt in with Dropbox it is important to change the TrueCrypt setting to allow the synchronization of a volume, which will never change its byte size, but will have a new date. The change you need to make is to uncheck "preserve modification timestamp of file containers" preference.&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
And here are my WD MyBook folders, which have pretty deep nesting and many sub-categories for fine grained separation of a lot of material. By the way the WD MyBook is a network appliance which I can access from all the systems behind my wireless router. I have a reminder in my maintenance calendar to make a backup of this data quarterly, along with what I store in the cloud.&lt;br /&gt;
&lt;br /&gt;
My large volume folders on my personal network share quickly go from broad to specific topics and I've made great effort to continually reduce categories to the minimum needed and creating additional &amp;nbsp;sub-folders where I want a better delineation of topics.&lt;br /&gt;
&lt;ul&gt;
&lt;li&gt;audio&lt;/li&gt;
&lt;li&gt;binaries&lt;/li&gt;
&lt;li&gt;print-media&lt;/li&gt;
&lt;li&gt;videos&lt;/li&gt;
&lt;/ul&gt;
&lt;b&gt;Bookmarks&lt;/b&gt;&lt;br /&gt;
As I like to take in a lot of information on the web, it is important that I organize and update my bookmarks. I use&amp;nbsp;&lt;a href="http://www.xmarks.com/" target="_blank"&gt;Xmarks&lt;/a&gt;&amp;nbsp;for bookmark&amp;nbsp;synchronization&amp;nbsp;across all multiple systems, platforms and browsers. I primarily employ Chrome for browsing, IE for a few banking sites, and Firefox for its bookmark syncing application that runs on my mobile device.&lt;br /&gt;
&lt;br /&gt;
Another thing I like to do is sort all of my bookmarks. I do this in Firefox using Andy Halford's &lt;a href="http://www.andyhalford.com/sortplaces/index.html" target="_blank"&gt;sort places &lt;/a&gt;add-on.&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://3.bp.blogspot.com/-WBMcwYfJsZ8/TvD930HGsvI/AAAAAAAAAHk/UlL82PeDGv0/s1600/firefoxsortallbookmarks.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="98" src="http://3.bp.blogspot.com/-WBMcwYfJsZ8/TvD930HGsvI/AAAAAAAAAHk/UlL82PeDGv0/s640/firefoxsortallbookmarks.jpg" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
I keep my bookmarks within a hierarchy on the bookmarks toolbar. Here is what that that top-level hierarchy looks like:&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://4.bp.blogspot.com/-G26ty4UE5bQ/TvD95mL9B6I/AAAAAAAAAHs/ePKsr3yfsjY/s1600/bookmarkstoolbar.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="22" src="http://4.bp.blogspot.com/-G26ty4UE5bQ/TvD95mL9B6I/AAAAAAAAAHs/ePKsr3yfsjY/s640/bookmarkstoolbar.jpg" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;b&gt;Code&lt;/b&gt;&lt;br /&gt;
&lt;div&gt;
For storing my code, I use two services, which offer free versioning services.&lt;br /&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="http://beanstalkapp.com/" target="_blank"&gt;Beanstalk&lt;/a&gt;&amp;nbsp;- free 100Mb private SVN repo&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/" target="_blank"&gt;GitHub&lt;/a&gt;&amp;nbsp;- free public Git repo&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;b&gt;Mobile Tools&lt;/b&gt;&lt;br /&gt;
These are the tools I use on my iPhone to look into the world above as well as channel information into the tools I've mentioned thus far. The only things I can't get to at the moment, are my TrueCrypt encrypted volumes.&lt;br /&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="http://www.webis.net/" target="_blank"&gt;Pocket Informant&lt;/a&gt; (Toodledo + Gcal)&lt;/li&gt;
&lt;li&gt;&lt;a href="http://itunes.apple.com/us/app/evernote/id281796108?mt=8" target="_blank"&gt;Evernote&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://itunes.apple.com/us/app/dropbox/id327630330?mt=8" target="_blank"&gt;Dropbox&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://itunes.apple.com/us/app/fast-contacts/id286543435?mt=8" target="_blank"&gt;FastContacts&lt;/a&gt;&amp;nbsp;(better than the default iPhone contacts)&lt;/li&gt;
&lt;li&gt;&lt;a href="http://itunes.apple.com/us/app/documents-to-go-office-suite/id317117961?mt=8" target="_blank"&gt;Documents To Go&lt;/a&gt;&amp;nbsp;(useful for working with docs in Gdocs)&lt;/li&gt;
&lt;li&gt;&lt;a href="http://itunes.apple.com/us/app/goodreader-for-iphone/id306277111?mt=8" target="_blank"&gt;GoodReader&lt;/a&gt;&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;access/download docs from Dropbox, Gdocs, Windows shares, FTP and the web&lt;/li&gt;
&lt;/ul&gt;
&lt;/ul&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="http://itunes.apple.com/us/app/dragon-dictation/id341446764?mt=8" target="_blank"&gt;Dragon Dictate&lt;/a&gt;&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;Create iPhone abbreviations, to your automated email addresses for services like&amp;nbsp;Toodledo, Evernote, and Gmail, as well as your personal email. That way you can dictate and send to those addresses fairly easily. (I don't have Siri!)&lt;/li&gt;
&lt;/ul&gt;
&lt;/ul&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="http://itunes.apple.com/us/app/firefox-home/id380366933?mt=8" target="_blank"&gt;Firefox Home&lt;/a&gt;&amp;nbsp;(This allows me to get to my latest bookmarks. You can set this app to use Safari as the default browser.)&lt;/li&gt;
&lt;/ul&gt;&lt;img src="http://feeds.feedburner.com/~r/milehighcode/Fefh/~4/byPzjMV2nwY" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://blog.milehighcode.com/feeds/3613440060100490734/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://blog.milehighcode.com/2011/12/my-personal-information-management.html#comment-form" title="9 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/7817780699562333449/posts/default/3613440060100490734?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/7817780699562333449/posts/default/3613440060100490734?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/milehighcode/Fefh/~3/byPzjMV2nwY/my-personal-information-management.html" title="My Personal Information Management System" /><author><name>Joshua Ayson</name><uri>https://plus.google.com/102042414478549404260</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh4.googleusercontent.com/-PXgvIyzXdhw/AAAAAAAAAAI/AAAAAAAABY4/a3eROUodr-g/s512-c/photo.jpg" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://2.bp.blogspot.com/-0o1HASj4fjQ/Tu_0GCYFhNI/AAAAAAAAAHE/5Bwa-jcRhxQ/s72-c/gmailinbox.png" height="72" width="72" /><thr:total>9</thr:total><feedburner:origLink>http://blog.milehighcode.com/2011/12/my-personal-information-management.html</feedburner:origLink></entry><entry gd:etag="W/&quot;AkQNSH8zfip7ImA9WhRbFks.&quot;"><id>tag:blogger.com,1999:blog-7817780699562333449.post-6116309323023882803</id><published>2011-12-13T13:32:00.002-07:00</published><updated>2012-02-07T19:33:19.186-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2012-02-07T19:33:19.186-07:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="media" /><category scheme="http://www.blogger.com/atom/ns#" term="lists" /><title>My Favorite Geek Documentary Films</title><content type="html">When my wife goes out of town I like to watch geek documentaries. I'd like to share some of my favorites, which are freely available for streaming. Someday I'd like to be a producer!&lt;br /&gt;
&lt;br /&gt;
&lt;table cellpadding="0" cellspacing="0" class="tr-caption-container" style="float: right; margin-left: 1em; text-align: right;"&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style="text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/-id1doOLrdOo/TzHen0YdPWI/AAAAAAAAALg/pHHYcDULaQU/s1600/cheeseman.jpg" imageanchor="1" style="clear: right; margin-bottom: 1em; margin-left: auto; margin-right: auto;"&gt;&lt;img border="0" height="274" src="http://3.bp.blogspot.com/-id1doOLrdOo/TzHen0YdPWI/AAAAAAAAALg/pHHYcDULaQU/s320/cheeseman.jpg" width="320" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class="tr-caption" style="text-align: center;"&gt;Yes, that is&amp;nbsp;Parmesan.&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="http://topdocumentaryfilms.com/get-lamp-text-adventure-documentary/" target="_blank"&gt;Get Lamp: The Text Adventure Documentary&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://topdocumentaryfilms.com/triumph-nerds-rise-accidental-empires/" target="_blank"&gt;Triumph of the Nerds: The Rise of Accidental Empires&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://topdocumentaryfilms.com/nerds-brief-history-internet/" target="_blank"&gt;Nerds 2.0.1: A Brief History of the Internet&lt;/a&gt;&amp;nbsp;(the sequel to Triumph of the Nerds)&lt;/li&gt;
&lt;li&gt;&lt;a href="http://video.google.com/videoplay?docid=-4729348985218842392" target="_blank"&gt;PBS Video Game Revolution&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.cosmolearning.com/documentaries/bbs-the-documentary-809/" target="_blank"&gt;BBS: The Documentary&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.cosmolearning.com/documentaries/pirates-of-silicon-valley/" target="_blank"&gt;Pirates of Silicon Valley&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.cosmolearning.com/documentaries/download-the-true-history-of-internet-2008/" target="_blank"&gt;Download: The True Story of the Internet&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.cosmolearning.com/documentaries/kevin-mitnick-by-kevin/" target="_blank"&gt;Kevin Mitnick: collected speeches and interviews with the famous hacker (2009)&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.cosmolearning.com/documentaries/the-virtual-revolution-1041/" target="_blank"&gt;The Virtual Revolution&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.cosmolearning.com/documentaries/google-me-774/" target="_blank"&gt;Google Me (2007)&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://video.google.com/videoplay?docid=7707585592627775409" target="_blank"&gt;Revolution OS&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.snagfilms.com/films/title/welcome_to_macintosh" target="_blank"&gt;Welcome to Macintosh&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.hulu.com/watch/192218/we-live-in-public" target="_blank"&gt;We Live in Public&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;br /&gt;
Some of the best sites for watching free documentaries are:&lt;br /&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="http://www.cosmolearning.com/documentaries/" target="_blank"&gt;CosmoLearning&amp;nbsp;Documentaries&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://topdocumentaryfilms.com/" target="_blank"&gt;Top Documentary Films&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.youtube.com/movies/documentary" target="_blank"&gt;YouTube&amp;nbsp;Documentaries&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.google.com/search?q=documentary%20-rose%20duration:long&amp;amp;start=0&amp;amp;num=10&amp;amp;tbm=vid#sclient=psy-ab&amp;amp;hl=en&amp;amp;tbm=vid&amp;amp;source=hp&amp;amp;q=documentary+-rose+duration:long+%2Blinux&amp;amp;pbx=1&amp;amp;oq=documentary+-rose+duration:long+%2Blinux&amp;amp;aq=f&amp;amp;aqi=&amp;amp;aql=&amp;amp;gs_sm=e&amp;amp;gs_upl=25180l26310l0l26397l7l6l0l0l0l0l369l1094l0.2.2.1l5l0&amp;amp;bav=on.2,or.r_gc.r_pw.,cf.osb&amp;amp;fp=f0025338305ca523&amp;amp;biw=1426&amp;amp;bih=1126" target="_blank"&gt;Google Video Documentaries Search Starter Page&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.hulu.com/documentaries" target="_blank"&gt;Hulu Dcoumentaries&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.snagfilms.com/" target="_blank"&gt;SnagFilms&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;br /&gt;
And if you subscribe to&amp;nbsp;Netflix&amp;nbsp;streaming and have ever worked in computer support, check out this&amp;nbsp;British&amp;nbsp;comedy-drama for some good laughs:&lt;br /&gt;
&lt;br /&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="http://movies.netflix.com/WiMovie/The_IT_Crowd/70140450?trkid=2361637" target="_blank"&gt;The IT Crowd&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;img src="http://feeds.feedburner.com/~r/milehighcode/Fefh/~4/P70cq3Ulalw" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://blog.milehighcode.com/feeds/6116309323023882803/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://blog.milehighcode.com/2011/12/my-favorite-geek-documentary-films.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/7817780699562333449/posts/default/6116309323023882803?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/7817780699562333449/posts/default/6116309323023882803?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/milehighcode/Fefh/~3/P70cq3Ulalw/my-favorite-geek-documentary-films.html" title="My Favorite Geek Documentary Films" /><author><name>Joshua Ayson</name><uri>https://plus.google.com/102042414478549404260</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh4.googleusercontent.com/-PXgvIyzXdhw/AAAAAAAAAAI/AAAAAAAABY4/a3eROUodr-g/s512-c/photo.jpg" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://3.bp.blogspot.com/-id1doOLrdOo/TzHen0YdPWI/AAAAAAAAALg/pHHYcDULaQU/s72-c/cheeseman.jpg" height="72" width="72" /><thr:total>0</thr:total><feedburner:origLink>http://blog.milehighcode.com/2011/12/my-favorite-geek-documentary-films.html</feedburner:origLink></entry><entry gd:etag="W/&quot;Ck4GSHo7eyp7ImA9WhRXFEU.&quot;"><id>tag:blogger.com,1999:blog-7817780699562333449.post-3046448276493959508</id><published>2011-12-09T15:25:00.001-07:00</published><updated>2011-12-21T08:22:09.403-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-12-21T08:22:09.403-07:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="code" /><category scheme="http://www.blogger.com/atom/ns#" term="clojure" /><category scheme="http://www.blogger.com/atom/ns#" term="books" /><category scheme="http://www.blogger.com/atom/ns#" term="languages" /><title>Amit Rathore's Introduction to Clojure: Week 1</title><content type="html">&lt;script src="http://www.milehighcode.com/Scripts/shCore.js" type="text/javascript"&gt;
&lt;/script&gt;
&lt;script src="http://www.milehighcode.com/Scripts/shAutoloader.js" type="text/javascript"&gt;
&lt;/script&gt;
&lt;script src="http://www.milehighcode.com/Scripts/shBrushClojure.js" type="text/javascript"&gt;
&lt;/script&gt;
&lt;link href="http://www.milehighcode.com/Stylesheets/shThemeDefault.css" rel="stylesheet" type="text/css"&gt;&lt;/link&gt;
&lt;link href="http://www.milehighcode.com/Stylesheets/shCore.css" rel="stylesheet" type="text/css"&gt;&lt;/link&gt;
I'm currently taking the &lt;a href="http://codelesson.com/courses/view/introduction-to-clojure" target="_blank"&gt;Introduction to Clojure&lt;/a&gt; class from &lt;a href="http://codelesson.com/"&gt;CodeLesson.com&lt;/a&gt; taught by Amit Rathore, author of &lt;a href="http://www.manning.com/rathore/" target="_blank"&gt;Clojure In Action&lt;/a&gt;. (You may be able to get a 40% discount on the book if you use "clojure40" as the coupon code when purchasing through Manning, I'm not sure how long this offer is good for.) We are using the book for our coursework material along with Amit's quizzes and exercises. There are 14 students in the class, 9 from the US and the others are from Germany, Spain, &amp;nbsp;Ireland and the UK.&lt;br /&gt;
&lt;br /&gt;
For the first week we've read through chapters 1 - 3 of Clojure in Action, taken 3 quizzes and have been given, what has been for me a challenging exercise. The class site uses moodle, unfortunately there has not been any audio/video presentations yet. I'm still hoping.&lt;br /&gt;
&lt;br /&gt;
This week's exercise gives us a string of inputs consisting of a matrix size, [x y] coordinates and heading of an object, along with a series of left and right turns and forward movements for the object. The end goal is to have the output reveal the proper position of the object in the matrix. For extra credit we are encouraged to add collision and boundary detection, which I've not done. Credit goes to my classmate John Vieten for showing me how this was done. I copied John's design and re-implemented based on that, although I had to look back at his code from time to time as I'm still having difficulties thinking functionally. Also check out &lt;a href="http://pastie.org/3008097" target="_blank"&gt;Amit's version&lt;/a&gt; of the solution.&lt;br /&gt;
&lt;br /&gt;
&lt;pre class="brush: clojure"&gt;;; had some frustrations with things needing to be (str)'ed
;; thus all the debug statements...

(def left-bearing-lookup {"N" "W", "W" "S", "S" "E", "E" "N"})
(def right-bearing-lookup {"N" "E", "E" "S", "S" "W", "W" "N"})

(defn turn-left [bearing] 
  (do
    ;(println "LEFT:" bearing (left-bearing-lookup bearing))
    (left-bearing-lookup bearing)))

(defn turn-right [bearing] 
  (do  
    ;(println "RIGHT:" (right-bearing-lookup bearing))
    (right-bearing-lookup bearing)))

(defn move-rover [matrix]
  (let [bearing (:bearing matrix)
        x (:x matrix)
        y (:y matrix)]
    ;(println "MOVE-ROVER:" matrix bearing x y)
    (cond
      (= bearing "N") (assoc matrix :y (inc y)) 
      (= bearing "S") (assoc matrix :y (dec y)) 
      (= bearing "W") (assoc matrix :x (dec x)) 
      (= bearing "E") (assoc matrix :x (inc x))))) 
      
(defn parse-moves [matrix move]
  ;(println "PARSE-MOVES-entry:" move)
  (cond 
    (= move \L) (assoc matrix :bearing (turn-left (:bearing matrix)))
    (= move \R) (assoc matrix :bearing (turn-right (:bearing matrix)))
    (= move \M) (move-rover matrix)))

(defn parse-rovers [matrix [[x _ y _ bearing] moves]]
  (let [x (Integer/parseInt (str x))
        y (Integer/parseInt (str y))
        bearing (str bearing)
        matrix (assoc matrix :x x :y y :bearing bearing)
        new-matrix (reduce parse-moves matrix moves)
        ]
    (do
      ;(println "BEARING:"(:bearing matrix))
      ;(println "ORIG:"matrix)
      ;(println "NEW:"new-matrix)
      (println "[" (:x new-matrix) (:y new-matrix) (:bearing new-matrix)  "]"))))

(defn process-lines [rest-lines]
  (let [rover (take 2 rest-lines)
        rover-array rover]
    (if-not (= rover [])
      (cons rover-array (process-lines (nthnext rest-lines 2))))))

(defn run-rovers [input]
  (let [lines (.split input "\n")
        [x y] (.split (first lines) " ")
        x (Integer/parseInt x)
        y (Integer/parseInt y)
        rest-lines (rest lines)
        ;;reduce is the bomb!
        matrix (reduce (fn [mymap keyvec] (assoc mymap keyvec :bearing)) 
                      {} 
                      (for [x (range 1 (+ x 1)) 
                            y (range 1 (+ y 1))] 
                        [x y] ))]
    ;(println matrix)
    ;(println rest-lines)
    ;(println (process-lines rest-lines))
    (reduce parse-rovers matrix (process-lines rest-lines))))

(run-rovers "5 5\n1 2 N\nLMLMLMLMM\n3 3 E\nMMRMMRMRRM")
&lt;/pre&gt;
&lt;br /&gt;
Mostly for my own review, here is a brief overview of the first 3 chapters, although the actual chapters cover &amp;nbsp;&lt;b&gt;A LOT&lt;/b&gt; more than what I glance over.&amp;nbsp;While you'll need to check out the&amp;nbsp;&lt;a href="http://www.manning.com/rathore/" target="_blank"&gt;Clojure in Action&lt;/a&gt;&amp;nbsp;book yourself to experience the expansiveness and ease of &amp;nbsp;the material presented, I highlight some of the topics, which I sometimes hadn't quite understood from reading other books. I've added links to &lt;a href="http://clojuredocs.org/"&gt;ClojureDocs&lt;/a&gt; where applicable.&lt;br /&gt;
&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-size: large;"&gt;Chapter 1:&lt;/span&gt; This chapter covered a general overview of the language and its capabilities diving into concepts here and there that would later be highlighted. I really enjoyed the breakdown of the Clojure runtime versus the stages of a typical language processor and the chart showing Clojure compared with other languages, which I've taken the liberty of including:&lt;br /&gt;
&lt;br /&gt;
&lt;table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style="text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/-Be_A6o7KDiY/TuUiQhCZ5_I/AAAAAAAAAE4/0k648uPhNXg/s1600/beyondoo.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"&gt;&lt;img border="0" height="315" src="http://3.bp.blogspot.com/-Be_A6o7KDiY/TuUiQhCZ5_I/AAAAAAAAAE4/0k648uPhNXg/s320/beyondoo.png" width="320" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class="tr-caption" style="text-align: center;"&gt;Figure 1.4 from Clojure in Action (pg. 26)&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-size: large;"&gt;Chapter 2:&lt;/span&gt; Covers the whirlwind language tour. Similar in content and style to chapter 2&amp;nbsp;"Drinking from the Clojure firehose"&amp;nbsp;from the &lt;a href="http://joyofclojure.com/" target="_blank"&gt;Joy of Clojure&lt;/a&gt;&amp;nbsp;book, this chapter familiarizes the reader with the basics of the language and introduces idiomatic ways of doing things using special, forms, functions and macros.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;&lt;a href="http://clojuredocs.org/clojure_core/clojure.core/loop" target="_blank"&gt;loop: (loop bindings &amp;amp; body&lt;/a&gt;)&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
Much like let the loop/recur form is used by specify binding within the loop function call which are then replaced by the recur call. This operation does not consume the stack but recur can only be used in the tail position, which simply means it has to be the last statement in the loop/recur form.&lt;br /&gt;
&lt;br /&gt;
&lt;pre class="brush: clojure"&gt;(defn factorial-loop [n]
  (loop [current n factorial 1]
    (if (= current 1)
      factorial 
      (recur (dec current) (* factorial current)))))
&lt;/pre&gt;
&lt;br /&gt;
&lt;b&gt;&lt;a href="http://clojuredocs.org/clojure_core/clojure.core/doseq" target="_blank"&gt;doseq&lt;/a&gt;, &lt;a href="http://clojuredocs.org/clojure_core/clojure.core/dotimes" target="_blank"&gt;dotimes&lt;/a&gt;&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
These forms take a 2 term vector, the first is a new symbol (variable), which is then sequentially bound to each element in the the sequence from the second term. Doseq works with a function and dotimes works with a number as the second term.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;&lt;a href="http://clojuredocs.org/clojure_core/clojure.core/map" target="_blank"&gt;map&lt;/a&gt;&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
Takes a function and a sequence of data which is then applied to that function returning a new sequence. If you give it multiple functions you have to have an equal number of sequences.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;&lt;a href="http://clojuredocs.org/clojure_core/clojure.core/filter" target="_blank"&gt;filter&lt;/a&gt;&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
Accepts a predicate, which is something that returns true or false, and a sequence which then only returns those elements that return true for the predicate.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;&lt;a href="http://clojuredocs.org/clojure_core/clojure.core/reduce" target="_blank"&gt;reduce&lt;/a&gt;&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
A function which which accepts a function that expects 2 terms and a sequence of elements. The first two elements are pulled off and processed by the function, then the result of this call plus the next function are called on the function until the sequence has been gone through.&lt;br /&gt;
&lt;br /&gt;
&lt;pre class="brush: clojure"&gt;(defn factorial-reduce [n]
  (let [num (range 1 (+ n 1))]
    (reduce * num)))
&lt;/pre&gt;
&lt;br /&gt;
&lt;b&gt;&lt;a href="http://clojuredocs.org/clojure_core/clojure.core/for" target="_blank"&gt;for: (for seq-expr body-expr)&lt;/a&gt;&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
Used for list comprehension and can be further refined using &lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;:let&lt;/span&gt;,&lt;span class="Apple-style-span" style="font-family: inherit;"&gt; &lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;:whe&lt;/span&gt;n, and &lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;:while&lt;/span&gt; keywords.&lt;br /&gt;
&lt;br /&gt;
&lt;pre class="brush: clojure"&gt;(defn matrix [x y]
     (for [x (range 1 (+ 1 x)) y (range 1 (+ 1 y))] [x y]))
&lt;/pre&gt;
&lt;br /&gt;
Which results in:
&lt;br /&gt;
&lt;pre&gt;&lt;/pre&gt;
&lt;pre&gt;=&amp;gt; (matrix 3 3)
([1 1] [1 2] [1 3] [2 1] [2 2] [2 3] [3 1] [3 2] [3 3])
&lt;/pre&gt;
&lt;br /&gt;
&lt;b&gt;&lt;a href="http://clojuredocs.org/clojure_core/clojure.core/-%3E" target="_blank"&gt;thread-first -&amp;gt;&lt;/a&gt;, &lt;a href="http://clojuredocs.org/clojure_core/clojure.core/-%3E%3E" target="_blank"&gt;thread-last -&amp;gt;&amp;gt;&lt;/a&gt;&amp;nbsp;&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
Macros to make nested function definitions easier to read.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;&lt;a href="http://clojuredocs.org/clojure_core/clojure.core/assoc-in" target="_blank"&gt;assoc-in&lt;/a&gt;, &lt;a href="http://clojuredocs.org/clojure_core/clojure.core/get-in" target="_blank"&gt;get-in&lt;/a&gt;, &lt;a href="http://clojuredocs.org/clojure_core/clojure.core/update-in" target="_blank"&gt;update-in&lt;/a&gt;&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
Functions which make it easy to dig into nested maps.&lt;br /&gt;
&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-size: large;"&gt;Chapter 3:&lt;/span&gt; Dives into functions, which I'll cover a bit and scope and destructuring, which I won't get into. I found the full structure of the &lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;defn&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;&amp;nbsp;&lt;/span&gt;macro quite helpful:&lt;br /&gt;
&lt;br /&gt;
&lt;pre class="brush: clojure"&gt;(defn function-name doc-string? attr-map? [parameter-list]
  conditions-map?
    (expressions))
&lt;/pre&gt;
&lt;br /&gt;
The conditions map can take &lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;:pre&lt;/span&gt; and &lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;:post&lt;/span&gt; keywords which are applied before and after the function is executed.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;&lt;a href="http://clojuredocs.org/clojure_core/clojure.core/defn" target="_blank"&gt;arity&lt;/a&gt;&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
This is the number of arguments a function can take. A function which takes variable arity is said to be &lt;i&gt;variadic &lt;/i&gt;and uses the form &lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;(defn function-name [&amp;amp; nums] (apply + nums))&lt;/span&gt;. You can precede the &lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;amp;&lt;/span&gt; with a known number of symbols if it has to have a certain minimum arguments, the remainder will be returned as a single list.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;&lt;a href="http://clojuredocs.org/clojure_core/clojure.core/defn" target="_blank"&gt;overloading&lt;/a&gt;&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
In order to overload a function you supply multiple arity parameters with bodies within a single function.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;&lt;a href="http://clojuredocs.org/clojure_core/clojure.core/trampoline" target="_blank"&gt;trampoline&lt;/a&gt;&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
This function allows you to call mutually recursive functions which do not eat up the stack. An example would be one recursive function calling another and the other calling the first. You have to use &lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;(declare function-name)&lt;/span&gt; for the second function, which is used in the first function, since it won't exist the first rime through.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;&lt;a href="http://clojuredocs.org/clojure_core/clojure.core/time" target="_blank"&gt;time&lt;/a&gt;&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
Wrap your function calls with time to get the elapsed time taken for execution.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;&lt;a href="http://clojuredocs.org/clojure_core/clojure.core/memoize" target="_blank"&gt;memoize&lt;/a&gt;&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
Wrap your function with a call to memoize, which will cache the results upon the second call. Can be used to speed things up in certain scenarios.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;&lt;a href="http://www.andrewbuntine.com/articles/about/clojure" target="_blank"&gt;lexical closures&lt;/a&gt;&lt;/b&gt;&lt;br /&gt;
&lt;i&gt;(the above link takes you Andrew Buntine's blog, which has a nice, simple explanation of the concept)&lt;/i&gt;&lt;br /&gt;
&lt;br /&gt;
These are forms that enclose over free variables, which means the variable has no binding within the lexical scope of the form.&lt;br /&gt;
&lt;pre class="brush: clojure"&gt;(defn make-scale [scale]
  (fn [x]
    (* x scale)))

(def make-percent (make-scale 100))

(make-percent 1.20)&lt;/pre&gt;
&lt;br /&gt;
Which results in:
&lt;br /&gt;
&lt;pre&gt;=&amp;gt; (make-percent 1.20)
120.0
&lt;/pre&gt;
&lt;br /&gt;
&lt;b&gt;&lt;a href="http://clojuredocs.org/quickref/Clojure%20Core#Code+StructureMetadata" target="_blank"&gt;metadata&lt;/a&gt;&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
Can be used much like annotations.&lt;br /&gt;
&lt;script type="text/javascript"&gt;
     SyntaxHighlighter.all()
&lt;/script&gt;&lt;img src="http://feeds.feedburner.com/~r/milehighcode/Fefh/~4/GY6dReu1ro0" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://blog.milehighcode.com/feeds/3046448276493959508/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://blog.milehighcode.com/2011/12/amit-rathores-introduction-to-clojure.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/7817780699562333449/posts/default/3046448276493959508?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/7817780699562333449/posts/default/3046448276493959508?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/milehighcode/Fefh/~3/GY6dReu1ro0/amit-rathores-introduction-to-clojure.html" title="Amit Rathore's Introduction to Clojure: Week 1" /><author><name>Joshua Ayson</name><uri>https://plus.google.com/102042414478549404260</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh4.googleusercontent.com/-PXgvIyzXdhw/AAAAAAAAAAI/AAAAAAAABY4/a3eROUodr-g/s512-c/photo.jpg" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://3.bp.blogspot.com/-Be_A6o7KDiY/TuUiQhCZ5_I/AAAAAAAAAE4/0k648uPhNXg/s72-c/beyondoo.png" height="72" width="72" /><thr:total>0</thr:total><feedburner:origLink>http://blog.milehighcode.com/2011/12/amit-rathores-introduction-to-clojure.html</feedburner:origLink></entry><entry gd:etag="W/&quot;Ak4FRHw4fyp7ImA9WhRQFEk.&quot;"><id>tag:blogger.com,1999:blog-7817780699562333449.post-3229286648479214946</id><published>2011-12-09T09:40:00.001-07:00</published><updated>2011-12-09T09:41:55.237-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-12-09T09:41:55.237-07:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="objective C" /><category scheme="http://www.blogger.com/atom/ns#" term="iphone" /><title>Free Online Stanford iPhone IOS5 Development Course</title><content type="html">&lt;br /&gt;
&lt;div class="MsoNormal"&gt;
Stanford offers a free online beginning &lt;a href="http://www.stanford.edu/class/cs193p/cgi-bin/drupal/"&gt;iPhone Development
course&lt;/a&gt;.&lt;/div&gt;
&lt;div class="MsoNormal"&gt;
The &lt;a href="http://itunes.apple.com/itunes-u/ipad-iphone-application-development/id473757255"&gt;lectures&lt;/a&gt;
were updated this month for ios5 and are available through iTunes at no cost.&lt;/div&gt;
&lt;div class="MsoNormal"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class="MsoNormal"&gt;
&lt;u&gt;Course Description:&lt;o:p&gt;&lt;/o:p&gt;&lt;/u&gt;&lt;/div&gt;
&lt;div class="MsoNormal"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class="MsoNormal"&gt;
Updated for iOS 5. Tools and APIs required to build
applications for the iPhone and iPad platform using the iOS SDK. User interface
designs for mobile devices and unique user interactions using multi-touch
technologies. Object-oriented design using model-view-controller paradigm,
memory management, Objective-C programming language. &lt;/div&gt;
&lt;div class="MsoNormal"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class="MsoNormal"&gt;
Other topics include: object-oriented database API,
animation, multi-threading and performance considerations. &lt;/div&gt;
&lt;div class="MsoNormal"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class="MsoNormal"&gt;
Prerequisites: C language and programming experience at the
level of &lt;a href="http://see.stanford.edu/see/courseinfo.aspx?coll=11f4f422-5670-4b4c-889c-008262e09e4e"&gt;106B
Programming Abstractions&lt;/a&gt; (also offered at no cost, I checked out a couple
of these a few years ago and they are great) or X. (FYI - &lt;a href="http://see.stanford.edu/see/courseinfo.aspx?coll=824a47e1-135f-4508-a5aa-866adcae1111"&gt;106A&lt;/a&gt;
is an entry level Java course with a great, enthusiastic instructor)&lt;/div&gt;
&lt;div class="MsoNormal"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class="MsoNormal"&gt;
Recommended: UNIX, object-oriented programming, graphical
toolkits Offered by Stanford’s School of Engineering, the course will last ten
weeks and include both the lecture videos and PDF documents. A new lecture will
be posted each Monday, Wednesday and Friday. Subscribe to this course, and
automatically receive new lectures as they become available. Released with a
Creative Commons BY-NC-ND license.&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/milehighcode/Fefh/~4/dXfY7oPPesg" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://blog.milehighcode.com/feeds/3229286648479214946/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://blog.milehighcode.com/2011/12/free-online-stanford-iphone-ios5.html#comment-form" title="1 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/7817780699562333449/posts/default/3229286648479214946?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/7817780699562333449/posts/default/3229286648479214946?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/milehighcode/Fefh/~3/dXfY7oPPesg/free-online-stanford-iphone-ios5.html" title="Free Online Stanford iPhone IOS5 Development Course" /><author><name>Joshua Ayson</name><uri>https://plus.google.com/102042414478549404260</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh4.googleusercontent.com/-PXgvIyzXdhw/AAAAAAAAAAI/AAAAAAAABY4/a3eROUodr-g/s512-c/photo.jpg" /></author><thr:total>1</thr:total><feedburner:origLink>http://blog.milehighcode.com/2011/12/free-online-stanford-iphone-ios5.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CUMGR3g8cCp7ImA9WhRRF0Q.&quot;"><id>tag:blogger.com,1999:blog-7817780699562333449.post-3738348295164668548</id><published>2011-12-01T19:16:00.000-07:00</published><updated>2011-12-01T19:37:06.678-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-12-01T19:37:06.678-07:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="eclipse" /><category scheme="http://www.blogger.com/atom/ns#" term="clojure" /><title>Making Eclipse, CounterClockWise and Leiningen Sing on Windows</title><content type="html">&lt;script src="http://www.milehighcode.com/Scripts/shCore.js" type="text/javascript"&gt;
&lt;/script&gt;
&lt;script src="http://www.milehighcode.com/Scripts/shAutoloader.js" type="text/javascript"&gt;
&lt;/script&gt;
&lt;script src="http://www.milehighcode.com/Scripts/shBrushClojure.js" type="text/javascript"&gt;
&lt;/script&gt;
&lt;link href="http://www.milehighcode.com/Stylesheets/shThemeDefault.css" rel="stylesheet" type="text/css"&gt;&lt;/link&gt;
&lt;link href="http://www.milehighcode.com/Stylesheets/shCore.css" rel="stylesheet" type="text/css"&gt;&lt;/link&gt;

Download the &lt;a href="https://github.com/technomancy/leiningen" target="_blank"&gt;Leiningen batch file&lt;/a&gt;&amp;nbsp;for Windows to get started. You'll likely need to edit the file to set the path for where you are at.&lt;br /&gt;
&lt;br /&gt;
&lt;span style="font-family: 'Courier New', Courier, monospace;"&gt;set LEIN_HOME=c:\dev\leiningen&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
Next you need to run the Leiningen installer:&lt;br /&gt;
&lt;br /&gt;
&lt;span style="font-family: 'Courier New', Courier, monospace;"&gt;lein.bat self-install&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
If you are behind a firewall you can download the standalone jar file, place it in the 'self-installs' directory. That way you won't need to mess with curl or wget.&lt;br /&gt;
&lt;br /&gt;
The rest of Leiningen uses maven, so this is how you get around an http proxy with maven. Create a setting.xml file in your user's home directory within a folder called .m2.&lt;br /&gt;
&lt;br /&gt;
&lt;span style="font-family: 'Courier New', Courier, monospace; font-size: x-small;"&gt;C:\Users\joe_user\.m2\settings.xml:&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: 'Courier New', Courier, monospace; font-size: x-small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: 'Courier New', Courier, monospace; font-size: x-small;"&gt;&amp;lt;settings&amp;gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: 'Courier New', Courier, monospace; font-size: x-small;"&gt;&amp;nbsp; &amp;lt;proxies&amp;gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: 'Courier New', Courier, monospace; font-size: x-small;"&gt;&amp;nbsp; &amp;nbsp; &amp;lt;proxy&amp;gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: 'Courier New', Courier, monospace; font-size: x-small;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;id&amp;gt;default&amp;lt;/id&amp;gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: 'Courier New', Courier, monospace; font-size: x-small;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;active&amp;gt;true&amp;lt;/active&amp;gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: 'Courier New', Courier, monospace; font-size: x-small;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;protocol&amp;gt;http&amp;lt;/protocol&amp;gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: 'Courier New', Courier, monospace; font-size: x-small;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;host&amp;gt;PROXY_HOST&amp;lt;/host&amp;gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: 'Courier New', Courier, monospace; font-size: x-small;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;port&amp;gt;PROXY_PORT&amp;lt;/port&amp;gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: 'Courier New', Courier, monospace; font-size: x-small;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt; &amp;nbsp;&amp;lt;username&amp;gt;YOUR_PROXY_USERNAME&amp;lt;/username&amp;gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: 'Courier New', Courier, monospace; font-size: x-small;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;password&amp;gt;YOUR_PROXY_PASSWORD&amp;lt;/password&amp;gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: 'Courier New', Courier, monospace; font-size: x-small;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;nonProxyHosts&amp;gt;localhost&amp;lt;/nonProxyHosts&amp;gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: 'Courier New', Courier, monospace; font-size: x-small;"&gt;&amp;nbsp; &amp;nbsp; &amp;lt;/proxy&amp;gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: 'Courier New', Courier, monospace; font-size: x-small;"&gt;&amp;nbsp; &amp;lt;/proxies&amp;gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: 'Courier New', Courier, monospace; font-size: x-small;"&gt;&amp;lt;/settings&amp;gt;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
At this point I'd recommend testing things out from the command line.&lt;br /&gt;
&lt;br /&gt;
Test line.bat to ensure you get the help menu.&lt;br /&gt;
&lt;br /&gt;
Create a new project using lein.bat new.&lt;br /&gt;
&lt;br /&gt;
Pull in dependency's for the project by going into the project directory and running lein.bat deps.&lt;br /&gt;
This will test the maven proxy configuration.&lt;br /&gt;
&lt;br /&gt;
Once you have Leiningen setup and installed it's time to setup eclipse. I'm going to refer to the &lt;a href="https://github.com/relevance/labrepl/wiki/Eclipse" target="_blank"&gt;labrepl wiki instructions&lt;/a&gt; for setting up Eclipse with counterclockwise. You don't have to go all the way through the instructions since we aren't setting up labrepl, but it wouldn't hurt to install the Git and Maven plugins as well as CounterClockWise, which are all discussed.&lt;br /&gt;
&lt;br /&gt;
Great, now I'm going to refer you to the &lt;a href="http://sexp.posterous.com/poor-mans-integrating-leiningen-into-counterc" target="_blank"&gt;sexp.posterous blog&lt;/a&gt;, which has&amp;nbsp;simple instructions to create the external calls to the Leiningen script from Eclipse. These can then be used by all of your Clojure projects and should only take you about 5 minutes to setup.&lt;br /&gt;
&lt;br /&gt;
Now you have your basic Eclipse-Clojure-Leiningen environment setup and I'll cover general use and some gotchas that I ran into.&lt;br /&gt;
&lt;br /&gt;
The first thing you want to do is create a new Eclipse project. Select the 'Clojure' type for your project. If you don't see this option, then perhaps you didn't get the CounterClockWise plug-in properly installed. It should look like this:&lt;br /&gt;
&lt;br /&gt;
&lt;table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style="text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/-pPuzYl6S_Z8/TtgK3tcWmGI/AAAAAAAAAAw/YYdLn9rfW8Q/s1600/New+Project_2011-12-01_16-14-47.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"&gt;&lt;img border="0" src="http://2.bp.blogspot.com/-pPuzYl6S_Z8/TtgK3tcWmGI/AAAAAAAAAAw/YYdLn9rfW8Q/s1600/New+Project_2011-12-01_16-14-47.png" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class="tr-caption" style="text-align: center;"&gt;New Project Wizard&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;br /&gt;
We will now run some of the Leiningen external tools you setup earlier. If you have difficulty getting the commands to run, I've found I sometimes have to click on the project name before I run the command, as I'm showing in this pic:&lt;br /&gt;
&lt;br /&gt;
&lt;table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style="text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/-bE1XrcwhXB8/TtgK3EOhG1I/AAAAAAAAAAo/vFlNuBESsug/s1600/Java+-+helloWorldproject.clj+-+Eclipse_2011-12-01_16-13-42.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"&gt;&lt;img border="0" height="266" src="http://3.bp.blogspot.com/-bE1XrcwhXB8/TtgK3EOhG1I/AAAAAAAAAAo/vFlNuBESsug/s320/Java+-+helloWorldproject.clj+-+Eclipse_2011-12-01_16-13-42.png" width="320" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class="tr-caption" style="text-align: center;"&gt;External Tools Drop-Down&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;br /&gt;
Run the Leiningen 'new' command first. This will add some files and folders to the existing Eclipse project. (You may need to refresh the project before they appear.) The files of interest are the &lt;span style="font-family: 'Courier New', Courier, monospace;"&gt;project.clj&lt;/span&gt; file in the project root and the &lt;span style="font-family: 'Courier New', Courier, monospace;"&gt;core.clj&lt;/span&gt; files under /src and /test in your project's namespace, which in my case is helloWorld - the same name as the project. It get's this name, based on how we setup the Leiningen 'new' command. You can think of the Clojure namespace being similar to a Java package.&lt;br /&gt;
&lt;br /&gt;
Your setup should now look something like this view from the Eclipse package manager:&lt;br /&gt;
&lt;br /&gt;
&lt;table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style="text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/-kYcjVHDnqiQ/TtgK23gzZ4I/AAAAAAAAAAg/N9PG67oZu6g/s1600/Java+-+helloWorldproject.clj+-+Eclipse_2011-12-01_16-10-12.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"&gt;&lt;img border="0" height="320" src="http://1.bp.blogspot.com/-kYcjVHDnqiQ/TtgK23gzZ4I/AAAAAAAAAAg/N9PG67oZu6g/s320/Java+-+helloWorldproject.clj+-+Eclipse_2011-12-01_16-10-12.png" width="215" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class="tr-caption" style="text-align: center;"&gt;Package Manager View&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;div style="text-align: left;"&gt;
&lt;br /&gt;
Next you will run the Leiningen 'deps' command from the external tools drop-down. This will look at the project.clj file and download any necessary dependencies and put them into the /lib folder. Leiningen uses &amp;nbsp;Maven to do this, which is why I had to add the settings.xml file to Maven to get through my http proxy. You will not need to do this if you don't have to deal with a proxy.&lt;/div&gt;
&lt;br /&gt;
Now let's add the test folder that was created by the Leiningen 'new' command to the project's source build path in Eclipse:&lt;br /&gt;
&lt;br /&gt;
&lt;table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style="text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/-rlEGiE6GAUg/TtgK38O2PBI/AAAAAAAAAA4/-5h06itP5us/s1600/Properties+for+helloWorld_2011-12-01_16-10-31.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"&gt;&lt;img border="0" height="257" src="http://3.bp.blogspot.com/-rlEGiE6GAUg/TtgK38O2PBI/AAAAAAAAAA4/-5h06itP5us/s320/Properties+for+helloWorld_2011-12-01_16-10-31.png" width="320" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class="tr-caption" style="text-align: center;"&gt;Java Build Path Window&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;div class="separator" style="clear: both; text-align: left;"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class="separator" style="clear: both; text-align: left;"&gt;
You'll notice that after running the 'dep' command you have a build error on your project.&amp;nbsp;This is because 'dep' wipes out the /classes folder.&amp;nbsp;&lt;/div&gt;
&lt;div class="separator" style="clear: both; text-align: left;"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class="separator" style="clear: both; text-align: left;"&gt;
Run the Leiningen 'compile' command and it will be restored. You may need to refresh your project after you run compile.&amp;nbsp;&lt;/div&gt;
&lt;div class="separator" style="clear: both; text-align: left;"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class="separator" style="clear: both; text-align: left;"&gt;
FYI: Just so you know when you are in the package manage view, if there ever is a folder that you know exists, which you cannot see, it is likely because the folder is configured as a build path library object for your project.&lt;/div&gt;
&lt;br /&gt;
Now let's modify the default code and create a simple hello world program which we want to be able to package and run outside of Eclipse. To do this you will modify the src/core.clj and project.clj files.&lt;br /&gt;
&lt;br /&gt;
Aside from the hello world function, you will also need to add the &lt;span style="font-family: 'Courier New', Courier, monospace;"&gt;:gen-class&lt;/span&gt; specification to your core.clj file in order to create runnable java class files. Note that we have given the function the name of -main, which is the same as the main method for a Java program.&lt;br /&gt;
&lt;br /&gt;
&lt;pre class="brush: clojure"&gt;(ns helloWorld.core
(:gen-class))

(defn -main [msg]
(println "Hello" msg))
&lt;/pre&gt;
&lt;br /&gt;
Now on to the project.clj file, which lists dependencies and also needs to point to the main method.&lt;br /&gt;
&lt;br /&gt;
Note the&amp;nbsp;&lt;span style="font-family: 'Courier New', Courier, monospace;"&gt;:manifest&lt;/span&gt; specification in the&amp;nbsp;project.clj file shown below. The manifest does not need to be specified if you are going to only use the standalone jar using Leiningen's 'uberjar' tool, since clojure is included with standalone jar. If however, you wanted to have several projects deployed somewhere which reference only one instance of the clojure library to save space, you can specify where your libraries live using &lt;span style="font-family: 'Courier New', Courier, monospace;"&gt;:manifest&lt;/span&gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;pre class="brush: clojure"&gt;(defproject helloWorld "1.0.0-SNAPSHOT"
:description "FIXME: write description"
:dependencies [[org.clojure/clojure "1.3.0"]]
:main helloWorld.core
:manifest {"Class-Path" "lib/clojure-1.3.0.jar"})
&lt;/pre&gt;
&lt;br /&gt;
Now run the 'uberjar' command, which will create 2 jar files of your project. One which includes the clojure library, it will have STANDALONE in its name, and another jar which merely references your clojure library, which was specified using&lt;span style="font-family: inherit;"&gt; &lt;/span&gt;&lt;span style="font-family: 'Courier New', Courier, monospace;"&gt;:manifest&lt;/span&gt;.

&lt;script type="text/javascript"&gt;
     SyntaxHighlighter.all()
&lt;/script&gt;&lt;br /&gt;
&lt;br /&gt;
You should be able to run your project like so:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;span style="font-family: 'Courier New', Courier, monospace;"&gt;c:\UL\workspace-helios32\helloWorld&amp;gt;java -jar helloWorld-1.0.0-SNAPSHOT-standalone.jar Joshua&lt;/span&gt;&lt;br /&gt;
&lt;span style="color: blue; font-family: 'Courier New', Courier, monospace;"&gt;Hello Joshua&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
If you don't give this program any parameters it will throw the following "arity" exception. Maybe more about that another time... Enjoy your new environment!&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;span style="font-family: 'Courier New', Courier, monospace;"&gt;c:\UL\workspace-helios32\helloWorld&amp;gt;java -jar helloWorld-1.0.0-SNAPSHOT-standalone.jar&lt;/span&gt;&lt;br /&gt;
&lt;span style="color: blue; font-family: 'Courier New', Courier, monospace;"&gt;Exception in thread "main" clojure.lang.ArityException: Wrong number of args (0)&lt;/span&gt;&lt;br /&gt;
&lt;span style="color: blue; font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;passed to: core$-main&lt;/span&gt;&lt;br /&gt;
&lt;span style="color: blue; font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; at clojure.lang.AFn.throwArity(AFn.java:437)&lt;/span&gt;&lt;br /&gt;
&lt;span style="color: blue; font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; at clojure.lang.AFn.invoke(AFn.java:35)&lt;/span&gt;&lt;br /&gt;
&lt;span style="color: blue; font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; at clojure.lang.AFn.applyToHelper(AFn.java:159)&lt;/span&gt;&lt;br /&gt;
&lt;span style="color: blue; font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; at clojure.lang.AFn.applyTo(AFn.java:151)&lt;/span&gt;&lt;br /&gt;
&lt;span style="color: blue; font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; at helloWorld.core.main(Unknown Source)&lt;/span&gt;&lt;img src="http://feeds.feedburner.com/~r/milehighcode/Fefh/~4/EnsfTP2tGSg" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://blog.milehighcode.com/feeds/3738348295164668548/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://blog.milehighcode.com/2011/12/making-eclipse-counterclockwise-and.html#comment-form" title="1 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/7817780699562333449/posts/default/3738348295164668548?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/7817780699562333449/posts/default/3738348295164668548?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/milehighcode/Fefh/~3/EnsfTP2tGSg/making-eclipse-counterclockwise-and.html" title="Making Eclipse, CounterClockWise and Leiningen Sing on Windows" /><author><name>joshua@milehighcode.com</name><uri>http://www.blogger.com/profile/13708809858339902902</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://2.bp.blogspot.com/-pPuzYl6S_Z8/TtgK3tcWmGI/AAAAAAAAAAw/YYdLn9rfW8Q/s72-c/New+Project_2011-12-01_16-14-47.png" height="72" width="72" /><thr:total>1</thr:total><feedburner:origLink>http://blog.milehighcode.com/2011/12/making-eclipse-counterclockwise-and.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CkAFR3w4eip7ImA9WhRXFE4.&quot;"><id>tag:blogger.com,1999:blog-7817780699562333449.post-6437660985591840996</id><published>2011-12-01T06:09:00.000-07:00</published><updated>2011-12-20T18:25:16.232-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-12-20T18:25:16.232-07:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="clojure" /><category scheme="http://www.blogger.com/atom/ns#" term="books" /><category scheme="http://www.blogger.com/atom/ns#" term="lists" /><title>My Clojure Reading List</title><content type="html">&lt;br /&gt;
&lt;div&gt;
Here are the current Clojure books on the market. I've got all of these on my "to-read" list. I started "Joy of Clojure", which I really liked and can't wait to better understand, but had to rewind to Halloway's "Programming Clojure", which is geared for a beginner without previous Lisp experience.&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;
Good for Beginner's:&lt;br /&gt;
&lt;ul&gt;
&lt;li&gt;Stuart Halloway's,&amp;nbsp;&lt;a href="http://www.amazon.com/Programming-Clojure-Pragmatic-Programmers-Halloway/dp/1934356336/ref=sr_1_1?s=books&amp;amp;ie=UTF8&amp;amp;qid=1322756213&amp;amp;sr=1-1" target="_blank"&gt;Programming Clojure&lt;/a&gt;&amp;nbsp;(Pragmatic Programmers, 2009)&lt;/li&gt;
&lt;li&gt;Luke VanderHart and Stuart Sierra's, &lt;a href="http://www.amazon.com/Practical-Clojure-Experts-Voice-Source/dp/1430272317/ref=sr_1_1?s=books&amp;amp;ie=UTF8&amp;amp;qid=1322756188&amp;amp;sr=1-1" target="_blank"&gt;Practical Clojure&lt;/a&gt; (Apress, 2010)&lt;/li&gt;
&lt;li&gt;Amit Rathore's,&amp;nbsp;&lt;a href="http://www.amazon.com/Clojure-Action-Amit-Rathore/dp/1935182595/ref=sr_1_1?s=books&amp;amp;ie=UTF8&amp;amp;qid=1322756126&amp;amp;sr=1-1" target="_blank"&gt;Clojure in Action&lt;/a&gt;&amp;nbsp;(Manning, 2011)
&lt;/li&gt;
&lt;/ul&gt;
&lt;div&gt;
&lt;br /&gt;
Intermediate to Advanced:&lt;/div&gt;
&lt;ul&gt;
&lt;li&gt;Michael Fogus and Chris Houser's,&amp;nbsp;&lt;a href="http://www.amazon.com/Joy-Clojure-Thinking-Way/dp/1935182641" target="_blank"&gt;Joy Of Clojure&lt;/a&gt;&amp;nbsp;(Manning, 2011)&lt;/li&gt;
&lt;/ul&gt;
&lt;br /&gt;
And Coming soon:&lt;br /&gt;
&lt;ul&gt;
&lt;li&gt;Chas Emerick, Brian Carper, Christophe Grand's: &lt;a href="http://shop.oreilly.com/product/0636920013754.do" target="_blank"&gt;Clojure Programming&lt;/a&gt; (O'Reilly, 2012)&amp;nbsp;&lt;/li&gt;
&lt;li&gt;Anthony Grimes' &lt;a href="http://meetclj.raynes.me/" target="_blank"&gt;Meet Clojure&lt;/a&gt;&amp;nbsp;(No Starch Press, 2012)&lt;/li&gt;
&lt;/ul&gt;&lt;img src="http://feeds.feedburner.com/~r/milehighcode/Fefh/~4/4OclEzNJlQs" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://blog.milehighcode.com/feeds/6437660985591840996/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://blog.milehighcode.com/2011/12/my-clojure-reading-list.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/7817780699562333449/posts/default/6437660985591840996?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/7817780699562333449/posts/default/6437660985591840996?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/milehighcode/Fefh/~3/4OclEzNJlQs/my-clojure-reading-list.html" title="My Clojure Reading List" /><author><name>joshua@milehighcode.com</name><uri>http://www.blogger.com/profile/13708809858339902902</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>0</thr:total><feedburner:origLink>http://blog.milehighcode.com/2011/12/my-clojure-reading-list.html</feedburner:origLink></entry></feed>
