<?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>www.riactive.com &#187; Flex Data Services</title>
	<atom:link href="http://www.riactive.com/category/flex-data-services/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.riactive.com</link>
	<description>Adobe User Group México</description>
	<lastBuildDate>Tue, 03 Jan 2012 09:13:33 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>Resumen Duane Mx 2011</title>
		<link>http://www.riactive.com/2011/04/18/resumen-duane-mx-2011/</link>
		<comments>http://www.riactive.com/2011/04/18/resumen-duane-mx-2011/#comments</comments>
		<pubDate>Mon, 18 Apr 2011 19:57:51 +0000</pubDate>
		<dc:creator>yacaFx</dc:creator>
				<category><![CDATA[ComunidadAdobe]]></category>
		<category><![CDATA[Eventos]]></category>
		<category><![CDATA[Flash Media Server]]></category>
		<category><![CDATA[Flex]]></category>
		<category><![CDATA[Flex Data Services]]></category>
		<category><![CDATA[General]]></category>
		<category><![CDATA[Mobile]]></category>
		<category><![CDATA[22 Century]]></category>
		<category><![CDATA[Adobe]]></category>
		<category><![CDATA[Duane Nickull]]></category>
		<category><![CDATA[duanechaos]]></category>
		<category><![CDATA[DuaneMx2011]]></category>
		<category><![CDATA[evento]]></category>
		<category><![CDATA[mexico]]></category>
		<category><![CDATA[mx]]></category>
		<category><![CDATA[riactive]]></category>

		<guid isPermaLink="false">http://www.riactive.com/?p=1580</guid>
		<description><![CDATA[El día 6 de abril Duane Nickull @duanechaos regreso a México al #DuaneMx2011, evento que estuvo muy nutrido en asistencia y contenidos por demás interesantes. Duane es Evangelista de Adobe, un gran entusiasta de la tecnología, fanático del rock y toca el bajo en su banda 22nd Century. En esta segunda edición del #DuaneMx2011 Duane [...]]]></description>
			<content:encoded><![CDATA[<p>El día 6 de abril <a href="http://technoracle.blogspot.com/">Duane Nickull</a> <a href="http://twitter.com/duanechaos">@duanechaos</a> regreso a México  al #DuaneMx2011, evento que estuvo muy nutrido en asistencia y contenidos por demás interesantes. Duane es Evangelista de Adobe, un gran entusiasta de la tecnología, fanático del rock y toca el bajo en su banda <a href="http://22ndcenturyofficial.com/">22nd Century</a>.</p>
<p>En esta segunda edición del #DuaneMx2011 Duane impartio un workshop de desarrollo de apps para móviles usando<a href="http://www.adobe.com/products/flash-builder.html"> Flash Builder Burrito</a>v(el cual ya fue liberado) donde aprendimos a usar las características mas importantes de un dispositivo movil, que ahora, podemos darle salida para móviles o tabletas. Duane aprovechó también para grabar un capítulo de su show,<a href="http://tv.adobe.com/watch/duanes-world/duanes-world-flexico/"> Duane's World</a>,  en <a href="http://tv.adobe.com/">Adobe TV</a> en el cual es muy probable que salgas si es que asististe al evento y que somos los primero en repetir .</p>
<p>Les dejamos fotos del evento acompañada de <a href="http://22ndcenturyofficial.com/downloads.html">"509" de 22nd  Century</a> y el resumen de las charlas que antecedieron al workshop.</p>
<div style="text-align:center">

<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"
			id="fm_>
_932621074"
			class="flashmovie"
			width="400"
			height="300">
	<param name="movie" value="http://vimeo.com/moogaloop.swf?clip_id=22570026&amp;server=vimeo.com&amp;show_title=1&amp;show_byline=1&amp;show_portrait=1&amp;color=00adef&amp;fullscreen=1&amp;autoplay=0&amp;loop=0<br />
" />
	<param name="allowscriptaccess" value="always" />
	<!--[if !IE]>-->
	<object	type="application/x-shockwave-flash"
			data="http://vimeo.com/moogaloop.swf?clip_id=22570026&amp;server=vimeo.com&amp;show_title=1&amp;show_byline=1&amp;show_portrait=1&amp;color=00adef&amp;fullscreen=1&amp;autoplay=0&amp;loop=0<br />
"
			name="fm_>
_932621074"
			width="400"
			height="300">
		<param name="allowscriptaccess" value="always" />
	<!--<![endif]-->
		
	<!--[if !IE]>-->
	</object>
	<!--<![endif]-->
</object>
</div>
<p><span id="more-1580"></span></p>
<p>La agenda del día estuvo de la siguiente manera:</p>
<p>Primero <a href="http://riata.wordpress.com/">Israel Gaytan</a> <a href="http://twitter.com/isragaytan">@isragaytan</a> con High Performance RIA Teams nos platicó sobre los pormenores y formas de trabajo en equipos dedicados al desarrollo de RIA's así como también nos dio unos cuantos tips para la administración y gestión de proyectos con metodologías como <a href="http://en.wikipedia.org/wiki/Scrum_(development)">SCRUM</a>, dejando muy en claro que algo tan básico como la comunicación es determinante en el éxito o fracaso de un proyecto. Aquí la presentación que dio.</p>
<div style="text-align:center">

<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"
			id="fm_ssplayer2_1147169553"
			class="flashmovie"
			width="425"
			height="344">
	<param name="movie" value="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=highperformanceriateams-110416110722-phpapp01&amp;stripped_title=high-performance-ria-teams&amp;userName=yacaFx" />
	<!--[if !IE]>-->
	<object	type="application/x-shockwave-flash"
			data="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=highperformanceriateams-110416110722-phpapp01&amp;stripped_title=high-performance-ria-teams&amp;userName=yacaFx"
			name="fm_ssplayer2_1147169553"
			width="425"
			height="344">
	<!--<![endif]-->
		
	<!--[if !IE]>-->
	</object>
	<!--<![endif]-->
</object>
</div>
<p>Después Pedro Jimenez <a href="http://twitter.com/creativepete">@creativepete</a> nos mostró la fuerza que puede tener <a href="http://www.adobe.com/products/flashmediaserver/">Flash Media Server</a> con su charla "Improve your Flash-based RIA with <a href="http://en.wikipedia.org/wiki/Voice_over_IP">VoIP</a>". En ella hizo una interesante perspectiva al plantear como serian los sitios web si tuvieran implementados accesos VoIp y como estos mejorarían la experiencia del usuario al visitar estos sitios. Entre ejemplos y estadísticas Pedro nos dejo la cosquillita de la importancia y relevancia de la VoIp en las RIA's y como la VoIp a pesar de ser un concepto algo añejo puede seguir revolucionando el área del desarrollo de software. Aquí la presentación de Pedro y el <a href="http://dl.dropbox.com/u/6289935/Adobe_FlashVoIP.zip">código usado</a>.</p>
<div style="text-align:center">

<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"
			id="fm_ssplayer2_1217930164"
			class="flashmovie"
			width="425"
			height="344">
	<param name="movie" value="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=flashvoip-110416121433-phpapp02&amp;stripped_title=improve-your-flashbased-ria-with-voip&amp;userName=yacaFx" />
	<!--[if !IE]>-->
	<object	type="application/x-shockwave-flash"
			data="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=flashvoip-110416121433-phpapp02&amp;stripped_title=improve-your-flashbased-ria-with-voip&amp;userName=yacaFx"
			name="fm_ssplayer2_1217930164"
			width="425"
			height="344">
	<!--<![endif]-->
		
	<!--[if !IE]>-->
	</object>
	<!--<![endif]-->
</object>
</div>
<p>En la penúltima charla <a href="http://claudionebbia.arscite.org/">Claudio Nebbia</a> <a href="http://twitter.com/#!/claudionebbia">@claudionebbia</a> y <a href="http://rojasazules.blogspot.com/">David Rojas</a> <a href="http://twitter.com/rojasazules">@rojasazules</a> nos impresionaron con las capacidades que puede alcanzar Flash al integrarlo con <a href="http://en.wikipedia.org/wiki/Voice_over_IP">Arduino </a>en su charla "Arduino and Flash, making things move, shine and feel". Pudimos presenciar algo que <a href="http://www.youtube.com/watch?v=p06kM0JiwPY">habíamos visto en youtube</a> o leido en algunos blogs sobre la potencia de arduino y lo simple y sencillo que es integrarlo con la <a href="http://www.adobe.com/flashplatform/">Flash Platform</a> y poder desarrollar RIA's interactuando la realidad física con la virtual. Aqui su presentación, el <a href="http://desarrollo.arscite.org/arduino/arduinoFlash.zip">código usado</a> y un <a href="http://claudionebbia.arscite.org/?p=26">post</a> donde describen detalladamente el proceso usado para replicar el demo de su charla.</p>
<div style="text-align:center">

<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"
			id="fm_preziloader_1133250703"
			class="flashmovie"
			width="425"
			height="344">
	<param name="movie" value="http://prezi.com/bin/preziloader.swf" />
	<param name="flashvars" value="prezi_id=erv3qmg56rgu&lock_to_path=0&color=ffffff&autoplay=no&autohide_ctrls=0" />
	<!--[if !IE]>-->
	<object	type="application/x-shockwave-flash"
			data="http://prezi.com/bin/preziloader.swf"
			name="fm_preziloader_1133250703"
			width="425"
			height="344">
		<param name="flashvars" value="prezi_id=erv3qmg56rgu&lock_to_path=0&color=ffffff&autoplay=no&autohide_ctrls=0" />
	<!--<![endif]-->
		
	<!--[if !IE]>-->
	</object>
	<!--<![endif]-->
</object>
</div>
<p>Esperamos que este evento les allá sido muy útil y estén pendientes al twitter de <a href="http://twitter.com/#!/riactive">@riactive</a> y el site en <a href="http://www.facebook.com/group.php?gid=52019066719">Facebook</a> para mas noticias y nuevos eventos!</p>
<p>Saludos y Happy Coding!!!<br />
by Sergio Brito aka <a href="http://twitter.com/yacafx">@yacaFx</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.riactive.com/2011/04/18/resumen-duane-mx-2011/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Secrets from Technoracle</title>
		<link>http://www.riactive.com/2011/04/04/secrets-from-technoracle/</link>
		<comments>http://www.riactive.com/2011/04/04/secrets-from-technoracle/#comments</comments>
		<pubDate>Mon, 04 Apr 2011 23:55:01 +0000</pubDate>
		<dc:creator>dannyGeek</dc:creator>
				<category><![CDATA[Eventos]]></category>
		<category><![CDATA[Flex]]></category>
		<category><![CDATA[Flex Data Services]]></category>

		<guid isPermaLink="false">http://www.riactive.com/?p=1559</guid>
		<description><![CDATA[Listos para Duane Nickull este miercoles??? Eso no es todo!!!!!!! este Martes, SI este Martes 5 Abril tenemos una charla informal con Duane Donde:   Hacker Room (a una cuadra del Angel de la Independencia) Hora:      16:00 hrs Posibles Temas: HTML5, Flash and AJAX to the Year 2020 , SEO Tips and Tricks, Music,Mobile [...]]]></description>
			<content:encoded><![CDATA[<p>Listos para <strong>Duane Nickull</strong> este <a title="miercoles" href="http://www.riactive.com/2011/03/28/duanemx2011/" target="_blank">miercoles</a>???</p>
<p>Eso no es todo!!!!!!! este Martes, SI este <strong>Martes 5 Abril</strong> tenemos una charla informal con <em>Duane</em></p>
<p><a href="http://www.riactive.com/wp-content/uploads/2011/04/duane.0011.png"><img class="size-medium wp-image-1567 aligncenter" src="http://www.riactive.com/wp-content/uploads/2011/04/duane.0011-300x225.png" alt="" width="300" height="225" /></a></p>
<p>Donde:   <a title="Hacker Room" href="http://hackerroom.mx/acerca/" target="_blank">Hacker Room</a> (a una cuadra del Angel de la Independencia)<br />
Hora:      16:00 hrs<br />
Posibles Temas: HTML5, Flash and AJAX to the Year 2020 , SEO Tips and Tricks, Music,Mobile Development, Technology and Culture.<br />
Registro:  <a href="http://www.eventbrite.com/myevent?eid=1465361937">Secrets from Technoracle</a></p>
<p>Happy networking!!!!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.riactive.com/2011/04/04/secrets-from-technoracle/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Robotlegs 101 &#8211; Acción</title>
		<link>http://www.riactive.com/2011/02/10/robotlegs-101-accion/</link>
		<comments>http://www.riactive.com/2011/02/10/robotlegs-101-accion/#comments</comments>
		<pubDate>Thu, 10 Feb 2011 18:00:55 +0000</pubDate>
		<dc:creator>GzFrancisco</dc:creator>
				<category><![CDATA[flash]]></category>
		<category><![CDATA[Flex]]></category>
		<category><![CDATA[Flex Data Services]]></category>
		<category><![CDATA[Recursos]]></category>
		<category><![CDATA[Robotlegs]]></category>
		<category><![CDATA[development]]></category>
		<category><![CDATA[flashbuilder]]></category>
		<category><![CDATA[RIA]]></category>
		<category><![CDATA[robotlegs]]></category>
		<category><![CDATA[web]]></category>
		<category><![CDATA[Web development]]></category>

		<guid isPermaLink="false">http://www.riactive.com/?p=1417</guid>
		<description><![CDATA[Este es el ultimo articulo de la serie Robotlegs 101 en la cual hablaremos de los comandos, servicios y modelos que podremos utilizar en nuestra aplicación con este framework. Comandos La clase command es una clase que permite ejecutar codigo mediante la sobre escritura del metodo execute. El verdadero poder de los comandos radica en que estos [...]]]></description>
			<content:encoded><![CDATA[<p>Este es el ultimo articulo de la serie <strong>Robotlegs 101</strong> en la cual hablaremos de los comandos, servicios y modelos que podremos utilizar en nuestra aplicación con este framework.</p>
<p style="text-align: center;"><a href="http://www.riactive.com/wp-content/uploads/2011/02/ls-militarRL.jpg"><img class="size-full wp-image-1418 aligncenter" title="ls-militarRL" src="http://www.riactive.com/wp-content/uploads/2011/02/ls-militarRL.jpg" alt="" width="425" height="285" /></a></p>
<p><span id="more-1417"></span></p>
<h2>Comandos</h2>
<p>La clase <strong>command</strong> es una clase que permite ejecutar codigo mediante la sobre escritura del metodo execute. El verdadero poder de los comandos radica en que estos responden no a inyecciones, sino a llamadas de eventos.</p>
<p>Los comandos son definidos en el contexto de la siguiente manera:</p>
<p><a href="http://www.riactive.com/wp-content/uploads/2011/02/103-1.png"><img class="aligncenter size-full wp-image-1421" title="Context Command" src="http://www.riactive.com/wp-content/uploads/2011/02/103-1.png" alt="" width="707" height="163" /></a></p>
<p>y a lo largo del tiempo de ejecución de nuestra aplicación cualquier actor del framework que dispare el evento asociado mandara ejecutar el método excecute de nuestro comando.</p>
<p>Al principio es complicado entender la razón de estos, ya que <em>en múltiples ocasiones tenemos un mundo de comandos y no haremos una clase para cada uno</em> ¿verdad?. Pero la razón radica en que los comandos serán utilizados en ocasiones especificas para realizar tareas complejas o de muchas inyecciones de dependencias. Recordemos que <strong>las inyecciones de dependencias tienen un costo en memoria</strong>, puede o no ser alto pero una manera para controlar ese costo es que un solo objeto tenga las inyecciones como una comando que tiene inyección de 3 servicios con 5 modelos por ejemplo. Entonces de esta manera no tendremos múltiples mediadores que inyecten 8 componentes y así solo tenemos a uno, un comando.</p>
<p>Ademas una de sus cualidades es que podemos definir que este comando se ejecute una sola vez en la vida del contexto. Esto funciona muchas veces para obtener datos pesados y asegurarnos de que ningún otro objeto va a hacer esa petición en algún lado de la aplicación.</p>
<p>En nuestro ejemplo colocaremos un código simple que nos mostrara como ejecutar la inyección del evento y la inyección de un servicio.</p>
<p><a href="http://www.riactive.com/wp-content/uploads/2011/02/103-2.png"><img class="aligncenter size-full wp-image-1422" title="RL 103 Command" src="http://www.riactive.com/wp-content/uploads/2011/02/103-2.png" alt="" width="470" height="290" /></a></p>
<h2><strong>Servicios.</strong></h2>
<p>Los servicios en Robotlegs son la extensión del patrón <strong>MVC</strong>, es la razón por la cual el modelo se vuelve mas simple y las peticiones foráneas se hacen aquí.</p>
<p>Las clases servicios extienden a la clase <strong>Actor</strong> (al igual que los modelos) pero tienen una particularidad, estos son invocados a través de una interfaz. Si, en efecto necesitamos crear una interfaz para que sea esta la que inyectemos en los otros actores del framework.</p>
<p><strong>Robotolegs</strong>, promueve el trabajo con interfaces porque es mas fácil y seguro conocer los métodos que las clases implementan, sin conocer la forma de su implementación. Por lo tanto lo que nosotros podemos realizar es una sola interfaz e implementarla en varias clases que se dediquen a realizar servicios de datos.</p>
<p>En nuestro ejemplo crearemos una implementación del patrón de diseño de interfaz <strong>DAO</strong></p>
<p><a href="http://www.riactive.com/wp-content/uploads/2011/02/103-3.png"><img class="aligncenter size-full wp-image-1423" title="RL 103 DAO" src="http://www.riactive.com/wp-content/uploads/2011/02/103-3.png" alt="" width="375" height="144" /></a></p>
<p>Y lo implementaremos en nuestra clase <strong>RecetasDAOImp</strong></p>
<p><a href="http://www.riactive.com/wp-content/uploads/2011/02/103-4.png"><img class="aligncenter size-full wp-image-1424" title="RL 103 DAOImp" src="http://www.riactive.com/wp-content/uploads/2011/02/103-4.png" alt="" width="410" height="237" /></a></p>
<p><a href="http://www.riactive.com/wp-content/uploads/2011/02/103-4.png"></a>Y aqui el metodo obtenerTodosResult que es parte de la clase RecetarioDAOImp:</p>
<p><a href="http://www.riactive.com/wp-content/uploads/2011/02/103-5-1.png"><img class="aligncenter size-full wp-image-1425" title="RL 103 DAOImp2" src="http://www.riactive.com/wp-content/uploads/2011/02/103-5-1.png" alt="" width="467" height="239" /></a></p>
<p>Lo único que tenemos que realizar en el contexto es decir que cuando alguien pregunte por DAO le entregaremos un <strong>RecetasDAOImp</strong>.</p>
<p>Aquí hay algo importante, y es que la inyección realizara un singleton en toda la aplicación. Por lo tanto cada que alguien invoque a RecetasDAOImp se entregara el mismo objeto. Esto es muy importante por si quieres saber el estado del servicio ejecutado.</p>
<h2><strong>Modelo.</strong></h2>
<p>Les tenemos una buena noticia, ya no trabajaran con Fat’s Models. Ahora que separamos los servicios del modelo podremos tener modelos mas estilizadas <img src='http://www.riactive.com/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
<p>Al igual que los servicios los modelos también extienden la Clase <strong>Actor</strong>, ya que esta clase es capaz de distribuir eventos. Y funciona muy buen para un guardado de datos en toda la aplicación. Así podemos tener en cualquier momento ciertos datos que requerimos en la solución.</p>
<p>Inyectando esta clase, nosotros realmente hacemos un singleton y con un buen uso nos podremos ahorrar muchos dolores de cabeza al ir por datos. Y esto nos asegura que solamente tendremos un arrayCollection con un tipo de dato.</p>
<p>En nuestro ejemplo construiremos una clase llamada Recetario y una variable <strong>recetasModelo</strong> que guardara los resultados de todas las recetas en nuestra BD y distribuiremos un evento que contenga al modelo cuando acabemos de llenarlo.</p>
<p><a href="http://www.riactive.com/wp-content/uploads/2011/02/103-5.png"><img class="aligncenter size-full wp-image-1426" title="RL 103 Model" src="http://www.riactive.com/wp-content/uploads/2011/02/103-5.png" alt="" width="584" height="379" /></a></p>
<h2><strong>Comunicación con Mediadores.</strong></h2>
<p>Recuerden que el caso de usar este framework es que no importa quien ejecuta las peticiones del comando, servicio o modelo solo importa que eventos estamos distribuyendo. Por lo tanto debemos tener un evento que guarde los datos que vamos a transmitir durante el evento.</p>
<p><a href="http://www.riactive.com/wp-content/uploads/2011/02/103-6.png"><img class="aligncenter size-full wp-image-1427" title="RL 103 Evento" src="http://www.riactive.com/wp-content/uploads/2011/02/103-6.png" alt="" width="678" height="234" /></a></p>
<p>Por lo tanto cuando nosotros queramos estar al pendiente de algún evento que va a escuchar el contexto necesitaremos registrarlo en nuestro método onRegister del mediador.</p>
<p>Escribiremos lo siguiente en nuestro mediador para estar al pendiente de nuestro evento que distribuye la clase Recetario cuando acaba de llenar la variable recetas.</p>
<p><a href="http://www.riactive.com/wp-content/uploads/2011/02/103-7-1.png"><img class="aligncenter size-full wp-image-1431" title="RL 103 Mediator register events context" src="http://www.riactive.com/wp-content/uploads/2011/02/103-7-1.png" alt="" width="878" height="139" /></a></p>
<p>Este seria el código final de nuestro contexto de aplicación.</p>
<p><a href="http://www.riactive.com/wp-content/uploads/2011/02/103-7.png"><img class="aligncenter size-full wp-image-1430" title="RL 103 Contexto Final" src="http://www.riactive.com/wp-content/uploads/2011/02/103-7.png" alt="" width="728" height="350" /></a></p>
<h2>Conclusiones.</h2>
<p>Con Robotlegs tenemos un poderoso framework que implementa Inversión de Control bajo Inyección de dependencias y un patrón extendido que nos permitirá un flujo mas separado de código. Incluso si ustedes desean pueden separar algunas funciones, dedicando algunas funciones a distintas personas, solo recuerden que hay que tener integraciones continuas y frecuentes.</p>
<p>Mis proyectos con Robotlegs han sido de gran agrado, no he tenido que parchar código y es cada vez mas fácil encontrar en donde se encuentran métodos que hay que modificar.</p>
<p>Tal vez al principio piensen “Es mucho trabajo para un hola mundo”, pero la realidad es que este framework esta preparado para trabajar con muchas inyecciones y miles de componentes. Imaginen 30 servicios con 3 interfaces, o múltiples componentes con miles de lineas de código, realmente creen que seria fácil encontrar y modificar el código? Hagan algo de tamaño medio para iniciar y verán que Robotlegs es un gran amigo que pueden llevar en el coche y que maneje por ustedes =)</p>
<p>Como ultima aportación, dejare aquí los links de algunos tutoriales en ingles y uno en español para mas información, junto con algunas listas de twitter que contienen a desarrolladores que ya usan Robotlegs en su trabajo. También les dejare el código en github que contiene el proyecto generado.</p>
<p>Tutoriales</p>
<ul>
<li><a href="http://www.madeinflex.com/2010/07/13/utilizando-robotlegs-para-el-desarrollo-de-aplicaciones-flex/  ">Articulo en MIF</a></li>
<li><a href="https://github.com/robotlegs/robotlegs-framework/wiki/Best-Practices">Consejos de buenas practicas con RL</a></li>
<li><a href="http://joelhooks.com/2009/07/17/robotlegs-as3-a-dependency-injection-driven-mvcs-framework-for-flashflex-%E2%80%93-inspired-by-puremvc/">JHooks tutorial</a></li>
<li><a href="http://joelhooks.com/2009/07/21/unit-testing-with-inversion-of-control-ioc-and-dependency-injection-di-with-the-robotlegs-framework-and-flexunit-4/">JHooks TDD &amp; RL</a></li>
</ul>
<p>Listas de twitter</p>
<ul>
<li><a href="http://twitter.com/stray_and_ruby/robotlegs">http://twitter.com/stray_and_ruby/robotlegs</a></li>
<li><a href="http://twitter.com/robpenner/robotlegs-contributors">http://twitter.com/robpenner/robotlegs-contributors</a></li>
<li><a href="http://twitter.com/eldervaz/robotlegs-es">http://twitter.com/eldervaz/robotlegs-es</a></li>
</ul>
<p>Mi proyecto Robotlegs 101 RIActive en <a href="https://github.com/GzFrancisco/Riactive-Robotlegs101">GitHub</a></p>
<p>Y como un pequeño plus, hay algo que siempre me molestaba al crear un proyecto en Robotlegs y era que no tenia como crear todos los paquetes de un solo golpe. Asi que me di a la tarea de hacer un pequeño script en bash para que les ayude a crear todos los paquetes que puede ser que ustedes implementen. Sientan la libertad de hacer un fork, modificarlo y actualizar el proyecto.</p>
<p>Proyecto en Robotlegs Package Creator en <a href="https://github.com/GzFrancisco/Robotlegs-package-creator">GitHub</a></p>
<p><a href="http://www.riactive.com/wp-content/uploads/2011/02/103-8.png"><img class="aligncenter size-full wp-image-1432" title="RL 103 Script bash" src="http://www.riactive.com/wp-content/uploads/2011/02/103-8.png" alt="" width="512" height="264" /></a></p>
<p>Con esto me despido no sin antes recordarles que en <a href="http://twitter.com/#!/riactive">RIActive</a> queremos contar con su opinion y  unos consejos en los comentarios serán bienvenidos. Les mando un abrazo y que tengan un buen coding!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.riactive.com/2011/02/10/robotlegs-101-accion/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Robotlegs 101 &#8211; Fundamentos</title>
		<link>http://www.riactive.com/2011/02/09/robotlegs-101-fundamentos/</link>
		<comments>http://www.riactive.com/2011/02/09/robotlegs-101-fundamentos/#comments</comments>
		<pubDate>Wed, 09 Feb 2011 18:00:53 +0000</pubDate>
		<dc:creator>GzFrancisco</dc:creator>
				<category><![CDATA[flash]]></category>
		<category><![CDATA[Flex]]></category>
		<category><![CDATA[Flex Data Services]]></category>
		<category><![CDATA[General]]></category>
		<category><![CDATA[Robotlegs]]></category>
		<category><![CDATA[Adobe]]></category>
		<category><![CDATA[flashbuilder]]></category>
		<category><![CDATA[flex builder]]></category>
		<category><![CDATA[Flex4]]></category>
		<category><![CDATA[Web development]]></category>

		<guid isPermaLink="false">http://www.riactive.com/?p=1403</guid>
		<description><![CDATA[Fundamentos Esta es la segunda entrega de la serie de artículos Robotlegs 101, en la anterior parte revisamos una Introducción a la tecnología y en esta aprenderemos los fundamentos: cómo configurar el contexto y manejar vistas y mediadores para poder separar el código de la vista. Listos? startup... Primero necesitamos que nuestra aplicación sea configurada por una clase que herede propiedades [...]]]></description>
			<content:encoded><![CDATA[<h2>Fundamentos</h2>
<p>Esta es la segunda entrega de la serie de artículos Robotlegs 101, en la anterior parte revisamos una <a href="http://www.riactive.com/2011/02/08/robotlegs-101-intro/">Introducción</a> a la tecnología y en esta aprenderemos los fundamentos: cómo configurar el contexto y manejar vistas y mediadores para poder separar el código de la vista.</p>
<p style="text-align: center;"><a href="http://www.riactive.com/wp-content/uploads/2011/02/mediadorRL.jpg"><img class="size-medium wp-image-1405 aligncenter" title="mediadorRL" src="http://www.riactive.com/wp-content/uploads/2011/02/mediadorRL-300x192.jpg" alt="" width="300" height="192" /></a></p>
<p><span id="more-1403"></span></p>
<h2>Listos? startup...</h2>
<p>Primero necesitamos que nuestra aplicación sea configurada por una clase que herede propiedades de la clase Context. Entonces el primer paso es crear una clase llamada MainContext.as</p>
<p>En esta clase replantearemos (override) el método startup adentro del cual haremos el mapeo de objetos. Esto quiere decir que aquí colocaremos todas las definiciones de vistas, clases, singletons, servicios, comandos y mediadores que existen en nuestra aplicación.</p>
<p>Para mapear objetos en el contexto solo hay que definir que tipo de mapeo haremos. Existen varios tipos, nosotros utilizaremos los 3 mas ocupados.</p>
<ul>
<li>Para mapear los datos de Modelos y de Servicios utilizaremos injector</li>
<li>Para los componentes visuales y sus mediadores utilizaremos viewMap</li>
<li>Y por ultimo para registrar eventos con comandos se harán con commandMap.</li>
</ul>
<p>Para avanzar en este tutorial solamente necesitamos mapear el la vista y el mediador, mas adelante mapearemos un comando, a un modelo y a un servicio.</p>
<p><a href="http://www.riactive.com/wp-content/uploads/2011/02/2.png"><img class="aligncenter size-full wp-image-1406" title="Clase MainContext" src="http://www.riactive.com/wp-content/uploads/2011/02/2.png" alt="" width="706" height="201" /></a></p>
<p>Una vez lista nuestra clase que extiende el Context [nota: puede haber varios contextos] ahora solo hay que iniciarla adentro de nuestra aplicación flex o flash.</p>
<p>Ya que creamos la clase MainContext la podemos iniciar desde nuestra aplicación de lpa siguiente manera.</p>
<h1><a href="http://www.riactive.com/wp-content/uploads/2011/02/102-3.png"><img class="size-full wp-image-1409 aligncenter" title="Configurar el context en application" src="http://www.riactive.com/wp-content/uploads/2011/02/102-3.png" alt="" width="348" height="48" /></a></h1>
<h2>La vista</h2>
<p>Adentro de RL, la vista se separa en 2 componentes. La clase MXML y la clase Mediadora. Esto quiere decir que toda la implementación del diseño quedara adentro del paquete components con extensión mxml y la lógica de comportamiento de ese componente quedara guardada en el mediador.</p>
<p><strong>¿Por que?</strong> la razón es por que así desacoplamos mas los cambios. El programador puede refactorizar un componente en cuanto a su diseño sin tener que afectar el comportamiento de este.</p>
<p>Adentro de la vista podemos acoplar los comportamientos de efectos, estilos, y skins. Meras cuestiones visuales podrán ser modificadas sin tener que modificar nuestra clase que actuara de mediador.</p>
<p>En nuestra aplicación, lo único que tenemos que hacer es un componente para guardar los datos recibidos en un Datagrid de paso aqui la sintaxis para el Spark y un boton que se llamara obtenerButton que sera el encargado de ejecutar el script en el mediador.</p>
<p><a href="http://www.riactive.com/wp-content/uploads/2011/02/102-4.png"><img class="aligncenter size-full wp-image-1410" title="Datagrid Spark" src="http://www.riactive.com/wp-content/uploads/2011/02/102-4.png" alt="" width="1231" height="257" /></a></p>
<h2>Mediadores</h2>
<p>Son opcionales, pero los mediadores en el framework es una practica que te hará mejor amante... bueno no tanto así, pero si te dará mas tiempo para practicar ; )</p>
<p>Están basados en un patrón, y su función es comunicación con los otros actores del framework (Modelos, Servicios y Comandos) y tus componentes (vistas, clases mxml, renderers y módulos, clases visuales en AS). Estos tienen la capacidad de inyectar como propiedades otras clases (en ocasiones ya iniciadas por el framework) como servicios y/o modelos y también registrar eventos/señales de nuestras vistas para un trabajo con los actores del framework, haciendo un flujo de trabajo mas separado y fácil de configurar.</p>
<p>En nuestro ejemplo vamos a realizar la inyección de nuestro componente visual a través de un metatag personalizado llamado [Inject] y declarando una variable publica (vital que sea publica) y colocando el nombre de su clase para saber que actor de nuestro framework vamos a inyectar. Esta variable NO la vamos a iniciar ya que Robotlegs se encargara de ese trabajo y lo hará una vez por cada evento startup que sea distribuido.</p>
<p>Inmediatamente después vamos a iniciar el trabajo del mediador con su componente visual. Esto lo haremos mediante la sobre escritura del método onRegister y adentro podremos colocar los eventos que nuestro componente gráfico (o sus elementos) despachara(n).</p>
<p><a href="http://www.riactive.com/wp-content/uploads/2011/02/102-5.png"><img class="aligncenter size-full wp-image-1411" title="Mediador" src="http://www.riactive.com/wp-content/uploads/2011/02/102-5.png" alt="" width="880" height="435" /></a></p>
<p>El ultimo articulo podremos ver como integrar a los <em>mediadores con comandos, servicios y modelos.</em> Este articulo lo encontraras disponible dentro de poco aquí en <a href="http://twitter.com/#!/riactive">RIActive</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.riactive.com/2011/02/09/robotlegs-101-fundamentos/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Robotlegs 101 &#8211; Introducción</title>
		<link>http://www.riactive.com/2011/02/08/robotlegs-101-intro/</link>
		<comments>http://www.riactive.com/2011/02/08/robotlegs-101-intro/#comments</comments>
		<pubDate>Wed, 09 Feb 2011 02:00:42 +0000</pubDate>
		<dc:creator>GzFrancisco</dc:creator>
				<category><![CDATA[flash]]></category>
		<category><![CDATA[Flex]]></category>
		<category><![CDATA[Flex Data Services]]></category>
		<category><![CDATA[Recursos]]></category>
		<category><![CDATA[Robotlegs]]></category>
		<category><![CDATA[flashbuilder]]></category>
		<category><![CDATA[sdk]]></category>
		<category><![CDATA[tutorials]]></category>

		<guid isPermaLink="false">http://www.riactive.com/?p=1392</guid>
		<description><![CDATA[Saludos a todos los desarrolladores Flex! en esta ocasión vamos a compartir una pequeña introducción a un nuevo framework de inyección de dependencias para ActionScript 3 llamado Robotlegs. Como programadores Flex, será útil aprender este tipo de técnicas acerca de este marco de trabajo que me ha hecho no ensuciar mi código a la hora [...]]]></description>
			<content:encoded><![CDATA[<p>Saludos a todos los desarrolladores Flex! en esta ocasión vamos a compartir una pequeña introducción a un <em>nuevo</em> framework de inyección de dependencias para ActionScript 3 llamado Robotlegs.</p>
<p>Como programadores Flex, será útil aprender este tipo de técnicas acerca de este marco de trabajo que me ha hecho no ensuciar mi código a la hora de arreglar esos bugs (muchas veces cambios del cliente)  U_U</p>
<p style="text-align: center;">
<p style="text-align: center;"><a href="http://www.riactive.com/wp-content/uploads/2011/02/robotlegs.jpeg"><img class="size-full wp-image-1395 aligncenter" title="robotlegs code" src="http://www.riactive.com/wp-content/uploads/2011/02/robotlegs.jpeg" alt="" width="353" height="143" /></a></p>
<p>Este es el primer articulo de 3 que te enseñaran a usar este framework. Puedes esperar el siguiente (Robotlegs 102) muy pronto.</p>
<ul>
<li>RL 101 (Introducción)</li>
<li>RL 102 (Contexto, vista y mediadores)</li>
<li>RL 103 (Comandos, servicios y modeos)</li>
</ul>
<p><span id="more-1392"></span></p>
<h2>¿Robotlegs?</h2>
<p>Desde octubre del año pasado se leían algunos comentarios de Robotlegs (RL), la cuestión que todo mundo admiraba eran 2 cosas, la capacidad de separar código (haciendo referencia al patrón MVCS) y la inversión de control (basada en <a href="https://github.com/tschneidereit/SwiftSuspenders">inyección de dependencias con swfsuspenders</a>)</p>
<p>Robotlegs, es un framework muy estable y con una gran capacidad de crecimiento. Una de sus grandes ventajas es que no extiende el Flex Framework, por lo tanto puede ser usado en aplicaciones Flex o en aplicaciones/animaciones con Flash. La gran capacidad que tiene de integración y lo fácil de su configuración es lo que llama la atención a la mayoría cuando lo conocen.</p>
<h2>Modelo Vista Controlador +S</h2>
<p>El modelo MVC es muy conocido en el mundo de desarrollo, es una buena practica en el momento de arreglar aplicaciones viejas o darle el soporte a las grandes. Si no me creen vean la siguiente imagen de <a href="http://seantheflexguy.com/images/motivational-programming-posters/frameworks.jpg">SeanTheFlexGuy</a>. </p>
<p>Como experiencia les puedo compartir que en un proyecto en donde los cambios son inesperados, la separación del modelo y los servicios es algo mágico, ya que el modelo se encarga solamente de manipular los datos con los que ya contamos, y los servicios y cualquier configuración quedan afuera de esa clase. Es realmente genial que e<strong>l tratamiento de conexiones/datos queden desacoplados</strong> ya que como buena práctica, ellos solo emitirán eventos (o señales) a los demás actores del framework sin tener que saber en donde se encuentran los componentes que están a la escucha de estos eventos.</p>
<p>Este framework esta desacoplando al nivel de colocar los servicios a en un paquete aparte de tus clases. En las mejores prácticas te explican que es una clase muy parecida al comportamiento de los modelos, pero estos en especial no guardan datos, solo hacen conexiones al mundo exterior u ofrecen servicios para la aplicación como parseo de datos, generación de imágenes o algún otro tratamiento a datos que se pudiera dar adentro de la aplicación.</p>
<p>Aquí el <a href="http://www.robotlegs.org/diagram">diagrama oficial de Robotlegs</a></p>
<p style="text-align: center;"><a href="http://www.riactive.com/wp-content/uploads/2011/02/Captura-de-pantalla-2011-02-08-a-las-01.04.26.png"><img class="size-medium wp-image-1398 aligncenter" title="RobotlegsDiagram" src="http://www.riactive.com/wp-content/uploads/2011/02/Captura-de-pantalla-2011-02-08-a-las-01.04.26-300x198.png" alt="" width="300" height="198" /></a></p>
<p>Fue difícil entenderlo, (por que no lo aclara ¬_¬’) pero (si no me equivoco) las lineas punteadas son los eventos/señales (emisión y recepción) y las lineas continuas son inyecciones de dependencias. Lo demás queda claro con el flujo y las leyendas.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.riactive.com/2011/02/08/robotlegs-101-intro/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Webinar Spring + Flex</title>
		<link>http://www.riactive.com/2010/05/12/rumbo-al-spring-io-webinar-spring-flex/</link>
		<comments>http://www.riactive.com/2010/05/12/rumbo-al-spring-io-webinar-spring-flex/#comments</comments>
		<pubDate>Wed, 12 May 2010 16:22:11 +0000</pubDate>
		<dc:creator>Ivan Alvarez</dc:creator>
				<category><![CDATA[Eventos]]></category>
		<category><![CDATA[Flex]]></category>
		<category><![CDATA[Flex Data Services]]></category>

		<guid isPermaLink="false">http://www.riactive.com/?p=1003</guid>
		<description><![CDATA[Como parte de los eventos rumbo al SpringIO en la ciudad de México, el día de hoy se realizará un Webinar en donde se mostrará como Integrar Flex con Spring mediante el proyecto SpringBlazeDS, impartido por Sergi Almar(SpringSource Consultant) e Iván Alvarez (Livedata AUG). Cuando: 12 de Mayo 2010. Donde: http://experts.na3.acrobat.com/springio/. Hora: 7 pm hora de [...]]]></description>
			<content:encoded><![CDATA[<div>Como parte de los eventos rumbo al <a href="http://springio.net/">SpringIO</a> en la ciudad de México, el día de hoy se realizará un Webinar en donde se mostrará como Integrar Flex con Spring mediante el proyecto <a href="http://www.springsource.org/spring-flex">SpringBlazeDS</a>, impartido por <a href="http://twitter.com/sergialmar">Sergi Almar</a>(SpringSource Consultant) e <a href="http://www.twitter.com/ivanhoe">Iván Alvarez</a> (<a href="http://groups.adobe.com/group/841">Livedata AUG</a>).</div>
<ul>
<li><strong>Cuando: 12 de Mayo 2010.</strong></li>
<li><strong><strong>Donde</strong>: <a href="http://experts.na3.acrobat.com/springio/">http://experts.na3.acrobat.com/springio/</a>.</strong></li>
<li><strong> </strong><strong><strong>Hora</strong>: 7 pm hora de México D.F, 2:00 am de España.</strong></li>
</ul>
<p><strong> </strong></p>
<p><a href="http://www.ivanalvarez.com/blog/wp-content/uploads/2010/05/Picture-6.png"><img class="aligncenter size-full wp-image-391" src="http://www.ivanalvarez.com/blog/wp-content/uploads/2010/05/Picture-6.png" alt="Picture 6" width="607" height="178" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.riactive.com/2010/05/12/rumbo-al-spring-io-webinar-spring-flex/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Adobe Developer Week!</title>
		<link>http://www.riactive.com/2010/03/23/adobe-developer-week/</link>
		<comments>http://www.riactive.com/2010/03/23/adobe-developer-week/#comments</comments>
		<pubDate>Tue, 23 Mar 2010 19:20:58 +0000</pubDate>
		<dc:creator>yacaFx</dc:creator>
				<category><![CDATA[air]]></category>
		<category><![CDATA[Eventos]]></category>
		<category><![CDATA[flash]]></category>
		<category><![CDATA[Flash Player]]></category>
		<category><![CDATA[Flex]]></category>
		<category><![CDATA[Flex Data Services]]></category>
		<category><![CDATA[Noticias]]></category>
		<category><![CDATA[developerweek]]></category>
		<category><![CDATA[flashbuilder]]></category>
		<category><![CDATA[flashplatform]]></category>

		<guid isPermaLink="false">http://www.riactive.com/?p=933</guid>
		<description><![CDATA[Con el lanzamiento de Flash Builder 4 y la cercanía de otros eventos relacionados con la Plataforma Flash como el Flash and the City, Adobe lanza el Adobe Developer Week que será del 10 al 14 de Mayo y lo mejor de todo es que será GRATUITO y transmitido EN LINEA por lo que podremos [...]]]></description>
			<content:encoded><![CDATA[<p>Con el lanzamiento de <a href="http://www.adobe.com/products/flashbuilder/">Flash Builder 4</a> y la cercanía de otros eventos relacionados con la <a href="http://www.adobe.com/flashplatform/">Plataforma Flash</a> como el <a href="http://blog.flashandthecity.com/">Flash and the City</a>, Adobe lanza el <a href="http://www.adobevents.com/DeveloperWeek/lp.html">Adobe Developer Week</a> que será del 10 al 14 de Mayo y lo mejor de todo es que será GRATUITO y transmitido EN LINEA por lo que podremos acceder desde cualquier parte y como serán transmitidas usando Connect podrán ser visualizadas desde cualquier móvil con la App de Connect precargada o con Flash Player  =).<br />
<a href="http://www.adobevents.com/DeveloperWeek/lp.html"><img src="http://www.riactive.com/wp-content/uploads/2010/03/DeveloperWeek_Photobanner.jpg" alt="Adobe Developer Week" width="658" height="270" class="aligncenter size-full wp-image-934" /></a><br />
<span id="more-933"></span><br />
Pero... ¿qué es el Adobe Developer Week?<br />
Como lo indica el sitio web de este evento, es la oportunidad para aprender sobre Adobe® Flash® Platform, Adobe Flex, Adobe Flash Builder, Adobe AIR, Adobe Flash Player principalmente, dichas conferencias, demos y workshops online serán impartidos por Evangelistas de Adobe y los Product Managers de las tecnologías, lo que es un valor agregado bastante bueno pues además podremos interactuar con ellos en cada presentación. </p>
<p>Algunos de los tópicos que se cubrirán en el evento son:<br />
• New Features in Adobe® Flash® Builder™ 4<br />
• Building Multi-Screen Applications with the Adobe® Flash® Platform<br />
• Adobe® Flash® Catalyst™ for Developers<br />
• What's New in Adobe® Flash® Builder™ 4 for Java Developers<br />
• What's New in Adobe® Flash® Builder™ 4 for PHP Developers<br />
• Adobe® Flash® Builder™ 4 and Adobe® ColdFusion® 9<br />
• Creating Sexy Applications with the Adobe® Flash® Platform: Designer-Developer Workflow<br />
• Adobe® Flash® Builder™ 4 for Adobe® Dreamweaver® Users<br />
• Building Desktop Applications with Adobe® AIR® 2.0<br />
• Advanced Features in Adobe® Flex®</p>
<p>El registro al evento no está abierto aun, pero puedes dejar tu correo electrónico en el sitio para que te notifiquen en cuanto las inscripciones estén abiertas. </p>
<p>Creo que esté será un muy buen evento tanto para conocer la tecnología como para aprender las nuevas características de productos nuevos.</p>
<p>Nos vemos en el <a href="http://www.adobevents.com/DeveloperWeek/lp.html">Adobe Developer Week</a> y... Happy Coding!!!</p>
<p>Sergio Brito AKA @yacaFx</p>
]]></content:encoded>
			<wfw:commentRss>http://www.riactive.com/2010/03/23/adobe-developer-week/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Tutorial: Como conectar Zend_AMF con Adobe Flex Builder 3</title>
		<link>http://www.riactive.com/2010/01/28/tutorial-como-conectar-zend_amf-con-adobe-flex-builder-3/</link>
		<comments>http://www.riactive.com/2010/01/28/tutorial-como-conectar-zend_amf-con-adobe-flex-builder-3/#comments</comments>
		<pubDate>Thu, 28 Jan 2010 20:43:16 +0000</pubDate>
		<dc:creator>GzFrancisco</dc:creator>
				<category><![CDATA[Flex]]></category>
		<category><![CDATA[Flex Data Services]]></category>

		<guid isPermaLink="false">http://www.riactive.com/?p=736</guid>
		<description><![CDATA[Saludos a los flexeros del mundo, este es mi primer tutorial, como parte del Grupo de Usuarios de Adobe @RIActive. Este tutorial está pensado para seguirse como receta de cocina y que en pocos pasos estén divirtiéndose trabajando con esta poderosa forma de conectar Flex con PHP. Requisitos: Tener ZEND Framework en su última versión [...]]]></description>
			<content:encoded><![CDATA[<p>Saludos a los flexeros del mundo, este es mi primer tutorial, como parte del Grupo de Usuarios de Adobe <a href="http://twitter.com/riactive" target="_blank">@RIActive</a>.</p>
<p>Este tutorial está pensado para seguirse como receta de cocina y que en pocos pasos estén divirtiéndose trabajando con esta poderosa forma de conectar Flex con PHP.</p>
<p>Requisitos:</p>
<ul>
<li>Tener ZEND Framework en su última versión y completo. La razón de tenerlo completo radica en que cuando yo quise instalarlo y solo baje el paquete de ZEND_AMF me arrojaba constantemente errores de librerías requeridas. Para evitarnos eso vamos a conseguir toda la librería de Zend para no tener problemas. <a href="http://framework.zend.com/download/overview">http://framework.zend.com/download/overview</a></li>
<li>Un editor de texto plano o una IDE para PHP. <a href="http://www.eclipse.org/downloads/download.php?file=/technology/epp/downloads/release/galileo/SR1/eclipse-php-galileo-SR1-win32.zip">http://www.eclipse.org/downloads/download.php?file=/technology/epp/downloads/release/galileo/SR1/eclipse-php-galileo-SR1-win32.zip</a></li>
<li>Adobe Flex Builder 3. <a href="http://www.adobe.com/products/flex/">http://www.adobe.com/products/flex/</a></li>
<li>Un servidor http que tenga el motor de ejecución PHP compatible con la versión de  Zend (Yo use wamp). <a href="http://www.wampserver.com/en/download.php">http://www.wampserver.com/en/download.php</a></li>
</ul>
<p><span id="more-736"></span><br />
Contenido:</p>
<ol>
<li>Organizar es buena idea: Preparando a Zend.</li>
<li>MiClasePHP.php: Creando una clase personalizada de PHP</li>
<li>El marco de la puerta: Creando a Zend_AMF_Server</li>
<li>La perilla de la puerta: Configurando Flex</li>
<li>Con quien voy a hablar?: RemoteObject y la configuraciones.</li>
<li>@Flex: “¿Donde estas @PHP?”. @PHP: “Aquiiiiii!!”</li>
</ol>
<h3>Introducción</h3>
<p>Necesitas hacer llamada de una función que se encuentra en una clase PHP desde Flex y te preguntas ¿Cómo logro eso? Una de las diversas respuestas es: Zend_AMF</p>
<p>Zend_AMF es un paquete con el cual lograras hacer llamadas desde Flex a PHP. Zend es un framework para PHP muy potente, por lo tanto cuando el uso de los datos es extremo, esta es la mejor solución.</p>
<h3>Preparando a Zend</h3>
<p>Ok, ahora vamos con el primer paso operativo de esta receta.</p>
<p>En una carpeta del servidor http, colocaremos la carpeta llamada “Zend” la cual contendrá todo el framework que hemos bajado. Dentro del server colocaremos una carpeta que llamaremos “lib” la cual contendrá todas nuestras clases personalizadas.</p>
<p>Y por ultimo crearemos un archivo “zend_amf_server.php” que será el Zend_AMF_Server.</p>
<p><img src="http://l4c.me/uploads/carpetas-inicio-screenshot-1264655585_full550.jpg" alt="Carpetas incio" /></p>
<h2>Creando una clase personalizada de PHP</h2>
<p>Adentro de la carpeta “lib” crearemos una clase de PHP llamada “ClasePersonal” que tenga un método llamado “holaMundo” al cual se le pueda pasar un argumento de tipo string para ejecutar el ejemplo.</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;?php</span></span>
<span style="color: #009900;">class ClasePersonal<span style="color: #66cc66;">&#123;</span></span>
<span style="color: #009900;">public function holaMundo<span style="color: #66cc66;">&#40;</span>$mensaje = <span style="color: #ff0000;">'Hi'</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#123;</span></span>
<span style="color: #009900;">$date = getdate<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>;</span>
<span style="color: #009900;">return <span style="color: #ff0000;">'Hola desde PHP, Flex dijo: '</span>. $mensaje .<span style="color: #ff0000;">' el dia '</span>. $date<span style="color: #66cc66;">&#91;</span><span style="color: #ff0000;">&quot;seconds&quot;</span><span style="color: #66cc66;">&#93;</span>;</span>
<span style="color: #009900;"><span style="color: #66cc66;">&#125;</span></span>
<span style="color: #009900;"><span style="color: #66cc66;">&#125;</span></span>
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">?&gt;</span></span></pre></div></div>

<p>Como pueden observar es una clase cualquiera, no tiene alguna implementación especial o algo por el estilo.</p>
<h3>Creando a Zend_AMF_Server</h3>
<p>En lo personal ésta fue la parte más angustiante de todas, ya que por más que hacia copy-paste de código que obtenía en el sitio de Zend_AMF y de otros tutoriales que encontré, no salía correctamente y era porque a todos o les faltaba alguna línea u otros tenían una entrega del server distinta. La última línea de código de este PHP es la más importante de todas.</p>
<p><strong>“zend_amf_server.php” </strong>será el equivalente a <strong>“gateway.php”</strong> que utiliza AMFPHP. Es la puerta de acceso al server de Zend_AMF.</p>
<p>Este será un pequeño archivo PHP que dará el acceso a Flex. En 6 puntos a seguir estará configurado.</p>
<p>Primero incluimos la librería Zend.</p>

<div class="wp_syntax"><div class="code"><pre class="xml" style="font-family:monospace;">require_once 'Zend/Amf/Server.php';</pre></div></div>

<p>Segundo incluimos a nuestra clase personalizada.</p>

<div class="wp_syntax"><div class="code"><pre class="xml" style="font-family:monospace;">require_once 'lib/ClasePersonal.php';</pre></div></div>

<p>Tercero instanciamos al Zend server.</p>

<div class="wp_syntax"><div class="code"><pre class="xml" style="font-family:monospace;">$server = new Zend_Amf_Server();</pre></div></div>

<p>Cuarto le enviamos a nuestro nuevo server la clase personalizada.</p>

<div class="wp_syntax"><div class="code"><pre class="xml" style="font-family:monospace;">$server-<span style="color: #ddbb00;">&amp;gt;</span>setClass('ClasePersonal');</pre></div></div>

<p>Quinto establecemos el método de entrega del server.</p>

<div class="wp_syntax"><div class="code"><pre class="xml" style="font-family:monospace;">echo $server-<span style="color: #ddbb00;">&amp;gt;</span>handle();</pre></div></div>

<p>Y como producto obtendremos un “zend_amf_server.php” con las siguientes líneas de código:</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;?php</span></span>
<span style="color: #009900;">require_once <span style="color: #ff0000;">'Zend/Amf/Server.php'</span>;</span>
<span style="color: #009900;">require_once <span style="color: #ff0000;">'lib/ClasePersonal.php'</span>;</span>
<span style="color: #009900;">$server = new Zend_Amf_Server<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>;</span>
<span style="color: #009900;">$server-&amp;gt;setClass<span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">'ClasePersonal'</span><span style="color: #66cc66;">&#41;</span>;</span>
<span style="color: #009900;">echo $server-&amp;gt;handle<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>;</span>
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">?&gt;</span></span></pre></div></div>

<p>&lt;mx:Nota&gt;Sí tienen muchas clases de PHP y no tienen deseos de incluirlas al script de PHP y luego enviarlas a Zend. Pueden eliminar el segundo punto y además modifican el quinto por la siguiente línea de código antes del método de entrega del server.</p>

<div class="wp_syntax"><div class="code"><pre class="xml" style="font-family:monospace;">$server-<span style="color: #ddbb00;">&amp;gt;</span>addDirectory('include/services/');</pre></div></div>

<p>&lt;/mx:Nota&gt;</p>
<h3>Configurando a Flex</h3>
<p>Para empezar debemos tener un proyecto de Flex abierto y crear un nuevo archivo con extensión XML adentro de la carpeta “src”.</p>
<p>Al siguiente archivo lo llamaremos “services-config.xml” (sin comillas) y será el encargado de decirle a Flex en donde se encuentra nuestro “zend_amf_server.php”</p>
<p>Este archivo es un documento en formato XML, dentro del cual colocaremos dos cosas importantes: La ruta del “zend_amf_server.php” y el nombre asignado a este canal.</p>
<p>En mi caso el XML contendrá lo siguiente:</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;?xml</span> <span style="color: #000066;">version</span>=<span style="color: #ff0000;">&quot;1.0&quot;</span> <span style="color: #000066;">encoding</span>=<span style="color: #ff0000;">&quot;UTF-8&quot;</span><span style="color: #000000; font-weight: bold;">?&gt;</span></span>
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;services-config<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;services<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;service</span> <span style="color: #000066;">id</span>=<span style="color: #ff0000;">&quot;zend-service&quot;</span> <span style="color: #000066;">messageTypes</span>=<span style="color: #ff0000;">&quot;flex.messaging.messages.RemotingMessage&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span></span>
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;destination</span> <span style="color: #000066;">id</span>=<span style="color: #ff0000;">&quot;zend&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span></span>
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;channels<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;channel</span> <span style="color: #000066;">ref</span>=<span style="color: #ff0000;">&quot;zend-endpoint&quot;</span><span style="color: #000000; font-weight: bold;">/&gt;</span></span>
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/channels<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;properties<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;source<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>*<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/source<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/properties<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/destination<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/service<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/services<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;channels<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;channel-definition</span> <span style="color: #000066;">id</span>=<span style="color: #ff0000;">&quot;zend-endpoint&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span></span>
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;endpoint</span> <span style="color: #000066;">uri</span>=<span style="color: #ff0000;">&quot;http://localhost/zend_amf_server.php&quot;</span><span style="color: #000000; font-weight: bold;">/&gt;</span></span>
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/channel-definition<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/channels<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/services-config<span style="color: #000000; font-weight: bold;">&gt;</span></span></span></pre></div></div>

<p>Como podrán ver, el XML tiene 2 puntos críticos que son los nodos “endpoint” y “destination” dentro de los cuales se especifica la ruta del zend_amf_server y el nombre que se le asignara para identificarlo dentro de Flex.</p>
<p>Una vez creado y guardado el XML nos vamos a nuestro proyecto y damos clic derecho&gt;propiedades&gt;Flex Compiler y en donde dice “Aditional compiler arguments” (Argumentos de compilación adicionales) le agregamos el texto  -services "services-config.xml" (con los guiones y las comillas) y aceptamos los cambios con el botón Ok.</p>
<p><img src="http://l4c.me/uploads/argumentoscompilador-screenshot-1264654877_full550.jpg" alt="argumentos compilador" /></p>
<h3>RemoteObject y las configuraciones.</h3>
<p>Ahora sí, le daremos un nombre a cada clase que necesitemos. Claro esto también se puede hacer en AS pero aquí les va el ejemplo en MXML.</p>
<p>Primero crearemos la etiqueta RemoteObject.</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;mx:RemoteObject</span> <span style="color: #000066;">id</span>=<span style="color: #ff0000;">&quot;ClasePersonal&quot;</span> <span style="color: #000066;">destination</span>=<span style="color: #ff0000;">&quot;zend&quot;</span> <span style="color: #000066;">source</span>=<span style="color: #ff0000;">&quot;ClasePersonal&quot;</span> <span style="color: #000066;">showBusyCursor</span>=<span style="color: #ff0000;">&quot;true&quot;</span> <span style="color: #000066;">fault</span>=<span style="color: #ff0000;">&quot;onConexError(event)&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span></span></pre></div></div>

<p>Aquí una pequeña lista de los atributos que necesitan y para qué sirven:</p>
<p>Id: El identificador con el que llamaran a la clase.</p>
<p>Source: El nombre de la clase PHP que vamos a llamar.</p>
<p>Fault: La función que arrojara para todos los métodos de esa clase, cuando exista algún error.</p>
<p>ShowBusyCursor: Es para que se muestre ocupado el mouse cuando está haciendo la llamada a los servicios PHP hasta que retorne algún valor/error.</p>
<p>Destination: Recuerdan que en el XML llamado “services-config.xml” tenía un nodo llamado destination, pues el valor del atributo de ese nodo es el que va aquí y sirve para indicarle a este RemoteObject a donde hay que enviar todas las consultas.</p>
<p>Una vez que ya colocamos la instancia de RemoteObject por clase PHP, pasaremos a indicar cuáles son los métodos de la clase PHP y como los llamaremos en Flex.</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;mx:method</span> <span style="color: #000066;">name</span>=<span style="color: #ff0000;">&quot;holaMundo&quot;</span> <span style="color: #000066;">result</span>=<span style="color: #ff0000;">&quot;onResultHolaMundo(event)&quot;</span><span style="color: #000000; font-weight: bold;">/&gt;</span></span></pre></div></div>

<p>Atributos de la etiqueta Methods:</p>
<p>Id: El nombre del método de la clase PHP.</p>
<p>Result: la función de Flex, la cual será llamada cuando exista regreso en un método de la clase PHP</p>
<p>Fault: Es la función de Flex que será llamada cuando exista un error de conexión en especifico para ese método de la clase PHP. Este atributo es opcional ya que en la etiqueta RemoteObject definimos una función de error para todos los métodos de esta clase.</p>
<p>&lt;mx:Nota&gt;Estos pasos se tendrán que repetir para cada método y para cada clase de PHP.&lt;/mx:Nota&gt;</p>
<p>&lt;mx:Nota&gt;No olviden realmente definir las funciones en AS que son los resultados de las llamadas y las que son invocadas por errores.&lt;/mx:Nota&gt;</p>
<h3>Llamadas a las clases y los métodos.</h3>
<p>Bueno, con esto se ha terminado todas las configuraciones. Ahora nos enfocaremos a terminar el tutorial, con un pequeño ejemplo.</p>
<p>A nuestra aplicación vamos a crearle una función de nombre “init” que estará disponible para el evento creationComplete de la aplicación, está se encargara de hacer la llamada al método de la clase PHP.</p>

<div class="wp_syntax"><div class="code"><pre class="xml" style="font-family:monospace;">private function init():void{
ClasePersonal.holaMundo(&quot;Hola PHP&quot;);
}</pre></div></div>

<p>Como nosotros ya definimos la función de AS que será la que responda nuestra llamada al método de la clase PHP, solo haremos que en un Label nuevo, le asigne el texto que nos regreso el método de PHP y después lo instanciaremos en el escenario de Flex.</p>

<div class="wp_syntax"><div class="code"><pre class="xml" style="font-family:monospace;">private function onResultHolaMundo(event:ResultEvent):void{
var etiqueta:Label = new Label();
etiqueta.text = event.result.toString();
this.addChild(etiqueta);
}</pre></div></div>

<p>Con esta parte estará completo nuestro MXML. Obteniendo así el script final.</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;?xml</span> <span style="color: #000066;">version</span>=<span style="color: #ff0000;">&quot;1.0&quot;</span> <span style="color: #000066;">encoding</span>=<span style="color: #ff0000;">&quot;utf-8&quot;</span><span style="color: #000000; font-weight: bold;">?&gt;</span></span>
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;mx:Application</span> <span style="color: #000066;">xmlns:mx</span>=<span style="color: #ff0000;">&quot;http://www.adobe.com/2006/mxml&quot;</span> <span style="color: #000066;">layout</span>=<span style="color: #ff0000;">&quot;vertical&quot;</span> <span style="color: #000066;">creationComplete</span>=<span style="color: #ff0000;">&quot;init()&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span></span>
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;mx:Script<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
<span style="color: #339933;">&lt;![CDATA[</span>
<span style="color: #339933;">import mx.controls.Alert;</span>
<span style="color: #339933;">import mx.rpc.events.ResultEvent;</span>
<span style="color: #339933;">import mx.controls.Label;</span>
<span style="color: #339933;">import mx.rpc.events.FaultEvent;</span>
<span style="color: #339933;">private function onConexError(event:FaultEvent):void{</span>
<span style="color: #339933;">&lt;em&gt;//Agregado para que arroje el error.&lt;/em&gt;</span>
<span style="color: #339933;">Alert.show(event.fault.faultDetail, event.fault.faultString);</span>
<span style="color: #339933;">}</span>
<span style="color: #339933;">private function onResultHolaMundo(event:ResultEvent):void{</span>
<span style="color: #339933;">var etiqueta:Label = new Label();</span>
<span style="color: #339933;">etiqueta.text = event.result.toString();</span>
<span style="color: #339933;">this.addChild(etiqueta);</span>
<span style="color: #339933;">}</span>
<span style="color: #339933;">private function init():void{</span>
<span style="color: #339933;">ClasePersonal.holaMundo(&quot;Hola PHP&quot;);</span>
<span style="color: #339933;">}</span>
<span style="color: #339933;">]]&gt;</span>
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/mx:Script<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;mx:RemoteObject</span> <span style="color: #000066;">id</span>=<span style="color: #ff0000;">&quot;ClasePersonal&quot;</span> <span style="color: #000066;">destination</span>=<span style="color: #ff0000;">&quot;zend&quot;</span> <span style="color: #000066;">source</span>=<span style="color: #ff0000;">&quot;ClasePersonal&quot;</span> <span style="color: #000066;">showBusyCursor</span>=<span style="color: #ff0000;">&quot;true&quot;</span> <span style="color: #000066;">fault</span>=<span style="color: #ff0000;">&quot;onConexError(event)&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span></span>
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;mx:method</span> <span style="color: #000066;">name</span>=<span style="color: #ff0000;">&quot;holaMundo&quot;</span> <span style="color: #000066;">result</span>=<span style="color: #ff0000;">&quot;onResultHolaMundo(event)&quot;</span><span style="color: #000000; font-weight: bold;">/&gt;</span></span>
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/mx:RemoteObject<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/mx:Application<span style="color: #000000; font-weight: bold;">&gt;</span></span></span></pre></div></div>

<h3>Comentarios y posibles problemas.</h3>
<p>&lt;mx:posibleproblema&gt;Recuerden configurar su aplicación Flex como una aplicación de servidor PHP, ya que la seguridad de Flash Player no les permitirá acceder a un servidor http sino está corriendo bajo el mismo dominio, y si necesitan hacer llamadas entre dominios necesitaran un XML llamado “domain-config.xml” si lo requieren postéenlo y se los proporciono.&lt;/mx:posibleproblema&gt;</p>
<p>&lt;mx:comentario&gt;Yo me he fijado que la primera vez que se hace llamada a algún método de nuestras clases, lo hace 2 veces y es porque en la primera establece la conexión y en la segunda ya hace la llamada. En la segunda llamada a algún método de la clase PHP ya no hará esto.&lt;/mx:comentario&gt;</p>
<p>Asi les debe quedar la carpeta de su servidor al final. (Ahora ya tiene la version de depuracion de Flex porque lo creamos como una aplicacion de server PHP)</p>
<p><img src="http://l4c.me/uploads/carpetas-final-screenshot-1264655638_full550.jpg" alt="server final" /></p>
<p>Lo demás lo pueden colocar con todo gusto y les apoyare con mi poca pero insistente experiencia xD</p>
<p>Hasta pronto, nos leemos en mi siguiente post. Byte.</p>
<p>Gracias a <a href="http://twitter.com/eternalmoon_" target="_blank">@eternalmoon_</a> por su participación en la corrección de este tutorial.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.riactive.com/2010/01/28/tutorial-como-conectar-zend_amf-con-adobe-flex-builder-3/feed/</wfw:commentRss>
		<slash:comments>16</slash:comments>
		</item>
		<item>
		<title>¡¡Gana un lugar para el Latin Flash Latin Tour!!</title>
		<link>http://www.riactive.com/2009/11/11/%c2%a1%c2%a1gana-un-lugar-para-el-latin-flash-latin-tour/</link>
		<comments>http://www.riactive.com/2009/11/11/%c2%a1%c2%a1gana-un-lugar-para-el-latin-flash-latin-tour/#comments</comments>
		<pubDate>Wed, 11 Nov 2009 20:40:15 +0000</pubDate>
		<dc:creator>yacaFx</dc:creator>
				<category><![CDATA[air]]></category>
		<category><![CDATA[Eventos]]></category>
		<category><![CDATA[Flash Lite]]></category>
		<category><![CDATA[Flash Media Server]]></category>
		<category><![CDATA[Flash Player]]></category>
		<category><![CDATA[Flex]]></category>
		<category><![CDATA[Flex Data Services]]></category>
		<category><![CDATA[General]]></category>
		<category><![CDATA[Noticias]]></category>
		<category><![CDATA[video]]></category>

		<guid isPermaLink="false">http://www.riactive.com/?p=613</guid>
		<description><![CDATA[Te quedaste sin un lugar para el Latin Flash Latin Tour? ¿Quieres estar alli? Solo tienes que hacer un video con la tematica ¿Y para ti que es Flash? Dicho video no debe durar mas de 10 segundos y deberas subirlo al grupo en facebook y en You Tube etiquetandolo con el texto "latinflashtour" una [...]]]></description>
			<content:encoded><![CDATA[<p>Te quedaste sin un lugar para el Latin Flash Latin Tour? </p>
<p>¿Quieres estar alli?</p>
<p>Solo tienes que hacer un video con la tematica ¿Y para ti que es Flash? </p>
<p>Dicho video no debe durar mas de 10 segundos y deberas subirlo al grupo en <a href="http://www.facebook.com/inbox/?drop&amp;ref=mb#/event.php?eid=176057211981">facebook</a> y en <a href="http://www.youtube.com/">You Tube</a> etiquetandolo con el texto "latinflashtour" una vez que este arriba comparte la url a travez de twitter y claro deberas agregar el tag #latinflashtour o twitername @latinflashtour y seguirnospara que podamos ver tu video!</p>
<p>Los ganadores seran los 5 videos más originales y la fecha limite es este viernes!!</p>
<p>Solo quedan 5 lugares!!!!<br />
So... Are you in??</p>
<p>Latin Flash Tour MX!!! </p>
<div id="attachment_612" class="wp-caption aligncenter" style="width: 83px"><img src="http://www.riactive.com/wp-content/uploads/2009/11/flat_tw_bigger.jpg" alt="Latin Flash Tour" width="73" height="73" class="size-full wp-image-612" /><p class="wp-caption-text">Latin Flash Tour</p></div>
]]></content:encoded>
			<wfw:commentRss>http://www.riactive.com/2009/11/11/%c2%a1%c2%a1gana-un-lugar-para-el-latin-flash-latin-tour/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Protocolo RTMP será liberado.</title>
		<link>http://www.riactive.com/2009/01/21/protocolo-rtmp-sera-liberado/</link>
		<comments>http://www.riactive.com/2009/01/21/protocolo-rtmp-sera-liberado/#comments</comments>
		<pubDate>Wed, 21 Jan 2009 16:51:48 +0000</pubDate>
		<dc:creator>Alberto Gonzalez</dc:creator>
				<category><![CDATA[Artículos]]></category>
		<category><![CDATA[Flash Media Server]]></category>
		<category><![CDATA[Flex Data Services]]></category>
		<category><![CDATA[Noticias]]></category>

		<guid isPermaLink="false">http://www.riactive.com/?p=294</guid>
		<description><![CDATA[Pueden creerlo ??? Uno de los protocolos principales de LiveCycle Data Services y Flash Media Server será liberado en la primer mitad de este año. Con ésta información muchas tecnologías comenzarán a tener opciones de comunicación en tiempo real entre aplicaciones, (probablemente en Activ hagamos alguna también), utilizando ese protocolo. Éste es un movimiento parecido [...]]]></description>
			<content:encoded><![CDATA[<p>Pueden creerlo ??? Uno de los protocolos principales de LiveCycle Data Services y Flash Media Server <a href="http://www.adobe.com/aboutadobe/pressroom/pressreleases/200901/012009RTMP.html">será liberado en la primer mitad de este año</a>.<br />
<br />
Con ésta información muchas tecnologías comenzarán a tener opciones de comunicación en tiempo real entre aplicaciones, (probablemente en Activ hagamos alguna también), utilizando ese protocolo.<br />
<br />
Éste es un movimiento parecido al que se realizo el año pasado con el protocolo pdf.<br />
<br />
El documento oficial de la liberación lo podremos descargar desde <a href="http://www.adobe.com/devnet/rtmp">www.adobe.com/devnet/rtmp</a> en su momento. Mientras pueden leer el <a href="http://www.adobe.com/aboutadobe/pressroom/pressreleases/200901/012009RTMP.html">documento completo</a> y el anuncio que hizo Kevin Lynch (CTO de Adobe) sobre esta información.<br />
<br />
Saludos.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.riactive.com/2009/01/21/protocolo-rtmp-sera-liberado/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>

