<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><rss xmlns:atom="http://www.w3.org/2005/Atom" xmlns:openSearch="http://a9.com/-/spec/opensearchrss/1.0/" xmlns:georss="http://www.georss.org/georss" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0"><channel><atom:id>tag:blogger.com,1999:blog-5779786362928830721</atom:id><lastBuildDate>Tue, 10 Nov 2009 14:20:00 +0000</lastBuildDate><title>Agile UI</title><description>Dedicated to pushing the bounds of the user experience by blending art and technology.</description><link>http://agileui.blogspot.com/</link><managingEditor>noreply@blogger.com (Rob McKeown)</managingEditor><generator>Blogger</generator><openSearch:totalResults>156</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" href="http://feeds.feedburner.com/AgileUI" type="application/rss+xml" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com" /><item><guid isPermaLink="false">tag:blogger.com,1999:blog-5779786362928830721.post-5869619981897215474</guid><pubDate>Tue, 10 Nov 2009 14:20:00 +0000</pubDate><atom:updated>2009-11-10T09:20:00.084-05:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">AIR</category><category domain="http://www.blogger.com/atom/ns#">Klokwork</category><category domain="http://www.blogger.com/atom/ns#">Flex</category><category domain="http://www.blogger.com/atom/ns#">Klok</category><title>Klok + Klokwork + iPhone = :-)</title><description>&lt;div style="text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;I lost count of the number of people who emailed me telling me how great it would be if there was some way to track time in Klok from their iPhone. Well we are getting ready to kick off the private beta of Klokwork, a hosted service for tracking time with Klok, which has the capability of syncing up time tracked from an iPhone (or any smartphone with a web browser) with time tracked from the Klok 2 desktop application. &lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;img src="http://klok.mcgraphix.com/klok/images/klok2/iphone.png" style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 488px; height: 348px;" border="0" alt="" /&gt;&lt;/div&gt;&lt;div&gt;Before the rumor mills start churning out false information, let me clarify what this is and isn't. &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;This is not:&lt;/div&gt;&lt;div&gt;&lt;ul&gt;&lt;li&gt;an AIR application running on an iPhone&lt;/li&gt;&lt;li&gt;a Flex/Flash application running in mobile Safari&lt;/li&gt;&lt;li&gt;connecting the iPhone directly to the local SQLite databased used by Klok&lt;/li&gt;&lt;li&gt;going to be sold through the App store&lt;/li&gt;&lt;/ul&gt;&lt;div&gt;This is:&lt;/div&gt;&lt;div&gt;&lt;ul&gt;&lt;li&gt;a &lt;a href="http://jquery.com/"&gt;JQuery &lt;/a&gt;+ &lt;a href="http://jqtouch.com/"&gt;JQTouch &lt;/a&gt;based AJAX application running in mobile Safari&lt;/li&gt;&lt;li&gt;able to be added to the home screen and accessed like any other application&lt;/li&gt;&lt;li&gt;connected to a hosted Java-based web application called &lt;a href="http://klokwork.mcgraphix.com/Klokwork/login.jsp"&gt;Klokwork&lt;/a&gt;&lt;/li&gt;&lt;li&gt;synchronized with the Klok desktop application using Klok's new pluggable connector architecture&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5779786362928830721-5869619981897215474?l=agileui.blogspot.com'/&gt;&lt;/div&gt;</description><link>http://feedproxy.google.com/~r/AgileUI/~3/U7SZhfQmwLE/klok-klokwork-iphone.html</link><author>noreply@blogger.com (Rob McKeown)</author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total><feedburner:origLink>http://agileui.blogspot.com/2009/11/klok-klokwork-iphone.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-5779786362928830721.post-7503179569348356225</guid><pubDate>Thu, 05 Nov 2009 19:35:00 +0000</pubDate><atom:updated>2009-11-05T14:44:44.689-05:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">User Experience</category><category domain="http://www.blogger.com/atom/ns#">agile</category><title>Agile and UX - I couldn't have said this better myself</title><description>Although... I think I have said almost exactly this a number of times. &lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;If you know me, you know that I usually don't completely agree with Jakob Nielsen. However, in &lt;a href="http://www.useit.com/alertbox/agile-user-experience.html"&gt;this post about Agile and UX&lt;/a&gt;, I really can't disagree with anything he says in the post. I haven't read &lt;a href="http://www.nngroup.com/reports/agile/"&gt;the entire report&lt;/a&gt; (I don't have an extra $148 at the moment) so it is possible that I will eventually find something that I can disagree with.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;One of the things that really stands out for me is this quote: &lt;/div&gt;&lt;div&gt;&lt;blockquote&gt;You can't just design individual features; they have to fit together into a coherent whole — a whole that must be designed as well. Bottom-up user interface design equals a confused total user experience (the Linux syndrome)&lt;/blockquote&gt;I am not really a Linux user so I can't speak to the User Experience of Linux in general, but the idea that "Bottom-up" design leads to poor results is just plain obvious. Not to mention in my experience I have seen it happen numerous times. In contrast I have see first hand how a small investment "up front" in design proves to really pay off.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5779786362928830721-7503179569348356225?l=agileui.blogspot.com'/&gt;&lt;/div&gt;</description><link>http://feedproxy.google.com/~r/AgileUI/~3/ObzZSq87r6I/agile-and-ux-i-couldnt-have-said-this.html</link><author>noreply@blogger.com (Rob McKeown)</author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total><feedburner:origLink>http://agileui.blogspot.com/2009/11/agile-and-ux-i-couldnt-have-said-this.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-5779786362928830721.post-8230357247194798900</guid><pubDate>Tue, 27 Oct 2009 12:37:00 +0000</pubDate><atom:updated>2009-10-27T08:37:00.251-04:00</atom:updated><title>More Klok 2 screenshots</title><description>Bear with me everyone. Trying to coordinate a beta program takes a bit more time than I imagined. Combine that with trying to wrap up the beta itself, and I am going slightly slower than expected. &lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Here are some screenshots of Klok 2 with some of the new features shown.&lt;div&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_1H_Nf-XjaLA/SuZ57R5i6nI/AAAAAAAAAE4/uCIDe2tdN3Y/s1600-h/klok2_0004_Layer-1.png"&gt;&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_1H_Nf-XjaLA/SuZ57R5i6nI/AAAAAAAAAE4/uCIDe2tdN3Y/s1600-h/klok2_0004_Layer-1.png" style="text-decoration: none;"&gt;&lt;img style="text-align: left;display: block; margin-top: 0px; margin-right: auto; margin-bottom: 10px; margin-left: auto; cursor: pointer; width: 400px; height: 285px; " src="http://4.bp.blogspot.com/_1H_Nf-XjaLA/SuZ57R5i6nI/AAAAAAAAAE4/uCIDe2tdN3Y/s400/klok2_0004_Layer-1.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5397135262774127218" /&gt;&lt;/a&gt;&lt;div style="text-align: center;"&gt;The main Klok 2 interface.&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_1H_Nf-XjaLA/SuZ57pNCMaI/AAAAAAAAAFA/o1MDg5Mr2SI/s1600-h/klok2_0003_Layer-2.png" style="text-decoration: none;"&gt;&lt;img style="text-align: left;display: block; margin-top: 0px; margin-right: auto; margin-bottom: 10px; margin-left: auto; cursor: pointer; width: 400px; height: 285px; " src="http://1.bp.blogspot.com/_1H_Nf-XjaLA/SuZ57pNCMaI/AAAAAAAAAFA/o1MDg5Mr2SI/s400/klok2_0003_Layer-2.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5397135269029884322" /&gt;&lt;/a&gt;&lt;div style="text-align: center;"&gt;The Klok 2 Synchronization panel (With Klokwork connector installed)&lt;/div&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_1H_Nf-XjaLA/SuZ570no75I/AAAAAAAAAFI/TC-9nhLLFbU/s1600-h/klok2_0002_Layer-3.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 285px;" src="http://4.bp.blogspot.com/_1H_Nf-XjaLA/SuZ570no75I/AAAAAAAAAFI/TC-9nhLLFbU/s400/klok2_0002_Layer-3.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5397135272094265234" /&gt;&lt;/a&gt;&lt;div style="text-align: center;"&gt;The new Week picker&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_1H_Nf-XjaLA/SuZ58CCjJnI/AAAAAAAAAFQ/ikS4hrB_j-0/s1600-h/klok2_0001_Layer-4.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 285px;" src="http://4.bp.blogspot.com/_1H_Nf-XjaLA/SuZ58CCjJnI/AAAAAAAAAFQ/ikS4hrB_j-0/s400/klok2_0001_Layer-4.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5397135275696793202" /&gt;&lt;/a&gt;&lt;div style="text-align: center;"&gt;The new Time Picker&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_1H_Nf-XjaLA/SuZ58e-AElI/AAAAAAAAAFY/c-wMLu7vaEo/s1600-h/klok2_0000_Layer-5.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 285px;" src="http://2.bp.blogspot.com/_1H_Nf-XjaLA/SuZ58e-AElI/AAAAAAAAAFY/c-wMLu7vaEo/s400/klok2_0000_Layer-5.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5397135283462345298" /&gt;&lt;/a&gt;&lt;div style="text-align: center;"&gt;The Project view (with new Add Sub Project button) and Description tab visible&lt;/div&gt;&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5779786362928830721-8230357247194798900?l=agileui.blogspot.com'/&gt;&lt;/div&gt;</description><link>http://feedproxy.google.com/~r/AgileUI/~3/1luLDGZJytY/more-klok-2-screenshots.html</link><author>noreply@blogger.com (Rob McKeown)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://4.bp.blogspot.com/_1H_Nf-XjaLA/SuZ57R5i6nI/AAAAAAAAAE4/uCIDe2tdN3Y/s72-c/klok2_0004_Layer-1.png" height="72" width="72" /><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">3</thr:total><feedburner:origLink>http://agileui.blogspot.com/2009/10/more-klok-2-screenshots.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-5779786362928830721.post-6652547736674631198</guid><pubDate>Mon, 28 Sep 2009 12:00:00 +0000</pubDate><atom:updated>2009-09-28T08:00:01.247-04:00</atom:updated><title>Sneak Peek at Klok 2.0</title><description>&lt;div style="text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;More information is coming soon. There has been an amazing response to my request for beta testers. I haven't had a chance to contact everyone yet. So if you haven't heard from me, please be patient. In the meantime, here is a screenshot.&lt;br /&gt;&lt;br /&gt;&lt;div&gt;&lt;img src="http://2.bp.blogspot.com/_1H_Nf-XjaLA/SsBBPHFTdaI/AAAAAAAAAEw/7ceq1NKVkc0/s400/klok2.gif" style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 284px;" border="0" alt="" id="BLOGGER_PHOTO_ID_5386376882190251426" /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5779786362928830721-6652547736674631198?l=agileui.blogspot.com'/&gt;&lt;/div&gt;</description><link>http://feedproxy.google.com/~r/AgileUI/~3/IE4zbqL22O4/sneak-peek-at-klok-20.html</link><author>noreply@blogger.com (Rob McKeown)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://2.bp.blogspot.com/_1H_Nf-XjaLA/SsBBPHFTdaI/AAAAAAAAAEw/7ceq1NKVkc0/s72-c/klok2.gif" height="72" width="72" /><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">6</thr:total><feedburner:origLink>http://agileui.blogspot.com/2009/09/sneak-peek-at-klok-20.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-5779786362928830721.post-917004681974236789</guid><pubDate>Mon, 28 Sep 2009 11:00:00 +0000</pubDate><atom:updated>2009-09-28T07:00:08.706-04:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Flex</category><category domain="http://www.blogger.com/atom/ns#">Klok</category><title>Flex Component - TimeField Update</title><description>&lt;p&gt;Thanks for the comments everyone. I have made a few changes to my TimePicker component based on some of the comments. The example now has the &lt;a href="http://klok.mcgraphix.com/klok/betaProgram.htm"&gt;Klok 2&lt;/a&gt; skin applied to it.&lt;/p&gt;&lt;p&gt;You can see the updated version here.&lt;/p&gt;&lt;p&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_1H_Nf-XjaLA/SrzGe7PupWI/AAAAAAAAAEo/j4D_igByS6o/s1600-h/picker.gif" style="text-decoration: none;"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 100px; height: 32px;" src="http://4.bp.blogspot.com/_1H_Nf-XjaLA/SrzGe7PupWI/AAAAAAAAAEo/j4D_igByS6o/s400/picker.gif" border="0" alt="" id="BLOGGER_PHOTO_ID_5385397489030309218" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;div style="text-align: center;"&gt;&lt;a href="http://klok.mcgraphix.com/blog/TimePickerTest.html"&gt;View the sample here&lt;/a&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5779786362928830721-917004681974236789?l=agileui.blogspot.com'/&gt;&lt;/div&gt;</description><link>http://feedproxy.google.com/~r/AgileUI/~3/dSqYIU059-4/flex-component-timefield-update.html</link><author>noreply@blogger.com (Rob McKeown)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://4.bp.blogspot.com/_1H_Nf-XjaLA/SrzGe7PupWI/AAAAAAAAAEo/j4D_igByS6o/s72-c/picker.gif" height="72" width="72" /><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">4</thr:total><feedburner:origLink>http://agileui.blogspot.com/2009/09/flex-component-timefield-update.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-5779786362928830721.post-8655294625599045588</guid><pubDate>Fri, 25 Sep 2009 13:16:00 +0000</pubDate><atom:updated>2009-09-28T09:17:20.679-04:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Flex</category><category domain="http://www.blogger.com/atom/ns#">Klok</category><title>Flex Component - TimeField - Feedback needed</title><description>&lt;p&gt;While working on Klok, I have tried several different mechanisms for entering the start time or end time of an entry. Having looked at a bunch of examples such as the &lt;a href="http://developer.yahoo.com/flash/astra-flex/timestepper/"&gt;Yahoo Astra one&lt;/a&gt;, &lt;a href="http://www.drisgill.com/index.cfm/2005/8/4/Flex-TimePicker-Component"&gt;this one&lt;/a&gt;, &lt;a href="http://joelhooks.com/2008/10/11/flex-date-and-time-datetime-picker-control/"&gt;this one&lt;/a&gt; and &lt;a href="http://pynej.blogspot.com/2009/02/flex-date-and-time-stepper-components.html"&gt;this one&lt;/a&gt; I started to see a pattern. Most of the examples are "stepper" based controls. What this means is that to get from one time to a different time it involves a varying number of clicks depending on the times. For example, if the control's current time was 3:35 AM and you need to change it to 12:19 PM, it requires a whole bunch of steps to get there.&lt;/p&gt;&lt;p&gt;What I really wanted was a way to pick the time in the fewest number of clicks and allow for just typing in the time directly if you happen to prefer that. The result is a true time "picker" control that is loosely based on the way a DateField works. There is still some work to be done on the skin but I think I am on the right path.&lt;/p&gt;&lt;p&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_1H_Nf-XjaLA/SrzGe7PupWI/AAAAAAAAAEo/j4D_igByS6o/s1600-h/picker.gif" style="text-decoration: none;"&gt;&lt;br /&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 100px; height: 32px;" src="http://4.bp.blogspot.com/_1H_Nf-XjaLA/SrzGe7PupWI/AAAAAAAAAEo/j4D_igByS6o/s400/picker.gif" border="0" alt="" id="BLOGGER_PHOTO_ID_5385397489030309218" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;div style="text-align: center;"&gt;&lt;a href="http://klok.mcgraphix.com/blog/TimePickerTest.html"&gt;View the sample here&lt;/a&gt;&lt;/div&gt;&lt;p&gt;&lt;/p&gt;&lt;br /&gt;To use, just click the icon and pick the time. Or, just enter the time directly. The following formats are accepted:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;1:49 PM&lt;/li&gt;&lt;li&gt;1P (Shortcut for entering 1:00 PM)&lt;/li&gt;&lt;li&gt;13:49&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;This control is my proposed solution to be used in &lt;a href="http://klok.mcgraphix.com/klok/betaProgram.htm"&gt;Klok 2&lt;/a&gt;.&lt;/p&gt;&lt;p&gt;Please give it a try and see if it works for you. (Please try to break it if possible.) Whether you like it or not, please leave some comments so I can improve upon it.&lt;/p&gt;&lt;p&gt;UPDATE - I made some changes based on the comments and updated the demo. Which now has the Klok 2 skin applied to it.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5779786362928830721-8655294625599045588?l=agileui.blogspot.com'/&gt;&lt;/div&gt;</description><link>http://feedproxy.google.com/~r/AgileUI/~3/qiMd2DW7e1U/flex-component-timefield-feedback.html</link><author>noreply@blogger.com (Rob McKeown)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://4.bp.blogspot.com/_1H_Nf-XjaLA/SrzGe7PupWI/AAAAAAAAAEo/j4D_igByS6o/s72-c/picker.gif" height="72" width="72" /><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">12</thr:total><feedburner:origLink>http://agileui.blogspot.com/2009/09/flex-component-timefield-feedback.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-5779786362928830721.post-5275490019853481951</guid><pubDate>Tue, 22 Sep 2009 12:25:00 +0000</pubDate><atom:updated>2009-09-22T08:34:02.690-04:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Klok</category><title>Introducing KlokWork and Klok 2.0 Beta Programs</title><description>I know it has been quite some time since I put out an update for Klok. In that time, I have been working on it... I promise. We have made the decision to go right to version 2.0. This is mainly because of the required changes to the way data was being stored in 1.x. Version 2 stores data in two ways. The standalone version stores its data in a local SQLite database. The version with KlokWork embedded, connects to an external system to store its data. This will be able to connect to external systems such as FreshBooks and Harvest as well as home grown systems that can expose an AMF based API.&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;So we are getting ready to have a select few users and small teams try out some of the new functionality. For more information on this program visit the &lt;a href="http://klok.mcgraphix.com/klok/betaProgram.htm"&gt;Klok Beta Program page&lt;/a&gt;.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5779786362928830721-5275490019853481951?l=agileui.blogspot.com'/&gt;&lt;/div&gt;</description><link>http://feedproxy.google.com/~r/AgileUI/~3/PsREgfRPAZU/introducing-klokwork-and-klok-20-beta.html</link><author>noreply@blogger.com (Rob McKeown)</author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">1</thr:total><feedburner:origLink>http://agileui.blogspot.com/2009/09/introducing-klokwork-and-klok-20-beta.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-5779786362928830721.post-7996597810729517709</guid><pubDate>Wed, 16 Sep 2009 20:42:00 +0000</pubDate><atom:updated>2009-09-16T16:56:26.533-04:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Flash Builder</category><category domain="http://www.blogger.com/atom/ns#">Flex</category><title>FlashBuilder 4 silently fails while launching</title><description>Imagine this... You double click the icon to launch FlashBuilder and see the splash screen show up. Then you glance away from the screen and when you look back, FlashBuilder isn't running. No error Alert. No phantom process running in task manager... just nothing at all.&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;This happened a few times because I started to think I was imagining the part where I clicked the icon and saw the splash screen. So I would try to launch it again. It turns out that I am not going mad.  FlashBuilder was really failing silently and just failing to launch. I tried deleting my workspace and launching again, but every time I did that it would recreate the workspace directory automatically and then fail to start.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Searching Google for "FlashBuilder won't start" yielded only one promising result but &gt;the link was to a Jira defect that I can't see. I was about to call the professionals at &lt;a href="http://www.itfixed.com/"&gt;ITFixed &lt;/a&gt;to have someone perform CPR on my machine when I figured I would try one last thing. Since FlashBuilder is basically Eclipse, I tried the old -clean command and like magic it came back to life. &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Just open a command prompt to the directory where FlashBuilder is installed (On Vista: C:\Program Files (x86)\Adobe\Flash Builder Beta2) and execute the magic command:&lt;/div&gt;&lt;div&gt;&lt;blockquote&gt;Gumbo.exe -clean&lt;/blockquote&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;I'm not quite sure what caused the problem in the first place. I had gotten a few out of memory errors (even though my machine has 4GB or RAM) but I can't say for sure that the problems are related.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5779786362928830721-7996597810729517709?l=agileui.blogspot.com'/&gt;&lt;/div&gt;</description><link>http://feedproxy.google.com/~r/AgileUI/~3/waf3sQQ3OH0/flashbuilder-4-silently-fails-while.html</link><author>noreply@blogger.com (Rob McKeown)</author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">4</thr:total><feedburner:origLink>http://agileui.blogspot.com/2009/09/flashbuilder-4-silently-fails-while.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-5779786362928830721.post-8818384440365040737</guid><pubDate>Fri, 11 Sep 2009 15:17:00 +0000</pubDate><atom:updated>2009-09-11T11:24:16.227-04:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Adobe</category><category domain="http://www.blogger.com/atom/ns#">LiveCycle</category><category domain="http://www.blogger.com/atom/ns#">Flex</category><title>LiveCycle Data Services 3 - Pricing</title><description>I was poking around the Adobe Labs site and came across the &lt;a href="http://labs.adobe.com/technologies/livecycle_dataservices3/gettingstarted.html"&gt;Model Driven Development Getting Started Guide&lt;/a&gt;. This looks really, really cool. However, I couldn't find any information regarding which version of LiveCycle DS it will be part of. Given the hype about the new capabilities of Flash Building and LiveCycle, I'm sure there are many developers getting very excited about using it in real world projects. It definitely seems like it can save a lot of time.&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;I am anxious to download it and try it out, but before I put the time and effort into it, I would like to know if it is really feasible for the types of projects I work on and the budgets I need to work within. If there is going to be a $5000 per CPU type price tag on it, I will have a hard time justifying it to my clients.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;To put my conspiracy theorist hat on for a moment, I wonder if Adobe is withholding the price until we all get "hooked." Once hooked, we may never want to go back to writing server side code which would allow them to charge us an arm and a leg.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5779786362928830721-8818384440365040737?l=agileui.blogspot.com'/&gt;&lt;/div&gt;</description><link>http://feedproxy.google.com/~r/AgileUI/~3/z7TAfuhMIwU/livecycle-data-services-3-pricing.html</link><author>noreply@blogger.com (Rob McKeown)</author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">6</thr:total><feedburner:origLink>http://agileui.blogspot.com/2009/09/livecycle-data-services-3-pricing.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-5779786362928830721.post-102887799901303688</guid><pubDate>Wed, 26 Aug 2009 10:00:00 +0000</pubDate><atom:updated>2009-08-26T06:00:09.080-04:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">sIFR</category><category domain="http://www.blogger.com/atom/ns#">InContext</category><category domain="http://www.blogger.com/atom/ns#">Adobe</category><title>Adobe InContext Editing problem with SIFR</title><description>I recently had an opportunity to try out InContext Editing on a client project. Of course, 5 minutes after hooking it up I ran into a problem. If you happen to be using &lt;a href="http://wiki.novemberborn.net/sifr3/"&gt;sIFR &lt;/a&gt;to add nice typography to your site, you will notice two problems.&lt;div&gt;&lt;ol&gt;&lt;li&gt;First, the sIFR Flash content appears to be in front of the InContext Editing interface;&lt;/li&gt;&lt;li&gt;Second, the sIFR replaced text is not editable. If you make an editable region around sIFR replaced text, you get an error when you edit the page.&lt;/li&gt;&lt;/ol&gt;&lt;/div&gt;&lt;div&gt;Luckily, there is a simple solution to the problem. If you open up the sifr.js file you will immediately notice that the Javascript is compressed in such way that it is pretty unfriendly. However, since luck is on our side, the only line you need to edit is human-readable. Scroll to the bottom of the file and you will see a line that looks like this:&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;blockquote&gt;if(typeof sIFR == "function" &amp;amp;&amp;amp; !sIFR.UA.bIsIEMac &amp;amp;&amp;amp; (!sIFR.UA.bIsWebKit || sIFR.UA.nWebKitVersion &gt;= 100)) {&lt;/blockquote&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;That IF statement checks to make sure sIFR is ready to be setup. In our case what we want to do is make sure that that condition checks to see if you are in InContext Editing. We can tell by looking at the top.document.location to see if the page that is currently in the location bar is the ice/ide.html page. Changing the condition above to:&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;blockquote&gt;if(typeof sIFR == "function" &amp;amp;&amp;amp; !sIFR.UA.bIsIEMac &amp;amp;&amp;amp; (!sIFR.UA.bIsWebKit || sIFR.UA.nWebKitVersion &gt;= 100) &amp;amp;&amp;amp; top.document.location.toString().indexOf("ice/ide.html") &lt;= 0){&lt;/blockquote&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Doing so will cause sIFR to be enabled unless you are in the InContext Editor...problem solved.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5779786362928830721-102887799901303688?l=agileui.blogspot.com'/&gt;&lt;/div&gt;</description><link>http://feedproxy.google.com/~r/AgileUI/~3/TRWBjqt9Bts/adobe-incontext-editing-problem-with.html</link><author>noreply@blogger.com (Rob McKeown)</author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">2</thr:total><feedburner:origLink>http://agileui.blogspot.com/2009/08/adobe-incontext-editing-problem-with.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-5779786362928830721.post-8390001778822857365</guid><pubDate>Mon, 24 Aug 2009 21:00:00 +0000</pubDate><atom:updated>2009-08-24T17:04:52.272-04:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Fonts</category><category domain="http://www.blogger.com/atom/ns#">Adobe</category><category domain="http://www.blogger.com/atom/ns#">Vista</category><title>Vista 64 bit and Type 1 fonts</title><description>I came across a weird problem today where after installing a Type 1 font, it was still not available in Illustrator or Photoshop but was available in MS Word. It turns out that you need to install it in the normal fonts folder and put it in C:\Program Files (x86)\Common Files\Adobe\Fonts as well. &lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;I don't know if this violates any font licenses so you should verify that you are allowed to have two copies installed this way.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5779786362928830721-8390001778822857365?l=agileui.blogspot.com'/&gt;&lt;/div&gt;</description><link>http://feedproxy.google.com/~r/AgileUI/~3/dcw6P-qrRng/vista-64-bit-and-type-1-fonts.html</link><author>noreply@blogger.com (Rob McKeown)</author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">3</thr:total><feedburner:origLink>http://agileui.blogspot.com/2009/08/vista-64-bit-and-type-1-fonts.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-5779786362928830721.post-3206609650309262662</guid><pubDate>Thu, 02 Jul 2009 18:55:00 +0000</pubDate><atom:updated>2009-07-02T15:29:21.552-04:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">AIR</category><category domain="http://www.blogger.com/atom/ns#">Flex</category><title>I hate error messages like this</title><description>&lt;blockquote&gt;TypeError: Error #2007: Parameter blendMode must be non-null.&lt;/blockquote&gt;&lt;div&gt;&lt;br /&gt;&lt;div&gt;I was working away on an AIR application and all of a sudden I started seeing this error message. It would show up when I had focus on something and clicked a button that removed the component's parent from the stage. As a result of the error, my app would stop working in all kinds of weird ways. For example, TabNavigators stopped working, but List controls worked fine. Some changes to my display list would work ok while others would result in part of the screen going blank.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;I will spare the details of how I figured out what the problem was, but the root cause seemed to be that I was compiling my application with the 3.2 Flex SDK but I was compiling one of the Library projects that I was depending on with the 3.3 SDK. &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Setting them all to the same version fixed the problem.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;I didn't see any other posts through a Google search of that error, so I figured I would post it here.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5779786362928830721-3206609650309262662?l=agileui.blogspot.com'/&gt;&lt;/div&gt;</description><link>http://feedproxy.google.com/~r/AgileUI/~3/hPLZkl7nfTo/i-hate-error-messages-like-this.html</link><author>noreply@blogger.com (Rob McKeown)</author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">11</thr:total><feedburner:origLink>http://agileui.blogspot.com/2009/07/i-hate-error-messages-like-this.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-5779786362928830721.post-8127814548618145810</guid><pubDate>Fri, 12 Jun 2009 18:04:00 +0000</pubDate><atom:updated>2009-06-12T14:18:30.072-04:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">AIR</category><category domain="http://www.blogger.com/atom/ns#">FlexUnit</category><category domain="http://www.blogger.com/atom/ns#">Flex</category><title>It IS possible to do this in an AIR Application...!</title><description>A couple hours ago, &lt;a href="http://agileui.blogspot.com/2009/06/is-this-possible-in-air-application.html"&gt;I posted a question&lt;/a&gt; regarding loading classes from a local SWF file. I poked around a bit more thinking that the problem had something to do with the ApplicationDomain. I took another look at the &lt;a href="http://livedocs.adobe.com/flex/3/langref/flash/system/ApplicationDomain.html"&gt;LiveDocs for ApplicationDomain&lt;/a&gt; and tried out the example on that screen without any luck. I even commented on the LiveDoc page. I was about to go file a bug but figured I would do one more Google search on the subject. I found this a &lt;a href="http://www.actionscript.org/forums/showthread.php3?p=759206"&gt;post at Actionscript.org&lt;/a&gt; that seemed to describe the same problem. One on the replies mentioned that he was able to work around the problem by putting a half second delay betweeen the loading of the swf and any attempt to access the classes. So, I took the ClassLoader example from the ApplicationDomain LiveDoc example and added a 500ms delay to the complete handler:&lt;br /&gt;&lt;br /&gt;           &lt;blockquote&gt;&lt;pre&gt;private function completeHandler(e:Event):void {&lt;br /&gt;      setTimeout(function(...params) {&lt;br /&gt;         params[0].dispatchEvent(new Event(ClassLoader.CLASS_LOADED));&lt;br /&gt;       }, 1000, this);&lt;br /&gt;     }&lt;/pre&gt;&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;After that small change I was able to load the classes from the external SWF. However, this doesn't solve the FlexUnit problem because internally, FlexUnit loads the test classes using getDefinitionByName(). Even if you pass the test cases in as Classes, it gets the qualified name and then calls getDefinitionByName() resulting in the error.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5779786362928830721-8127814548618145810?l=agileui.blogspot.com'/&gt;&lt;/div&gt;</description><link>http://feedproxy.google.com/~r/AgileUI/~3/r26BGQoUyrM/it-is-possible-to-do-this-in-air.html</link><author>noreply@blogger.com (Rob McKeown)</author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">6</thr:total><feedburner:origLink>http://agileui.blogspot.com/2009/06/it-is-possible-to-do-this-in-air.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-5779786362928830721.post-292094817437441242</guid><pubDate>Fri, 12 Jun 2009 14:54:00 +0000</pubDate><atom:updated>2009-06-12T12:17:19.209-04:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">AIR</category><category domain="http://www.blogger.com/atom/ns#">FlexUnit</category><category domain="http://www.blogger.com/atom/ns#">Flex</category><title>Is this possible in an AIR application?</title><description>I have what appears to be a common question regarding a requirement that has come up two of my current AIR application projects. Here is the basic requirement.&lt;div&gt;&lt;blockquote&gt;The ability for an installed AIR application, to access and load Classes from a separate SWF that is located on the file system&lt;/blockquote&gt;I consider this to be a "plugin" architecture. Let me give you a concrete example. I am working on various AIR projects at any one time. For each I write FlexUnit tests. Because my tests are used to test my AIR applications, they need access to the AIR specific libraries. Rather than compile a unique FlexUnitRunner for each set of tests, I would like to create a single FlexUnitRunner application that allows me to load and run the tests from any of my projects. &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;I want to be able to have my test projects get built automatically when I change a class in FlexBuilder and then be able to hit a "refresh" button on my FlexUnitRunner application to rerun the tests with the changes. &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;My initial thought was that I could package my unit tests in a SWC and then have my runner unzip the SWC, pull out the library.swf, load it using RSLItem, SWFLoader or Loader. Then get amd instantiate my TestSuite from that set of tests and run it.  This seemed to work in AIR 1.1 but doesn't work in AIR 1.5. The result in 1.5 is always "the Variable PreSaveProcessorTest is not defined"&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;My second thought was to compile a Module and load that at run time. I can load the module, but I can't figure out how to use AIR specific classes File, FileStream, etc. in the module. There is no option to "include Adobe AIR Libraries" like there is when compiling an SWC.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;If I put my tests in a SWC project and reference them from my Module, the module can't use any of my classes that reference File for example. This isn't necessarily needed for my FlexUnit problem.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;But if I reference the SWC project from my Module and try to get an instance of my ModuleTestSuite class, I can instantiate it. However I then get a FlexUnit error when I try to FlexUnitCore.run(...) my suite that says: Property metaData not found on ModuleTestSuite and there is no default value.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;I have read many articles and posts regarding this, but none do exactly what I want:&lt;/div&gt;&lt;div&gt;&lt;a href="http://weblogs.macromedia.com/emalasky/archives/2008/04/remote_plugins.html"&gt;http://weblogs.macromedia.com/emalasky/archives/2008/04/remote_plugins.html&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;a href="http://stackoverflow.com/questions/344705/building-a-plugin-architecture-with-adobe-air"&gt;http://stackoverflow.com/questions/344705/building-a-plugin-architecture-with-adobe-air&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;a href="http://livedocs.adobe.com/flex/3/loading_applications.pdf"&gt;http://livedocs.adobe.com/flex/3/loading_applications.pdf&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Has anyone actually got a working example of how this kind of thing can be done in AIR 1.5?&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;This RSLItem method is exactly what I was doing in &lt;a href="http://klok.mcgraphix.com/"&gt;Klok&lt;/a&gt;, to allow installation of my 3rd party app connectors at runtime. However, that no longer seems to work.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;If someone from Adobe can show a &lt;b&gt;working example &lt;/b&gt;that would be really helpful. I imagine there are quite a number of people wondering how to create a "plugin" architecture.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;UPDATE: I resolved the issue with the FlexUnit error but I am now back to "the Variable PreSaveProcessorTest is not defined". I think the issue is that FlexUnit is doing a getDefinitionByName() which seems to be the problem.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5779786362928830721-292094817437441242?l=agileui.blogspot.com'/&gt;&lt;/div&gt;</description><link>http://feedproxy.google.com/~r/AgileUI/~3/74rDbV7KJqg/is-this-possible-in-air-application.html</link><author>noreply@blogger.com (Rob McKeown)</author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">3</thr:total><feedburner:origLink>http://agileui.blogspot.com/2009/06/is-this-possible-in-air-application.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-5779786362928830721.post-2576414649112436853</guid><pubDate>Tue, 12 May 2009 20:15:00 +0000</pubDate><atom:updated>2009-05-12T16:22:24.441-04:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">RIA</category><category domain="http://www.blogger.com/atom/ns#">Interaction Design</category><category domain="http://www.blogger.com/atom/ns#">UI</category><title>Designing RIAs...the Right Way</title><description>Anyone who knows me will tell you that I frequently preach that the only way to successfully design an application that is easy to use and meets user goals is to take a step back and think about it as a whole. I often get pushback with the usual "That sounds like waterfall to me" argument. Like I have said before, it doesn't matter what it is called to me as long as it works.&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;So the folks at Forrester set out to investigate how to create successful RIAs. The report focuses mostly on &lt;a href="http://www.cynergysystems.com"&gt;Cynergy&lt;/a&gt; who is one of the big guys in the field of RIA development (so they know what they are doing). I have to say that I am not surprised by the findings or by the way Cynergy designs and builds applications. To me it seems like common sense. But I am glad that this "official" report calls some attention to it.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;You can &lt;a href="http://www.forrester.com/Research/Document/Excerpt/0,7211,54243,00.html"&gt;buy the report&lt;/a&gt; from Forrester or &lt;a href="http://www.cynergysystems.com/blogs/page/davewolf?entry=how_do_you_do_ria"&gt;get a free PDF of it from Cynergy.&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5779786362928830721-2576414649112436853?l=agileui.blogspot.com'/&gt;&lt;/div&gt;</description><link>http://feedproxy.google.com/~r/AgileUI/~3/mxmO4SkarCk/designing-riasthe-right-way.html</link><author>noreply@blogger.com (Rob McKeown)</author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">3</thr:total><feedburner:origLink>http://agileui.blogspot.com/2009/05/designing-riasthe-right-way.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-5779786362928830721.post-1318806400549496713</guid><pubDate>Mon, 20 Apr 2009 19:36:00 +0000</pubDate><atom:updated>2009-04-20T15:38:31.376-04:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Sun</category><category domain="http://www.blogger.com/atom/ns#">Oracle</category><title>Oracle Buys Sun - The future or MySQL</title><description>With the news that &lt;a href="http://www.sun.com/third-party/global/oracle/index.jsp"&gt;Oracle is to buy Sun&lt;/a&gt;, I can't help but wonder what will happen to &lt;a href="http://www.sun.com/software/products/mysql/index.jsp"&gt;MySQL&lt;/a&gt;. Maybe it won't mean anything. Any thoughts?&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5779786362928830721-1318806400549496713?l=agileui.blogspot.com'/&gt;&lt;/div&gt;</description><link>http://feedproxy.google.com/~r/AgileUI/~3/0zE2HPV6iAA/oracle-buys-sun-future-or-mysql.html</link><author>noreply@blogger.com (Rob McKeown)</author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">5</thr:total><feedburner:origLink>http://agileui.blogspot.com/2009/04/oracle-buys-sun-future-or-mysql.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-5779786362928830721.post-5243744624964275431</guid><pubDate>Fri, 17 Apr 2009 15:07:00 +0000</pubDate><atom:updated>2009-04-17T11:13:33.224-04:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Flex</category><category domain="http://www.blogger.com/atom/ns#">BlazeDS</category><title>Using Blaze DS in Commercial Applications</title><description>A couple of days ago (Apr. 15, 2009) a post popped up on my blog reader titled "Using BlazeDS in Commercial products" which immediately caught my interest. I just assumed that you could use it in commercial products but I have never actually looked into the license. Basically the post indicated that you can't use BlazeDS in commercial products without buying an OEM license from Adobe but you can use it for internal applications. Of course I immediately commented and said that given that, why wouldn't I just always use &lt;a href="http://www.graniteds.org"&gt;GraniteDS&lt;/a&gt;. I went back a few hours later and found that the blog post was not even there anymore, let alone my comment.&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;So my question has yet to be answered... If I can't use the opensource BlazeDS for anything but internal applications, why would I spend any effort in every getting familiar with it? &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;If you want to read the original post, you can view the &lt;a href="http://74.125.47.132/search?q=cache:Migx0Y6pR0gJ:anilchannappa.org/2009/04/15/using-blazeds-in-commerical-products/+Blaze+DS+in+commercial+applications&amp;amp;cd=14&amp;amp;hl=en&amp;amp;ct=clnk&amp;amp;gl=us"&gt;cached version here&lt;/a&gt;, at least for now.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5779786362928830721-5243744624964275431?l=agileui.blogspot.com'/&gt;&lt;/div&gt;</description><link>http://feedproxy.google.com/~r/AgileUI/~3/SqJ8aGziIsk/using-blaze-ds-in-commercial.html</link><author>noreply@blogger.com (Rob McKeown)</author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">2</thr:total><feedburner:origLink>http://agileui.blogspot.com/2009/04/using-blaze-ds-in-commercial.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-5779786362928830721.post-7731545081521124570</guid><pubDate>Fri, 20 Mar 2009 19:02:00 +0000</pubDate><atom:updated>2009-03-20T15:06:22.440-04:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Flex</category><category domain="http://www.blogger.com/atom/ns#">Flash</category><title>Arabic Text as a Flex Button label?</title><description>The &lt;a href="http://labs.adobe.com/technologies/textlayout/"&gt;Text Layout Framework&lt;/a&gt; that Adobe has made available on the &lt;a href="http://labs.adobe.com/technologies/textlayout/"&gt;labs site&lt;/a&gt; is a very cool display of the capabilities of Flash Player. However, what seems to be suspiciously missing from all the demos is an example of how to use Arabic text on a button. Just putting arabic in the MXML as the button label obviously doesn't work (otherwise... I wouldn't be posting this). What happens is the letters look like they are in reverse order. I can't read Arabic, but I don't think that would make much sense. Especially since none of the letters get connected with the appropriate ligatures.&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Looking at the source code for the examples doesn't shed any light on the problem. If you have seen this done please comment with an example.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5779786362928830721-7731545081521124570?l=agileui.blogspot.com'/&gt;&lt;/div&gt;</description><link>http://feedproxy.google.com/~r/AgileUI/~3/NiH0UzJLvxw/arabic-text-as-flex-button-label.html</link><author>noreply@blogger.com (Rob McKeown)</author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">4</thr:total><feedburner:origLink>http://agileui.blogspot.com/2009/03/arabic-text-as-flex-button-label.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-5779786362928830721.post-6158525612108430727</guid><pubDate>Fri, 20 Mar 2009 14:59:00 +0000</pubDate><atom:updated>2009-03-20T11:04:13.869-04:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">AIR</category><category domain="http://www.blogger.com/atom/ns#">Linux</category><category domain="http://www.blogger.com/atom/ns#">Flex</category><category domain="http://www.blogger.com/atom/ns#">Klok</category><title>Klok - Linux Support - finally</title><description>If you have tried &lt;a href="http://klok.mcgraphix.com"&gt;Klok&lt;/a&gt; on Linux, you may have noticed that most fo the drag and drop functions didn't work. It turns out that, there were some issues in the AIR runtime that prevented this from working correctly. I have been told the the AIR 1.5.1  runtime for Linux fixes this issue. I have tested it out with Ubuntu and I have had one report of SUSE working correctly too. If you are using Linux upgrade you AIR runtime and let me know if you still see issues by &lt;a href="http://bugs.mcgraphix.com/"&gt;submitting a bug report&lt;/a&gt;. Please be sure to specify your version of Linux.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5779786362928830721-6158525612108430727?l=agileui.blogspot.com'/&gt;&lt;/div&gt;</description><link>http://feedproxy.google.com/~r/AgileUI/~3/FaIs-_cWKAc/klok-linux-support-finally.html</link><author>noreply@blogger.com (Rob McKeown)</author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">3</thr:total><feedburner:origLink>http://agileui.blogspot.com/2009/03/klok-linux-support-finally.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-5779786362928830721.post-8730312581260079962</guid><pubDate>Wed, 04 Mar 2009 14:36:00 +0000</pubDate><atom:updated>2009-03-04T09:36:00.450-05:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">IPhone</category><category domain="http://www.blogger.com/atom/ns#">WorstUIEver</category><title>Worst UI Ever - Another Error Message</title><description>&lt;div&gt;Its been a while since I last posted a &lt;a href="http://agileui.blogspot.com/search/label/WorstUIEver"&gt;Worst UI Ever &lt;/a&gt;entry. It seemed like most of my posts were about error messages and here is another one for the list.&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;&lt;/div&gt;&lt;img id="BLOGGER_PHOTO_ID_5309158288194781106" style="DISPLAY: block; MARGIN: 0px auto 10px; WIDTH: 400px; CURSOR: hand; HEIGHT: 83px; TEXT-ALIGN: center" alt="" src="http://4.bp.blogspot.com/_1H_Nf-XjaLA/Sa3rVYArv7I/AAAAAAAAAEg/b7f2I3w4LLU/s400/WorstUI-ErrorMessage.gif" border="0" /&gt; &lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;This was an error message I received when activation a gift card. The form itself could not be much simpler, but the error message left a lot to be desired. What lead me to the error message was another seemingly simple set of instructions. In order to fully understand the situation, here is the quick back story. Stay with me, I'll be quick. As you have read on my blog &lt;a href="http://agileui.blogspot.com/2008/12/apple-iphone-vs-blackberry-storm.html"&gt;I recently bought an IPhone&lt;/a&gt;. When I did so, my wife and I both switched to AT&amp;amp;T. When we got our phones we got gift cards in the mail as rebates for some accessories we each purchased. So we each got a gift card in the mail today. &lt;/div&gt;&lt;br /&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;The instructions said that you needed to go to this website and enter the card number and you will need to use your phone number ending in 8... yes that's right, the phone number ending in 8. Now, I'm no statistician but it seems fairly likely that you may have two phone numbers in a family that both end in the same digit... as was our case.&lt;/div&gt;&lt;br /&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;Given the situation, one of my phone numbers was correct, the other was wrong so I was presented with this form with a 1 in 2 chance of "failing". My first flip of the coin was incorrect, resulting in the error message. The first problem with this process is the failure of the system to understand users beyond the data associated with the card. It is true that the card in question was associated with a specific phone number ending in 8, but there is more to my and my account with AT&amp;amp;T than just that. If that level of consideration could not be built into the system, then at least the system that prints the letter that is mailed with the card should give you more than the last digit of the phone number. Using the last two digits would dramatically reduce the liklihood of getting this error.&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;The second, more obivious problem was that the error message was obviously written by a programmer. The fact that there is nothing on the screen labeled as a PassCode is more than a little confusing. Here is a rule for anyone involved with delivering a software product:&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;blockquote&gt;&lt;p&gt;"Don't let programmers write text that is presented to the user."&lt;/p&gt;&lt;/blockquote&gt;&lt;br /&gt;&lt;p&gt;Chances are, they don't want that responsibility anyway.&lt;/p&gt;&lt;p&gt; &lt;/p&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5779786362928830721-8730312581260079962?l=agileui.blogspot.com'/&gt;&lt;/div&gt;</description><link>http://feedproxy.google.com/~r/AgileUI/~3/UvmNhH6RIcg/worst-ui-ever-another-error-message.html</link><author>noreply@blogger.com (Rob McKeown)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://4.bp.blogspot.com/_1H_Nf-XjaLA/Sa3rVYArv7I/AAAAAAAAAEg/b7f2I3w4LLU/s72-c/WorstUI-ErrorMessage.gif" height="72" width="72" /><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">3</thr:total><feedburner:origLink>http://agileui.blogspot.com/2009/03/worst-ui-ever-another-error-message.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-5779786362928830721.post-1852393324775775947</guid><pubDate>Tue, 03 Mar 2009 14:51:00 +0000</pubDate><atom:updated>2009-03-03T09:51:00.982-05:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Skinning</category><category domain="http://www.blogger.com/atom/ns#">Free</category><category domain="http://www.blogger.com/atom/ns#">Flex</category><title>Programmatic Yahoo Skin Library update 2</title><description>I have just posted another update to the Yahoo Programmatic Skins. This update includes the Radio Button, TabBar/TabNavigator, and Accordion skins.&lt;br /&gt;&lt;br /&gt;You can see &lt;a href="http://www.mcgraphix.com/blog/YahooSkin/DemoApp.html"&gt;the demo and download the source here&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5779786362928830721-1852393324775775947?l=agileui.blogspot.com'/&gt;&lt;/div&gt;</description><link>http://feedproxy.google.com/~r/AgileUI/~3/hSVGhxjcAm8/programmatic-yahoo-skin-library-update.html</link><author>noreply@blogger.com (Rob McKeown)</author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">2</thr:total><feedburner:origLink>http://agileui.blogspot.com/2009/03/programmatic-yahoo-skin-library-update.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-5779786362928830721.post-3442485668004605197</guid><pubDate>Fri, 20 Feb 2009 14:05:00 +0000</pubDate><atom:updated>2009-03-03T22:09:26.804-05:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Free</category><category domain="http://www.blogger.com/atom/ns#">Flex</category><category domain="http://www.blogger.com/atom/ns#">component</category><title>Free Flex Component - Gradient Editor</title><description>I can't take credit for &lt;a href="http://mariosh.com/components/gradient-editor/"&gt;this component&lt;/a&gt;, but I came across it and thought is was pretty useful. It was created by Mariusz Tkaczyk (&lt;a href="http://mariosh.com/"&gt;http://mariosh.com/&lt;/a&gt;)The original post is a few months old and I don't remember ever reading about it, so I figured that many of us may have never seen it. The screenshot below is from &lt;a href="http://mariosh.com/components/gradient-editor/"&gt;his blog, where you can download the source&lt;/a&gt;. &lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;img style="DISPLAY: block; MARGIN: 0px auto 10px; WIDTH: 260px; CURSOR: hand; HEIGHT: 290px; TEXT-ALIGN: center" alt="" src="http://mariosh.com/projects/flex/gradient-editor/snapshot.jpg" border="0" /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5779786362928830721-3442485668004605197?l=agileui.blogspot.com'/&gt;&lt;/div&gt;</description><link>http://feedproxy.google.com/~r/AgileUI/~3/8o0NtTc8kRg/free-flex-component-gradient-editor.html</link><author>noreply@blogger.com (Rob McKeown)</author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">3</thr:total><feedburner:origLink>http://agileui.blogspot.com/2009/02/free-flex-component-gradient-editor.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-5779786362928830721.post-2610951602063748235</guid><pubDate>Thu, 19 Feb 2009 21:53:00 +0000</pubDate><atom:updated>2009-02-19T16:58:10.213-05:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Mac</category><category domain="http://www.blogger.com/atom/ns#">PixelBender</category><category domain="http://www.blogger.com/atom/ns#">Flex</category><category domain="http://www.blogger.com/atom/ns#">UI</category><title>PixelBender Filter required... I think?</title><description>If you read my blog you know that I don't currently have a Mac. This is true, however I have used enough of them to really fall in love with some of the UI details. One of them is the way in which when you minimize a window it kind of warps as it shrinks into the dock.&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;I don't know much about PixelBender effects, but this seems like something that could be accomplished. I am not even sure what keywords to use on Google to search for such an example. So, if you know of an example of how that effect might be accomplished in Flex using PixelBender (or without using PixelBender) I would really like to see it.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5779786362928830721-2610951602063748235?l=agileui.blogspot.com'/&gt;&lt;/div&gt;</description><link>http://feedproxy.google.com/~r/AgileUI/~3/8fngzNIAgUQ/pixelbender-filter-required-i-think.html</link><author>noreply@blogger.com (Rob McKeown)</author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">6</thr:total><feedburner:origLink>http://agileui.blogspot.com/2009/02/pixelbender-filter-required-i-think.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-5779786362928830721.post-6436687938708760753</guid><pubDate>Thu, 12 Feb 2009 04:41:00 +0000</pubDate><atom:updated>2009-02-12T09:21:34.972-05:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Skinning</category><category domain="http://www.blogger.com/atom/ns#">Flex</category><title>Programmatic Yahoo Skin Library update</title><description>I have added some new skins to my programmatic version of the &lt;a href="http://developer.yahoo.com/flash/articles/yahoo-flex-skin.html"&gt;Yahoo Skin Library&lt;/a&gt;. The new additions are the ComboBox, CheckBox, PanelTitleBar, PanelControlBar, PanelCloseButton, ToggleButtonBar.&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;The demo below is the actual Yahoo Skin Demo MXML with my CSS attached. So, you will see that not every component in it is styled correctly yet. As I add new skins to the library, this demo will be updated.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;You can see &lt;a href="http://www.mcgraphix.com/blog/YahooSkin/DemoApp.html"&gt;the demo and download the source here&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5779786362928830721-6436687938708760753?l=agileui.blogspot.com'/&gt;&lt;/div&gt;</description><link>http://feedproxy.google.com/~r/AgileUI/~3/0KI7CTID7Bo/programmatic-yahoo-skin-library-update.html</link><author>noreply@blogger.com (Rob McKeown)</author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">3</thr:total><feedburner:origLink>http://agileui.blogspot.com/2009/02/programmatic-yahoo-skin-library-update.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-5779786362928830721.post-5716174178219704999</guid><pubDate>Wed, 11 Feb 2009 19:56:00 +0000</pubDate><atom:updated>2009-03-17T22:32:23.351-04:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Accessibility</category><category domain="http://www.blogger.com/atom/ns#">Flex</category><title>The Case Against Flex-Based App UIs...Really?</title><description>Last week, someone pointed out to me &lt;a href="http://www.intelligententerprise.com/blog/archives/2009/02/the_case_agains.html"&gt;this article from intelligententerprise.com&lt;/a&gt; and asked for my thoughts on the author's arguments. In his article the author compares RIAs built with Flex to those built with Java Applets. While there are similarities between the two conceptually, any Flex developers who experienced building an enterprise application with AWT and Java 1.1 will surely agree that they have many differences. &lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;So, here is my take on his "arguments".&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="FONT-WEIGHT: bold"&gt;"They almost always violate web accessibility guidelines"&lt;/span&gt;&lt;/div&gt;&lt;div&gt;No platform for web-based applications gives you accessibility entirely for free. Flash(Flex), AJAX and even web 1.0 HTML applications require effort to make them accessible. Flex gives developers an API to make applications keyboard accessible and able to be used by JAWS. If I am not mistaken, this capability existed with Flex before any AJAX framework had it. One could argue that making a straight HTML application accessible is far easier than making a Flex or AJAX application accessible. However, there are a lot of other user experience benefits that you can't get with plain old HTML. &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt; &lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="FONT-WEIGHT: bold"&gt;"They create support nightmares"&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;He seems to be confusing AIR with Flex. Flex is a technology used to build applications. AIR is a desktop runtime used to run applications. AIR applications could be created with Flex, Flash or AJAX. Like any desktop application, pushing updates is not as simple as web-based ones. However, AIR does provide the ability for automatic updates that is easy to implement. "The potential for trouble remains" sounds to me like "There is no problem now but someday there might be"... you could say that about any technology. Flex applications that run in the browser have very little need to worry about this type of issue. Adobe frequently updates the Flash player but maintains backwards compatibility better than anyone I have ever seen. Applications built for Flash 5 will still run in the Flash Player 10. The only changes that may have caused problems are some security changes. While this is something that could break backwards compatibility, I would argue that it is worth it in those cases.&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="FONT-WEIGHT: bold"&gt;"They are prone to performance problems"&lt;/span&gt;&lt;/div&gt;&lt;div&gt;Memory leaks are just as likely in non-Flex applications. With JavaScript (AJAX) based applications it is very easy to cause memory leaks. Even Microsoft points out some patterns that cause them (http://msdn.microsoft.com/en-us/library/bb250448.aspx). Good developers can watch out for the types of coding patterns that cause memory leaks. FlexBuilder has tools to help developers identify leaks. With AJAX applications, it is more difficult.&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="FONT-WEIGHT: bold"&gt;"You can't easily modify them"&lt;/span&gt;&lt;/div&gt;&lt;div&gt;This is probably the most outrageous claim on here. He clearly doesn't understand how Flex applications are built. Changing the look and feel is one of the key features of Flex. &lt;a href="http://scalenine.com/"&gt;Scalenine.com&lt;/a&gt; and &lt;a href="http://fillcolors.com/"&gt;fillcolors.com&lt;/a&gt; both showcase the ability to change the appearance of Flex applications in some cases very dramatically. The decision to not allow this type of "skinning" is really a business decision not a technology limitation. The demo situation he describes is rather amusing. None of the problems he describes had anything to do with Flex as the technology. Rather, they point out the vendor’s lack of a good interaction designer. He points out that the answer they wanted to hear was "You can modify the UI yourself on a role-by-role basis, and our platform is properly tiered, so we can show you how to customize it in a release-safe way." This is exactly what a well-designed/well-implemented application does allow for…regardless of technology.&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5779786362928830721-5716174178219704999?l=agileui.blogspot.com'/&gt;&lt;/div&gt;</description><link>http://feedproxy.google.com/~r/AgileUI/~3/3nDBgG8TXK4/case-against-flex-based-app-uis.html</link><author>noreply@blogger.com (Rob McKeown)</author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">31</thr:total><feedburner:origLink>http://agileui.blogspot.com/2009/02/case-against-flex-based-app-uis.html</feedburner:origLink></item></channel></rss>
