<?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: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:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:creativeCommons="http://backend.userland.com/creativeCommonsRssModule" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0">

<channel>
	<title>Mrinal Wadhwa</title>
	
	<link>http://weblog.mrinalwadhwa.com</link>
	<description>en route to a richer Internet</description>
	<lastBuildDate>Sun, 28 Feb 2010 09:39:58 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.4</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/rss+xml" href="http://feeds.feedburner.com/mrinalwadhwa/ragstoriches" /><feedburner:info uri="mrinalwadhwa/ragstoriches" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><geo:lat>12.935042</geo:lat><geo:long>77.628740</geo:long><creativeCommons:license>http://creativecommons.org/licenses/by/2.5/</creativeCommons:license><image><link>http://creativecommons.org/licenses/by/2.5/</link><url>http://creativecommons.org/images/public/somerights20.gif</url><title>Some Rights Reserved</title></image><feedburner:emailServiceId>mrinalwadhwa/ragstoriches</feedburner:emailServiceId><feedburner:feedburnerHostname>http://feedburner.google.com</feedburner:feedburnerHostname><feedburner:feedFlare href="http://add.my.yahoo.com/rss?url=http%3A%2F%2Ffeeds.feedburner.com%2Fmrinalwadhwa%2Fragstoriches" src="http://us.i1.yimg.com/us.yimg.com/i/us/my/addtomyyahoo4.gif">Subscribe with My Yahoo!</feedburner:feedFlare><feedburner:feedFlare href="http://www.newsgator.com/ngs/subscriber/subext.aspx?url=http%3A%2F%2Ffeeds.feedburner.com%2Fmrinalwadhwa%2Fragstoriches" src="http://www.newsgator.com/images/ngsub1.gif">Subscribe with NewsGator</feedburner:feedFlare><feedburner:feedFlare href="http://feeds.my.aol.com/add.jsp?url=http%3A%2F%2Ffeeds.feedburner.com%2Fmrinalwadhwa%2Fragstoriches" src="http://o.aolcdn.com/favorites.my.aol.com/webmaster/ffclient/webroot/locale/en-US/images/myAOLButtonSmall.gif">Subscribe with My AOL</feedburner:feedFlare><feedburner:feedFlare href="http://www.bloglines.com/sub/http://feeds.feedburner.com/mrinalwadhwa/ragstoriches" src="http://www.bloglines.com/images/sub_modern11.gif">Subscribe with Bloglines</feedburner:feedFlare><feedburner:feedFlare href="http://www.netvibes.com/subscribe.php?url=http%3A%2F%2Ffeeds.feedburner.com%2Fmrinalwadhwa%2Fragstoriches" src="http://www.netvibes.com/img/add2netvibes.gif">Subscribe with Netvibes</feedburner:feedFlare><feedburner:feedFlare href="http://fusion.google.com/add?feedurl=http%3A%2F%2Ffeeds.feedburner.com%2Fmrinalwadhwa%2Fragstoriches" src="http://buttons.googlesyndication.com/fusion/add.gif">Subscribe with Google</feedburner:feedFlare><feedburner:feedFlare href="http://www.pageflakes.com/subscribe.aspx?url=http%3A%2F%2Ffeeds.feedburner.com%2Fmrinalwadhwa%2Fragstoriches" src="http://www.pageflakes.com/ImageFile.ashx?instanceId=Static_4&amp;fileName=ATP_blu_91x17.gif">Subscribe with Pageflakes</feedburner:feedFlare><feedburner:feedFlare href="http://www.plusmo.com/add?url=http%3A%2F%2Ffeeds.feedburner.com%2Fmrinalwadhwa%2Fragstoriches" src="http://plusmo.com/res/graphics/fbplusmo.gif">Subscribe with Plusmo</feedburner:feedFlare><feedburner:feedFlare href="http://www.live.com/?add=http%3A%2F%2Ffeeds.feedburner.com%2Fmrinalwadhwa%2Fragstoriches" src="http://tkfiles.storage.msn.com/x1piYkpqHC_35nIp1gLE68-wvzLZO8iXl_JMledmJQXP-XTBOLfmQv4zhj4MhcWEJh_GtoBIiAl1Mjh-ndp9k47If7hTaFno0mxW9_i3p_5qQw">Subscribe with Live.com</feedburner:feedFlare><feedburner:feedFlare href="http://www.yourminis.com/subscribe.aspx?u=http%3A%2F%2Ffeeds.feedburner.com%2Fmrinalwadhwa%2Fragstoriches" src="http://www.yourminis.com/images/addtoyourminisbadge.gif">Subscribe with Yourminis.com</feedburner:feedFlare><item>
		<title>Magic in Graphs</title>
		<link>http://feedproxy.google.com/~r/mrinalwadhwa/ragstoriches/~3/wVti8Ap_4GU/</link>
		<comments>http://weblog.mrinalwadhwa.com/2010/02/28/magic-in-graphs/#comments</comments>
		<pubDate>Sun, 28 Feb 2010 09:36:07 +0000</pubDate>
		<dc:creator>Mrinal Wadhwa</dc:creator>
				<category><![CDATA[RIA]]></category>
		<category><![CDATA[Visualization]]></category>
		<category><![CDATA[1939]]></category>
		<category><![CDATA[book]]></category>
		<category><![CDATA[charts]]></category>
		<category><![CDATA[data visualization]]></category>
		<category><![CDATA[Graphic Presentation]]></category>
		<category><![CDATA[graphs]]></category>
		<category><![CDATA[Henry D. Hubbard]]></category>
		<category><![CDATA[Williard C. Brinton]]></category>

		<guid isPermaLink="false">http://weblog.mrinalwadhwa.com/?p=1384</guid>
		<description>&lt;p&gt;I found a &lt;a href="http://www.archive.org/stream/graphicpresentat00brinrich#page/n0/mode/2up"&gt;digital copy&lt;/a&gt; of Williard C. Brinton&amp;#8217;s 1939 book &lt;strong&gt;&amp;#8220;Graphic Presentation&amp;#8221;&lt;/strong&gt; via &lt;a href="http://twitter.com/mrinal/status/9717416581"&gt;twitter&lt;/a&gt; and as I read through the book, it amazed me how little our data visualization techniques have evolved since Brinton wrote the book 70+ years ago. What was even more fascinating was this quote from the preface to the book by Henry D. Hubbard who worked for the U.S, National Bureau of Standards &amp;#8230;   &lt;/p&gt;
&lt;blockquote&gt;&lt;p&gt;&amp;#8220;There is a magic in graphs. The profile of a curve reveals in a flash a whole situation —the life history of an epidemic, a panic, or an era of prosperity. &lt;strong&gt;The curve informs the mind, awakens the imagination, convinces.&lt;/strong&gt;&amp;#8221;  &lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&amp;#8211; Henry D. Hubbard&lt;/strong&gt;&lt;/p&gt;&lt;/blockquote&gt;
&lt;p&gt;These words so aptly describe the power of visualizing data.&lt;/p&gt;
&lt;p&gt;Here are some interesting snapshots from &lt;a href="http://www.archive.org/stream/graphicpresentat00brinrich#page/n0/mode/2up"&gt;the book&lt;/a&gt;, which I highly recommend checking out &amp;#8230;&lt;/p&gt;
&lt;p&gt;&lt;img src="http://weblog.mrinalwadhwa.com/wp-content/uploads/2010/02/graphic_presentation_4.png" alt="snapshot from Williard C. Brinton's 1939 book Graphic Presentation" width="100%" /&gt;&lt;br /&gt;
&lt;img src="http://weblog.mrinalwadhwa.com/wp-content/uploads/2010/02/william_playfair.png" alt="William Playfair - first exponent for graphic charts" width="100%" /&gt;&lt;br /&gt;
&lt;img src="http://weblog.mrinalwadhwa.com/wp-content/uploads/2010/02/graphic_presentation_1.png" alt="snapshot from Williard C. Brinton's 1939 book Graphic Presentation" width="100%" /&gt;&lt;br /&gt;
&lt;img src="http://weblog.mrinalwadhwa.com/wp-content/uploads/2010/02/graphic_presentation_2.png" alt="snapshot from Williard C. Brinton's 1939 book Graphic Presentation" width="100%" /&gt;&lt;br /&gt;
&lt;img src="http://weblog.mrinalwadhwa.com/wp-content/uploads/2010/02/graphic_presentation_3.png" alt="snapshot from Williard C. Brinton's 1939 book Graphic Presentation" width="100%" /&gt;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/mrinalwadhwa/ragstoriches?a=wVti8Ap_4GU:91QrUqEu334:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/mrinalwadhwa/ragstoriches?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/mrinalwadhwa/ragstoriches?a=wVti8Ap_4GU:91QrUqEu334:2mJPEYqXBVI"&gt;&lt;img src="http://feeds.feedburner.com/~ff/mrinalwadhwa/ragstoriches?d=2mJPEYqXBVI" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/mrinalwadhwa/ragstoriches?a=wVti8Ap_4GU:91QrUqEu334:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/mrinalwadhwa/ragstoriches?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/mrinalwadhwa/ragstoriches/~4/wVti8Ap_4GU" height="1" width="1"/&gt;</description>
		<wfw:commentRss>http://weblog.mrinalwadhwa.com/2010/02/28/magic-in-graphs/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		<feedburner:origLink>http://weblog.mrinalwadhwa.com/2010/02/28/magic-in-graphs/</feedburner:origLink></item>
		<item>
		<title>Erlang Web Server Benchmarks</title>
		<link>http://feedproxy.google.com/~r/mrinalwadhwa/ragstoriches/~3/pEijnmNj-tI/</link>
		<comments>http://weblog.mrinalwadhwa.com/2010/02/12/erlang-web-server-benchmarks/#comments</comments>
		<pubDate>Fri, 12 Feb 2010 04:58:04 +0000</pubDate>
		<dc:creator>Mrinal Wadhwa</dc:creator>
				<category><![CDATA[Erlang]]></category>
		<category><![CDATA[application]]></category>
		<category><![CDATA[Design]]></category>
		<category><![CDATA[Flash]]></category>
		<category><![CDATA[Flex]]></category>
		<category><![CDATA[framework]]></category>
		<category><![CDATA[webapp]]></category>

		<guid isPermaLink="false">http://weblog.mrinalwadhwa.com/?p=1362</guid>
		<description>&lt;p&gt;Over the last few weeks I&amp;#8217;ve been writing a server side web application framework for Erlang. Essentially, I looked at various available erlang frameworks like &lt;a href="http://bitbucket.org/justin/webmachine/wiki/Home"&gt;WebMachine&lt;/a&gt;, &lt;a href="http://nitrogenproject.com/"&gt;Nitrogen&lt;/a&gt;, &lt;a href="http://github.com/davebryson/beepbeep"&gt;BeepBeep&lt;/a&gt;, &lt;a href="http://yaws.hyber.org/"&gt;Yaws&lt;/a&gt;, &lt;a href="http://erlyweb.org/"&gt;ErlyWeb&lt;/a&gt; etc. and pulled out and assembled my own little framework with features I needed. I&amp;#8217;ve also been writing an &lt;a href="http://github.com/mrinalwadhwa/eamf"&gt;Erlang library for encoding/decoding AMF&lt;/a&gt; which will help me add some interesting Flash/Flex specific features to this framework.    &lt;/p&gt;
