<?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>carlosrovira.com &#187; Flex</title>
	<atom:link href="http://www.carlosrovira.com/blog/categoria/macromedia-flex/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.carlosrovira.com/blog</link>
	<description>Rich Internet Expertise</description>
	<lastBuildDate>Mon, 16 Jan 2012 09:32:11 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.3</generator>
	<language>es</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Flex: Un futuro más brillante que nunca</title>
		<link>http://www.carlosrovira.com/blog/2011/11/flex-un-futuro-mas-brillante-que-nunca/</link>
		<comments>http://www.carlosrovira.com/blog/2011/11/flex-un-futuro-mas-brillante-que-nunca/#comments</comments>
		<pubDate>Thu, 17 Nov 2011 22:47:15 +0000</pubDate>
		<dc:creator>Carlos Rovira</dc:creator>
				<category><![CDATA[Flash]]></category>
		<category><![CDATA[Flex]]></category>
		<category><![CDATA[RIA]]></category>

		<guid isPermaLink="false">http://www.carlosrovira.com/blog/?p=782</guid>
		<description><![CDATA[Acabo de leer la nueva entrada de Michael Chaize, evangelista de Adobe, sobre todos los cambios que afectan a Flex y me parece una lectura obligada para todos los que trabajamos con dicha tecnología en aplicaciones empresariales.
Por fin leo una exposición que viene de alguien de Adobe y que explota el problema desde el lado [...]]]></description>
			<content:encoded><![CDATA[<p>Acabo de leer <a href="http://www.riagora.com/2011/11/flex-is-open/">la nueva entrada de Michael Chaize</a>, evangelista de Adobe, sobre todos los cambios que afectan a Flex y me parece una lectura obligada para todos los que trabajamos con dicha tecnología en aplicaciones empresariales.</p>
<p>Por fin leo una exposición que viene de alguien de Adobe y que explota el problema desde el lado puramente empresarial que es el verdadero nicho de las aplicaciones Flex.</p>
<p>Michael da justo en el clavo y nos hace ver lo que yo y otros muchos hemos intentado comunicar a Adobe una y otra vez sin éxito debido sencillamente a los objetivos claramente distintos de Adobe (la venta de herramientas para el tratamiento de contenidos) y de las empresas que adoptan Flex para sus soluciones empresariales (sistemas empresariales cuya construcción está subyugada a entornos de integración continua donde se deben integrar con otras muchas soluciones open source, donde la orientación a objetos es crucial, donde nunca ha sido crucial tener un &#8220;Design View&#8221;, pero si un plugin de maven-flashbuilder y donde la naturaleza de la propia empresa es muy distinta a la del usuario *de la calle* donde HTML5 está teniendo tanto éxito en móviles y tablets).</p>
<p>Está claro que el caso que yo me esfuerzo en defender, el de las aplicaciones empresariales, afecta a un colectivo muy concreto, al cual no puedes ofrecerle una visión irreal o utópica. El mundo de la empresa se mueve en otros tiempos (quizá tiempo bala, como en Matrix <img src='http://www.carlosrovira.com/blog/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> ) y con objetivos claros de fiabilidad, seguridad y alta disponibilidad. Suele tener además implicaciones muy distintas a las pequeñas soluciones que se manejan en internet (cualquier servicio en internet suele ser ordenes de magnitud más pequeño, manejable y mantenible a nivel de desarrollo).</p>
<p>En definitiva, muchos de los casos de uso a los que me refiero yo y donde Flex se utiliza de forma brutalmente extensiva, son aplicaciones privadas, que viven dentro del entorno de la empresa, en redes privadas o intranets, cuyo acceso es privado y ciclo de vida y necesidades son muy distintos a los que podemos encontrar en el mundo al que Google, Apple y ahora Adobe se quieren dirigir de forma exclusiva.</p>
<p>Lo nuestro siempre ha sido un escenario donde Apache, Java, Spring, y otras muchas organizaciones han sido las que han marcado las aplicaciones. Adobe Flex siempre ha sido una tecnología con un aporte claro y necesario pero con una naturaleza extraña por estar dentro del ala de Adobe, y que ahora por fin puede ocupar su lugar natural junto con el resto de soluciones del sector en Apache.</p>
<p>Creo que esta es una <a href="http://www.riagora.com/2011/11/flex-is-open/">lectura obligada</a> y  que a todos los que estáis en un entorno empresarial similar a mí os va a gustar y vais a ver que por fin alguien de Adobe &#8220;habla vuestro mismo idioma&#8221;.</p>
<p>Enhorabuena Michael! <img src='http://www.carlosrovira.com/blog/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' /> </p>]]></content:encoded>
			<wfw:commentRss>http://www.carlosrovira.com/blog/2011/11/flex-un-futuro-mas-brillante-que-nunca/feed/</wfw:commentRss>
		<slash:comments>13</slash:comments>
		</item>
		<item>
		<title>Adobe y el futuro de Flex</title>
		<link>http://www.carlosrovira.com/blog/2011/11/adobe-y-el-futuro-de-flex/</link>
		<comments>http://www.carlosrovira.com/blog/2011/11/adobe-y-el-futuro-de-flex/#comments</comments>
		<pubDate>Wed, 16 Nov 2011 15:46:46 +0000</pubDate>
		<dc:creator>Carlos Rovira</dc:creator>
				<category><![CDATA[Flash]]></category>
		<category><![CDATA[Flex]]></category>
		<category><![CDATA[RIA]]></category>

		<guid isPermaLink="false">http://www.carlosrovira.com/blog/?p=771</guid>
		<description><![CDATA[Los últimos días han sido de especial movimiento en lo que respecta a Adobe por su cambio de dirección con respecto a Flash en los navegadores móviles, los despidos masivos y finalmente el futuro de Flex. A continuación quiero ofreceros mi punto de vista como profesional de sector con un profundo conocimiento de la tecnología [...]]]></description>
			<content:encoded><![CDATA[<p>Los últimos días han sido de especial movimiento en lo que respecta a Adobe por su cambio de dirección con respecto a Flash en los navegadores móviles, los despidos masivos y finalmente el futuro de Flex. A continuación quiero ofreceros mi punto de vista como profesional de sector con un profundo conocimiento de la tecnología y relación interna con Adobe.</p>
<h3>Flash en el móvil</h3>
<p>Con respecto a la primera decisión, no me extenderé mucho. Me parece una buena decisión teniendo en cuenta como está evolucionando el mundo y como se consume contenido en los dispositivos móviles, donde el público prefiere aplicaciones nativas y el navegador tiene el uso para el que fue creado (búsquedas, consumo de información textual, blogs&#8230;).</p>
<p>Salvo por la mala comunicación de Adobe PR (Public Relations), Hasta aquí todo correcto. De hecho no creo que esta decisión afectase a nadie ya que con la negativa de Apple de incorporar Flash Player en iOS, la única opción real en los navegadores moviles era HTML5. Esto dejaba las webs informativas tradicionales, blogs y demás sucedáneos, en un formato diseñado con el objetivo de servir información textual. Quizá solo podamos tener un cierto sentimiento de &#8220;estar siendo manejados&#8221; al quitarnos la libertad de elegir si queremos usar una u otra tecnología o la combinación de ambas.</p>
<p><strong>Para la aplicaciones nativas siempre podemos recurrir a Adobe AIR (que incluye el Flash Player) donde podemos, con un solo desarrollo, desplegar en iOS, Android y BlackBerry. En este sentido los desarrollos Flash y Flex cobran todo su sentido.</strong></p>
<h3>El futuro de Flex</h3>
<p>Por el contrario el cambio de estrategia con Flex y su malísima comunicación por parte del departamento de relaciones públicas de Adobe (que parece un grupo de aficionados por sus repetidas meteduras de pata), unido al cambio radical de la dirección empresarial de Adobe han provocado que la comunidad Adobe se sienta engañada y enfadada. Engañada por que esto significa un cambio de 180º en la visión marcada por Adobe (Visión que ha sido soportado por millones de profesionales del sector y refrendada por los clientes de dichos profesionales que han confiado en las soluciones tecnológicas soportadas por el fabricante) y enfadados por que la imagen y el daño generado suponen un perjuicio, quedando en el campo de los profesionales el dar explicaciones a los clientes y convencer sobre el uso correcto de Flash/Flex.</p>
<p>Tal es el daño generado por Adobe que desde hace varios días <a href="http://change.org/petitions/adobe-systems-shantanu-narayen-to-step-down-as-ceo">se pide la dimisión de su CEO</a> (537 firmas recogidas en el momento de escribir esta entrada), cuya falta de liderazgo ha llevado a Adobe a ser un actor pasivo en esta guerra tecnológica. Desde que Steve Jobs inició su batalla contra Flash, debido a sus rencillas con Adobe y a su interés de mantener el control del canal de venta dentro de sus dispositivos iOS, Adobe no ha sido capaz de responder a las difamaciones sobre su tecnología, ni de hacer notar las maravillas de la misma al público, lo que finalmente ha llevado a esta situación.</p>
<p>Durante estos años tanto las empresas cliente como los profesionales de la industria han invertido mucho en Flex ofreciendo resultados espectaculares. <strong>Esta decisión repentina de Adobe tendría sentido en el caso de que tuviésemos un reemplazo actual para Flex a día de hoy y no solo una promesa de futuro</strong>. El segmento de las *aplicaciones* empresariales no es el mismo que el de las *webs* donde HTML5 cobra todo el sentido. <strong>HTML5 *no* está todavía preparado para solventar los problemas que surgen en el mundo de las aplicaciones empresariales y lo peor es que no sabemos cuando ni como estará</strong>.</p>
<p>Realmente HTML no ha cambiado significativamente durante los últimos años. El motivo por el que todos nos pasamos a Flex fue debido a la fragmentación de los navegadores y a la inconsistencia de la experiencia de usuario que existía entre ellos. Esto sigue siendo así y continuará así a no ser que todos los fabricantes se asocien para crear un motor único que permita asegurar esa experiencia única de visualización.</p>
<p>La innovación generada en el Flash Player a través de los años así como su alta penetración (mayor al 98%) en la base de ordenadores en todo el mundo y su consistencia a través de plataformas convierten a Flash en un entorno de ejecución perfecto y clave en el desarrollo de aplicaciones empresariales.</p>
<p>Además, la naturaleza de la tecnología es lo esperado por un desarrollador de aplicaciones : Lenguaje OOP, debugger, compilación sobre interpretación, IoC, Metadatos, AOP, protocolos de comunicación avanzados como AMF y RTMP, Profiling, Acceso a bajo nivel (Bitearray, pixel level handling), etc&#8230; </p>
<p>Estas características son el principal motivo por el que HTML5 no podrá sustituir a Flash (y sobre todo a Flex) en el desarrollo de aplicaciones corporativas. HTML siempre ha sido una tecnología orientada al *documento* y flash orientada las *aplicaciones*. Los desarrollos empresariales (ERPs, sistemas de información corporativos, &#8230;) son soluciones de miles/millones de lineas de código que no pueden estar basados en una amalgama desordenada de scripts. El desarrollo y posterior mantenimiento de esas aplicaciones sería muy costoso y en muchos casos imposible de llevar a cabo. La orientación a objetos es crucial en este campo.</p>
<h3>¿Que podemos esperar en un futuro de HTML5 y de Flex?</h3>
<p>Está claro que si Google, Apple, Adobe y otras muchas están apostando por HTML5 en un futuro será la tecnología predominante. Pero <strong>ese futuro no será real hasta dentro de al menos 4 o 5 años</strong>. En mi opinión muchos de los problemas que existían en Flash debido a malos programadores los veremos nuevamente en HTML5 ya que no es un problema de la tecnología y si de hacer un buen uso de las mismas.</p>
<p>Por el contrario <strong>Flex es la opción real hoy en día</strong> para aplicaciones empresariales de cierta envergadura. Como Adobe dice en su última entrada: <strong>Nada ha cambiado de un día a otro en el estado de HTML5</strong> y la realidad es que entrar hoy en día en <strong>HTML5 supone un alto coste, una alta incertidumbre y estar dispuesto a sufrir los problemas de una tecnología que, lejos de estar madura no soporta la mayoría de las necesidades que actualmente ya están resueltas en Flex</strong>.</p>
<p>Además, y según noticias de última hora, <strong>Adobe donará Flex a la fundación Apache</strong>, donde residen la mayoría de proyectos open source más importantes de los últimos tiempos (Apache Tomcat, Apache Maven, Apache Web Server,&#8230;). Esta noticia es muy positiva, ya que el nuevo empuje de la tecnología será llevado por personas con un entendimiento de los problemas mucho más acertado, en mi opinión, que la propia Adobe, cuya filosofía era por naturaleza distinta y más centrada en la venta de &#8220;cajas&#8221; y herramientas para la edición de contenido.</p>
<p>Además Adobe asegura que el Flash Player continuará soportando las aplicaciones Flex y que Flash Builder esté actualizado con los cambios en el SDK bajo el gobierno de la fundación.</p>
<p>Asi mismo un equipo de ingenieros de Adobe estará asignado a tiempo completo a seguir mejorando Flex que continuará con la evolución marcada para la siguiente release.</p>
<h3>En resumen</h3>
<p><strong>Realmente nada cambia por el momento</strong>. Yo diría que incluso hay mejoras gracias a que Apache formará parte fundamental de la evolución de Flex. Todos los que estamos ahora en Flex tendremos la oportunidad de ver como evoluciona la tecnología (tanto Flex como HTML5) y podremos ir girando progresivamente con las mismas según nuestros intereses. Es de esperar que en el futuro todas las empresas que están empujando el carro de HTML5 lo hagan viable, no solo para moviles o para webs, si no que también consigamos herramientas y mejoras del lenguaje (alguna plataforma OOP sobre la que desarrollar), de forma que HTML5 sea viable para aplicaciones empresariales.</p>
<p><strong>Por el momento HTML5 NO es una opción si tú segmento es el de las aplicaciones empresariales</strong>. No lo es hoy y no lo será por los próximos 3 o 4 años. Mientras tanto y durante ese tiempo la mejor opción que tienes es Flex.</p>
<p>Ya tendremos tiempo de ver si HTML5 realmente funciona y consigue evolucionar hacia algo realmente interesante&#8230;y si por descontado, los coches eléctricos terminan siendo una realidad <img src='http://www.carlosrovira.com/blog/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>]]></content:encoded>
			<wfw:commentRss>http://www.carlosrovira.com/blog/2011/11/adobe-y-el-futuro-de-flex/feed/</wfw:commentRss>
		<slash:comments>42</slash:comments>
		</item>
		<item>
		<title>Flash Builder 4.5 ya está aquí! Gracias a Adobe por la mención.</title>
		<link>http://www.carlosrovira.com/blog/2011/05/flash-builder-4-5-ya-esta-aqui-gracias-a-adobe-por-la-mencion/</link>
		<comments>http://www.carlosrovira.com/blog/2011/05/flash-builder-4-5-ya-esta-aqui-gracias-a-adobe-por-la-mencion/#comments</comments>
		<pubDate>Tue, 03 May 2011 10:22:36 +0000</pubDate>
		<dc:creator>Carlos Rovira</dc:creator>
				<category><![CDATA[Flex]]></category>
		<category><![CDATA[RIA]]></category>

		<guid isPermaLink="false">http://www.carlosrovira.com/blog/?p=751</guid>
		<description><![CDATA[Desde esta madrugada ya está disponible Flash Builder 4.5 para prueba y compra desde la web de Adobe.
Esta nueva versión 4.5 de Flex y de su entorno de desarrollo Flash Builder es sin duda alguna la mejor hasta la fecha con notables novedades a destacar. La mayor de ellas es la nueva orientación hacia dispositivos [...]]]></description>
			<content:encoded><![CDATA[<p>Desde esta madrugada ya está disponible <a href="http://www.adobe.com/es/products/flash-builder.html">Flash Builder 4.5</a> para prueba y compra desde la web de Adobe.</p>
<p>Esta nueva versión 4.5 de Flex y de su entorno de desarrollo Flash Builder es sin duda alguna la mejor hasta la fecha con notables novedades a destacar. La mayor de ellas es la nueva orientación hacia dispositivos móviles que adopta Flex, añadiendo las plataformas Android, iOS y BlackBerry, a la gama de &#8220;pantallas&#8221; sobre las que podemos desplegar nuestras aplicaciones y contenidos SWF.</p>
<p>Sin duda Adobe ha trabajado muy duro en conseguir que Adobe Flash Player rinda a la perfección en dispositivos moviles y tablets con Flash Player 10.2 y continua mejorando la tecnología sabiendo la importancia que tendrán dichos dispositivos en los próximos años. La filosofía &#8220;Write Once and Run Everywhere&#8221; alcanza con esta versión una importancia relevante a tener muy en cuenta a la hora de enfocar un desarrollo RIA.</p>
<p>Por último aprovechar este post para dar públicamente las gracias a Adobe por incluirme en los creditos de esta versión de Flash Builder 4.5!</p>
<div align="center">
<img src="http://www.carlosrovira.com/blog/wp-content/uploads/2011/05/FlashBuilder45PremiumCredits.png" alt="Flash Builder 4.5 Premium Credits (Carlos Rovira)" title="Flash Builder 4.5 Premium Credits (Carlos Rovira)" width="450" height="338" class="size-full wp-image-752" />
</div>
<p>&nbsp;</p>
<p>No lo dudéis! bajad los nuevos bits y probar las novedades y el entorno pues vereis grandes mejoras de productividad y rendimiento que no os podeis perder.</p>
<p>Go Flex Go! <img src='http://www.carlosrovira.com/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>]]></content:encoded>
			<wfw:commentRss>http://www.carlosrovira.com/blog/2011/05/flash-builder-4-5-ya-esta-aqui-gracias-a-adobe-por-la-mencion/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>eFirmatic &#8211; Nuevo Producto AIR 2.0</title>
		<link>http://www.carlosrovira.com/blog/2010/07/efirmatic-nuevo-producto-air-2-0/</link>
		<comments>http://www.carlosrovira.com/blog/2010/07/efirmatic-nuevo-producto-air-2-0/#comments</comments>
		<pubDate>Wed, 30 Jun 2010 23:44:06 +0000</pubDate>
		<dc:creator>Carlos Rovira</dc:creator>
				<category><![CDATA[Flex]]></category>
		<category><![CDATA[RIA]]></category>

		<guid isPermaLink="false">http://www.carlosrovira.com/blog/?p=736</guid>
		<description><![CDATA[Por fin el producto que terminamos poco antes del lanzamiento de Adobe AIR 2.0 está ya disponible para todo el público. Se trata de eFirmatic-Desktop, un producto de escritorio pensado para firmar documentos PDF y Facturae. Esta aplicación ha sido creada para la marca eFirmatic y Motor de Firma, partners de Codeoscopic.

La aplicación hace uso [...]]]></description>
			<content:encoded><![CDATA[<p>Por fin el producto que terminamos poco antes del lanzamiento de <strong>Adobe AIR 2.0</strong> está ya disponible para todo el público. Se trata de <a href="http://www.motordefirma.es/productos/efirmatic-desktop/">eFirmatic-Desktop</a>, un producto de escritorio pensado para firmar documentos <strong>PDF</strong> y <strong>Facturae</strong>. Esta aplicación ha sido creada para la marca <a href="http://www.efirmatic.es/">eFirmatic</a> y <a href="http://www.motordefirma.es/">Motor de Firma</a>, partners de <a href="http://www.codeoscopic.com">Codeoscopic</a>.</p>
<p><a href="http://www.motordefirma.es/productos/efirmatic-desktop/"><img src="http://www.carlosrovira.com/blog/wp-content/uploads/2010/07/eFirmaticDesktop1-300x214.png" alt="eFirmaticDesktop1" title="eFirmaticDesktop1" width="300" height="214" class="aligncenter size-medium wp-image-737" /></a></p>
<p>La aplicación hace uso intensivo de las nuevas capacidades de <strong>AIR 2.0</strong> para comunicarse de forma nativa con procesos del sistema operativo (NativeProcess API). Además ha sido diseñada pensando en la sencillez máxima: Simplemente basta con arrastrar los documentos que queremos firmar a la aplicación y hacer &#8220;click&#8221; en el botón firmar para tener todos los documentos firmados en pocos segundos.</p>
<p>Puedes descargar una versión de evaluación de 30 días del producto para <strong>Windows</strong> o <strong>Mac</strong> desde <a href="http://www.motordefirma.es/productos/efirmatic-desktop/">aquí</a>.</p>]]></content:encoded>
			<wfw:commentRss>http://www.carlosrovira.com/blog/2010/07/efirmatic-nuevo-producto-air-2-0/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Formación Flex en el CEV</title>
		<link>http://www.carlosrovira.com/blog/2010/02/formacion-flex-en-el-cev/</link>
		<comments>http://www.carlosrovira.com/blog/2010/02/formacion-flex-en-el-cev/#comments</comments>
		<pubDate>Tue, 09 Feb 2010 10:32:35 +0000</pubDate>
		<dc:creator>Carlos Rovira</dc:creator>
				<category><![CDATA[Flex]]></category>
		<category><![CDATA[RIA]]></category>

		<guid isPermaLink="false">http://www.carlosrovira.com/blog/?p=714</guid>
		<description><![CDATA[Hace unos días el CEV, Escuela Superior de Comunicación, Imagen y Sonido, ha anunciado su acuerdo con Codeoscopic para la ofrecer formación especializada en Adobe Flex. Os dejo el comunicado oficial.
A su vez es de esperar que Made In Flex y CEV aprovechen los conocimientos del equipo de MIF en estas tecnologías y las estupendas [...]]]></description>
			<content:encoded><![CDATA[<p>Hace unos días el <a href="http://cev.com/">CEV</a>, Escuela Superior de Comunicación, Imagen y Sonido, ha anunciado su acuerdo con <a href="http://www.codeoscopic.com">Codeoscopic</a> para la ofrecer formación especializada en <strong>Adobe Flex</strong>. Os dejo <a href="http://www.cev.com/noticia_detalle.php?sc=3&#038;noticia=190">el comunicado oficial</a>.</p>
<p>A su vez es de esperar que <strong>Made In Flex</strong> y <strong>CEV</strong> aprovechen los conocimientos del equipo de <strong>MIF</strong> en estas tecnologías y las estupendas instalaciones del <strong>CEV</strong> para ofrecer nuevos eventos para beneficio de toda la comunidad.</p>
<p>Os dejo la nota de prensa:</p>
<p><a href="http://www.cev.com/noticia_detalle.php?sc=3&#038;noticia=190">CEV Y CODEOSCOPIC: ACUERDO DE COLABORACIÓN</a></p>]]></content:encoded>
			<wfw:commentRss>http://www.carlosrovira.com/blog/2010/02/formacion-flex-en-el-cev/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>GeoStratum 2.0</title>
		<link>http://www.carlosrovira.com/blog/2010/01/geostratum-2-0/</link>
		<comments>http://www.carlosrovira.com/blog/2010/01/geostratum-2-0/#comments</comments>
		<pubDate>Sat, 02 Jan 2010 17:10:11 +0000</pubDate>
		<dc:creator>Carlos Rovira</dc:creator>
				<category><![CDATA[Flex]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[RIA]]></category>

		<guid isPermaLink="false">http://www.carlosrovira.com/blog/?p=695</guid>
		<description><![CDATA[Ya tenemos nueva versión de GeoStratum y nuevo video en la web de Codeoscopic y en YouTube:













GeoStratum es un sistema de información basado en un visor cartográfico sobre el que podemos desarrollar diferentes aplicaciones basadas en visualización georeferenciada.
La usabilidad de una aplicación de estas características alcanza niveles excelentes gracias a la sencillez de navegación, basada [...]]]></description>
			<content:encoded><![CDATA[<p>Ya tenemos nueva versión de <strong>GeoStratum</strong> y nuevo video en la web de <a href="http://www.codeoscopic.com">Codeoscopic</a> y en <a href="http://www.youtube.com">YouTube</a>:</p>
<p>
<object width="500" height="200">
<param name="movie" value="http://www.youtube.com/v/zOwXuNSJm_U&amp;rel=0&amp;showsearch=0&amp;fs=1"></param>
<param name="quality" value="high"></param>
<param name="wmode" value="window"></param>
<param name="menu" value="false"></param>
<param name="bgcolor" value="#FFFFFF"></param>
<param name="allowFullScreen" value="true"></param>
<embed type="application/x-shockwave-flash" width="500" height="200" src="http://www.youtube.com/v/zOwXuNSJm_U&amp;rel=0&amp;showsearch=0&amp;fs=1" quality="high" bgcolor="#FFFFFF" wmode="window" menu="false" allowFullScreen="true" ></embed>
</object>
</p>
<p>
<span id="more-695"></span><br />
<strong>GeoStratum</strong> es un sistema de información basado en un visor cartográfico sobre el que podemos desarrollar diferentes aplicaciones basadas en visualización georeferenciada.</p>
<p>La <strong>usabilidad</strong> de una aplicación de estas características alcanza niveles excelentes gracias a la sencillez de navegación, basada principalmente en clicks y movimientos del ratón, en contraposición a los típicos formularios de las aplicaciones de gestión tradicionales y la exposición de la información de forma espacial sobre localizaciones geográficas en vez de las tablas de datos normales en estos casos.</p>
<p>Este es sin duda un buen ejemplo de aplicación <strong>RIA</strong>, desarrollada sobre <strong>Flex</strong> y <strong>JEE</strong>, por uno de los equipos de producción de <strong>Codeoscopic</strong>. El concepto principal detrás del producto es el poder extender la base <strong>GIS</strong> para añadir información propia de un negocio concreto. En ese aspecto, <strong>GeoStratrum 2.0</strong> es la herramienta apropiada para gestionar infraestructuras de suministro (agua, electricidad, etc), planes urbanísticos, líneas de transporte (metro, autobus,&#8230;), servicios de logística, polígonos industriales, parques naturales, etc&#8230;</p>]]></content:encoded>
			<wfw:commentRss>http://www.carlosrovira.com/blog/2010/01/geostratum-2-0/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Más novedades en la cabecera</title>
		<link>http://www.carlosrovira.com/blog/2009/12/mas-novedades-en-la-cabecera/</link>
		<comments>http://www.carlosrovira.com/blog/2009/12/mas-novedades-en-la-cabecera/#comments</comments>
		<pubDate>Tue, 08 Dec 2009 21:49:24 +0000</pubDate>
		<dc:creator>Carlos Rovira</dc:creator>
				<category><![CDATA[Flex]]></category>

		<guid isPermaLink="false">http://www.carlosrovira.com/blog/?p=689</guid>
		<description><![CDATA[Este fin de semana he añadido algunas cosas nuevas a la cabecera de este blog. Ya es posible navegar entre diferentes experimentos gracias a la lista desplegable de la parte inferior.
Esta lista es un experimento con las nuevas capacidades que ofrecen las listas en Flex 4. Ya sabéis que ahora el layout y los Item [...]]]></description>
			<content:encoded><![CDATA[<p>Este fin de semana he añadido algunas cosas nuevas a la cabecera de este blog. Ya es posible navegar entre diferentes experimentos gracias a la lista desplegable de la parte inferior.</p>
<p>Esta lista es un experimento con las nuevas capacidades que ofrecen las listas en Flex 4. Ya sabéis que ahora el <em>layout</em> y los <em>Item Renderers</em> son mucho más versatiles en <em>Spark</em> y podemos mantener el reciclaje de <em>renderers</em> (<em>useVirtualLayout = true</em>) a la vez que hacemos que estos se comporten de forma más expresiva como en este caso. Os recomiendo que juguéis un poco con las nuevas listas de spark <img src='http://www.carlosrovira.com/blog/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
<p>Por otra parte he añadido dos nuevos experimentos en formato &#8220;modular&#8221;. Uno es un <em>fork</em> del experimento con <em>Picasa</em> y fisicas reales, salvo que en este caso lo que llueven son controles Flex!.</p>
<p>El otro es un experimento-mashup con los servicios de <a href="http://www.youtube.com">YouTube.com</a>. En el uso una lista de reproducción que tengo en mi usuario de YouTube para visualizar algunos videos sobre mis gustos personales a modo de &#8220;televisión a la carta&#8221;. De esta forma puedo ir añadiendo o quitando vídeos a dicha lista desde el interface de youtube para que automáticamente se visualicen en la cabecera de este blog con el formato aplicado.</p>
<p>El único proposito detrás de todo esto es la diversión. Como suelen decir &#8220;code is fun&#8221;! <img src='http://www.carlosrovira.com/blog/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' /> </p>]]></content:encoded>
			<wfw:commentRss>http://www.carlosrovira.com/blog/2009/12/mas-novedades-en-la-cabecera/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Nuevo añadido a la cabecera usando físicas reales</title>
		<link>http://www.carlosrovira.com/blog/2009/11/nuevo-anadido-a-la-cabecera-usando-fisicas-reales/</link>
		<comments>http://www.carlosrovira.com/blog/2009/11/nuevo-anadido-a-la-cabecera-usando-fisicas-reales/#comments</comments>
		<pubDate>Sun, 01 Nov 2009 20:08:29 +0000</pubDate>
		<dc:creator>Carlos Rovira</dc:creator>
				<category><![CDATA[Flex]]></category>

		<guid isPermaLink="false">http://www.carlosrovira.com/blog/?p=682</guid>
		<description><![CDATA[He añadido otro entretenimiento a la cabecera de este blog.
En este caso he aplicado físicas reales al visor de fotos de Picasa. El API usada para añadir las físicas reales es Box2D. Podéis arrastar las imagenes y lanzarlas por el escenario  .
También he cambiado la estructura por un cargador de módulos que selecciona uno [...]]]></description>
			<content:encoded><![CDATA[<p>He añadido otro entretenimiento a la cabecera de este blog.</p>
<p>En este caso he aplicado físicas reales al visor de fotos de <strong>Picasa</strong>. El API usada para añadir las físicas reales es <a href="http://box2dflash.sourceforge.net/">Box2D</a>. Podéis arrastar las imagenes y lanzarlas por el escenario <img src='http://www.carlosrovira.com/blog/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> .</p>
<p>También he cambiado la estructura por un cargador de módulos que selecciona uno de ellos al azar. De momento solo hay dos módulos, pero espero ir introduciendo algunos más con el tiempo. Todo es cuestión de entretenerse, experimentar y disfrutar de las cosas que se pueden hacer con Flash <img src='http://www.carlosrovira.com/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> .</p>
<p><img src="http://www.carlosrovira.com/blog/wp-content/uploads/2009/11/visorPicasaBox2D.png" alt="visorPicasaBox2D" title="visorPicasaBox2D" width="364" height="286" class="aligncenter size-full wp-image-683" /></p>
<p>Como paso con el anterior experimento, espero destriparlo en próximos posts!</p>]]></content:encoded>
			<wfw:commentRss>http://www.carlosrovira.com/blog/2009/11/nuevo-anadido-a-la-cabecera-usando-fisicas-reales/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Visor de Fotos Flex con Picasa (II)</title>
		<link>http://www.carlosrovira.com/blog/2009/10/visor-de-fotos-flex-con-picasa-ii/</link>
		<comments>http://www.carlosrovira.com/blog/2009/10/visor-de-fotos-flex-con-picasa-ii/#comments</comments>
		<pubDate>Mon, 19 Oct 2009 21:09:44 +0000</pubDate>
		<dc:creator>Carlos Rovira</dc:creator>
				<category><![CDATA[Flex]]></category>

		<guid isPermaLink="false">http://www.carlosrovira.com/blog/?p=651</guid>
		<description><![CDATA[En la anterior entrada resolvimos la todo lo concerniente a la recogida de datos de un álbum alojado en Picasa. En este post veremos una forma de resolver la parte visual del visor de fotos de la cabecera de este blog.


El planteamiento principal a la hora de pensar técnicamente este visor simple de fotos era [...]]]></description>
			<content:encoded><![CDATA[<p>En la anterior entrada resolvimos la todo lo concerniente a la recogida de datos de un álbum alojado en Picasa. En este post veremos una forma de resolver la parte visual del visor de fotos de la cabecera de este blog.</p>
<p><img src="http://www.carlosrovira.com/blog/wp-content/uploads/2009/10/headerphotos.jpg" alt="headerphotos" title="headerphotos" width="400" height="300" class="aligncenter size-full wp-image-663" /></p>
<p><span id="more-651"></span></p>
<p>El planteamiento principal a la hora de pensar técnicamente este visor simple de fotos era como hacerlo de forma que la memoria se mantuviera estable y no tuviéramos problemas si manteníamos la ejecución durante largo tiempo, teniendo en cuenta que estamos todo el rato cargando imágenes que se quedan en el fondo del visor y que van a ir siendo tapadas en parte por las nuevas fotos.</p>
<p>La forma óptima es usar solo dos objetos. Un control <em>Image</em> de Flex que es el que irá cargando cada foto, y un Bitmap que será sobre el que iremos copiando los pixeles de cada imagen una vez terminen el recorrido de su animación (este componente puede ser un <em>UIComponent</em>). Una vez desarrollado este concepto, vemos que el profiler se mantiene constante como era de esperar en cuanto a la memoria consumida.</p>
<p><img src="http://www.carlosrovira.com/blog/wp-content/uploads/2009/10/visorfotos_profiler.png" alt="visorfotos_profiler" title="visorfotos_profiler" width="435" height="182" class="aligncenter size-full wp-image-665" /></p>
<p>En cuanto a la programación llevada a cabo. Los dos objetos que intervienen son el control Imagen y un UIComponent que servirá de &#8220;lienzo&#8221; para ir copiando las fotos e ir manteniendo el uso de memoria:</p>
<pre class="brush: xml">
&lt;mx :UIComponent id=&quot;canvas&quot;/&gt;
&lt;mx :Image id=&quot;img&quot; smoothBitmapContent=&quot;true&quot; complete=&quot;photoEffect.play();&quot;/&gt;
</pre>
<p>A continuación un poco de código de inicialización para entender que variables hay implicadas:</p>
<pre class="brush: javascript">// --- Definición de variables y código de inicialización
// --- Bitmap sobre el que copiaremos las imagenes
private var collage:Bitmap;
// --- Array de datos descargado de PIcasa (ver post anterior)
private var fotos_arr:Array;

// --- Inicialización del canvas (UIComponent) sobre el que pintaremos las imagenes
canvas.width = width;
canvas.height = height;
collage = new Bitmap(new BitmapData(width, height, true, 0x000000));
canvas.addChild(collage);
</pre>
<p>Luego tenemos un método que se encarga de &#8220;lanzar una foto&#8221; como podemos ver a continuación:</p>
<pre class="brush: javascript">
public function throwOnePhoto():void {
        //-- Sacamos la imagen que lanzaremos del array de fotos de picasa al azar
	var tmp:Object = fotos_arr.splice(Math.random()*fotos_arr.length,1).pop();

	// --- hacemos los calculos iniciales (rotacion,escala,...) para dicha imagen
	angle = range*Math.random()-range/2;
	finalAngle = -angle+Math.random()*20;
	rot.angleTo = finalAngle;
	img.scaleX = img.scaleY = 2;
	img.alpha = 0;
        // --- sacamos la url de los datos de picasa y añadimos el parametro imgmax. Esto último es *crucial* para evitar errores de carga en algunos navegadores (como siempre IE da sus problemillas). Otro pequeño truco indispensable para que funcione este servicio de Picasa correctamente.
	img.source = tmp.media.content.url + &quot;?imgmax=800&quot;;
	img.width = tmp.media.content.width;
	img.height = tmp.media.content.height;
	img.x = Math.random()*(width - img.width);
	img.y = Math.random()*(height - img.height);
	img.rotation = angle;

        // --- dibujamos en la imagen un fondo blanco y proyectamos una sombra para darle aspecto de foto a la imagen
	img.graphics.clear();
	img.graphics.beginFill(0xffffff);
	img.graphics.drawRect(-5, -5, img.width+10, img.height+10);
	img.graphics.endFill();
	img.filters = [new DropShadowFilter(1, 90, 0, .75, blur, blur, 2, 2)];
}
</pre>
<p>Cada vez que queramos lanzar una foto, llamaremos al método anterior.</p>
<p>En cuanto al efecto utilizado cuando &#8220;lanzamos la foto&#8221;, se trata de una combinación de efectos ejecutados en paralelo:</p>
<pre class="brush: xml">&lt;fx : Declarations&gt;
	&lt;s : Parallel id=&quot;photoEffect&quot; duration=&quot;4000&quot; effectEnd=&quot;copyImage(event)&quot; &gt;
		&lt;s : Fade alphaTo=&quot;1&quot; duration=&quot;3000&quot;/&gt;
		&lt;s : Rotate id=&quot;rot&quot; startDelay=&quot;500&quot; duration=&quot;3500&quot; autoCenterTransform=&quot;true&quot;/&gt;
		&lt;s : Scale scaleXFrom=&quot;2&quot; scaleYFrom=&quot;2&quot; duration=&quot;3000&quot; scaleXTo=&quot;1&quot; scaleYTo=&quot;1&quot; startDelay=&quot;1000&quot; autoCenterTransform=&quot;true&quot;/&gt;
	&lt;/s&gt;
&lt;/fx&gt;
</pre>
<p>En este caso, el truco está en el uso de los parámetros <em>startDelay</em> y <em>duration</em> para hacer la combinación de <em>timelines</em> que buscamos. Otro parámetro clave en la nueva arquitectura de efectos de <strong>Flex 4</strong> es <em>autoCenterTransform</em>, cuyo cometido es hacer que los efectos <em>Move</em>, <em>Scale</em> y <em>Rotate</em> actúen al unisono mediante un <em>proxy</em> que hace que el valor solo cambie una vez como resultado de todos los cambios de efectos sobre el objeto (de esta forma se evitan los parpadeos o &#8220;brincos&#8221; inesperados de los objetos animados.</p>
<p>Finalmente y una vez que el efecto a terminado, tenemos que ejecutar la parte más delicada del proceso. La copia del estado visual de la imagen en nuestro lienzo para poder reutilizar el componente <em>Image</em> nuevamente y evitar el uso innecesario de memoria, como comentamos anteriormente. Para ello llamamos al método <em>copyImage</em> cuando el efecto a terminado su ejecución:</p>
<pre class="brush: javascript">
//cuando termina el effecto
private function copyImage(event:EffectEvent):void {
	drawOntoBitmapData(img,collage.bitmapData);

	if(fotos_arr.length &gt; 0)
		throwOnePhoto();
}
</pre>
<p>El método <em>drawOntoBitmapData</em> se encarga de dibujar el objeto <em>Image</em> sobre el <em>Bitmap</em>. En el conseguimos los limites de la imagen mediante <em>getBounds</em> (teniendo en cuenta que hemos aplicado un filtro de sombra). Y tenemos que tener igualmente en cuenta la rotación y la traslación aplicada para hacer la copia final en nuestro lienzo. Aquí se trata de darle un poco de uso a nuestros conocimientos matemáticos <img src='http://www.carlosrovira.com/blog/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> .</p>
<pre class="brush: javascript">
private function drawOntoBitmapData(source : IBitmapDrawable, target : BitmapData) : void {
	var bounds : Rectangle = DisplayObject(source).getBounds(DisplayObject(source));
	var bitmapData : BitmapData = new BitmapData(bounds.width+blur*2, bounds.height+blur*2, true, 0x00000000);
	var mangle:Number = finalAngle*Math.PI/180;
	var sinVal:Number = Math.sin(mangle);
	var cosVal:Number = Math.cos(mangle);

	var m1:Matrix= new Matrix(1, 0, 0, 1, -bounds.x+blur, -bounds.y+blur);
	bitmapData.draw(source, m1, null, null, null, true);

	var m2:Matrix= new Matrix(1, 0, 0, 1, bounds.x - blur, bounds.y - blur);
	m2.translate(img.x*cosVal+img.y*sinVal, img.y*cosVal-img.x*sinVal);
	m2.rotate(mangle);
	target.draw(bitmapData, m2, null, null, null, true);
}
</pre>
<p>Y ya está. El efecto visual está terminado y listo para usar en nuestro blog <img src='http://www.carlosrovira.com/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> .</p>
<p>Espero que os haya parecido interesante. El siguiente paso es empezar a jugar con lo conseguido y experimentar con las nuevas cosas que ofrece Flex 4&#8230;¿qué tal si aplicamos ahora un efecto Rotate3D?</p>
<p> <img src='http://www.carlosrovira.com/blog/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>]]></content:encoded>
			<wfw:commentRss>http://www.carlosrovira.com/blog/2009/10/visor-de-fotos-flex-con-picasa-ii/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Visor de Fotos Flex con Picasa (I)</title>
		<link>http://www.carlosrovira.com/blog/2009/10/visor-de-fotos-flex-con-picasa-i/</link>
		<comments>http://www.carlosrovira.com/blog/2009/10/visor-de-fotos-flex-con-picasa-i/#comments</comments>
		<pubDate>Thu, 15 Oct 2009 22:54:17 +0000</pubDate>
		<dc:creator>Carlos Rovira</dc:creator>
				<category><![CDATA[Flex]]></category>

		<guid isPermaLink="false">http://www.carlosrovira.com/blog/?p=628</guid>
		<description><![CDATA[Como comentaba en mi último post quería compartir con vosotros unas pocas lineas acerca del proceso de creación del visor de fotos para la cabecera de este blog.
El concepto inicial era crear una cabecera sencilla con Flex 4, donde fuesen apareciendo fotos al azar como si fuesen &#8220;lanzadas&#8221; a un escritorio. La idea no es [...]]]></description>
			<content:encoded><![CDATA[<p>Como comentaba en mi último post quería compartir con vosotros unas pocas lineas acerca del proceso de creación del visor de fotos para la cabecera de este blog.</p>
<p>El concepto inicial era crear una cabecera sencilla con <strong>Flex 4</strong>, donde fuesen apareciendo fotos al azar como si fuesen &#8220;lanzadas&#8221; a un escritorio. La idea no es nueva, ya que se puede ver en alguno de los salvapantallas de los Mac. El motivo de elegir Flex 4 era simplemente por posibilidades de experimentación en el futuro con el nuevo framework.</p>
<p><img src="http://www.carlosrovira.com/blog/wp-content/uploads/2009/10/mac_screensaver.png" alt="Leopard Photo Screen Saver" title="Leopard Photo Screen Saver" width="343" height="242" class="aligncenter size-full wp-image-653" /></p>
<p><span id="more-628"></span></p>
<p>En el proceso de pensar dicha cabecera me planteé donde estarían alojadas las fotos a mostrar. Podría tener, como en mi antiguo visor de fotos, un álbum en mi propio servidor y acceder vía <strong>AMF</strong> a la estructura de directorios y fotos, de forma que simplemente subiendo una nueva foto por <strong>FTP</strong>, el servicio <strong>AMF</strong> ya supiese de su existencia y la devolviese al visor para ser visualizada. No obstante y teniendo en cuenta que hoy en día tenemos servicios de alojamiento de imágenes gratuitos como <strong>Flickr</strong>, <strong>Picasa</strong> o <strong>Facebook</strong>, me decidí por estos últimos ya que además tienen interfaces web y se hacen sencillos de gestionar. Otras ventajas de esta elección es que podemos subir las imágenes desde un browser vía http y eliminamos ancho de banda del servidor dado que las imágenes están en las máquinas de Google.</p>
<p>Inicialmente hice un poco de investigación entre los distintos servicios y sus APIs para Flex y finalmente me quedé con <strong>Picasa</strong>. Quizá simplemente por la sencillez que siempre imprime Google en todo lo que hace y sobre todo por el <a href="http://code.google.com/p/picasa-flex-api/">API Flex de acceso</a> tan sencilla que encontré.</p>
<p>Si tenéis un álbum creado en Picasa es muy sencillo recoger la información de su contenido. Para que veáis la facilidad de uso del API de Flex podemos hacer lo siguiente:</p>
<pre class="brush: javascript">private var gService:GDataService = new GDataService();
private var username:String = &quot;usuario&quot;;
private var albumName:String = &quot;album&quot;;	

gService.userName = username;
gService.proxied = false;
gService.projection = GDataService.GDATA_PROJECTION_API;

gService.addEventListener( GDataEvent.GET_PHOTOS_BY_ALBUM, handlePhotoOk );
gService.addEventListener( GDataEvent. GET_PHOTOS_BY_ALBUM_FAILED, handlePhotoFail );

gService.getPhotosByAlbum( albumName );
</pre>
<p>Como es habitual tenemos que definir un servicio con nuestro usuario y álbum a mostrar y los <em>listeners</em> para el manejo del resultado o del error. En mi caso opté por usar el método <em>getPhotosByAlbum</em> que me devuelve todas las fotos del álbum en cuestión. Luego en el método <em>handlePhotoOk</em> podemos recoger el <em>array</em> de fotos depositado en <em>event.result.source</em> y comenzar a usarlo en nuestro visor para mostrar las imágenes que necesitemos.</p>
<p>Eso sí, os dejo unas lineas de código fundamentales para que todo funcione correctamente:</p>
<pre class="brush: javascript">Security.loadPolicyFile( &quot;http://photos.googleapis.com/data/crossdomain.xml&quot; );

Security.loadPolicyFile( &quot;http://lh3.ggpht.com/crossdomain.xml&quot; );
Security.loadPolicyFile( &quot;http://lh4.ggpht.com/crossdomain.xml&quot; );
Security.loadPolicyFile( &quot;http://lh5.ggpht.com/crossdomain.xml&quot; );
Security.loadPolicyFile( &quot;http://lh6.ggpht.com/crossdomain.xml&quot; );
</pre>
<p>Esto último lo descubrí a base de prueba y error ya que la seguridad del <strong>Flash Player</strong>, una vez más, tiende a complicarnos un poco la vida y sin estas lineas las imágenes no descargaran o algunos browsers simplemente no mostraran ninguna imagen haciendo que nuestro visor falle silenciosamente (o mal funcione en el mejor de los casos).</p>
<p>En el siguiente post veremos como mostrar las imágenes con el efecto deseado ahora que tenemos la fuente de datos a punto. Espero que os resulte interesante <img src='http://www.carlosrovira.com/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> .</p>]]></content:encoded>
			<wfw:commentRss>http://www.carlosrovira.com/blog/2009/10/visor-de-fotos-flex-con-picasa-i/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
	</channel>
</rss>

