<?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>Red Sweater Blog &#187; Usability</title>
	<atom:link href="http://www.red-sweater.com/blog/category/articles/usability/feed" rel="self" type="application/rss+xml" />
	<link>http://www.red-sweater.com/blog</link>
	<description>Mac &#38; Technology Writings by Daniel Jalkut</description>
	<lastBuildDate>Tue, 17 Jan 2012 22:03:11 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.1.1</generator>
		<item>
		<title>Word Breaks For Nerds</title>
		<link>http://www.red-sweater.com/blog/2137/word-breaks-for-nerds</link>
		<comments>http://www.red-sweater.com/blog/2137/word-breaks-for-nerds#comments</comments>
		<pubDate>Wed, 24 Aug 2011 16:29:18 +0000</pubDate>
		<dc:creator>Daniel Jalkut</dc:creator>
				<category><![CDATA[Lion]]></category>
		<category><![CDATA[Usability]]></category>

		<guid isPermaLink="false">http://www.red-sweater.com/blog/?p=2137</guid>
		<description><![CDATA[Those of us who do a lot of typing on Macs are familiar with a variety of keyboard shortcuts for navigating lines, words, and characters in text editors that use standard &#8220;Cocoa key bindings.&#8221; Among those common keyboard shortcuts are cmd-arrow to move to the beginning or end of a line, and option-arrow to move [...]]]></description>
			<content:encoded><![CDATA[<p>Those of us who do a lot of typing on Macs are familiar with a variety of keyboard shortcuts for navigating lines, words, and characters in text editors that use standard &#8220;Cocoa key bindings.&#8221;</p>
<p>Among those common keyboard shortcuts are cmd-arrow to move to the beginning or end of a line, and option-arrow to move between words in a sentence.</p>
<p>Starting in Lion, Apple fine-tuned the behavior by changing the definition of what constitutes a word delimiter for option-arrow navigation. While it used to stop on e.g. period-separated words, now it considers such chains.of.words to be a single &#8220;word.&#8221;  My friend <a href="http://www.mikeash.com/">Mike Ash</a> noticed this and, when he complained about it to me, I set about finding a solution.</p>
<p>It turns out there&#8217;s a supported preference setting to alter this behavior. Look in your System Preferences under the Langage &amp; Text pane, and you&#8217;ll find a &#8220;Word Breaks&#8221; setting with various options, including a special one just for nerds:</p>
<p><img title="Language &amp; Text.png" src="http://www.red-sweater.com/blog/wp-content/downloads/2011/08/Language-Text.png" border="0" alt="Language  Text" width="450" height="324" /></p>
<p>For most people, the &#8220;Standard&#8221; setting is probably the right choice. But computer programmers are far more likely to encounter words that are separated by syntactic characters such as periods, colons, etc. For us, it makes more sense to have the system pause at these word breaks than to breeze right by them.</p>
<p><strong>Updates:</strong></p>
<ol>
<li>You should take note that after changing the setting, you won&#8217;t notice changes in applications until they have been quit and relaunched again.</li>
<li>As noted in the comments, this feature was apparently available in 10.6 as well, and was possible more along the lines of the default in 10.5 and previous. The growing consensus seems to be that it was in the update from 10.6 to 10.7 that a previous selection of this setting was not preserved.</li>
</ol>
<p> </p>
]]></content:encoded>
			<wfw:commentRss>http://www.red-sweater.com/blog/2137/word-breaks-for-nerds/feed</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>Toggle Twitter</title>
		<link>http://www.red-sweater.com/blog/1646/toggle-twitter</link>
		<comments>http://www.red-sweater.com/blog/1646/toggle-twitter#comments</comments>
		<pubDate>Sat, 22 Jan 2011 20:09:53 +0000</pubDate>
		<dc:creator>Daniel Jalkut</dc:creator>
				<category><![CDATA[AppleScript]]></category>
		<category><![CDATA[FastScripts]]></category>
		<category><![CDATA[Usability]]></category>

		<guid isPermaLink="false">http://www.red-sweater.com/blog/?p=1646</guid>
		<description><![CDATA[I use Twitter. A lot, and almost entirely on my Mac desktop. Over the years, I have switched between many popular client applications, often returning to old favorites when the specific advantages of one outweighs the advantages of another for my current priorities. The way I use Twitter is to leave one of these client [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://twitter.com/danielpunkass">I use Twitter</a>. A lot, and almost entirely on my Mac desktop. Over the years, I have switched between many popular client applications, often returning to old favorites when the specific advantages of one outweighs the advantages of another for my current priorities.</p>
<p>The way I use Twitter is to leave one of these client applications running in the background, with all the notification settings set to off. I still check it quite often, but it&#8217;s on my terms. If I get deep into concentration working on some bug, chatting with a friend, or or watching a video, I don&#8217;t want Twitter interrupting me.</p>
<p><a href="http://iconfactory.com/software/twitterrific">Twitterrific</a> was the first desktop client I used, and I can&#8217;t remember whether it was the default choice or if I picked it, but I got in the habit of using the global keyboard shortcut <strong>Cmd-Ctrl-T</strong> to toggle the window&#8217;s visibility. When I tried other Twitter apps, I made a point of setting the preference in that app to match the same shortcut.</p>
<p>Eventually I tried an app that didn&#8217;t support a setting for a global keyboard shortcut, so I had to write a script to do it for me. It occurred to me at some point that I could write a single AppleScript to handle the toggling of visibility regardless of which app I was using.</p>
<p><a href="http://www.red-sweater.com/AppleScript/ToggleTwitter.zip">Download &#8220;Toggle Twitter&#8221;</a></p>
<p>The script logic is pretty simple: given a list of common Twitter app-names, is one of them running? If so, toggle it. If not, launch it. If you&#8217;re using something else, just add it to the list, and it should work perfectly.</p>
<p>I used <a href="http://www.red-sweater.com/fastscripts/">FastScripts</a> to hook this up to the global shortcut <strong>Cmd-Ctrl-T</strong> because it matches my historic muscle memory, and well, T is for Twitter.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.red-sweater.com/blog/1646/toggle-twitter/feed</wfw:commentRss>
		<slash:comments>9</slash:comments>
		</item>
		<item>
		<title>Instapaper Keyboard Shortcut</title>
		<link>http://www.red-sweater.com/blog/1594/instapaper-keyboard-shortcut</link>
		<comments>http://www.red-sweater.com/blog/1594/instapaper-keyboard-shortcut#comments</comments>
		<pubDate>Fri, 14 Jan 2011 20:17:10 +0000</pubDate>
		<dc:creator>Daniel Jalkut</dc:creator>
				<category><![CDATA[FastScripts]]></category>
		<category><![CDATA[Usability]]></category>
		<category><![CDATA[Web]]></category>

		<guid isPermaLink="false">http://www.red-sweater.com/blog/?p=1594</guid>
		<description><![CDATA[Like many people these days, I am using Marco Arment&#8217;s Instapaper to facilitate effortless postponement of reading longer, potentially interesting content I find on the web. Marco provides a handy bookmarklet that you can add to your browser&#8217;s button bar, so when you find something cool you just click &#8220;Read Later&#8221; and it gets added [...]]]></description>
			<content:encoded><![CDATA[<p>Like many people these days, I am using <a href="http://twitter.com/marcoarment">Marco Arment&#8217;s</a> <a href="http://instapaper.com/">Instapaper</a> to facilitate effortless postponement of reading longer, potentially interesting content I find on the web.</p>
<p>Marco provides a handy <a href="http://www.instapaper.com/extras">bookmarklet</a> that you can add to your browser&#8217;s button bar, so when you find something cool you just click &#8220;Read Later&#8221; and it gets added to your Instapaper collection. This is handy, and if you&#8217;re using a browser like Safari, these bookmark bar items even get mapped to default keyboard shortcuts based on their position, e.g. Cmd-1, Cmd-2, etc.</p>
<p>My news reader of choice, NetNewsWire, also supports Instapaper, allowing me to easily add any news item&#8217;s underlying content to my &#8220;Read Later&#8221; list. In NetNewsWire, the keyboard shortcut is Ctrl-P (for paper!), and I&#8217;ve gotten hard wired to punting stuff to my reading list with a quick flick of the keys.</p>
<p>For months I&#8217;ve thought it would be nice if I had the same workflow in Safari and in NetNewsWire: see something, want to read it, don&#8217;t have time, press Ctrl-P. I don&#8217;t know why I took so long to sit down and spend the 5 minutes it took to write an AppleScript wrapper for Marco&#8217;s bookmarklet, and install it in my scripts folder to invoke with <a href="http://www.red-sweater.com/fastscripts/">FastScripts</a>.</p>
<p>If you want to be cool like me:</p>
<ol>
<li>Download and install <a href="http://www.red-sweater.com/fastscripts/">FastScripts</a>. Free for up to 10 shortcuts!</li>
<li>From the FastScripts menu-bar icon, select FastScripts -&gt; Create Safari Scripts Folder.</li>
<li>Download <a href="http://www.red-sweater.com/AppleScript/ReadLater.zip">this script</a>, and move it to the Safari-specific scripts folder: [Home] -&gt; Library -&gt; Scripts -&gt; Applications -&gt; Safari</li>
<li>Switch to Safari.</li>
<li>While holding the Cmd key, select &#8220;Read Later&#8221; from the FastScripts menu.</li>
<li>Assign a keyboard shortcut of your choice. (Ctrl-P for NNW-likeness).</li>
</ol>
<p>Now whenever you see a cool page in Safari, just press Ctrl-P to instantly tag it for later reading.</p>
<p><strong>Update:</strong> David Kendal observes <a href="https://twitter.com/dpkendal/status/26012924975779840">on Twitter</a> that you can assign custom keyboard shortcuts to bookmarks in Safari by simply using the System Preferences Keyboard Shortcuts and assigning to the correctly named bookmark. I was not aware that this would work with bookmarks! Very cool. It diminishes the necessity of the above workflow considerably, though I was pleased to be able to take &#8220;Read Later&#8221; out of my bookmarks bar. Another downside to the System Preferences route? Apparently the keyboard shortcuts will never take effect until you&#8217;ve shown the menu that they appear in at least once per Safari-launch.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.red-sweater.com/blog/1594/instapaper-keyboard-shortcut/feed</wfw:commentRss>
		<slash:comments>10</slash:comments>
		</item>
		<item>
		<title>Disabled Menus Are Usable</title>
		<link>http://www.red-sweater.com/blog/515/disabled-menus-are-usable</link>
		<comments>http://www.red-sweater.com/blog/515/disabled-menus-are-usable#comments</comments>
		<pubDate>Tue, 01 Jul 2008 16:52:27 +0000</pubDate>
		<dc:creator>Daniel Jalkut</dc:creator>
				<category><![CDATA[Cocoa]]></category>
		<category><![CDATA[Design]]></category>
		<category><![CDATA[Links]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[Usability]]></category>

		<guid isPermaLink="false">http://www.red-sweater.com/blog/?p=515</guid>
		<description><![CDATA[Joel Spolsky has a remarkable track record of speaking truth to programmers on his blog: Joel On Software. Occasionally he says something with which I disagree, but usually it&#8217;s on a subtle point, or it&#8217;s an issue where his passion for doing things one way is motivated by his preferred platforms: Windows and the web. [...]]]></description>
			<content:encoded><![CDATA[<p>Joel Spolsky has a remarkable track record of speaking truth to programmers on his blog: <a href="http://www.joelonsoftware.com/">Joel On Software</a>.  Occasionally he says something with which I disagree, but usually it&#8217;s on a subtle point, or it&#8217;s an issue where his passion for doing things one way is motivated by his preferred platforms: Windows and the web.</p>
<p>
Today Joel shared a very short and dangerous pronouncement on the use of <a href="http://www.joelonsoftware.com/items/2008/07/01.html">hidden and disabled menu items</a>:
</p>
<blockquote><p>
A long time ago, it became fashionable, even recommended, to disable menu items when they could not be used.</p>
<p>Don&#8217;t do this. Users see the disabled menu item that they want to click on, and are left entirely without a clue of what they are supposed to do to get the menu item to work.</p>
<p>Instead, leave the menu item enabled. If there&#8217;s some reason you can&#8217;t complete the action, the menu item can display a message telling the user why.
</p></blockquote>
<p>
He&#8217;s absolutely right about hidden menu items, but on the subject he emphasizes, disabled menu items, he&#8217;s absolutely wrong.
</p>
<p>
Joel argues that instead of disabling a menu item, applications should leave them enabled, and instead display an informative message when the user tries to use them. This solves one problem: that of the user who is perplexed as to why a menu item is disabled. I recognize and applaud the desire to fix this issue. But enabling every menu item creates more usability problems than it solves.
</p>
<p>
Disabled menu items convey valuable information. Users who are skimming menus in order to figure out what to do are trained by years of experience to skim past disabled items and look for enabled ones instead.  The more complex the application is, the more valuable this dichotomy becomes. In essence, disabling menu items gives application designers a means of &#8220;funneling&#8221; user attention to the actions in an application that will actually work at this moment in time.
</p>
<p>
Sure, it&#8217;s frustrating when you can&#8217;t figure out why a menu item is disabled. But what would be unbelievably frustrating is drowning in a sea of enabled menu items, for which the application offers no immediate usability guidance. Instead of skimming past disabled items, a user could be forced to select several, each time receiving a valuable instruction (punishment) as to why it was a worthless move.  In time the user would learn to avoid these irritatingly enabled menu items, but they would be offered no future assistance in actually avoiding them.
</p>
<p>
Joel is right that it&#8217;s a bad idea to outright hide menu items. Users become comfortable with an application by learning its topography: where each menu item is in relation to its menu and the other items in that menu. When you go about willy-nilly removing and adding items, it can cause confusion. If you&#8217;ve ever visited an old home town after years away, you know this problem. You&#8217;re sure your favorite restaurant is around here somewhere, but so many of the shops and landmarks have changed, it&#8217;s hard to find it as quickly as you once could.
</p>
<p>
Joel&#8217;s suggestion may increase the learnability of an application in one very specific way, but at the expense of long-term usability.  Although it can be argued that an application needs to be learnable in order to attract long-term users, I think user loyalty will be greater when the usability of the application is maximized.
</p>
<p>
What would be a better solution? The idea is to answer the naive user&#8217;s question: why is the menu item disabled? For this purpose I can think of many solutions. The application might show tool tips as the mouse hovers over the disabled menu item. Or if the problem is especially grievous, it could warrant a dedicated reference page in the documentation, where users could easily look up the cause of their frustration. The point is to build a framework for application learnability that does not seriously affect the usability of the application for experienced users.
</p>
<p>
It&#8217;s not often I get to say it, but hear me loud and clear today: <strong>don&#8217;t listen to what Joel says about menu items!</strong></p>
]]></content:encoded>
			<wfw:commentRss>http://www.red-sweater.com/blog/515/disabled-menus-are-usable/feed</wfw:commentRss>
		<slash:comments>44</slash:comments>
		</item>
		<item>
		<title>Google Usability</title>
		<link>http://www.red-sweater.com/blog/340/google-usability</link>
		<comments>http://www.red-sweater.com/blog/340/google-usability#comments</comments>
		<pubDate>Tue, 29 May 2007 15:15:44 +0000</pubDate>
		<dc:creator>Daniel Jalkut</dc:creator>
				<category><![CDATA[Design]]></category>
		<category><![CDATA[Usability]]></category>
		<category><![CDATA[Web]]></category>

		<guid isPermaLink="false">http://www.red-sweater.com/blog/340/google-usability</guid>
		<description><![CDATA[Google frustrates me by highlighting in their products some of the best and worst of web usability. Consider Google Maps, which won me over instantly when I first tried it, almost entirely because of the innovative (then) &#8220;drag to scroll&#8221; behavior you can rely on whenever you see a Google map. They won me over [...]]]></description>
			<content:encoded><![CDATA[<p>Google frustrates me by highlighting in their products some of the best and worst of web usability.</p>
<p>
Consider <a href="http://maps.google.com/">Google Maps</a>, which won me over instantly when I first tried it, almost entirely because of the innovative (then) &#8220;drag to scroll&#8221; behavior you can rely on whenever you see a Google map.
</p>
<p>
They won me over with a usability boon, which means I suffer through the usability gaffes. I often use Google Maps to locate businesses or other points of interest in whatever area I happen to be in. As luck would have it, the nature of businesses is that they cluster in one place. These are what our parents, who actually left the house, called &#8220;town centers.&#8221; So if I search for restaurants, I&#8217;m liable to see results like this:
</p>
<p>
<img src="http://www.red-sweater.com/blog/images/Google_Maps-20070529-103844.png"/>
</p>
<p>
This particular map was actually sent to me by fellow Boston-area Mac developer, <a href="http://www.rogueamoeba.com/utm/">Paul Kafasis</a>. He was pointing out some local restaurants I should try. But this problem is not unique to this map or even rare. In fact, often the pins line up even more perfectly, so that you literally can&#8217;t tell there are more than one at the location.
</p>
<p>Google has tons of real-estate to work with here, but to find out what&#8217;s actually at the cluster point, I have to go back to the ugly list and click items to see where they pop up in the map. With all that space to work with, surely Google could come up with something better.
</p>
<p>
The peacock approach would work to at least allow several places to show up at one spot, yet still be clickable. The directionality of the pin makes it clear that they&#8217;re all referring to the same point.
</p>
<p>
<img src="http://www.red-sweater.com/blog/images/PeacockGoogle-20070529-105650.png"/>
</p>
<p>
Of course, it could get complicated if nearby pins overlap with &#8220;the peacock.&#8221; Perhaps a &#8220;drop-down pin point&#8221; would be better, clearly identifying a multi-hit location with a different color and interior shape:
</p>
<p>
<img src="http://www.red-sweater.com/blog/images/GoogleMenu-20070529-111149.png"/>
</p>
<p>
Surely with a feature that is so central to the map&#8217;s usefulness, Google can come up with something that improves on the current behavior.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.red-sweater.com/blog/340/google-usability/feed</wfw:commentRss>
		<slash:comments>15</slash:comments>
		</item>
		<item>
		<title>Size Doesn&#8217;t Matter</title>
		<link>http://www.red-sweater.com/blog/338/size-doesnt-matter</link>
		<comments>http://www.red-sweater.com/blog/338/size-doesnt-matter#comments</comments>
		<pubDate>Fri, 25 May 2007 16:06:16 +0000</pubDate>
		<dc:creator>Daniel Jalkut</dc:creator>
				<category><![CDATA[Cocoa]]></category>
		<category><![CDATA[Usability]]></category>

		<guid isPermaLink="false">http://www.red-sweater.com/blog/338/size-doesnt-matter</guid>
		<description><![CDATA[I&#8217;m playing with some design changes for MarsEdit&#8217;s main window, and thinking it will probably end up mimicking the classic &#8220;Mail source list utility bar&#8221; appearance, where a few small buttons appear beneath a source list at the left-hand side of the window. With things in flux while I moved bits and pieces of the [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;m playing with some design changes for MarsEdit&#8217;s main window, and thinking it will probably end up mimicking the classic &#8220;Mail source list utility bar&#8221; appearance, where a few small buttons appear beneath a source list at the left-hand side of the window.</p>
<p>
With things in flux while I moved bits and pieces of the UI around, I was able to observe a pretty stellar example of how the visual placement of objects within a container can dramatically change the appearance of the container&#8217;s size. Consider these snapshots, taken from Mail and this experimental version of MarsEdit. Stare at the buttons on the Mail version (top), then at the buttons on the MarsEdit version. Which section is taller?
</p>
<p>
<img src="http://www.red-sweater.com/blog/images/ActionBars-20070525-120308.png"/>
</p>
<p>
Answer? They&#8217;re exactly the same height. 23 pixels tall. The crowdedness of the MarsEdit version makes the whole section <em>seem</em> way shorter than it really is, while the Mail version has miles and miles of room to breathe.
</p>
<p>
It occurs to me that this illusion might not affect everybody the same way. To me the difference is stark, unless I start fixating on the blank part of the bar, when I can more easily accept they are the same size.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.red-sweater.com/blog/338/size-doesnt-matter/feed</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>Getting Things Done</title>
		<link>http://www.red-sweater.com/blog/276/getting-things-done</link>
		<comments>http://www.red-sweater.com/blog/276/getting-things-done#comments</comments>
		<pubDate>Mon, 12 Feb 2007 04:51:45 +0000</pubDate>
		<dc:creator>Daniel Jalkut</dc:creator>
				<category><![CDATA[Humor]]></category>
		<category><![CDATA[Technology]]></category>
		<category><![CDATA[Usability]]></category>

		<guid isPermaLink="false">http://www.red-sweater.com/blog/276/getting-things-done</guid>
		<description><![CDATA[OK &#8230; I mean this in the nicest possible way, because I have also considered (and may someday pursue!) writing my own ToDo-type application. But I&#8217;d like to offer my revision on a popular joke from academia&#8230; Those who can, do Those who can&#8217;t do, write ToDo apps. Those who can&#8217;t write ToDo apps &#8230; [...]]]></description>
			<content:encoded><![CDATA[<p>OK &#8230; I mean this in the nicest possible way, because I have also considered (and may someday pursue!) writing my own ToDo-type application.</p>
<p>
But I&#8217;d like to offer my revision on a popular joke from academia&#8230;
</p>
<p><ol>
<li>Those who can, <em>do</em></li>
<li>Those who can&#8217;t do, write ToDo apps.</li>
<li>Those who can&#8217;t write ToDo apps &#8230; eventually figure out how to <em>do</em>.</li>
</ol></p>
]]></content:encoded>
			<wfw:commentRss>http://www.red-sweater.com/blog/276/getting-things-done/feed</wfw:commentRss>
		<slash:comments>8</slash:comments>
		</item>
		<item>
		<title>Mail Smart Folders</title>
		<link>http://www.red-sweater.com/blog/275/mail-smart-folders</link>
		<comments>http://www.red-sweater.com/blog/275/mail-smart-folders#comments</comments>
		<pubDate>Sat, 10 Feb 2007 17:03:17 +0000</pubDate>
		<dc:creator>Daniel Jalkut</dc:creator>
				<category><![CDATA[Apple]]></category>
		<category><![CDATA[Software Reviews]]></category>
		<category><![CDATA[Technology]]></category>
		<category><![CDATA[Usability]]></category>

		<guid isPermaLink="false">http://www.red-sweater.com/blog/275/mail-smart-folders</guid>
		<description><![CDATA[Maybe this should be filed under &#8220;No Duh&#8221; but it&#8217;s taken me this long to figure out that Mail&#8217;s smart folders might actually save my life. For the past year or so, I&#8217;ve adopted the &#8220;save everything&#8221; approach, ala gmail, except on my Mac. So I have this huge &#8220;Received Mail&#8221; archive that actually, for [...]]]></description>
			<content:encoded><![CDATA[<p>Maybe this should be filed under &#8220;No Duh&#8221; but it&#8217;s taken me this long to figure out that Mail&#8217;s smart folders might actually save my life.</p>
<p>
For the past year or so, I&#8217;ve adopted the &#8220;save everything&#8221; approach, ala gmail, except on my Mac. So I have this huge &#8220;Received Mail&#8221; archive that actually, for better or for worse, contains every single email that makes it to my inbox, including spam that <a href="http://c-command.com/spamsieve/">SpamSieve</a> filters.
</p>
<p>
I&#8217;m not perfect at this, but I like to strive for an empty inbox. This makes me feel less stressed. So I &#8220;delete with abandon,&#8221; knowing that a copy has been archived for future reference. Unfortunately, when I delete with abandon I sometimes lose references to mail conversations in progress. I want to go back and see exactly what somebody said a few messages back, so I&#8217;m forced to go to my mail archive and look it up.
</p>
<p>
No problem, right? Wrong. My mail archive is huge so Mail stutters and thrashes. This is because even though I only care about the message I just received a few minutes ago, it is preparing to show me the entire history of my email life.
</p>
<p>
Now for the punch line. Smart folders solves this problem! I added a &#8220;Recently Viewed&#8221; smart folder to Mail, which simply shows me any message I&#8217;ve <em>looked at</em> in the past 2 days. At first I tried &#8220;Recently Received&#8221; but discovered that it also showed me all of the spam I&#8217;d received. &#8220;Recently Viewed&#8221; is perfect, because it shows me stuff I&#8217;ve dredged up out of the past. It&#8217;s my Mail message working set!
</p>
<p>
<img src="http://www.red-sweater.com/blog/images/RecentlyViewedMailRule.png"/>
</p>
<p>
I was so pleased by this that I also added a &#8220;Recently Sent&#8221; smart folder to do basically the same thing, but for messages that I&#8217;ve recently written to others. My only major complaint is that I can&#8217;t order the smart folders above my gigantic IMAP hierarchy. It&#8217;s a pain to navigate down the mailbox list to find them.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.red-sweater.com/blog/275/mail-smart-folders/feed</wfw:commentRss>
		<slash:comments>17</slash:comments>
		</item>
		<item>
		<title>Xcode Pasteboard Accumulator</title>
		<link>http://www.red-sweater.com/blog/269/xcode-pasteboard-accumulator</link>
		<comments>http://www.red-sweater.com/blog/269/xcode-pasteboard-accumulator#comments</comments>
		<pubDate>Thu, 01 Feb 2007 23:17:04 +0000</pubDate>
		<dc:creator>Daniel Jalkut</dc:creator>
				<category><![CDATA[Carbon]]></category>
		<category><![CDATA[Cocoa]]></category>
		<category><![CDATA[Usability]]></category>
		<category><![CDATA[Xcode]]></category>

		<guid isPermaLink="false">http://www.red-sweater.com/blog/269/xcode-pasteboard-accumulator</guid>
		<description><![CDATA[Way back in the MPW days, I used to rely heavily on an extension for the IDE that put powerful pasteboard manipulation tools in the window header. Essentially these tools let you treat your pasteboard like a stack, so you could easily accumulate multiple copies and then paste them all out at once. For some [...]]]></description>
			<content:encoded><![CDATA[<p>Way back in the <a href="http://developer.apple.com/tools/mpw-tools/">MPW</a> days, I used to rely heavily on an extension for the IDE that put powerful pasteboard manipulation tools in the window header. Essentially these tools let you treat your pasteboard like a stack, so you could easily accumulate multiple copies and then paste them all out at once.</p>
<p>
For some dumb reason, I&#8217;ve been living without such conveniences for several years now. I know there are many 3rd party products that add an epic amount of functionality to the standard copy and paste of the system, but I&#8217;m not really interested in running a separate application for this purpose.
</p>
<p>
It occurred to me that this would be a perfect use of Xcode&#8217;s <a href="http://developer.apple.com/documentation/DeveloperTools/Conceptual/XcodeUserGuide/Contents/Resources/en.lproj/07_03_custom_scripts/chapter_48_section_4.html">Menu Scripts</a>. Xcode not only supports the addition of custom scripts to the menu bar, but supports a unique format by which the scripts can advertise keyboard shortcuts, and integrate seamlessly with Xcode&#8217;s text editor. For instance, you can use a script to process the selected text in Xcode and spit back out something else in its place.
</p>
<p>
<a href="http://www.red-sweater.com/blog/downloads/AppendToPasteBoard.zip">Append To Pasteboard</a> is a simple python script that takes advantage of the &#8220;pbcopy&#8221; and &#8220;pbpaste&#8221; commands to tack whatever you&#8217;ve selected in Xcode on to the end of the existing pasteboard. You stick this within your (horribly located) user scripts folder, where you must name the folders and files with numeric prefixes to inform Xcode where they belong. For example, the script lives in my home directory:
</p>
<p><pre>
/Users/daniel/Library/Application Support/
	Apple/Developer Tools/Scripts/
	10-User Scripts/1-DCJ/
</pre>
</p>
<p>
Unfortunately Xcode doesn&#8217;t handle the situation where some scripts come from your home directory, and some come from the /Library installation directory. So I put everything in my home directory. The &#8220;10-User Scripts&#8221; is how I tell it to name the menu bar item &#8220;User Scripts.&#8221; The &#8220;1-DCJ&#8221; folder is the folder with all my custom scripts in it, and since it is &#8220;1,&#8221; it comes before all of Apple&#8217;s standard scripts that I copied in (10-Open, 20-Search, etc). The process of providing scripts to Xcode is ugly but when you finally get it all put together, this is what you end up with:
</p>
<p>
<img src="http://www.red-sweater.com/blog/images/AppendToPasteboard.png"/>
</p>
<p>
Now it&#8217;s a snap to cruise through a .m and accumulate method declarations, for pasting into a corresponding .h. Note that the script always appends a newline to the existing pasteboard, which could be annoying depending on what you want to use it for. Since I envision myself almost always double-clicking a function or method declaration and appending it to a list, I find this behavior to be most convenient.
</p>
</p>
<p>Thanks to <a href="http://www.toxicsoftware.com/">Jon Wight</a> for helping with Python.</p>
<p>
<strong>Update:</strong> Any productivity gained by using this macro was certainly lost as I tried desperately to debug Xcode&#8217;s latest propensity to &#8220;beachball&#8221; on launch. Finally, I attached with gdb and found a telling backtrace. Hmm? Yep, when I &#8220;zipped&#8221; the script for upload to the blog, I left a zipped copy in the scripts folder. Next time I launched Xcode, it choked big time on trying to treat that zip file as a script.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.red-sweater.com/blog/269/xcode-pasteboard-accumulator/feed</wfw:commentRss>
		<slash:comments>9</slash:comments>
		</item>
		<item>
		<title>iPhone 0.9</title>
		<link>http://www.red-sweater.com/blog/267/iphone-09</link>
		<comments>http://www.red-sweater.com/blog/267/iphone-09#comments</comments>
		<pubDate>Mon, 29 Jan 2007 14:35:51 +0000</pubDate>
		<dc:creator>Daniel Jalkut</dc:creator>
				<category><![CDATA[Apple]]></category>
		<category><![CDATA[Business]]></category>
		<category><![CDATA[Nostalgia]]></category>
		<category><![CDATA[Technology]]></category>
		<category><![CDATA[Usability]]></category>

		<guid isPermaLink="false">http://www.red-sweater.com/blog/267/iphone-09</guid>
		<description><![CDATA[TUAW points us to a a choice Newton video, from 1993. In spite of some dated production qualities, this video could serve as a template for marketing the greatest features of the iPhone. Syncing, address books, To Dos, &#8220;instant messages.&#8221; Lots of features ripe for comparison with the iPhone and other modern devices. It even [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.tuaw.com/">TUAW</a> points us to a a <a href="http://www.tuaw.com/2007/01/29/blast-from-the-past-getting-started-with-the-newton/">choice Newton video</a>, from 1993. In spite of some dated production qualities, this video could serve as a template for marketing the greatest features of the iPhone. Syncing, address books, To Dos, &#8220;instant messages.&#8221; Lots of features ripe for comparison with the iPhone and other modern devices. It even &#8220;<a href="http://blog.seattlepi.nwsource.com/microsoft/archives/108908.asp">squirts</a>&#8221; (beams) like a Zune!.</p>
<p>
The best part of the video? In the midst of all this enlightened modern living, the video shows a man scribbling away on his Newton while talking on the phone. <em>A pay phone!</em> If only they could somehow combine those two devices! I also like the knowing look and raised eyebrows one worker gives to another just before she &#8220;beams&#8221; him a message. A subtle suggestion that Newton might actually get you laid.
</p>
<p>
I never used a Newton much, although I occasionally had my hands on one at work for some debugging purpose. Some of the design considerations really pop out, like the fact that the Newton was almost entirely &#8220;soft button&#8221; based, much like its nascent offspring. The soft QWERTY keyboard is even reminiscent of the iPhone&#8217;s, except that with the Newton it was only intended to be used when the handwriting recognition made a mistake.
</p>
<p>
Which it did. A lot. Many people consider the failure of adequate recognition on the Newton, and the basically functional compromise of Palm&#8217;s &#8220;Grafitti&#8221; to have been the death blow for the gadget. Amid all the happy music and smiling people, you can tell the issue was weighing heavy on Apple&#8217;s mind, too. Halfway through the video the topic changes to &#8220;handwriting tips&#8221; and more or less stays on the subject for the rest of the promo.
</p>
<p>
If Apple presents iPhone along with a promotional video that is half devoted to teaching users how to workaround the device&#8217;s bugs, then we&#8217;ll know it&#8217;s doomed.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.red-sweater.com/blog/267/iphone-09/feed</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
	</channel>
</rss>

