
<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>stefanorodighiero.net &#187; Productivity</title>
	<atom:link href="http://www.stefanorodighiero.net/blog/category/productivity/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.stefanorodighiero.net/blog</link>
	<description>in between</description>
	<lastBuildDate>Thu, 05 Jan 2012 08:50:47 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3</generator>
		<item>
		<title>Muting/unmuting Skype for lazy people</title>
		<link>http://www.stefanorodighiero.net/blog/2011/05/mutingunmuting-skype-for-lazy-people/</link>
		<comments>http://www.stefanorodighiero.net/blog/2011/05/mutingunmuting-skype-for-lazy-people/#comments</comments>
		<pubDate>Fri, 20 May 2011 18:19:17 +0000</pubDate>
		<dc:creator>larsen</dc:creator>
				<category><![CDATA[Productivity]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[Applescript]]></category>
		<category><![CDATA[Quicksilver]]></category>
		<category><![CDATA[Skype]]></category>

		<guid isPermaLink="false">http://www.stefanorodighiero.net/blog/?p=289</guid>
		<description><![CDATA[With my current employer, we decided telecommuting was worth a try. Our office is distributed between Barcelona and Bologna, with occasional incursions by traveler colleagues who happen to be in some random coffee house around the world. One of the key elements for this setup to be practical and effective is Skype, which I don&#8217;t <a href="http://www.stefanorodighiero.net/blog/2011/05/mutingunmuting-skype-for-lazy-people/"> read more <span class="meta-nav">&#187;</span></a>]]></description>
			<content:encoded><![CDATA[<p>With my current employer, we decided telecommuting was worth a try.</p>
<p>Our office is distributed between Barcelona and Bologna, with occasional incursions by traveler colleagues who happen to be in some random coffee house around the world.</p>
<p>One of the key elements for this setup to be practical and effective is Skype, which I don&#8217;t particularly like but I have to admit works pretty well in this scenario. In our headquarters in Bologna there&#8217;s an USB microphone/speaker, which my colleagues connect in shifts to their laptops, or to a spare Android tablet. On my side, I use the <a class="zem_slink" title="MacBook Pro" rel="homepage" href="http://www.apple.com/macbookpro/">Macbook Pro</a> internal mic and headphones.</p>
<p>The Skype audio chat is <strong>always on</strong>, meaning that it&#8217;s almost like being there: I only miss lunch and coffee breaks.</p>
<p>Actually, it seems it&#8217;s even more vivid than the real thing. It&#8217;s not unusual some of them shout &#8220;MUTE!&#8221; in my direction: the internal microphone on my parts takes in too much consideration the <em>tik-ke-ti-tak</em> of the keyboard, which in Bologna becomes an unsolicited, thunderous and rather unpleasant proof I&#8217;m really at my desk.</p>
<p>Of course I could use the handy HUD window with all the Skype controls, but that requires 1) finding its position on the screen, 2) moving my hands from keyboard to trackpad, 3) click the mute button. I&#8217;m lazy, and I wanted something less cumbersome. Something like a keyboard trigger to toggle the mute status of the current Skype call. Triggers? <a href="http://www.blacktree.com/">Quicksilver</a> to the rescue.</p>
<p>I knew Quicksilver permits to assign arbitrary actions to hotkeys, and those actions can be anything you can do with Quicksilver: for example, running an Applescript program. Unfortunately, a quick inspection in the Skype&#8217;s Applescript dictionary revealed there was no direct and simple access to the Mute toggle. Here the first program I wrote to solve the problem:</p>
<div id="gist-983357" class="gist">

        <div class="gist-file">
          <div class="gist-data gist-syntax">
              <div class="highlight"><pre><div class='line' id='LC1'><span class="k">on</span> <span class="nb">run</span> <span class="nv">argv</span></div><div class='line' id='LC2'>&nbsp;&nbsp;&nbsp;&nbsp;<span class="k">set</span> <span class="nv">front_app</span> <span class="k">to</span> <span class="p">(</span><span class="nb">path to</span> <span class="na">frontmost</span> <span class="nb">application</span> <span class="k">as </span><span class="nc">Unicode text</span><span class="p">)</span></div><div class='line' id='LC3'>&nbsp;&nbsp;&nbsp;&nbsp;<span class="k">tell</span> <span class="nb">application</span> <span class="s2">&quot;Skype&quot;</span> <span class="k">to</span> <span class="nb">activate</span></div><div class='line' id='LC4'>&nbsp;&nbsp;&nbsp;&nbsp;<span class="nv">menu_click</span><span class="p">({</span><span class="s2">&quot;Skype&quot;</span><span class="p">,</span> <span class="s2">&quot;Conversations&quot;</span><span class="p">,</span> <span class="p">(</span><span class="nb">item</span> <span class="mi">1</span> <span class="k">of</span> <span class="nv">argv</span><span class="p">)</span> <span class="o">&amp;</span> <span class="s2">&quot; Microphone&quot;</span><span class="p">})</span></div><div class='line' id='LC5'>&nbsp;&nbsp;&nbsp;&nbsp;<span class="k">tell</span> <span class="nb">application</span> <span class="nv">front_app</span> <span class="k">to</span> <span class="nb">activate</span></div><div class='line' id='LC6'><span class="k">end</span> <span class="nb">run</span></div><div class='line' id='LC7'><br/></div><div class='line' id='LC8'><br/></div><div class='line' id='LC9'><span class="c">-- http://hints.macworld.com/article.php?story=20060921045743404</span></div><div class='line' id='LC10'><span class="c">-- `menu_click`, by Jacob Rus, September 2006</span></div><div class='line' id='LC11'><span class="c">-- </span></div><div class='line' id='LC12'><span class="c">-- Accepts a list of form: `{&quot;Finder&quot;, &quot;View&quot;, &quot;Arrange By&quot;, &quot;Date&quot;}`</span></div><div class='line' id='LC13'><span class="c">-- Execute the specified menu item.  In this case, assuming the Finder </span></div><div class='line' id='LC14'><span class="c">-- is the active application, arranging the frontmost folder by date.</span></div><div class='line' id='LC15'><br/></div><div class='line' id='LC16'><span class="k">on</span> <span class="nv">menu_click</span><span class="p">(</span><span class="nv">mList</span><span class="p">)</span></div><div class='line' id='LC17'>&nbsp;&nbsp;&nbsp;&nbsp;<span class="k">local</span> <span class="nv">appName</span><span class="p">,</span> <span class="nv">topMenu</span><span class="p">,</span> <span class="nv">r</span></div><div class='line' id='LC18'><br/></div><div class='line' id='LC19'>&nbsp;&nbsp;&nbsp;&nbsp;<span class="c">-- Validate our input</span></div><div class='line' id='LC20'>&nbsp;&nbsp;&nbsp;&nbsp;<span class="k">if</span> <span class="nv">mList</span>&#39;s <span class="nv">length</span> <span class="o">&lt;</span> <span class="mi">3</span> <span class="k">then</span> <span class="k">error</span> <span class="s2">&quot;Menu list is not long enough&quot;</span></div><div class='line' id='LC21'><br/></div><div class='line' id='LC22'>&nbsp;&nbsp;&nbsp;&nbsp;<span class="c">-- Set these variables for clarity and brevity later on</span></div><div class='line' id='LC23'>&nbsp;&nbsp;&nbsp;&nbsp;<span class="k">set</span> <span class="p">{</span><span class="nv">appName</span><span class="p">,</span> <span class="nv">topMenu</span><span class="p">}</span> <span class="k">to</span> <span class="p">(</span><span class="nb">items</span> <span class="mi">1</span> <span class="nb">through</span> <span class="mi">2</span> <span class="k">of</span> <span class="nv">mList</span><span class="p">)</span></div><div class='line' id='LC24'>&nbsp;&nbsp;&nbsp;&nbsp;<span class="k">set</span> <span class="nv">r</span> <span class="k">to</span> <span class="p">(</span><span class="nb">items</span> <span class="mi">3</span> <span class="nb">through</span> <span class="p">(</span><span class="nv">mList</span>&#39;s <span class="nv">length</span><span class="p">)</span> <span class="k">of</span> <span class="nv">mList</span><span class="p">)</span></div><div class='line' id='LC25'><br/></div><div class='line' id='LC26'>&nbsp;&nbsp;&nbsp;&nbsp;<span class="c">-- This overly-long line calls the menu_recurse function with</span></div><div class='line' id='LC27'>&nbsp;&nbsp;&nbsp;&nbsp;<span class="c">-- two arguments: r, and a reference to the top-level menu</span></div><div class='line' id='LC28'>&nbsp;&nbsp;&nbsp;&nbsp;<span class="k">tell</span> <span class="nv">app</span> <span class="s2">&quot;System Events&quot;</span> <span class="k">to</span> <span class="k">my</span> <span class="nv">menu_click_recurse</span><span class="p">(</span><span class="nv">r</span><span class="p">,</span> <span class="p">((</span><span class="nv">process</span> <span class="nv">appName</span><span class="p">)</span>&#39;s <span class="se">¬</span></div><div class='line' id='LC29'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="p">(</span><span class="na">menu</span> <span class="nv">bar</span> <span class="mi">1</span><span class="p">)</span>&#39;s <span class="p">(</span><span class="na">menu</span> <span class="nv">bar</span> <span class="nb">item</span> <span class="nv">topMenu</span><span class="p">)</span>&#39;s <span class="p">(</span><span class="na">menu</span> <span class="nv">topMenu</span><span class="p">)))</span></div><div class='line' id='LC30'><span class="k">end</span> <span class="nv">menu_click</span></div><div class='line' id='LC31'><br/></div><div class='line' id='LC32'><span class="k">on</span> <span class="nv">menu_click_recurse</span><span class="p">(</span><span class="nv">mList</span><span class="p">,</span> <span class="nv">parentObject</span><span class="p">)</span></div><div class='line' id='LC33'>&nbsp;&nbsp;&nbsp;&nbsp;<span class="k">local</span> <span class="nv">f</span><span class="p">,</span> <span class="nv">r</span></div><div class='line' id='LC34'><br/></div><div class='line' id='LC35'>&nbsp;&nbsp;&nbsp;&nbsp;<span class="c">-- `f` = first item, `r` = rest of items</span></div><div class='line' id='LC36'>&nbsp;&nbsp;&nbsp;&nbsp;<span class="k">set</span> <span class="nv">f</span> <span class="k">to</span> <span class="nb">item</span> <span class="mi">1</span> <span class="k">of</span> <span class="nv">mList</span></div><div class='line' id='LC37'>&nbsp;&nbsp;&nbsp;&nbsp;<span class="k">if</span> <span class="nv">mList</span>&#39;s <span class="nv">length</span> <span class="o">&gt;</span> <span class="mi">1</span> <span class="k">then</span> <span class="k">set</span> <span class="nv">r</span> <span class="k">to</span> <span class="p">(</span><span class="nb">items</span> <span class="mi">2</span> <span class="nb">through</span> <span class="p">(</span><span class="nv">mList</span>&#39;s <span class="nv">length</span><span class="p">)</span> <span class="k">of</span> <span class="nv">mList</span><span class="p">)</span></div><div class='line' id='LC38'><br/></div><div class='line' id='LC39'>&nbsp;&nbsp;&nbsp;&nbsp;<span class="c">-- either actually click the menu item, or recurse again</span></div><div class='line' id='LC40'>&nbsp;&nbsp;&nbsp;&nbsp;<span class="k">tell</span> <span class="nv">app</span> <span class="s2">&quot;System Events&quot;</span></div><div class='line' id='LC41'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="k">if</span> <span class="nv">mList</span>&#39;s <span class="nv">length</span> <span class="ow">is</span> <span class="mi">1</span> <span class="k">then</span></div><div class='line' id='LC42'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="nv">click</span> <span class="nv">parentObject</span>&#39;s <span class="na">menu</span> <span class="nb">item</span> <span class="nv">f</span></div><div class='line' id='LC43'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="k">else</span></div><div class='line' id='LC44'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="k">my</span> <span class="nv">menu_click_recurse</span><span class="p">(</span><span class="nv">r</span><span class="p">,</span> <span class="p">(</span><span class="nv">parentObject</span>&#39;s <span class="p">(</span><span class="na">menu</span> <span class="nb">item</span> <span class="nv">f</span><span class="p">)</span>&#39;s <span class="p">(</span><span class="na">menu</span> <span class="nv">f</span><span class="p">)))</span></div><div class='line' id='LC45'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="k">end</span> <span class="k">if</span></div><div class='line' id='LC46'>&nbsp;&nbsp;&nbsp;&nbsp;<span class="k">end</span> <span class="k">tell</span></div><div class='line' id='LC47'><span class="k">end</span> <span class="nv">menu_click_recurse</span></div></pre></div>
          </div>

          <div class="gist-meta">
            <a href="https://gist.github.com/raw/983357/09770409c5d42a7f9bffaea9a3607022e377378f/gistfile1.scpt" style="float:right;">view raw</a>
            <a href="https://gist.github.com/983357#file_gistfile1.scpt" style="float:right;margin-right:10px;color:#666">gistfile1.scpt</a>
            <a href="https://gist.github.com/983357">This Gist</a> brought to you by <a href="http://github.com">GitHub</a>.
          </div>
        </div>
</div>

<p>This is largely based on a piece of code by <a href="http://www.hcs.harvard.edu/~jrus/">Jacob Rus</a> I found in a <a href="http://hints.macworld.com/article.php?story=20060921045743404">hold post on Macworld</a>. It accepts a single parameters (&#8220;<em>Mute</em>&#8221; or &#8220;<em>Unmute</em>&#8220;) and it will work only if you use the English Skype localization. I don&#8217;t think there&#8217;s something particularly interesting in this program, except the useful code I borrowed from Jacob, the trick with <em>frontmost application</em> to re-activate the application which had the focus before switching to Skype and, yes!, the fact is remarkably long to perform such a simple task. Also, I&#8217;m not set with only this script: I&#8217;d need to create two different hotkeys for muting and un-muting, and assign them to two different ways of calling the script itself.</p>
<p>There must be a shorter path.</p>
<p>To a closer inspection (silly me!), I noticed the menu item I&#8217;m using keeps the same hotkey (I mean hotkey from Skype&#8217;s standpoint): no matter what the current mic status is, it&#8217;s always ⇧⌘M. Let&#8217;s try to shorten the program.</p>
<div id="gist-983354" class="gist">

        <div class="gist-file">
          <div class="gist-data gist-syntax">
              <div class="highlight"><pre><div class='line' id='LC1'><span class="k">set</span> <span class="nv">front_app</span> <span class="k">to</span> <span class="p">(</span><span class="nb">path to</span> <span class="na">frontmost</span> <span class="nb">application</span> <span class="k">as </span><span class="nc">Unicode text</span><span class="p">)</span></div><div class='line' id='LC2'><span class="k">tell</span> <span class="nb">application</span> <span class="s2">&quot;System Events&quot;</span></div><div class='line' id='LC3'>&nbsp;&nbsp;&nbsp;&nbsp;<span class="k">tell</span> <span class="nb">application</span> <span class="s2">&quot;Skype&quot;</span> <span class="k">to</span> <span class="nb">activate</span></div><div class='line' id='LC4'>&nbsp;&nbsp;&nbsp;&nbsp;<span class="nv">keystroke</span> <span class="s2">&quot;M&quot;</span> <span class="nv">using</span> <span class="p">{</span><span class="nv">command</span> <span class="nv">down</span><span class="p">,</span> <span class="nv">shift</span> <span class="nv">down</span><span class="p">}</span> </div><div class='line' id='LC5'><span class="k">end</span> <span class="k">tell</span></div><div class='line' id='LC6'><span class="k">tell</span> <span class="nb">application</span> <span class="nv">front_app</span> <span class="k">to</span> <span class="nb">activate</span></div></pre></div>
          </div>

          <div class="gist-meta">
            <a href="https://gist.github.com/raw/983354/fdfa2fc7cf469c50f25edd5aa74293576efd74a1/gistfile1.scpt" style="float:right;">view raw</a>
            <a href="https://gist.github.com/983354#file_gistfile1.scpt" style="float:right;margin-right:10px;color:#666">gistfile1.scpt</a>
            <a href="https://gist.github.com/983354">This Gist</a> brought to you by <a href="http://github.com">GitHub</a>.
          </div>
        </div>
</div>

<p>No need to differentiate the mechanism, and there is so much less code!</p>
<div class="zemanta-pixie" style="margin-top: 10px; height: 15px;"><img class="zemanta-pixie-img" style="border: none; float: right;" src="http://img.zemanta.com/pixy.gif?x-id=90f33d62-818c-4d4d-84bf-4134a787529e" alt="" /></div>
<div style="height:33px;" class="really_simple_share robots-nocontent snap_nopreview"><div class="really_simple_share_facebook_like" style="width:100px;">
				<iframe src="http://www.facebook.com/plugins/like.php?href=http%3A%2F%2Fwww.stefanorodighiero.net%2Fblog%2F2011%2F05%2Fmutingunmuting-skype-for-lazy-people%2F&amp;layout=button_count&amp;show_faces=false&amp;width=100&amp;action=like&amp;colorscheme=light&amp;send=false&amp;height=27" 
						scrolling="no" frameborder="0" style="border:none; overflow:hidden; width:100px; height:27px;" allowTransparency="true"></iframe>
				</div><div class="really_simple_share_google1" style="width:90px;">
					<g:plusone size="medium" href="http://www.stefanorodighiero.net/blog/2011/05/mutingunmuting-skype-for-lazy-people/" ></g:plusone>
				</div><div class="really_simple_share_twitter" style="width:110px;">
					<a href="http://twitter.com/share" class="twitter-share-button" data-count="horizontal" 
						data-text="Muting/unmuting Skype for lazy people (via @larsen)" data-url="http://www.stefanorodighiero.net/blog/2011/05/mutingunmuting-skype-for-lazy-people/" 
						data-via="" ></a> 
				</div></div>
		<div style="clear:both;"></div>]]></content:encoded>
			<wfw:commentRss>http://www.stefanorodighiero.net/blog/2011/05/mutingunmuting-skype-for-lazy-people/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Maintenance programming</title>
		<link>http://www.stefanorodighiero.net/blog/2008/04/maintenance-programming/</link>
		<comments>http://www.stefanorodighiero.net/blog/2008/04/maintenance-programming/#comments</comments>
		<pubDate>Wed, 16 Apr 2008 09:42:18 +0000</pubDate>
		<dc:creator>larsen</dc:creator>
				<category><![CDATA[Productivity]]></category>
		<category><![CDATA[Programming]]></category>

		<guid isPermaLink="false">http://www.stefanorodighiero.net/?p=25</guid>
		<description><![CDATA[$ history&#124;awk '{a[$2]++} END{for(i in a){printf "%5d\t%s \n",a[i],i}}'&#124;sort -rn&#124;head 215 cd 121 ls 97 vim 41 grep 4 find 3 vimdiff 3 touch 2 tail 2 perl 2 less]]></description>
			<content:encoded><![CDATA[<p><code>$ history|awk '{a[$2]++} END{for(i in a){printf "%5d\t%s \n",a[i],i}}'|sort -rn|head<br />
  215   cd<br />
  121   ls<br />
   97   vim<br />
   41   grep<br />
    4   find<br />
    3   vimdiff<br />
    3   touch<br />
    2   tail<br />
    2   perl<br />
    2   less </code></p>
<div style="height:33px;" class="really_simple_share robots-nocontent snap_nopreview"><div class="really_simple_share_facebook_like" style="width:100px;">
				<iframe src="http://www.facebook.com/plugins/like.php?href=http%3A%2F%2Fwww.stefanorodighiero.net%2Fblog%2F2008%2F04%2Fmaintenance-programming%2F&amp;layout=button_count&amp;show_faces=false&amp;width=100&amp;action=like&amp;colorscheme=light&amp;send=false&amp;height=27" 
						scrolling="no" frameborder="0" style="border:none; overflow:hidden; width:100px; height:27px;" allowTransparency="true"></iframe>
				</div><div class="really_simple_share_google1" style="width:90px;">
					<g:plusone size="medium" href="http://www.stefanorodighiero.net/blog/2008/04/maintenance-programming/" ></g:plusone>
				</div><div class="really_simple_share_twitter" style="width:110px;">
					<a href="http://twitter.com/share" class="twitter-share-button" data-count="horizontal" 
						data-text="Maintenance programming (via @larsen)" data-url="http://www.stefanorodighiero.net/blog/2008/04/maintenance-programming/" 
						data-via="" ></a> 
				</div></div>
		<div style="clear:both;"></div>]]></content:encoded>
			<wfw:commentRss>http://www.stefanorodighiero.net/blog/2008/04/maintenance-programming/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Things</title>
		<link>http://www.stefanorodighiero.net/blog/2008/03/things/</link>
		<comments>http://www.stefanorodighiero.net/blog/2008/03/things/#comments</comments>
		<pubDate>Sat, 29 Mar 2008 18:47:51 +0000</pubDate>
		<dc:creator>larsen</dc:creator>
				<category><![CDATA[Productivity]]></category>
		<category><![CDATA[gtd]]></category>

		<guid isPermaLink="false">http://www.stefanorodighiero.net/?p=14</guid>
		<description><![CDATA[In questi giorni sto usando parecchio Things, un&#8217;applicazione per Macintosh per il task management al momento in beta. Secondo me è molto indovinata, per un po&#8217; di motivi: L&#8217;interfaccia è pensata bene, e benchè manchino ancora alcune cose comode, si raggiunge ogni cosa rapidamente. Gli attributi legati a ciascun task sono sufficienti per organizzare il <a href="http://www.stefanorodighiero.net/blog/2008/03/things/"> read more <span class="meta-nav">&#187;</span></a>]]></description>
			<content:encoded><![CDATA[<p><a href='http://www.stefanorodighiero.net/blog/wp-content/uploads/2008/03/things.png' rel="lightbox[14]" title="things"><img src="http://www.stefanorodighiero.net/blog/wp-content/uploads/2008/03/things.png" alt="" title="things" width="94" height="110" class="alignnone size-full attachment wp-att-13" /></a><br />
In questi giorni sto usando parecchio <a href="http://culturedcode.com/things/">Things</a>, un&#8217;applicazione per Macintosh per il task management al momento in beta. Secondo me è molto indovinata, per un po&#8217; di motivi:</p>
<ul>
<li>L&#8217;interfaccia è pensata bene, e benchè manchino ancora alcune cose comode, si raggiunge ogni cosa rapidamente.</li>
<li>Gli attributi legati a ciascun task sono sufficienti per organizzare il lavoro tipico (almeno, a me non vanno stretti): si possono organizzare i task per progetto, task e progetti si possono a loro volta organizzare per area di responsabilità. Ad ogni task sono associabili dei tag, e l&#8217;interfaccia consente di usarli per scremare rapidamente la lista delle cose da fare. Il punto quando si usano programmi di questo genere è la concentrazione sul singolo punto, senza essere soverchiati da troppe informazioni, e al tempo stesso senza perdere la possibilità di passare rapidamente alla vista generale.</li>
<li>In qualunque momento, e con il focus su qualunque altra applicazione, è possibile richiamare una finestra dalla quale aggiungere un task alla propria lista. È veloce, non è intrusivo, e si infila perfettamente nel flusso di lavoro di tutti i giorni, per il quale tipicamente si usano tanti programmi contemporaneamente. Bravi.<br />
<a href='http://www.stefanorodighiero.net/blog/wp-content/uploads/2008/03/things-hud.png' rel="lightbox[14]" title="things-hud"><img src="http://www.stefanorodighiero.net/blog/wp-content/uploads/2008/03/things-hud-300x90.png" alt="" title="things-hud" width="300" height="90" class="alignnone size-medium attachment wp-att-15" /></a>
</li>
<li>I dati vengono memorizzati in formato XML. Oltre all&#8217;ovvio vantaggio di non perdere nulla se un domani si decide di cambiare programma, mi aspetto che questa caratteristica porti ad un proliferare di utility di terze parti per fare qualcosa di ancora più utile con i dati prodotti con questo software. Ad esempio sto pensando ad uno script che trasformi l&#8217;XML in una pagina web da mostrare ai propri colleghi e collaboratori: una pagina che dica &#8220;ho fatto questo, manca quest&#8217;altro&#8221;.</li>
<li>Si integra con l&#8217;address book, e permette di memorizzare un task assegnandolo ad uno dei propri contatti. Non esiste una vera e propria funzionalità di comunicazione, ma è comunque utile per mantenere aggiornata la propria visione di &#8220;chi deve fare cosa&#8221;.</li>
</ul>
<p>Tra le cose che mi piacerebbero per le future versioni, la possibilità di organizzare i task gerarchicamente (cosa fattibile tutto sommato con i progetti, ma fatta questa considerazione sono al punto di prima, e sento il desiderio di organizzare gerarchicamente i progetti).</p>
<div style="height:33px;" class="really_simple_share robots-nocontent snap_nopreview"><div class="really_simple_share_facebook_like" style="width:100px;">
				<iframe src="http://www.facebook.com/plugins/like.php?href=http%3A%2F%2Fwww.stefanorodighiero.net%2Fblog%2F2008%2F03%2Fthings%2F&amp;layout=button_count&amp;show_faces=false&amp;width=100&amp;action=like&amp;colorscheme=light&amp;send=false&amp;height=27" 
						scrolling="no" frameborder="0" style="border:none; overflow:hidden; width:100px; height:27px;" allowTransparency="true"></iframe>
				</div><div class="really_simple_share_google1" style="width:90px;">
					<g:plusone size="medium" href="http://www.stefanorodighiero.net/blog/2008/03/things/" ></g:plusone>
				</div><div class="really_simple_share_twitter" style="width:110px;">
					<a href="http://twitter.com/share" class="twitter-share-button" data-count="horizontal" 
						data-text="Things (via @larsen)" data-url="http://www.stefanorodighiero.net/blog/2008/03/things/" 
						data-via="" ></a> 
				</div></div>
		<div style="clear:both;"></div>]]></content:encoded>
			<wfw:commentRss>http://www.stefanorodighiero.net/blog/2008/03/things/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Zero inbox?</title>
		<link>http://www.stefanorodighiero.net/blog/2008/03/zero-inbox/</link>
		<comments>http://www.stefanorodighiero.net/blog/2008/03/zero-inbox/#comments</comments>
		<pubDate>Fri, 28 Mar 2008 10:05:34 +0000</pubDate>
		<dc:creator>larsen</dc:creator>
				<category><![CDATA[Productivity]]></category>
		<category><![CDATA[email]]></category>
		<category><![CDATA[gtd]]></category>

		<guid isPermaLink="false">http://www.stefanorodighiero.net/?p=9</guid>
		<description><![CDATA[I need to rationalize my inbox.]]></description>
			<content:encoded><![CDATA[<p><a href='http://www.stefanorodighiero.net/wp-content/uploads/2008/03/0inbox.png' rel="lightbox[9]" title="0inbox"><img src="http://www.stefanorodighiero.net/blog/wp-content/uploads/2008/03/0inbox.png" alt="" title="0inbox" width="390" height="59" class="aligncenter size-full attachment wp-att-10" /></a>I need to <a href="http://www.43folders.com/izero">rationalize</a> my inbox.</p>
<div style="height:33px;" class="really_simple_share robots-nocontent snap_nopreview"><div class="really_simple_share_facebook_like" style="width:100px;">
				<iframe src="http://www.facebook.com/plugins/like.php?href=http%3A%2F%2Fwww.stefanorodighiero.net%2Fblog%2F2008%2F03%2Fzero-inbox%2F&amp;layout=button_count&amp;show_faces=false&amp;width=100&amp;action=like&amp;colorscheme=light&amp;send=false&amp;height=27" 
						scrolling="no" frameborder="0" style="border:none; overflow:hidden; width:100px; height:27px;" allowTransparency="true"></iframe>
				</div><div class="really_simple_share_google1" style="width:90px;">
					<g:plusone size="medium" href="http://www.stefanorodighiero.net/blog/2008/03/zero-inbox/" ></g:plusone>
				</div><div class="really_simple_share_twitter" style="width:110px;">
					<a href="http://twitter.com/share" class="twitter-share-button" data-count="horizontal" 
						data-text="Zero inbox? (via @larsen)" data-url="http://www.stefanorodighiero.net/blog/2008/03/zero-inbox/" 
						data-via="" ></a> 
				</div></div>
		<div style="clear:both;"></div>]]></content:encoded>
			<wfw:commentRss>http://www.stefanorodighiero.net/blog/2008/03/zero-inbox/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

