<?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>sellmic.com &#187; User Interface</title>
	<atom:link href="http://sellmic.com/blog/category/user-interface/feed/" rel="self" type="application/rss+xml" />
	<link>http://sellmic.com/blog</link>
	<description>Augusto's corner of art, code and fun</description>
	<lastBuildDate>Fri, 14 Aug 2009 01:07:15 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.4</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>&#8220;Terror Messages&#8221; (cute error messages that scare you based on context)</title>
		<link>http://sellmic.com/blog/2009/08/13/terror-messages-cute-error-messages-that-scare-you-based-on-context/</link>
		<comments>http://sellmic.com/blog/2009/08/13/terror-messages-cute-error-messages-that-scare-you-based-on-context/#comments</comments>
		<pubDate>Fri, 14 Aug 2009 01:06:14 +0000</pubDate>
		<dc:creator>Augusto</dc:creator>
				<category><![CDATA[Technology]]></category>
		<category><![CDATA[Travel]]></category>
		<category><![CDATA[User Interface]]></category>
		<category><![CDATA[delta]]></category>
		<category><![CDATA[error message]]></category>
		<category><![CDATA[flight]]></category>
		<category><![CDATA[usability]]></category>
		<category><![CDATA[wi-fi]]></category>

		<guid isPermaLink="false">http://sellmic.com/blog/?p=397</guid>
		<description><![CDATA[
So Delta has a cute &#8220;We&#8217;re Experiencing Some Turbulence&#8221; error message when they have an internal error on their website. I&#8217;ve seen this error many times before, I think the first time I chuckled a bit.
The other day I was enjoying the new Wi-Fi Delta offers in some of their flights. I checked my email, [...]]]></description>
			<content:encoded><![CDATA[<p><img class="aligncenter size-full wp-image-398" title="Delta website error message" src="http://sellmic.com/blog/wp-content/uploads/2009/08/delta_turbulence_error_mess.jpg" alt="Delta website error message" width="589" height="356" /></p>
<p>So Delta has a cute &#8220;<strong>We&#8217;re Experiencing Some Turbulence</strong>&#8221; error message when they have an internal error on their website. I&#8217;ve seen this error many times before, I think the first time I chuckled a bit.</p>
<p>The other day I was enjoying the new <a href="http://www.delta.com/traveling_checkin/inflight_services/products/wi-fi.jsp">Wi-Fi Delta offers</a> in some of their flights. I checked my email, my facebook account, everything worked great. Then it occured to me to check my delta account. I was wondering if they credit your miles after take off or later when you land (yeah I was bored). Suddenly, I get the familiar error message; &#8220;<strong>We&#8217;re Experiencing Some Turbulence</strong>&#8220;. I go, &#8220;<em>oh crap</em>&#8221; what&#8217;s going on? For a couple of seconds I forgot I was getting an error message for a website, and thought I was reading a message about my flight, a problem serious enough that they bothered to notify me via the new Wi-Fi connection.</p>
<p>Now I did say it was a couple of seconds, of course I quickly realized this had nothing to do with my flight. But for a couple of seconds I did get a bit freaked out by the message, specially seeing it on my browser. It got me thinking; how did my brain go into alert mode that quick when I know better?</p>
<p>It was all about <em><strong>context</strong></em>.</p>
<p>The context in this situation is this; traveling on Delta flight, on the official Delta website, checking my account and current flight information and then getting a message mentioning a very specific phrase about air travel. Obviously, if I get this message at my home, the train or the airport there&#8217;s no problem. Everything changes once I&#8217;m on a situation that is directly related to the term used in the error message.</p>
<p>So it&#8217;s probably not a good idea to keep these cute error messages, when you think that there&#8217;s a new context for use of this site. Before it wasn&#8217;t possible to read this from a plane but now it is. It just highlights how sometimes when you consider usability, you have to think about all the possible scenarios that your users will be in while interacting your application.</p>
<p>BTW, I&#8217;d love to hear from other people on potential error messages that might be scary in other contexts.</p>
]]></content:encoded>
			<wfw:commentRss>http://sellmic.com/blog/2009/08/13/terror-messages-cute-error-messages-that-scare-you-based-on-context/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>New screenshots of the JavaFX Design Tool</title>
		<link>http://sellmic.com/blog/2009/06/13/new-screenshots-of-the-javafx-design-tool/</link>
		<comments>http://sellmic.com/blog/2009/06/13/new-screenshots-of-the-javafx-design-tool/#comments</comments>
		<pubDate>Sat, 13 Jun 2009 07:06:50 +0000</pubDate>
		<dc:creator>Augusto</dc:creator>
				<category><![CDATA[Java]]></category>
		<category><![CDATA[User Interface]]></category>
		<category><![CDATA[javafx]]></category>
		<category><![CDATA[authoring tool]]></category>
		<category><![CDATA[design tool]]></category>

		<guid isPermaLink="false">http://sellmic.com/blog/?p=378</guid>
		<description><![CDATA[
The screenshot above is from Anthony Rogers&#8217; blog (UI designer for the tool), and the next one is from Chris Oliver&#8217;s blog, who successfully managed to hide away from most of the geek crowds at JavaOne.

The design of the tool is looking really nice and clean, the timeline reminds me a bit of the Adobe [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: center;"><a href="http://blogs.sun.com/ant/entry/tool"><img class="aligncenter size-full wp-image-380" title="JavaFX Design/Authoring tool" src="http://sellmic.com/blog/wp-content/uploads/2009/06/jfx_design_tool_preview2.jpg" alt="jfx_design_tool_preview2" width="589" height="331" /></a></p>
<p>The screenshot above is from <a href="http://blogs.sun.com/ant/entry/tool">Anthony Rogers&#8217; blog</a> (UI designer for the tool), and the next one is from <a href="http://blogs.sun.com/chrisoliver/entry/javafx_design_tool">Chris Oliver&#8217;s blog</a>, who successfully managed to hide away from most of the geek crowds at JavaOne.</p>
<p style="text-align: center;"><a href="http://blogs.sun.com/chrisoliver/entry/javafx_design_tool"><img class="aligncenter size-full wp-image-379" title="Timeline Design" src="http://sellmic.com/blog/wp-content/uploads/2009/06/jfx_design_tool_preview1.jpg" alt="jfx_design_tool_preview1" width="589" height="333" /></a></p>
<p>The design of the tool is looking really nice and clean, the timeline reminds me a bit of the <a href="http://filmmakingcentral.com/fmc2/wp-content/uploads/2008/12/premui1.jpg">Adobe Premiere CS4 one</a>. But unlike Premiere or Flash CS4, one interesting design choice is the lack of row headers to identify the different elements or categories for the rows in the timeline. This makes it look a bit cleaner and less cluttered, but it would be interesting to see if this doesn&#8217;t make it more difficult to track just what it is you are supposed to be controlling in that part of the timeline. Hard to tell without trying the tool of course (<em>hint, hint, Sun &#8230; available for alpha/beta testing!</em>).</p>
<p>I haven&#8217;t seen a single bit of code in any of the screenshots/demos so far. I wouldn&#8217;t be surprised that there was some script text area somewhere, or maybe the expectation is that for code you go to a tool like Netbeans?</p>
<p>Tor Norbye also <a href="http://blogs.sun.com/tor/entry/finally_over#comment-1244675162000">provides some additional information</a> about the tool, it will be available as a webstart application that will let you save data in the &#8220;cloud&#8221; (like Google Docs) or locally, as well as run the tool online/offline.</p>
<p>Chris calls it the JavaFX Design tool, others the JavaFX Authoring tool, for sure neither of these is the final name for the product but I&#8217;m still a bit surprised it doesn&#8217;t seem to have any sort of funky codename at this point.</p>
<p>You can watch some short videos of the tool in action <a href="http://sellmic.com/blog/2009/06/05/javafx-authoring-tool-demo-at-javaone-2009-with-video/">here</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://sellmic.com/blog/2009/06/13/new-screenshots-of-the-javafx-design-tool/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>My JavaFX presentation at PanamaJUG 2007 (JavaFX en Español)</title>
		<link>http://sellmic.com/blog/2008/05/18/my-javafx-presentation-at-panamajug-2007-javafx-en-espanol/</link>
		<comments>http://sellmic.com/blog/2008/05/18/my-javafx-presentation-at-panamajug-2007-javafx-en-espanol/#comments</comments>
		<pubDate>Sun, 18 May 2008 19:12:30 +0000</pubDate>
		<dc:creator>Augusto</dc:creator>
				<category><![CDATA[Java]]></category>
		<category><![CDATA[Software Development]]></category>
		<category><![CDATA[Technology]]></category>
		<category><![CDATA[Travel]]></category>
		<category><![CDATA[User Interface]]></category>

		<guid isPermaLink="false">http://sellmic.com/blog/2008/05/18/my-javafx-presentation-at-panamajug-2007-javafx-en-espanol/</guid>
		<description><![CDATA[Last December I did a presentation about JavaFX in Spanish for the Panama Java User&#8217;s Group (JUG). This event took place in the city of Chitre, and was a lot of fun to participate in, specially since it gave me a chance to visit my native country. The presentation aimed to serve as an introduction [...]]]></description>
			<content:encoded><![CDATA[<p><center><iframe src="http://docs.google.com/EmbedSlideshow?docid=avn83j2j7zf_10dzgx4ngh" frameborder="0" height="342" width="410"></iframe></center>Last December I did a presentation about JavaFX in Spanish for the Panama Java User&#8217;s Group (JUG). This event took place in the city of Chitre, and was a lot of fun to participate in, specially since it gave me a chance to visit my native country. The presentation aimed to serve as an introduction to JavaFX, providing an overview of the main features of the language. I showed some simple demos from Sun, and a few I created myself. At the end, we went over my <a href="http://sellmic.com/blog/2007/05/22/javafx-clock-update-now-with-transparency/">JavaFX clock</a> implementation and discussed a bit what place JFX occupies in the RIA technology space. The slides are featured at the top of this post, and are in Spanish of course.  Thanks to <a href="http://avbravo.blogspot.com/">Aristides Villareal</a>, and the members of the Panama JUG for inviting me to this wonderful event! I was lucky enough to bring along one of my daughters, Sofia, and she enjoyed the trip very much.</p>
<p>I have to say, the most difficult part of preparing this presentation was trying to figure out the Spanish version of common programming words and concepts. Part of the problem is that when I was learning how to program in Panama (when I was around 10-12 years old) all of my resources; magazines, books, etc where all in English. So I never knew that array is &#8220;arreglo&#8221;, that a developer is called a &#8220;desarrollador&#8221;, or what the corresponding word for loop is. It would be really nice if there was some type of resource out there with a table with all these terms, and maybe other languages. One challenge is that it seems not all of these words are &#8220;settled&#8221;. I noticed some people were still pretty comfortable with the English versions, while others used the Spanish ones exclusively. Also, there are a lot of emerging technologies and concepts in Computer Science which I think still don&#8217;t have Spanish translations. Pretty much a more difficult challenge than I expected.</p>
<p><img src="http://sellmic.com/blog/wp-content/uploads/2008/05/javax-panama-jug.jpg" alt="javax-panama-jug.jpg" /></p>
<p>One more thing, JavaFX has changed a lot in the last year. When I did this presentation, I didn&#8217;t cover how much effort has gone into optimizing this technology or the new changes to the animation API (like the deprecated dur keyword). There is a preview JFX SDK coming out next month, and you can sign up for it at<a href="http://javafx.com"> javafx.com</a>. I didn&#8217;t attend JavaOne this year, so I don&#8217;t know all the details, but I&#8217;m hoping the SDK comes with some of the tooling that Sun has promised. Designer level tools are key to this technology&#8217;s success. I hope to make a blog post with a quick review of the SDK once it comes out.</p>
]]></content:encoded>
			<wfw:commentRss>http://sellmic.com/blog/2008/05/18/my-javafx-presentation-at-panamajug-2007-javafx-en-espanol/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>JavaFX</title>
		<link>http://sellmic.com/blog/2007/05/08/javafx/</link>
		<comments>http://sellmic.com/blog/2007/05/08/javafx/#comments</comments>
		<pubDate>Tue, 08 May 2007 15:04:27 +0000</pubDate>
		<dc:creator>Augusto</dc:creator>
				<category><![CDATA[Java]]></category>
		<category><![CDATA[User Interface]]></category>

		<guid isPermaLink="false">http://sellmic.com/blog/2007/05/08/javafx/</guid>
		<description><![CDATA[
So yesterday at CommunityOne there were some hints about some developments on the Java client side. I guess it&#8217;s obvious to guess at this point, minutes before today&#8217;s JavaOne keynote that it&#8217;s going to be about JavaFX. This technology seems like a direct competitor with Adobe&#8217;s Flex and Microsoft&#8217;s Silverlight, and may leverage existing installations [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: center" align="center"><img src="http://sellmic.com/blog/wp-content/uploads/2007/05/javafx.jpg" alt="javafx.jpg" /></p>
<p>So yesterday at CommunityOne there were some hints about some developments on the Java client side. I guess it&#8217;s obvious to guess at this point, minutes before today&#8217;s JavaOne keynote that it&#8217;s going to be about <a href="http://blogs.zdnet.com/Burnette/?p=306">JavaFX</a>. This technology seems like a direct competitor with Adobe&#8217;s Flex and Microsoft&#8217;s Silverlight, and may leverage existing installations of the Java VM. More details today of course.</p>
<p>We&#8217;ve already seen JavaFX, it comes from a project called F3 (Form Follows Function). I was lucky enough to reserve a spot at one of those talks, and I&#8217;m glad because I&#8217;m sure it&#8217;s going to get filled up pretty soon after this has been officially announced.</p>
<p>Things I would like to see addressed:</p>
<ul>
<li> What support is there for media (JMF is old and crusty)? If there&#8217;s anything new, can we take advantage of it on regular Java SE apps?</li>
<li>Does this include a smaller client footprint? (stripped down JVM?)</li>
<li>Is this project seen as a replacement of Applet technology?</li>
<li>Would it be possible to create JavaFX apps with Java?</li>
<li>F3 introduces it&#8217;s own scripting language ,would it be possible to easily interact with existing Java code?</li>
<li>Tool support. If I&#8217;m creating an animation, will there be visual editors (a timeline?) for an artist to compose the app?</li>
</ul>
<p>Questions, questions, questions &#8230;</p>
<p>Update 1: JavaFX site open now!</p>
<p><a href="https://openjfx.dev.java.net/">https://openjfx.dev.java.net</a></p>
<p>There&#8217;s even an Netbeans plugin available (downloading now &#8230;)</p>
]]></content:encoded>
			<wfw:commentRss>http://sellmic.com/blog/2007/05/08/javafx/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Bad dialog practices &#8230;</title>
		<link>http://sellmic.com/blog/2007/05/03/bad-dialog-practices/</link>
		<comments>http://sellmic.com/blog/2007/05/03/bad-dialog-practices/#comments</comments>
		<pubDate>Fri, 04 May 2007 04:48:19 +0000</pubDate>
		<dc:creator>Augusto</dc:creator>
				<category><![CDATA[Java]]></category>
		<category><![CDATA[Software Development]]></category>
		<category><![CDATA[User Interface]]></category>

		<guid isPermaLink="false">http://sellmic.com/blog/2007/05/03/bad-dialog-practices/</guid>
		<description><![CDATA[
&#160;
When I launch Netbeans 5.5, it seems I&#8217;ve installed some version control module that produces these two dialogs whenever I start the IDE. I still can&#8217;t figure out what the program wants me to do here. First of all, it has to be a bug and not a feature that it&#8217;s popping up 2 modal [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: center" align="center"><img src="http://sellmic.com/blog/wp-content/uploads/2007/05/nb-error-dialog-cvs-vcs.png" alt="nb-error-dialog-cvs-vcs.png" /></p>
<p style="text-align: center" align="center">&nbsp;</p>
<p align="left">When I launch Netbeans 5.5, it seems I&#8217;ve installed some version control module that produces these two dialogs whenever I start the IDE. I still can&#8217;t figure out what the program wants me to do here. First of all, it has to be a bug and not a feature that it&#8217;s popping up 2 modal dialogs at the same time. Very annoying. However, what really confuses me is that one dialog is for &#8220;<a href="http://www.nongnu.org/cvs/">CVS</a>&#8221; and the other for &#8220;<a href="http://vcsgeneric.netbeans.org/profiles/index.html">VCS</a>&#8220;, which adds to the confusion because just by looking at the text you really get the terms confused. (I&#8217;m guessing I get these because they are 2 different but related Netbeans Modules/Plugins)</p>
<p align="left"> But the worst part is that I&#8217;m not sure what these dialogs are trying to tell me. Both say that a module is being installed, while an older version of the source control infrastructure is being disabled. Both dialogs have almost the same exact text, but one at least is telling me that it &#8220;strongly recommends I restart the IDE after the installation is complete&#8221;. The question is, why do I have to do this manually? I&#8217;m not even sure when the installation is complete, there&#8217;s no visual indication. Wouldn&#8217;t it be better to bother me about the restart option once you are ready? Even better, how about restarting the IDE when it needs to do this (Would you like to restart the IDE so VCS/CVS modules can complete their installation?).</p>
<p align="left">I also don&#8217;t know how to get rid of these dialogs. I get the impression I&#8217;m not supposed to do any manual operation, but I keep getting them. Perhaps it&#8217;s time to blast my current installation and start over again, which is never a fun thing to do.</p>
]]></content:encoded>
			<wfw:commentRss>http://sellmic.com/blog/2007/05/03/bad-dialog-practices/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Magnetic Desklet v 0.1</title>
		<link>http://sellmic.com/blog/2007/04/07/60/</link>
		<comments>http://sellmic.com/blog/2007/04/07/60/#comments</comments>
		<pubDate>Sun, 08 Apr 2007 02:47:13 +0000</pubDate>
		<dc:creator>Augusto</dc:creator>
				<category><![CDATA[Java]]></category>
		<category><![CDATA[Software Development]]></category>
		<category><![CDATA[User Interface]]></category>

		<guid isPermaLink="false">http://sellmic.com/blog/2007/04/07/60/</guid>
		<description><![CDATA[
&#160;
I uploaded the first version of the &#8220;magnetic desklet&#8221;. If you have AB5K installed, it should install and start by clicking/downloading this:
http://sellmic.com/download/MagneticDesklet.desklet.
I have a blog entry that describes the concept of what this is trying to do (not everything is implemented), and another post on the desklet dev list with more details. The short description [...]]]></description>
			<content:encoded><![CDATA[<p align="center"><img src="http://sellmic.com/blog/wp-content/uploads/2007/04/magnetic-desklet-v0_1.png" alt="Magnetic Desklet v 0.1" /></p>
<p align="center">&nbsp;</p>
<p align="left">I uploaded the first version of the &#8220;magnetic desklet&#8221;. If you have <a href="http://www.ab5k.org/">AB5K</a> installed, it should install and start by clicking/downloading this:<br />
<a href="http://sellmic.com/download/MagneticDesklet.desklet" target="_blank" rel="nofollow">http://sellmic.com/download/MagneticDesklet.desklet</a>.</p>
<p align="left">I have a <a href="http://sellmic.com/blog/2007/03/21/magnetic-desklet-initial-thoughts/">blog entry </a>that describes the concept of what this is trying to do (not everything is implemented), and <a href="http://groups.google.com/group/desklets-contributors/browse_thread/thread/89c1f85134013be3">another post</a> on the desklet dev list with more details. The short description is that it&#8217;s sort of a window manager for desklets (desklets are the same concept as gadgets or widgets) with a magnet metaphor.</p>
<p align="left">There&#8217;s a lot of changes being committed to AB5K now, so this desklet won&#8217;t work for long. Give it a try if you get a chance.</p>
]]></content:encoded>
			<wfw:commentRss>http://sellmic.com/blog/2007/04/07/60/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Magnetic Desklet &#8211; Initial Thoughts</title>
		<link>http://sellmic.com/blog/2007/03/21/magnetic-desklet-initial-thoughts/</link>
		<comments>http://sellmic.com/blog/2007/03/21/magnetic-desklet-initial-thoughts/#comments</comments>
		<pubDate>Wed, 21 Mar 2007 19:50:28 +0000</pubDate>
		<dc:creator>Augusto</dc:creator>
				<category><![CDATA[Java]]></category>
		<category><![CDATA[User Interface]]></category>

		<guid isPermaLink="false">http://sellmic.com/blog/2007/03/21/magnetic-desklet-initial-thoughts/</guid>
		<description><![CDATA[Recently Joshua Marinacci and Robert Cooper announced their new AB5k project, a cross platform Java based widget system.
I&#8217;ve been pretty interested in the project and was wondering what desklet to develop. I&#8217;ve always been interested in window management issues, and in the AB5k forum there was a discussion about using the &#8220;magnet&#8221; name. That gave [...]]]></description>
			<content:encoded><![CDATA[<p align="left">Recently <a href="http://weblogs.java.net/blog/joshy/">Joshua Marinacci</a> and Robert Cooper <a href="http://www.artima.com/forums/flat.jsp?forum=276&amp;thread=197997">announced</a> their new <a href="http://www.ab5k.org/">AB5k</a> project, a cross platform Java based widget system.</p>
<p align="left">I&#8217;ve been pretty interested in the project and was wondering what desklet to develop. I&#8217;ve always been interested in window management issues, and in the<a href="http://groups.google.com/group/desklets-contributors?hl=en"> AB5k forum</a> there was a discussion about using the &#8220;magnet&#8221; name. That gave me a little idea for developing a&#8221;Magnetic Desklet&#8221;.</p>
<h1 align="left">Goal</h1>
<p align="left">The main purpose of the Magnetic Desklet is to help users manage the layout of their desklets. Some of the functions are basic window management and could be implemented by the desklet container (ex: hide all my desklets, restore them), but the idea here is to complement the container and do it in a fun metaphor that makes sense usability wise.</p>
<h1 align="left"> Description</h1>
<p>The best way to describe the window management features of this desklet is visually.</p>
<p style="text-align: center" align="center"><img src="http://sellmic.com/blog/wp-content/uploads/2007/03/01-magnet.jpg" alt="01-magnet.jpg" /></p>
<h2 style="text-align: center" align="center"> Figure 1</h2>
<p align="left">The Magnetic Desklet should be just another desklet that you can load into your system, since it will do window management, it will probably need to ask for special permissions. You can drag the magnet anywhere you want and access functions via a right click popup menu (there might be better ideas for this, as I don&#8217;t like hidden functions).</p>
<p style="text-align: center" align="center"> <img src="http://sellmic.com/blog/wp-content/uploads/2007/03/02-magnet-desklets.jpg" alt="02-magnet-desklets.jpg" /></p>
<h2 style="text-align: center" align="center"> Figure 2</h2>
<p align="left"> The main point of this desklet is to help you organize your desklet container. So for example, if I have a set of open desklets and I want to make some space, I should be able to click on the magnet (or access a &#8220;collapse&#8221; menu item in the popup menu) to group them all together.</p>
<p align="left"><span id="more-58"></span></p>
<p style="text-align: center" align="center"> <img src="http://sellmic.com/blog/wp-content/uploads/2007/03/03-magnet-collapse.jpg" alt="03-magnet-collapse.jpg" /></p>
<h2 style="text-align: center" align="center">Figure 3</h2>
<p align="left">All the existing desklets should collapse behind the magnet. The desklet will also remember all previous locations of the other desklets, so you can &#8220;restore&#8221; them easily from one of its commands.</p>
<p style="text-align: center" align="center"><img src="http://sellmic.com/blog/wp-content/uploads/2007/03/04-magnet-horizontal.jpg" alt="04-magnet-horizontal.jpg" /></p>
<h2 style="text-align: center" align="center">Figure 4</h2>
<p align="left">There should be different options to arrange desklets, one of these is to use a horizontal or vertical (shown in figure 4) layout when rearranging desklets. Again, you should be able to easily restore their positions.</p>
<p align="center"><img src="http://sellmic.com/blog/wp-content/uploads/2007/03/05-magnet-new.jpg" alt="05-magnet-new.jpg" /></p>
<h2 style="text-align: center" align="center">Figure 5</h2>
<p align="left">New desklets should be arranged normally by the container. In this case, the use case is that I want to move the existing ones to the side so I can make space for the Rome Reader desklet. I&#8217;m considering if another use case would be to always rearrange by default, meaning that while the magnet is activated all desklets are always attracted to it. Not sure about that last use case yet.</p>
<p style="text-align: center" align="center"><img src="http://sellmic.com/blog/wp-content/uploads/2007/03/06-magnet-drag-start.jpg" alt="06-magnet-drag-start.jpg" /></p>
<h2 style="text-align: center" align="left">Figure 6</h2>
<p>Another method for rearranging desklets would be to drag the magnet around the container area, and all intersecting desklets would attach themselves to the magnet. In this use case I want to move everything but the clock to the bottom right of the screen.</p>
<p align="center"> <img src="http://sellmic.com/blog/wp-content/uploads/2007/03/07-magnet-drag-stop.jpg" alt="07-magnet-drag-stop.jpg" /></p>
<h2 style="text-align: center" align="center">Figure 7</h2>
<p>This last operation can result in some very flexible window management that is not too hard to learn since the metaphor fits the gesture very well.</p>
<h1>Implementation</h1>
<p>Sadly this desklet can&#8217;t be implemented without modifying the actual container source code. Features that are not present in the <a href="http://desklets.googlecode.com/svn/trunk/spec/src/ab5k/desklet/">desklet &#8220;spec&#8221;</a> that would be needed are:</p>
<blockquote>
<ul>
<li><strong>A handle to the container interface that is passed to the desklet in the init() method.</strong></li>
<li><strong>A way to enumerate all currently opened desklets (should check for permission).</strong> The interface that is needed here is really the DeskletContainer because of the getSize() method, however the setContent() method might be dangerous in this context. Perhaps what you get are Desklet ids of some kind, and you can query the container for desklet attributes by their ID (get size, get name, get position, and some equivalent set methods).</li>
<li><strong>A container method (or desklet method) to move a desklet.</strong> Ideally, the container should already have methods that provide desklet animations for move operations, but initially it should be OK if this is not there. The animations can be implemented in the Magnetic Desklet.</li>
<li><strong>Maybe an interface to listen for container events.</strong> This with the enumerations, would also allow for other interesting desklets, maybe one that lists all opened ones in case a user is not happy with the container&#8217;s dock.</li>
</ul>
</blockquote>
<h1>Conclusion</h1>
<p>I hope this blog post helps illustrate the idea for this desklet, and I would love to hear any feedback. There might be some widget/gadgets that already do something like this in other systems, I&#8217;m not aware of any, but if you are please let me know.</p>
<p>Some of the API that is needed for this can be abused, however I believe some of this functionality will allow for other very interesting desklet usages. As long as the security infrastructure is well implemented (and not annoying, it currently pops up too many dialogs) these additions should be fine.</p>
]]></content:encoded>
			<wfw:commentRss>http://sellmic.com/blog/2007/03/21/magnetic-desklet-initial-thoughts/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Usability matters</title>
		<link>http://sellmic.com/blog/2007/02/20/usability-matters/</link>
		<comments>http://sellmic.com/blog/2007/02/20/usability-matters/#comments</comments>
		<pubDate>Wed, 21 Feb 2007 00:20:18 +0000</pubDate>
		<dc:creator>Augusto</dc:creator>
				<category><![CDATA[Software Development]]></category>
		<category><![CDATA[User Interface]]></category>

		<guid isPermaLink="false">http://sellmic.com/blog/2007/02/20/usability-matters/</guid>
		<description><![CDATA[

 At work, I spend a lot of time talking about usability, and often find that people think I&#8217;m just talking about the aesthetics of a particular application. Usability is much more than that. At its essence, it&#8217;s a way to ensure that a product is really solving the needs of its intended users, in [...]]]></description>
			<content:encoded><![CDATA[<p align="center"><a href="http://www.jensroesner.de/wgetgui/" title="wGetGUI"></a></p>
<p style="text-align: center" align="left"><a href="http://www.jensroesner.de/wgetgui/" title="wGetGUI"><img src="http://sellmic.com/blog/wp-content/uploads/2007/02/wget-ui.png" alt="wget-ui.png" /></a></p>
<p align="left"> At work, I spend a lot of time talking about <a href="http://en.wikipedia.org/wiki/Usability">usability</a>, and often find that people think I&#8217;m just talking about the aesthetics of a particular application. Usability is much more than that. At its essence, it&#8217;s a way to ensure that a product is really solving the needs of its intended users, in an efficient, intuitive and easy to learn way. But the word says it all, &#8220;is the product usable?&#8221;.</p>
<p><span id="more-42"></span><a href="http://www.gnu.org/software/wget/">wget </a>is a very useful GNU utility used to retrieve files in various protocols, you can use it to retrieve the main page of a site (ex: wget cnn.com), &#8220;copy&#8221; a whole site to a local directory (ex: wget -r pjprimer.com), or download files contained in links or ftp sites. Because it&#8217;s a <a href="http://en.wikipedia.org/wiki/Command_line">command line</a> tool, you often wouldn&#8217;t associate ease of use with it, since most users prefer graphical versions of these tools.  <a href="http://www.jensroesner.de/wgetgui/">wGetGUI</a> (see screenshot above) is a graphical version of wget. On its website it&#8217;s described as &#8220;<em>The easy to use Graphical User Interface (GUI) for the powerful webgrabber wGet</em>&#8220;. There is nothing easy or intuitive about this GUI, in fact, it&#8217;s a good example of what happens when you build a user interface without having usability in mind. I feel bad criticizing an open source product like this, but it shows something that happens a lot, programmers building graphical user interfaces that are not only ugly but just not usable.  The first thing that a user will notice when launching this program, is the large amount of buttons, check boxes and text fields available. The common problem here is the temptation to visually represent every option in a dialog. We could organize these into tabs, menus, or a preferences dialog, but that wouldn&#8217;t really solve the problem. The approach here is to go back to basics; &#8220;Who are the users?&#8221;, &#8220;What are they trying to do?&#8221;. For this application, you usually just want to download a link, or copy a whole website to a local folder. The type of user who needs this functionality is most likely technically savvy, but that doesn&#8217;t mean that we should throw all options into a window.  Note that wGetGUI, has  a &#8220;minimal&#8221; version of the interface, which you can intuitively access by hitting a button with a &#8220;-&#8221; label. The minimal version is not much of an improvement, with buttons labeled &#8220;Start wGetStart.bat&#8221;, which are hard to associate with any download function.  The irony is that the non-graphical version is more usable. Compare the first screenshot to this one:</p>
<p style="text-align: center" align="center"><img src="http://sellmic.com/blog/wp-content/uploads/2007/02/wget.png" alt="wget.png" /></p>
<p>The only &#8220;hard&#8221; part about this interface is the use of switches (options). In this case &#8220;-r&#8221; which stands for &#8220;recursive&#8221; and allows you to download the whole contents of the site (doesn&#8217;t work on all sites, btw). For the switches, like most command line tools, if you use the &#8220;-h&#8221; switch (or &#8220;&#8211;help&#8221;) you&#8217;ll get a list of all the options available with short descriptions. This type of interface is a bit alien to a lot of Windows users, but once a person becomes familiar with the basic mechanics of their command line shell, you can see how typing &#8220;wget -r pjprimer.com&#8221; is just much easier than going thru the pain of launching something like wGetGUI.  Now I don&#8217;t give the impression that I&#8217;m advocating ditching graphical interfaces, not at all. I just wanted to point out that many times people think that because a tool has a GUI associated with it, the graphical version should be easier to use by definition. That&#8217;s only true if the GUI is well designed, and it&#8217;s built with usability in mind.</p>
]]></content:encoded>
			<wfw:commentRss>http://sellmic.com/blog/2007/02/20/usability-matters/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>