&lt;p&gt;Among other things this framework provides web server library specific request/response format abstraction similar to &lt;a href="http://github.com/rklophaus/SimpleBridge"&gt;SimpleBridge&lt;/a&gt;, A Django templates implementation using &lt;a href="http://code.google.com/p/erlydtl/"&gt;ErlyDTL&lt;/a&gt;, an MVC implementation inspired from ErlyWeb and a lot more. Even with all this functionality I&amp;#8217;m quite happy with the performance we&amp;#8217;re able to achieve, so I thought I&amp;#8217;d share some benchmarks with everyone.&lt;/p&gt;
&lt;p&gt;Since the framework completely abstracts out the web server library used, I was able to try out various web options, but I think we&amp;#8217;ll stick with &lt;a href="http://code.google.com/p/misultin/"&gt;Misultin&lt;/a&gt; for our production enviornment since it seems to perform significantly better than other implementations. Here are the results of running &lt;a href="http://www.xenoclast.org/autobench/"&gt;AutoBench&lt;/a&gt; on our framework powered by Misultin. &lt;/p&gt;
&lt;p&gt;The server was running on an m1.large amazon instance running ubuntu and the tests was run from an m1.small amazon instance.&lt;/p&gt;
&lt;p&gt;&lt;code&gt;&lt;br /&gt;
$ autobench --single_host --host1 xyz.com  --quiet --low_rate 20 --high_rate 200 --rate_step 20 --num_call 100 -num_conn 5000 --timeout 5 --file results.tsv&lt;br /&gt;
&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src="http://weblog.mrinalwadhwa.com/wp-content/uploads/2010/02/Picture-2.png" alt="Misultin-Autobench" title="Misultin-Autobench" width="640" height="440" class="alignnone size-full wp-image-1363" /&gt;&lt;br /&gt;
&lt;!--more--&gt;&lt;br /&gt;
Here are some more tests using a different tool &lt;a href="http://httpd.apache.org/docs/2.0/programs/ab.html"&gt;Apache Bench&lt;/a&gt;&lt;br /&gt;
&lt;code&gt;&lt;br /&gt;
$ ab -k -n 500000 -c 1000 http://xyz.com/&lt;/p&gt;
&lt;p&gt;Document Path:          /&lt;br /&gt;
Document Length:        27 bytes&lt;/p&gt;
&lt;p&gt;Concurrency Level:      1000&lt;br /&gt;
Time taken for tests:   39.937 seconds&lt;br /&gt;
Complete requests:      500000&lt;br /&gt;
Failed requests:        0&lt;br /&gt;
Write errors:           0&lt;br /&gt;
Keep-Alive requests:    500000&lt;br /&gt;
Total transferred:      57510350 bytes&lt;br /&gt;
HTML transferred:       13502430 bytes&lt;br /&gt;
Requests per second:   &lt;strong&gt; 12519.82 [#/sec] (mean)&lt;/strong&gt;&lt;br /&gt;
Time per request:       &lt;strong&gt;79.873 [ms] (mean)&lt;/strong&gt;&lt;br /&gt;
Time per request:       0.080 [ms] (mean, across all concurrent requests)&lt;br /&gt;
Transfer rate:          1406.29 [Kbytes/sec] received&lt;/p&gt;
&lt;p&gt;Connection Times (ms)&lt;br /&gt;
              min  mean[+/-sd] median   max&lt;br /&gt;
Connect:        0    2  71.8      0    3005&lt;br /&gt;
Processing:     1   78  25.9     77     732&lt;br /&gt;
Waiting:        1   78  25.9     77     732&lt;br /&gt;
Total:          1   80  79.3     77    3427&lt;/p&gt;
&lt;p&gt;Percentage of the requests served within a certain time (ms)&lt;br /&gt;
  50%     77&lt;br /&gt;
  66%     87&lt;br /&gt;
  75%     94&lt;br /&gt;
  80%     98&lt;br /&gt;
  90%    110&lt;br /&gt;
  95%    119&lt;br /&gt;
  98%    132&lt;br /&gt;
  99%    144&lt;br /&gt;
 100%   3427 (longest request)&lt;/p&gt;
&lt;p&gt;&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;Running the ab test without the keep alive (-k) option, causes the request rate to fall drastically to around the 3600 r/sec level but looking at the &lt;a href="http://www.tornadoweb.org/documentation#performance"&gt;Tornado performance tests here&lt;/a&gt;, 3600 seems reasonably good. I haven&amp;#8217;t tried adding &lt;a href="http://nginx.org/"&gt;nginx&lt;/a&gt; similar to that &lt;a href="http://www.tornadoweb.org/documentation#performance"&gt;Tornado setup&lt;/a&gt;, not sure if that would help.&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/mrinalwadhwa/ragstoriches?a=pEijnmNj-tI:-FIIjhQltIE:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/mrinalwadhwa/ragstoriches?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/mrinalwadhwa/ragstoriches?a=pEijnmNj-tI:-FIIjhQltIE:2mJPEYqXBVI"&gt;&lt;img src="http://feeds.feedburner.com/~ff/mrinalwadhwa/ragstoriches?d=2mJPEYqXBVI" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/mrinalwadhwa/ragstoriches?a=pEijnmNj-tI:-FIIjhQltIE:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/mrinalwadhwa/ragstoriches?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/mrinalwadhwa/ragstoriches/~4/pEijnmNj-tI" height="1" width="1"/&gt;</description>
		<wfw:commentRss>http://weblog.mrinalwadhwa.com/2010/02/12/erlang-web-server-benchmarks/feed/</wfw:commentRss>
		<slash:comments>13</slash:comments>
		<feedburner:origLink>http://weblog.mrinalwadhwa.com/2010/02/12/erlang-web-server-benchmarks/</feedburner:origLink></item>
		<item>
		<title>An Introduction to Rich Internet Applications</title>
		<link>http://feedproxy.google.com/~r/mrinalwadhwa/ragstoriches/~3/-o6JRzA8YI0/</link>
		<comments>http://weblog.mrinalwadhwa.com/2010/01/24/an-introduction-to-rich-internet-applications/#comments</comments>
		<pubDate>Sat, 23 Jan 2010 20:48:19 +0000</pubDate>
		<dc:creator>Mrinal Wadhwa</dc:creator>
				<category><![CDATA[Flex]]></category>
		<category><![CDATA[RIA]]></category>
		<category><![CDATA[acm]]></category>
		<category><![CDATA[compute]]></category>
		<category><![CDATA[compute2010]]></category>
		<category><![CDATA[Flash]]></category>
		<category><![CDATA[flash player]]></category>
		<category><![CDATA[rich internet applications]]></category>

		<guid isPermaLink="false">http://weblog.mrinalwadhwa.com/?p=1334</guid>
		<description>&lt;p&gt;I had the opportunity to present a 4.5 hr lecture on &lt;strong&gt;Building Rich Internet Applications&lt;/strong&gt; at &lt;a href="http://compute.acmbangalore.org/"&gt;ACM&amp;#8217;s Compute 2010&lt;/a&gt; today. We started out by defining &lt;a href="http://weblog.mrinalwadhwa.com/2008/10/24/what-is-an-ria/"&gt;what an RIA is&lt;/a&gt; and exploring the various RIA platforms available, we then further explored the Flash Platform in more detail, wrote some &lt;a href="http://github.com/mrinalwadhwa/flash-player-internals"&gt;experimental code&lt;/a&gt; to understand the internals of Flash Player, looked at Flex 4 and its various new features and also spent some time understanding the &lt;a href="http://weblog.mrinalwadhwa.com/2009/12/01/custom-components-in-flex-4/"&gt;Flex Component Lifecycle&lt;/a&gt; &lt;/p&gt;
&lt;p&gt;Here&amp;#8217;s the slide deck from beginning of the lecture which tries to define what an RIA is and explores the architecture a typical RIA platform &amp;#8230;&lt;/p&gt;
&lt;div style="width:640px;text-align:left" id="__ss_2978421"&gt;&lt;object style="margin:0px" width="640" height="535"&gt;&lt;param name="movie" value="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=anintroductiontorichinternetapllications-100123132503-phpapp01&amp;#038;rel=0&amp;#038;stripped_title=an-introduction-to-rich-internet-apllications" /&gt;&lt;param name="allowFullScreen" value="true"/&gt;&lt;param name="allowScriptAccess" value="always"/&gt;&lt;embed src="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=anintroductiontorichinternetapllications-100123132503-phpapp01&amp;#038;rel=0&amp;#038;stripped_title=an-introduction-to-rich-internet-apllications" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="640" height="535"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;/div&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/mrinalwadhwa/ragstoriches?a=-o6JRzA8YI0:fRNzduIlrz4:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/mrinalwadhwa/ragstoriches?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/mrinalwadhwa/ragstoriches?a=-o6JRzA8YI0:fRNzduIlrz4:2mJPEYqXBVI"&gt;&lt;img src="http://feeds.feedburner.com/~ff/mrinalwadhwa/ragstoriches?d=2mJPEYqXBVI" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/mrinalwadhwa/ragstoriches?a=-o6JRzA8YI0:fRNzduIlrz4:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/mrinalwadhwa/ragstoriches?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/mrinalwadhwa/ragstoriches/~4/-o6JRzA8YI0" height="1" width="1"/&gt;</description>
		<wfw:commentRss>http://weblog.mrinalwadhwa.com/2010/01/24/an-introduction-to-rich-internet-applications/feed/</wfw:commentRss>
		<slash:comments>15</slash:comments>
		<feedburner:origLink>http://weblog.mrinalwadhwa.com/2010/01/24/an-introduction-to-rich-internet-applications/</feedburner:origLink></item>
		<item>
		<title>Going Commando in Flash Builder</title>
		<link>http://feedproxy.google.com/~r/mrinalwadhwa/ragstoriches/~3/ouxALJ1cn0U/</link>
		<comments>http://weblog.mrinalwadhwa.com/2009/12/03/going-commando-in-flash-builder/#comments</comments>
		<pubDate>Thu, 03 Dec 2009 01:49:35 +0000</pubDate>
		<dc:creator>Mrinal Wadhwa</dc:creator>
				<category><![CDATA[Flex]]></category>
		<category><![CDATA[RIA]]></category>
		<category><![CDATA[cfeclipse]]></category>
		<category><![CDATA[commando]]></category>
		<category><![CDATA[flash builder]]></category>
		<category><![CDATA[flex builder]]></category>
		<category><![CDATA[flexbuilder]]></category>
		<category><![CDATA[keyboard]]></category>
		<category><![CDATA[mouse]]></category>
		<category><![CDATA[shortcuts]]></category>
		<category><![CDATA[snippets]]></category>
		<category><![CDATA[sniptreeview]]></category>
		<category><![CDATA[textmate]]></category>

		<guid isPermaLink="false">http://weblog.mrinalwadhwa.com/?p=1286</guid>
		<description>&lt;p&gt;Along with the &lt;a href="http://weblog.mrinalwadhwa.com/2009/12/01/custom-components-in-flex-4/"&gt;Custom Components in Flex 4&lt;/a&gt; presentation I shared yesterday, I also gave a 15 minute lightening talk at &lt;a href="endtoend.in/apps/forms/adobe/DevSummitNovDec09/home.html"&gt;Adobe DevSummit&lt;/a&gt; on &lt;strong&gt;Keyboard Productivity in Flash Builder&lt;/strong&gt;, this was just a quick show and tell where I walked people through various ways of what &lt;a href="http://www.codinghorror.com/"&gt;Jeff Atwood&lt;/a&gt; calls &lt;a href="http://www.codinghorror.com/blog/archives/000825.html"&gt;Going Commando&lt;/a&gt; &amp;#8230;&lt;!--more--&gt;&lt;/p&gt;
&lt;p&gt;
&lt;h4&gt;Shortcuts&lt;/h4&gt;
&lt;p&gt;Here are some Flash Builder Keyboard shortcuts I use very frequently, if you have suggestions on others that are especially handy, please let me know &amp;#8230;  &lt;/p&gt;
&lt;table border="0" width="100%"&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;CMD + 3&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;- &lt;a href="http://en.wikipedia.org/wiki/Swiss_Army_knife"&gt;the swiss knife&lt;/a&gt; of a commando, jump to anywhere inside eclipse&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;CMD + SHIFT + T&lt;/strong&gt; &lt;/td&gt;
&lt;td&gt;- find type&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;CMD + SHIFT + R&lt;/strong&gt; &lt;/td&gt;
&lt;td&gt;- find resource&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;CMD + O&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;- find/jump within class&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;CMD + E&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;- switch editors (CMD 3 also works for this)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;CMD + D&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;- delete line which has cursor, without having to select&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;ALT + Up/Down Arrows&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;- Move Line/Selection Up/Down&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;ALT + CMD + Up/Down Arrows&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;- Copy Line/Selection Up/Down&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;CMD + W&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;- Close tab&lt;/td&gt;
&lt;/tr&gt;
&lt;/table&gt;
&lt;p&gt;&lt;em&gt;* CMD on OSX = CTRL on Windows&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;
&lt;h4&gt;Customize&lt;/h4&gt;
&lt;p&gt;If you press CMD+3 and type &amp;#8220;keys&amp;#8221;, you&amp;#8217;ll see the keyboard customization preferences panel for Flash Builder, I recommend spending some time customizing Builder for your own needs, for example I use CMD+1 and CMD+2 to switch between Develop/Debug perspectives. I barely use the NumPad on my keyboard so I&amp;#8217;ve customized it to be all keyboard shortcuts, pressing CMD+0 inserts snippets &lt;/p&gt;
&lt;p&gt;
&lt;h4&gt;Snippets&lt;/h4&gt;
&lt;p&gt;Having a good snippets plugin can greatly improve a developer&amp;#8217;s productivity, I love how Snippets work in &lt;a href="http://macromates.com/"&gt;TextMate&lt;/a&gt;, I&amp;#8217;m still searching for a good solution for this in Flash Builder, till now I&amp;#8217;ve been using &lt;a href="http://www.andymcintosh.com/?p=116"&gt;CFEclipse&amp;#8217;s SnipTreeView&lt;/a&gt; but the problem is it only works with AS3 code and can&amp;#8217;t handle MXML. I was so desperate one day that I figured out that it fails because  the CFEclipse &lt;a href="http://trac.cfeclipse.org/browser/org.cfeclipse.cfml/trunk/src/org/cfeclipse/cfml/editors/actions/InsertSnippetAction.java"&gt;InsertSnippetAction class on Line No 71&lt;/a&gt; assumes that the editor is an ITextEditor, while this is true for most Eclipse editors, the MXML editor is actually made of 2 editors a Design Editor and an ITextEditor, so the type cast on Line 71 fails &amp;#8230; I never got to building CFEclipse on my own though. But, it looks like &lt;a href="http://theflashblog.com/"&gt;Lee Brimelow&lt;/a&gt; did, he has released &lt;a href="http://theflashblog.com/?p=1494"&gt;a fix which makes SnipTreeView work&lt;/a&gt; with MXML editor, unfortunately though Lee&amp;#8217;s fix doesn&amp;#8217;t work for me because of a Java version issue on OSX Leopard.        &lt;/p&gt;
&lt;p&gt;Another handy Mac only tool is &lt;a href="http://www.smileonmymac.com/TextExpander/"&gt;TextExpander&lt;/a&gt;. It sometimes breaks your formatting in eclipse, but that has gotten better with Flash Builders new auto formatting improvements.
&lt;/p&gt;
&lt;p&gt;
&lt;h4&gt;Multi Clipboard&lt;/h4&gt;
&lt;p&gt;A multi-clipboard tool is another must have for all developers, I use &lt;a href="http://jumpcut.sourceforge.net/"&gt;Jumpcut&lt;/a&gt; on OSX and it is a big big productivity boost to not have switch between files and applications when copying and pasting. I don&amp;#8217;t know any good equivalent for Windows, so if you know of one, please let me know. &lt;/p&gt;
&lt;p&gt;Finally, I have to thank &lt;a href="http://www.riageeks.com/"&gt;Chetan Sachdev&lt;/a&gt; because he got me hooked to optimizing my workflow using the keyboard while we were working together on a project earlier this year.
&lt;/p&gt;
&lt;p&gt;I would love to know if you have any other handy tips on Going Commando. &lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/mrinalwadhwa/ragstoriches?a=ouxALJ1cn0U:Ww3KFRF5hsU:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/mrinalwadhwa/ragstoriches?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/mrinalwadhwa/ragstoriches?a=ouxALJ1cn0U:Ww3KFRF5hsU:2mJPEYqXBVI"&gt;&lt;img src="http://feeds.feedburner.com/~ff/mrinalwadhwa/ragstoriches?d=2mJPEYqXBVI" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/mrinalwadhwa/ragstoriches?a=ouxALJ1cn0U:Ww3KFRF5hsU:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/mrinalwadhwa/ragstoriches?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/mrinalwadhwa/ragstoriches/~4/ouxALJ1cn0U" height="1" width="1"/&gt;</description>
		<wfw:commentRss>http://weblog.mrinalwadhwa.com/2009/12/03/going-commando-in-flash-builder/feed/</wfw:commentRss>
		<slash:comments>14</slash:comments>
		<feedburner:origLink>http://weblog.mrinalwadhwa.com/2009/12/03/going-commando-in-flash-builder/</feedburner:origLink></item>
		<item>
		<title>Custom Components in Flex 4</title>
		<link>http://feedproxy.google.com/~r/mrinalwadhwa/ragstoriches/~3/KOxedAWI_KY/</link>
		<comments>http://weblog.mrinalwadhwa.com/2009/12/01/custom-components-in-flex-4/#comments</comments>
		<pubDate>Tue, 01 Dec 2009 11:21:21 +0000</pubDate>
		<dc:creator>Mrinal Wadhwa</dc:creator>
				<category><![CDATA[Flex]]></category>
		<category><![CDATA[RIA]]></category>
		<category><![CDATA[adobe]]></category>
		<category><![CDATA[components]]></category>
		<category><![CDATA[custom components]]></category>
		<category><![CDATA[flex4]]></category>
		<category><![CDATA[halo]]></category>
		<category><![CDATA[spark]]></category>

		<guid isPermaLink="false">http://weblog.mrinalwadhwa.com/?p=1252</guid>
		<description>&lt;p&gt;I gave a presentation on &lt;strong&gt;Custom Components in Flex 4&lt;/strong&gt; at &lt;a href="http://endtoend.in/apps/forms/adobe/DevSummitNovDec09/home.html"&gt;Adobe Devsummit&lt;/a&gt; last week in Chennai and today in Hyderabad, here&amp;#8217;s the slidedeck where we create an &lt;a href="http://en.wikipedia.org/wiki/Imperial_stormtrooper"&gt;Imperial StormTrooper&lt;/a&gt; component&lt;/p&gt;
&lt;div style="width:640px;text-align:left" id="__ss_2622384"&gt;&lt;object style="margin:0px" width="640" height="535"&gt;&lt;param name="movie" value="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=customcomponentsinflex4-091201050800-phpapp02&amp;#038;stripped_title=custom-components-in-flex-4" /&gt;&lt;param name="allowFullScreen" value="true"/&gt;&lt;param name="allowScriptAccess" value="always"/&gt;&lt;embed src="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=customcomponentsinflex4-091201050800-phpapp02&amp;#038;stripped_title=custom-components-in-flex-4" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="640" height="535"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;/div&gt;
&lt;p&gt;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/mrinalwadhwa/ragstoriches?a=KOxedAWI_KY:uDpcNnFnCl8:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/mrinalwadhwa/ragstoriches?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/mrinalwadhwa/ragstoriches?a=KOxedAWI_KY:uDpcNnFnCl8:2mJPEYqXBVI"&gt;&lt;img src="http://feeds.feedburner.com/~ff/mrinalwadhwa/ragstoriches?d=2mJPEYqXBVI" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/mrinalwadhwa/ragstoriches?a=KOxedAWI_KY:uDpcNnFnCl8:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/mrinalwadhwa/ragstoriches?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/mrinalwadhwa/ragstoriches/~4/KOxedAWI_KY" height="1" width="1"/&gt;</description>
		<wfw:commentRss>http://weblog.mrinalwadhwa.com/2009/12/01/custom-components-in-flex-4/feed/</wfw:commentRss>
		<slash:comments>26</slash:comments>
		<feedburner:origLink>http://weblog.mrinalwadhwa.com/2009/12/01/custom-components-in-flex-4/</feedburner:origLink></item>
		<item>
		<title>Flash, Erlang and Realtime Collaborative Interfaces</title>
		<link>http://feedproxy.google.com/~r/mrinalwadhwa/ragstoriches/~3/xWliq2QoYt8/</link>
		<comments>http://weblog.mrinalwadhwa.com/2009/11/28/flash-erlang-and-realtime-collaborative-interfaces/#comments</comments>
		<pubDate>Sat, 28 Nov 2009 02:49:20 +0000</pubDate>
		<dc:creator>Mrinal Wadhwa</dc:creator>
				<category><![CDATA[Erlang]]></category>
		<category><![CDATA[RIA]]></category>
		<category><![CDATA[amf]]></category>
		<category><![CDATA[bangalore]]></category>
		<category><![CDATA[Flash]]></category>
		<category><![CDATA[flash player]]></category>
		<category><![CDATA[Flex]]></category>
		<category><![CDATA[SAP]]></category>
		<category><![CDATA[sapteched09]]></category>
		<category><![CDATA[teched]]></category>

		<guid isPermaLink="false">http://weblog.mrinalwadhwa.com/?p=1215</guid>
		<description>&lt;p&gt;I&amp;#8217;ve been learning &lt;a href="http://www.erlang.org/"&gt;Erlang&lt;/a&gt; for the past few weeks and loving the simplicity and beauty of the language. As part of &lt;a href="http://www.sdn.sap.com/irj/scn/weblogs?blog=/pub/wlg/16881"&gt;a discussion at SAP TechEd&lt;/a&gt;, last week, I ended up creating a simple, rather rudimentary prototype of a realtime messaging server that enables collaborative user interfaces where multiple users can simultaneously work with the same interface &amp;#8230; &lt;/p&gt;
&lt;p&gt;Here&amp;#8217;s a video of the code in action &amp;#8230; &lt;/p&gt;
&lt;p&gt;&lt;embed src="http://blip.tv/play/AYGysw4C" type="application/x-shockwave-flash" width="650" height="396" allowscriptaccess="always" allowfullscreen="true"&gt;&lt;/embed&gt; &lt;/p&gt;
&lt;p&gt;As you watch the above video, note as I drag a rectangle in any one Flash application, its sends AMF encoded binary messages to the server and the server multicasts these messages to other connected clients and those clients update in almost realtime. While in the example above all the application instances are running on the same system, they could just as easily be running on different systems and still communicate via the server.&lt;/p&gt;
&lt;p&gt;Here the code for the Erlang server &amp;#8230;&lt;/p&gt;
&lt;pre&gt;
&lt;span style="color:#90a729"&gt;0001 &lt;/span&gt;&lt;span style="color:#0000de"&gt;-&lt;/span&gt;&lt;span style="color:#000000; font-weight:bold"&gt;module&lt;/span&gt;&lt;span style="color:#0000de"&gt;(&lt;/span&gt;server&lt;span style="color:#0000de"&gt;)&lt;/span&gt;.
&lt;span style="color:#90a729"&gt;0002 &lt;/span&gt;&lt;span style="color:#0000de"&gt;-&lt;/span&gt;&lt;span style="color:#000000; font-weight:bold"&gt;export&lt;/span&gt;&lt;span style="color:#0000de"&gt;([&lt;/span&gt;start&lt;span style="color:#0000de"&gt;/&lt;/span&gt;&lt;span style="color:#0da344"&gt;1&lt;/span&gt;&lt;span style="color:#0000de"&gt;,&lt;/span&gt;stop&lt;span style="color:#0000de"&gt;/&lt;/span&gt;&lt;span style="color:#0da344"&gt;0&lt;/span&gt;&lt;span style="color:#0000de"&gt;])&lt;/span&gt;.
&lt;span style="color:#90a729"&gt;0003 &lt;/span&gt;
&lt;span style="color:#90a729"&gt;0004 &lt;/span&gt;&lt;span style="color:#0000de"&gt;-&lt;/span&gt;&lt;span style="color:#000000; font-weight:bold"&gt;define&lt;/span&gt;&lt;span style="color:#0000de"&gt;(&lt;/span&gt;TCP_OPTIONS&lt;span style="color:#0000de"&gt;,[&lt;/span&gt;&lt;span style="color:#c42638; font-weight:bold"&gt;binary&lt;/span&gt;&lt;span style="color:#0000de"&gt;,&lt;/span&gt;
&lt;span style="color:#90a729"&gt;0005 &lt;/span&gt;                     &lt;span style="color:#0000de"&gt;{&lt;/span&gt;packet&lt;span style="color:#0000de"&gt;,&lt;/span&gt; &lt;span style="color:#0da344"&gt;0&lt;/span&gt;&lt;span style="color:#0000de"&gt;},&lt;/span&gt;
&lt;span style="color:#90a729"&gt;0006 &lt;/span&gt;                     &lt;span style="color:#0000de"&gt;{&lt;/span&gt;active&lt;span style="color:#0000de"&gt;,&lt;/span&gt; false&lt;span style="color:#0000de"&gt;},&lt;/span&gt;
&lt;span style="color:#90a729"&gt;0007 &lt;/span&gt;                     &lt;span style="color:#0000de"&gt;{&lt;/span&gt;reuseaddr&lt;span style="color:#0000de"&gt;,&lt;/span&gt; true&lt;span style="color:#0000de"&gt;}])&lt;/span&gt;.
&lt;span style="color:#90a729"&gt;0008 &lt;/span&gt;
&lt;span style="color:#90a729"&gt;0009 &lt;/span&gt;&lt;span style="color:#000000; font-weight:bold"&gt;start&lt;/span&gt;&lt;span style="color:#0000de"&gt;(&lt;/span&gt;Port&lt;span style="color:#0000de"&gt;) -&amp;gt;&lt;/span&gt;
&lt;span style="color:#90a729"&gt;0010 &lt;/span&gt;	 Pid &lt;span style="color:#0000de"&gt;=&lt;/span&gt; &lt;span style="color:#c42638; font-weight:bold"&gt;spawn&lt;/span&gt;&lt;span style="color:#0000de"&gt;(&lt;/span&gt;&lt;span style="color:#0a7f6d; font-weight:bold"&gt;fun&lt;/span&gt;&lt;span style="color:#0000de"&gt;() -&amp;gt;&lt;/span&gt; &lt;span style="color:#000000; font-weight:bold"&gt;manage&lt;/span&gt;&lt;span style="color:#0000de"&gt;([])&lt;/span&gt; &lt;span style="color:#0a7f6d; font-weight:bold"&gt;end&lt;/span&gt;&lt;span style="color:#0000de"&gt;),&lt;/span&gt;
&lt;span style="color:#90a729"&gt;0011 &lt;/span&gt;    &lt;span style="color:#c42638; font-weight:bold"&gt;register&lt;/span&gt;&lt;span style="color:#0000de"&gt;(&lt;/span&gt;client_manager&lt;span style="color:#0000de"&gt;,&lt;/span&gt; Pid&lt;span style="color:#0000de"&gt;),&lt;/span&gt;
&lt;span style="color:#90a729"&gt;0012 &lt;/span&gt;	 &lt;span style="color:#0000de"&gt;{&lt;/span&gt;ok&lt;span style="color:#0000de"&gt;,&lt;/span&gt; Socket&lt;span style="color:#0000de"&gt;} =&lt;/span&gt; gen_tcp&lt;span style="color:#0000de"&gt;:&lt;/span&gt;&lt;span style="color:#000000; font-weight:bold"&gt;listen&lt;/span&gt;&lt;span style="color:#0000de"&gt;(&lt;/span&gt;Port&lt;span style="color:#0000de"&gt;,&lt;/span&gt; ?TCP_OPTIONS&lt;span style="color:#0000de"&gt;),&lt;/span&gt;
&lt;span style="color:#90a729"&gt;0013 &lt;/span&gt;    &lt;span style="color:#000000; font-weight:bold"&gt;accept&lt;/span&gt;&lt;span style="color:#0000de"&gt;(&lt;/span&gt;Socket&lt;span style="color:#0000de"&gt;)&lt;/span&gt;.
&lt;span style="color:#90a729"&gt;0014 &lt;/span&gt;
&lt;span style="color:#90a729"&gt;0015 &lt;/span&gt;&lt;span style="color:#000000; font-weight:bold"&gt;stop&lt;/span&gt;&lt;span style="color:#0000de"&gt;() -&amp;gt;&lt;/span&gt; todo.
&lt;span style="color:#90a729"&gt;0016 &lt;/span&gt;
&lt;span style="color:#90a729"&gt;0017 &lt;/span&gt;&lt;span style="color:#000000; font-weight:bold"&gt;accept&lt;/span&gt;&lt;span style="color:#0000de"&gt;(&lt;/span&gt;Socket&lt;span style="color:#0000de"&gt;) -&amp;gt;&lt;/span&gt;
&lt;span style="color:#90a729"&gt;0018 &lt;/span&gt;  	 &lt;span style="color:#0000de"&gt;{&lt;/span&gt;ok&lt;span style="color:#0000de"&gt;,&lt;/span&gt; NewSocket&lt;span style="color:#0000de"&gt;} =&lt;/span&gt; gen_tcp&lt;span style="color:#0000de"&gt;:&lt;/span&gt;&lt;span style="color:#000000; font-weight:bold"&gt;accept&lt;/span&gt;&lt;span style="color:#0000de"&gt;(&lt;/span&gt;Socket&lt;span style="color:#0000de"&gt;),&lt;/span&gt;
&lt;span style="color:#90a729"&gt;0019 &lt;/span&gt;    &lt;span style="color:#c42638; font-weight:bold"&gt;spawn&lt;/span&gt;&lt;span style="color:#0000de"&gt;(&lt;/span&gt;&lt;span style="color:#0a7f6d; font-weight:bold"&gt;fun&lt;/span&gt;&lt;span style="color:#0000de"&gt;() -&amp;gt;&lt;/span&gt; &lt;span style="color:#000000; font-weight:bold"&gt;recieve&lt;/span&gt;&lt;span style="color:#0000de"&gt;(&lt;/span&gt;NewSocket&lt;span style="color:#0000de"&gt;)&lt;/span&gt; &lt;span style="color:#0a7f6d; font-weight:bold"&gt;end&lt;/span&gt;&lt;span style="color:#0000de"&gt;),&lt;/span&gt;
&lt;span style="color:#90a729"&gt;0020 &lt;/span&gt;    client_manager &lt;span style="color:#0000de"&gt;! {&lt;/span&gt;connected&lt;span style="color:#0000de"&gt;,&lt;/span&gt; NewSocket&lt;span style="color:#0000de"&gt;},&lt;/span&gt;
&lt;span style="color:#90a729"&gt;0021 &lt;/span&gt;    &lt;span style="color:#000000; font-weight:bold"&gt;accept&lt;/span&gt;&lt;span style="color:#0000de"&gt;(&lt;/span&gt;Socket&lt;span style="color:#0000de"&gt;)&lt;/span&gt;.
&lt;span style="color:#90a729"&gt;0022 &lt;/span&gt;
&lt;span style="color:#90a729"&gt;0023 &lt;/span&gt;&lt;span style="color:#000000; font-weight:bold"&gt;recieve&lt;/span&gt;&lt;span style="color:#0000de"&gt;(&lt;/span&gt;Socket&lt;span style="color:#0000de"&gt;) -&amp;gt;&lt;/span&gt;
&lt;span style="color:#90a729"&gt;0024 &lt;/span&gt;    &lt;span style="color:#0a7f6d; font-weight:bold"&gt;case&lt;/span&gt; gen_tcp&lt;span style="color:#0000de"&gt;:&lt;/span&gt;&lt;span style="color:#000000; font-weight:bold"&gt;recv&lt;/span&gt;&lt;span style="color:#0000de"&gt;(&lt;/span&gt;Socket&lt;span style="color:#0000de"&gt;,&lt;/span&gt; &lt;span style="color:#0da344"&gt;0&lt;/span&gt;&lt;span style="color:#0000de"&gt;)&lt;/span&gt; &lt;span style="color:#0a7f6d; font-weight:bold"&gt;of&lt;/span&gt;
&lt;span style="color:#90a729"&gt;0025 &lt;/span&gt;        &lt;span style="color:#0000de"&gt;{&lt;/span&gt;ok&lt;span style="color:#0000de"&gt;,&lt;/span&gt; Data&lt;span style="color:#0000de"&gt;} -&amp;gt;&lt;/span&gt;
&lt;span style="color:#90a729"&gt;0026 &lt;/span&gt;            client_manager &lt;span style="color:#0000de"&gt;! {&lt;/span&gt;multicast&lt;span style="color:#0000de"&gt;,&lt;/span&gt;Socket&lt;span style="color:#0000de"&gt;,&lt;/span&gt;Data&lt;span style="color:#0000de"&gt;},&lt;/span&gt;
&lt;span style="color:#90a729"&gt;0027 &lt;/span&gt;            &lt;span style="color:#000000; font-weight:bold"&gt;recieve&lt;/span&gt;&lt;span style="color:#0000de"&gt;(&lt;/span&gt;Socket&lt;span style="color:#0000de"&gt;);&lt;/span&gt;
&lt;span style="color:#90a729"&gt;0028 &lt;/span&gt;        &lt;span style="color:#0000de"&gt;{&lt;/span&gt;error&lt;span style="color:#0000de"&gt;,&lt;/span&gt; closed&lt;span style="color:#0000de"&gt;} -&amp;gt;&lt;/span&gt;
&lt;span style="color:#90a729"&gt;0029 &lt;/span&gt; 		 client_manager &lt;span style="color:#0000de"&gt;! {&lt;/span&gt;disconnect&lt;span style="color:#0000de"&gt;,&lt;/span&gt; Socket&lt;span style="color:#0000de"&gt;}&lt;/span&gt;
&lt;span style="color:#90a729"&gt;0030 &lt;/span&gt;    &lt;span style="color:#0a7f6d; font-weight:bold"&gt;end&lt;/span&gt;.
&lt;span style="color:#90a729"&gt;0031 &lt;/span&gt;
&lt;span style="color:#90a729"&gt;0032 &lt;/span&gt;&lt;span style="color:#000000; font-weight:bold"&gt;manage&lt;/span&gt;&lt;span style="color:#0000de"&gt;(&lt;/span&gt;Sockets&lt;span style="color:#0000de"&gt;) -&amp;gt;&lt;/span&gt;
&lt;span style="color:#90a729"&gt;0033 &lt;/span&gt;    &lt;span style="color:#0a7f6d; font-weight:bold"&gt;receive&lt;/span&gt;
&lt;span style="color:#90a729"&gt;0034 &lt;/span&gt;        &lt;span style="color:#0000de"&gt;{&lt;/span&gt;connected&lt;span style="color:#0000de"&gt;,&lt;/span&gt; Socket&lt;span style="color:#0000de"&gt;} -&amp;gt;&lt;/span&gt;
&lt;span style="color:#90a729"&gt;0035 &lt;/span&gt;            NewSockets &lt;span style="color:#0000de"&gt;= [&lt;/span&gt;Socket &lt;span style="color:#0000de"&gt;|&lt;/span&gt; Sockets&lt;span style="color:#0000de"&gt;];&lt;/span&gt;
&lt;span style="color:#90a729"&gt;0036 &lt;/span&gt;        &lt;span style="color:#0000de"&gt;{&lt;/span&gt;disconnected&lt;span style="color:#0000de"&gt;,&lt;/span&gt; Socket&lt;span style="color:#0000de"&gt;} -&amp;gt;&lt;/span&gt;
&lt;span style="color:#90a729"&gt;0037 &lt;/span&gt;            NewSockets &lt;span style="color:#0000de"&gt;=&lt;/span&gt; lists&lt;span style="color:#0000de"&gt;:&lt;/span&gt;&lt;span style="color:#000000; font-weight:bold"&gt;delete&lt;/span&gt;&lt;span style="color:#0000de"&gt;(&lt;/span&gt;Socket&lt;span style="color:#0000de"&gt;,&lt;/span&gt; Sockets&lt;span style="color:#0000de"&gt;);&lt;/span&gt;
&lt;span style="color:#90a729"&gt;0038 &lt;/span&gt;        &lt;span style="color:#0000de"&gt;{&lt;/span&gt;multicast&lt;span style="color:#0000de"&gt;,&lt;/span&gt;Socket&lt;span style="color:#0000de"&gt;,&lt;/span&gt; Data&lt;span style="color:#0000de"&gt;} -&amp;gt;&lt;/span&gt;
&lt;span style="color:#90a729"&gt;0039 &lt;/span&gt;            &lt;span style="color:#000000; font-weight:bold"&gt;multicast&lt;/span&gt;&lt;span style="color:#0000de"&gt;(&lt;/span&gt;Socket&lt;span style="color:#0000de"&gt;,&lt;/span&gt; Sockets&lt;span style="color:#0000de"&gt;,&lt;/span&gt; Data&lt;span style="color:#0000de"&gt;),&lt;/span&gt;
&lt;span style="color:#90a729"&gt;0040 &lt;/span&gt;            NewSockets &lt;span style="color:#0000de"&gt;=&lt;/span&gt; Sockets
&lt;span style="color:#90a729"&gt;0041 &lt;/span&gt;    &lt;span style="color:#0a7f6d; font-weight:bold"&gt;end&lt;/span&gt;&lt;span style="color:#0000de"&gt;,&lt;/span&gt;
&lt;span style="color:#90a729"&gt;0042 &lt;/span&gt;    &lt;span style="color:#000000; font-weight:bold"&gt;manage&lt;/span&gt;&lt;span style="color:#0000de"&gt;(&lt;/span&gt;NewSockets&lt;span style="color:#0000de"&gt;)&lt;/span&gt;.
&lt;span style="color:#90a729"&gt;0043 &lt;/span&gt;
&lt;span style="color:#90a729"&gt;0044 &lt;/span&gt;&lt;span style="color:#000000; font-weight:bold"&gt;multicast&lt;/span&gt;&lt;span style="color:#0000de"&gt;(&lt;/span&gt;FromSocket&lt;span style="color:#0000de"&gt;,&lt;/span&gt; ToSockets&lt;span style="color:#0000de"&gt;,&lt;/span&gt; Data&lt;span style="color:#0000de"&gt;) -&amp;gt;&lt;/span&gt;
&lt;span style="color:#90a729"&gt;0045 &lt;/span&gt;    SendData &lt;span style="color:#0000de"&gt;=&lt;/span&gt; &lt;span style="color:#0a7f6d; font-weight:bold"&gt;fun&lt;/span&gt;&lt;span style="color:#0000de"&gt;(&lt;/span&gt;Socket&lt;span style="color:#0000de"&gt;) -&amp;gt;&lt;/span&gt; gen_tcp&lt;span style="color:#0000de"&gt;:&lt;/span&gt;&lt;span style="color:#000000; font-weight:bold"&gt;send&lt;/span&gt;&lt;span style="color:#0000de"&gt;(&lt;/span&gt;Socket&lt;span style="color:#0000de"&gt;,&lt;/span&gt; Data&lt;span style="color:#0000de"&gt;)&lt;/span&gt; &lt;span style="color:#0a7f6d; font-weight:bold"&gt;end&lt;/span&gt;&lt;span style="color:#0000de"&gt;,&lt;/span&gt;
&lt;span style="color:#90a729"&gt;0046 &lt;/span&gt;    Sockets &lt;span style="color:#0000de"&gt;= [&lt;/span&gt; S &lt;span style="color:#0000de"&gt;||&lt;/span&gt; S &lt;span style="color:#0000de"&gt;&amp;lt;-&lt;/span&gt; ToSockets&lt;span style="color:#0000de"&gt;,&lt;/span&gt; S &lt;span style="color:#0000de"&gt;/=&lt;/span&gt; FromSocket&lt;span style="color:#0000de"&gt;],&lt;/span&gt;
&lt;span style="color:#90a729"&gt;0047 &lt;/span&gt;    lists&lt;span style="color:#0000de"&gt;:&lt;/span&gt;&lt;span style="color:#000000; font-weight:bold"&gt;foreach&lt;/span&gt;&lt;span style="color:#0000de"&gt;(&lt;/span&gt;SendData&lt;span style="color:#0000de"&gt;,&lt;/span&gt; Sockets&lt;span style="color:#0000de"&gt;)&lt;/span&gt;.
&lt;/pre&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/mrinalwadhwa/ragstoriches?a=xWliq2QoYt8:ihRQ57XIZ0s:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/mrinalwadhwa/ragstoriches?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/mrinalwadhwa/ragstoriches?a=xWliq2QoYt8:ihRQ57XIZ0s:2mJPEYqXBVI"&gt;&lt;img src="http://feeds.feedburner.com/~ff/mrinalwadhwa/ragstoriches?d=2mJPEYqXBVI" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/mrinalwadhwa/ragstoriches?a=xWliq2QoYt8:ihRQ57XIZ0s:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/mrinalwadhwa/ragstoriches?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/mrinalwadhwa/ragstoriches/~4/xWliq2QoYt8" height="1" width="1"/&gt;</description>
		<wfw:commentRss>http://weblog.mrinalwadhwa.com/2009/11/28/flash-erlang-and-realtime-collaborative-interfaces/feed/</wfw:commentRss>
		<slash:comments>13</slash:comments>
		<feedburner:origLink>http://weblog.mrinalwadhwa.com/2009/11/28/flash-erlang-and-realtime-collaborative-interfaces/</feedburner:origLink></item>
		<item>
		<title>The state of Enterprise UIs : “It’s a design thinking problem”</title>
		<link>http://feedproxy.google.com/~r/mrinalwadhwa/ragstoriches/~3/i1kYNbB3KYU/</link>
		<comments>http://weblog.mrinalwadhwa.com/2009/09/08/the-state-of-enterprise-ui/#comments</comments>
		<pubDate>Tue, 08 Sep 2009 16:46:22 +0000</pubDate>
		<dc:creator>Mrinal Wadhwa</dc:creator>
				<category><![CDATA[RIA]]></category>
		<category><![CDATA[SAP]]></category>
		<category><![CDATA[Usability]]></category>
		<category><![CDATA[Accenture]]></category>
		<category><![CDATA[adobe]]></category>
		<category><![CDATA[deloitte]]></category>
		<category><![CDATA[Enterprise]]></category>
		<category><![CDATA[enterprise ui]]></category>
		<category><![CDATA[Flash]]></category>
		<category><![CDATA[Flex]]></category>
		<category><![CDATA[james governer]]></category>
		<category><![CDATA[redmonk]]></category>
		<category><![CDATA[thomas otter]]></category>
		<category><![CDATA[UI]]></category>

		<guid isPermaLink="false">http://weblog.mrinalwadhwa.com/?p=1160</guid>
		<description>&lt;p&gt;&lt;a href="http://www.redmonk.com/jgovernor/"&gt;James Governor&lt;/a&gt; of RedMonk yesterday kicked off an interesting &lt;a href="http://www.redmonk.com/jgovernor/2009/09/04/front-ends-portal-plasticity-glue-to-putty-sap-to-adobe-2/"&gt;discussion about the state of Enterprise User Interfaces&lt;/a&gt;, more specifically Enterprise Portals and points out &amp;#8230;&lt;/p&gt;
&lt;blockquote&gt;&lt;h3&gt;&lt;em&gt;&amp;#8220;&amp;#8230; That’s right- less painful for users. Products like IBM WebSphere Portal and SAP Netweaver Portal were supposed to bring much improved user interaction models to enterprise IT, but unfortunately traditional systems-focused IT departments, rather than user interaction specialists and their web brethren, did the work &amp;#8230;&amp;#8221;&lt;/em&gt;&lt;/h3&gt;
&lt;/blockquote&gt;
&lt;p&gt; James eludes to the crux of the problem in the above quote and &lt;a href="http://blogs.gartner.com/thomas_otter/"&gt;Thomas Otter&lt;/a&gt; highlights it further in a &lt;a href="http://www.redmonk.com/jgovernor/2009/09/04/front-ends-portal-plasticity-glue-to-putty-sap-to-adobe-2/#comment-541238"&gt;comment&lt;/a&gt; saying &amp;#8230;&lt;/p&gt;
&lt;blockquote&gt;&lt;h3&gt;&lt;em&gt;I sense that most of the problems/challenges with enterprise UI are not just a tool challenge. It is a design thinking problem. Until design thinking permeates enterprise application development, UI will be a sore point.&lt;/em&gt;&lt;/h3&gt;
&lt;/blockquote&gt;
&lt;p&gt;Thomas is right, it is &lt;strong&gt;a design thinking problem&lt;/strong&gt;, more precisely, the problem is that &lt;strong&gt;there are no design thinkers in most teams&lt;/strong&gt; that build or customize enterprise software&amp;#8230;.&lt;!--more--&gt; A quick search for Job posts with keywords &amp;#8220;interaction designer SAP&amp;#8221; and other related terms on various reputed job boards &lt;a href="http://scncareercenter.jobtarget.com/c/search_results.cfm?t730=designer&amp;#038;t737=&amp;#038;t15195=&amp;#038;t15174=&amp;#038;t731=&amp;#038;t732=&amp;#038;max=25&amp;#038;site_id=8446&amp;#038;search=Find+Jobs"&gt;here&lt;/a&gt;, &lt;a href="http://www.indeed.co.in/jobs?q=interaction+designer+sap&amp;#038;l="&gt;here&lt;/a&gt;, &lt;a href="http://seeker.dice.com/jobsearch/servlet/JobSearch?op=300&amp;#038;N=0&amp;#038;Hf=0&amp;#038;NUM_PER_PAGE=30&amp;#038;Ntk=JobSearchRanking&amp;#038;Ntx=mode+matchall&amp;#038;AREA_CODES=&amp;#038;AC_COUNTRY=1525&amp;#038;QUICK=1&amp;#038;ZIPCODE=&amp;#038;RADIUS=64.37376&amp;#038;ZC_COUNTRY=0&amp;#038;COUNTRY=1525&amp;#038;STAT_PROV=0&amp;#038;METRO_AREA=33.78715899%2C-84.39164034&amp;#038;TRAVEL=0&amp;#038;TAXTERM=0&amp;#038;SORTSPEC=0&amp;#038;FRMT=0&amp;#038;DAYSBACK=30&amp;#038;LOCATION_OPTION=2&amp;#038;FREE_TEXT=interaction+designer+sap&amp;#038;WHERE="&gt;here&lt;/a&gt; and a few other places revealed almost no relevant results .. clearly we don&amp;#8217;t even realize yet that we need to design the interaction a user has with the software we build .. so it should be no surprise that our business software is a pain to use.&lt;/p&gt;
&lt;p&gt;It is easy to blame vendors like SAP and IBM in this scenario though &amp;#8230; our company portal is a pain to use, SAP must not have done a good job building it .. this is not always the right assumption, software like SAP portal etc. are platforms that allow an extreme amount of customization and often its this team doing the customization that puts together most of what a user will experience .. believe it or not SAP portal is HTML and JavaScript in your browser &amp;#8230; yes the same HTML and JavaScript that powers GMail, Google Reader, Apple.com or numerous other engaging experiences on the Internet that you can find listed on various web showcases like &lt;a href="http://notcoffee.net/"&gt;this&lt;/a&gt; and &lt;a href="http://usejquery.com/"&gt;this&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;I bet if the same people who build these experiences on the web were part of the team building and customizing your corporate portal we would not be having this conversation. Yet, I&amp;#8217;ve been on this side of similar conversations many times before and this is right about the time where you hear the words &amp;#8230;&lt;/p&gt;
&lt;blockquote&gt;&lt;h3&gt;&lt;em&gt;&amp;#8220;&amp;#8230; but, I don&amp;#8217;t need all this &lt;strong&gt;flashy&lt;/strong&gt; stuff on my business app &amp;#8230;&amp;#8221;&lt;/em&gt;&lt;/h3&gt;
&lt;/blockquote&gt;
&lt;p&gt;Unfortunately, many business decision makers very often fail to see beyond the commercial glitz of well designed applications on the Internet and quickly dismiss or underrate the need of an Interaction designer on their team. They miss to see that Interaction design is about thinking and researching how a users interacts with your software, how he feels and how can his feelings be optimized to pleasure, comfort and satisfaction. Its not about rounded corners or gradients or &amp;#8220;flashy&amp;#8221; animations .. those are just some visual design tools that sometimes (not always) help enhance how a user feels when using software.  &lt;/p&gt;
&lt;p&gt;Things are changing though, as &lt;a href="http://www.yojibee.com/"&gt;Anne&lt;/a&gt; points out in &lt;a href="&lt;a href="http://www.redmonk.com/jgovernor/2009/09/04/front-ends-portal-plasticity-glue-to-putty-sap-to-adobe-2/#comment-541173"&gt;a comment on James&amp;#8217; post&lt;/a&gt; .. the last year or so has seen a lot of new interest in the business value of good user interfaces and James&amp;#8217; post mentions that companies like Deloitte and Accenture realize this value and &amp;#8220;have built practices dedicated to using Adobe technology to make existing enterprise applications and their portal front ends less painful for users&amp;#8221;. He goes on to quote Jaco Von Eeden from Deloitte &amp;#8230;&lt;/p&gt;
&lt;blockquote&gt;&lt;h3&gt;&lt;em&gt;“Virtually every ERP deal we see we ask where can we use Adobe. We have a reasonable revenue flow and fantastic pipeline.”&lt;/em&gt;&lt;/h3&gt;
&lt;/blockquote&gt;
&lt;p&gt;This increasing interest in the value of good user interfaces is great for the industry, but I&amp;#8217;m not sure if the above approach that Deloitte is embracing is the right way to go .. we should not be force fitting a particular technology into a solution, but instead asking what is the best way to solve a problem and what is the best technology to build that solution.&lt;/p&gt;
&lt;p&gt;Adobe&amp;#8217;s technologies can be used to build some great solutions but this choice of using a particular technology should not be made by business drivers &amp;#8230; instead, it should be based on proper understanding of what is needed. Remember, it is very easy to use these so called &lt;a href="http://weblog.mrinalwadhwa.com/2008/10/24/what-is-an-ria/"&gt;Rich Internet Applications&lt;/a&gt; technologies to build a &lt;strong&gt;Not So Rich Internet Application&lt;/strong&gt;.&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/mrinalwadhwa/ragstoriches?a=i1kYNbB3KYU:6KPcqalOcPs:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/mrinalwadhwa/ragstoriches?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/mrinalwadhwa/ragstoriches?a=i1kYNbB3KYU:6KPcqalOcPs:2mJPEYqXBVI"&gt;&lt;img src="http://feeds.feedburner.com/~ff/mrinalwadhwa/ragstoriches?d=2mJPEYqXBVI" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/mrinalwadhwa/ragstoriches?a=i1kYNbB3KYU:6KPcqalOcPs:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/mrinalwadhwa/ragstoriches?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/mrinalwadhwa/ragstoriches/~4/i1kYNbB3KYU" height="1" width="1"/&gt;</description>
		<wfw:commentRss>http://weblog.mrinalwadhwa.com/2009/09/08/the-state-of-enterprise-ui/feed/</wfw:commentRss>
		<slash:comments>19</slash:comments>
		<feedburner:origLink>http://weblog.mrinalwadhwa.com/2009/09/08/the-state-of-enterprise-ui/</feedburner:origLink></item>
		<item>
		<title>Flex 4: Random Layout and Step Layout</title>
		<link>http://feedproxy.google.com/~r/mrinalwadhwa/ragstoriches/~3/_OIQlzQnSLg/</link>
		<comments>http://weblog.mrinalwadhwa.com/2009/08/22/flex-4-random-layout-and-step-layout/#comments</comments>
		<pubDate>Sat, 22 Aug 2009 14:01:00 +0000</pubDate>
		<dc:creator>Mrinal Wadhwa</dc:creator>
				<category><![CDATA[Flex]]></category>
		<category><![CDATA[RIA]]></category>
		<category><![CDATA[cool]]></category>
		<category><![CDATA[flex4]]></category>
		<category><![CDATA[gumbo]]></category>
		<category><![CDATA[layout]]></category>
		<category><![CDATA[spark]]></category>

		<guid isPermaLink="false">http://weblog.mrinalwadhwa.com/?p=1142</guid>
		<description>&lt;p&gt;Yesterday at the &lt;a href="http://bangalorefx.org"&gt;Bangalore Flex User Group&lt;/a&gt; Meeting after &lt;a href="http://www.thepixelcode.com/development/data-services/model-driven-development-using-lcds-3"&gt;Khan&amp;#8217;s excellent talk&lt;/a&gt; on LCDS3, Fiber and the Modeler Plugin we had some time left to so I decided to show everyone how cool and easy &lt;a href="http://opensource.adobe.com/wiki/display/flexsdk/Spark+Horizontal+and+Vertical+Layout"&gt;layouts in Flex 4&lt;/a&gt; are .. &lt;/p&gt;
&lt;p&gt;Here are two quick layouts we wrote during the meeting as I showed everyone how easy it is to write a custom layout &amp;#8230;&lt;/p&gt;
&lt;h4&gt;Random Layout&lt;/h4&gt;
&lt;p&gt;&lt;object width="650" height="380"&gt;&lt;param name="movie" value="http://experiments.mrinalwadhwa.com/Flex4Layouts/RandomLayoutExample.swf"&gt;&lt;embed src="http://experiments.mrinalwadhwa.com/Flex4Layouts/RandomLayoutExample.swf" width="650" height="380"&gt;&lt;/embed&gt;&lt;/param&gt;&lt;/object&gt;&lt;/p&gt;
&lt;h4&gt;Step Layout&lt;/h4&gt;
&lt;p&gt;&lt;object width="650" height="380"&gt;&lt;param name="movie" value="http://experiments.mrinalwadhwa.com/Flex4Layouts/StepLayoutExample.swf"&gt;&lt;embed src="http://experiments.mrinalwadhwa.com/Flex4Layouts/StepLayoutExample.swf" width="650" height="380"&gt;&lt;/embed&gt;&lt;/param&gt;&lt;/object&gt;&lt;/p&gt;
&lt;p&gt;These layouts are currently somewhat crude but the idea was to convey how easy it is to write your own layouts &amp;#8230; here the code for RandomLayout &amp;#8230; just one simple function &amp;#8230;&lt;!--more--&gt;&lt;/p&gt;
&lt;p&gt;&lt;iframe src ="http://experiments.mrinalwadhwa.com/Flex4Layouts/srcview/source/com/mrinalwadhwa/layouts/RandomLayout.as.html" width="100%" height="300"&gt;&lt;br /&gt;
&lt;/iframe&gt;&lt;/p&gt;
&lt;p&gt;Of course, these layout algorithms can get more complex &amp;#8230; here&amp;#8217;s the StepLayout code &amp;#8230; &lt;/p&gt;
&lt;p&gt;&lt;iframe src ="http://experiments.mrinalwadhwa.com/Flex4Layouts/srcview/source/com/mrinalwadhwa/layouts/StepLayout.as.html" width="100%" height="300"&gt;&lt;br /&gt;
&lt;/iframe&gt;&lt;/p&gt;
&lt;p&gt;For more elaborate examples you may want to checkout the &lt;a href="http://weblog.mrinalwadhwa.com/2009/08/16/flex-4-concentric-layout/"&gt;ConcentricLayout&lt;/a&gt; example I posted last week or Ryan Campbell&amp;#8217;s very&lt;a href="http://www.bobjim.com/2009/06/16/heres-5-3d-layouts-for-flex-4/"&gt; cool 3D Layouts&lt;/a&gt;. Evtim, an engineer on the Flex SDK team also has some &lt;a href="http://evtimmy.com/category/custom-layout/"&gt;detailed posts on how to write Layouts&lt;/a&gt; on his blog.  &lt;/p&gt;
&lt;p&gt;Flex 4 is awesome.&lt;/p&gt;
&lt;hr /&gt;
&lt;p&gt;&lt;strong&gt;UPDATE:&lt;/strong&gt; You can view the complete source of the above example &lt;a href="http://experiments.mrinalwadhwa.com/Flex4Layouts/srcview/"&gt;here&lt;/a&gt; or download it from &lt;a href="http://experiments.mrinalwadhwa.com/Flex4Layouts/srcview/Flex4layouts.zip"&gt;here.&lt;/a&gt; &lt;/p&gt;
&lt;hr /&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/mrinalwadhwa/ragstoriches?a=_OIQlzQnSLg:KKyqX4fBtWU:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/mrinalwadhwa/ragstoriches?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/mrinalwadhwa/ragstoriches?a=_OIQlzQnSLg:KKyqX4fBtWU:2mJPEYqXBVI"&gt;&lt;img src="http://feeds.feedburner.com/~ff/mrinalwadhwa/ragstoriches?d=2mJPEYqXBVI" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/mrinalwadhwa/ragstoriches?a=_OIQlzQnSLg:KKyqX4fBtWU:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/mrinalwadhwa/ragstoriches?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/mrinalwadhwa/ragstoriches/~4/_OIQlzQnSLg" height="1" width="1"/&gt;</description>
		<wfw:commentRss>http://weblog.mrinalwadhwa.com/2009/08/22/flex-4-random-layout-and-step-layout/feed/</wfw:commentRss>
		<slash:comments>11</slash:comments>
		<feedburner:origLink>http://weblog.mrinalwadhwa.com/2009/08/22/flex-4-random-layout-and-step-layout/</feedburner:origLink></item>
		<item>
		<title>Flex 4 Concentric Layout</title>
		<link>http://feedproxy.google.com/~r/mrinalwadhwa/ragstoriches/~3/QU-zjpRurNQ/</link>
		<comments>http://weblog.mrinalwadhwa.com/2009/08/16/flex-4-concentric-layout/#comments</comments>
		<pubDate>Sun, 16 Aug 2009 16:16:49 +0000</pubDate>
		<dc:creator>Mrinal Wadhwa</dc:creator>
				<category><![CDATA[Flex]]></category>
		<category><![CDATA[RIA]]></category>
		<category><![CDATA[concentric layout]]></category>
		<category><![CDATA[flex4]]></category>
		<category><![CDATA[gumbo]]></category>
		<category><![CDATA[layout]]></category>
		<category><![CDATA[layouts]]></category>
		<category><![CDATA[spark]]></category>

		<guid isPermaLink="false">http://weblog.mrinalwadhwa.com/?p=1121</guid>
		<description>&lt;p&gt;&lt;a href="http://opensource.adobe.com/wiki/display/flexsdk/Spark+Horizontal+and+Vertical+Layout"&gt;Layouts in Flex 4&lt;/a&gt; are decoupled from containers and its quite simple to define your own layout. Yesterday I wrote ConcentricLayout. &lt;/p&gt;
&lt;p&gt;&lt;strong&gt;ConcentricLayout&lt;/strong&gt; arranges layout elements in such a way that their centers are aligned and their size sequentially decreases. The width of each layout element is less than the previous element by a value specified using the &lt;em&gt;horizontalGap&lt;/em&gt; property and the height of each layout element is less than the previous element by a value specified using the &lt;em&gt;verticalGap&lt;/em&gt; property. If the element has an explicit width or an explicit height it still aligns its center but is not resized. You can tell the layout to force a resize of all elements and ignore their explicitly specified size using the &lt;em&gt;forceResize&lt;/em&gt; flag&lt;/p&gt;
&lt;p&gt;Here&amp;#8217;s a quick example: &lt;/p&gt;
&lt;p&gt;&lt;object width="550" height="400"&gt;&lt;param name="movie" value="http://experiments.mrinalwadhwa.com/ConcentricLayout/ConcentricLayout.swf"&gt;&lt;embed src="http://experiments.mrinalwadhwa.com/ConcentricLayout/ConcentricLayout.swf" width="650" height="380"&gt;&lt;/embed&gt;&lt;/param&gt;&lt;/object&gt;&lt;/p&gt;
&lt;h3&gt;&lt;a href="http://experiments.mrinalwadhwa.com/ConcentricLayout/srcview/"&gt;View Source&lt;/a&gt;&lt;/h3&gt;
&lt;h3&gt;&lt;a href="http://experiments.mrinalwadhwa.com/ConcentricLayout/srcview/ConcentricLayout.zip"&gt;Download Source&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/mrinalwadhwa/ragstoriches?a=QU-zjpRurNQ:qWGAeCs3YeE:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/mrinalwadhwa/ragstoriches?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/mrinalwadhwa/ragstoriches?a=QU-zjpRurNQ:qWGAeCs3YeE:2mJPEYqXBVI"&gt;&lt;img src="http://feeds.feedburner.com/~ff/mrinalwadhwa/ragstoriches?d=2mJPEYqXBVI" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/mrinalwadhwa/ragstoriches?a=QU-zjpRurNQ:qWGAeCs3YeE:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/mrinalwadhwa/ragstoriches?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/mrinalwadhwa/ragstoriches/~4/QU-zjpRurNQ" height="1" width="1"/&gt;</description>
		<wfw:commentRss>http://weblog.mrinalwadhwa.com/2009/08/16/flex-4-concentric-layout/feed/</wfw:commentRss>
		<slash:comments>10</slash:comments>
		<feedburner:origLink>http://weblog.mrinalwadhwa.com/2009/08/16/flex-4-concentric-layout/</feedburner:origLink></item>
		<item>
		<title>Gradient fidelity and FXG generation tools</title>
		<link>http://feedproxy.google.com/~r/mrinalwadhwa/ragstoriches/~3/RDRuQOtsfkg/</link>
		<comments>http://weblog.mrinalwadhwa.com/2009/08/02/gradient-fidelity-and-fxg/#comments</comments>
		<pubDate>Sat, 01 Aug 2009 23:39:10 +0000</pubDate>
		<dc:creator>Mrinal Wadhwa</dc:creator>
				<category><![CDATA[Design]]></category>
		<category><![CDATA[Flex]]></category>
		<category><![CDATA[RIA]]></category>
		<category><![CDATA[adobe]]></category>
		<category><![CDATA[catalyst]]></category>
		<category><![CDATA[export]]></category>
		<category><![CDATA[flex4]]></category>
		<category><![CDATA[fxg]]></category>
		<category><![CDATA[generate]]></category>
		<category><![CDATA[illustrator]]></category>
		<category><![CDATA[tool]]></category>

		<guid isPermaLink="false">http://weblog.mrinalwadhwa.com/?p=1079</guid>
		<description>&lt;p&gt;Last week I got some &lt;a href="http://www.adobe.com/products/illustrator/"&gt;Illustrator&lt;/a&gt; files from the designer on our team, which I had to convert into Flex 4 skins. When we had planned this, we thought this would be easy &amp;#8230; the designer makes the skins in Illustrator, we export FXG directly from Illustrator or we import them into &lt;a href="http://labs.adobe.com/technologies/flashcatalyst/"&gt;Catalyst&lt;/a&gt;, do some tweaking and then export to get FXG that we can use in SparkSkins .. unfortunately it wasn&amp;#8217;t that simple, I&amp;#8217;m documenting some of the gotchas and workarounds I learned for anyone else who may run into the same situation.&lt;/p&gt;
&lt;p&gt;Most of the problems we had were related to gradients, here are some snapshots &amp;#8230;&lt;/p&gt;
&lt;p&gt;&lt;img src="http://weblog.mrinalwadhwa.com/wp-content/uploads/2009/08/ai.png" alt="Original Graphic created in Illustrator" /&gt;&lt;br /&gt;
&lt;img src="http://weblog.mrinalwadhwa.com/wp-content/uploads/2009/08/fxg.png" alt="FXG Exported from Illustrator" /&gt;&lt;br /&gt;
&lt;img src="http://weblog.mrinalwadhwa.com/wp-content/uploads/2009/08/fxg-catalyst.png" alt="FXG Exported from Catalyst" /&gt;  &lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;The first strip is original graphic created in Illustrator&lt;/li&gt;
&lt;li&gt;The second strip FXG Exported from Illustrator&lt;/li&gt;
&lt;li&gt;The third strip is original Illustrator file imported into Catalyst and then FXG exported from Catalyst&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Clearly, all of them are different.&lt;!--more--&gt; While this difference may not feel significant when looked at in this isolated manner, if you have many gradients in your design it can significantly affect the fidelity of the design.&lt;/p&gt;
&lt;p&gt;Here&amp;#8217;s the code generated by Illustrator&amp;#8217;s FXG export feature ..&lt;br /&gt;
&lt;img src="http://weblog.mrinalwadhwa.com/wp-content/uploads/2009/08/ai-fxg-code.png" alt="Code of FXG exported from Illustrator" /&gt;  &lt;/p&gt;
&lt;p&gt;Here&amp;#8217;s the code generated by first importing the Illustrator file into Catalyst and then exporting FXG ..&lt;br /&gt;
&lt;img src="http://weblog.mrinalwadhwa.com/wp-content/uploads/2009/08/catalyst-fxg-code.png" alt="Code of FXG exported from Catalyst" /&gt; &lt;/p&gt;
&lt;p&gt;Note that the colors exported by each are different.&lt;/p&gt;
&lt;p&gt;&lt;em&gt;&lt;strong&gt;Suggestion:&lt;/strong&gt; Illustrator&amp;#8217;s FXG export should have a way to add namespace prefixes while exporting, would be helpful&lt;/em&gt;  &lt;/p&gt;
&lt;p&gt;At this point, I asked about this problem on an Adobe forum and one of the team members replied and suggested I should &amp;#8230; In Illustrator, convert colors to SRGB and turn off color management. So I did that.&lt;br /&gt;
Here&amp;#8217;s the original followed by what it looks like with the new settings &amp;#8230; &lt;/p&gt;
&lt;p&gt;&lt;img src="http://weblog.mrinalwadhwa.com/wp-content/uploads/2009/08/ai.png" alt="Original Graphic created in Illustrator" /&gt;&lt;br /&gt;
&lt;img src="http://weblog.mrinalwadhwa.com/wp-content/uploads/2009/08/ai-colormanagementoff.png" alt="Original with Color Management turned off" /&gt;  &lt;/p&gt;
&lt;p&gt;So, our designer will have to redo some work in the new settings to create the original look, that&amp;#8217;s fine, as long as we can get the exact same look in out final Flex application. But that didn&amp;#8217;t work out either ..&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;The original graphic with the new color settings applied&lt;/li&gt;
&lt;li&gt;FXG exported from illustrator&lt;/li&gt;
&lt;li&gt;FXG exported from Catalyst&lt;/li&gt;
&lt;li&gt;The original graphic without the new color settings&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;img src="http://weblog.mrinalwadhwa.com/wp-content/uploads/2009/08/ai-colormanagementoff.png" alt="Original with Color Management turned off" /&gt;&lt;br /&gt;
&lt;img src="http://weblog.mrinalwadhwa.com/wp-content/uploads/2009/08/fxg-catalyst-c.png" alt="FXG exported from Illustrator with Color Management turned off" /&gt;&lt;br /&gt;
&lt;img src="http://weblog.mrinalwadhwa.com/wp-content/uploads/2009/08/fxg-catalyst-c.png" alt="FXG exported from Catalyst" /&gt;&lt;br /&gt;
&lt;img src="http://weblog.mrinalwadhwa.com/wp-content/uploads/2009/08/ai.png" alt="Original Graphic created in Illustrator" /&gt;   &lt;/p&gt;
&lt;p&gt;Here&amp;#8217;s the code of FXG exported from Illustrator &amp;#8230;&lt;br /&gt;
&lt;img src="http://weblog.mrinalwadhwa.com/wp-content/uploads/2009/08/fxg-ci-code-c.png" alt="" /&gt; &lt;/p&gt;
&lt;p&gt;Here&amp;#8217;s the code of FXG exported from Catalyst &amp;#8230;&lt;br /&gt;
&lt;img src="http://weblog.mrinalwadhwa.com/wp-content/uploads/2009/08/fxg-catalyst-code-c.png" alt="" /&gt; &lt;/p&gt;
&lt;p&gt;Note that this time both the FXGs are exactly the same except they still don&amp;#8217;t look like the desired look drawn in Illustrator. Even if we use different color settings.&lt;/p&gt;
&lt;p&gt;Now I noticed that Illustrator also allows exporting to &lt;a href="http://www.w3.org/Graphics/SVG/"&gt;SVG&lt;/a&gt; so I exported my original graphic as SVG &amp;#8230;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Original&lt;/li&gt;
&lt;li&gt;SVG exported from Illustrator&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;img src="http://weblog.mrinalwadhwa.com/wp-content/uploads/2009/08/ai.png" alt="Original Graphic created in Illustrator" /&gt;&lt;br /&gt;
&lt;img src="http://weblog.mrinalwadhwa.com/wp-content/uploads/2009/08/svg.png" alt="SVG" /&gt;   &lt;/p&gt;
&lt;p&gt;So that&amp;#8217;s not perfect either but its much closer than any of the FXG output above &amp;#8230;&lt;/p&gt;
&lt;p&gt;When I looked at the code of the exported SVG  &amp;#8230;&lt;br /&gt;
&lt;img src="http://weblog.mrinalwadhwa.com/wp-content/uploads/2009/08/svg-code.png" alt="SVG" /&gt;   &lt;/p&gt;
&lt;p&gt;Clearly there is more color detail in there, it has 10 gradient stops as opposed to only 3 in the FXG output we got, this explains lower fidelity of our FXG output .. so I translated this SVG &lt;strong&gt;manually&lt;/strong&gt; to FXG ..&lt;/p&gt;
&lt;p&gt;&lt;img src="http://weblog.mrinalwadhwa.com/wp-content/uploads/2009/08/fxg-modified-code.png" alt="SVG" /&gt;   &lt;/p&gt;
&lt;p&gt;Here&amp;#8217;s the original followed by the final FXG I created manually &amp;#8230;  &lt;/p&gt;
&lt;p&gt;&lt;img src="http://weblog.mrinalwadhwa.com/wp-content/uploads/2009/08/ai.png" alt="Original Graphic created in Illustrator" /&gt;&lt;br /&gt;
&lt;img src="http://weblog.mrinalwadhwa.com/wp-content/uploads/2009/08/fxg-modified.png" alt="Modified FXG" /&gt;   &lt;/p&gt;
&lt;p&gt;Not perfect, but fairly close.&lt;/p&gt;
&lt;p&gt;&lt;em&gt;&lt;strong&gt;Suggestion:&lt;/strong&gt; Illustrator and Catalyst FXG export should not drop gradient stops&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;Since, Catalyst is still in beta, I think Adobe will probably fix this by the time it releases but till then you can use the SVG workaround if you run into a similar situation.&lt;/p&gt;
&lt;p&gt;I had to convince our designer to settle at &amp;#8220;fairly close&amp;#8221; for now, but if this Designer-Developer Workflow thing has to work, we need to get better at generating the exact look a designer draws in his/her design tool, at the click of  a button. &lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/mrinalwadhwa/ragstoriches?a=RDRuQOtsfkg:n934uV3Ud94:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/mrinalwadhwa/ragstoriches?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/mrinalwadhwa/ragstoriches?a=RDRuQOtsfkg:n934uV3Ud94:2mJPEYqXBVI"&gt;&lt;img src="http://feeds.feedburner.com/~ff/mrinalwadhwa/ragstoriches?d=2mJPEYqXBVI" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/mrinalwadhwa/ragstoriches?a=RDRuQOtsfkg:n934uV3Ud94:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/mrinalwadhwa/ragstoriches?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/mrinalwadhwa/ragstoriches/~4/RDRuQOtsfkg" height="1" width="1"/&gt;</description>
		<wfw:commentRss>http://weblog.mrinalwadhwa.com/2009/08/02/gradient-fidelity-and-fxg/feed/</wfw:commentRss>
		<slash:comments>23</slash:comments>
		<feedburner:origLink>http://weblog.mrinalwadhwa.com/2009/08/02/gradient-fidelity-and-fxg/</feedburner:origLink></item>
		<item>
		<title>Tribes</title>
		<link>http://feedproxy.google.com/~r/mrinalwadhwa/ragstoriches/~3/8l-lsAJznOo/</link>
		<comments>http://weblog.mrinalwadhwa.com/2009/07/23/tribes/#comments</comments>
		<pubDate>Thu, 23 Jul 2009 06:19:07 +0000</pubDate>
		<dc:creator>Mrinal Wadhwa</dc:creator>
				<category><![CDATA[General]]></category>
		<category><![CDATA[India]]></category>
		<category><![CDATA[adobe]]></category>
		<category><![CDATA[communi]]></category>
		<category><![CDATA[community]]></category>
		<category><![CDATA[focus]]></category>
		<category><![CDATA[seth godin]]></category>
		<category><![CDATA[tribes]]></category>

		<guid isPermaLink="false">http://weblog.mrinalwadhwa.com/?p=1040</guid>
		<description>&lt;p&gt;In relation to &lt;a href="http://weblog.mrinalwadhwa.com/2009/07/19/disappointed/"&gt;what happened this weekend&lt;/a&gt; I met up with Ramesh Srinivasaraghavan from the evangelism team at Adobe India. While we did not talk much about the elephant in the room, we did talk about other things that really matter.  &lt;/p&gt;
&lt;p&gt;I was very happy that Ramesh reached out to have this discussion, here is some of my take away &amp;#8230;&lt;!--more--&gt;&lt;/p&gt;
&lt;p&gt;From the beginning of the meeting it was clear that the way Ramesh looked at community and the way I thought of it was different, in Ramesh&amp;#8217;s opinion Adobe&amp;#8217;s community is professionals who use Adobe&amp;#8217;s technology, people who may be interested in Adobe technology but don&amp;#8217;t use it, developers in companies who may become users of Adobe technologies, managers whose teams use Adobe technologies, students in universities, teachers, everybody &amp;#8230;. while in my opinion Adobe&amp;#8217;s community is comprised of professionals who already use Adobe technology and are passionate about it &amp;#8230;for the sake of convenience of discussion, I&amp;#8217;ll borrow a term used by &lt;a href="http://www.sethgodin.com/sg/"&gt;Seth Godin&lt;/a&gt; and call my understanding of community &lt;strong&gt;a Tribe&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Ramesh talked about the principal of &lt;a href="http://www.useit.com/alertbox/participation_inequality.html"&gt;Participation Inequality (90-9-1)&lt;/a&gt; which states &amp;#8230;&lt;/p&gt;
&lt;blockquote&gt;&lt;p&gt;
In most online communities, 90% of users are lurkers who never contribute, 9% of users contribute a little, and 1% of users account for almost all the action.
&lt;/p&gt;&lt;/blockquote&gt;
&lt;p&gt;He pointed out that Adobe&amp;#8217;s strategy in India so far has been to grow the over all numbers of people involved with their technologies and hence hopefully in turn grow the number of key contributors, the 9 and the 1. He mentioned various challenges like the corporate structure of Indian service oriented companies, the online savvy of Indian developers etc. because of which they think that &lt;em&gt;marketing to the masses at least here in India takes priority over focusing on the Tribe.&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;I was reminded of this &lt;a href="http://ted.com"&gt;TED&lt;/a&gt; talk by &lt;a href="http://www.sethgodin.com/sg/"&gt;Seth Godin&lt;/a&gt; &amp;#8230; &lt;/p&gt;
&lt;p&gt;&lt;object width="650" height="475"&gt;&lt;param name="movie" value="http://video.ted.com/assets/player/swf/EmbedPlayer.swf"&gt;&lt;/param&gt;&lt;param name="allowFullScreen" value="true" /&gt;&lt;param name="wmode" value="transparent"&gt;&lt;/param&gt;&lt;param name="bgColor" value="#ffffff"&gt;&lt;/param&gt;&lt;param name="flashvars" value="vu=http://video.ted.com/talks/embed/SethGodin_2009-embed_high.flv&amp;#038;su=http://images.ted.com/images/ted/tedindex/embed-posters/SethGodin-2009.embed_thumbnail.jpg&amp;#038;vw=630&amp;#038;vh=350&amp;#038;ap=0&amp;#038;ti=538" /&gt;&lt;embed src="http://video.ted.com/assets/player/swf/EmbedPlayer.swf" pluginspace="http://www.macromedia.com/go/getflashplayer" type="application/x-shockwave-flash" wmode="transparent" bgColor="#ffffff" width="650" height="475" allowFullScreen="true" flashvars="vu=http://video.ted.com/talks/embed/SethGodin_2009-embed_high.flv&amp;#038;su=http://images.ted.com/images/ted/tedindex/embed-posters/SethGodin-2009.embed_thumbnail.jpg&amp;#038;vw=630&amp;#038;vh=350&amp;#038;ap=0&amp;#038;ti=538"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;/p&gt;
&lt;p&gt;Ramesh pointed out that the reason the content at various events is &amp;#8220;Introductory&amp;#8221; is because their goal with most of the events that they organize is to focus on the new people and help them adopt Adobe technologies. He agreed that there is a need to engage more with the tribe but at the same time he pointed out that their primary strategy is still to focus on the masses. We also discussed various ways in which Adobe could engage better with the tribe and hopefully we will start seeing some of that take shape soon.&lt;/p&gt;
&lt;p&gt;What do you feel, should Adobe in India continue to focus on marketing to the masses or should they pay more attention to our Tribe?&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/mrinalwadhwa/ragstoriches?a=8l-lsAJznOo:iZVFKwfDTv0:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/mrinalwadhwa/ragstoriches?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/mrinalwadhwa/ragstoriches?a=8l-lsAJznOo:iZVFKwfDTv0:2mJPEYqXBVI"&gt;&lt;img src="http://feeds.feedburner.com/~ff/mrinalwadhwa/ragstoriches?d=2mJPEYqXBVI" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/mrinalwadhwa/ragstoriches?a=8l-lsAJznOo:iZVFKwfDTv0:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/mrinalwadhwa/ragstoriches?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/mrinalwadhwa/ragstoriches/~4/8l-lsAJznOo" height="1" width="1"/&gt;</description>
		<wfw:commentRss>http://weblog.mrinalwadhwa.com/2009/07/23/tribes/feed/</wfw:commentRss>
		<slash:comments>22</slash:comments>
		<feedburner:origLink>http://weblog.mrinalwadhwa.com/2009/07/23/tribes/</feedburner:origLink></item>
		<item>
		<title>Flex4/FXG EllipticalArc Primitive</title>
		<link>http://feedproxy.google.com/~r/mrinalwadhwa/ragstoriches/~3/5ibtT26zz_s/</link>
		<comments>http://weblog.mrinalwadhwa.com/2009/07/21/fxg-ellipticalarc-primitive/#comments</comments>
		<pubDate>Mon, 20 Jul 2009 22:37:30 +0000</pubDate>
		<dc:creator>Mrinal Wadhwa</dc:creator>
				<category><![CDATA[Flex]]></category>
		<category><![CDATA[RIA]]></category>
		<category><![CDATA[adobe]]></category>
		<category><![CDATA[degrafa]]></category>
		<category><![CDATA[ellipticalarc]]></category>
		<category><![CDATA[flex4]]></category>
		<category><![CDATA[fxg]]></category>
		<category><![CDATA[gumbo]]></category>
		<category><![CDATA[primitive]]></category>

		<guid isPermaLink="false">http://weblog.mrinalwadhwa.com/?p=1025</guid>
		<description>&lt;p&gt;Flex 4 does not have an EllipticalArc primitive yet, but I needed one today .. thankfully &lt;a href="http://degrafa.org"&gt;Degrafa&lt;/a&gt; already has an &lt;a href="http://degrafa.googlecode.com/svn/branches/Origin/Degrafa/com/degrafa/geometry/EllipticalArc.as"&gt;EllipticalArc Class&lt;/a&gt;, I translated that to work with Flex 4.&lt;/p&gt;
&lt;p&gt;EllipticalArc is a &lt;a href="http://livedocs.adobe.com/flex/gumbo/langref/spark/primitives/supportClasses/FilledElement.html"&gt;FilledElement&lt;/a&gt; so it can have a Fill and a Stroke just like other FilledElements  &lt;a href="http://livedocs.adobe.com/flex/gumbo/langref/spark/primitives/Rect.html"&gt;Rect&lt;/a&gt;, &lt;a href="http://livedocs.adobe.com/flex/gumbo/langref/spark/primitives/Ellipse.html"&gt;Ellipse&lt;/a&gt; etc.&lt;/p&gt;
&lt;p&gt;&lt;object width="650" height="900"&gt;&lt;param name="movie" value="http://experiments.mrinalwadhwa.com/EllipticalArc/Example.swf"&gt;&lt;embed src="http://experiments.mrinalwadhwa.com/EllipticalArc/Example.swf"  width="650" height="900"&gt;&lt;/embed&gt;&lt;/param&gt;&lt;/object&gt;&lt;/p&gt;
&lt;h4&gt;&lt;a href="http://experiments.mrinalwadhwa.com/EllipticalArc/"&gt;View Example&lt;/a&gt;&lt;/h4&gt;
&lt;h4&gt;&lt;a href="http://code.google.com/p/ellipticalarc/source/browse/trunk/src/com/mrinalwadhwa/primitives/EllipticalArc.as"&gt;View Source&lt;/a&gt;&lt;/h4&gt;
&lt;p&gt;I haven&amp;#8217;t yet implemented some of the layout related functionality that other primitives like Rect, Ellipse etc implement &amp;#8230; but it seems to work fine with basic layouts, which is what I needed for now. The class is &lt;a href="http://code.google.com/p/ellipticalarc/"&gt;hosted on Google code&lt;/a&gt; under the Apache 2.0 License, just in case someone wants to improve it.&lt;/p&gt;
&lt;p&gt;Thank you to the &lt;a href="http://degrafa.org"&gt;Degrafa&lt;/a&gt; team for sharing their amazing work that saves me loads of time every now and then.&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/mrinalwadhwa/ragstoriches?a=5ibtT26zz_s:22PjrrkBD2M:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/mrinalwadhwa/ragstoriches?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/mrinalwadhwa/ragstoriches?a=5ibtT26zz_s:22PjrrkBD2M:2mJPEYqXBVI"&gt;&lt;img src="http://feeds.feedburner.com/~ff/mrinalwadhwa/ragstoriches?d=2mJPEYqXBVI" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/mrinalwadhwa/ragstoriches?a=5ibtT26zz_s:22PjrrkBD2M:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/mrinalwadhwa/ragstoriches?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/mrinalwadhwa/ragstoriches/~4/5ibtT26zz_s" height="1" width="1"/&gt;</description>
		<wfw:commentRss>http://weblog.mrinalwadhwa.com/2009/07/21/fxg-ellipticalarc-primitive/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		<feedburner:origLink>http://weblog.mrinalwadhwa.com/2009/07/21/fxg-ellipticalarc-primitive/</feedburner:origLink></item>
		<item>
		<title>Disappointed.</title>
		<link>http://feedproxy.google.com/~r/mrinalwadhwa/ragstoriches/~3/e6vJ42Zckak/</link>
		<comments>http://weblog.mrinalwadhwa.com/2009/07/19/disappointed/#comments</comments>
		<pubDate>Sun, 19 Jul 2009 13:25:07 +0000</pubDate>
		<dc:creator>Mrinal Wadhwa</dc:creator>
				<category><![CDATA[General]]></category>
		<category><![CDATA[India]]></category>
		<category><![CDATA[RIA]]></category>
		<category><![CDATA[adobe]]></category>
		<category><![CDATA[cmmunity]]></category>
		<category><![CDATA[comunity]]></category>
		<category><![CDATA[evangelism]]></category>

		<guid isPermaLink="false">http://weblog.mrinalwadhwa.com/?p=1005</guid>
		<description>&lt;p&gt;I sent an email to the Adobe India Community Champions mailing list about the direction of Adobe&amp;#8217;s evangelism efforts in India, the email was originally intended for the 10 or so Community Champions, but since people from Adobe have started &lt;a href="http://twitter.com/hsivaram"&gt;reacting in public&lt;/a&gt; without reacting on the list first, I feel its better to post my thoughts in public as well.&lt;/p&gt;
&lt;p&gt;Here is how Adobe evangelist &lt;a href="http://blog.flexgeek.in"&gt;Harish Sivaramakrish&lt;/a&gt; chose to react to my thoughts &lt;a href="http://twitter.com/hsivaram"&gt;on twitter&lt;/a&gt;, I feel that its unfortunate that this is Adobe&amp;#8217;s reaction to genuine critique &amp;#8230;&lt;!--more--&gt;&lt;/p&gt;
&lt;p&gt; &lt;img src="http://weblog.mrinalwadhwa.com/wp-content/uploads/2009/07/harish-adobe-tweets.jpg" alt="Adobe's reaction to critique" /&gt; &lt;/p&gt;
&lt;p&gt;I believe that Adobe&amp;#8217;s various community programs like the User Group Program, Community Champions program etc are meant to obtain genuine feedback and its sad to receive such a personally attacking reaction when you speak your mind.     &lt;/p&gt;
&lt;p&gt;I have not asked other members of the list for their permission to post their parts of the thread in public .. so I am only posting my thoughts and not the whole thread but there were at least 4 other champions who agreed with me on many of my points but not everything .. &lt;/p&gt;
&lt;p&gt;Here&amp;#8217;s the email I sent on Thursday &amp;#8230;&lt;/p&gt;
&lt;blockquote&gt;&lt;p&gt;
I am disappointed by the consistent failure of Adobe India to support community, user groups, community mailing lists, community events, community leaders etc.&lt;/p&gt;
&lt;p&gt;I just got an email about &lt;a href="http://www.endtoend.in/apps/forms/adobe/DevSummit09/registration.htm"&gt;Adobe devsummit&lt;/a&gt; &amp;#8230; yes the same event that gives flex builder to everyone who attends and draws the maximum audience of all Flex related events throughout the year.&lt;/p&gt;
&lt;p&gt;Last year in August when I first heard of the same event &amp;#8230; I had written to the Adobe evangelism team .. congratulating them on organizing a large scale event that would draw audiences from outside our regular community &amp;#8230; I also suggested that they should include community speakers in the event to add to their existing content &amp;#8230; I personally offered to present a talk on Advanced concepts in AIR (AIR was completely not present in that agenda). My intention at the time was to help improve the quality of the content that would be presented at the event .. because well I was and still am tired of the &amp;#8220;Intro&amp;#8221; like talks we hear at all Adobe events in India &amp;#8230; you cannot blame Adobe for this because these talks are presented by evangelists and not by developers who use Flex to build real stuff &amp;#8230; hence I suggested Adobe should include community experts who have more experience in the trenches than Adobe evangelists.&lt;/p&gt;
&lt;p&gt;The reply I got to that email last year stated that it was too late for what I was proposing and they would include community in future events .. yet, here we are a year down the line with an email about the same event in my Inbox and &lt;strong&gt;no prior communication to the community&lt;/strong&gt; that I know off.&lt;/p&gt;
&lt;p&gt;I&amp;#8217;ve attended Adobe events outside of India and community takes center stage at those events &amp;#8230;. I was at the AIR Bus tour in Washington DC in 2007 and at the venue the local DC Flex user group had been given a special pod (the only pod there) to promote their group &amp;#8230; adobe presenters advertised the group after their presentations and encouraged people to join &amp;#8230;. I have attended several Adobe events in India &amp;#8230; none of them mentioned the local user group.&lt;br /&gt;
I attended MAX in Chicago and there as well I &lt;strong&gt;saw special focus on community&lt;/strong&gt; and user groups &amp;#8230; if devsummit is the main event in India .. &lt;strong&gt;why doesn&amp;#8217;t that include community in any form?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;While Adobe India events continue to be &lt;strong&gt;boring marketing gimmicks (there I said it) &lt;/strong&gt;.. primarily I feel because they don&amp;#8217;t include community  &amp;#8230; its not just about the events &amp;#8230;&lt;/p&gt;
&lt;p&gt;1. Adobe India members are not active on flex-india or any user group mailing list &amp;#8230; they just use flex-india as an advertisement medium. Local Indian Flex team members do not contribute to any local mailing lists, while I constantly see them active on flexcoders, flex sdk list and other international forums&lt;/p&gt;
&lt;p&gt;2. Indian Flex team members are not active on the local user groups (the evangelists are) .. but why don&amp;#8217;t I see the Flex engineers at out BangaloreFx meetings which happens in their own building?&lt;/p&gt;
&lt;p&gt;3. Adobe evangelist go out and give presentations to several companies every day &amp;#8230; I don&amp;#8217;t think any of them mention the local Flex User Group or Flex India .. where all these new adopters could get help and gain knowledge.&lt;/p&gt;
&lt;p&gt;I could go on &amp;#8230;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;In short I feel while Adobe on the whole does a great job of including community &amp;#8230; Adobe India has been completely ignoring it.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;I&amp;#8217;m disappointed.
&lt;/p&gt;&lt;/blockquote&gt;
&lt;p&gt;Himanshu Modi from &lt;a href="http://www.teknopoint.info/"&gt;Tekno Point &lt;/a&gt;agreed with some of my points but suggested that we as community champions should step up organize things on our own  &amp;#8230; here&amp;#8217;s my reaction his thoughts &amp;#8230;&lt;/p&gt;
&lt;blockquote&gt;&lt;p&gt;
Hi Himanshu,&lt;/p&gt;
&lt;p&gt;Thank you for replying.&lt;br /&gt;
I see your point, .. but the events we organize as community champions is a whole other discussion .. yes we should do that and many of us have been &amp;#8230;  RIA Connect, initRIA, User Group Tours/Meetings etc.&lt;/p&gt;
&lt;p&gt;My point here is different &amp;#8230; I&amp;#8217;m disappointed because none of Adobe India&amp;#8217;s existing efforts seem to include community &amp;#8230; its as if they organize/plan everything forgetting that there is an active community out there that can help &amp;#8230; I&amp;#8217;m not requesting any new events here &amp;#8230; I&amp;#8217;m questioning why community is not included in exiting efforts &amp;#8230; we see Adobe world wide do this beautifully everyday .. community is included at a very early stage .. take MAX for example or the launch of Adobe Groups.&lt;/p&gt;
&lt;p&gt;I receive info about an event in San Fransisco 2 months in advance &amp;#8230; in contrast .. I receive info about an event in Bangalore 18 days before the event along with public announcement  with obviously no room for suggestion and no inclusion of community whatsoever even though I had suggested that last year&lt;br /&gt;
All Adobe India events have tech talks only from Adobe speakers .. &lt;strong&gt;why don&amp;#8217;t they take advantage of expertise in the community?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Also, why don&amp;#8217;t I see adobe india .. support/promote/contribute to existing efforts of the community &amp;#8230; user groups, mailing lists etc &amp;#8230; did anyone from Adobe India help you promote RIA Connect?
&lt;/p&gt;&lt;/blockquote&gt;
&lt;p&gt;John Koch from Adobe who has been very helpful to the Indian Community and has all my respect, acknowledged that he saw my frustration and would communicate my thoughts to all concerned .. here&amp;#8217;s my reply to him &amp;#8230;&lt;/p&gt;
&lt;blockquote&gt;&lt;p&gt;Hi John,&lt;/p&gt;
&lt;p&gt;Thank you for replying &amp;#8230;.. I know you understand my point of view &amp;#8230; anyone who has spent some time thinking about community, its effects and its benefits should see what I&amp;#8217;m saying.&lt;/p&gt;
&lt;p&gt;What&amp;#8217;s surprising to me is that there is team at Adobe India whose job is to focus on community and yet they repeated fail to see the obvious.&lt;/p&gt;
&lt;p&gt;I&amp;#8217;m picking on one particular team here &amp;#8230; I know everyone in that team &amp;#8230; &lt;strong&gt;they are all great guys and gals .. but I feel I&amp;#8217;m obligated to point out their mistakes in the interest of a common goal &lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;I&amp;#8217;m sorry to have put you in this position of having to communicate my strongly worded comments &amp;#8230; I was about to put this in a blog post and let them know directly how I feel, but then I thought that saying something like that in public would put a lot of people on the defensive &amp;#8230; and that is not what we need here. &lt;strong&gt;I would love to have this discussion be direct so if you just want to forward this thread to all concerned and have an all hands discussion I&amp;#8217;m open to that.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Thank you as always for helping.&lt;br /&gt;
Mrinal
&lt;/p&gt;&lt;/blockquote&gt;
&lt;p&gt;Anantharaman Mani who runs the &lt;a href="http://groups.google.com/group/chennai-flex-user-group"&gt;Chennai Flex User Group&lt;/a&gt; also agreed with me on some counts but made a point that there are cultural differences between India and abroad and it is somewhat unfair to single out one team at adobe when there is less community focus in all of India Software industry &amp;#8230; here is my reply to his thoughts &amp;#8230;&lt;/p&gt;
&lt;blockquote&gt;&lt;p&gt;
Hi Ananth,&lt;/p&gt;
&lt;p&gt;Thank you for replying &amp;#8230; you&amp;#8217;ve raised a very good point about culture &amp;#8230; but here&amp;#8217;s as I see it &amp;#8230;&lt;/p&gt;
&lt;p&gt;Adobe India is impacted by two cultures &amp;#8230;. 1. The culture of corporate India and 2. The culture of Adobe &amp;#8230;.  you&amp;#8217;re right most corporates in India don&amp;#8217;t get community &amp;#8230; but what surprises me is how Adobe India is not able to gain from its own world wide culture of nurturing communities &amp;#8230; Adobe worldwide oozes with understanding of community &amp;#8230; I mean big decisions a are made by including community &amp;#8230; see the Flex SDK, see the Adobe Groups initiative, see the activity of Flex team members on mailing lists, twitter et al. &amp;#8230; so how come Adobe India misses this and their evangelism efforts continue be &lt;strong&gt;one sided marketing messages &lt;/strong&gt;&amp;#8230; I mean that team might as well be called Adobe Marketing.&lt;/p&gt;
&lt;p&gt;While they&amp;#8217;re almost the same, there is a cultural difference between those two words &amp;#8212;  &lt;strong&gt;Marketing and Evangelism.     &lt;/strong&gt;&lt;br /&gt;
&lt;strong&gt;&lt;br /&gt;
(In a separate email, I said &amp;#8230;)&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Why I&amp;#8217;m singling out just team is because I want this one team to change their approach &amp;#8230; that change will greatly help improve our ecosystem &amp;#8230; blaming the society won&amp;#8217;t get us anywhere.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;There were other valuable reactions on the thread from &lt;a href="http://www.abdulqabiz.com/blog/"&gt;Abdul Qabiz&lt;/a&gt; and others, but I will leave it to the other contributors of the discussion if they want to make their thoughts public. &lt;/p&gt;
&lt;p&gt;Adobe community in India is small knit and I guess I&amp;#8217;ve stepped on a few toes here .. but I feel that the reason Adobe runs various community programs is to solicit genuine critique and feedback, so being part of the community champions program, I feel obligated to share my thoughts and that is what I am doing here, unfortunate that people are &lt;a href="http://twitter.com/hsivaram/status/2720912746"&gt;reacting the way they are&lt;/a&gt;.   &lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/mrinalwadhwa/ragstoriches?a=e6vJ42Zckak:Jp87ZayfBm0:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/mrinalwadhwa/ragstoriches?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/mrinalwadhwa/ragstoriches?a=e6vJ42Zckak:Jp87ZayfBm0:2mJPEYqXBVI"&gt;&lt;img src="http://feeds.feedburner.com/~ff/mrinalwadhwa/ragstoriches?d=2mJPEYqXBVI" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/mrinalwadhwa/ragstoriches?a=e6vJ42Zckak:Jp87ZayfBm0:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/mrinalwadhwa/ragstoriches?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/mrinalwadhwa/ragstoriches/~4/e6vJ42Zckak" height="1" width="1"/&gt;</description>
		<wfw:commentRss>http://weblog.mrinalwadhwa.com/2009/07/19/disappointed/feed/</wfw:commentRss>
		<slash:comments>29</slash:comments>
		<feedburner:origLink>http://weblog.mrinalwadhwa.com/2009/07/19/disappointed/</feedburner:origLink></item>
		<item>
		<title>Presenting Flex 4 Component Lifecycle at FlexMania</title>
		<link>http://feedproxy.google.com/~r/mrinalwadhwa/ragstoriches/~3/Et0wBuDpjWM/</link>
		<comments>http://weblog.mrinalwadhwa.com/2009/07/04/flexmania/#comments</comments>
		<pubDate>Sat, 04 Jul 2009 00:52:09 +0000</pubDate>
		<dc:creator>Mrinal Wadhwa</dc:creator>
				<category><![CDATA[Flex]]></category>
		<category><![CDATA[RIA]]></category>
		<category><![CDATA[2009]]></category>
		<category><![CDATA[adobe]]></category>
		<category><![CDATA[brazil]]></category>
		<category><![CDATA[flex mania]]></category>
		<category><![CDATA[flex4]]></category>
		<category><![CDATA[flexmania]]></category>
		<category><![CDATA[mania]]></category>
		<category><![CDATA[mrinal]]></category>
		<category><![CDATA[mrinal wadhwa]]></category>
		<category><![CDATA[mrinalwadhwa]]></category>
		<category><![CDATA[present]]></category>
		<category><![CDATA[talk]]></category>

		<guid isPermaLink="false">http://weblog.mrinalwadhwa.com/?p=989</guid>
		<description>&lt;p&gt;&lt;a href="http://www.flexmania.com.br/"&gt;&lt;img src="http://weblog.mrinalwadhwa.com/wp-content/uploads/2009/07/flexmania.jpg" alt="FlexMania" width="100%"/&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="http://www.flexmania.com.br/"&gt;FlexMania&lt;/a&gt; is a Brazilian online event organized by &lt;a href="http://www.igorcosta.org/"&gt;Igor Costa&lt;/a&gt;. The event is focused on the Flash Platform and has a great collection of Flash/Flex/AIR related &lt;a href="http://www.flexmania.com.br/calendario.html"&gt;talks&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Although, most of the talks are in portuguese, there are some interesting english sessions as well like Laura Arguello on &lt;a href="http://mate.asfusion.com/"&gt;Mate Framework&lt;/a&gt;, Stephen Downs (a.k.a Tink) on &lt;a href="http://www.efflex.org/"&gt;Efflex&lt;/a&gt; and Iiley Chen on &lt;a href="http://www.aswing.org/"&gt;AsWing&lt;/a&gt;    &lt;/p&gt;
&lt;p&gt;I will also be presenting in english, my talk is &amp;#8220;A Flex 4 Component&amp;#8217;s Lifecycle&amp;#8221; on Monday, July 6th at 15:30 GMT. &lt;/p&gt;
&lt;hr /&gt;
&lt;strong&gt;RECORDING: &lt;/strong&gt;Here&amp;#8217;s the 1hr long &lt;a href="http://go.mrinalwadhwa.com/flext4"&gt; Adobe Connect recording &lt;/a&gt; of the talk from FlexMania&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;SLIDES AND CODE: &lt;/strong&gt;The &lt;a href="http://weblog.mrinalwadhwa.com/2009/06/21/flex-4-component-lifecycle/"&gt;slides and code&lt;/a&gt; from the talk can be found &lt;a href="http://weblog.mrinalwadhwa.com/2009/06/21/flex-4-component-lifecycle/"&gt;here&lt;/a&gt;&lt;/p&gt;
&lt;hr /&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/mrinalwadhwa/ragstoriches?a=Et0wBuDpjWM:SdDACBpmP5E:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/mrinalwadhwa/ragstoriches?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/mrinalwadhwa/ragstoriches?a=Et0wBuDpjWM:SdDACBpmP5E:2mJPEYqXBVI"&gt;&lt;img src="http://feeds.feedburner.com/~ff/mrinalwadhwa/ragstoriches?d=2mJPEYqXBVI" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/mrinalwadhwa/ragstoriches?a=Et0wBuDpjWM:SdDACBpmP5E:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/mrinalwadhwa/ragstoriches?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/mrinalwadhwa/ragstoriches/~4/Et0wBuDpjWM" height="1" width="1"/&gt;</description>
		<wfw:commentRss>http://weblog.mrinalwadhwa.com/2009/07/04/flexmania/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		<feedburner:origLink>http://weblog.mrinalwadhwa.com/2009/07/04/flexmania/</feedburner:origLink></item>
		<item>
		<title>Flex 4 Component Lifecycle (Slides and Code)</title>
		<link>http://feedproxy.google.com/~r/mrinalwadhwa/ragstoriches/~3/0x_3gYbs0kw/</link>
		<comments>http://weblog.mrinalwadhwa.com/2009/06/21/flex-4-component-lifecycle/#comments</comments>
		<pubDate>Sun, 21 Jun 2009 17:52:42 +0000</pubDate>
		<dc:creator>Mrinal Wadhwa</dc:creator>
				<category><![CDATA[Flex]]></category>
		<category><![CDATA[RIA]]></category>
		<category><![CDATA[component]]></category>
		<category><![CDATA[components]]></category>
		<category><![CDATA[flex4]]></category>
		<category><![CDATA[gumbo]]></category>
		<category><![CDATA[halo]]></category>
		<category><![CDATA[spark]]></category>

		<guid isPermaLink="false">http://weblog.mrinalwadhwa.com/?p=945</guid>
		<description>&lt;p&gt;I gave a talk this Friday on the lifecycle of a component in &lt;a href="http://opensource.adobe.com/wiki/display/flexsdk/Gumbo"&gt;Flex 4&lt;/a&gt;. The talk went into the details of how the flash player works, why a component needs a lifecycle and the various stages of a components life.&lt;/p&gt;
&lt;hr /&gt;
&lt;strong&gt;UPDATE: &lt;/strong&gt; I gave the same talk at &lt;a href="http://weblog.mrinalwadhwa.com/2009/07/04/flexmania/"&gt;FlexMania&lt;/a&gt; .. Here&amp;#8217;s the 1hr long &lt;a href="http://go.mrinalwadhwa.com/flext4"&gt; Adobe Connect recording &lt;/a&gt;&lt;br /&gt;
&amp;nbsp;&lt;/p&gt;
&lt;hr /&gt;
&lt;p&gt;Here are the slides and experimental code from the talk &amp;#8230; &lt;/p&gt;
&lt;p&gt;&lt;object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=9,0,115,0" width="650" height="550"&gt;&lt;param name="movie" value="https://share.acrobat.com/adc/flex/mpt.swf" /&gt;&lt;param name="quality" value="high" /&gt;&lt;param name="wmode" value="transparent"/&gt;&lt;param name="allowFullScreen" value="true"/&gt;&lt;param name="flashvars"  value="ext=pdf&amp;#038;docId=3538fc34-e9f8-4264-97e1-12ee8aca6cbf&amp;#038;lang=en_US"/&gt;&lt;embed src="https://share.acrobat.com/adc/flex/mpt.swf"  quality="high"  pluginspage="http://www.adobe.com/shockwave/download/download.cgi?P1_Prod_Version=ShockwaveFlash"  type="application/x-shockwave-flash" width="650" height="550" wmode="transparent" allowFullScreen="true" flashvars="ext=pdf&amp;#038;docId=3538fc34-e9f8-4264-97e1-12ee8aca6cbf&amp;#038;lang=en_US"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;/p&gt;
&lt;p&gt;Here&amp;#8217;s the code we played with to understand how frame rates work in the flash player &amp;#8230; &lt;!--more--&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="http://experiments.mrinalwadhwa.com/flex4lifecycle_talk/source/FrameRates.as.html"&gt;&lt;/p&gt;
&lt;h3&gt;FrameRates.as&lt;/h3&gt;
&lt;p&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;iframe src ="http://experiments.mrinalwadhwa.com/flex4lifecycle_talk/source/FrameRates.as.html" width="100%" height="300"&gt;&lt;br /&gt;
&lt;/iframe&gt;&lt;/p&gt;
&lt;p&gt;Here&amp;#8217;s the code we wrote with to understand the &lt;a href="http://www.onflex.org/ted/2005/07/flash-player-mental-model-elastic.php"&gt;Elastic Racetrack&lt;/a&gt; &amp;#8230;&lt;/p&gt;
&lt;p&gt;&lt;a href="http://experiments.mrinalwadhwa.com/flex4lifecycle_talk/source/ElasticRaceTrack.as.html"&gt;&lt;/p&gt;
&lt;h3&gt;ElasticRaceTrack.as&lt;/h3&gt;
&lt;p&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;iframe src ="http://experiments.mrinalwadhwa.com/flex4lifecycle_talk/source/ElasticRaceTrack.as.html" width="100%" height="300"&gt;&lt;br /&gt;
&lt;/iframe&gt;&lt;/p&gt;
&lt;p&gt;Here&amp;#8217;s the experiment to understand &lt;a href="http://www.craftymind.com/2008/04/18/updated-elastic-racetrack-for-flash-9-and-avm2/"&gt;marshaled slices&lt;/a&gt; &amp;#8230;&lt;/p&gt;
&lt;p&gt;&lt;a href="http://experiments.mrinalwadhwa.com/flex4lifecycle_talk/source/MarshalledSlices.as.html"&gt;&lt;/p&gt;
&lt;h3&gt;MarshaledSlices.as&lt;/h3&gt;
&lt;p&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;iframe src ="http://experiments.mrinalwadhwa.com/flex4lifecycle_talk/source/MarshalledSlices.as.html" width="100%" height="300"&gt;&lt;br /&gt;
&lt;/iframe&gt;&lt;/p&gt;
&lt;blockquote&gt;&lt;p&gt;
&lt;a href="http://weblog.mrinalwadhwa.com/wp-content/uploads/2009/06/flex-4-component-lifecycle.pdf"&gt;&lt;strong&gt;Download Slides&lt;/strong&gt;&lt;/a&gt;&lt;br /&gt;
&lt;a href="http://experiments.mrinalwadhwa.com/flex4lifecycle_talk/testproject.zip"&gt;&lt;strong&gt;Download Source Code&lt;/strong&gt;&lt;/a&gt;
&lt;/p&gt;&lt;/blockquote&gt;
&lt;p&gt;The presentation was slightly long and I&amp;#8217;ve already heard that some people &lt;a href="http://cfmitrah.com/blog/post.cfm/coldfusion-9-bolt-meeting-at-bangalore"&gt;found it boring&lt;/a&gt; but I hope that wasn&amp;#8217;t the case for everyone &lt;img src='http://weblog.mrinalwadhwa.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /&gt; &lt;/p&gt;
&lt;p&gt;I would like to thank all the awesome people in the Flash/Flex community who have helped me understand all this by publishing some great articles and blog posts &amp;#8230; here are just some of the articles that I&amp;#8217;ve found very useful &amp;#8230;&lt;br /&gt;
&lt;a href="http://www.onflex.org/ted/2005/07/flash-player-mental-model-elastic.php"&gt;&lt;br /&gt;
Ted Patrick on the Elastic Racetrack&lt;/a&gt;&lt;a href="http://www.craftymind.com/2008/04/18/updated-elastic-racetrack-for-flash-9-and-avm2/"&gt;&lt;br /&gt;
Sean Christmann&amp;#8217;s Updated ‘Elastic Racetrack’ for Flash 9 and AVM2&lt;/a&gt;&lt;br /&gt;
Ely Greenfrield on &lt;a href="http://onflex.org/ACDS/BuildingAFlexComponent.pdf"&gt;Building a Flex Component&lt;/a&gt; [PDF] (Thanks Ted Patrick for making it available on his blog)&lt;br /&gt;
&lt;a href="http://weblog.mrinalwadhwa.com/2009/02/17/understanding-the-flex-component-lifecycle/"&gt;&amp;#8220;Diving Deep With the Flex Component Lifecycle,&amp;#8221;&lt;/a&gt; by &lt;a href="http://bradumbaugh.blogspot.com/"&gt;Brad Umbaugh&lt;/a&gt; and &lt;a href="http://rjria.blogspot.com/"&gt;RJ Owen&lt;/a&gt;&lt;br /&gt;
&lt;a href="http://www.developmentarc.com/site/articles/"&gt;White Paper by the guys at Development Arc on Component Lifecycle &lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Please do let me know what you thought of my talk and how I can improve it.&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/mrinalwadhwa/ragstoriches?a=0x_3gYbs0kw:gfvW3WN2pRs:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/mrinalwadhwa/ragstoriches?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/mrinalwadhwa/ragstoriches?a=0x_3gYbs0kw:gfvW3WN2pRs:2mJPEYqXBVI"&gt;&lt;img src="http://feeds.feedburner.com/~ff/mrinalwadhwa/ragstoriches?d=2mJPEYqXBVI" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/mrinalwadhwa/ragstoriches?a=0x_3gYbs0kw:gfvW3WN2pRs:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/mrinalwadhwa/ragstoriches?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/mrinalwadhwa/ragstoriches/~4/0x_3gYbs0kw" height="1" width="1"/&gt;</description>
		<wfw:commentRss>http://weblog.mrinalwadhwa.com/2009/06/21/flex-4-component-lifecycle/feed/</wfw:commentRss>
		<slash:comments>37</slash:comments>
		<feedburner:origLink>http://weblog.mrinalwadhwa.com/2009/06/21/flex-4-component-lifecycle/</feedburner:origLink></item>
	</channel>
</rss><!-- Dynamic Page Served (once) in 0.972 seconds --><!-- Cached page served by WP-Cache -->
