<?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/"
	xmlns:media="http://search.yahoo.com/mrss/"
	>

<channel>
	<title>I don't like computers.</title>
	<atom:link href="http://faindu.wordpress.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://faindu.wordpress.com</link>
	<description></description>
	<lastBuildDate>Sat, 05 Sep 2009 19:44:46 +0000</lastBuildDate>
	<generator>http://wordpress.com/</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<cloud domain='faindu.wordpress.com' port='80' path='/?rsscloud=notify' registerProcedure='' protocol='http-post' />
<image>
		<url>http://www.gravatar.com/blavatar/582477d1702fb1b5b4b18665c5e891c9?s=96&#038;d=http://s.wordpress.com/i/buttonw-com.png</url>
		<title>I don't like computers.</title>
		<link>http://faindu.wordpress.com</link>
	</image>
			<item>
		<title>Pitfalls of loading Flex modules</title>
		<link>http://faindu.wordpress.com/2009/08/18/pitfalls-for-loading-flex-modules/</link>
		<comments>http://faindu.wordpress.com/2009/08/18/pitfalls-for-loading-flex-modules/#comments</comments>
		<pubDate>Tue, 18 Aug 2009 15:26:25 +0000</pubDate>
		<dc:creator>Marc</dc:creator>
				<category><![CDATA[Flash Player]]></category>
		<category><![CDATA[InternetExplorer]]></category>
		<category><![CDATA[actionscript]]></category>
		<category><![CDATA[firefox]]></category>
		<category><![CDATA[flex]]></category>

		<guid isPermaLink="false">http://faindu.wordpress.com/?p=273</guid>
		<description><![CDATA[I&#8217;ve just run into two issues for Flex module loading. Maybe it helps somebody&#8230;
Hungry garbage collector
When loading modules, it&#8217;s important that you keep a reference to the IModuleInfo instance. I did store them in a Vector and thought everything works that way. What I forgot was a subtle timing issue: I checked the Vector for [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=faindu.wordpress.com&blog=1162752&post=273&subd=faindu&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>I&#8217;ve just run into two issues for Flex module loading. Maybe it helps somebody&#8230;</p>
<h4>Hungry garbage collector</h4>
<p>When loading modules, it&#8217;s important that you keep a reference to the IModuleInfo instance. I did store them in a Vector and thought everything works that way. What I forgot was a subtle timing issue: I checked the Vector for loaded modules after I pushed a new loading job into Vector. So it could happen that right after pushing the job into Vector, it got thrown into the garbage.</p>
<h4>Stale Expires HTTP headers</h4>
<p>Another nice one are HTTP caching headers: By mistake, I assigned all Flex modules a fixed Expires HTTP header. It expired this morning and loading modules became a seemly  random process: The first module loaded successfully, but the second and third failed. When the same Flash Player instance loaded the module a second time, everything worked well. Well, after some debugging, I found the culprit in the HTTP header. After removing the Expires header, everything runs smoothly again.</p>
<p>Let me know if you have other stories about module loading.</p>
  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/faindu.wordpress.com/273/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/faindu.wordpress.com/273/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/faindu.wordpress.com/273/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/faindu.wordpress.com/273/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/faindu.wordpress.com/273/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/faindu.wordpress.com/273/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/faindu.wordpress.com/273/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/faindu.wordpress.com/273/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/faindu.wordpress.com/273/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/faindu.wordpress.com/273/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=faindu.wordpress.com&blog=1162752&post=273&subd=faindu&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://faindu.wordpress.com/2009/08/18/pitfalls-for-loading-flex-modules/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/582666799ef62ea0c299f6a488d32068?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Marc</media:title>
		</media:content>
	</item>
		<item>
		<title>Stand up AGAINST Generics/Concurency in Flash Player</title>
		<link>http://faindu.wordpress.com/2009/08/07/stand-up-against-generics-concurency-in-flash-player/</link>
		<comments>http://faindu.wordpress.com/2009/08/07/stand-up-against-generics-concurency-in-flash-player/#comments</comments>
		<pubDate>Fri, 07 Aug 2009 13:55:35 +0000</pubDate>
		<dc:creator>Marc</dc:creator>
				<category><![CDATA[Flash Player]]></category>
		<category><![CDATA[Flex Builder]]></category>
		<category><![CDATA[actionscript]]></category>

		<guid isPermaLink="false">http://faindu.wordpress.com/?p=246</guid>
		<description><![CDATA[I&#8217;ve just read Joa Ebert&#8217;s excellent post &#8220;This is an outrage&#8220;  about the Flash platform. I totally agree on the big picture but don&#8217;t like some language proposals. As my tiny little contribution, I&#8217;d like to dissect and reassemble some often heard wishes for the ActionScript language.
Reading about generics and concurrency in Flash Player makes [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=faindu.wordpress.com&blog=1162752&post=246&subd=faindu&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>I&#8217;ve just read Joa Ebert&#8217;s excellent post &#8220;<a href="http://blog.joa-ebert.com/2009/08/06/this-is-an-outrage/">This is an outrage</a>&#8220;  about the Flash platform. I totally agree on the big picture but don&#8217;t like some language proposals. As my tiny little contribution, I&#8217;d like to dissect and reassemble some often heard wishes for the ActionScript language.</p>
<p>Reading about generics and concurrency in Flash Player makes me nervous. I have read many wishes about those two features but never found a very precise description of what they really want. I fear that many think of language features found  in C++, C# or Java. The problem I have with those languages is that the language complexity reduces massively developer efficiency and effectiveness. Why do so many developers flee to Ruby, Python, Scala  or F#? How can ThoughtWorks state that they are  roughly<a href="http://martinfowler.com/articles/rubyAtThoughtWorks.html"> two times faster in developing</a> with a language that has no generics but the  feature is still high on the wish list for ActionScript?</p>
<h3>Generics</h3>
<p>Please correct me if I&#8217;m wrong but you could not do more with generics in ActionScript. So we are talking about a usability feature for the developer, right? Instead of endless castings and writing tests, the compiler could do some of this work. But do generics really make you write and much more importantly read ActionScript code faster? If I think of Java 1.6 generics, my answer is certainly no and that&#8217;s the reasons why I&#8217;m against generics as known in Java.</p>
<p>However, I see some areas where type safety increases developer productivity. Vector is a great example and like Joa, I&#8217;d like to see some more native collections in Flash Player that use generics. But besides those exceptions, I don&#8217;t need generics.</p>
<h3>Concurrency</h3>
<p>I see two feature requests in concurrency: The first one is run time performance. The number of CPU cores is going to increase steadily and Flash Player 10 only leverages several cores in PixelBender (I get happily corrected).  I think of  PixelBender as a machine that launches as many thread as there are pixels in the output. Everything is finally joined when jumping back to ActionScript. So basically, we have already concurrency for a dedicated purpose. Sure, Flash Player needs to be able to leverage several cores but I&#8217;d prefer if the VM could take care of concurrency. While writing code, I don&#8217;t want to think in CPU cores but in my business domain. Though I must admit that I don&#8217;t know anything about the feasibility of such an approach.</p>
<p>The second feature in concurrency are parallel tasks in an application. For example, saving data to a server and updating the display could run in parallel. The developer needs to control these parallel tasks. I know Java reasonably well and I fought trough <a href="http://www.amazon.com/Java-Concurrency-Practice-Brian-Goetz/dp/0321349601/">Java Concurrency in Practice</a> which I recommend. However, if it takes a book of 400 pages to know the basics of concurrency, the feature is never worth the pain of learning it.  I would argue that concurrency introduces a level of complexity that nobody can master in a mid-sized project anymore. You just happen to fix known issues but you can not validate it. Testing concurrency is not even in its infancy.</p>
<p>That&#8217;s the reason why I plea for a much simpler solution compared to the implementation in Java. Maybe having a fixed number of e.g. 4 threads makes it a lot easier. Or maybe making all accesses synchronized per default and defining the exceptions is something to consider; I don&#8217;t know. I don&#8217;t pretend to know a great solution, I only know that I don&#8217;t want any solution I know today.</p>
<h3>Bonus feature: Overloading</h3>
<p>While allowing to apply all standard namespaces to constructors reduces complexity in ActionScript, overloading certainly adds more complexity. What&#8217;s the benefit instead of handling the different types in the constructor or method itself like in e.g. Python? If we had powerful pattern matchers like Scala has, I could easily live without overloading. Pattern matcher could also play a major role in solving &#8220;generics task&#8221;.</p>
<h3>About Complexity</h3>
<p>I find the <a href="http://blog.joa-ebert.com/2009/08/06/this-is-an-outrage/#comment-174005">comment of Lee Brimelow</a> brings it to the point: &#8220;<em>&#8230;there is also a huge segment of the community who is still really struggling with moving to AS3 as it is now</em>&#8220;. For example, I would argue that probably half of all Flex developers are not aware that they create a potential memory leak when referencing objects in an array. They don&#8217;t care and they shouldn&#8217;t. Adding those features mentioned above will make even more people write buggy code.</p>
<h3>Better and faster results</h3>
<p>What makes me faster in reading and writing is rather for example type inference and tweaking the functional programming approaches. Which example do you understand faster?</p>
<p><code><br />
//ActionScript 3<br />
var vw:Car = new Car()<br />
var cars:Vector.&lt;Car&gt; = new Vector.&lt;Car&gt;<br />
cars.push(vw)<br />
readyToDrive = cars.every(function(car:*, index:int, arr:Array):Boolean {<br />
return Car(car).hasEnoughOil<br />
})<br />
</code><br />
or<br />
<code><br />
//ActionScript 2010<br />
vw = new Car()<br />
cars = new Vector.&lt;Car&gt;<br />
cars.push(vw)<br />
</code><code> readyToDrive = </code><code>cars.every(return car.hasEnoughOil)</code></p>
<p>Some more spontaneous thoughts for language improvements:</p>
<ul>
<li>Like in Dictionary, allow weak references in many places.</li>
<li>I&#8217;m not sure about adding [Mixin]. Haven&#8217;t thought through it yet.</li>
<li>{} should become in most situations optional as the semicolon is today.</li>
<li>If you care about raw performance, use Alchemy, <a href="http://haxe.org/com/libs/format/abc">write bytecode</a> with the help of the excellent haxe project, launch a job for PixelBender or pray that the compiler gets more love by Adobe. It&#8217;s also clear that  AVM2 needs to speed up as well. But don&#8217;t clutter ActionScript with pure performance features. After all, ActionScript is just a layer above byte code that should increase developer productivity (performance improvements from the compiler seem too far away).</li>
<li>(Sorry, this is my personal, pretty much hopeless fight <img src='http://s.wordpress.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  What the community could already do today is dropping this silly ;;;;;;;;;; at the end of each line. It&#8217;s just visual clutter and about as useful as adding &#8220;<em>//end of line</em>&#8221; at each line end.</li>
</ul>
<h3>Finally</h3>
<p>My point is that ActionScript should not blindly chase any other language. Adobe should only add language features if they either increase developer productivity or enable new possibilities for the Flash Platform including run time performance. And of course, only after a thorough discussion in the community before implementing.</p>
<p>But at the end of the day, I preferred to use Python or Ruby to program Flash and leave the stalled ECMA standard behind. Hey, maybe Adobe pops up with an equally solid APython or ARuby compiler at MAX?</p>
  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/faindu.wordpress.com/246/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/faindu.wordpress.com/246/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/faindu.wordpress.com/246/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/faindu.wordpress.com/246/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/faindu.wordpress.com/246/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/faindu.wordpress.com/246/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/faindu.wordpress.com/246/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/faindu.wordpress.com/246/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/faindu.wordpress.com/246/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/faindu.wordpress.com/246/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=faindu.wordpress.com&blog=1162752&post=246&subd=faindu&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://faindu.wordpress.com/2009/08/07/stand-up-against-generics-concurency-in-flash-player/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/582666799ef62ea0c299f6a488d32068?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Marc</media:title>
		</media:content>
	</item>
		<item>
		<title>Mocking in Flex/ActionScript has arrived: mockito-flex</title>
		<link>http://faindu.wordpress.com/2009/07/08/mocking-in-flexactionscript-has-arrived-mockito-flex/</link>
		<comments>http://faindu.wordpress.com/2009/07/08/mocking-in-flexactionscript-has-arrived-mockito-flex/#comments</comments>
		<pubDate>Wed, 08 Jul 2009 18:41:54 +0000</pubDate>
		<dc:creator>Marc</dc:creator>
				<category><![CDATA[Flash Player]]></category>
		<category><![CDATA[actionscript]]></category>
		<category><![CDATA[flex]]></category>

		<guid isPermaLink="false">http://faindu.wordpress.com/?p=239</guid>
		<description><![CDATA[The announcement of Google Chrome OS is certainly a bing bang in the IT world. However, this didn&#8217;t made my day but the public release of  mockito-flex. It&#8217;s been quite painful to create mock objects up to now in Flex. mock-as3 was best until I read on InfoQ about mockito-flex. It&#8217;s based on asmock [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=faindu.wordpress.com&blog=1162752&post=239&subd=faindu&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>The <a href="http://googleblog.blogspot.com/2009/07/introducing-google-chrome-os.html">announcement of Google Chrome OS</a> is certainly a bing bang in the IT world. However, this didn&#8217;t made my day but the public release of <a href="http://bitbucket.org/loomis/mockito-flex/wiki/Home"> mockito-flex</a>. It&#8217;s been quite painful to create mock objects up to now in Flex. <a href="http://code.google.com/p/mock-as3/">mock-as3</a> was best until I read on <a href="http://www.infoq.com/news/2009/07/mockito-java-flex">InfoQ</a> about mockito-flex. It&#8217;s based on <a href="http://asmock.sourceforge.net/">asmock </a>but the syntax feels very much like mockito for Java (which is in my opinion the best mock library in Java). The documentation is still sparse, so below are all the things I need to know:</p>
<p><code><br />
given(mockie.foo(10)).willReturn("10")<br />
given(mockie.foo(10)).willThrow(new Error("oups"))<br />
given(mockie.foo()).will(new GenericAnswer(incrementCounter))<br />
verify().that(array.push("1"))<br />
verify().that(array.pop())<br />
verify().that(mockie.baz(eq("one"), any()))<br />
verify().that(mockie.baz(argThat(new GenericMatcher("two", contains)), eq(10)))<br />
verify(never()).that(testClass.foo())<br />
verify(times(3)).that(testClass.foo()) // atLeast(4), atLeastOnce(), once()<br />
</code></p>
  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/faindu.wordpress.com/239/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/faindu.wordpress.com/239/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/faindu.wordpress.com/239/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/faindu.wordpress.com/239/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/faindu.wordpress.com/239/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/faindu.wordpress.com/239/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/faindu.wordpress.com/239/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/faindu.wordpress.com/239/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/faindu.wordpress.com/239/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/faindu.wordpress.com/239/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=faindu.wordpress.com&blog=1162752&post=239&subd=faindu&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://faindu.wordpress.com/2009/07/08/mocking-in-flexactionscript-has-arrived-mockito-flex/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/582666799ef62ea0c299f6a488d32068?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Marc</media:title>
		</media:content>
	</item>
		<item>
		<title>Cheat sheet: Flash Player HTTP talking with HTTPService, URLLoader and friends</title>
		<link>http://faindu.wordpress.com/2009/06/17/cheat-sheet-flash-player-http-talking-with-httpservice-urlloader-and-friends/</link>
		<comments>http://faindu.wordpress.com/2009/06/17/cheat-sheet-flash-player-http-talking-with-httpservice-urlloader-and-friends/#comments</comments>
		<pubDate>Wed, 17 Jun 2009 14:31:06 +0000</pubDate>
		<dc:creator>Marc</dc:creator>
				<category><![CDATA[Flash Player]]></category>
		<category><![CDATA[actionscript]]></category>
		<category><![CDATA[flex]]></category>

		<guid isPermaLink="false">http://faindu.wordpress.com/?p=199</guid>
		<description><![CDATA[HTTP communication with Flash Player is messy and very uncomfortable: There are a few classes to know, HTTP headers are never available and different bugs in different browser don&#8217;t help either. So I&#8217;ve started to compile a cheat sheet for Flash Player and started another one for Adobe Air.
Leave a note if you want to [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=faindu.wordpress.com&blog=1162752&post=199&subd=faindu&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>HTTP communication with Flash Player is messy and very uncomfortable: There are a few classes to know, HTTP headers are never available and different bugs in different browser don&#8217;t help either. So I&#8217;ve started to compile a <a href="http://docs.google.com/View?id=ajdv3bjtb8ww_5tdmfprgk">cheat sheet for Flash Player</a> and started another one for Adobe Air.</p>
<p>Leave a note if you want to contribute to the Google doc.</p>
  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/faindu.wordpress.com/199/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/faindu.wordpress.com/199/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/faindu.wordpress.com/199/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/faindu.wordpress.com/199/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/faindu.wordpress.com/199/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/faindu.wordpress.com/199/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/faindu.wordpress.com/199/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/faindu.wordpress.com/199/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/faindu.wordpress.com/199/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/faindu.wordpress.com/199/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=faindu.wordpress.com&blog=1162752&post=199&subd=faindu&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://faindu.wordpress.com/2009/06/17/cheat-sheet-flash-player-http-talking-with-httpservice-urlloader-and-friends/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/582666799ef62ea0c299f6a488d32068?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Marc</media:title>
		</media:content>
	</item>
		<item>
		<title>Migrating to Flex 4 (Gumbo): Neither epic fail nor seamless</title>
		<link>http://faindu.wordpress.com/2009/06/10/migrating-to-flex-4-gumbo-neither-epic-fail-nor-seamless/</link>
		<comments>http://faindu.wordpress.com/2009/06/10/migrating-to-flex-4-gumbo-neither-epic-fail-nor-seamless/#comments</comments>
		<pubDate>Wed, 10 Jun 2009 13:56:04 +0000</pubDate>
		<dc:creator>Marc</dc:creator>
				<category><![CDATA[Flash Player]]></category>
		<category><![CDATA[Flex Builder]]></category>
		<category><![CDATA[Flex4]]></category>
		<category><![CDATA[actionscript]]></category>
		<category><![CDATA[flex]]></category>

		<guid isPermaLink="false">http://faindu.wordpress.com/?p=206</guid>
		<description><![CDATA[There has been some debate about whether the migration to Flex 4 is an epic fail or a breeze. As often, the truth is somewhere between. Here is my experience with porting BlocStac.com, an application with roughly 90&#8242;000 lines of code including tests, 2 libraries and 8 modules plus 2 Air helper applications.
A good start [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=faindu.wordpress.com&blog=1162752&post=206&subd=faindu&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>There has been some debate about whether the migration to Flex 4 is an <a href="http://aralbalkan.com/2202">epic fail</a> or a <a href="http://blog.benstucki.net/?p=56">breeze</a>. As often, the truth is somewhere between. Here is my experience with porting <a href="http://www.blocstac.com/">BlocStac.com</a>, an application with roughly 90&#8242;000 lines of code including tests, 2 libraries and 8 modules plus 2 Air helper applications.</p>
<p>A good start for the migration is an <a href="http://www.adobe.com/devnet/flex/articles/flex3and4_differences.html">Adobe article</a> by <a href="http://butterfliesandbugs.wordpress.com/">Joan Lafferty</a>. I also appreciate the information in <a href="http://opensource.adobe.com/wiki/display/flexsdk/Gumbo">Adobe&#8217;s Wiki</a>. What also helps is that the term &#8220;gumbo&#8221; works nicely for search. What definitely doesn&#8217;t work is searching the <a href="http://forums.adobe.com/community/labs/gumbo">Adobe&#8217;s forum</a>: you can&#8217;t search within the current forum and selecting a single forum in advanced search is impossible due to the sheer number of more than 500 forums.</p>
<h3>Skinny CSS, fat Skins</h3>
<p>All definitions of borders and paddings in CSS are happily ignored in Flex 4. Using the compiler option &#8220;theme=path/halo.swc&#8221; is not an option as having components with halo skins and spark skins is not acceptable. What I&#8217;ve done so far:</p>
<ol>
<li>Move all padding declartions in CSS files into the layout objects of components.</li>
<li>Write custom skins for all components that require border settings. Because I could not believe that one (after all, it&#8217;s quite a lot of work), I asked on the <a href="http://forums.adobe.com/message/2018038">forum</a>. Peter deHaan from Adobe gave a fast and helpful answer. I love this level of support.</li>
<li>global does not work yet, &#8220;*&#8221; is also of no help. Still investigating this one.</li>
<li>Rename &#8220;background-color&#8221; to &#8220;contentBackgroundColor&#8221; (does anybody know the reason for this change?)</li>
<li><a href="http://opensource.adobe.com/wiki/display/flexsdk/CSS+Namespaces+Support">Add namespace</a> to CSS</li>
</ol>
<p>If anything could be called an epic fail, it might be CSS migration. I had to recode pretty much everything defined in CSS and CSS is now pretty sparse. I&#8217;m not even sure whether CSS is still worth the concept in Flex 4.</p>
<h3>Flex-Mojo, AdvancedDataGrid, etc</h3>
<p>Some other issues I hit:</p>
<ol>
<li><a href="http://flexmojos.sonatype.org/">Flex-mojo</a>: VELO does a great job at bringing maven to the Flex world. It took him only a few hours to <a href="http://groups.google.com/group/flex-mojos/browse_thread/thread/fa7966d419d40dd">include Flex 4beta1 in flex-mojo 3.3-SNAPSHOT</a> and fix an issue with unit testing. Though I hope Adobe offers a maven repository some day&#8230; vote for <a href="http://bugs.adobe.com/jira/browse/SDK-12730">SDK-12730</a>!</li>
<li>AdvancedDataGrid: <em><span style="color:#808080;">TypeError: Error #1007: Instantiation attempted on a non-constructor. at mx.controls::AdvancedDataGridBaseEx/getSeparator()&#8230; </span></em> brought me to <a href="http://tech.groups.yahoo.com/group/flexcoders/message/143061">Matt Chotin&#8217;s answer</a> that <span style="text-decoration:line-through;">it&#8217;s not available in Flex 4beta1 (4.0.0.7219)</span>. Au contraire, the only Flex4 version that has a working datavisualization library is Flex 4beta1. It comes bundled with Flash Builder beta1 but the library is not compatible anymore with current builds.</li>
</ol>
<h3>Is it worth the pain?</h3>
<p>Not yet. Not having AdvancedDataGrid is a show stopper for <a href="http://www.blocstac.com/">BlocStac.com</a>. All the work for CSS is unfortunate but it probably leads to better code (though not sure yet). If it brings Flex really forward, it&#8217;s fine. After all, I rather see an evolving eco system that let die out obsolete concepts than e.g. the Java language that drags everything along.</p>
  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/faindu.wordpress.com/206/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/faindu.wordpress.com/206/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/faindu.wordpress.com/206/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/faindu.wordpress.com/206/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/faindu.wordpress.com/206/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/faindu.wordpress.com/206/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/faindu.wordpress.com/206/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/faindu.wordpress.com/206/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/faindu.wordpress.com/206/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/faindu.wordpress.com/206/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=faindu.wordpress.com&blog=1162752&post=206&subd=faindu&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://faindu.wordpress.com/2009/06/10/migrating-to-flex-4-gumbo-neither-epic-fail-nor-seamless/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/582666799ef62ea0c299f6a488d32068?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Marc</media:title>
		</media:content>
	</item>
		<item>
		<title>No free lunch: EditImage&#8217;s Matrix Transformations</title>
		<link>http://faindu.wordpress.com/2009/02/01/flex-actionscript-editimages-matrix-transformations/</link>
		<comments>http://faindu.wordpress.com/2009/02/01/flex-actionscript-editimages-matrix-transformations/#comments</comments>
		<pubDate>Sun, 01 Feb 2009 20:10:11 +0000</pubDate>
		<dc:creator>Marc</dc:creator>
				<category><![CDATA[EditImage]]></category>
		<category><![CDATA[Flash Player]]></category>
		<category><![CDATA[actionscript]]></category>
		<category><![CDATA[flex]]></category>

		<guid isPermaLink="false">http://faindu.wordpress.com/?p=190</guid>
		<description><![CDATA[There is no free lunch in life. It&#8217;s pretty much the same with image manipulation in Actionscript. There is no way around linear algebra. Well, the good news is that it&#8217;s linear by definition. The bad news is that it becomes a bit quirky in Actionscript. With the following links, I hope to answer some [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=faindu.wordpress.com&blog=1162752&post=190&subd=faindu&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>There is no free lunch in life. It&#8217;s pretty much the same with image manipulation in Actionscript. There is no way around <a href="http://en.wikipedia.org/wiki/Linear_algebra">linear algebra</a>. Well, the good news is that it&#8217;s linear by definition. The bad news is that it becomes a bit quirky in Actionscript. With the following links, I hope to answer some questions I regularly get asked for the <a href="http://faindu.wordpress.com/2008/05/23/free-flex-component-editimage-03/">EditImage</a> component.</p>
<h3>What you should know</h3>
<p>An excellent starting point is <a href="http://www.senocular.com/flash/tutorials/transformmatrix/">Senocular&#8217;s introduction</a> in transformation matrices. This should give you enough motivation to muddle through <a href="http://en.wikipedia.org/wiki/Affine_transformation">affine transformation</a> and friends in vector calculations. Should you loose your patience while repeating or learning, go to the hands-on<a href="http://help.adobe.com/en_US/ActionScript/3.0_ProgrammingAS3/WS5b3ccc516d4fbf351e63e3d118a9b90204-7dcb.html"> matrix transformation page</a> of Adobe.</p>
<p>Once you are a champion in linear algebra and the matrix API of the Flash Player, you need to know that Adobe&#8217;s transformation matrix is the tranpose of the matrix that is usually used in math. Philip Kromer explains it on his <a href="http://vizsage.com/demos/matrixmathdemo/MatrixMathDemo.html">blog</a>. The same guy has also written a very usefull <a href="http://vizsage.com/demos/matrixmathdemo/app/MatrixMathDemo.html">demo</a>.</p>
  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/faindu.wordpress.com/190/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/faindu.wordpress.com/190/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/faindu.wordpress.com/190/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/faindu.wordpress.com/190/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/faindu.wordpress.com/190/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/faindu.wordpress.com/190/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/faindu.wordpress.com/190/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/faindu.wordpress.com/190/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/faindu.wordpress.com/190/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/faindu.wordpress.com/190/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=faindu.wordpress.com&blog=1162752&post=190&subd=faindu&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://faindu.wordpress.com/2009/02/01/flex-actionscript-editimages-matrix-transformations/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/582666799ef62ea0c299f6a488d32068?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Marc</media:title>
		</media:content>
	</item>
		<item>
		<title>Amazon S3 + Flash crossdomain.xml + IE7 = Certifacte error</title>
		<link>http://faindu.wordpress.com/2008/12/18/amazon-s3-flash-crossdomainxml-ie7-certifacte-error/</link>
		<comments>http://faindu.wordpress.com/2008/12/18/amazon-s3-flash-crossdomainxml-ie7-certifacte-error/#comments</comments>
		<pubDate>Thu, 18 Dec 2008 17:50:24 +0000</pubDate>
		<dc:creator>Marc</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://faindu.wordpress.com/?p=171</guid>
		<description><![CDATA[This is just an other story why I don&#8217;t like computers&#8230; When the Flash Player loads files from Amazon S3, it most likely crosses the domain border. This means that you have to put up yourself with Flash Player security. If you planned a new security concept for Flash Player and you want to make [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=faindu.wordpress.com&blog=1162752&post=171&subd=faindu&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>This is just an other story why I don&#8217;t like computers&#8230; When the Flash Player loads files from Amazon S3, it most likely <strong>crosses the domain border</strong>. This means that you have to put up yourself with <a href="http://www.adobe.com/devnet/flashplayer/articles/flash_player10_security_wp.html">Flash Player security</a>. If you planned a new security concept for Flash Player and you want to make it as complex and convoluted as you could ever imagine and then, you power this by the factor of 10, you most likely come up with the current Flash Player security concept. Ok, if it hadn&#8217;t changed much over the years. But did you know that for example the allowed HTTP header changed in <a href="http://kb.adobe.com/selfservice/viewContent.do?externalId=kb403030&amp;sliceId=1">every release</a>! I bet that there are no more than 10 people on the world that understand everything including the implications of the changes over the years.</p>
<p>Whatever, loading the crossdomain.xml from Amazon S3 does not fail because of Flash Player. That&#8217;s why loading the file <strong>works fine in Firefox but fails in Internet Explorer</strong> and Safari. The URL was something like <em>&#8220;https://images.example.org.s3.amazonaws.com/crossdomain.xml</em>&#8220;. It turns out that Internet Explorer does <strong>not accept address with &#8220;<em>.</em>&#8221; for wildcard SSL certifactes</strong> like &#8220;<em>*.s3.amazonaws.com&#8221;</em>. So this story ends with the fact that you should <strong>only use bucket names without &#8220;.&#8221;</strong><em> like </em><em>&#8220;https://myimages.s3.amazonaws.com/crossdomain.xml</em>&#8220;.</p>
  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/faindu.wordpress.com/171/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/faindu.wordpress.com/171/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/faindu.wordpress.com/171/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/faindu.wordpress.com/171/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/faindu.wordpress.com/171/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/faindu.wordpress.com/171/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/faindu.wordpress.com/171/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/faindu.wordpress.com/171/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/faindu.wordpress.com/171/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/faindu.wordpress.com/171/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=faindu.wordpress.com&blog=1162752&post=171&subd=faindu&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://faindu.wordpress.com/2008/12/18/amazon-s3-flash-crossdomainxml-ie7-certifacte-error/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/582666799ef62ea0c299f6a488d32068?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Marc</media:title>
		</media:content>
	</item>
		<item>
		<title>Adobe Cocomo RTMFP enables &#8220;Skype&#8221; without installation</title>
		<link>http://faindu.wordpress.com/2008/12/03/adobe-cocomo-rtmfp-enables-skype-without-installation/</link>
		<comments>http://faindu.wordpress.com/2008/12/03/adobe-cocomo-rtmfp-enables-skype-without-installation/#comments</comments>
		<pubDate>Wed, 03 Dec 2008 15:42:53 +0000</pubDate>
		<dc:creator>Marc</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[actionscript]]></category>
		<category><![CDATA[flex]]></category>
		<category><![CDATA[red5]]></category>

		<guid isPermaLink="false">http://faindu.wordpress.com/?p=156</guid>
		<description><![CDATA[Yesterday, the blog of the Adobe Cocomo team announced a limited service for RTMFP. The entry is very informative and straight; so go read it! RTMFP stands for Real-Time Media Flow Protocol and is well explained in these FAQ. From an end user perspective, RTMFP seems to be as relevant as for example the move [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=faindu.wordpress.com&blog=1162752&post=156&subd=faindu&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>Yesterday, the <a href="http://blogs.adobe.com/collabmethods/2008/12/try_rtmfp_and_clienttoclient_d.html">blog</a> of the Adobe Cocomo team announced a limited service for RTMFP. The entry is very informative and straight; so go read it! RTMFP stands for Real-Time Media Flow Protocol and is well explained in these <a href="http://www.adobe.com/go/rtmfp_faq">FAQ</a>. From an end user perspective, RTMFP seems to be as relevant as for example the move in imaging from CCD-sensors to CMOS-sensors: Both technologies can deliver great result, but with CMOS it gets much easier over the years and it is also much cheaper.</p>
<p>Hopes are, that RTMPF can lower costs of high bandwidth audio and video conversations mainly between two users while featuring a higher quality than a server based communication. The only party-stopper might be restrictive firewall rules. In fact, if I were an IT administrator I would block all those outgoing connections.</p>
<p>To start a connection between two users, you need something like a dating service. <a href="http://labs.adobe.com/wiki/index.php/Stratus">Adobe Stratus</a> does this job exclusively. Once you know each other, the service is only loosely involved with your interaction.</p>
<p>What&#8217;s missing at first glance is the ability to store those streams. I think it is the same problem as with direct communication to Cocomo. You can persist objects but no streams. While it&#8217;s fine to start with a proprietary protocol, I hope Adobe releases the specs as soon as possible. I hope to see RTMFP soon in <a href="http://www.wowzamedia.com/">Wowza</a> and <a href="http://osflash.org/red5">Red5</a>.</p>
  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/faindu.wordpress.com/156/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/faindu.wordpress.com/156/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/faindu.wordpress.com/156/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/faindu.wordpress.com/156/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/faindu.wordpress.com/156/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/faindu.wordpress.com/156/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/faindu.wordpress.com/156/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/faindu.wordpress.com/156/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/faindu.wordpress.com/156/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/faindu.wordpress.com/156/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=faindu.wordpress.com&blog=1162752&post=156&subd=faindu&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://faindu.wordpress.com/2008/12/03/adobe-cocomo-rtmfp-enables-skype-without-installation/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/582666799ef62ea0c299f6a488d32068?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Marc</media:title>
		</media:content>
	</item>
		<item>
		<title>[Bindable] causes Error 1144 for Vector classes in interfaces</title>
		<link>http://faindu.wordpress.com/2008/11/28/bindable-causes-error-1144-for-vector-classes-in-interfaces/</link>
		<comments>http://faindu.wordpress.com/2008/11/28/bindable-causes-error-1144-for-vector-classes-in-interfaces/#comments</comments>
		<pubDate>Fri, 28 Nov 2008 17:16:36 +0000</pubDate>
		<dc:creator>Marc</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://faindu.wordpress.com/?p=150</guid>
		<description><![CDATA[Write up an interface like&#8230;

package
{
	import __AS3__.vec.Vector;

	public interface Example
	{
		function get links(): Vector.&#60;int&#62;
		function set links( value:Vector.&#60;int&#62; ): void
	}
}

&#8230; and a class that implements the interface &#8230;

package
{
	import __AS3__.vec.Vector;

	[Bindable]
	public class ExampleImpl implements Example
	{
		public function get links():Vector.&#60;int&#62; {	return null; }
		public function set links(value:Vector.&#60;int&#62;):void {}
	}
}

&#8230; and receive an error message for free: &#8220;1144: Interface method set links in namespace Example is [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=faindu.wordpress.com&blog=1162752&post=150&subd=faindu&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>Write up an interface like&#8230;</p>
<pre class="brush: java;">
package
{
	import __AS3__.vec.Vector;

	public interface Example
	{
		function get links(): Vector.&lt;int&gt;
		function set links( value:Vector.&lt;int&gt; ): void
	}
}
</pre>
<p>&#8230; and a class that implements the interface &#8230;</p>
<pre class="brush: java;">
package
{
	import __AS3__.vec.Vector;

	[Bindable]
	public class ExampleImpl implements Example
	{
		public function get links():Vector.&lt;int&gt; {	return null; }
		public function set links(value:Vector.&lt;int&gt;):void {}
	}
}
</pre>
<p>&#8230; and receive an error message for free: &#8220;<em>1144: Interface method set links in namespace Example is implemented with an incompatible signature in class ExampleImpl.</em>&#8220;</p>
<p>A workaround is placing [Bindable] on the property level. And that&#8217;s it for this week.</p>
  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/faindu.wordpress.com/150/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/faindu.wordpress.com/150/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/faindu.wordpress.com/150/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/faindu.wordpress.com/150/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/faindu.wordpress.com/150/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/faindu.wordpress.com/150/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/faindu.wordpress.com/150/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/faindu.wordpress.com/150/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/faindu.wordpress.com/150/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/faindu.wordpress.com/150/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=faindu.wordpress.com&blog=1162752&post=150&subd=faindu&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://faindu.wordpress.com/2008/11/28/bindable-causes-error-1144-for-vector-classes-in-interfaces/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/582666799ef62ea0c299f6a488d32068?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Marc</media:title>
		</media:content>
	</item>
		<item>
		<title>Multi-touch for Adobe Flex: Introduction in Hardware and Software</title>
		<link>http://faindu.wordpress.com/2008/11/26/multitouch-for-adobe-flex-introduction-in-hardware-and-software/</link>
		<comments>http://faindu.wordpress.com/2008/11/26/multitouch-for-adobe-flex-introduction-in-hardware-and-software/#comments</comments>
		<pubDate>Wed, 26 Nov 2008 09:02:17 +0000</pubDate>
		<dc:creator>Marc</dc:creator>
				<category><![CDATA[actionscript]]></category>
		<category><![CDATA[flex]]></category>
		<category><![CDATA[usability]]></category>

		<guid isPermaLink="false">http://faindu.wordpress.com/?p=114</guid>
		<description><![CDATA[
I&#8217;m convinced that keyboards and mice are going to be complemented with multi-touch screens in a staggering short period. This believe drives me to check the current state of the technology. I split the analysis into three areas: the hardware, the &#8220;software engine room&#8221; and &#8220;user gestures and applications&#8221;. Because we need a presentation wall [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=faindu.wordpress.com&blog=1162752&post=114&subd=faindu&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p><span style="text-align:center; display: block;"><a href="http://faindu.wordpress.com/2008/11/26/multitouch-for-adobe-flex-introduction-in-hardware-and-software/"><img src="http://img.youtube.com/vi/1ftJhDBZqss/2.jpg" alt="" /></a></span><br />
I&#8217;m convinced that keyboards and mice are going to be complemented with multi-touch screens in a staggering short period. This believe drives me to check the current state of the technology. I split the analysis into three areas: the hardware, the &#8220;software engine room&#8221; and &#8220;user gestures and applications&#8221;. Because we need a presentation wall at Faindu, I confine all aspects to large screen applications.</p>
<p>Generally, <a href="http://nuigroup.com">NUI Group</a> is the hot spot. For diving into the technology, I also found the <a href="http://www.multigesture.net/2008/09/12/thesis-work/">master thesis</a> of Laurence Muller published this September quite useful.</p>
<h2>Multi-touch Screens</h2>
<p>All commercial hardware I found starts with a price tag of several 1&#8242;000 €. And until the <a href="http://www.mesa-imaging.ch">3D-camera</a> sits in every laptop, we will need to settle for 2D surface interaction. There is a <a href="http://nuigroup.com/forums/viewthread/1982/">thread</a> on NUIgroup that summarizes nicely the following four technologies. All four options are based on the same physical principle: finger tips or any other objects emit infrared (IR) light and are tracked by an IR-filtered camera. Those artifacts detected by an image processing algorithms are called &#8220;<a href="http://wiki.nuigroup.com/Multi-Touch_Terminology">blobs</a>&#8220;. The tracked object could actively emit light with an IR-LED but this required the user to wear gloves or something like a mini-torch. Because this is not geeky enough, all principles rely on reflecting IR-light on the object. So the real challenge is to illuminate several objects on the surface with evenly distributed intensity and indirection.</p>
<ul>
<li><strong>Diffused Illumination, DI:</strong> Several IR-lamps spot form the the back onto the surface.</li>
<li><strong>Diffused Surface Illumination, DSI:</strong> Tim Roth <a href="http://iad.projects.zhdk.ch/multitouch/?p=90">introduced</a> the DSI technology. Contrary to what the name implies, the setup is very similar to FTIR</li>
<li><strong>Frustrated Total Internal Reflection, FTIR:</strong> While DSI relies on scattering the light in the material, FTIR uses optical reflections at the surface. Think of a thick telceom multimode fiber that is pressed into a flat form. A nice <a href="http://cs.nyu.edu/~jhan/ftirsense/">diagramm</a> of Jeff Han&#8217;s former group, comprehensive <a href="www.multitouch.nl/documents/multitouchdisplay_howto_070523_v02.pdf">instructions pdf</a> by Harry van der Veen and other <a href="http://www.instructables.com/id/Back-projection-56-inch-multitouch-television./">instructions</a> by Christopher Jette.</li>
<li><strong>Laser curtain or </strong><strong>Laser </strong><strong>Light </strong><strong>Plane (LLP):</strong> One or several lasers span a curtain of light beams one millimeter in front of the screen. It was <a href="http://nuigroup.com/forums/viewthread/2029/">introduced by AlexP</a> (<a href="http://nuigroup.com/forums/viewthread/2109/">update</a>, <a href="http://nuigroup.com/forums/viewthread/2173/">newest post</a>) on the NUIgroup forum and very well explained by <a href="http://arbi.trario.us/2008/11/02/diy-laser-multi-touch-table/">Georg Kaindl</a>.</li>
</ul>
<p>If security issues can be resolved, LLP is my clear favorite.</p>
<h2>Software on the &#8220;operating system&#8221; level</h2>
<p>With &#8220;operating system&#8221; (OS) I mean the software that reads the data from the camera/s, processes it and sends the appropriate events in Actionscript. For the mouse or keyboard, this is on the operating system level, so I name it that way. <a href="http://mtg.upf.edu/reactable/?tuio">TUIO</a> is the standard for the communication between the multi-touch screen and applications.</p>
<ul>
<li><strong>Touchlib:</strong> The <a href="http://code.google.com/p/touchlib/">software</a> library <a href="http://www.whitenoiseaudio.com/touchlib/">touchlib</a> seems to be the standard. <a href="http://nuigroup.com/forums/viewthread/1825/">How to setup</a> a touchscreen. There is also <a href="http://code.google.com/p/wiimotetuio/">WiimoteTUIO</a> that tracks up to all four points of Wii Remote.</li>
<li><strong>tbeta:</strong> <a href="http://tbeta.nuigroup.com/">tbeta</a> is a recently released package by NUIgroup. It looks quite handy and there is a <a href="http://wiki.nuigroup.com/Tbeta">getting started guide</a>.</li>
<li><strong>IDEO:</strong> The well-known design firm <a href="http://labs.ideo.com/2008/08/15/our-home-brew-multi-touch-system/">compiled</a> on the basis of <a href="http://processing.org/">processing</a> an OS stack for Flash called <a href="http://code.google.com/p/ideo-multitouch/">ideo-multitouch</a>.</li>
<li><strong>simtouch:</strong> <a href="http://code.google.com/p/simtouch/">TUIO message simulator</a> for AS3 development.</li>
<li><strong><a href="http://www.processing.org/">Processing</a>:</strong> not sure what it is or rather what it isn&#8217;t.</li>
<li>[Added 12th Dec 2008] <strong><a href="http://code.google.com/p/wiiflash/">wiiflash</a></strong> puts all events of a Wii remote into Flash Player.</li>
</ul>
<p>I will explore tbeta and IDEO in more depth.</p>
<h2>User gestures and Flex multi-touch applications</h2>
<p>Apart from <a href="http://www.billbuxton.com/">Bill Buxton&#8217;s page</a> that also features an <a href="http://www.billbuxton.com/multitouchOverview.html">excellent overview</a>, I could not find yet a lot of research about gestures. I want to know what people intuitively understand. Wiping horizontally with two fingers means to most users&#8230;? Tipping with three finger should do&#8230;? And the combination with two hands? Anyway, there are may applications around:</p>
<ul>
<li>A <a href="http://www.multitouch.nl/?p=23">blog</a> of Harry van der Veen list three Actionscript applications developed by the NUIgroup.</li>
<li><a href="http://code.google.com/p/multitouchflickrviewer/">Multi Touch Flickr Viewer</a> lets you play with images.</li>
<li><a href="http://code.google.com/p/mapstouch/">mapstouch</a> is an Air application and lets you <a href="http://www.youtube.com/watch?v=L0Fp_0TZojg">navigate google maps</a>. It is based on touchlib.</li>
<li><a href="http://code.google.com/p/sparsh-ui/">sparsh-ui</a> is developed at the Iowa State University and features a gestures server. However, I could not find an Actionscript API.</li>
<li>There are <a href="http://nuigroup.com/forums/viewthread/3566/">no Flex components</a> optimized for the multi-touch paradigm yet.</li>
<li><a href="http://www.softmt.com">Website</a> that collects videos of multi-touch applications.</li>
</ul>
  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/faindu.wordpress.com/114/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/faindu.wordpress.com/114/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/faindu.wordpress.com/114/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/faindu.wordpress.com/114/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/faindu.wordpress.com/114/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/faindu.wordpress.com/114/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/faindu.wordpress.com/114/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/faindu.wordpress.com/114/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/faindu.wordpress.com/114/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/faindu.wordpress.com/114/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=faindu.wordpress.com&blog=1162752&post=114&subd=faindu&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://faindu.wordpress.com/2008/11/26/multitouch-for-adobe-flex-introduction-in-hardware-and-software/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/582666799ef62ea0c299f6a488d32068?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Marc</media:title>
		</media:content>

		<media:content url="http://img.youtube.com/vi/1ftJhDBZqss/2.jpg" medium="image" />
	</item>
	</channel>
</rss>