<?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>eriksmartt.com/blog &#187; productivity</title>
	<atom:link href="http://www.eriksmartt.com/blog/archives/tag/productivity/feed" rel="self" type="application/rss+xml" />
	<link>http://www.eriksmartt.com/blog</link>
	<description>my little chunk of bandwidth</description>
	<lastBuildDate>Wed, 08 Sep 2010 18:48:28 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.1-alpha</generator>
		<item>
		<title>JavaScript on the Server, and conversations at TXJS</title>
		<link>http://www.eriksmartt.com/blog/archives/1344</link>
		<comments>http://www.eriksmartt.com/blog/archives/1344#comments</comments>
		<pubDate>Fri, 11 Jun 2010 19:22:19 +0000</pubDate>
		<dc:creator>erik</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[productivity]]></category>
		<category><![CDATA[software]]></category>
		<category><![CDATA[technical]]></category>

		<guid isPermaLink="false">http://www.eriksmartt.com/blog/?p=1344</guid>
		<description><![CDATA[We&#8217;ve seen various attempts at using JavaScript on the server over the last decade. Mozilla&#8217;s Rhino (Java) engine fueled most of it. However, with the release of Google&#8217;s V8 (C++) engine (and the networking performance example set by Node.js), the conversation is gaining traction. The motivation for a 100% JavaScript stack, per conversations at Texas [...]]]></description>
			<content:encoded><![CDATA[<p>We&#8217;ve seen various attempts at using JavaScript on the server over the last decade.  Mozilla&#8217;s <a href="http://www.mozilla.org/rhino/">Rhino</a> (Java) engine fueled most of it.  However, with the release of Google&#8217;s <a href="http://code.google.com/p/v8/">V8</a> (C++) engine (and the networking performance example set by <a href="http://nodejs.org">Node.js</a>), the conversation is gaining traction.</p>
<p>The motivation for a 100% JavaScript stack, per conversations at Texas JavaScript Conference (<a href="http://texasjavascript.com/">TXJS</a>) last weekend, is the desire to use a single programming language when developing web applications, rather than the mix of technologies we use today.  It&#8217;s not so much that JavaScript is the best language for application development (contrary to the JS fanboys), but since it&#8217;s what we&#8217;re stuck with on the client-side, it&#8217;s worth considering on the server-side.  With a single language, business logic can be reused on the client and the server (think form validation), and you avoid bugs caused by frequent language switching (i.e., using, or forgetting semi-colons, putting commas after the last item in an array, using the wrong comment delimiter, etc.)</p>
<p>The wrinkle in the 100% JavaScript argument, is whether JavaScript is actually the language you want to write your back-end in.  The language lacks package management standards (though <a href="http://commonjs.org/">CommonJS</a> is working to change that); It lacks the standard libraries and tools that the incumbents offer (i.e., no batteries included);  Maybe people who use it don&#8217;t actually know the language very well;  And it suffers from the multitude of bad examples and advice freely available online.</p>
<p>There have been some interesting Node-based applications developed already (i.e., <a href="http://mnutt.github.com/hummingbird/">Hummingbird</a>), and the JavaScript on App Engine efforts (i.e., <a href="http://www.appenginejs.org/">AppEngineJS</a>) will be interesting to watch as well.  (I expect both to foster more mature development patterns for large applications written in JavaScript.)  However, in the near term, the 100% JavaScript stack will likely remain as niche as the Erlang, Haskel, Lisp, etc. web frameworks (as interesting as they may be.)</p>
<p>The question for you (Mr./Mrs. web developer/web-savvy business person), is whether JavaScript on the back-end offers a competitive advantage.  Can you execute on an idea faster/better/cheaper than your competition because of your technology stack?</p>]]></content:encoded>
			<wfw:commentRss>http://www.eriksmartt.com/blog/archives/1344/feed</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Sketching interaction stories with markers and iPhones</title>
		<link>http://www.eriksmartt.com/blog/archives/723</link>
		<comments>http://www.eriksmartt.com/blog/archives/723#comments</comments>
		<pubDate>Sun, 08 Feb 2009 23:22:15 +0000</pubDate>
		<dc:creator>erik</dc:creator>
				<category><![CDATA[design]]></category>
		<category><![CDATA[hci]]></category>
		<category><![CDATA[iphone]]></category>
		<category><![CDATA[productivity]]></category>

		<guid isPermaLink="false">http://www.eriksmartt.com/blog/?p=723</guid>
		<description><![CDATA[I recently posted about Bill Buxton&#8217;s book, &#8220;Sketching User Experiences&#8220;, so I thought I&#8217;d share an example on using these kinds of techniques on a recent project. The problem at hand involved concepting a number of new features for an existing website, and sharing these concepts with a remote team. (When you can&#8217;t get everyone [...]]]></description>
			<content:encoded><![CDATA[<p>I <a href="http://www.eriksmartt.com/blog/archives/710">recently posted</a> about Bill Buxton&#8217;s book, &#8220;<a href="http://www.amazon.com/gp/product/0123740371?ie=UTF8&#038;tag=eriksmarttcom&#038;linkCode=as2&#038;camp=1789&#038;creative=9325&#038;creativeASIN=0123740371">Sketching User Experiences</a>&#8220;<img src="http://www.assoc-amazon.com/e/ir?t=eriksmarttcom&#038;l=as2&#038;o=1&#038;a=0123740371" width="1" height="1" border="0" alt="" style="border:none !important; margin:0px !important;" />, so I thought I&#8217;d share an example on using these kinds of techniques on a recent project.</p>
<p>The problem at hand involved concepting a number of new features for an existing website, and sharing these concepts with a remote team.  (When you can&#8217;t get everyone in the same room, it&#8217;s key that the team can quickly share ideas.)</p>
<p>For this session, we used:</p>
<ul>
<li>Whiteboards</li>
<li>Paper</li>
<li>Markers, scissors, and tape</li>
<li>iPhones</li>
<li>Keynote</li>
</ul>
<p>The goals were to:</p>
<ul>
<li>Tell a story</li>
<li>Leave room for creative thinking</li>
<li>Validate concepts</li>
<li>Align thinking</li>
</ul>
<p>After open brainstorming and traditional white-boarding, a number of concepts were quickly sketched on paper (generally one sheet per screen.)  These screen sketches were taped to a whiteboard, allowing quick note-taking and annotations:</p>
<p><img src="http://www.eriksmartt.com/blog/wp-content/uploads/2009/01/whiteboard_session.jpg" width="600" height="450" border="0" alt="photo of whiteboard working session" /></p>
<p>After walking through the concepts (and iterating) with a number of local victims, the screens were captured with an iPhone camera and pulled-into Keynote to create the storyboards.  With each screen as a slide, a story can be told within the presentation format:</p>
<p><img src="http://www.eriksmartt.com/blog/wp-content/uploads/2009/01/wireframe_in_keynote.jpg" width="600" height="414" border="0" alt="bringing images into Keyboard" /></p>
<p>Using this approach, stories can be shared globally, and changed in minutes.  The hand-drawn images ensure that no-one gets hung-up on colors or copy writing, and they require a little creativity on the part of the reader, which gets the gears turning and leads to fantastic questions.</p>]]></content:encoded>
			<wfw:commentRss>http://www.eriksmartt.com/blog/archives/723/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Ubiquity command to expand hyperlinks</title>
		<link>http://www.eriksmartt.com/blog/archives/588</link>
		<comments>http://www.eriksmartt.com/blog/archives/588#comments</comments>
		<pubDate>Tue, 07 Oct 2008 15:58:51 +0000</pubDate>
		<dc:creator>erik</dc:creator>
				<category><![CDATA[code]]></category>
		<category><![CDATA[productivity]]></category>
		<category><![CDATA[web]]></category>

		<guid isPermaLink="false">http://www.eriksmartt.com/blog/?p=588</guid>
		<description><![CDATA[Another simple Ubiquity command for the morning&#8230; This one, called &#8216;expandlinks&#8217;, finds all links on the current page and adds the link&#8217;s URL (as a hyperlink itself) next to each existing link label. This is particularly handy if you&#8217;re going to print an HTML page for later reference. CmdUtils.CreateCommand({ name: "expandlinks", homepage: "http://eriksmartt.com/blog/", author: { [...]]]></description>
			<content:encoded><![CDATA[<p>Another simple <a href="https://wiki.mozilla.org/Labs/Ubiquity">Ubiquity</a> command for the morning&#8230; This one, called &#8216;expandlinks&#8217;, finds all links on the current page and adds the link&#8217;s URL (as a hyperlink itself) next to each existing link label.  This is particularly handy if you&#8217;re going to print an HTML page for later reference.</p>
<pre><code>
CmdUtils.CreateCommand({
  name: "expandlinks",
  homepage: "http://eriksmartt.com/blog/",
  author: { name: "Erik Smartt"},
  license: "MPL",
  preview: "Expands all hyperlinks, showing link locations.",
  execute: function() {
    var doc =  Application.activeWindow.activeTab.document;
    jQuery(doc.body).find("a").each(function(i) {
        jQuery(this).after(" &amp;lt;&lt;a href='" + this.href + "'&gt;" + this.href + "&lt;/a&gt;&amp;gt;");
    });
  }
})
</code></pre>
<p>And yes, it will be much easier to subscribe to these commands once I gather them into a JS file for Ubiquity.  For now, you can copy/paste into the command editor if you&#8217;re interested in trying it out.</p>]]></content:encoded>
			<wfw:commentRss>http://www.eriksmartt.com/blog/archives/588/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>&#8220;FORTUNE: How I Work&#8221;</title>
		<link>http://www.eriksmartt.com/blog/archives/574</link>
		<comments>http://www.eriksmartt.com/blog/archives/574#comments</comments>
		<pubDate>Mon, 22 Sep 2008 20:40:43 +0000</pubDate>
		<dc:creator>erik</dc:creator>
				<category><![CDATA[business]]></category>
		<category><![CDATA[productivity]]></category>
		<category><![CDATA[quote]]></category>

		<guid isPermaLink="false">http://www.eriksmartt.com/blog/?p=574</guid>
		<description><![CDATA[&#8220;FORTUNE: How I Work&#8221; isn&#8217;t a new piece, but I&#8217;ve gone back to it a few times, so I thought I&#8217;d share the link and a some thoughts on it. The article interviews twelve successful, industry leaders on how they work and what they do to manage their workload. The common themes are that they [...]]]></description>
			<content:encoded><![CDATA[<p>&#8220;<a href="http://money.cnn.com/popups/2006/fortune/how_i_work/frameset.exclude.html">FORTUNE: How I Work</a>&#8221; isn&#8217;t a new piece, but I&#8217;ve gone back to it a few times, so I thought I&#8217;d share the link and a some thoughts on it.</p>
<p>The article interviews twelve successful, industry leaders on how they work and what they do to manage their workload.  The common themes are that they all tend to work 12+ hour days (and generally weekends); They cut out the noise and distractions; Focus on what&#8217;s important; leverage their staff; and spend a large amount of their time emailing or calling people.  That&#8217;s a pretty good reflection of what Peter Drucker describes in the book,  &#8220;<a href="http://www.amazon.com/gp/product/0060833459?ie=UTF8&#038;tag=eriksmarttcom&#038;linkCode=as2&#038;camp=1789&#038;creative=9325&#038;creativeASIN=0060833459">The Effective Executive</a><img src="http://www.assoc-amazon.com/e/ir?t=eriksmarttcom&#038;l=as2&#038;o=1&#038;a=0060833459" width="1" height="1" border="0" alt="" style="border:none !important; margin:0px !important;" />&#8220;, which is perhaps why it&#8217;s so interesting to hear first-hand.</p>
<p>I pulled a few quotes, but left off the names so you&#8217;ll have to <a href="http://money.cnn.com/popups/2006/fortune/how_i_work/frameset.exclude.html">read the article</a> to find out who said these:</p>
<h3>On working hours:</h3>
<ul>
<li>&#8220;I get up about 4:30 A.M. and check out the markets. &#8220;</li>
<li>&#8220;I get up between 5 and 5:30&#8243;</li>
<li>&#8220;I wake up somewhere between 5 and 6 A.M.&#8221;</li>
<li>&#8220;My day starts around 9 A.M. and meetings finish up around 8 P.M. After that I stay in the office to do action items and e-mail. I can get by on four to six hours of sleep.&#8221;</li>
<li>&#8220;I try to get home by 7:30 P.M.&#8221;</li>
<li>&#8220;&#8230;head off to work about 5:45 A.M.&#8221;</li>
<li>&#8220;I do marathon e-mail catch-up sessions, sometimes on a Saturday or Sunday. I&#8217;ll just sit down and do e-mail for ten to 14 hours straight.&#8221;</li>
<li>&#8220;I usually go home after lunch and then spend the rest of the afternoon and evening, except for dinner, up till about 11:30 p.m., working.&#8221;</li>
<li>&#8220;If I don&#8217;t do six hours of sleep I&#8217;m in bad shape, but I&#8217;m usually up by six.&#8221;</li>
<li>&#8220;I typically don&#8217;t sign off e-mail until midnight.&#8221;</li>
<li>&#8220;My day usually ends in the office at about six o&#8217;clock, but then I go to two or three parties a night&#8230; Then, no matter when I get home at night &#8212; and it&#8217;s usually late &#8212; I do at least an hour or two of e-mail.&#8221;</li>
<li>&#8220;I&#8217;m asleep at 10. I&#8217;m up at 5:30 and try to work out four or five times a week.&#8221;</li>
</ul>
<h3>On allocating time:</h3>
<ul>
<li>&#8220;For meetings on a single topic that aren&#8217;t regular operational meetings, I&#8217;m very strict. The maximum is one hour and 30 minutes. Fifty percent of the time is for the presentation, 50 percent is for discussion.&#8221;</li>
<li>&#8220;If I have a business dinner, people know that it should start at 6:30 and be over by 8:30. &#8220;</li>
</ul>
<h3>On leveraging staff:</h3>
<ul>
<li>&#8220;I have two assistants now. I have an assistant from 7 in the morning till 4 in the afternoon, and then an assistant from 4 to midnight.&#8221;</li>
<li>&#8220;I rely on staff to take care of things that I know they can.&#8221;</li>
</ul>
<h3>On focus and resetting oneself:</h3>
<ul>
<li>&#8220;Every day at 8:30 A.M., I get up from my desk and walk to a health club across the street. I do yoga and work out for probably an hour and a half&#8230;&#8221;</li>
<li>&#8220;Some of my best ideas literally come from standing on my head doing yoga. I&#8217;m away from the office, away from the noise&#8230;&#8221;</li>
<li>&#8220;I don&#8217;t have a cellphone, I don&#8217;t have a Black-Berry.&#8221;</li>
<li>&#8220;It is also important to take a distance from the problem. I do not bring my work home.&#8221;</li>
<li>&#8220;I find that meditating for five, ten, or 15 minutes in a hotel room at night can be as good as a workout&#8221;</li>
<li>&#8220;I still work weekends, though not the killer hours I used to.&#8221;</li>
</ul>]]></content:encoded>
			<wfw:commentRss>http://www.eriksmartt.com/blog/archives/574/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Finished reading &#8220;The Simplicity Survival Handbook&#8221;</title>
		<link>http://www.eriksmartt.com/blog/archives/558</link>
		<comments>http://www.eriksmartt.com/blog/archives/558#comments</comments>
		<pubDate>Mon, 08 Sep 2008 03:16:00 +0000</pubDate>
		<dc:creator>erik</dc:creator>
				<category><![CDATA[books]]></category>
		<category><![CDATA[business]]></category>
		<category><![CDATA[productivity]]></category>

		<guid isPermaLink="false">http://www.eriksmartt.com/blog/?p=558</guid>
		<description><![CDATA[&#8220;The Simplicity Survival Handbook: 32 Ways To Do Less And Accomplish More&#8221; Not a GTD book &#8212; this is about cutting past the typical B.S. you find in a corporate environment. Fewer meetings, quicker communication, more transparency, focusing on what matters. Similar to &#8220;Cut to the Chase: and 99 Other Rules to Liberate Yourself and [...]]]></description>
			<content:encoded><![CDATA[<p>&#8220;<a href="http://www.amazon.com/gp/product/0738209120?ie=UTF8&#038;tag=eriksmarttcom&#038;linkCode=as2&#038;camp=1789&#038;creative=9325&#038;creativeASIN=0738209120">The Simplicity Survival Handbook: 32 Ways To Do Less And Accomplish More</a><img src="http://www.assoc-amazon.com/e/ir?t=eriksmarttcom&#038;l=as2&#038;o=1&#038;a=0738209120" width="1" height="1" border="0" alt="" style="border:none !important; margin:0px !important;" />&#8221;</p>
<p>Not a <a href="http://en.wikipedia.org/wiki/GTD">GTD</a> book &#8212; this is about cutting past the typical B.S. you find in a corporate environment.  Fewer meetings, quicker communication, more transparency, focusing on what matters.  Similar to &#8220;<a href="http://www.amazon.com/gp/product/0385516207?ie=UTF8&#038;tag=eriksmarttcom&#038;linkCode=as2&#038;camp=1789&#038;creative=9325&#038;creativeASIN=0385516207">Cut to the Chase: and 99 Other Rules to Liberate Yourself and Gain Back the Gift of Time</a>&#8220;<img src="http://www.assoc-amazon.com/e/ir?t=eriksmarttcom&#038;l=as2&#038;o=1&#038;a=0385516207" width="1" height="1" border="0" alt="" style="border:none !important; margin:0px !important;" />, but with a bit more emphasis on working corporate politics.</p>
<p>The main themes:</p>
<ul>
<li>You have only 1440 minutes per day. Use them wisely, and respect other&#8217;s 1440.</li>
<li>Cut out everything that wastes your (or other&#8217;s) time.</li>
<li>&#8220;Do Less&#8221; by focusing only on what matters.</li>
<li>Identify the <i>real</i> problems (ie., what keeps your boss up at night) and solve them. That&#8217;s your best path to career advancement, approved budgets, etc.</li>
<li>Don&#8217;t tolerate a work environment that wastes your time.</li>
</ul>]]></content:encoded>
			<wfw:commentRss>http://www.eriksmartt.com/blog/archives/558/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Even simpler then my last Ubiquity examp&#8230;</title>
		<link>http://www.eriksmartt.com/blog/archives/547</link>
		<comments>http://www.eriksmartt.com/blog/archives/547#comments</comments>
		<pubDate>Wed, 27 Aug 2008 20:21:39 +0000</pubDate>
		<dc:creator>erik</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[code]]></category>
		<category><![CDATA[productivity]]></category>
		<category><![CDATA[web]]></category>

		<guid isPermaLink="false">http://www.eriksmartt.com/blog/?p=547</guid>
		<description><![CDATA[Even simpler then my last Ubiquity example, this one came about from an actual project need to verify a custom character-length based text truncation filter. Select the text in the browser, invoke Ubiquity, and type: charcount CmdUtils.CreateCommand({ name: "charcount", takes: {"text to count chars in": noun_arb_text}, preview: function( pblock, argText ) { pblock.innerHTML = argText.text.length; [...]]]></description>
			<content:encoded><![CDATA[<p>Even simpler then my last <a href="https://wiki.mozilla.org/Labs/Ubiquity">Ubiquity</a> example, this one came about from an actual project need to verify a custom character-length based text truncation filter.  Select the text in the browser, invoke Ubiquity, and type: charcount</p>
<p><code>
<pre>
CmdUtils.CreateCommand({
  name: "charcount",
  takes: {"text to count chars in": noun_arb_text},
  preview: function( pblock, argText ) {
    pblock.innerHTML = argText.text.length;
  }
})
</pre>
<p></code></p>
<p><b>Update</b>: See comments below for Ubiquity 0.5 compatibility updates</p>]]></content:encoded>
			<wfw:commentRss>http://www.eriksmartt.com/blog/archives/547/feed</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Extending Mozilla Ubiquity &#8212; stock charts and Google Finance lookup</title>
		<link>http://www.eriksmartt.com/blog/archives/543</link>
		<comments>http://www.eriksmartt.com/blog/archives/543#comments</comments>
		<pubDate>Wed, 27 Aug 2008 20:08:24 +0000</pubDate>
		<dc:creator>erik</dc:creator>
				<category><![CDATA[code]]></category>
		<category><![CDATA[productivity]]></category>
		<category><![CDATA[web]]></category>

		<guid isPermaLink="false">http://www.eriksmartt.com/blog/?p=543</guid>
		<description><![CDATA[Mozilla Ubiquity was released this week, and the functionality was so inspiring that I couldn&#8217;t help playing with it. For those that haven&#8217;t checked it out yet, think &#8220;Quicksilver inside Firefox&#8221;&#8230; or perhaps, &#8220;a contextually-aware command-line for your web browser.&#8221; If that still doesn&#8217;t mean anything to you&#8230; well, you&#8217;ll have to watch the intro [...]]]></description>
			<content:encoded><![CDATA[<p><a href="https://wiki.mozilla.org/Labs/Ubiquity">Mozilla Ubiquity</a> was released this week, and the functionality was so inspiring that I couldn&#8217;t help playing with it.  For those that haven&#8217;t checked it out yet, think &#8220;Quicksilver inside Firefox&#8221;&#8230; or perhaps, &#8220;a contextually-aware command-line for your web browser.&#8221;  If that still doesn&#8217;t mean anything to you&#8230; well, you&#8217;ll have to <a href="http://labs.mozilla.com/2008/08/introducing-ubiquity/">watch the intro video</a> ;-)</p>
<p>Extending Ubiquity&#8217;s vocabulary is done via JavaScript, and <a href="https://wiki.mozilla.org/Labs/Ubiquity/Ubiquity_0.1_Author_Tutorial">the developer docs</a> are pretty straight forward.</p>
<p>The docs cover Hello World, so I figured that the next best intro test would be a way to lookup stock charts and quotes.  Here&#8217;s the result of a few minutes hacking on it:</p>
<p><code>
<pre>
CmdUtils.CreateCommand({
  name: "tik",
  takes: {"stock ticker symbol": noun_arb_text},
  preview: function( pblock, argText ) {
    var charturl = "http://chart.finance.yahoo.com/c/1y/a/" + argText.text;
    pblock.innerHTML = "<img src='" + charturl + "' />";
  },
  execute: function( argText ) {
    var windowManager = Components.classes["@mozilla.org/appshell/window-mediator;1"]
                      .getService(Components.interfaces.nsIWindowMediator);
    var browserWindow = windowManager.getMostRecentWindow("navigator:browser");
    var browser = browserWindow.getBrowser();
    var url = "http://finance.google.com/finance?q=" + argText.text;
    browser.loadOneTab(url, null, null, null, false, false);
  }
})
</pre>
<p></code></p>
<p>This command introduces a &#8216;tik&#8217; keyword, which loads 1-year stock symbol charts (from Yahoo) into the preview pane, and allows click-through to open a new tab for the Google Finance page of said symbol.  Note that the preview-pane doesn&#8217;t always resize correctly for the chart to fit (though you can generally make it happen by typing a space after the stock symbol.)  I guess there&#8217;s still some work to do there.</p>]]></content:encoded>
			<wfw:commentRss>http://www.eriksmartt.com/blog/archives/543/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>
