<?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>The Cafes &#187; User Interface</title>
	<atom:link href="http://cafe.elharo.com/category/ui/feed/" rel="self" type="application/rss+xml" />
	<link>http://cafe.elharo.com</link>
	<description>Longer than a blog; shorter than a book</description>
	<lastBuildDate>Sat, 30 Mar 2013 11:51:03 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.5.1</generator>
		<item>
		<title>Why Don&#8217;t Macs Support Multiple Monitors?</title>
		<link>http://cafe.elharo.com/ui/why-dont-macs-support-multiple-monitors/</link>
		<comments>http://cafe.elharo.com/ui/why-dont-macs-support-multiple-monitors/#comments</comments>
		<pubDate>Sun, 27 Sep 2009 20:12:05 +0000</pubDate>
		<dc:creator>Elliotte Rusty Harold</dc:creator>
				<category><![CDATA[Macs]]></category>
		<category><![CDATA[User Interface]]></category>
		<category><![CDATA[Fitt's Law]]></category>

		<guid isPermaLink="false">http://cafe.elharo.com/?p=479</guid>
		<description><![CDATA[I have two 23&#8243; monitors on my desktop at work, and have worked that way for about three years now (aside from a brief flirtation with a single 30&#8243; monitor in California). On Windows and Linux this is an incredibly productive setup. I can have a full screen IDE open on one and a full-screen [...]]]></description>
				<content:encoded><![CDATA[<p>I have two 23&#8243; monitors on my desktop at work, and have worked that way for about three years now (aside from a brief flirtation with a single 30&#8243; monitor in California). On Windows and Linux this is an incredibly productive setup. I can have a full screen IDE open on one and a full-screen web browser open in the other. The web browser gives me a huge reference library and easy access to a lot of apps including e-mail, calendar, and more, and the IDE lets me do my work. I can easily switch back and forth between them to surf or edit. It&#8217;s a smooth and fluid workflow. Even  a single monitor twice the size doesn&#8217;t work as well since you can&#8217;t easily organize the two applications on the screen. </p>
<p>I&#8217;m a programmer but the same is true for anyone who works primarily in one large application. For instance, for designers it might be Photoshop or QuarkXPress. For writers it may be Microsoft Word. For business folks it could be Excel. We all need a web browser open and we all need our main productivity app. On Windows and Linux these days, this just works. You plug-in two monitors. You open two apps. You move between them as you feel like it, and do your work. This is what it looks like:</p>
<p><img src="http://cafe.elharo.com/wp-content/uploads/2009/09/twomonitorswindows2.png" alt="Eclipse on left monitor with menubar; Firefox on right monitor with menubar" title="twomonitorswindows" width="840" height="263" class="alignnone size-full wp-image-494" /></p>
<p>On the Mac, however, it doesn&#8217;t work. The Mac, which was perhaps the first platform to support multiple monitors, certainly the first consumer platform, a two monitor setup looks like this:</p>
<p><img src="http://cafe.elharo.com/wp-content/uploads/2009/09/eclipsefirefoxmac.png" alt="Eclipse on left monitor without menubar; Firefox on right monitor with menubar" title="eclipsefirefoxmac" width="800" height="300" class="alignnone size-full wp-image-504" /></p>
<p>Do you see the difference?<br />
<span id="more-479"></span></p>
<p>The problem is that the Mac always and only puts the menubar on one screen. That means using any app on the second screen means constantly redirecting your attention back to the first screen. Furthermore, you have to constantly move the mouse between screens, rather than just slamming the mouse to the top as Mac users are accustomed to doing. It may not seem like much, but after you&#8217;ve grown accustomed to a multiple monitor setup on Windows or Linux, trying to use one on the Mac is jarring. Not only does it not just work. It just doesn&#8217;t work. </p>
<p>The solution should be simple: put a menu bar on each monitor, at least optionally. The menu bar can even be disabled until the app is focused with a click. Why Apple hasn&#8217;t done this, I don&#8217;t know. For single screen computers, the Mac still has by far the most efficient menubar design and the best multi-application UI ever invented. Windows and Linux still haven&#8217;t caught up with where the Mac was in 1984.  <em>A</em> menu bar belongs at the top of <em>a</em> screen, not the top of a window. But unfortunately the Mac doesn&#8217;t put <em>a</em> menu bar at the top of <em>a</em> screen. It puts <em>the</em> menu bar at the top of <em>one</em> screen, and that makes all the difference. </p>
<p>A few applications can actually use multiple displays for their own needs without the single menu bar approach crippling the user. For instance, PowerPoint can show the slides on one display (typically a projection system) and speaker&#8217;s notes on the other (typically a laptop). The key here is that such  applications are tiling a single application across several monitors, and are designed for this environment. However this is rare. Most applications are designed to run on a single screen, and can&#8217;t really make use of a second monitor.  To gain extra productivity with extra monitors, you need to be able to show different applications on different monitors and still have each application be fully functional.<sup style="font-size: small"><a href="#f1">1</a></sup> Without that ability the second monitor is just eye candy. In fact, maybe it&#8217;s not even that.  I&#8217;ve never even found something as simple as a slideshow program or screensaver that can take over one monitor without blacking out the second. <img src='http://cafe.elharo.com/wp-includes/images/smilies/icon_sad.gif' alt=':-(' class='wp-smiley' /> </p>
<p>Virtual desktops are not a solution either. The goal is to be able to see the web browser and the IDE (or whatever applications you happen to want to run simultaneously) at the same time, not merely to be able to switch back and forth between them. The eye can move faster than mouse, and sometimes that&#8217;s important. </p>
<p>I suspect this problem just wasn&#8217;t obvious circa 2000 when the last major refresh of the Mac UI was contemplated. At the time, multi-monitor setups were still rare and pricey things. However it&#8217;s 10 years later now. Video cards that support multiple displays are stock equipment in every Mac,  and large flat screen monitors can be had for the price of a nice meal in Cupertino. It is well past time to fix this. Until Apple does, the Mac is, at least in this respect, a distinctly inferior platform for software development, photo editing, page layout, spreadsheet analysis, and other tasks that require a large, full-screen interface. </p>
<hr />
<h3>Further Reading</h3>
<ul>
<li>
<a href="http://www.codinghorror.com/blog/archives/001076.html">Does More Than One Monitor Improve Productivity?</a></li>
<li><a href="http://www.codinghorror.com/blog/archives/000012.html">Multiple Monitors and Productivity</a>
</li>
<li><a href="http://www.codinghorror.com/blog/archives/000217.html">Multiple LCDs</a>
</li>
<li><a href="http://www.codinghorror.com/blog/archives/000740.html">Joining the Prestigious Three Monitor Club</a>
</li>
<li><a href="http://www.codinghorror.com/blog/archives/000928.html">The Large Display Paradox</a>
</li>
<li><a href="http://www.codinghorror.com/blog/archives/000959.html">LCD Monitor Arms</a></li>
<li><a href="http://www.nytimes.com/2006/04/20/technology/20basics.html?ex=1303185600&amp;en=6fc17b9bf54c62ef&amp;ei=5088&amp;partner=rssnyt&amp;emc=rss">The Virtues of a Second Screen</a></li>
</ul>
<hr />
<p><span id="f1" style="font-size: small">1</span> We could also envision running different instances of the same application on two or more monitors. However most modern applications such as Firefox and Eclipse have too much implicit global state to make this feasible.</p>
]]></content:encoded>
			<wfw:commentRss>http://cafe.elharo.com/ui/why-dont-macs-support-multiple-monitors/feed/</wfw:commentRss>
		<slash:comments>20</slash:comments>
		</item>
		<item>
		<title>How To Shutdown a Computer</title>
		<link>http://cafe.elharo.com/ui/how-to-shutdown-a-computer/</link>
		<comments>http://cafe.elharo.com/ui/how-to-shutdown-a-computer/#comments</comments>
		<pubDate>Fri, 16 Jan 2009 15:24:13 +0000</pubDate>
		<dc:creator>Elliotte Rusty Harold</dc:creator>
				<category><![CDATA[User Interface]]></category>

		<guid isPermaLink="false">http://cafe.elharo.com/?p=387</guid>
		<description><![CDATA[Sometimes I still feel like we&#8217;re in 1982 when it comes to really basic things like turning off a computer. Why do we have to select shutdown from a menu? Why do we have to carefully save each open file? Why don&#8217;t programs stop when we tell them to? (Time Machine has now been spinning [...]]]></description>
				<content:encoded><![CDATA[<p>Sometimes I still feel like we&#8217;re in 1982 when it comes to really basic things like turning off a computer. Why do we have to select  shutdown from a menu? Why do we have to carefully save each open file? Why don&#8217;t programs stop when we tell them to? (Time Machine has now been spinning for hours, and won&#8217;t stop even though I&#8217;ve told it to.) Why is this so much more complex than it needs to be?</p>
<p>In the future, here&#8217;s how shutdown should work:</p>
<ol>
<li>You flip the power switch.</li>
</ol>
<p>That&#8217;s it. No shutdown menu item. No wait for the system to hibernate. No opportunity for applications to save data. Nothing.<br />
<span id="more-387"></span></p>
<p>Then, when you turn the power switch back on, the entire system is restored with all data, windows, and programs intact (optionally after typing in the usual username/password credentials.)</p>
<p>In 2009 there is no excuse for an application to lose data because it hasn&#8217;t  been recently and explicitly told to save. Nor is there any excuse for an application to block the system from shutting down. When I turn my computer off, it should go off, and when I tell an application to quit it should quit. More to the point, the operating system should forcibly terminate that application. I am thoroughly sick of applications that think File/Quit (File/Exit for Windows users) is a <em>suggestion</em>. It&#8217;s not. It&#8217;s a command, and one they should immediately respond to.</p>
<p>Few applications today get this right: not on the Mac, not on Windows, not on the Web. (Web apps such as WordPress do actually get a little closer to this, but many still launch popups telling you you may lose data if you close a window. There should be no such popups because they shouldn&#8217;t lose data, ever.) Firefox helpfully offers to restore all the open windows when the applications is relaunched, including after a force quit. More applications should do this. However even Firefox occasionally gets wedged and refuses to quit when told to.</p>
<p>There are actually a few steps to reaching this simplified nirvana, so maybe I&#8217;m asking for more than one thing here. Most laptops and applications can handle a system going to sleep. We just need to make sleeping a little faster (or at least less intrusive to the user) and possibly hook that up to the power switch in the hardware.</p>
<p>However, when waking from sleep, the operating system restores each application to the state it was in previously. We also need to make sure that applications are ready to be terminated with extreme prejudice in circumstances where the operating system will not restore their stack and heap. In such circumstances a character or two of data loss may be acceptable, but no more. Applications should save constantly to persistent storage without waiting for the user to tell them to do so. Furthermore, when writing complicated data structures they should maintain integrity even when they&#8217;re interrupted in media res. The techniques to do this are not complicated are hard to understand. They have been implemented by server software like Oracle for years now. We just need to demand the same sort of reliability from our desktop software. </p>
<p>A little more bleeding edge (but only because no one has bothered to do this yet) applications should maintain data integrity even in the face of flaky and unreliable hardware. Filesystems should not be tied to any particular physical drive. (No, RAID helps but doesn&#8217;t quite achieve this. RAID controller failures still cause data loss.) Better operating system support and more abstract filesystems that aren&#8217;t tied to particular disks would help here. However in the absence of this, applications could still store their data across multiple file systems, and they should do this without asking the user where to save or how to configure the disks. (Whether a traditional hierarchical file system is still the right metaphor for storage is a subject for another article.)</p>
<p>We take too many things for granted merely because that&#8217;s the way they&#8217;ve always been. But what made sense in an era of 64K floppy disks that could write a hundred bytes a second no longer makes sense in an era of terabyte hard drives that write a hundred megabytes a second. It is time  to make saving files as obsolete as remembering to fill your fountain pen.  </p>
]]></content:encoded>
			<wfw:commentRss>http://cafe.elharo.com/ui/how-to-shutdown-a-computer/feed/</wfw:commentRss>
		<slash:comments>48</slash:comments>
		</item>
		<item>
		<title>Monopoly Incompetence</title>
		<link>http://cafe.elharo.com/ui/monopoly-incompetence/</link>
		<comments>http://cafe.elharo.com/ui/monopoly-incompetence/#comments</comments>
		<pubDate>Sun, 21 Dec 2008 09:22:17 +0000</pubDate>
		<dc:creator>Elliotte Rusty Harold</dc:creator>
				<category><![CDATA[User Interface]]></category>

		<guid isPermaLink="false">http://cafe.elharo.com/?p=351</guid>
		<description><![CDATA[Need more proof that monopolies are bad business? Just try to pay a utility bill online sometime. I have just gotten through attempting to pay my cable, gas, and electric bills online. Exactly none of them offered what I would consider a minimally competent site. The exact problems varied, but there was one that was [...]]]></description>
				<content:encoded><![CDATA[<p>Need more proof that monopolies are bad business? Just try to pay a utility bill online sometime. I have just gotten through attempting to pay my cable, gas, and electric bills online. Exactly none of them offered what I would consider a minimally competent site. The exact problems varied, but there was one that was common across the three. Every single one required registration before they&#8217;d take my money:</p>
<p><img src="http://www.elharo.com/blog/wp-content/uploads/2008/12/paybill.png" alt="  Welcome to My Account Online services! Please enter your user ID and password to sign in. New User? Register now. " title="paybill" width="823" height="623" class="size-full wp-image-1001778" /></p>
<p>By contrast, non-monopoly sites like Office Depot have long since learned that registration is an <em>optional</em> step they shouldn&#8217;t let get in the way of completing a sale. But the utility companies? Either they hire developers who are distinctly behind the state of the art, or they just don&#8217;t care because you have to pay them, or both.<br />
<span id="more-351"></span></p>
<p>How easy should it be to pay a utility bill online? It&#8217;s a form with about four or five fields, no more:</p>
<ul>
<li>Account number</li>
<li>Credit Card Number</li>
<li>Expiration Date</li>
<li>Name on Credit Card</li>
<li>Amount to pay (this one could even be autofilled based on the account number.)</li>
</ul>
<p>Unlike an online store, they shouldn&#8217;t need to ask for a shipping address. Maybe they need a billing address (though that should default to the service address) or the CVV2 code, but utility bills are unlikely to attract the same sort of fraud that online stores do, so I&#8217;m not sure even that&#8217;s necessary. </p>
<p>They absolutely don&#8217;t need:</p>
<ul>
<li>Your e-mail address</li>
<li>A username</li>
<li>A password</li>
<li>Service address</li>
<li>CAPTCHA (They really think someone&#8217;s going to set up a bot to autopay utility bills?)</li>
<li>The city where your mother was born. (No I&#8217;m not making that up. Cox really wanted that piece of information.) </li>
</ul>
<p>Account number, minimal credit card (or debit card) info, amount to pay. That&#8217;s all. </p>
]]></content:encoded>
			<wfw:commentRss>http://cafe.elharo.com/ui/monopoly-incompetence/feed/</wfw:commentRss>
		<slash:comments>21</slash:comments>
		</item>
		<item>
		<title>Linux 2008: Still Not Ready for Prime Time</title>
		<link>http://cafe.elharo.com/ui/linux-2008-still-not-ready-for-prime-time/</link>
		<comments>http://cafe.elharo.com/ui/linux-2008-still-not-ready-for-prime-time/#comments</comments>
		<pubDate>Sun, 25 May 2008 05:19:49 +0000</pubDate>
		<dc:creator>Elliotte Rusty Harold</dc:creator>
				<category><![CDATA[User Interface]]></category>

		<guid isPermaLink="false">http://cafe.elharo.com/ui/linux-2008-still-not-ready-for-prime-time/</guid>
		<description><![CDATA[I&#8217;ve just spent a couple of hours installing and exploring Ubuntu 8.04. Bottom line: better but still not yet an adequate end user system. Here are the things that absolutely must be fixed before one can plausibly recommend Ubuntu to a non-developer end user (and since Ubuntu is the best desktop Linux out there, these [...]]]></description>
				<content:encoded><![CDATA[<p>I&#8217;ve just spent a couple of hours installing and exploring Ubuntu 8.04. Bottom line: better but still not yet an adequate end user system. Here are the things that absolutely must be fixed before one can plausibly recommend Ubuntu to a non-developer end user (and since Ubuntu is the best desktop Linux out there, these are things that need to be fixed before one can recommend desktop Linux). In roughly increasing order of severity:<br />
<span id="more-259"></span></p>
<p>1. Ubuntu failed to find my DHCP server automatically. I had to reconfigure the network after logging in. </p>
<p>2. The install image is missing about 50-80 megs worth of patches. It&#8217;s one thing not to ship new CDs to every store on the planet and recall all existing stock. It&#8217;s another to serve an ISO with known security holes from your website. Critical (and even non-critical) patches need to be rolled into the primary release ISOs.</p>
<p>3. Ubuntu still doesn&#8217;t believe there&#8217;s such a thing as a widescreen monitor. Trust me: they exist. I&#8217;ve had one since the late 90s. In this release, Ubuntu has actually gone backwards. It used to be you could configure new screen resolutions with some Unix text arcana, but Hardy Heron has hidden all that info in some new location I&#8217;ve yet to ferret out. They&#8217;ve replaced the text files with a GUI screen resolution tool that doesn&#8217;t actually let me set the screen resolution. I&#8217;m not opposed to GUI configuration tools&#8211;I prefer them in fact. However they have to be at least as powerful as the text files they replace. </p>
<p>4. The menu system hasn&#8217;t changed in years. It&#8217;s still the same disaster it was <a href="http://www.elharo.com/blog/birding/2005/09/23/linux-2005/#more-1000353">3 years ago</a>. When is Gnome going to realize what Apple&#8217;s known for 25 years, and even Microsoft has known for ten: </p>
<p><strong>Menus belong at the top of the screen. You don&#8217;t show more than one menu bar at a time. Menu bars need to be consistent between applications. There&#8217;s always a File menu on the left, closely followed by an Edit Menu. The Help menu goes at the right, sometimes preceded by a Window menu.</strong></p>
<p>I guess when your view of the world is a command line, you don&#8217;t think GUI menus matter all that much; but to anyone who&#8217;s not a programmer they do. </p>
<p>Ubuntu actually does put the main Ubuntu menus at the top of the screen where they belong. The problem is that it reserves that place for itself and won&#8217;t share with other applications. No matter which application you&#8217;re working in, the menu bar only has Places, Application, and System. If I&#8217;m editing in OpenOffice, I want to see the OpenOffice menus there. If I&#8217;m browsing in Firefox, I want to see the Firefox menus there. </p>
<p>Apple and Microsoft both do better here: Apple by taking a single menu in the bar (the Apple menu) for its own use while leaving the rest of the menu bar free for the application; Microsoft by making use of the bottom of the screen for its system menus while leaving the top free for the application. Ubuntu/Gnome seems to be doing cargo cult UI design. They sort of know that menu bars belong at the top of the screen, but since they don&#8217;t understand the reasons why that is so, they end up making matters worse.  </p>
<p>On the positive side, I&#8217;d say the fonts do look better in this release. That was a major sticking point for me in previous releases. Other notable improvements include a smoother, less technical install process, and a bootup that doesn&#8217;t spew random techie gibberish all over the screen. Ubuntu is improving. If only they&#8217;d fix the menu bars, and make it work with widescreen monitors, I could think about letting my parents use this. </p>
]]></content:encoded>
			<wfw:commentRss>http://cafe.elharo.com/ui/linux-2008-still-not-ready-for-prime-time/feed/</wfw:commentRss>
		<slash:comments>27</slash:comments>
		</item>
		<item>
		<title>Window Maximizing and Multimonitor Setups Across Platforms</title>
		<link>http://cafe.elharo.com/ui/window-maximizing-and-multimonitor-setups-across-platforms/</link>
		<comments>http://cafe.elharo.com/ui/window-maximizing-and-multimonitor-setups-across-platforms/#comments</comments>
		<pubDate>Thu, 16 Aug 2007 08:27:09 +0000</pubDate>
		<dc:creator>Elliotte Rusty Harold</dc:creator>
				<category><![CDATA[Macs]]></category>
		<category><![CDATA[User Interface]]></category>

		<guid isPermaLink="false">http://cafe.elharo.com/ui/window-maximizing-and-multimonitor-setups-across-platforms/</guid>
		<description><![CDATA[For the last couple of months I&#8217;ve been working on Windows as my main desktop during the workday (not my personal choice, but I can live with it.), and that&#8217;s caused me to notice a few things I haven&#8217;t noticed before, especially in contrast to the Mac style of managing windows. I&#8217;ve task switched between [...]]]></description>
				<content:encoded><![CDATA[<p>For the last couple of months I&#8217;ve been working on Windows as my main desktop during the workday (not my personal choice, but I can live with it.), and that&#8217;s caused me to notice a few things I haven&#8217;t noticed before, especially in contrast to the Mac style of managing windows. I&#8217;ve task switched between Mac and Windows before&#8211;for several years in the late 90s I did all my development and book writing on Windows and all my e-mail and Internet on the Mac&#8211;but this is the first time I&#8217;ve had the chance to compare the two environments with multiple monitors, and that&#8217;s made some difference in my take on matters. Practices that work well on a single monitor system don&#8217;t work as well on multimonitor system and vice versa. After playing with this for a while, I&#8217;m starting to think that the Windows approach works better for multiple, small monitors and the Mac approach works better for a single, widescreen monitor. </p>
<p>To summarize, here are the critical differences between the two platforms. These are worth keeping in mind when you&#8217;re designing a cross-platform application such as Firefox or Limewire, or <em>any</em> web site.<br />
<span id="more-233"></span></p>
<h2>The Maximize Button</h2>
<p>On Windows the maximize button fills the screen with the current window. On the Mac it doesn&#8217;t. First of all, the Mac sets aside space for the menu bar at the top and usually the dock at the bottom. However, even taking that into account, the maximize button still does not expand the window to fill all available horizontal space. Users browsing on Macs rarely if ever have browser windows expanded to the full screen width. Doing so requires manual dragging and positioning of the mouse. Consequently designing a site for a specific resolution such as 1280&#215;1024 will break the site on Macs with precisely those specs. Even if a Mac user sets their display resolution to match your requirements, they still won&#8217;t be able to handle your page. <strong>Window size is not the same thing as screen size.</strong> Do not design as if they were. Window and screen size are only loosely coupled, especially on the Mac.</p>
<h2>Maximized Windows</h2>
<p>On Windows, a maximized window cannot be dragged to the other monitor. Neither can it be expanded or contracted by dragging the edges. It is locked to one monitor and its size. </p>
<p>On the Mac, even &#8220;maximized&#8221; windows can be expanded, contracted, and dragged. It is possible to &#8220;over-maximize&#8221; a window by dragging it across more than one monitor. (You can do this on Windows too, but only if the window is not maximized.) You can even overmaximize a window on a single monitor system by dragging the window partway off the monitor while leaving the grow box visible. Programs that resize windows for the user need to be very careful that they don&#8217;t exceed the screen bounds. </p>
<h2>The Menu Bar</h2>
<p>The top menu bar on the Mac is clearly its single biggest weakness in multi monitor setups. In Windows, you can freely switch between two applications on two monitors while keeping both visible. Each is fully and independently functional. However on the Mac there&#8217;s only one menu bar, and it only lives on one monitor. You can show two windows on two monitors but you can only really work on your primary monitor because that&#8217;s where the menu bar is. You can use the second monitor for reference documents or simple games. However any program that needs a menu can only effectively live on the main monitor. This is a <strong>huge</strong> disadvantage compared to freely switching between menus as on Windows. (The exceptions that prove the rule are Parallels and VMWare. If what you have on the second monitor is a Windows program, then it does have its menu bar, and you can effectively task switch between two apps on two monitors.)</p>
<h2>Linux</h2>
<p>Linux is once again trailing far behind. I tried to install the latest version of Ubuntu on my pretty standard Dell PC with two regular aspect Dell monitors, and all it could do was mirror them. It could not use them as dual monitors. I&#8217;m sure with a  few hours of research and forum posting, I could have found some XF86.config tweaks that would have made it all work, but I didn&#8217;t have the time.  These days Windows and the Mac both &#8220;just work&#8221; with dual monitors. I remain dually astonished at Linux: on the one hand that it still clearly isn&#8217;t ready for prime time on the desktop after all these years, and that nonetheless people seem to keep insisting that it is. This was hardly the only significant flaw I found within ten minutes of popping in the live boot CD, though it was the worst. </p>
<h2>Bottom Line</h2>
<p>It&#8217;s <a href="http://developers.slashdot.org/article.pl?sid=03/10/09/137232&#038;mode=thread&#038;tid=137&#038;tid=196">been</a> <a href="http://codebetter.com/blogs/darrell.norton/archive/2003/11/11/3432.aspx">claimed</a> <a href="http://research.microsoft.com/displayArticle.aspx?id=433">repeatedly</a> that developers (and presumably other knowledge workers) are much more productive with multiple monitor setups. I suspect that&#8217;s true, but only on Windows. Mac and Linux users are better off blowing their money on one really honkin&#8217; big display than on several somewhat smaller displays. </p>
]]></content:encoded>
			<wfw:commentRss>http://cafe.elharo.com/ui/window-maximizing-and-multimonitor-setups-across-platforms/feed/</wfw:commentRss>
		<slash:comments>17</slash:comments>
		</item>
		<item>
		<title>Menu Icons Considered Ugly</title>
		<link>http://cafe.elharo.com/blogroll/menu-icons-considered-ugly/</link>
		<comments>http://cafe.elharo.com/blogroll/menu-icons-considered-ugly/#comments</comments>
		<pubDate>Mon, 28 May 2007 09:30:46 +0000</pubDate>
		<dc:creator>Elliotte Rusty Harold</dc:creator>
				<category><![CDATA[Blogroll]]></category>
		<category><![CDATA[Macs]]></category>
		<category><![CDATA[User Interface]]></category>

		<guid isPermaLink="false">http://cafe.elharo.com/java/menu-icons-considered-ugly/</guid>
		<description><![CDATA[There&#8217;s a common but mistaken belief that proper user interface design requires lots of pictures and icons. In fact, it doesn&#8217;t. Many concepts and actions can be fully and best conveyed by text. While standard icons for directories and disks and the like can be helpful, custom icons for an application&#8217;s unique actions rarely are. [...]]]></description>
				<content:encoded><![CDATA[<p>There&#8217;s  a common but mistaken belief that proper user interface design requires lots of pictures and icons. In fact, it doesn&#8217;t. Many concepts and actions can be fully and best conveyed by text. While standard icons for directories and disks and the like can be helpful, custom icons for an application&#8217;s unique actions rarely are. The fact is, most icons are not self-explanatory; and if they&#8217;re not common enough to be standardized, they&#8217;re not common enough to be learned easily.  </p>
<p>Nonetheless, many applications persist in creating pointless, incomprehensible toolbars. Icon design is hard. It is not something that just any art school graduate with mad Photoshop skills can accomplish. Icon design is about conveying an idea with pictures. not merely making a 32&#215;32 bitmap look pretty. It&#8217;s hard enough coming up with a good icon for basic actions like cut and paste. Now try imagining one for &#8220;Analyze Module Dependencies&#8221; or &#8220;View Breakpoints&#8221;. There&#8217;s a reason <a href="http://en.wikipedia.org/wiki/Susan_Kare">Susan Kare</a> gets the big bucks.</p>
<p>Lately, this trend seems to have seeped into menus, where text used to rule supreme. For instance, look at this File menu from IntelliJ IDEA 6.0:</p>
<p><img src='http://cafe.elharo.com/wp-content/uploads/2007/05/menuicons.png' alt='menuicons.png' alt="New Project... New Module... Open Project... Icon Open File... Reopen Close Project Icon Settings... Template Project Settings... Icon Save All Export Settings... Import Settings..."/></p>
<p>Not only do the icons add nothing to the menu items. They actually make the menu harder to scan and read because the items are no longer left aligned.<br />
<span id="more-217"></span></p>
<p>By contrast consider this File menu from Firefox:</p>
<p><img src='http://cafe.elharo.com/wp-content/uploads/2007/05/menunoicons.png' alt='New Window New Tab Open Locationâ€¦ Open Fileâ€¦ Close' /></p>
<p>Notice how much cleaner and easier to read it is? The eye can scan straight down the left hand side looking for the item it wants. There&#8217;s a reason books, newspapers, and websites all use left aligned columns.<sup><a href="#f1">1</a></sup></p>
<p>Swing is partially to blame here. The <code><a href="http://java.sun.com/j2se/1.4.2/docs/api/javax/swing/Action.html">Action</a></code> interface encourages programmers to add icons to every action, and then displays those icons in the menus and the toolbars.  However icons only belong in toolbars, not menus. Swing should be configured to never show icons in menus. I suspect Swing is merely trying to support a bad user interface design from Windows and Linux. I could be wrong, but off the top of my head I don&#8217;t think I&#8217;ve ever seen a native Mac app make this particular mistake.<sup><a href="#f2">2</a></sup> However, on Windows and Linux/Gnome it&#8217;s endemic.<sup><a href="#f2">3</a></sup </p>
<p>If you simply cannot resist the urge to add icons to your menus, at least do this: add icons to every item, even blank icons if you must, to make sure all the menu items are properly left aligned. Gnome gets at least this much right, as shown in this File menu from the Gimp:</p>
<p><img src='http://cafe.elharo.com/wp-content/uploads/2007/05/gnomemenu1.png' alt='Icon Newâ€¦ Icon Openâ€¦' /></p>
<p>Windows gets this right too, and properly aligns the text even when some menu items have icons and some don&#8217;t. Java apps are really the odd ones out here. </p>
<p>But really, icons don&#8217;t belong in menus and never have. Menus are for text. Toolbars are for icons, and you shouldn&#8217;t mix the two.</p>
<hr />
<span class="footnote" id='f1'><sup>1</sup> Assuming a left to right language such as English or French, of course. </span></p>
<p><span class="footnote" id='f2'><sup>2</sup> The Finder actually does display icons in some of its optional menus: Script, Input, and Accounts. The Input menu at least has the excuse that a potential user may not be able to read the text but can pick a flag. However the Script menu has no excuse. In all three cases, the Finder misaligns the menu items. </span></p>
<p><span class="footnote" id='f3'><sup>3</sup> I don&#8217;t use KDE, so I don&#8217;t know if it shows up there too. Anyone happen to know?</span></p>
]]></content:encoded>
			<wfw:commentRss>http://cafe.elharo.com/blogroll/menu-icons-considered-ugly/feed/</wfw:commentRss>
		<slash:comments>35</slash:comments>
		</item>
		<item>
		<title>User Interfaces Are Like Robots</title>
		<link>http://cafe.elharo.com/ui/user-interfaces-are-like-robots/</link>
		<comments>http://cafe.elharo.com/ui/user-interfaces-are-like-robots/#comments</comments>
		<pubDate>Fri, 18 May 2007 12:51:47 +0000</pubDate>
		<dc:creator>Elliotte Rusty Harold</dc:creator>
				<category><![CDATA[User Interface]]></category>

		<guid isPermaLink="false">http://cafe.elharo.com/ui/user-interfaces-are-like-robots/</guid>
		<description><![CDATA[IBM&#8217;s Bill Higgins takes a very unusual way of explaining why Mac apps should look like Mac apps and Windows apps should look like Windows apps. It also explains why desktop Java failed. I&#8217;m not sure his analogy really holds, but I&#8217;m not sure it doesn&#8217;t. His conclusions are correct, even if his reasoning and/or [...]]]></description>
				<content:encoded><![CDATA[<p>IBM&#8217;s Bill Higgins takes  <a class="2007-05-18T09:36:49Z" href="http://billhiggins.us/weblog/2007/05/17/the-uncanny-valley-of-user-interface-design/">a very unusual way of explaining why</a> <a href="http://cafe.elharo.com/ui/steve-is-the-conductor-we-just-play-in-his-band/">Mac apps should look like Mac apps and Windows apps should look like Windows apps</a>. It also explains why desktop Java failed. </p>
<p>I&#8217;m not sure his analogy really holds, but I&#8217;m not sure it doesn&#8217;t. His conclusions are correct,  even if his reasoning and/or evidence turns out to be faulty. </p>
<p>He makes a good argument that SWT is the right way to design a cross-platform GUI, and Swing is the wrong way. The problem here is that empirically Swing delivers more native cross-platform apps than SWT does. When theory clashes with experience, either the theory is wrong or there are factors not accounted for in the theory. I suspect the latter here. </p>
]]></content:encoded>
			<wfw:commentRss>http://cafe.elharo.com/ui/user-interfaces-are-like-robots/feed/</wfw:commentRss>
		<slash:comments>19</slash:comments>
		</item>
		<item>
		<title>Home means the Beginning; End means the End</title>
		<link>http://cafe.elharo.com/ui/home-means-the-beginning-end-means-the-end/</link>
		<comments>http://cafe.elharo.com/ui/home-means-the-beginning-end-means-the-end/#comments</comments>
		<pubDate>Sat, 28 Apr 2007 12:57:53 +0000</pubDate>
		<dc:creator>Elliotte Rusty Harold</dc:creator>
				<category><![CDATA[Macs]]></category>
		<category><![CDATA[User Interface]]></category>

		<guid isPermaLink="false">http://cafe.elharo.com/ui/home-means-the-beginning-end-means-the-end/</guid>
		<description><![CDATA[While Mac programs usually have very consistent user interfaces, and most programmers religiously adhere to Apple&#8217;s human interface guidelines, there is one persistent glitch that continues to annoy us: the behavior of the Home and End keys. On a Mac, these keys should always, always, always move the cursor to the beginning and end of [...]]]></description>
				<content:encoded><![CDATA[<p>While Mac programs usually have very consistent user interfaces, and most programmers religiously adhere to Apple&#8217;s human interface guidelines, there is one persistent glitch that continues to annoy us: the behavior of the Home and End keys. On a Mac, these keys should always, <em>always</em>, <strong>always</strong> move the cursor to the beginning and end of the document respectively.<br />
<span id="more-211"></span></p>
<p>Let me quote here from <a href="http://developer.apple.com/documentation/UserExperience/Conceptual/OSXHIGuidelines/XHIGUserInput/chapter_11_section_3.html">Apple</a>:</p>
<blockquote source="http://developer.apple.com/documentation/UserExperience/Conceptual/OSXHIGuidelines/XHIGUserInput/chapter_11_section_3.html"><p>Pressing the Home key is equivalent to moving the scrollers all the way to the top and to the left. In a text document, for example, pressing Home scrolls to the beginning of the document; in a spreadsheet, it may scroll to the beginning of the spreadsheet or to the beginning of a row. These keys should also work in scrolling lists to display the top or bottom of the list.</p>
<p>End is the opposite of Home: It scrolls to the end of a document.</p>
<p>If the beginning or end of the document is already reached, pressing Home or End produces a system alert sound. Pressing the Home or End key has no effect on the location of the insertion point or selected data.</p></blockquote>
<p>Many applications, however, including some otherwise consistent programs such as Microsoft Word for the Mac and <a href="https://bugzilla.mozilla.org/show_bug.cgi?id=130380">Firefox</a> get this wrong. Usually they move to the beginning and end of the line rather than the document. They may also move the insertion point.</p>
<p>Mac native programs like BBEdit and Safari usually get this right. Misbehaving applications usually derive from Windows code bases. On Windows the <a href="http://msdn2.microsoft.com/en-us/library/ms971323.aspx">convention</a> is different. On Windows the Home key is supposed to move the cursor to the beginning of the line and the end key is supposed to move the cursor to the end of the line. Control-Home moves the cursor to the beginning of the document and Control-End moves the cursor to the end of the document.  That is fine for Windows applications but it is not fine for Mac applications, not even Mac applications ported from Windows. It confuses users and causes your application to feel un-Mac-like. </p>
<p>It&#8217;s not hard to get this right, and it&#8217;s a really simple thing to do. I suspect it&#8217;s so commonly done wrong just because it&#8217;s so small that most developers overlook it. You&#8217;d notice immediately if the close button on a window were a black X instead of a red lozenge, but who even thinks to check where the Home and End keys put the user? Nonetheless, it is significant, and it is worth fixing. </p>
<p>When writing a Mac app please remember:</p>
<ul>
<li>The Home key moves the view to the top of the document.</li>
<li>The End key moves the view to the bottom of the document.</li>
<li>Neither key moves the insertion point.</li>
</ul>
<p>Mac users thank you for paying attention to this.</p>
]]></content:encoded>
			<wfw:commentRss>http://cafe.elharo.com/ui/home-means-the-beginning-end-means-the-end/feed/</wfw:commentRss>
		<slash:comments>16</slash:comments>
		</item>
		<item>
		<title>Why VRML Failed and What That Means for OpenOffice</title>
		<link>http://cafe.elharo.com/ui/why-vrml-failed-and-what-that-means-for-openoffice/</link>
		<comments>http://cafe.elharo.com/ui/why-vrml-failed-and-what-that-means-for-openoffice/#comments</comments>
		<pubDate>Wed, 25 Apr 2007 09:12:02 +0000</pubDate>
		<dc:creator>Elliotte Rusty Harold</dc:creator>
				<category><![CDATA[Macs]]></category>
		<category><![CDATA[User Interface]]></category>

		<guid isPermaLink="false">http://cafe.elharo.com/ui/why-vrml-failed-and-what-that-means-for-openoffice/</guid>
		<description><![CDATA[Why was VRML an also-ran in the flood of new technologies introduced in the 1990s? It wasn&#8217;t fundamentally broken or a bad idea. It wasn&#8217;t worse than other technologies of the day like Java 1.0 and Shockwave. It certainly didn&#8217;t suffer from a lack of hype, investment, or development resources compared to the winners. VRML [...]]]></description>
				<content:encoded><![CDATA[<p>Why was <abbr>VRML</abbr> an also-ran in the flood of new technologies introduced in the 1990s? It wasn&#8217;t fundamentally broken or a bad idea. It wasn&#8217;t worse than other technologies of the day like Java 1.0 and Shockwave. It certainly didn&#8217;t suffer from a lack of hype, investment, or development resources compared to the winners. <abbr>VRML</abbr> fail for one reason and one reason only: it didn&#8217;t run on the Mac; and OpenOffice is failing now for the same reason.<br />
<span id="more-209"></span></p>
<p>The problem was all the <abbr>VRML</abbr> vendors looked at the Mac&#8217;s marginal market share, and decided they couldn&#8217;t afford to support it. (Linux either.) Of course they completely missed some very important factors:</p>
<ol>
<li>Many Windows PCs were doing boring, ordinary tasks like data entry that were never going to need <abbr>VRML</abbr>.</li>
<li>Mac marketshare was much higher in education, though still not a majority.</li>
<li>Mac marketshare was much higher among home users surfing the web recreationally.</li>
</ol>
<p>Thus <abbr>VRML</abbr> chopped off a good portion of its potential user base at a stroke. In fact, it chopped off enough that nobody who actually wanted to reach end users could seriously consider it. However, that&#8217;s still not the most important reason <abbr>VRML</abbr> failed. </p>
<p>The real reason <abbr>VRML</abbr> failed is that Mac market share approached or exceeded 50% among the Web designers creating the early Web in the mid-90s. Every web shop in business at the time was just raring to jump on the next hot bandwagon, but when they looked at <abbr>VRML</abbr> the first thing they saw was that there weren&#8217;t any tools for them to use. So instead they looked at Java, Shockwave, Flash, HTML, Acrobat, and other things that at least ran on the Mac, even if they didn&#8217;t run well. <abbr>VRML</abbr> never recovered. </p>
<p>OpenOffice is in a little better shape than <abbr>VRML</abbr> was. It does run on the Mac, but so poorly no Mac user can seriously consider it for anything but opening the occasional OpenOffice document emailed to them by a Linux zealot. NeoOffice is a much better alternative, but it is still crippled by sitting on top of a code base written with little to no concern for the Mac. <a href="http://bugzilla.neooffice.org/bug.php?op=show&amp;bugid=1697&amp;pos=0">Too</a> <a href="http://bugzilla.neooffice.org/bug.php?op=show&amp;bugid=1698&amp;pos=1">many</a> <a href="http://bugzilla.neooffice.org/bug.php?op=show&amp;bugid=1699&amp;pos=2">user interface</a> <a href="http://bugzilla.neooffice.org/bug.php?op=show&amp;bugid=1720&amp;pos=3">idiosyncrasies</a> are the result of anti-Mac design decisions made in the core OpenOffice code base. NeoOffice is painting a pig to look like a tiger, but it still oinks instead of roars.</p>
<p>If OpenOffice is serious about supplanting Microsoft Office as the standard office suite (not merely the standard office document format) then it has to learn something Microsoft learned decades ago. It is not enough to run well on the preeminent desktop platform with 90% market share. You have to run on the Mac too. Microsoft Office is the de facto standard because people don&#8217;t have to think about who they&#8217;re sending a document to or what software they&#8217;re running. Publishers don&#8217;t have to force authors onto a specific platform. They just send out a Word template, and everyone&#8217;s happy. OpenOffice doesn&#8217;t make everyone happy.</p>
<p>Linux users will put up with crappy user interfaces that are never consistent from one program to the next. Windows users often will. Mac users <a href="http://www.cafeaulait.org/slides/sd2006west/macifying/03.html">never will</a>, and there are too many Macs out there to ignore. On the Mac, OpenOffice and NeoOffice are dancing bears. It&#8217;s amazing that the products dance at all, but what we need are ballerinas, not bears.</p>
<p>It is possible to write good, cross-platform software that Mac, Windows, and Linux users will all enthusiastically adopt because they want to, not because it&#8217;s cheap or because some Linux zealot sysadmin installed it on their PC when they weren&#8217;t looking. Firefox proves this, and consequently Firefox is well on its way to 50% market share or better.  Until OpenOffice makes a similar commitment to treating the Mac on an equal footing with Windows, it will not supplant Microsoft Office. It can achieve a few adoptions here and there in cost conscious businesses and government agencies. It can find a reliable place on the miniscule fraction of the desktop market running Linux. However, it&#8217;s never going to come close to 50% market share or establish itself as the standard office software. </p>
]]></content:encoded>
			<wfw:commentRss>http://cafe.elharo.com/ui/why-vrml-failed-and-what-that-means-for-openoffice/feed/</wfw:commentRss>
		<slash:comments>33</slash:comments>
		</item>
		<item>
		<title>Steve is the conductor. We just play in his band.</title>
		<link>http://cafe.elharo.com/ui/steve-is-the-conductor-we-just-play-in-his-band/</link>
		<comments>http://cafe.elharo.com/ui/steve-is-the-conductor-we-just-play-in-his-band/#comments</comments>
		<pubDate>Sun, 18 Feb 2007 13:54:28 +0000</pubDate>
		<dc:creator>Elliotte Rusty Harold</dc:creator>
				<category><![CDATA[User Interface]]></category>

		<guid isPermaLink="false">http://cafe.elharo.com/ui/steve-is-the-conductor-we-just-play-in-his-band/</guid>
		<description><![CDATA[(Custom look and feel considered harmful) Suppose you&#8217;re playing piccolo in a marching band. You want to play the Stars and Stripes Forever because it really shows off your skills as a piccolo player. However the rest of the band is playing the Star Spangled Banner. The talented piccolo player plays the Star Spangled Banner [...]]]></description>
				<content:encoded><![CDATA[<h3>(Custom look and feel considered harmful)</h3>
<p>Suppose you&#8217;re playing piccolo in a marching band. You want to play the Stars and Stripes Forever because it really shows off your skills as a piccolo player. However the rest of the band is playing the Star Spangled Banner. The talented piccolo player plays the Star Spangled Banner like everyone else. The pointless prima donna plays Stars and Stripes Forever. It sounds awful and everyone stops listening to the band. </p>
<p>User interfaces are no different. Some are <a href="http://weblogs.java.net/blog/kirillcool/archive/2007/02/whats_the_big_d.html">advocating</a> that we each choose our own tune, and indeed designing libraries to help us do that. However this serves only the egos of the players (or programmers). It does nothing for the audience (or end users) except make them walk away in disgust. I reiterate: it is the goal of a Java application (or any other application for that matter) to fit in with other applications, not to stand out.<br />
<span id="more-188"></span></p>
<p>Consistency is a virtue in user interface design. It doesn&#8217;t matter if the user interface of an application is best considered in isolation. It matters if it works the same way as every other application on the system. Users should not have to learn a new user interface for every application. We&#8217;ve tried that before (remember DOS?) and it doesn&#8217;t work. A large and mostly unrecognized reason why the Mac is still easier to use than Windows is that Mac developers mostly know this, and other developers mostly don&#8217;t. </p>
<p>This is why Mac users are far more likely than non-Mac users to install and try new applications. They have a much greater expectation that the applications do not have a huge learning curve. A person can only hold so many user interfaces in their head at once. It doesn&#8217;t matter that your design is 20% better than the Mac standard design. The mere fact that it is different makes it harder to use.  This is why Mac users on average use several more applications daily  than Windows users do.<sup>*</sup></p>
<p>Custom look-and-feels are like playing the wrong tune because you want a different tune. Changing the UI for Mac OS X is like changing the tune for the whole band. The conductor decides what tune the band plays, and if he chooses wisely the band sounds better. If he doesn&#8217;t they sound worse. Either way, though, they&#8217;ll sound much better if they play what he has chosen than what each individually wants to play. </p>
<p>Most of us are piccolo players, not conductors.  It is our job and our responsibility to play the tune the conductor sets on the instrument we have chosen. It is not our job to change the tune, and when we do that ugliness (in music or user interface) is the expected and natural result. It doesn&#8217;t matter that Steve occasionally changes the tune we&#8217;re playing. That&#8217;s his prerogative as conductor. When he does that, we change our tune too. But we should not change to a new tune we happen to like while the rest of the band is still playing the old one. </p>
<hr />
P.S.  The listener is of course always free to listen to a different band. If the <em>end user</em> wants to change the user interface, that&#8217;s acceptable. However we as application developers should not presume to know what&#8217;s best and change the standard interface for them. </p>
<hr />
P.P.S.  If you&#8217;re playing in Bill&#8217;s band, of course you should follow his tune instead of Steve&#8217;s. It doesn&#8217;t matter a great deal. Whatever Steve is playing today, Bill will likely be playing tomorrow. </p>
<hr />
P.P.P.S.  If you&#8217;re playing in Linus&#8217; band, play whatever you feel like. No one else is playing the same tune anyway. </p>
<hr />
<small><sup>*</sup> This certainly used to be true. However I haven&#8217;t seen recent figures on this characteristic. Possibly the gap has closed a little in recent years, though I very much doubt if Windows has caught up. There are still too many egocentric, idiosyncratic user interfaces in the Windows space.</small> </p>
]]></content:encoded>
			<wfw:commentRss>http://cafe.elharo.com/ui/steve-is-the-conductor-we-just-play-in-his-band/feed/</wfw:commentRss>
		<slash:comments>17</slash:comments>
		</item>
	</channel>
</rss>
