<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>grimmwerks &#187; Flex</title>
	<atom:link href="http://www.grimmwerks.com/tag/flex/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.grimmwerks.com</link>
	<description>interactive  +  musical  +  geekery</description>
	<lastBuildDate>Wed, 23 Nov 2011 04:46:55 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	

<!-- Debugging help, do not remove -->
<meta name="Framework" content="Kpress" />
<meta name="Theme Version" content="1.1" />
<meta name="Framework Version" content="1.1" />


		<item>
		<title>Mix Financial Platform</title>
		<link>http://www.grimmwerks.com/work/mix-financial-platform/</link>
		<comments>http://www.grimmwerks.com/work/mix-financial-platform/#comments</comments>
		<pubDate>Fri, 11 Nov 2011 23:38:55 +0000</pubDate>
		<dc:creator>grimmwerks</dc:creator>
				<category><![CDATA[work]]></category>
		<category><![CDATA[activeMQ]]></category>
		<category><![CDATA[fabrication]]></category>
		<category><![CDATA[flash]]></category>
		<category><![CDATA[Flash Builder]]></category>
		<category><![CDATA[Flex]]></category>
		<category><![CDATA[java]]></category>
		<category><![CDATA[pureMVC]]></category>
		<category><![CDATA[stomp]]></category>

		<guid isPermaLink="false">http://www.grimmwerks.com/?p=1631</guid>
		<description><![CDATA[From January to September of 2011 I was the sole front end developer for a new global financial application built from scratch for a Hong Kong based company called Investlab. Created as a cost effective solution for bankers and their clients to access global markets, it was architectured in a very modular way, with nearly [...]]]></description>
			<content:encoded><![CDATA[<p id="top" />
<p>From January to September of 2011 I was the sole front end developer for a new global financial application built from scratch for a Hong Kong based company called Investlab.  Created as a cost effective solution for bankers and their clients to access global markets, it was architectured in a very modular way, with nearly all areas as self contained widgets that could exist in any configuration; working alone or inter messaging other widgets.</p>
<p><span id="more-1631"></span></p>
<p>The backend architecture used JMS brokers, ActiveMQ and STOMP for messaging, keeping everything in cache rather than as database objects.  Passing data through a socket connection to the front end, Flex utilized a number of very interesting frameworks to allow a very quick and clean modular approach.</p>
<p>PureMVC and it&#8217;s subset Fabrication allowed me to create Flash a multi-core (a sort of multi-singleton approach) application using multiple flex modules built from the same value objects, models and interchangeable views while retaining their own controllers.   PureMVC&#8217;s multicore has a utility called &#8216;Pipes&#8217; (think plumbing) that allows the modules to communicate, but Fabrication really came in handy as it did all the heavy lifting of &#8216;fabricating&#8217; the piping structure; allowing one to send messages from one module to another with ease.  For example if moduleA wants to send a message to all modules within the main application it would do so as &#8220;*&#8221; and all modules could receive that message if interested; if moduleA wanted to communicate with moduleB it could do so as a named module (i.e. &#8220;/modules/moduleB&#8221;).  Or multiple instances of the same module could receive a message sent to &#8216;/infoModules/*&#8217; etc.</p>

<a href='http://www.grimmwerks.com/wp-content/uploads/2011/11/mix-arc.002.png' rel='shadowbox[sbalbum-1631];player=img;' title='Mix UI: Flex Architecture Overview'><img width="50" height="50" src="http://www.grimmwerks.com/wp-content/uploads/2011/11/mix-arc.002-50x50.png" class="attachment-thumbnail" alt="Mix UI: Flex Architecture Overview" title="Mix UI: Flex Architecture Overview" /></a>
<a href='http://www.grimmwerks.com/wp-content/uploads/2011/11/mix-arc.003.png' rel='shadowbox[sbalbum-1631];player=img;' title='Mix UI: Flex Architecture PureMVC/Fabrication'><img width="50" height="50" src="http://www.grimmwerks.com/wp-content/uploads/2011/11/mix-arc.003-50x50.png" class="attachment-thumbnail" alt="Mix UI: Flex Architecture PureMVC/Fabrication" title="Mix UI: Flex Architecture PureMVC/Fabrication" /></a>
<a href='http://www.grimmwerks.com/wp-content/uploads/2011/11/mix-arc.004.png' rel='shadowbox[sbalbum-1631];player=img;' title='Mix UI: Flex Architecture Application Shell'><img width="50" height="50" src="http://www.grimmwerks.com/wp-content/uploads/2011/11/mix-arc.004-50x50.png" class="attachment-thumbnail" alt="Mix UI: Flex Architecture Application Shell" title="Mix UI: Flex Architecture Application Shell" /></a>
<a href='http://www.grimmwerks.com/wp-content/uploads/2011/11/mix-arc.005.png' rel='shadowbox[sbalbum-1631];player=img;' title='Mix UI: Flex Architecture Widgets'><img width="50" height="50" src="http://www.grimmwerks.com/wp-content/uploads/2011/11/mix-arc.005-50x50.png" class="attachment-thumbnail" alt="Mix UI: Flex Architecture Widgets" title="Mix UI: Flex Architecture Widgets" /></a>
<a href='http://www.grimmwerks.com/wp-content/uploads/2011/11/mix-arc.006.png' rel='shadowbox[sbalbum-1631];player=img;' title='Mix UI: Widget Screen Creator idea'><img width="50" height="50" src="http://www.grimmwerks.com/wp-content/uploads/2011/11/mix-arc.006-50x50.png" class="attachment-thumbnail" alt="Mix UI: Widget Screen Creator idea" title="Mix UI: Widget Screen Creator idea" /></a>

<p>Programming as modular widgets allowed us to revisit exactly how the user would interact with the system easily, and within this short time frame there were a number of developmental changes and tests.  Taking a bit of the unused Verizon interface I tried to sketch out some ideas on how the application could function, this one based on initial ideas given to me.</p>

<a href='http://www.grimmwerks.com/wp-content/uploads/2011/11/MIX-UI.001.png' rel='shadowbox[sbalbum-0];player=img;' title='Mix UI Ideas 1'><img width="50" height="50" src="http://www.grimmwerks.com/wp-content/uploads/2011/11/MIX-UI.001-50x50.png" class="attachment-thumbnail" alt="Mix UI Ideas 1" title="Mix UI Ideas 1" /></a>
<a href='http://www.grimmwerks.com/wp-content/uploads/2011/11/MIX-UI.002.png' rel='shadowbox[sbalbum-0];player=img;' title='Mix UI Ideas 2'><img width="50" height="50" src="http://www.grimmwerks.com/wp-content/uploads/2011/11/MIX-UI.002-50x50.png" class="attachment-thumbnail" alt="Mix UI Ideas 2" title="Mix UI Ideas 2" /></a>
<a href='http://www.grimmwerks.com/wp-content/uploads/2011/11/MIX-UI.003.png' rel='shadowbox[sbalbum-0];player=img;' title='Mix UI Ideas 3'><img width="50" height="50" src="http://www.grimmwerks.com/wp-content/uploads/2011/11/MIX-UI.003-50x50.png" class="attachment-thumbnail" alt="Mix UI Ideas 3" title="Mix UI Ideas 3" /></a>
<a href='http://www.grimmwerks.com/wp-content/uploads/2011/11/MIX-UI.004.png' rel='shadowbox[sbalbum-0];player=img;' title='Mix UI Ideas 4'><img width="50" height="50" src="http://www.grimmwerks.com/wp-content/uploads/2011/11/MIX-UI.004-50x50.png" class="attachment-thumbnail" alt="Mix UI Ideas 4" title="Mix UI Ideas 4" /></a>
<a href='http://www.grimmwerks.com/wp-content/uploads/2011/11/MIX-UI.005.png' rel='shadowbox[sbalbum-0];player=img;' title='Mix UI Ideas 5'><img width="50" height="50" src="http://www.grimmwerks.com/wp-content/uploads/2011/11/MIX-UI.005-50x50.png" class="attachment-thumbnail" alt="Mix UI Ideas 5" title="Mix UI Ideas 5" /></a>
<a href='http://www.grimmwerks.com/wp-content/uploads/2011/11/MIX-UI.006.png' rel='shadowbox[sbalbum-0];player=img;' title='Mix UI Ideas 6'><img width="50" height="50" src="http://www.grimmwerks.com/wp-content/uploads/2011/11/MIX-UI.006-50x50.png" class="attachment-thumbnail" alt="Mix UI Ideas 6" title="Mix UI Ideas 6" /></a>
<a href='http://www.grimmwerks.com/wp-content/uploads/2011/11/MIX-UI.008.png' rel='shadowbox[sbalbum-0];player=img;' title='Mix UI Ideas 7'><img width="50" height="50" src="http://www.grimmwerks.com/wp-content/uploads/2011/11/MIX-UI.008-50x50.png" class="attachment-thumbnail" alt="Mix UI Ideas 7" title="Mix UI Ideas 7" /></a>
<a href='http://www.grimmwerks.com/wp-content/uploads/2011/11/MIX-UI.009.png' rel='shadowbox[sbalbum-0];player=img;' title='Mix UI Ideas 8'><img width="50" height="50" src="http://www.grimmwerks.com/wp-content/uploads/2011/11/MIX-UI.009-50x50.png" class="attachment-thumbnail" alt="Mix UI Ideas 8" title="Mix UI Ideas 8" /></a>
<a href='http://www.grimmwerks.com/wp-content/uploads/2011/11/MIX-UI.010.png' rel='shadowbox[sbalbum-0];player=img;' title='Mix UI Ideas 9'><img width="50" height="50" src="http://www.grimmwerks.com/wp-content/uploads/2011/11/MIX-UI.010-50x50.png" class="attachment-thumbnail" alt="Mix UI Ideas 9" title="Mix UI Ideas 9" /></a>
<a href='http://www.grimmwerks.com/wp-content/uploads/2011/11/MIX-UI.012.png' rel='shadowbox[sbalbum-0];player=img;' title='Mix UI Ideas 10'><img width="50" height="50" src="http://www.grimmwerks.com/wp-content/uploads/2011/11/MIX-UI.012-50x50.png" class="attachment-thumbnail" alt="Mix UI Ideas 10" title="Mix UI Ideas 10" /></a>

<p>I was also asked to mock out a version the way I thought would be best, in this case I thought a tablet / iPad application would work really well.</p>

<a href='http://www.grimmwerks.com/wp-content/uploads/2011/11/2.MIX-login.png' rel='shadowbox[sbalbum-1631];player=img;' title='2.MIX-login'><img width="50" height="50" src="http://www.grimmwerks.com/wp-content/uploads/2011/11/2.MIX-login-50x50.png" class="attachment-thumbnail" alt="2.MIX-login" title="2.MIX-login" /></a>
<a href='http://www.grimmwerks.com/wp-content/uploads/2011/11/3.MIX-WIDGETS-Get-Data.png' rel='shadowbox[sbalbum-1631];player=img;' title='3.MIX-WIDGETS Get Data'><img width="50" height="50" src="http://www.grimmwerks.com/wp-content/uploads/2011/11/3.MIX-WIDGETS-Get-Data-50x50.png" class="attachment-thumbnail" alt="3.MIX-WIDGETS Get Data" title="3.MIX-WIDGETS Get Data" /></a>
<a href='http://www.grimmwerks.com/wp-content/uploads/2011/11/4.MIX-Activity-selected1.png' rel='shadowbox[sbalbum-1631];player=img;' title='4.MIX-Activity-selected'><img width="50" height="50" src="http://www.grimmwerks.com/wp-content/uploads/2011/11/4.MIX-Activity-selected1-50x50.png" class="attachment-thumbnail" alt="4.MIX-Activity-selected" title="4.MIX-Activity-selected" /></a>
<a href='http://www.grimmwerks.com/wp-content/uploads/2011/11/5.MIX-Activity-selected-open.png' rel='shadowbox[sbalbum-1631];player=img;' title='5.MIX-Activity-selected-open'><img width="50" height="50" src="http://www.grimmwerks.com/wp-content/uploads/2011/11/5.MIX-Activity-selected-open-50x50.png" class="attachment-thumbnail" alt="5.MIX-Activity-selected-open" title="5.MIX-Activity-selected-open" /></a>
<a href='http://www.grimmwerks.com/wp-content/uploads/2011/11/6.MIX-Trades.png' rel='shadowbox[sbalbum-1631];player=img;' title='6.MIX-Trades'><img width="50" height="50" src="http://www.grimmwerks.com/wp-content/uploads/2011/11/6.MIX-Trades-50x50.png" class="attachment-thumbnail" alt="6.MIX-Trades" title="6.MIX-Trades" /></a>
<a href='http://www.grimmwerks.com/wp-content/uploads/2011/11/7.MIX-Trades-subselected.png' rel='shadowbox[sbalbum-1631];player=img;' title='7.MIX-Trades-subselected'><img width="50" height="50" src="http://www.grimmwerks.com/wp-content/uploads/2011/11/7.MIX-Trades-subselected-50x50.png" class="attachment-thumbnail" alt="7.MIX-Trades-subselected" title="7.MIX-Trades-subselected" /></a>

<p>The demo at this point is nearly a full featured product, saving data to the cache and taking orders through the rules.<br />
The ability to create users and accounts, attribute them to a firm, give each account a base currency and country.  Users can trade on multiple accounts, tracking orders, lots and balances.  A user can look up symbols on multiple exchanges under multiple currencies, seeing historical data or recent news articles on the symbol before putting in an order.</p>
<p><iframe src="http://player.vimeo.com/video/31981435" width="607" height="372" frameborder="0" webkitAllowFullScreen allowFullScreen></iframe>
<p><a href="http://vimeo.com/31981435">Mix Client Demo</a> from <a href="http://vimeo.com/grimmwerks">G Schafer</a> on <a href="http://vimeo.com">Vimeo</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.grimmwerks.com/work/mix-financial-platform/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Unrabble</title>
		<link>http://www.grimmwerks.com/work/unrabble/</link>
		<comments>http://www.grimmwerks.com/work/unrabble/#comments</comments>
		<pubDate>Tue, 02 Nov 2010 00:48:46 +0000</pubDate>
		<dc:creator>grimmwerks</dc:creator>
				<category><![CDATA[work]]></category>
		<category><![CDATA[actionscript]]></category>
		<category><![CDATA[Flex]]></category>
		<category><![CDATA[Flex skinning]]></category>

		<guid isPermaLink="false">http://www.grimmwerks.com/?p=1672</guid>
		<description><![CDATA[From June to October of 2010 I worked on a really interesting project that a whole new spin on the hiring process: Unrabble. What made this so interesting was the way it automated the hiring process to cut down on the time spent shifting through a ream of resumes. In a way, it&#8217;s like the [...]]]></description>
			<content:encoded><![CDATA[<p id="top" />
<p>From June to October of 2010 I worked on a really interesting project that a whole new spin on the hiring process: <a href="http://www.unrabble.com/" target="_blank">Unrabble</a>. What made this so interesting was the way it automated the hiring process to cut down on the time spent shifting through a ream of resumes. In a way, it&#8217;s like the &#8216;iTunes of job boards&#8217; as it ranks candidates based on skills that the hiring manager decides are most valuable &#8212; so if you&#8217;re looking for that mysql admin with java skills and cobol experience, that applicant would be pinned to the top of the heap.</p>
<p><span id="more-1672"></span></p>
<p>It also incorporates google searches and social media sites such as Facebook and LinkedIn directly in the hiring process as applicants&#8217; experience and information would be right there for the hiring manager to see. Along with a great visual timeline of experiences is what they call &#8216;Brags&#8217; &#8212; little boasts about achievements (i.e. &#8220;I singlehandedly brought in 3 million of revenue to my company&#8221;) &#8212; the candidate can ask colleagues to confirm as true and verified bring a whole level of micro-referencing to the application process. It&#8217;s quite brilliant actually.</p>
<p>Even at the onset of the application process from the applicant&#8217;s perspective Unrabble asks all those questions that aren&#8217;t *directly* part of a job but have a huge bearing on a company culture &#8212; if they prefer to work in large vs smaller companies, or what they&#8217;re passions lie.</p>
<p>Much like iTunes the hiring manager can continually rate an applicant through questions and interactions, changing needs of the job, sharing an applicant&#8217;s information with a colleague or finally through meeting. The best candidate will always bubble up to the top.</p>

<a href='http://www.grimmwerks.com/wp-content/uploads/2011/11/th_63aab621fefe81aa6a5b8b7ccb0806d9_52.jpg' rel='shadowbox[sbalbum-1672];player=img;' title='Adding your company'><img width="50" height="50" src="http://www.grimmwerks.com/wp-content/uploads/2011/11/th_63aab621fefe81aa6a5b8b7ccb0806d9_52-50x50.jpg" class="attachment-thumbnail" alt="Adding your company" title="Adding your company" /></a>
<a href='http://www.grimmwerks.com/wp-content/uploads/2011/11/th_63aab621fefe81aa6a5b8b7ccb0806d9_58-1.jpg' rel='shadowbox[sbalbum-1672];player=img;' title='Filtering the Candidates'><img width="50" height="50" src="http://www.grimmwerks.com/wp-content/uploads/2011/11/th_63aab621fefe81aa6a5b8b7ccb0806d9_58-1-50x50.jpg" class="attachment-thumbnail" alt="Filtering the Candidates" title="Filtering the Candidates" /></a>
<a href='http://www.grimmwerks.com/wp-content/uploads/2011/11/th_63aab621fefe81aa6a5b8b7ccb0806d9_communicatecollaboratemain.jpg' rel='shadowbox[sbalbum-1672];player=img;' title='Researching the Candidate'><img width="50" height="50" src="http://www.grimmwerks.com/wp-content/uploads/2011/11/th_63aab621fefe81aa6a5b8b7ccb0806d9_communicatecollaboratemain-50x50.jpg" class="attachment-thumbnail" alt="Researching the Candidate" title="Researching the Candidate" /></a>
<a href='http://www.grimmwerks.com/wp-content/uploads/2011/11/th_63aab621fefe81aa6a5b8b7ccb0806d9_communicatecollaboratemain255.jpg' rel='shadowbox[sbalbum-1672];player=img;' title='Sharing with Colleagues'><img width="50" height="50" src="http://www.grimmwerks.com/wp-content/uploads/2011/11/th_63aab621fefe81aa6a5b8b7ccb0806d9_communicatecollaboratemain255-50x50.jpg" class="attachment-thumbnail" alt="Sharing with Colleagues" title="Sharing with Colleagues" /></a>

<p>The interest in Unrabble has been hot; along with being named <a href="http://www.networkworld.com/news/2011/091311-five-hot-startups-at-demo-250785.html" target="_blank">one of the hottest startups at DEMO Fall </a>2011, the Next Web named it as <a href="http://thenextweb.com/insider/2011/09/15/our-10-favorite-startups-from-the-demo-2011-conference/" target="_blank">one of their favorite startups</a>.  It&#8217;s also been featured in the <a href="http://www.ft.com/intl/cms/s/0/3093021a-e0ad-11e0-947a-00144feabdc0.html#axzz1YAc7XDjm" target="_blank">Financial Times</a>, <a href="http://venturebeat.com/2011/09/13/demo-unrabble-helps-smbs-rid-themselves-of-hr-and-recruiters/" target="_blank">Venture Beat</a> and <a href="http://www.portfolio.com/views/blogs/entrepreneurship/2011/10/06/startups-unrabble-take-the-interview-look-to-ease-hiring-process-pain" target="_blank">Portfolio</a> &#8212; you can read more about these at <a href="http://www.unrabble.com/blog/" target="_blank">Unrabble&#8217;s blog.</a></p>
<p>Here&#8217;s Kevin Watson speaking at DEMO Fall 2011:</p>
<!-- ProPlayer by Isa Goksu --><div name="mediaspace" id="mediaspace"><div class="pro-player-container" width="610px" height="375px"><div id="pro-player-1672pp-single-4f2e3113608cb"></div></div></div><script type="text/javascript" charset="utf-8">var flashvars = {width: "610",height: "375",autostart: "false",repeat: "false",backcolor: "111111",frontcolor: "cccccc",lightcolor: "66cc00",stretching: "fill",enablejs: "true",mute: "false",skin: "/wp-content/plugins/proplayer/players/skins/default.swf",plugins: "",javascriptid: "1672pp-single-4f2e3113608cb",image: "",file: 'http://www.grimmwerks.com/wp-content/plugins/proplayer/playlist-controller.php?pp_playlist_id=1672pp-single-4f2e3113608cb&sid=1328427283'};var params = {wmode: "transparent",allowfullscreen: "true",allowscriptaccess: "always",allownetworking: "all"};var attributes = {id: "obj-pro-player-1672pp-single-4f2e3113608cb",name: "obj-pro-player-1672pp-single-4f2e3113608cb"};swfobject.embedSWF("http://www.grimmwerks.com/wp-content/plugins/proplayer/players/player.swf", "pro-player-1672pp-single-4f2e3113608cb", "610", "375", "9.0.0", false, flashvars, params, attributes);</script>
<p>or take a look at all the examples of use on their <a href="http://www.youtube.com/user/Unrabble" target="_blank">YouTube channel</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.grimmwerks.com/work/unrabble/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Scribelabs: MediaPod</title>
		<link>http://www.grimmwerks.com/work/scribelabs-mediapod/</link>
		<comments>http://www.grimmwerks.com/work/scribelabs-mediapod/#comments</comments>
		<pubDate>Tue, 22 Jun 2010 21:26:40 +0000</pubDate>
		<dc:creator>grimmwerks</dc:creator>
				<category><![CDATA[work]]></category>
		<category><![CDATA[flash]]></category>
		<category><![CDATA[Flex]]></category>
		<category><![CDATA[video]]></category>

		<guid isPermaLink="false">http://www.grimmwerks.com/?p=1561</guid>
		<description><![CDATA[Another app created for Scribelabs and their customers &#8211; the Advertising Research Foundation. A sort of &#8216;iTunes in the sky&#8217; this Flex app allowed authenticated subscribers to either stream and view ARF content or download to their iPod. Fun little example done in Flex and using custom TileList renderers&#8230; More information can be read at [...]]]></description>
			<content:encoded><![CDATA[<p id="top" />
<p>Another app created for Scribelabs and their customers &#8211; the Advertising Research Foundation.  A sort of &#8216;iTunes in the sky&#8217; this Flex app allowed authenticated subscribers to either stream and view ARF content or download to their iPod.  Fun little example done in Flex and using custom TileList renderers&#8230;</p>
<p><span id="more-1561"></span></p>
<p>More information <a href="http://www.scribelabs.com/software/mediapod/">can be read at scribelabs.com</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.grimmwerks.com/work/scribelabs-mediapod/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Scribelabs: Podium</title>
		<link>http://www.grimmwerks.com/work/scribelabs-podium/</link>
		<comments>http://www.grimmwerks.com/work/scribelabs-podium/#comments</comments>
		<pubDate>Tue, 22 Jun 2010 21:19:28 +0000</pubDate>
		<dc:creator>grimmwerks</dc:creator>
				<category><![CDATA[work]]></category>
		<category><![CDATA[flash]]></category>
		<category><![CDATA[flash media server]]></category>
		<category><![CDATA[Flex]]></category>
		<category><![CDATA[video]]></category>

		<guid isPermaLink="false">http://www.grimmwerks.com/?p=1558</guid>
		<description><![CDATA[Can&#8217;t write it as well as described on Scribelabs&#8217; site: &#8220;Podium offers browser-based, live multistream broadcasting and videconferencing. Built on Adobe technologies and delivered via Flash Media Servers and CDNs such as Limelight Networks, Podium is used for small geographically dispersed meetings and large-scale event broadcasts.&#8221; A Flash / Flash Media Server / CDN mashup [...]]]></description>
			<content:encoded><![CDATA[<p id="top" />
<p>Can&#8217;t write it as well as described on Scribelabs&#8217; site: &#8220;Podium offers browser-based, live multistream broadcasting and videconferencing. Built on Adobe technologies and delivered via Flash Media Servers and CDNs such as Limelight Networks, Podium is used for small geographically dispersed meetings and large-scale event broadcasts.&#8221;</p>
<p><span id="more-1558"></span></p>
<p>A Flash / Flash Media Server / CDN mashup that allows the virtual meetup to be streamed across the web in real time&#8230;for more information check out the pages at scribelabs:<a href="http://www.scribelabs.com/software/scribelive/">http://www.scribelabs.com/software/scribelive/</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.grimmwerks.com/work/scribelabs-podium/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>IBM ILOG Elixir 3.0 beta</title>
		<link>http://www.grimmwerks.com/blog/flex/ibm-ilog-elixir-3-0-beta%c2%a0%c2%a0riagora/</link>
		<comments>http://www.grimmwerks.com/blog/flex/ibm-ilog-elixir-3-0-beta%c2%a0%c2%a0riagora/#comments</comments>
		<pubDate>Wed, 19 May 2010 17:38:04 +0000</pubDate>
		<dc:creator>grimmwerks</dc:creator>
				<category><![CDATA[blog]]></category>
		<category><![CDATA[Flex]]></category>
		<category><![CDATA[charts]]></category>
		<category><![CDATA[data visualization]]></category>
		<category><![CDATA[flash]]></category>

		<guid isPermaLink="false">http://www.grimmwerks.com/?p=1520</guid>
		<description><![CDATA[Hmm &#8211; this looks interesting:  advanced data vis components for Flex &#8211; Diagram, Timeline, Gauges and Maps with spark-like renderers (mxml). IBM ILOG Elixir 3.0 beta &#124; RIAgora.]]></description>
			<content:encoded><![CDATA[<p id="top" />
<p>Hmm &#8211; this looks interesting:  advanced data vis components for Flex &#8211; Diagram, Timeline, Gauges and Maps with spark-like renderers (mxml).</p>
<p><a href="http://www.riagora.com/2010/05/ibm-elixir-3-0-beta/">IBM ILOG Elixir 3.0 beta | RIAgora</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.grimmwerks.com/blog/flex/ibm-ilog-elixir-3-0-beta%c2%a0%c2%a0riagora/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Busy Busy Busy! WordPress, jQuery..</title>
		<link>http://www.grimmwerks.com/blog/busy-busy-busy-wordpress-jquery/</link>
		<comments>http://www.grimmwerks.com/blog/busy-busy-busy-wordpress-jquery/#comments</comments>
		<pubDate>Tue, 18 May 2010 13:08:37 +0000</pubDate>
		<dc:creator>grimmwerks</dc:creator>
				<category><![CDATA[blog]]></category>
		<category><![CDATA[drupal]]></category>
		<category><![CDATA[elips]]></category>
		<category><![CDATA[Flex]]></category>
		<category><![CDATA[jquery]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[titanium]]></category>
		<category><![CDATA[wordpress]]></category>

		<guid isPermaLink="false">http://www.grimmwerks.com/?p=1516</guid>
		<description><![CDATA[I&#8217;ve not posted on a number of interesting tech developments of late (Adobe vs Apple) and what that means for third party iPhone / iPad compilers (appcelerator&#8217;s Titanium, Elips from openplug, Unity3d) &#8212; but I&#8217;ve been extremely busy working on a few websites utilizing WordPress and writing some custom widgets and plugins utilizing the fantastic [...]]]></description>
			<content:encoded><![CDATA[<p id="top" />
<p>I&#8217;ve not posted on a number of interesting tech developments of late (Adobe vs Apple) and what that means for third party iPhone / iPad compilers (<a href="http://www.appcelerator.com/">appcelerator&#8217;s Titanium</a>, <a href="http://www.openplug.com/">Elips from openplug</a>, <a href="http://www.unity3d.com">Unity3d</a>) &#8212; but I&#8217;ve been extremely busy working on a few websites utilizing WordPress and writing some custom widgets and plugins utilizing the fantastic <a href="http://jquery.com/">jQuery</a>.</p>
<p>I&#8217;ve been blown away getting under the hood with WordPress and jQuery &#8211; creating custom post types, smart widgets and who knows what madness &#8212; and it&#8217;s definitely something I&#8217;ll be doing a <strong>lot</strong> more.  I had been looking at <a href="http://drupal.org/">drupal</a> for these two websites but it&#8217;s definitely way more granular than I needed for these two gigs.</p>
<p>I&#8217;ve got some Flex players I&#8217;m finishing up as well and a lot more data wrasslin&#8217;&#8230;.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.grimmwerks.com/blog/busy-busy-busy-wordpress-jquery/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Flash Catalyst intro</title>
		<link>http://www.grimmwerks.com/blog/flex/flash-catalyst-intro/</link>
		<comments>http://www.grimmwerks.com/blog/flex/flash-catalyst-intro/#comments</comments>
		<pubDate>Sun, 02 May 2010 14:12:03 +0000</pubDate>
		<dc:creator>grimmwerks</dc:creator>
				<category><![CDATA[blog]]></category>
		<category><![CDATA[Flex]]></category>
		<category><![CDATA[Adobe]]></category>
		<category><![CDATA[flash]]></category>
		<category><![CDATA[Flex skinning]]></category>

		<guid isPermaLink="false">http://www.grimmwerks.com/?p=1490</guid>
		<description><![CDATA[A few good videos by Doug Winnie showing the steps from inception, wireframing to handing off the UI to a developer: All the episodes can be found here.]]></description>
			<content:encoded><![CDATA[<p id="top" />
<p>A few good videos by Doug Winnie showing the steps from inception, wireframing to handing off the UI to a developer:</p>
<p><object width="610" height="367"><param name="movie" value="http://images.tv.adobe.com/swf/player.swf"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><param name="FlashVars" value="fileID=5856&#038;context=481&#038;embeded=true&#038;environment=production"></param><embed src="http://images.tv.adobe.com/swf/player.swf" flashvars="fileID=5856&#038;context=481&#038;embeded=true&#038;environment=production" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="610" height="367"></embed></object></p>
<p>All the episodes can be found <a href="http://tv.adobe.com/show/flash-catalyst-1-1-with-doug-winnie/">here</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.grimmwerks.com/blog/flex/flash-catalyst-intro/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Adobe Air Tutorials</title>
		<link>http://www.grimmwerks.com/blog/adobe-air-tutorials/</link>
		<comments>http://www.grimmwerks.com/blog/adobe-air-tutorials/#comments</comments>
		<pubDate>Sat, 09 Jan 2010 18:28:07 +0000</pubDate>
		<dc:creator>grimmwerks</dc:creator>
				<category><![CDATA[blog]]></category>
		<category><![CDATA[Air]]></category>
		<category><![CDATA[flash]]></category>
		<category><![CDATA[Flex]]></category>

		<guid isPermaLink="false">http://www.grimmwerks.com/?p=901</guid>
		<description><![CDATA[Numerous links to Adobe Air tutorials &#8211; getting started, best practices and how to&#8217;s &#8212; can be found here.]]></description>
			<content:encoded><![CDATA[<p id="top" />
<p>Numerous links to Adobe Air tutorials &#8211; getting started, best practices and how to&#8217;s  &#8212; can be found <a href="http://vandelaydesign.com/blog/web-development/adobe-air-tutorials/">here</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.grimmwerks.com/blog/adobe-air-tutorials/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Flex: Macros available in html template files</title>
		<link>http://www.grimmwerks.com/blog/flex/flex-macros-available-in-html-template-files/</link>
		<comments>http://www.grimmwerks.com/blog/flex/flex-macros-available-in-html-template-files/#comments</comments>
		<pubDate>Tue, 24 Nov 2009 03:06:09 +0000</pubDate>
		<dc:creator>grimmwerks</dc:creator>
				<category><![CDATA[blog]]></category>
		<category><![CDATA[Flex]]></category>
		<category><![CDATA[eclipse]]></category>

		<guid isPermaLink="false">http://grimmwerks.com/blog/?p=730</guid>
		<description><![CDATA[Mike Morearty, developer of the Flex Builder team listed all the macros available in Flex Builder here: http://www.morearty.com/blog/2007/01/24/macros-that-are-available-in-html-template-files/ ${project} The name of the project, e.g. MyProject. ${application} The name of the application, e.g. MyApp. ${version_major} The major version number of the version of Flash that is required to run this app, e.g. 9 for version [...]]]></description>
			<content:encoded><![CDATA[<p id="top" />
<p>Mike Morearty, developer of the Flex Builder team listed all the macros available in Flex Builder here:<br />
<a href="http://www.morearty.com/blog/2007/01/24/macros-that-are-available-in-html-template-files/">http://www.morearty.com/blog/2007/01/24/macros-that-are-available-in-html-template-files/</a></p>
<p><span id="more-730"></span><br />
<code><br />
${project}<br />
The name of the project, e.g. MyProject.<br />
${application}<br />
The name of the application, e.g. MyApp.<br />
${version_major}<br />
The major version number of the version of Flash that is required to run this app, e.g. 9 for version 9.0 r28. You can change this and the other ${version_...} macros by going to Project &gt; Properties, then â??Flex Compilerâ? or â??ActionScript Compiler,â? and then changing the player version number in the â??HTML wrapperâ? section.<br />
${version_minor}<br />
The minor version number of the version of Flash that is required to run this app, e.g. 0 for version 9.0 r28.<br />
${version_revision}<br />
The revision number of the version of Flash that is required to run this app, e.g. 28 for version 9.0 r28.<br />
${build_suffix}<br />
This is equal to "-debug" when building the debug version of the SWF, and "" when building the release version.<br />
${swf}<br />
The name of the SWF, not including the .swf extension, e.g. MyApp or MyApp-debug. This is essentially a convenience macro which is equivalent to ${application}${build_suffix}.<br />
${bgcolor}<br />
The background color of the application, as specified in the backgroundColor attribute of the  tag, or, in the case of ActionScript-only projects, in the backgroundColor field of the [SWF] metadata attribute of the main application class, e.g. [SWF(backgroundColor="#ffffff")] public class MyApp extends Sprite (see this post for more information on setting the width, height, and background color of an ActionScript project). The result is in the form #rrggbb, e.g. #ffffff. This can actually be a little tricky to use, because by default, the background of a Flex app is actually a gentle gradient from one color to another; if you want the HTML background to match the background of your Flex app, you may need to fiddle with both the backgroundColor and backgroundGradientColors attributes of the  tag.<br />
${width}<br />
The width of the application, as specified in the width attribute of the  tag, or, in the case of ActionScript-only projects, in the width field of the [SWF] metadata attribute of the main application class, e.g. [SWF(width="300", height="400")] public class MyApp extends Sprite.<br />
${height}<br />
The height of the application, as specified in the height attribute of the  tag, or, in the case of ActionScript-only projects, in the height field of the [SWF] metadata attribute of the main application class, e.g. [SWF(width="300", height="400")] public class MyApp extends Sprite.<br />
${title}<br />
The title of the application, as specified in the pageTitle attribute of the  tag, or, in the case of ActionScript-only projects, in the pageTitle field of the [SWF] metadata attribute of the main application class, e.g. [SWF(pageTitle="flex r00lz")] public class MyApp extends Sprite.<br />
</code></p>
]]></content:encoded>
			<wfw:commentRss>http://www.grimmwerks.com/blog/flex/flex-macros-available-in-html-template-files/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Gumbo == Flash Builder</title>
		<link>http://www.grimmwerks.com/blog/flex/gumbo-flash-builder/</link>
		<comments>http://www.grimmwerks.com/blog/flex/gumbo-flash-builder/#comments</comments>
		<pubDate>Wed, 03 Jun 2009 12:35:56 +0000</pubDate>
		<dc:creator>grimmwerks</dc:creator>
				<category><![CDATA[blog]]></category>
		<category><![CDATA[Flex]]></category>
		<category><![CDATA[Flash Builder]]></category>
		<category><![CDATA[Flex skinning]]></category>
		<category><![CDATA[gumbo]]></category>

		<guid isPermaLink="false">http://grimmwerks.com/blog/?p=558</guid>
		<description><![CDATA[Adobe recently announced that Flex will now be known by Flash Builder; my feelings about this are mixed however.Â  There were many times I had to explain the differences between Flex and Flash (and, saying &#8216;Flash&#8217; in that sentence I mean the capital &#8216;F&#8217; Flash CS4 authoring vs the little &#8216;f&#8217; flash which is the [...]]]></description>
			<content:encoded><![CDATA[<p id="top" />
<p><a rel="shadowbox[f4]&quot;" href="http://grimmwerks.com/blog/wp-content/uploads/2009/06/flex4-splash.jpg"><img class="alignnone size-thumbnail wp-image-559" title="Flash Builder / Flex 4 / Gumbo" src="http://grimmwerks.com/blog/wp-content/uploads/2009/06/flex4-splash-50x50.jpg" alt="Flash Builder / Flex 4 / Gumbo" width="50" height="50" /></a></p>
<p>Adobe recently announced that Flex will now be known by Flash Builder; my feelings about this are mixed however.Â  There were many times I had to explain the differences between Flex and Flash (and, saying &#8216;Flash&#8217; in that sentence I mean the capital &#8216;F&#8217; Flash CS4 authoring vs the little &#8216;f&#8217; flash which is the compiled output), as well as explain in the end that there really WAS no difference as it was all flash in the end (note the little &#8216;f&#8217;).</p>
<p><span id="more-558"></span></p>
<p>But at the same time being an old Macromedia Director developer who remembers when Flash was still FutureSplash, was part of the Flash 3 and 4 beta team and was one of the first using Flash inside of Director for my work for Marvel &#8212; I still shy away from saying I &#8216;do Flash&#8217;.  Why? Because my experience with Flash (big &#8216;F&#8217;) as an authoring environment has been painful to say the least.Â  FutureSplash originally was just a little vector graphics drawing and animation package; there was never really any room for any scripting other than the most simplest imaginable.  When Macromedia bought it and renamed it Flash, Actionscript 1 was things like the old &#8216;goto(20)&#8217; stuff; Flash was still very much an animations package and tied down to the use of a timeline.  Even coming from Director &#8211; where one could use the MessageWindow to create objects in memory and manipulate them without ever committing anything to a script as such (and common now with things like Ruby and the irb) Flash seemed like a step BACKWARDS.  Director had objects &#8211; Flash didn&#8217;t.  Director had bitmaps. Flash didn&#8217;t. Vector graphics? Really? Why then was Photoshop the standard and Illustrator not so much?</p>
<p>But for the web, Flash started to grow, to overtake it&#8217;s big brother. Now I could go off on Macromedia&#8217;s choices in this and why this happened (the difference with the plugin installs, Director&#8217;s unfocus in regards to platform, it&#8217;s shirking of really interesting technologies such as Beatnik which I have strong opinions about, how Macromedia just kept glomming onto a busted engine without re-writing it) but irregardless of grandpa&#8217;s tirades, it DID happen.  Flash became the standard, and I left Director behind. But it was painful; having seen what an (almost real) programming tool could offer, Flash 4/MX/CS3 was just&#8230;urrrgh.</p>
<p>But then I picked up Flex and it was &#8230;. different. In some ways I&#8217;d say it was BETTER than Director &#8212; ok in a LOT of ways. Here was a true programming language (either with ActionScript3 or MXML), and EXTENSIBLE in ways that Director never was. A real skinnable interface.  Things that originally were first in Director (bitmapData) were now in Flash.  Now once in awhile I do still miss the MessageWindow but on the whole, I&#8217;ve drunk the Kool Aid and found that it was good&#8230;</p>
<p>At AdobeMax in 2007 I got to see what was coming &#8211; Gumbo (Flex 4) looked fantastic, and Thermo took photoshop and allowed designers to add the rudimentary logic to an interface. I&#8217;ve been waiting&#8230;</p>
<p>And so Gumbo &#8212; I&#8217;m sorry, Flex 4 &#8212; I&#8217;m sorry, Flash Builder beta has just been released.  And I&#8217;m still drinking the Kool Aid.  I&#8217;ve had a little bit of a poke around it today (I&#8217;ve got work I gotta do!) and there are some really cool things I&#8217;ve found..</p>
<p>First off, while scripting I found you were given hints and additional information while adding components; this will save time if a developer just needs some quick information rather than have them open up the full help. Another huge time saver is having the IDE generate additional functions automatically either while scripting or in a component&#8217;s properties window for all the scriptable items.</p>
<p><a rel="shadowbox[f4]" href="http://grimmwerks.com/blog/wp-content/uploads/2009/06/info.jpg"><img class="alignnone size-thumbnail wp-image-562" title="info" src="http://grimmwerks.com/blog/wp-content/uploads/2009/06/info-50x50.jpg" alt="info" width="50" height="50" /></a><a rel="shadowbox[f4]" href="http://grimmwerks.com/blog/wp-content/uploads/2009/06/generate.jpg"><img class="alignnone size-thumbnail wp-image-563" title="generate" src="http://grimmwerks.com/blog/wp-content/uploads/2009/06/generate-50x50.jpg" alt="generate" width="50" height="50" /></a><a rel="shadowbox[f4]" href="http://grimmwerks.com/blog/wp-content/uploads/2009/06/props.jpg"><img class="alignnone size-thumbnail wp-image-564" title="props" src="http://grimmwerks.com/blog/wp-content/uploads/2009/06/props-50x50.jpg" alt="props" width="50" height="50" /></a></p>
<p>Themes are huge as well &#8211; especially after developers like Juan Sanchez of <a href="http://www.scalenine.com">ScaleNine</a> and <a href="http://www.degrafa.org/">Degrafa</a> fame brought Flex&#8217;s skinning engine the attention it deserved.Â  Though I really don&#8217;t like the new default &#8216;spark&#8217; theme (it seems like we&#8217;ve gone back in time to retro computer land) support for the extension, creation and packaging of themes are stronger than ever.Â  Working hand in hand with Flash Catalyst the skins output can be selected with Flash Builder&#8217;s new theme browser, with single items still being customizable.</p>
<p><a rel="shadowbox[f4]" href="http://grimmwerks.com/blog/wp-content/uploads/2009/06/themes1.jpg"><img class="alignnone size-thumbnail wp-image-569" title="themes1" src="http://grimmwerks.com/blog/wp-content/uploads/2009/06/themes1-50x50.jpg" alt="themes1" width="50" height="50" /></a><a rel="shadowbox[f4]" href="http://grimmwerks.com/blog/wp-content/uploads/2009/06/themes2.jpg"><img class="alignnone size-thumbnail wp-image-570" title="themes2" src="http://grimmwerks.com/blog/wp-content/uploads/2009/06/themes2-50x50.jpg" alt="themes2" width="50" height="50" /></a></p>
<p>I&#8217;ve yet to really play yet though; I want to dive into the CSS support; I was confused by the previous incarnation of Gumbo&#8217;s CSS editor &#8212; it seemed as if one couldn&#8217;t get to the visual representation of the ui elements as one could in Flex 3, but it might have been my bunglings&#8230; I had a weird issue with this version of Gumbo &#8211; the Flash Builder beta &#8212; when &#8216;tab&#8217; wasn&#8217;t finishing the autocomplete, but was instead tabbing out of eclipse, but again, suppose that was my fault as well&#8230;</p>
<p>Strangely enough, I&#8217;d probably have more time for play from work if I was using &#8216;Flash Builder&#8217; &#8211; as I&#8217;m dealing with skinning issues in Flex 3. The universe mocks me.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.grimmwerks.com/blog/flex/gumbo-flash-builder/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Abercrombie and Fitch: Crestron and Flex</title>
		<link>http://www.grimmwerks.com/blog/flex/abercrombie-and-fitch-crestron-and-flex/</link>
		<comments>http://www.grimmwerks.com/blog/flex/abercrombie-and-fitch-crestron-and-flex/#comments</comments>
		<pubDate>Wed, 27 May 2009 19:08:07 +0000</pubDate>
		<dc:creator>grimmwerks</dc:creator>
				<category><![CDATA[Flex]]></category>
		<category><![CDATA[work]]></category>
		<category><![CDATA[crestron]]></category>
		<category><![CDATA[Flex skinning]]></category>

		<guid isPermaLink="false">http://grimmwerks.com/blog/?p=254</guid>
		<description><![CDATA[A quick test of the current Flex interface for iDesign communicating to the Creston control system 2 states away.. Using the Flash Crestron SDK, no longer is e-Control tied to a windows only system. Created in such a way that the subcomponents listen for their own joins, the Flex UI loads in the XML that [...]]]></description>
			<content:encoded><![CDATA[<p id="top" />
<p>A quick test of the current Flex interface for <a href="http://www.avdesignengineer.com/">iDesign</a> communicating to the Creston control system 2 states away..<span id="more-254"></span><br />
Using the <a href="http://www.crestron.com/products/show_products.asp?jump=1&amp;model=SDK-F">Flash Crestron SDK</a>, no longer is e-Control tied to a windows only system. Created in such a way that the subcomponents listen for their own joins, the Flex UI loads in the XML that is created by the installer and displays the proper devices listening on the system.
</p>
<p><!--more--></p>
<p>
The amp audio channel templates are programmed in such a way that it is repeated for the amount of audio channels the amplifier has; iDesign created the joins in such a way that the channels are iterated 21+ for every channel so that the system can &#8216;find&#8217; itself.
</p>
<p>Added more flexified goodness for the Flex to Crestron interface I&#8217;m building for Abercrombie and Fitch that I described <a href="http://grimmwerks.com/blog/work/052009-abercrombie-and-fitch-for-idesign/">here</a>.I have to say, being an old Macromedia Director guyÂ  that migrated to Flash (grumpily as the world did) I find Adobe Flex to be &#8230;well&#8230; it&#8217;s a joy to work with; I&#8217;ve actually become very excited about coding again.</p>
<p><object width="610" height="481" data="http://www.youtube.com/v/VS_yP3pA8G8&amp;hl=en&amp;fs=1&amp;color1=0x2b405b&amp;color2=0x6b8ab6" type="application/x-shockwave-flash"><param name="allowFullScreen" value="true" /><param name="allowscriptaccess" value="always" /><param name="src" value="http://www.youtube.com/v/VS_yP3pA8G8&amp;hl=en&amp;fs=1&amp;color1=0x2b405b&amp;color2=0x6b8ab6" /><param name="allowfullscreen" value="true" /></object></p>
]]></content:encoded>
			<wfw:commentRss>http://www.grimmwerks.com/blog/flex/abercrombie-and-fitch-crestron-and-flex/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>How I Love You Flex</title>
		<link>http://www.grimmwerks.com/blog/flex/how-i-love-you-flex/</link>
		<comments>http://www.grimmwerks.com/blog/flex/how-i-love-you-flex/#comments</comments>
		<pubDate>Sun, 17 May 2009 13:20:33 +0000</pubDate>
		<dc:creator>grimmwerks</dc:creator>
				<category><![CDATA[blog]]></category>
		<category><![CDATA[Flex]]></category>
		<category><![CDATA[crestron]]></category>
		<category><![CDATA[flash]]></category>
		<category><![CDATA[sockets]]></category>

		<guid isPermaLink="false">http://grimmwerks.com/blog/?p=72</guid>
		<description><![CDATA[I&#8217;m working on a Flex front end talking to a Crestron backend &#8211; and one of the things we&#8217;re doing is creating templates of different devices, one being a family of Crown amplifiers, each of which might have 2, 4 or 8 channels of audio to display. Each channel starts out with a Crestron join, [...]]]></description>
			<content:encoded><![CDATA[<p id="top" />
<p>I&#8217;m working on a Flex front end talking to a Crestron backend &#8211; and one of the things we&#8217;re doing is creating templates of different devices, one being a family of Crown amplifiers, each of which might have 2, 4 or 8 channels of audio to display. Each channel starts out with a Crestron join, but the next channel up it&#8217;s join begins at 21+ from the previous channel&#8217;s (if you know Crestron you&#8217;ll know what I mean).</p>
<p><img class="alignnone" style="margin: 10px;" src="/wp-content/uploads/2009/05/channels.jpg" alt="" width="610" height="396" /></p>
<p><span id="more-72"></span></p>
<p>What I love about the extensibility of Flex and it&#8217;s MXML Components: I&#8217;ve created one channel with all it&#8217;s internal joins as private properties. The parent amp template has only one property it needs to keep track of &#8211; channelCount &#8211; and I instantiate channels on the fly and only tell them their channel &#8211; both to display information (ie <strong>&#8216;Channel 1&#8242;</strong>) but also so each channel can remap it&#8217;s internal joins to send and receive the correct information &#8211; ie (channel-1) * 21 basically gives each channel&#8217;s subitem it&#8217;s join. All they have to do now is listen to the Singleton I&#8217;ve created for communicating to Crestron and they get their values by the event broadcast. Very cool.  Also have to add I love how easy it is to make things pretty. Just these few lines:</p>
<p><img class="alignnone" style="margin: 10px;" src="/wp-content/uploads/2009/05/code.jpg" alt="" width="610" height="273" /></p>
<p>Give me these nicely animated volume controls by merely controlling the height of the mask.</p>
<p><img class="alignnone" style="margin: 30px;" src="/wp-content/uploads/2009/05/big_volume.jpg" alt="" width="411" height="266" /></p>
]]></content:encoded>
			<wfw:commentRss>http://www.grimmwerks.com/blog/flex/how-i-love-you-flex/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Flex Rich Text Editor exporting xhtml</title>
		<link>http://www.grimmwerks.com/blog/flex/flex-rich-text-editor-exporting-xhtml/</link>
		<comments>http://www.grimmwerks.com/blog/flex/flex-rich-text-editor-exporting-xhtml/#comments</comments>
		<pubDate>Sun, 17 May 2009 11:56:42 +0000</pubDate>
		<dc:creator>grimmwerks</dc:creator>
				<category><![CDATA[blog]]></category>
		<category><![CDATA[Flex]]></category>
		<category><![CDATA[flash]]></category>

		<guid isPermaLink="false">http://grimmwerks.com/blog/?p=6</guid>
		<description><![CDATA[http://www.axelscript.com/2008/04/02/introducing-acjeditor-its-a-rte/]]></description>
			<content:encoded><![CDATA[<p id="top" />
<p style=\"clear: both\">http://www.axelscript.com/2008/04/02/introducing-acjeditor-its-a-rte/</p>
<p><br class=\"final-break\" style=\"clear: both\" /></p>
]]></content:encoded>
			<wfw:commentRss>http://www.grimmwerks.com/blog/flex/flex-rich-text-editor-exporting-xhtml/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Lovely Lita .. er SQLite Admin*</title>
		<link>http://www.grimmwerks.com/blog/flex/lovely-lita-er-sqlite-admin/</link>
		<comments>http://www.grimmwerks.com/blog/flex/lovely-lita-er-sqlite-admin/#comments</comments>
		<pubDate>Sat, 15 Nov 2008 13:12:35 +0000</pubDate>
		<dc:creator>grimmwerks</dc:creator>
				<category><![CDATA[blog]]></category>
		<category><![CDATA[Flex]]></category>
		<category><![CDATA[Air]]></category>
		<category><![CDATA[SQLite]]></category>

		<guid isPermaLink="false">http://grimmwerks.com/blog/?p=7</guid>
		<description><![CDATA[* sung to the tune of Â "Lovely Rita" by The Beatles. Â Yeah, ok - doesn't make it any funnier... David Deraedt created this nifty little Air/Flex app for administrating your SQLite databases &#8212; helpful for developing your own Air applications. How very meta.]]></description>
			<content:encoded><![CDATA[<p id="top" />
<pre>* sung to the tune of Â "Lovely Rita" by The Beatles. Â Yeah, ok - doesn't make it any funnier...</pre>
<p><img class="alignnone" src="http://www.dehats.com/drupal/files/pic_web.jpg" alt="" width="300" height="202" /></p>
<p>David Deraedt created <a href="http://www.dehats.com/drupal/?q=node/59">this nifty little Air/Flex app</a> for administrating your SQLite databases &#8212; helpful for developing your own Air applications. How very meta.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.grimmwerks.com/blog/flex/lovely-lita-er-sqlite-admin/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Flex, Limelight and Edge Servers</title>
		<link>http://www.grimmwerks.com/blog/flex/flex-limelight-and-edge-servers/</link>
		<comments>http://www.grimmwerks.com/blog/flex/flex-limelight-and-edge-servers/#comments</comments>
		<pubDate>Mon, 20 Oct 2008 23:04:36 +0000</pubDate>
		<dc:creator>grimmwerks</dc:creator>
				<category><![CDATA[blog]]></category>
		<category><![CDATA[Flex]]></category>
		<category><![CDATA[video]]></category>
		<category><![CDATA[flash]]></category>
		<category><![CDATA[limelight]]></category>

		<guid isPermaLink="false">http://grimmwerks.com/blog/?p=43</guid>
		<description><![CDATA[Former Limelight employee John C Bland helps me out with getting Flex to see the live Limelight stream...]]></description>
			<content:encoded><![CDATA[<p id="top" />Diving into programming ScribeLive, the 2.0 version â?? which is being done entirely in Flex â?? Iâ??ve run into the problem of not being able to pull in the Limelight video stream properly.  I was banging my head against the wall â?? since I was capable of pulling in a live stream into Flex from our own FMS server, but any attempt to pull in a stream from Limelight would result in frustration. <span id="more-43"></span></p>
<p>Looking at older code I could see that the FCSubscribe was being polled &#8211; but I couldnâ??t understand why the new code in Flex not using this FCSubscribe would work with our own FMS servers, but not with Limelight.</p>
<p>I tried looking up what the problem could be via google but found nothing. I asked the flexcoders list but was pretty much ignored. Through searching Flex blogs, I found <a href="http://johncblandii.com/">John C Bland II</a>, who recently left Limelight as an AS3 coder.</p>
<p>John was kind enough to explain to me that the real problem was how FCSubscribe works with Edge Servers:</p>
<blockquote><p>A normal FMS install is just a straight up 1 server install. A CDN install uses edge servers which means there is an origin server with many other servers on the â??edgeâ? that communicate back to the origin. In order to connect to the proper stream, an FCSubscribe has to be called. That call basically calls the edge server which does a â??searchâ? to find the stream. Thatâ??s why you have to do the â??timerâ? trick to continuously ping to see if the server found the stream yet. My method isnâ??t a timer. It is with â??connected callsâ?. So, try to connect (subscribe), if it fails, wait 1 second (setInterval) and subscribe, if it fails, wait 1 second again and subscribe. Do that over and over until the maximum amount of connects is reached. Of course before each setInterval I clearInterval so I donâ??t have multiple running at once. You get a pretty much immediate response from the server so you can get away with firing off multiple setIntervals/subscribes but it could get hairy. I prefer to try and only try again if it fails (with a 1 second pause between the retries).</p></blockquote>
<p>Kind enough to show me some example code, I changed it just a tad to fit in the way I was calling it (and I believe Iâ??ll make it into a subcomponent as part of the cleanup:</p>
<blockquote><p>private var connection:NetConnection;</p>
<p>private var stream:NetStream;</p>
<p>private var video:Video = new Video();</p>
<p>private var vidTimer:Timer;</p>
<p>private var _fcSubscribeCount:int = 0;</p>
<p>private var _fcSubscribeMaxRetries:int = 3;</p>
<p>private var _fcSubscribeInterval:Number;</p>
<p>public function videoInit():void {</p>
<p>connection = new NetConnection();</p>
<p>connection.client = this;</p>
<p>connection.addEventListener(NetStatusEvent.NET_STATUS, videoStatusHandler);</p>
<p>connection.addEventListener(SecurityErrorEvent.SECURITY_ERROR, vidSecurityErrorHandler);</p>
<p>connection.connect(streamURL);</p>
<p>}</p>
<p>private function subscribe():void{</p>
<p>connection.call(â?FCSubscribeâ?, null, streamName);</p>
<p>var nsClient:Object = {};</p>
<p>nsClient.onMetaData = ns_onMetaData;</p>
<p>}</p>
<p>public function onFCSubscribe(info:Object):void{</p>
<p>switch(info.code){</p>
<p>case â??NetStream.Play.StreamNotFoundâ?:</p>
<p>clearInterval(_fcSubscribeInterval);</p>
<p>if(_fcSubscribeCount &gt;= _fcSubscribeMaxRetries){</p>
<p>_fcSubscribeCount = 0;</p>
<p>}else{</p>
<p>_fcSubscribeCount++;</p>
<p>//subscribe failed; wait 1 second then try again</p>
<p>_fcSubscribeInterval = setInterval(subscribe, 1000);</p>
<p>}</p>
<p>break;</p>
<p>case â??NetStream.Play.Startâ?:</p>
<p>_fcSubscribeCount = 0;</p>
<p>clearInterval(_fcSubscribeInterval);</p>
<p>connectStream();</p>
<p>break;</p>
<p>}</p>
<p>}</p>
<p>private function videoStatusHandler(event:NetStatusEvent):void {</p>
<p>//Alert.show(event.info.code);</p>
<p>switch (event.info.code) {</p>
<p>case â??NetConnection.Connect.Successâ?:</p>
<p>subscribe();</p>
<p>break;</p>
<p>case â??NetStream.Play.Startâ?:</p>
<p>//Alert.show(â?netstream play startâ?);</p>
<p>break;</p>
<p>case â??NetStream.Play.StreamNotFoundâ?:</p>
<p>//Alert.show(â?Stream not found: â? + streamName);</p>
<p>break;</p>
<p>}</p>
<p>}</p>
<p>private function vidSecurityErrorHandler(event:SecurityErrorEvent):void {</p>
<p>Alert.show(â?securityErrorHandler: â? + event);</p>
<p>}</p>
<p>private function connectStream():void {</p>
<p>var nsClient:Object = {};</p>
<p>nsClient.onMetaData = ns_onMetaData;</p>
<p>stream = new NetStream(connection);</p>
<p>stream.addEventListener(NetStatusEvent.NET_STATUS, videoStatusHandler);</p>
<p>video.attachNetStream(stream);</p>
<p>stream.play(streamName);</p>
<p>stream.client = nsClient;</p>
<p>uic.addChild(video);</p>
<p>uic.addEventListener(ResizeEvent.RESIZE, resizeVideo);</p>
<p>video.width= uic.width;</p>
<p>video.height = uic.height;</p>
<p>}</p>
<p>private function resizeVideo(ev:ResizeEvent):void{</p>
<p>video.width = uic.width;</p>
<p>video.height = uic.height;</p>
<p>}</p></blockquote>
<p>** originally posted at <a href="http://www.scribemedia.org/2008/10/20/flex-limelight-and-edge-servers/">scribemedia</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.grimmwerks.com/blog/flex/flex-limelight-and-edge-servers/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Olap data in Flex 3</title>
		<link>http://www.grimmwerks.com/blog/flex/olap-data-in-flex-3/</link>
		<comments>http://www.grimmwerks.com/blog/flex/olap-data-in-flex-3/#comments</comments>
		<pubDate>Sat, 05 Apr 2008 16:52:05 +0000</pubDate>
		<dc:creator>grimmwerks</dc:creator>
				<category><![CDATA[blog]]></category>
		<category><![CDATA[Flex]]></category>
		<category><![CDATA[flash]]></category>

		<guid isPermaLink="false">http://grimmwerks.com/blog/?p=5</guid>
		<description><![CDATA[Interesting video showing how multidimensional data can be compared using the new olap classes in Flex 3; the write up can be foundÂ here.Â Â http://labs.adobe.com/technologies/flex/videos/olap/Â Â Â ]]></description>
			<content:encoded><![CDATA[<p id="top" />Interesting video showing how multidimensional data can be compared using the new olap classes in Flex 3; the write up can be foundÂ <a href="http://labs.adobe.com/wiki/index.php/Flex_3:Feature_Introductions:_OLAPDataGrid" target="_blank">here</a>.Â <a href="http://labs.adobe.com/technologies/flex/videos/olap/" target="_blank">Â http://labs.adobe.com/technologies/flex/videos/olap/Â </a>Â Â </p>
]]></content:encoded>
			<wfw:commentRss>http://www.grimmwerks.com/blog/flex/olap-data-in-flex-3/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

