<?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>iDA MediaFoundry Labs</title>
	<atom:link href="http://www.ida-mediafoundry.be/labs/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.ida-mediafoundry.be/labs</link>
	<description></description>
	<lastBuildDate>Mon, 13 Jul 2009 15:37:20 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>First Experiences with the Adobe Data Model – HelloWorld</title>
		<link>http://www.ida-mediafoundry.be/labs/2009/07/first-experiences-with-the-adobe-data-model-%e2%80%93-helloworld/</link>
		<comments>http://www.ida-mediafoundry.be/labs/2009/07/first-experiences-with-the-adobe-data-model-%e2%80%93-helloworld/#comments</comments>
		<pubDate>Mon, 06 Jul 2009 13:37:59 +0000</pubDate>
		<dc:creator>Roland Ringgenberg</dc:creator>
				<category><![CDATA[Adobe]]></category>
		<category><![CDATA[Flex]]></category>
		<category><![CDATA[LiveCycle]]></category>
		<category><![CDATA[Adobe Data Model]]></category>

		<guid isPermaLink="false">http://www.ida-mediafoundry.be/labs/?p=98</guid>
		<description><![CDATA[In the last post about the new Adobe Data Model codename Fiber First Experiences with the Adobe Data Model – Setup, I looked at the setup and installation process. This one will be a short post about how to run a first HelloWorld example, so let’s take a look if we can do a some [...]]]></description>
			<content:encoded><![CDATA[<p>In the last post about the new Adobe Data Model codename Fiber <a href="../2009/06/first-experiences-with-the-adobe-data-model-%E2%80%93-setup/">First Experiences with the Adobe Data Model – Setup</a>, I looked at the setup and installation process. This one will be a short post about how to run a first HelloWorld example, so let’s take a look if we can do a some click &amp; drag and get some data on the screen.<span id="more-98"></span></p>
<p>Ok, let’s start.</p>
<p>Open Flash Builder and create a new Flex Project. Give it the name helloworld, set Application type to Web and Server technology to J2EE. Check the Use remote object access service and choose LiveCycle Data Services ES. Leave the Create combined Java/Flex project using WTP unchecked. And click next.</p>
<p><img class="aligncenter size-full wp-image-99" title="CreateAFlexProject-small" src="http://www.ida-mediafoundry.be/labs/wp-content/uploads/CreateAFlexProject-small.jpg" alt="CreateAFlexProject-small" width="350" height="418" /></p>
<p>In the Configure J2EE Server step, just check that your root setting are set correctly. In my configuration Root folder is C:\Flex\lcds\lcds3\tomcat\webapps\lcds, Root URL is http://localhost:8400/lcds/ and Context root is /lcds. Click on Validate Configuration to test your settings.</p>
<p><img class="aligncenter size-full wp-image-100" title="ConfigureJ2EEServer-small" src="http://www.ida-mediafoundry.be/labs/wp-content/uploads/ConfigureJ2EEServer-small.jpg" alt="ConfigureJ2EEServer-small" width="430" height="342" /></p>
<p>You should also see that Flash Builder has automatically set the Output folder on your server. Now you can click Next one more time, leave the rest as is and click Finish.</p>
<p>It’s finally time to work with the Adobe Data Model. While you are still in Flash Builder, look at the Package Explorer. You should see a new icon called Open Data Model for Active Project. When you click on it, Flash Builder will create an fml file for you which opens in Design view.</p>
<p><img class="aligncenter size-full wp-image-101" title="CreateDataModelFile-small" src="http://www.ida-mediafoundry.be/labs/wp-content/uploads/CreateDataModelFile-small.jpg" alt="CreateDataModelFile-small" width="580" height="355" /></p>
<p>If you ask yourself where the heck this file now is, click in the Package Explorer on the Filter icon and uncheck .* and .model. Hit F5 to refresh the Package Explorer you should now see a .model folder which contains the newly created Adobe Data Model. In my case the file is called helloworld.fml.</p>
<p>Switch to the new Adobe Data Model perspective, for example by going to Window -&gt; Open Perspective -&gt; Adobe Data Model.</p>
<p>If the setup still works as expected, you should be able to see your databases in the RDS view. Open your tables and just drag an easy table to your fml file. In my case, I have a user table containing just a numeric id and firstname and lastname fields as string.</p>
<p><img class="aligncenter size-full wp-image-102" title="FirstDataModel-small" src="http://www.ida-mediafoundry.be/labs/wp-content/uploads/FirstDataModel-small.jpg" alt="FirstDataModel-small" width="580" height="383" /></p>
<p>Save the fml file and, if you are curious like me, click on the Source button and take a look at the generated xml code. What you can see here is called a meta model and contains things like entities, annotations and properties. If you dare, you can now also take a look at the Modeler Guide pdf that came with the LCDS3 beta download, as you can see the Adobe Data Model is properly worked out and thoroughly documented.</p>
<p>Let’s continue with our helloworld now. Switch back to Flash Builder and take a closer look to the Data Service view. Flash Builder should have generated a Service for you. If you refresh the Flex project in the Package Explorer you should also see a new package, named after the project name. Flash Builder has created Entity, Service and Metadata files for you.</p>
<p><img class="aligncenter size-full wp-image-103" title="FlashBuilderDataServices-small" src="http://www.ida-mediafoundry.be/labs/wp-content/uploads/FlashBuilderDataServices-small.jpg" alt="FlashBuilderDataServices-small" width="580" height="385" /></p>
<p>Quite cool, but this is just half of the story, there is also the server side.</p>
<p><strong>Some intermediate thoughts</strong></p>
<p>All this plays nicely together with the code generated by Flash Catalyst, where you end up with an assets and component folder. But what I ask myself is actually why Adobe uses the name of the project as the package name for the ActionScript model and service classes, instead of taking a more generic name like datamodel? Maybe a good and flexible way would be to have a possibility to set these package names in the Flash Builder settings somehow.</p>
<p>I mean this for both, Flash Catalyst and Flash Builder, so that you could place the components for example into com.mysite.view.widgetname.gen.components and com.mysite.model.adobemodel. What do you think? How should theses packages be named to suite your expectations?</p>
<p>&#8230; but, let&#8217;s go on with our example.</p>
<p>Before we are able to call the server, we have to tell the server which services we expect to be available. Look again at the fml file, at the top you will find an icon called Deploy Model to LCDS Server.</p>
<p><img class="aligncenter size-full wp-image-104" title="DeployModelToServer-small" src="http://www.ida-mediafoundry.be/labs/wp-content/uploads/DeployModelToServer-small.jpg" alt="DeployModelToServer-small" width="580" height="280" /></p>
<p>When you click on this button, the model file (helloworld.fml) will be copied to the server into the WEB-INF/fiber directory.</p>
<p>Also take a look into WEB-INF/flex/services-config.xml where you can see that next to the &lt;service-include&gt; tags a new service class is added called fiber.data.services.ModelDeploymentService. The model file will be used to make the needed services available to Flex.</p>
<p>The obvious question now is what possibilities there are to hock into this process. As far as I discovered it yet, one way will be to extend the FiberAssembler and introduce your own functionality based on annotations you add to your model so that your custom assemblers are able to take specific actions. I plan to try this in the next post.</p>
<p>Ok, to finish this, open the main application file of your Flex application and switch to the design view. From the Components Panel and there from the Data Controls choose the DataGrid and at it to your mxml file. From the Data/Services Panel drag &amp; drop your Service to the Grid and click ok to bind the getAll() method to the DataGrid.</p>
<p>Save the file and run your project.</p>
<p><img class="aligncenter size-full wp-image-105" title="DataGridWithoutCode-small" src="http://www.ida-mediafoundry.be/labs/wp-content/uploads/DataGridWithoutCode-small.jpg" alt="DataGridWithoutCode-small" width="580" height="383" /></p>
<p>Voila, you should see your database content in the gird which is automatically loaded at the creationComplete event.</p>
<p><img class="aligncenter size-full wp-image-106" title="ResultHelloWorld-small" src="http://www.ida-mediafoundry.be/labs/wp-content/uploads/ResultHelloWorld-small.jpg" alt="ResultHelloWorld-small" width="250" height="252" /></p>
<p>For me, all this is in the line of what we have seen in the last weeks around the Flash Catalyst workflows. By including now also the Adobe Data Model, you are able to further expand the workflow and even connect your data store to your Flex applications without writing to much code.</p>
<p>Together with the Modeler, the Adobe Data Model is definitively a very interesting an modern way to access your data or even start to work with a model driven approach. It looks like MDA starts to lift off for Flex Developers! <img src='http://www.ida-mediafoundry.be/labs/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
<p>Now we only have to figure out how we use this catalysed way of working with these real world java back-ends. So, in the next post I will try to discuss some more complex use cases.</p>
<p>Sincerely yours,<br />
Roland</p>
]]></content:encoded>
			<wfw:commentRss>http://www.ida-mediafoundry.be/labs/2009/07/first-experiences-with-the-adobe-data-model-%e2%80%93-helloworld/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>First Experiences with the Adobe Data Model – Setup</title>
		<link>http://www.ida-mediafoundry.be/labs/2009/06/first-experiences-with-the-adobe-data-model-%e2%80%93-setup/</link>
		<comments>http://www.ida-mediafoundry.be/labs/2009/06/first-experiences-with-the-adobe-data-model-%e2%80%93-setup/#comments</comments>
		<pubDate>Fri, 26 Jun 2009 14:23:38 +0000</pubDate>
		<dc:creator>Roland Ringgenberg</dc:creator>
				<category><![CDATA[Adobe]]></category>
		<category><![CDATA[Flex]]></category>
		<category><![CDATA[LiveCycle]]></category>
		<category><![CDATA[Adobe Data Model]]></category>

		<guid isPermaLink="false">http://www.ida-mediafoundry.be/labs/?p=83</guid>
		<description><![CDATA[A week ago or so, Adobe has put LiveCycle DataServices 3 on labs (http://labs.adobe.com/technologies/livecycle_dataservices3/), and one of the new things is the Adobe Data Model and the Modeler plugin code name Fiber. In this post I want to take a look at the setup of Fibre. It’s not a complete tutorial, I’m just taking notes [...]]]></description>
			<content:encoded><![CDATA[<p>A week ago or so, Adobe has put LiveCycle DataServices 3 on labs (<a href="http://labs.adobe.com/technologies/livecycle_dataservices3/" target="_blank">http://labs.adobe.com/technologies/livecycle_dataservices3/</a>), and one of the new things is the Adobe Data Model and the Modeler plugin code name Fiber. In this post I want to take a look at the setup of Fibre. It’s not a complete tutorial, I’m just taking notes wile trying to figure out how it works.<span id="more-83"></span><strong> </strong></p>
<p><strong>Download and install LCDS 3</strong></p>
<p>You will find several download files on labs, next to all the documentation you should also find the new version of lcds and the modeller plugins. I installed lcds 3 with Tomcat next to older versions of lcds. So my lcds 3 root directory is C://Flex/lcds/lcds3.</p>
<p>After installation, let’s try to start lcds 3. To avoid having Tomcat complaining that he can not find the database, first go into [lcds-root]/sampledb/bin and start the database (startdb.bat / startdb.sh). Then go into [lcds-root]/tomcat/bin and start Tomcat (startup.bat / startup.sh).</p>
<p>If the installation was successful, you should be able to browse to http://localhost:8400 where three links will take you further to the Console, Sample apps (TestDrive) and a Template application.</p>
<p>This was easy and worked as expected, no problems so far.</p>
<p><strong>Data Modeler on Eclipse</strong></p>
<p>I use an Eclipse JEE Ganymede where I have also several other plugins installed like Flash Builder, Subclips, CFEclipse, Spring &amp; Maven etc. So this should be a good test to see if all the diffrend plug-ins work together with the Modeler. There are several ways to install a plugin in Eclipse and because the Modeler comes as a zip file, I first tried to install it using the Eclipse update mechanism where you can point to an archive file. Unfortunately this didn&#8217;t work, and as it was not possible to do it with the unzipped archive either, I was forced to copy/override the plugins folder into my Eclipse.</p>
<p>After a restart of Eclipse, it worked the first time, but after a second restart, Eclipse was not able to display the modeler views again. I’m not sure how stable it already is but it has a 1.xxx version number, so I thought I should first update all my Eclipse plugins. And yes, after the update the Modeller views where accessible again and I did not have any further problems since. Maybe a usefull advise could be to start experiment on an separate Eclipse, anyway I didn&#8217;t and my Eclipse still works without any troubles.</p>
<p>One issue I have is that I can&#8217;t find a way to uninstall it other than to take out the added jars by hand. The plug-in is listed under the Eclipse plug-in Details but the uninstaller functionality of Eclipse does not list it yet. But hey, why should we want to uninstall it anyway?</p>
<p>After adding the plugin and restarting Eclipse, go to Windwos -&gt; Open Perspective -&gt; Other and you should find the Adobe Data Model Perspective at the top of the list.</p>
<p><strong>Update:</strong></p>
<p>I don&#8217;t like the copy/paste I explained above and while experimenting with Eclipse 3.5 Galileo and the actual version of Flash Builder i13, I learned how dropins can be used to link external plugins into Eclipse. I thought I could try the same with the Adobe Data Modeler. The following stuf is on your own risk, this is not supported, approved or even documented by Adobe in any way!</p>
<p>So, I added a new directory called &#8220;Adobe Data Modeler Plug-ins Beta&#8221; in C:\Program Files\Adobe\, inside the modeler directory I added an eclipse directory and inside this I copied the plugins folder of the modeler. So I ended up with C:\Program Files\Adobe\Adobe Data Modeler Plug-ins Beta\eclipse\plugins which contains the modeler plugins.</p>
<p>Now, if you look in your Galileo eclipse root directory, you should find a folder called dropins. Analog the flexbuilder link I added a text file called com.adobe.model.core.link containing one line of code: path=C:/Program Files/Adobe/Adobe Data Modeler Plug-in Beta</p>
<p>After starting up Eclipse, go to Help -&gt; About Eclipse -&gt; Installation Details and look into the plug-ins tab. If anything went right, you should see the Adobe Data Model plug-ins.</p>
<p><strong>First impressions</strong></p>
<p>The perspective looks good. At the left side you will find the Package Explorer and the RDS Dataview which will be familiar to ColdFusion developers who worked with the RDS connection tools before. At the right side next to the Outline is the Services and Styles views which are only available in design view of a data model and where I don&#8217;t yet know what I can do with it. At the bottom is the Properties and the Problems views, which I understand from the first look at it. Of course this is Eclipse, so you will be able to change this in any way you like.</p>
<p><img class="aligncenter size-full wp-image-95" title="ModelerOverview-small" src="http://www.ida-mediafoundry.be/labs/wp-content/uploads/ModelerOverview-small.jpg" alt="ModelerOverview-small" width="700" height="400" /></p>
<p><strong>Intermission</strong></p>
<p>I thought, now would be a good time to look at the videos provided in labs. (<a href="http://labs.adobe.com/technologies/livecycle_dataservices3/videos/" target="_blank">http://labs.adobe.com/technologies/livecycle_dataservices3/videos/</a>) Needlessly to say, I’m quite impressed, the possibility to write java code, ahm without writing it, seems quite cool to me. Though, I’m not yet sure how I have to sell this to my Java developers. <img src='http://www.ida-mediafoundry.be/labs/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' />  It looks like Fiber is Flash Catalyst for the model and database integration. I can’t wait to use them together!</p>
<p><strong>RDS Configuration</strong></p>
<p>Ok, now as the appetite is here, lets start as it is explained in the video. I first tried to access my database over the RDS panel. So open Windows -&gt; Adobe -&gt; RDS Configuration or open the properties in the RDS Dataview panel. There is already a first Connection called lcds (localhost). The settings look fine to me, host name 127.0.0.1, Port Number 8400 and the context root is lcds, so lets hit the “Test Connection” button.</p>
<p>Ouch, there is an 404 error thrown at the server, telling me that it did not find /lcds/CFIDE/main/ide.cfm! hm, do I need ColdFusion here? <img src='http://www.ida-mediafoundry.be/labs/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
<p>This is definitively the moment to look at the “Getting Started Guide” on labs, where we can find indeed how to setup the RDS server properly. (<a href="http://labs.adobe.com/technologies/livecycle_dataservices3/gettingstarted.html" target="_blank">http://labs.adobe.com/technologies/livecycle_dataservices3/gettingstarted.html</a>)  As explained under “Configure RDS on the Server” the server configuration is commented out, so we have to enable it first, makes sense.</p>
<p>So, let’s go to [lcds-root]/tomcat/webapps/lcds/WEB-INF/web.xml and uncomment the rds server. The file now also reveals the mystery about CF, of course there is just a mapping /CFIDE/main/ide.cfm pointing to the RDSDispatcherServlet, I guess this is to keep it in sync with the CF integration. If you keep the “useAppserverSecurity” flag true, you will also have to add a user in [lcds-root]/tomcat/conf/tomcat-users.xml which is also described properly in the guide. For my local tests, I decide to just set the flag to false. After a restart of Tomcat and being back in Eclipse, I check back the RDS connection again, and this time everything works as expected. Very nice.</p>
<p>Of course, there is no database available yet, because on the lcds context root is not database configured. If you don’t have a database available on you local test system, you can add a new RDS Connection pointing to the samples database. Just set the connection also to localhost on port 8400, but with the Context Root of lcds-samples. You should now be able to see the ordersDB database from the samples apps.</p>
<p><strong>Add your own database</strong></p>
<p>First we need the right connector, I want to work with a mysql database and it’s nice to see that lcds 3 already comes with several connectors. Take a look into the [lcds-root]/tomcat/lib/lcds directory. There are connectors for most important database systems available.<br />
Now open [lcds-root]/conf/Catalina/localhost/lcds.xml file and add following code after the JTOM transaction tag:</p>

<div class="wp_syntax"><div class="code"><pre class="xml" style="font-family:monospace;"><span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;Resource</span> <span style="color: #000066;">name</span>=<span style="color: #ff0000;">&quot;jdbc/modelDB&quot;</span> <span style="color: #000066;">type</span>=<span style="color: #ff0000;">&quot;javax.sql.DataSource&quot;</span></span>
<span style="color: #009900;">    <span style="color: #000066;">driverClassName</span>=<span style="color: #ff0000;">&quot;com.mysql.jdbc.Driver&quot;</span></span>
<span style="color: #009900;">    <span style="color: #000066;">maxIdle</span>=<span style="color: #ff0000;">&quot;2&quot;</span> <span style="color: #000066;">maxWait</span>=<span style="color: #ff0000;">&quot;5000&quot;</span></span>
<span style="color: #009900;">    <span style="color: #000066;">url</span>=<span style="color: #ff0000;">&quot;jdbc:mysql://localhost:3306/model-db&quot;</span></span>
<span style="color: #009900;">    <span style="color: #000066;">username</span>=<span style="color: #ff0000;">&quot;administrator&quot;</span> <span style="color: #000066;">password</span>=<span style="color: #ff0000;">&quot;password&quot;</span> <span style="color: #000066;">maxActive</span>=<span style="color: #ff0000;">&quot;4&quot;</span><span style="color: #000000; font-weight: bold;">/&gt;</span></span></pre></div></div>

<p>This should do the trick, but of course you have to use your own database settings. After a restart of the application, you should be able to connect to your own database in the RDS Dataview.</p>
<p>I think this is a good moment for a (coffee) break. I will continue the story in my next post.</p>
<p>Sincerely yours,<br />
Roland</p>
]]></content:encoded>
			<wfw:commentRss>http://www.ida-mediafoundry.be/labs/2009/06/first-experiences-with-the-adobe-data-model-%e2%80%93-setup/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>First Experiences with the Adobe Data Model</title>
		<link>http://www.ida-mediafoundry.be/labs/2009/06/first-experiences-with-the-adobe-data-model/</link>
		<comments>http://www.ida-mediafoundry.be/labs/2009/06/first-experiences-with-the-adobe-data-model/#comments</comments>
		<pubDate>Fri, 26 Jun 2009 12:53:15 +0000</pubDate>
		<dc:creator>Roland Ringgenberg</dc:creator>
				<category><![CDATA[Adobe]]></category>
		<category><![CDATA[Flex]]></category>
		<category><![CDATA[LiveCycle]]></category>
		<category><![CDATA[Adobe Data Model]]></category>

		<guid isPermaLink="false">http://www.ida-mediafoundry.be/labs/?p=70</guid>
		<description><![CDATA[Over the past days I found the time to look at the Adobe LiveCycle Data Services 3 beta and in particular the new Adobe Data Model, and I thought I could make a small post series about my first experiences while I’m exploring the new possibilities.
It’s not meant to be a full tutorial, I just [...]]]></description>
			<content:encoded><![CDATA[<p>Over the past days I found the time to look at the Adobe LiveCycle Data Services 3 beta and in particular the new Adobe Data Model, and I thought I could make a small post series about my first experiences while I’m exploring the new possibilities.<span id="more-70"></span></p>
<p>It’s not meant to be a full tutorial, I just plan to describe the experiences I make while browsing through the new functionalities. I will start with a setup description and then taking my first steps, after that I want to look how more complex use cases can be handled and if I find the time, I will try to build a small enterprise application with Flash Catalyst, Flash Builder, Flex 4 and of course Fiber.</p>
<p>But first things first, what is Fiber?</p>
<p>From the documentation we can read: Fiber is the code name for a suite of technologies that enables model-driven development of Flex applications. Fiber consist of three things:</p>
<ul>
<li>A data modelling language      referred to as the Adobe Data Model.</li>
<li>Tools for working with      models and associated code-generation.</li>
<li>A runtime environment for      the Adobe Data Model.</li>
</ul>
<p>Ok, this definitively sounds interesting, and because I read recently a post about MetaModels on Peter Bell’s Application Generation blog <a href="http://www.pbell.com/index.cfm/2009/6/24/Models-Meta-Models-and-MetaMeta-Models-oh-My" target="_blank">http://www.pbell.com/index.cfm/2009/6/24/Models-Meta-Models-and-MetaMeta-Models-oh-My</a>), I thought It’s definitively time to look at this.</p>
<p>Her is what I plan to do:</p>
<ul>
<li><a href="http://www.ida-mediafoundry.be/labs/2009/06/first-experiences-with-the-adobe-data-model-%E2%80%93-setup/">First Experiences with the      Adobe Data Model – Setup</a></li>
<li><a href="http://www.ida-mediafoundry.be/labs/2009/07/first-experiences-with-the-adobe-data-model-%E2%80%93-helloworld/#more">First Experiences with the      Adobe Data Model – HelloWorld</a></li>
<li>First Experiences with      the Adobe Data Model – More Complex Objects</li>
<li>First Experiences with      the Adobe Data Model – Model Driven from Design to Data</li>
</ul>
<p>Sincerely yours,<br />
Roland</p>
]]></content:encoded>
			<wfw:commentRss>http://www.ida-mediafoundry.be/labs/2009/06/first-experiences-with-the-adobe-data-model/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>How to get Youtube Movies in your Flex/Air application</title>
		<link>http://www.ida-mediafoundry.be/labs/2009/06/how-to-get-youtube-movies-in-your-flexair-application/</link>
		<comments>http://www.ida-mediafoundry.be/labs/2009/06/how-to-get-youtube-movies-in-your-flexair-application/#comments</comments>
		<pubDate>Thu, 25 Jun 2009 11:42:09 +0000</pubDate>
		<dc:creator>Maarten Cox</dc:creator>
				<category><![CDATA[AIR]]></category>
		<category><![CDATA[ActionScript]]></category>
		<category><![CDATA[Adobe]]></category>
		<category><![CDATA[Flex]]></category>
		<category><![CDATA[Tutorial]]></category>
		<category><![CDATA[youtube]]></category>
		<category><![CDATA[youtube desktop]]></category>

		<guid isPermaLink="false">http://www.ida-mediafoundry.be/labs/?p=66</guid>
		<description><![CDATA[Everybody loves youtube, for its almost unlimited source of music video&#8217;s and its funny clips. So how can we get those clips into our Flex or Air app? Here&#8217;s one way how to do it:
First off, you need a couple of packages: you will need the Adobe serialization and webapis classes, the Tubeloc classes for [...]]]></description>
			<content:encoded><![CDATA[<p>Everybody loves youtube, for its almost unlimited source of music video&#8217;s and its funny clips. So how can we get those clips into our Flex or Air app? Here&#8217;s one way how to do it:<span id="more-66"></span></p>
<p>First off, you need a couple of packages: you will need the Adobe serialization and webapis classes, the Tubeloc classes for the player, and the newcommerce.ca package to get the clips from the web to your application. I won&#8217;t create a complete application, because you can do whatever you want with it, but you can download an example: the youtube desktop player <a href="http://www.arten.be/downloads/YoutubeDesktopAir.air" target="_blank">here</a> (it is still in beta, I know about the transparency issues in air and flex 4, when it get&#8217;s fixed, an update will be released). So download the packages <a href="http://www.arten.be/downloads/youtubepack.zip" target="_blank">here</a>, unzip them and put them in your source folder or include them in the class-path. Also, keep in mind that this tutorial is based on a Flex 4 application, so if you&#8217;re still in Flex 3, there are some subtle differences.</p>
<p><strong>1. How to handle a search for youtube video&#8217;s:</strong></p>

<div class="wp_syntax"><div class="code"><pre class="actionscript3" style="font-family:monospace;"><span style="color: #0033ff; font-weight: bold;">protected</span> <span style="color: #339966; font-weight: bold;">function</span> doSearch<span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span><span style="color: #000000; font-weight: bold;">:</span><span style="color: #0033ff; font-weight: bold;">void</span>
<span style="color: #000000;">&#123;</span>
_ws = YouTubeFeedClient.getInstance<span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span>;
_ws.<span style="color: #004993;">addEventListener</span><span style="color: #000000;">&#40;</span>VideoFeedEvent.VIDEO_DATA_RECEIVED, handleSearchResults<span style="color: #000000;">&#41;</span>;
_requestId = _ws.getVideos<span style="color: #000000;">&#40;</span>searchTherm, <span style="color: #990000;">&quot;&quot;</span>, <span style="color: #0033ff; font-weight: bold;">null</span>, <span style="color: #0033ff; font-weight: bold;">null</span>, <span style="color: #000000;">&#91;</span><span style="color: #990000;">&quot;music&quot;</span><span style="color: #000000;">&#93;</span>, <span style="color: #000000;">&#91;</span><span style="color: #990000;">&quot;all&quot;</span><span style="color: #000000;">&#93;</span>, YouTubeFeedClient.ORDER_BY_RELEVANCE, YouTubeFeedClient.RACY_INCLUDE<span style="color: #000000;">&#41;</span>;
<span style="color: #000000;">&#125;</span></pre></div></div>

<p>_ws is a globally declared var typed as YouTubeFeedClient and _requestId is just a globally declared Number. We also added a handler to the YouTubeFeedClient instance to handle our results.</p>
<p><strong>2. Handle the results of our search</strong></p>

<div class="wp_syntax"><div class="code"><pre class="actionscript3" style="font-family:monospace;"><span style="color: #0033ff; font-weight: bold;">protected</span> <span style="color: #339966; font-weight: bold;">function</span> handleSearchResults<span style="color: #000000;">&#40;</span>evt<span style="color: #000000; font-weight: bold;">:</span>VideoFeedEvent<span style="color: #000000;">&#41;</span><span style="color: #000000; font-weight: bold;">:</span><span style="color: #0033ff; font-weight: bold;">void</span>
<span style="color: #000000;">&#123;</span>
<span style="color: #0033ff; font-weight: bold;">if</span><span style="color: #000000;">&#40;</span>_requestId == evt.requestId<span style="color: #000000;">&#41;</span>
<span style="color: #000000;">&#123;</span>
       	<span style="color: #6699cc; font-weight: bold;">var</span> feed<span style="color: #000000; font-weight: bold;">:</span>VideoFeed = evt.feed;
     	<span style="color: #6699cc; font-weight: bold;">var</span> video<span style="color: #000000; font-weight: bold;">:</span>VideoData;
       	tubes = <span style="color: #0033ff; font-weight: bold;">new</span> ArrayCollection<span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span>;
       	<span style="color: #0033ff; font-weight: bold;">while</span><span style="color: #000000;">&#40;</span>video = feed.next<span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span><span style="color: #000000;">&#41;</span>
       	<span style="color: #000000;">&#123;</span>
              	<span style="color: #6699cc; font-weight: bold;">var</span> o<span style="color: #000000; font-weight: bold;">:</span><span style="color: #004993;">Object</span> = <span style="color: #0033ff; font-weight: bold;">new</span> <span style="color: #004993;">Object</span><span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span>;
              	o.<span style="color: #004993;">url</span> = video.media.mediaPlayerUri.<span style="color: #004993;">substr</span><span style="color: #000000;">&#40;</span><span style="color: #000000; font-weight:bold;">31</span>,video.media.mediaPlayerUri.<span style="color: #004993;">length</span><span style="color: #000000;">&#41;</span>;
               	o.thumbnail = video.media.thumbnails.next<span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span>.<span style="color: #004993;">url</span>;
               	o.title = video.media.title;
               	tubes.addItem<span style="color: #000000;">&#40;</span>o<span style="color: #000000;">&#41;</span>;
       	<span style="color: #000000;">&#125;</span>
<span style="color: #000000;">&#125;</span>
<span style="color: #0033ff; font-weight: bold;">else</span>
<span style="color: #000000;">&#123;</span>
     	<span style="color: #004993;">trace</span><span style="color: #000000;">&#40;</span><span style="color: #990000;">&quot;this request:&quot;</span><span style="color: #000000; font-weight: bold;">+</span>evt.requestId<span style="color: #000000; font-weight: bold;">+</span><span style="color: #990000;">&quot; is not ours. we'll wait for the next one&quot;</span><span style="color: #000000;">&#41;</span>;
<span style="color: #000000;">&#125;</span>
<span style="color: #000000;">&#125;</span></pre></div></div>

<p>What happens here is the creation of Objects, which are put in the tubes arraycollection. They will be used as the dataprovider for thumbnails. Make sure to create your own itemrenderer for this.<br />
So now we have our clips in the tubes arraycollection, now let&#8217;s play see how we can play one. Of course you can also create a nice valueObject for this <img src='http://www.ida-mediafoundry.be/labs/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p><strong>3. Playing a clip</strong></p>

<div class="wp_syntax"><div class="code"><pre class="actionscript3" style="font-family:monospace;"><span style="color: #0033ff; font-weight: bold;">protected</span> <span style="color: #339966; font-weight: bold;">function</span> startPlaying<span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span><span style="color: #000000; font-weight: bold;">:</span><span style="color: #0033ff; font-weight: bold;">void</span>
<span style="color: #000000;">&#123;</span>
	<span style="color: #6699cc; font-weight: bold;">var</span> youtube<span style="color: #000000; font-weight: bold;">:</span>YouTubeServiceEvent;
&nbsp;
        <span style="color: #0033ff; font-weight: bold;">if</span><span style="color: #000000;">&#40;</span>isPlaying<span style="color: #000000;">&#41;</span>
	<span style="color: #000000;">&#123;</span>
	        <span style="color: #0033ff; font-weight: bold;">if</span><span style="color: #000000;">&#40;</span>isReallyPlaying<span style="color: #000000;">&#41;</span>
		        youtubeMovie.loadVideoById<span style="color: #000000;">&#40;</span>vidId<span style="color: #000000;">&#41;</span>;
		<span style="color: #0033ff; font-weight: bold;">else</span>
			isReallyPlaying = <span style="color: #0033ff; font-weight: bold;">true</span>;
	<span style="color: #000000;">&#125;</span>
	<span style="color: #0033ff; font-weight: bold;">else</span>
	<span style="color: #000000;">&#123;</span>
		player = <span style="color: #0033ff; font-weight: bold;">new</span> Canvas<span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span>;
		player.<span style="color: #004993;">width</span>=<span style="color: #000000; font-weight:bold;">640</span>;
		player.<span style="color: #004993;">height</span>=<span style="color: #000000; font-weight:bold;">480</span>;
&nbsp;
		youtubeMovie = <span style="color: #0033ff; font-weight: bold;">new</span> MovieSprite<span style="color: #000000;">&#40;</span><span style="color: #0033ff; font-weight: bold;">null</span>,<span style="color: #0033ff; font-weight: bold;">true</span><span style="color: #000000;">&#41;</span>;
		youtubeMovie.<span style="color: #004993;">addEventListener</span><span style="color: #000000;">&#40;</span>PlayerReadyEvent.PLAYER_READY, onPlayerReady<span style="color: #000000;">&#41;</span>;
&nbsp;
		youtubeMovie.<span style="color: #004993;">x</span> = <span style="color: #000000; font-weight:bold;">0</span>;
		youtubeMovie.<span style="color: #004993;">y</span> = <span style="color: #000000; font-weight:bold;">0</span>;
		player.rawChildren.<span style="color: #004993;">addChild</span><span style="color: #000000;">&#40;</span>youtubeMovie<span style="color: #000000;">&#41;</span>;
		holder.addElement<span style="color: #000000;">&#40;</span>player<span style="color: #000000;">&#41;</span>;
		isPlaying = <span style="color: #0033ff; font-weight: bold;">true</span>;
&nbsp;
	<span style="color: #000000;">&#125;</span>
<span style="color: #000000;">&#125;</span></pre></div></div>

<p>I know, the isPlaying/isReallyPlaying double Boolean solution isn&#8217;t the prettiest one, but it does work <img src='http://www.ida-mediafoundry.be/labs/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  If you have a better one, feel free to let me know! It handles the starting of a new clip when another one is already playing. Also, if you&#8217;re working with Flex 3, you don&#8217;t need the &#8220;holder&#8221; line, this is just for flex4 to add a canvas to a group. Now we just need to work out the handler we added to the MovieSprite.</p>
<p><strong>4. handling of the PlayerReadyEvent</strong></p>

<div class="wp_syntax"><div class="code"><pre class="actionscript3" style="font-family:monospace;"><span style="color: #0033ff; font-weight: bold;">protected</span> <span style="color: #339966; font-weight: bold;">function</span> onPlayerReady<span style="color: #000000;">&#40;</span>event_p<span style="color: #000000; font-weight: bold;">:</span>PlayerReadyEvent<span style="color: #000000;">&#41;</span><span style="color: #000000; font-weight: bold;">:</span><span style="color: #0033ff; font-weight: bold;">void</span>
 <span style="color: #000000;">&#123;</span>
	youtubeMovie.<span style="color: #004993;">width</span> = <span style="color: #000000; font-weight:bold;">640</span>;
	youtubeMovie.<span style="color: #004993;">height</span> = <span style="color: #000000; font-weight:bold;">480</span>;
&nbsp;
	youtubeMovie.loadVideoById<span style="color: #000000;">&#40;</span>vidId<span style="color: #000000;">&#41;</span>;
	youtubeMovie.playVideo<span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span>;
&nbsp;
<span style="color: #000000;">&#125;</span></pre></div></div>

<p>So this handles the loading of the video when the player is ready to receive. Normally you know have your arraycollection which you can bind to some sort of gallery to have thumbnails after searching, and a player which you can use to display the clips in your application. If you have any questions or remarks, you&#8217;re more then welcome to leave a comment !</p>
]]></content:encoded>
			<wfw:commentRss>http://www.ida-mediafoundry.be/labs/2009/06/how-to-get-youtube-movies-in-your-flexair-application/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Adding bookmarks in a PDF automatically with LiveCycle Designer</title>
		<link>http://www.ida-mediafoundry.be/labs/2009/06/adding-bookmarks-in-a-pdf-automatically-with-livecycle-designer/</link>
		<comments>http://www.ida-mediafoundry.be/labs/2009/06/adding-bookmarks-in-a-pdf-automatically-with-livecycle-designer/#comments</comments>
		<pubDate>Tue, 23 Jun 2009 12:03:12 +0000</pubDate>
		<dc:creator>Gert Demol</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.ida-mediafoundry.be/labs/?p=53</guid>
		<description><![CDATA[Adding bookmarks automatically can be realized with Acrobat Javascript. It is possible to use Acrobat Javascript in LiveCycle Designer. You can use the Acrobat Doc object in a LiveCycle Designer form. You must adapt your code to use the following technique of assigning a variable to the target of, for example, a click event, to [...]]]></description>
			<content:encoded><![CDATA[<p>Adding bookmarks automatically can be realized with Acrobat Javascript. It is possible to use Acrobat Javascript in LiveCycle Designer. You can use the Acrobat Doc object in a LiveCycle Designer form. You must adapt your code to use the following technique of assigning a variable to the target of, for example, a click event, to access the current document:<br />
<strong>var myDoc = event.target;</strong></p>
<p>Afterwards it is quite easy to add the bookmarks. Just suppose you want to add a bookmark with the name of &#8220;Management Summary&#8221; which refers to a subform with the same name. You must place the javacript code on the layout:ready event of the subform because you need the page number. You first need a reference to the bookmark Root like in the following example:<br />
<strong>var root = myDoc.bookmarkRoot;</strong></p>
<p>Now you can add a bookmark to the root through the createChild method. This method has one required and two optional parameters:<br />
1)Name of the bookmark<br />
2)Expression to evaluate: in this case the page number. We must subtract 1 from the page number because acrobat starts counting from 0.<br />
3)The 0-based index into the children array</p>
<p>You can add the bookmark as follows:<br />
<strong>root.createChild(&#8221;Management Summary&#8221;, &#8220;this.pageNum=&#8221; + (xfa.layout.page(this)-1),0);</strong></p>
<p>If you want to add a child to the bookmark you just created, you can do it like this:<br />
<strong>var bm = root.children[0];<br />
bm.createChild(&#8221;Overview&#8221;, &#8220;this.pageNum=&#8221; + (xfa.layout.page(this)-1),0);</strong></p>
]]></content:encoded>
			<wfw:commentRss>http://www.ida-mediafoundry.be/labs/2009/06/adding-bookmarks-in-a-pdf-automatically-with-livecycle-designer/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>iDA MediaFoundry @ AUG Amsterdam 09</title>
		<link>http://www.ida-mediafoundry.be/labs/2009/06/ida-mediafoundry-aug-amsterdam-09/</link>
		<comments>http://www.ida-mediafoundry.be/labs/2009/06/ida-mediafoundry-aug-amsterdam-09/#comments</comments>
		<pubDate>Mon, 08 Jun 2009 20:39:43 +0000</pubDate>
		<dc:creator>Maarten Cox</dc:creator>
				<category><![CDATA[Event]]></category>
		<category><![CDATA[iDA MediaFoundry]]></category>
		<category><![CDATA[AUG]]></category>
		<category><![CDATA[Catalyst]]></category>
		<category><![CDATA[Flash Builder]]></category>
		<category><![CDATA[Flex 3]]></category>

		<guid isPermaLink="false">http://www.ida-mediafoundry.be/labs/?p=41</guid>
		<description><![CDATA[Last week David and Maarten were speaking at the Adobe Usergroup NL event in Amsterdam. They did a session about Flash Builder 4 and Flash Catalyst user experience and demoed the Youtube Desktop Player, CrazyCam 3.0 and  (althoug very shortly   the Contact Manager. All were skinned in Flash Catalyst and coded in Flash [...]]]></description>
			<content:encoded><![CDATA[<p>Last week David and Maarten were speaking at the Adobe Usergroup NL event in Amsterdam. They did a session about Flash Builder 4 and Flash Catalyst user experience and demoed the Youtube Desktop Player, CrazyCam 3.0 and  (althoug very shortly <img src='http://www.ida-mediafoundry.be/labs/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' />  the Contact Manager. All were skinned in Flash Catalyst and coded in Flash Builder with the Flex 4 SDK. More information and downloads of these apps will be online soon after we clean them up and tweak them some more, but the broadcast of the session is already online and can be viewed at:</p>
<p><a href="http://www.adobeusergroup.nl/site/list_messages/285" target="_blank">The Adobe Usergroup NL&#8217;s website. </a></p>
<p>You can also find some pictures of the event at <a href="http://www.flickr.com/photos/maartencox//sets/72157619190258627" target="_blank">Maarten&#8217;s Flickr Steam</a>.</p>
<p>We loved the experience and hope to do more of these sessions.<br />
Also we want to thank Bert Haagendooren once more for inviting us, we had a blast!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.ida-mediafoundry.be/labs/2009/06/ida-mediafoundry-aug-amsterdam-09/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Showcase &#8211; Desktop Store</title>
		<link>http://www.ida-mediafoundry.be/labs/2009/04/showcase-desktop-store/</link>
		<comments>http://www.ida-mediafoundry.be/labs/2009/04/showcase-desktop-store/#comments</comments>
		<pubDate>Wed, 22 Apr 2009 07:49:27 +0000</pubDate>
		<dc:creator></dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.ida-mediafoundry.be/labs/?p=31</guid>
		<description><![CDATA[This year&#8217;s trainees project was a desktop store build in AIR.  This is their story.
Showcase: Desktop Store
This showcase is an internship project where the possibilities of Adobe Flex and AIR are demonstrated. The concept of this showcase is a desktop application which connects to a server and can then be used to shop offline afterwards, [...]]]></description>
			<content:encoded><![CDATA[<p>This year&#8217;s trainees project was a desktop store build in AIR.  This is their story.<span id="more-31"></span></p>
<h3 style="padding-left: 30px;"><span style="color: #ff0000;">Showcase: Desktop Store</span></h3>
<p style="padding-left: 30px;">This showcase is an internship project where the possibilities of Adobe Flex and AIR are demonstrated. The concept of this showcase is a desktop application which connects to a server and can then be used to shop offline afterwards, from your own familiar desktop environment.</p>
<p style="padding-left: 30px;">When you start the application, you are presented with an empty shopping cart, a navigation which is build from the available shopping windows and of course the shopping windows themselves. You have the option to load a previous shopping session, or you can start filling a new shopping cart with products from the shopping windows. “Work Space” is an interactive shopping window. In this shopping window are products which you can drag to your shopping cart. You can also see the specific details of the products by clicking on them. There’s also the option to see similar products in that category. If you wish, you can save a .pdf file with details of a product to your computer by dragging a product from the detail screen to your desktop.</p>
<p style="padding-left: 30px;">When you are done shopping, you get to see an overview of your order. If the order is confirmed, you have the option to save your order details as a .pdf file to your computer. From here you can go to the user area, where you can change your delivery details, you can see statistics of your shopping behavior and you can also see an overview of your previous placed orders. This overview can be saved to your desktop as a .cvs file, which can later be opened in a program like MS Excel.</p>
<p style="padding-left: 30px;">Developed by Dennis Roefs &amp; Gunter Van Steen (KHM &#8211; Katholieke Hogeschool Mechelen)</p>
<p>Check out their application at: <span style="color: #ff0000;"><a href="http://www.ida-mediafoundry.be/showcase" target="_blank"><span>www.ida-mediafoundry.be/showcase</span></a></span></p>
]]></content:encoded>
			<wfw:commentRss>http://www.ida-mediafoundry.be/labs/2009/04/showcase-desktop-store/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>FITC Amsterdam 09, day 2: Cool shit!</title>
		<link>http://www.ida-mediafoundry.be/labs/2009/02/fitc-amsterdam-09-day-2-cool-shit/</link>
		<comments>http://www.ida-mediafoundry.be/labs/2009/02/fitc-amsterdam-09-day-2-cool-shit/#comments</comments>
		<pubDate>Wed, 25 Feb 2009 14:50:28 +0000</pubDate>
		<dc:creator>David Vermeir</dc:creator>
				<category><![CDATA[ActionScript]]></category>
		<category><![CDATA[Adobe]]></category>
		<category><![CDATA[Event]]></category>
		<category><![CDATA[Flash]]></category>
		<category><![CDATA[Flex]]></category>
		<category><![CDATA[RIA]]></category>
		<category><![CDATA[iDA MediaFoundry]]></category>

		<guid isPermaLink="false">http://www.ida-mediafoundry.be/labs/?p=27</guid>
		<description><![CDATA[Tuesday 25 February I attended FITC in Amsterdam where I saw many interesting presentations and &#8220;cool shit&#8221; that I would like to share here.
Building RIA&#8217;s with Flash Catalyst
The first presentation for me was &#8220;Building RIA&#8217;s with Flash Catalyst&#8221; by Serge Jespers. Serge did an excellent job at explaining the basics of Catalyst, like the layout [...]]]></description>
			<content:encoded><![CDATA[<p>Tuesday 25 February I attended FITC in Amsterdam where I saw many interesting presentations and &#8220;cool shit&#8221; that I would like to share here.<span id="more-27"></span></p>
<p><span style="font-size: small;"><strong>Building RIA&#8217;s with Flash Cataly</strong><strong>st</strong></span></p>
<p>The first presentation for me was &#8220;<em>Building RIA&#8217;s with Flash Catalyst</em>&#8221; by Serge Jespers. Serge did an excellent job at explaining the basics of Catalyst, like the layout of the application and thought process behind it. I especially like the automatic creation of transitions and the ease with which you can change them. I does seem that designers will have to make a habit of naming their layers in Photoshop or Illustrator, which they should be doing anyway and if they don&#8217;t, then they&#8217;re very, very naughty designers!</p>
<p>Also interesting was the ability to turn individual layers into states for components and the copy-paste functionality from Photoshop, Illustrator or Fireworks directly into Catalyst.</p>
<p><span style="font-size: small;"><strong>Art from Code</strong></span></p>
<p>Next up was &#8220;<em>Art from Code</em>&#8221; by Keith Peters. He explained the difference between the left and right side of the brain and how we can program with the right side, which is normally used for creative stuff. We saw some interesting artworks created just by code. You can see all of them on his website: <a href="http://www.artfromcode.com">http://www.artfromcode.com</a></p>
<p>Also check out these sites by Keith : <a href="http://www.bit-101.com">http://www.bit-101.com</a>, <a href="http://www.wickedpissahgames.com">http://www.wickedpissahgames.com</a></p>
<p>He also has a nice tool called ASExpander for the Flash IDE: Check it out <a href="http://www.bit-101.com/blog/?p=1620">here</a></p>
<p><span style="font-size: small;"><strong>Node based programming with SourceBinder</strong></span></p>
<p>The last presentation before the lunch break was &#8220;<em>Node based programming with SourceBinder</em>&#8221; by Balázs Serényi. Though still in the early stages I was really impressed with what I saw here. SourceBinder is basically an online framework which uses nodes connected to each other the create applications. The great thing here is that you can create your own nodes and share them with others, creating a collaborative development environment.</p>
<p>It already contains many API&#8217;s that are used within the Flash community like Papervision and Google Maps. It can also create applications with compatibility for the Wii-mote or Iphone. Currently you can see the source code of each node but you cannot export a whole project to Actionscript (only a SWF is exported), although Balázs said this functionality is coming. It&#8217;s already a great tool for prototyping though. Check it out at <a href="http://www.sourcebinder.org/">http://www.sourcebinder.org/</a><br />
They&#8217;re currently transitioning to a new version so registering is blocked but should be operational again soon.</p>
<p><strong><span style="font-size: small;">The Flex 4 component overhaul</span></strong></p>
<p>The first presentation after the lunch break was &#8220;<em>The Flex 4 component overhaul</em>&#8221; by Chafic Kazoun. After a brief introduction in Flex 4 or Spark Components (with the &#8220;terrible&#8221; news that the Datagrid, AdvancedDataGrid and Charting components will probably not be in the first release of Gumbo) Chafic explained skinning in Flex 4 and the implications of the new FXG format.</p>
<p>He explained the difference between the skin and skinparts and the functionality of the new loadSkin routine in commitProperties(). It&#8217;s clear that Flex 4 will much more clearly split the controller and view part of the component into component and skin. In my opinion it will be much easier to create a custom component complete with skin in Gumbo than it has been until now. You can visit Chafic&#8217;s site at <a href="http://www.rewindlife.com">http://www.rewindlife.com</a></p>
<p><span style="font-size: small;"><strong>Cool shit!</strong></span></p>
<p>&#8220;<em>Cool shit</em>&#8221; was the high point of the day for me for so many reasons, not least of which because it allows me to write &#8220;shit&#8221; on this blog. In this presentation six developers showed us what they&#8217;ve been working on these past few years. First up was Ralph Hauwert + friend who showed us some fluid dynamics in 2D and then in Papervision3D. He also showed real-time 3D in video, moving a teapot in a recorded movie.</p>
<p>After that was Seb Lee-Delisle who showed us the Big And Small website for the BBC, an excellent piece of work in Papervision3D. Take a look at <a href="http://www.bbc.co.uk/cbeebies/bigandsmall/">http://www.bbc.co.uk/cbeebies/bigandsmall/</a></p>
<p>Lee Brimelow showed us what is possible with WiiFlash using Jam Legend and 3D models as examples to control with a Wii-mote. The advantages of this in medical, science and education institutions is clear.</p>
<p>André Michelle presented us the Hobnox Audiotool which simply looks amazing. Check it out at <a href="http://www.hobnox.com/audiotool.1046.en.html">http://www.hobnox.com/audiotool.1046.en.html</a></p>
<p>Last but not least Joa Ebert amazed everyone by simply putting on some tunes and programming a whole 3D  particle effects demo in under ten minutes from scratch.</p>
<p><span style="font-size: small;"><strong>Flex Effects</strong></span></p>
<p>Last presentation of the day was &#8220;<em>Flex Effects</em>&#8221; by Tink. He briefly told us his views on the future of Flex development and the basics of animation to guide the user. After that, he showed us the Efflex effects library he has created and asked us to contribute to his efforts to create an open-source effects library. There are already many effects available so if you want to check them out or contribute visit <a href="http://www.efflex.org">http://www.efflex.org</a></p>
<p>That was it for FITC Amsterdam 09. Awesome event, definitely worth it for Flash/Flex developers and designers. The organization was also great thanks to the many professional volunteers. Thanks guys!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.ida-mediafoundry.be/labs/2009/02/fitc-amsterdam-09-day-2-cool-shit/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>FITC Amsterdam 09, day 1: Emotions &gt; Technology</title>
		<link>http://www.ida-mediafoundry.be/labs/2009/02/fitc-amsterdam-09-day-1-emotions-technology/</link>
		<comments>http://www.ida-mediafoundry.be/labs/2009/02/fitc-amsterdam-09-day-1-emotions-technology/#comments</comments>
		<pubDate>Wed, 25 Feb 2009 14:43:37 +0000</pubDate>
		<dc:creator>Maarten Cox</dc:creator>
				<category><![CDATA[Event]]></category>
		<category><![CDATA[slides]]></category>
		<category><![CDATA[FITC 2009 Amsterdam]]></category>

		<guid isPermaLink="false">http://www.ida-mediafoundry.be/labs/?p=29</guid>
		<description><![CDATA[Maybe I went to the &#8220;wrong&#8221; sessions, but the sessions I liked best were not about code samples or know-how or technical stuff. I was kind of surprised to find sessions like these because I expected to see a lot of code and other ingenious constructions.So here is an overview from the sessions I was [...]]]></description>
			<content:encoded><![CDATA[<p>Maybe I went to the &#8220;wrong&#8221; sessions, but the sessions I liked best were not about code samples or know-how or technical stuff. I was kind of surprised to find sessions like these because I expected to see a lot of code and other ingenious constructions.So here is an overview from the sessions I was able to attend<span id="more-29"></span></p>
<p><strong>Adobe Keynote</strong></p>
<p>Fitc was kick-started by the Adobe Keynote. A quick update from how things are going and what the plans are for the near future. Maybe some quick numbers here: 90% of online video content is in Flash. 50% of all flash players has been updated to FP10 and Adobe Air (happy birthday Air by the way) has been installed 100 million times already. Adobe also said that Twitter was a big help for reaching this number, because of the various Twitter Air applications. They&#8217;re also planning on bringing Air to mobile devices.</p>
<p>Also, they will be focusing on devices, which means they want to bring the same apps and experience to all sorts of devices like cellphones and the Nintendo Wii.</p>
<p>Furthermore there was a short demo of the <a href="http://www.openscreenproject.org/" target="_blank">Open Screen Project</a> which looked quite nice and a call to developers to take a look at the File Reference class for FP10.</p>
<p><strong>Aral Balkan &#8211; The future is so bright, I&#8217;ve got to wear shades</strong></p>
<p>Really really cool session from Aral with a very nice intro (<a href="http://www.youtube.com/watch?v=xUN93yja_zI">YouTube Video</a>).<br />
Aral was talking about how hardware and services are becoming commodities (Mac&#8217;s are not though) and that the time that used to be spent on dealing with this stuff now could be spent on creating really cool stuff and things you like to create and work on.</p>
<p>He also told us how spoiled we were with Nth-generation tools like Air, <a href="http://www.qtsoftware.com/products/">QT</a> (air is not the only one) and <a href="http://unity3d.com/">Unity</a> and with new killer IDE features like the Adobe MarketPlace and the Appstores. We can just code, compile and sell our stuff now.</p>
<p>Then he went on to talk about &#8220;utility computing&#8221; which means that we can now rent what we need and that the service will grow with our app as we need it. Services like cloud computing and <a href="http://googleappengine.blogspot.com/">Google&#8217;s GAEBAR</a> make it easy for us now.</p>
<p>To make sure your application won&#8217;t turn into a commodity, you should always build a fantastic user experience around it, and make sure that you focus on the user. That&#8217;s how the Ipod and Starbucks did it. By doing this, the programmer becomes an author (according to Aral) because you can now create your own identity and style. His best advice was probably: &#8220;Try to do only what you like and understand, does it give me joy to use and build this, and when building, don&#8217;t be good, be exceptional. Life&#8217;s too short!</p>
<p><strong>Ralp Hauwert &#8211; Professionaly Pushing Pixels / Carlos Ulloa &#8211; We make. You enjoy</strong></p>
<p>Both presentations were about 3D stuff, though Ralp Hauwert was mostly talking about Alchemy en PixelBender with which he achieved some great results like a tunnel of pixels and even a complete Quake Map in Flash Player 10 with high fps while Carlos was showing a project with papervision and some problem-solutions with this project. Both were quite interesting, but because 3D in Flash is not my cup of tea, I was more looking at the great things they were showing on the screen then really understanding what they were doing.</p>
<p><strong>Florian Schmitt &#8211; Everything is beautifull and nothing was hurt</strong></p>
<p>The last session I was able to attend was the session from Florian Schmitt. He was showing us projects which his company (<a href="http://hi-res.net/">Hi-Res</a>) did the last couple of years. They did some really amazing things like the new <a href="http://www.jagermeister.com/">Jagermeister</a> website and a campaign for Lost (the series) to fill the gap between two seasons which took one year and went so big that it even involved producing some custom chocolate. But like Aral earlier, he also wanted to take some time to give some advice: Look around you, look up and look down, make some fun and show the stuff you create to your mom and dad, in stead of trying to win awards. Being passionate about your work is great, but you always should realize that there are more important things in live!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.ida-mediafoundry.be/labs/2009/02/fitc-amsterdam-09-day-1-emotions-technology/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Memory problems with Spring/Hibernate applications</title>
		<link>http://www.ida-mediafoundry.be/labs/2009/01/memory-problems-with-springhibernate-applications/</link>
		<comments>http://www.ida-mediafoundry.be/labs/2009/01/memory-problems-with-springhibernate-applications/#comments</comments>
		<pubDate>Fri, 30 Jan 2009 08:44:44 +0000</pubDate>
		<dc:creator>Dieter Merlin</dc:creator>
				<category><![CDATA[Hibernate]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[Spring]]></category>

		<guid isPermaLink="false">http://www.ida-mediafoundry.be/labs/?p=26</guid>
		<description><![CDATA[For a long time many developers have experiences OutOfMemory: PermGen  errors when using/deploying an application that has both Spring and hibernate.
Initially it was said that this only occurs on Tomcat/JBossAS servers, but this also occurs on other application servers or containers like Jetty, OC4J, &#8230;
The culprit appeared to be Hibernate because it used CGLIB for [...]]]></description>
			<content:encoded><![CDATA[<p>For a long time many developers have experiences OutOfMemory: PermGen  errors when using/deploying an application that has both Spring and hibernate.</p>
<p>Initially it was said that this only occurs on Tomcat/JBossAS servers, but this also occurs on other application servers or containers like Jetty, OC4J, &#8230;</p>
<p>The culprit appeared to be Hibernate because it used CGLIB for creating proxies.</p>
<p>This library apparently has a memory leak which the developers did not fix for more than 2 years now.</p>
<p>If you ever experience this kind of problem with your application, there is a solution. Hibernate 3.3.x or higher no longer uses CGLIB, but javassist and Spring uses the standard JDK Proxy mechanism.</p>
<p>Hibernate 3.2 and 3.3 both support javassist but 3.3 uses it by default. Just make sure no cglib jar is present in your classpath but instead a javassist jar is there.</p>
<p>Also, Hibernate 3.3 now uses slf4j instead of commons logging because this library also holds classloader references and slf4j can use a different back-end instead of commons-logging.</p>
<p>Restarting the server every time after a deploy because it goes out of memory due to this problem is more than just an inconvenience,</p>
]]></content:encoded>
			<wfw:commentRss>http://www.ida-mediafoundry.be/labs/2009/01/memory-problems-with-springhibernate-applications/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
