<?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>Lucas Mourelle &#187; desarrollo web</title>
	<atom:link href="http://www.lucasmourelle.com.ar/category/desarrollo-web/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.lucasmourelle.com.ar</link>
	<description>diseñador / desarrollador / docente</description>
	<lastBuildDate>Sun, 05 Feb 2012 13:26:06 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	
		<item>
		<title>Charla: Videojuegos para la Web</title>
		<link>http://www.lucasmourelle.com.ar/2011/charla-videojuegos-para-la-web/</link>
		<comments>http://www.lucasmourelle.com.ar/2011/charla-videojuegos-para-la-web/#comments</comments>
		<pubDate>Fri, 15 Apr 2011 12:20:48 +0000</pubDate>
		<dc:creator>Lucas Mourelle</dc:creator>
				<category><![CDATA[desarrollo web]]></category>
		<category><![CDATA[programación]]></category>

		<guid isPermaLink="false">http://www.lucasmourelle.com.ar/?p=569</guid>
		<description><![CDATA[Estaré dando una charla sobre Videojuegos para la Web en la Universidad de Palermo. La primera parte será el día Lunes 18 de abril, y la segunda se hará el lunes siguiente: 25 de abril: ambos encuentros ocurrirán a las &#8230; <a href="http://www.lucasmourelle.com.ar/2011/charla-videojuegos-para-la-web/">Continued</a>]]></description>
			<content:encoded><![CDATA[<p><a title="Lucas Mourelle - videojuegos para la web" href="http://fido.palermo.edu/servicios_dyc/noticiasdc/eventos/login/index.php?id_activ=2701"><img class="aligncenter size-full wp-image-570" title="Lucas Mourelle - videojuegos para la web" src="http://www.lucasmourelle.com.ar/wp-content/uploads/2011/04/open_dc_up_mourelle.png" alt="" width="350" height="322" /></a></p>
<p>Estaré dando una charla sobre <em>Videojuegos para la Web</em> en la Universidad de Palermo. La primera parte será el día Lunes 18 de abril, y la segunda se hará el lunes siguiente: 25 de abril: ambos encuentros ocurrirán a las 11.30 de la mañana, en la UP: Mario Bravo 1050.</p>
<p>[Ni que lo digan… no salí favorecido en la foto.]</p>
<h1>¿Por qué una charla de videojuegos para la Web?</h1>
<p>En el último tiempo ha habido una revalorización de los videojuegos simples, también llamados <em>arcade</em>, debido a su inclusión en sitios web y aplicaciones para dispositivos móviles.</p>
<p>En el encuentro se expondrá el proceso completo de programación de un videojuego <em>arcade</em>. La actividad implica una excusa sobre la cual trabajar, a modo introductorio, el paradigma de Programación Orientada a Objetos (OOP) y la metodología para encarar un proyecto de este género desde el punto de vista del desarrollo.</p>
<p>El proyecto se programará en lenguaje ActionScript3. No se requieren conocimientos previos siendo que el curso no hará especial hincapié en el lenguaje de programación, su sintaxis, o la Plataforma Flash. Daremos lugar a la experiencia de una propuesta metodológica que implica la solución de problemas paso a paso.</p>
<h1>De nuevo… ¿Dónde y cuándo?</h1>
<p><strong>Lunes 18 y 25 de abril &#8211; 11.30 hs.</strong><br />
<strong> Mario Bravo 1050 &#8211; Universidad de Palermo.</strong></p>
<p>El acceso a la charla es gratuito, pero hay que inscribirse.<br />
<a title="Inscribirse a la charla de Videojuegos para la Web" href="http://fido.palermo.edu/servicios_dyc/noticiasdc/eventos/login/index.php?id_activ=2701">Click aquí para inscribirse</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.lucasmourelle.com.ar/2011/charla-videojuegos-para-la-web/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>¿Libertad al usuario?</title>
		<link>http://www.lucasmourelle.com.ar/2011/libertad-al-usuario/</link>
		<comments>http://www.lucasmourelle.com.ar/2011/libertad-al-usuario/#comments</comments>
		<pubDate>Fri, 14 Jan 2011 02:17:49 +0000</pubDate>
		<dc:creator>Lucas Mourelle</dc:creator>
				<category><![CDATA[desarrollo web]]></category>
		<category><![CDATA[diseño]]></category>
		<category><![CDATA[gui]]></category>
		<category><![CDATA[myspace]]></category>
		<category><![CDATA[usuario]]></category>
		<category><![CDATA[ux]]></category>

		<guid isPermaLink="false">http://www.lucasmourelle.com.ar/?p=539</guid>
		<description><![CDATA[Todos recordamos este simpático speech de aquel pelilargo y pollerudo William Wallace clamando por la libertad del pueblo escocés. Freedooom! Freedooom! En fin, a raíz del artículo ¿Tiene el usuario todo el control sobre la interfaz? que escribió nuestra amiga &#8230; <a href="http://www.lucasmourelle.com.ar/2011/libertad-al-usuario/">Continued</a>]]></description>
			<content:encoded><![CDATA[<p style="text-align: center;"><iframe title="YouTube video player" width="425" height="349" src="http://www.youtube.com/embed/ugR-Iyp-e1k?rel=0" frameborder="0" allowfullscreen></iframe></p>
<p>Todos recordamos este simpático <em>speech</em> de aquel pelilargo y pollerudo William Wallace clamando por la libertad del pueblo escocés. <em>Freedooom! Freedooom!</em></p>
<p>En fin, a raíz del artículo <a title="Artículo: ¿Tiene el usuario todo el control sobre la interfaz?" href="http://www.veronicatraynor.com.ar/tiene-el-usuario-todo-el-control-sobre-la-interfaz/"><em>¿Tiene el usuario todo el control sobre la interfaz?</em></a> que escribió nuestra amiga Verónica Traynor acerca de la libertad que se debe dar al usuario cuando se proyecta una interfaz, se me ocurren algunas ideas que intentaré listar a continuación.</p>
<p>De buenas a primeras, lo primero que me viene a la mente es <strong>«no»</strong>: un acto reflejo me dice que no es bueno darle absoluta libertad sobre una interfaz al usuario pero inmediatamente después siento una molestia, algo así como una picazón en el omóplato, y que tiene que ver con la maldita costumbre —que tenemos muchos— de construir generalizaciones, soluciones universales y respuestas todo-terreno que no hacen otra cosa que concentrarse en la cuestión formal (<em>morphé</em>) del problema, quitando importancia a su materia (<em>hylé</em>). Por lo tanto, si me permiten, haré una breve divergencia en mi relato acerca de la libertad del usuario y hablaré de esto otro, sólo por un ratito. Ya vuelvo.</p>
<h1>La sobreestimación de lo formal</h1>
<p>Hace ya varios meses que tengo esta picazón que comentaba. En principio, la molestia viene de situaciones como la siguiente: ocurren los hechos A y B, por ejemplo, y las personas se empujan y apuran a establecer una regla universal de lo que se debe hacer en dichos casos (A y B), pero también en todos los demás: el resto de los casos similares que hay en el universo, entonces…</p>
<ul>
<li>Resulta que acontece esta explosión de datos confidenciales gracias a las maniobras de Wikileaks y de pronto todos creemos que es mejor que toda la información sea pública y esté a la vista. Sí, en un primer momento también yo lo creo así. Pero, ¿toda la información? ¿No habrá que analizar caso por caso? Mientras tanto ponemos el grito en el cielo cuando el gobierno de USA pide a Twitter datos de Julian Assange (al margen: Twitter, en una movida admirable y sin precedentes, defendió a sus usuarios <a title="Twitter's got guts!" href="http://www.wired.com/threatlevel/2011/01/twitter/"><strong>no</strong> enviando los datos al gobierno norteamericano</a> <em>¡Vamo&#8217; Twitter!</em>). No estoy criticando a Wikileaks —de hecho me provoca cierta simpatía—, simplemente me pregunto si podemos establecer una regla universal al respecto. Yo creo que no. Para ser franco, no quisiera mis mails personales dando vueltas públicamente por ahí. ¿Dónde está el límite? ¿Sólo en el carácter personal o gubernamental de los datos? ¿Quién decide cuáles datos deben mostrarse y cuáles no? Quizás sea útil que cierta información sea pública, como el manejo de dinero de los gobiernos, y que otro tanto no lo sea.</li>
<li>Sobre las clases de la facultad: es cierto que la bajada de línea en teóricas y clases de taller no suele ser un buen proceso de aprendizaje para los estudiantes, cuyo mayor valor debiera ser el descubrimiento y la creación de conocimientos propios, junto con la formación de una fuerte capacidad crítica. Sin embargo hay situaciones en las que una cátedra <em>debe</em> bajar línea, y en todo caso analizar más adelante el resultado con el debido cuidado. Algunos preconceptos podrán reverse más tarde, o criticarse, o modificarse. Existen diferentes estadíos de maduración de un estudiante: cuando uno estudia necesita construir ciertas estructuras de pensamiento fuertes, aunque más no sea para luego tirarlas abajo; un alumno no podrá hacer una revisión y valoración crítica de sus estructuras de pensamiento si todavía no ha logrado construir esas estructuras.</li>
<li>Cuando de diseño se trata: si la importancia radica en el proceso o en el resultado, en la etapa proyectual, o en el objeto terminado. ¿No será, digo yo, que habrá que analizar cada caso?</li>
</ul>
<p>¿Será que en temas como estos y otros cientos, estamos dando demasiada importancia a la estructura, a la forma, y nos olvidamos del contenido? ¿Acaso ese contenido, que <em>rellena</em> cada situación particular con personas, contexto, historia y posibilidades a futuro, no es al menos tan importante como la estructura del problema particular que se está analizando?</p>
<p>Y entonces yo me pregunto: ¿Podemos seguir estableciendo reglas generales a base de enunciados muy escuetos que sólo plantean un problema como estructura, sin un análisis del caso en particular?</p>
<p>Es un poco de esta época, <em>sip</em>. Y aquella sensación de que la ciencia es esa cosa simple y un tanto graciosa que nos cuenta la sección de <a title="Diario La Nación - Ciencia y Salud" href="http://www.lanacion.com.ar/diario-de-hoy/ciencia-salud/index.asp">Ciencia y Salud</a> del diario La Nación. Donde se extraen conjeturas sobre la raíz genética de cosas tales como la <em>infidelidad</em> a partir de experimentos con ratas de laboratorio. Está muy bien, es el proceso inductivo típico de la ciencia occidental llevado a su máximo y peor exponente.</p>
<p>Yo, sin embargo, confío en que —a pesar de sus falencias— la ciencia occidental todavía tiene mucho para dar, y que no se trata todo de genes, adúlteros y simpáticos roedores.</p>
<h1>Luego de esta breve pausa…</h1>
<p>Volviendo al asunto de la libertad del usuario de una interfaz, decía que mi primera impresión es que, a priori, otorgar al usuario la libertad absoluta de obrar sobre la interfaz no es una buena idea. En tantísimos casos —cuando usuarios— no tomamos las decisiones correctas estando al mando de una interfaz. Es nuestro trabajo, en tanto diseñadores (o <em>UXores</em>, o como fuere), establecer los límites en los cuales el usuario puede actuar: debemos prever casi todos sus movimientos y sus combinaciones de movimientos y evitar que pueda llegar a donde no queremos. Los caminos que no deseamos no deben ser parte de la interfaz: no deben formar parte del universo de posibilidades de dicha interfaz.</p>
<p>Ahora bien, que no panda el cúnico, sé que todo esto suena a postura filosófica, o peor: política si se quiere. Pues bien, aquí es donde mi largo intermedio toma importancia. <strong>NO.</strong> No me estoy refiriendo a lo que puede o no puede hacer un ciudadano, ni tampoco a lo que debe o no debe prohibírsele a un niño en la escuela primaria. Tampoco de coartar las posibilidades artísticas y/o de <em>violación</em> de una herramienta por parte de una persona con sensibilidad poética. Estoy hablando de un usuario ante una computadora con una interfaz (gráfica, por lo general) de software.</p>
<p>Y aún así, retomando todavía con mayor fruición mi <em>intermezzo</em>, habrá que ver cada caso. Por ejemplo: es muy probable que en las aplicaciones profesionales sí sea útil dar mayor libertad al usuario; aquí habrá que definir oportunamente qué es una aplicación profesional, establecer niveles de <em>profesionalidad</em>, etc. No es mi intención ahondar en este asunto ahora: mi tendencia a estirar el texto es algo infernal. Estoy fuera de control.</p>
<h1>Un caso particular: MySpace</h1>
<p>Hace poco, si creemos lo que se decía en varios sitios web, <a title="MySpace" href="http://www.myspace.com">MySpace</a> estaba a punto de prescindir del 60% de sus empleados.</p>
<p>He aquí <a title="MySpace's UX introduced death" href="http://uxmag.com/short-news/myspaces-ux-induced-death">un artículo</a> que pueden leer en mayor detalle si tienen ganas, pero sucintamente esboza la siguiente idea: el fracaso de MySpace se debió, entre otras cosas, a la libertad con la que sus usuarios podían configurar y personalizar sus portales web personales: esto ocasionó que la gran mayoría de las páginas de esta inmensa red de contenidos fuesen espantosos atentados a la vista de los transeúntes cibernéticos (seguramente habrán tenido la ocasión de experimentarlo).</p>
<p>Supongo, entonces, que no podemos establecer una afirmación general de si conviene, o no, darle la libertad completa sobre la interfaz al usuario: habrá que analizar cada caso en particular, con sus características y condicionantes específicas.</p>
<p>Por lo demás, ojalá pueda el pueblo escocés —si quiere— lograr su independencia y soberanía algún día. Salutes!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.lucasmourelle.com.ar/2011/libertad-al-usuario/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Charla gratuita HTML5 y CSS3</title>
		<link>http://www.lucasmourelle.com.ar/2010/charla-gratuita-html5-y-css3/</link>
		<comments>http://www.lucasmourelle.com.ar/2010/charla-gratuita-html5-y-css3/#comments</comments>
		<pubDate>Fri, 01 Oct 2010 21:12:23 +0000</pubDate>
		<dc:creator>Lucas Mourelle</dc:creator>
				<category><![CDATA[desarrollo web]]></category>
		<category><![CDATA[tecnología]]></category>

		<guid isPermaLink="false">http://www.lucasmourelle.com.ar/?p=491</guid>
		<description><![CDATA[El martes 5 de octubre a las 19 hs. daré una charla gratuita sobre HTML5 y CSS3 en Gutenberg. La idea es charlar un rato, de forma introductoria, acerca de estas tecnologías y de los cambios que conllevan para el &#8230; <a href="http://www.lucasmourelle.com.ar/2010/charla-gratuita-html5-y-css3/">Continued</a>]]></description>
			<content:encoded><![CDATA[<p><a class="lightbox" title="Charla HTML5 Gutenberg - Lucas Mourelle" href="http://www.lucasmourelle.com.ar/wp-content/uploads/2010/10/Charla-HTML5-Gutenberg-Lucas-Mourelle.jpg"><img class="aligncenter size-medium wp-image-492" title="Charla HTML5 Gutenberg - Lucas Mourelle" src="http://www.lucasmourelle.com.ar/wp-content/uploads/2010/10/Charla-HTML5-Gutenberg-Lucas-Mourelle-430x335.jpg" alt="" width="430" height="335" /></a></p>
<p><strong>El martes 5 de octubre a las 19 hs. daré una charla gratuita sobre HTML5 y CSS3 en Gutenberg.</strong></p>
<p>La idea es charlar un rato, de forma introductoria, acerca de estas tecnologías y de los cambios que conllevan para el trabajo que realizamos diariamente los diseñadores y desarrolladores web.</p>
<p>Hablaremos, también, del curso <strong>Desarrollo Web nivel 2,</strong> que introducirá a un manejo avanzado de HTML5, CSS3 y JavaScript con jQuery.</p>
<p><strong>Para informes e inscripción a la charla gratuita, escribir a </strong><a href="mailto:cursos@fundaciongutenberg.edu.ar"><strong>cursos@fundaciongutenberg.edu.ar</strong></a><strong> </strong>, los cupos son limitados.</p>
<p>¡Allí nos vemos!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.lucasmourelle.com.ar/2010/charla-gratuita-html5-y-css3/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>To be or not to be HTML5</title>
		<link>http://www.lucasmourelle.com.ar/2010/to-be-or-not-to-be-html5/</link>
		<comments>http://www.lucasmourelle.com.ar/2010/to-be-or-not-to-be-html5/#comments</comments>
		<pubDate>Tue, 03 Aug 2010 14:50:38 +0000</pubDate>
		<dc:creator>Lucas Mourelle</dc:creator>
				<category><![CDATA[desarrollo web]]></category>
		<category><![CDATA[tecnología]]></category>
		<category><![CDATA[html]]></category>

		<guid isPermaLink="false">http://www.lucasmourelle.com.ar/?p=392</guid>
		<description><![CDATA[Hace varios días que tengo este post en mente (To be or not to be HTML5), y no he encontrado el tiempo para desarrollarlo y publicarlo. Hoy comienzo mi día de trabajo y leo un tweet de Jeffrey Zeldman, que &#8230; <a href="http://www.lucasmourelle.com.ar/2010/to-be-or-not-to-be-html5/">Continued</a>]]></description>
			<content:encoded><![CDATA[<p><img class="aligncenter size-full wp-image-401" title="HTML5 Skull" src="http://www.lucasmourelle.com.ar/wp-content/uploads/2010/08/calavera_html5.jpg" alt="" width="432" height="300" /></p>
<p>Hace varios días que tengo este post en mente (To be or not to be HTML5), y no he encontrado el tiempo para desarrollarlo y publicarlo.</p>
<p>Hoy comienzo mi día de trabajo y leo <a href="http://twitter.com/zeldman/status/20222448268">un tweet</a> de Jeffrey Zeldman, que nos lleva a <a href="http://www.zeldman.com/2010/08/03/html5-fuzzies/#comment-56135">un comentario</a> donde aclara ciertas cuestiones relacionadas con la confusión general que está experimentando el común de la gente, acerca de lo que efectivamente <em>es</em> <a href="http://whatwg.org/html5">HTML5</a>. Ahora bien, cuando el querido Zeldman escribe algo similar a aquello que viene rondando nuestros pensamientos, uno se siente bien: <em>debemos ir por buen camino.</em> Así es que decidí apurarme y publicar aunque sea algunos pensamientos fragmentados, desprolijos, y sacarlos <em>afuera</em> de una vez.</p>
<h1>¿Qué es HTML5 y qué no?</h1>
<p>Primero lo primero: las tecnologías y estándares web son muchos y muy abarcativos, pero hay tres que son fundamentales y juegan un rol protagonista en la mayoría de los sitios web:</p>
<ul>
<li>HTML (sea cual fuere la versión)</li>
<li>CSS (sea cual fuere el módulo)</li>
<li>JavaScript (lo dicho)</li>
</ul>
<p>Ahora bien, estas tecnologías cumplen tres funciones muy diferentes que se complementan mutuamente, a saber:</p>
<ul>
<li>HTML (contenido estructurado semánticamente)</li>
<li>CSS (presentación; los diseñadores podemos llamarlo &#8220;diseño&#8221;)</li>
<li>JavaScript (comportamiento)</li>
</ul>
<p>Cualquiera que se dedique al desarrollo web de calidad tiene este concepto tatuado en el cerebro o se dedica a alguna otra cosa (fuegos de artificio… digo, manejo de <a href="http://www.adobe.com/products/fireworks">Fireworks</a>).</p>
<p>El punto es que en las últimas semanas, una monstruosa cantidad de posts, comentarios, tweets y charlas de café abordan la temática <strong>HTML5</strong>, citando ejemplos que, o bien <strong>no son</strong> HTML5, o bien <em>lo son</em>, pero cuyas características principales no tienen que ver en absoluto con el uso (o no) del futuro estándar HTML5. Incluso Apple ha decidido sumarse a la confusión de una forma espantosa: creando <a href="http://www.apple.com/html5/">una web</a> donde todos los ejemplos utilizan HTML5 (es cierto), pero muchas de las características que se muestran como sus bondades dependen —en realidad— de las bondades de CSS3, o JavaScript, y podrían realizarse sin problemas utilizando las tradicionales versiones HTML 4 ó XHTML 1.</p>
<p>Haremos a continuación un par de listas que reflejan algunos ejemplos (sólo algunos) de lo que es, y no es HTML5. Adelantamos, de todas maneras, que cuando una gracia relacionada con el <strong>diseño</strong> de una página web —como la posibilidad de rotar el ángulo del texto, o de generar cajas con puntas redondeadas—, está publicada como una bondad de HTML5, habrá que al menos sospechar (sabemos que el HTML <strong>no</strong> debe encargarse del diseño/presentación del contenido, sino de marcar correctamente el contenido en sí mismo; es la tecnología <strong>CSS</strong> la que se ocupa de la presentación de los elementos que el HTML describe).</p>
<h2>To be HTML5</h2>
<ul>
<li>Nuevas etiquetas que ayudan a marcar mejor el contenido a nivel semántico: &lt;section&gt;, &lt;header&gt;, &lt;footer&gt;, &lt;nav&gt;, &lt;article&gt;, &lt;time&gt;, etc.</li>
<li>La posibilidad de incluir video y audio sin la utilización de tecnologías externas y plugins adicionales: &lt;video&gt; y &lt;audio&gt;.</li>
<li>La posibilidad de generar experiencias <a href="http://9elements.com/io/projects/html5/canvas/">altamente interactivas</a>, dibujando sobre cierta área con JavaScript, sin la utilización de tecnologías externas y plugins adicionales: &lt;canvas&gt;</li>
<li>Un doctype human-friendly (finalmente), que no comunica la versión del HTML: &lt;!DOCTYPE html&gt;</li>
<li>La posibilidad de utilizar la sintaxis del viejo HTML o la de XHTML (que sigue la sintaxis del metalenguaje XML).</li>
</ul>
<h2>Not to be HTML5</h2>
<ul>
<li>Texto rotado, puntas redondeadas, sombras estilo drop-shadow, imágenes y colores en transparencia, y todo tipo de situaciones que dependen del área de presentación/diseño de una página web, y que es responsabilidad exclusiva de la tecnología CSS. Por lo general, debemos estas nuevas posibilidades a CSS3.</li>
<li>Animaciones de objetos que aparecen, desaparecen, se mueven, agrandan, colapsan y cambian su forma. Cuestiones que evidentemente tienen que ver con el comportamiento de un site, y que suelen programarse en JavaScript.</li>
<li>Geolocation: muchos suelen decir que se trata de parte del futuro estándar HTML5, pero <a href="http://dev.w3.org/geo/api/spec-source.html#introduction">no</a>.</li>
<li>Posibilidad de visualizar el website en celulares y equipos móviles como el iPhone, iPad y similares: este asunto es escabroso, pero tampoco es exclusivo de HTML5. El debate <a title="Flash vs. HTML5 y más!" href="http://www.lucasmourelle.com.ar/2010/06/11/html5-flash-y-otras-armas-de-destruccion-masiva/">Flash vs HTML5</a> ha generado la equívoca sensación de que para que un celular pueda interpretar correctamente una página web, ésta debe estar codificada en HTML5, cuando lo que en realidad ocurre es que simplemente se debe evitar la utilización de la tecnología Flash.</li>
<li>La tecnología que hace volar al DeLorean en <a href="http://www.youtube.com/watch?v=LKLs9ynZEH0">Back To The Future II</a>.</li>
</ul>
<h1>Pero&#8230;</h1>
<p>Como comenta el estimadísimo Jeffrey Zeldman, el hecho de que aquellos no-geeks (a veces gerentes de empresas, y quienes deciden cuándo/cuánto invertir en tecnología web) estén entusiasmados con el <em>concepto HTML5</em>, es genial y beneficia a la Web en general. Cuando estas personas se refieren a HTML5, en realidad se están refiriendo a un conjunto de tecnologías nuevas que incluyen HTML5, CSS3, manejo de JavaScript avanzado y algunas otras más crípticas como <a href="http://microformats.org/">Microformats</a>, <a href="http://dev.w3.org/geo/api/spec-source.html">Geolocation</a>, <a href="http://www.w3.org/TR/2010/WD-microdata-20100624/">Microdata</a>, etc.</p>
<p>Es nuestro deber, como profesionales con conocimiento técnico, al menos tener la delicadeza de nombrar este conjunto de tecnologías por lo que son, o como bien recomienda Mr. Zeldman, titularlas: <em><strong>&#8220;HTML5 and related technologies&#8221;</strong></em> (HTML5 y tecnologías relacionadas). De esta manera, /1. mantenemos el halo marketinero del asunto y /2. evitamos malentendidos.</p>
<p>There, I said it. Pensamientos fragmentados y desprolijos <em>afuera</em>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.lucasmourelle.com.ar/2010/to-be-or-not-to-be-html5/feed/</wfw:commentRss>
		<slash:comments>11</slash:comments>
		</item>
		<item>
		<title>Excelente video explicativo</title>
		<link>http://www.lucasmourelle.com.ar/2010/excelente-video-explicativo/</link>
		<comments>http://www.lucasmourelle.com.ar/2010/excelente-video-explicativo/#comments</comments>
		<pubDate>Wed, 16 Jun 2010 01:26:41 +0000</pubDate>
		<dc:creator>Lucas Mourelle</dc:creator>
				<category><![CDATA[desarrollo web]]></category>
		<category><![CDATA[instantáneas]]></category>
		<category><![CDATA[programación]]></category>
		<category><![CDATA[tecnología]]></category>
		<category><![CDATA[computación]]></category>
		<category><![CDATA[diseño]]></category>
		<category><![CDATA[video]]></category>
		<category><![CDATA[web]]></category>

		<guid isPermaLink="false">http://www.lucasmourelle.com.ar/?p=387</guid>
		<description><![CDATA[Es genial cuando se logra explicar un asunto complejo de forma simple. Aquí una explicación acerca del funcionamiento del buscador de Google.]]></description>
			<content:encoded><![CDATA[<p><object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="430" height="340" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="allowFullScreen" value="true" /><param name="allowscriptaccess" value="always" /><param name="src" value="http://www.youtube.com/v/BNHR6IQJGZs&amp;hl=en_US&amp;fs=1&amp;" /><param name="allowfullscreen" value="true" /><embed type="application/x-shockwave-flash" width="430" height="340" src="http://www.youtube.com/v/BNHR6IQJGZs&amp;hl=en_US&amp;fs=1&amp;" allowscriptaccess="always" allowfullscreen="true"></embed></object></p>
<p>Es genial cuando se logra explicar un asunto complejo de forma simple. Aquí una explicación acerca del funcionamiento del buscador de <a title="Google" href="http://www.google.com/">Google</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.lucasmourelle.com.ar/2010/excelente-video-explicativo/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>HTML5, Flash, y otras armas de destrucción masiva</title>
		<link>http://www.lucasmourelle.com.ar/2010/html5-flash-y-otras-armas-de-destruccion-masiva/</link>
		<comments>http://www.lucasmourelle.com.ar/2010/html5-flash-y-otras-armas-de-destruccion-masiva/#comments</comments>
		<pubDate>Fri, 11 Jun 2010 14:53:17 +0000</pubDate>
		<dc:creator>Lucas Mourelle</dc:creator>
				<category><![CDATA[desarrollo web]]></category>
		<category><![CDATA[tecnología]]></category>
		<category><![CDATA[apple]]></category>
		<category><![CDATA[flash]]></category>
		<category><![CDATA[html]]></category>
		<category><![CDATA[internet]]></category>
		<category><![CDATA[web]]></category>
		<category><![CDATA[xhtml]]></category>

		<guid isPermaLink="false">http://www.lucasmourelle.com.ar/?p=356</guid>
		<description><![CDATA[En los últimos meses se ha hablado, escrito y discutido muchísimo acerca de cuestiones relacionadas con el universo del desarrollo web, el desarrollo de aplicaciones para smartphones y depravaciones similares, cuestiones político-filosóficas acerca del futuro de la web y del &#8230; <a href="http://www.lucasmourelle.com.ar/2010/html5-flash-y-otras-armas-de-destruccion-masiva/">Continued</a>]]></description>
			<content:encoded><![CDATA[<p style="text-align: center;"><a class="lightbox" title="Boom!" href="http://www.lucasmourelle.com.ar/wp-content/uploads/2010/06/mushroom.jpeg"><img class="aligncenter size-full wp-image-368" title="Boom!" src="http://www.lucasmourelle.com.ar/wp-content/uploads/2010/06/mushroom.jpeg" alt="" width="432" height="590" /></a></p>
<p>En los últimos meses se ha hablado, escrito y discutido muchísimo acerca de cuestiones relacionadas con el universo del desarrollo web, el desarrollo de aplicaciones para <em>smartphones</em> y depravaciones similares, cuestiones político-filosóficas acerca del <em>futuro de la web</em> y del modelo de negocio de las empresas más pesadas dedicadas al software. Todo en la misma bolsa.</p>
<p>¿Un post más acerca de todo esto? En serio… ¿otro más? Sip. Un poco porque contar me ayuda a ordenar las ideas y otro porque probablemente le sirva a alguna que otra persona interesada, que todavía no hubiera llegado a entender de qué se trata todo esto, por qué tanto revuelo y cómo se relacionan estos asuntos entre sí.</p>
<h1>First thing first</h1>
<p>A continuación, una breve reseña descriptiva de algunas cuestiones:</p>
<ul>
<li>Hace algunos años (en el 2000 aproximadamente) la <a title="W3C" href="http://www.w3.org/"><strong>W3C</strong></a> intuyó que el futuro de la web no podría montarse sobre nuevas versiones del viejo y peludo HTML —ya muy vapuleado—. Decidieron lanzar al ruedo una nueva <em>recomendación</em>, que sentaba las bases de una línea de pensamiento renovada, un HTML más ordenado, limpio y estructurado, uno basado en el estándar XML: así nació el <a title="XHTML" href="http://en.wikipedia.org/wiki/XHTML">XHTML</a>. Hoy, diez años más tarde, nos encontramos ante una situación similar: con una W3C que decide —en vez de continuar la lógica del XHTML y generar una versión 2.0— volver a la <a title="La ruta del HTML" href="http://www.alistapart.com/articles/a-brief-history-of-markup/">ruta del HTML</a> y se encuentra <em>as we speak</em> desarrollando el mentado <strong><a title="HTML5" href="http://en.wikipedia.org/wiki/Html5">HTML5</a> </strong>(cambio de rumbo que se vio influenciado por el trabajo realizado por el <a href="http://www.whatwg.org/">WHATWG</a>). <em>Ca</em><em>si una marcha atrás,</em> pero <strong>no</strong>.</li>
<li><strong>Apple</strong>, empresa que diseña y fabrica la línea de <em>smartphones</em> más popular del mercado, se niega a permitir la ejecución de Flash en sus artefactos. Adobe pone el grito en el cielo al tiempo que algunos usuarios. Steve Jobs, CEO de Apple, publica <a title="Thoughts on Flash, Steve Jobs" href="http://www.apple.com/hotnews/thoughts-on-flash/">una carta</a> en abril de este año, en donde explica el por qué de su decisión. <strong>Adobe</strong> responde con una <a title="We love Apple" href="http://www.engadget.com/2010/05/13/adobe-targets-apple-in-ad-campaign-launched-today-publishes-ope/">campaña publicitaria</a> titulada &#8220;We love Apple&#8221;.</li>
<li>Apple <a title="Apple apoya el formato HTML5" href="http://www.apple.com/html5/">apoya el formato HTML5</a> y se instala en el mercado que la Plataforma Flash está en decadencia, con la nueva versión de HTML como su verdugo y sucesor. Nace la rivalidad <strong>HTML5 vs. Flash</strong>.</li>
<li>Tooodo el mundo enloquece con las <a title="Wow!" href="http://9elements.com/io/projects/html5/canvas/">vistosas</a> nuevas posibilidades de <a title="To be or not to be HTML5" href="http://www.lucasmourelle.com.ar/2010/08/03/to-be-or-not-to-be-html5/">lo que dan en llamar </a><em><a href="http://www.lucasmourelle.com.ar/2010/08/03/to-be-or-not-to-be-html5/">HTML5</a></em> (aunque en muchos casos se trata de posibilidades absolutamente factibles aún sin la utilización del dichoso HTML5). Hay la sensación de que algo groso, muy groso, está ocurriendo en el universo del desarrollo web.</li>
</ul>
<p><strong>¿Qué demonios está ocurriendo?</strong></p>
<p>Trataremos de ordenar un poco el panorama, ahora sí, olvidando la poca objetividad que pude esbozar en los párrafos anteriores. Todas estas cuestiones se relacionan íntimamente. Veremos…</p>
<h1>¡Que vivan los estándares!</h1>
<p>Durante un largo tiempo, desarrolladores web y otros evangelizadores han invertido una enorme cantidad de energía en la utilización de estándares. <em>—Me incluyo en la humilde y pequeñísima porción que me toca: comencé a utilizar estándares XHTML y CSS allá por el 2003 en trabajos para clientes, todo se veía para el traste en Internet Explorer y los clientes me querían mandar a matar.— </em>Esto se hizo con muchísimo esfuerzo, contra la corriente y en oposición a muchos intereses económicos. Ha sido una tarea hercúlea que dio sus frutos: hoy podemos decir que los estándares web gozan de buena salud, buena publicidad y buen funcionamiento en <a title="Microsoft Internet Explorer" href="http://www.microsoft.com/windows/internet-explorer/default.aspx">casi</a> todos los navegadores web.</p>
<p>¿Qué significa esto? Significa, entre otras cosas, que un sitio web desarrollado acorde a estándares tiene una alta probabilidad de funcionar correctamente en una gran cantidad de navegadores web. Significa, también, que personas no videntes, con visión reducida o problemas motrices severos, pueden navegar sin mayores inconvenientes gracias a una web más accesible. Esto último es <strong>muy importante:</strong> es equivalente a rampas y ascensores en edificios públicos.</p>
<p>En el pasado, algunas empresas (principalmente Microsoft) vieron esta democratización en cuanto a la libre elección de navegadores web como una amenaza contra la preponderancia del Internet Explorer, e hicieron todo lo posible por retrasar el avance en relación a los estándares web. Las consecuencias de esta estrategia han sido tan fuertes que aún hoy lo sufrimos a diario, tanto navegantes como desarrolladores.</p>
<h2>¿Qué ha cambiado?</h2>
<p><strong></strong>Los intereses económicos han cambiado. Por estos días, Apple —cuyo capital ha superado al de Microsoft muy recientemente—, basa la porción de su negocio con mayor crecimiento en sus plataformas <em>mobile,</em> esto es: <a title="Apple iPhone" href="http://www.apple.com/iphone/">iPhone</a>, <a title="Apple iPod touch" href="http://www.apple.com/ipodtouch/">iPod touch</a> y <a title="Apple iPad" href="http://www.apple.com/ipad/">iPad</a>. <strong>Estos artefactos son computadoras</strong> —mi <a title="Motorola W375: foto" href="http://www.thaisecondhand.com/view/productpic/09/01/p7223813n1.jpg" target="_blank">Motorola W375</a> también, aunque sea menos evidente— pero, a diferencia de sus hermanas de escritorio, tienen menos velocidad de procesamiento, sus componentes son muy pequeños, se encuentran empaquetados de la manera más comprimida posible, y deben economizar la potencia de procesamiento al máximo para evitar el sobrecalentamiento y utilizar el menor consumo de batería posible.</p>
<p><strong>Apple necesita del HTML5,</strong> y no es una cuestión de filantropía. Lo necesita porque puede brindarle contenido textual, imagen, animación, video, audio e interactividad utilizando pocos recursos. Los desarrolladores web nos encontramos ante una situación muy extraña: de repente el gran capital está <em>a favor</em> de los estándares web. ¿Algo andará mal? Not quite.</p>
<h1>What&#8217;s up Flash?</h1>
<p>El <em>asunto Flash</em> está sobredimensionado, salvo que se lo mire desde el interior mismo de los cuarteles de Adobe. La remota posibilidad de la desaparición de Flash, debe preocupar a nadie salvo a sus mismísimos fabricantes. En lo personal, le tengo muchísimo cariño a la Plataforma Flash, me ha dado de comer durante años, ha significado el 70% de mi trabajo de programación diario, pero debo admitir que la Web será un lugar tanto más feliz cuanto menos preponderancia posea Flash.</p>
<p><strong>Las dos virtudes más importantes de la Plataforma Flash son:</strong></p>
<ul>
<li>Un altísimo grado de interactividad, incluyendo texto, imagen, animación, audio y video.</li>
<li>Fidelidad absoluta entre diferentes plataformas. Un contenido Flash se verá exactamente igual en Mac OS, Windows, y en algunos casos Linux, incluso cuando vistos en diferentes navegadores como Internet Explorer, Firefox, Safari, etc.</li>
</ul>
<p><strong>Por otro lado, los grandes problemas del Flash son:</strong></p>
<ul>
<li>Una performance paupérrima. Basta con mover un objeto más o menos grande (una foto que ocupe toda la pantalla, digamos) para que algunas notebooks levanten su temperatura en segundos.</li>
<li>Una cantidad incontrolable y muchas veces indocumentada de <a title="Bug: error de software" href="http://es.wikipedia.org/wiki/Error_de_software">bugs</a>. Aún en la última versión de su lenguaje de programación, ActionScript 3.0, programar en la IDE de Flash suele ser un safari infernal a lo desconocido.</li>
</ul>
<p>¿Comienzan a vislumbrar el asunto? Flash tenía sentido en una realidad donde la fidelidad de un mismo contenido entre navegadores era muy pobre (una misma página web se veía y funcionaba de formas diferentes según desde qué navegador se ejecutara), y donde alcanzar un alto nivel de interactividad que incluyera audio, video y animación era imposible en el marco de los formatos estándares propuestos por la W3C.</p>
<p>Ahora bien, hemos sido testigos de la carrera de Intel y AMD por generar procesadores cada vez más rápidos y poderosos, pero esos tiempos se han acabado. El mayor interés actual es lograr un alto poder de procesamiento, en poco espacio, con poco consumo de energía y poca necesidad de ventilación. El <em>gran capital</em> necesita procesadores que puedan hacer funcionar sus nuevos gadgets para la burguesía tecnológica y software altamente optimizado que acompañe dicho ahorro de energía.</p>
<p>Como dijimos, Flash sufre de una performance paupérrima, un pésimo uso de la energía y está lleno de bugs. Que se cuelgue una aplicación en una computadora de escritorio es una cosa (force quit o ctrl+alt+delete y chau), que se cuelgue una aplicación en un teléfono móvil implica que la batería se consuma en unos pocos minutos: <strong>un día entero de incomunicación.</strong></p>
<h1>Contenido semántico</h1>
<p>En los últimos años se habló mucho acerca de la web semántica. El asunto merece un post al margen, pero haré un breve reconto de por qué es importante en medio de todo este asunto.</p>
<p>La web abriga una cantidad demencial, inimaginable, incuantificable, infernalmente gigante de contenidos. Esto dificulta un tanto su accesibilidad. Cómo encontrar el contenido necesario entre semejante cantidad de datos es uno de los grandes temas en el campo de preocupaciones de científicos, ingenieros especializados y desarrolladores web. La respuesta es simple: hay que ordenar el contenido de alguna <em>forma</em>, hay que darle <strong>estructura</strong>.</p>
<p>El asunto es que la mayoría de las veces, quienes buscan entre el contenido son robots. Google puede mostrar una lista de resultados más o menos útiles en nuestras búsquedas, porque periódicamente envía una <a title="El robot de Google: Googlebot" href="http://en.wikipedia.org/wiki/Googlebot">tropa de robots</a> a <em>darse una vuelta</em> por la web, y a anotar lo recolectado en bases de datos. Cuanto mejor entienda la información este robot, más efectiva será la lista de resultados que ofrezca el motor de búsqueda.</p>
<p>La estructuración de ciertos tipos de datos en formas estándar, permite que estos robots puedan comprender la naturaleza de la información y sus relaciones. Por ejemplo, en los sitios web que están bien desarrollados y acorde a estándares, el robot de Google <em>entiende</em> qué partes de cierta página son más importantes, cuáles textos son títulos, a qué párrafos corresponden, de qué tratan las imágenes, etc.</p>
<p>Hoy en día, existen <a title="Microformats" href="http://microformats.org/">propuestas estándares</a> para codificar muchos tipos de datos, por ejemplo un <a title="Microformats - hCalendar" href="http://microformats.org/wiki/hcalendar">evento</a>. Esto implica que es hipotéticamente viable, con la ayuda de Google y un smartphone con GPS, pararse en cualquier esquina de Buenos Aires y buscar <em>eventos que ocurran de aquí a 4 horas, en un radio de 20 cuadras</em>. Esto se hace posible únicamente en el marco de una web semántica, que sigue ciertos estándares.</p>
<p>¿Por qué nos interesa todo esto? Porque la información que se encuentra en un archivo HTML o XHTML (es decir, en una página web), es información que se encuentra accesible a <em>robots</em>, y que puede estructurarse semánticamente sin problemas. El Flash no lo permite, y es probable que no lo permita nunca, salvo que cambien cuestiones de la naturaleza de fondo de la tecnología.</p>
<h1><strong>¿Desaparecerá el Flash?</strong></h1>
<p>No creo. Pienso que se va a enfocar fuertemente al desarrollo de aplicaciones multiplataforma, lo que hoy en día Adobe llama <a title="Adobe Air" href="http://www.adobe.com/ap/products/air/">Air</a>, o tecnologías similares. Sin dudas la utilización de Flash en web está decreciendo, esto es un hecho. Apple ha ayudado mucho a acelerar el proceso. Vale la pena aclarar, sin embargo, que todavía no ha salido al mercado una versión del Flash Player que funcione en dispositivos móviles —con o sin manzana— por lo que está por verse si efectivamente Flash estará disponible en celulares y tabletas interactivas. Hoy en día hay un <em>beta</em> del Flash Player <a title="Flash Player beta on Android Froyo Beta" href="http://www.youtube.com/watch?v=3hqFTx8rLsg">corriendo</a> en un <em>beta</em> de la próxima versión de <a title="Google Android" href="http://www.android.com/">Android</a>, el sistema operativo <em>mobile</em> de Google.</p>
<p>En ciertos casos clave, cuando se necesite un altísimo nivel de interactividad con una curva de aprendizaje más o menos sencilla, la tecnología de Adobe seguirá siendo una buena opción. Mientras tanto, sólo queda observar atentamente cómo se desarrollan los hechos, e ir practicando muuucho <a title="JavaScript" href="http://en.wikipedia.org/wiki/JavaScript">JavaScript</a> ;-)</p>
]]></content:encoded>
			<wfw:commentRss>http://www.lucasmourelle.com.ar/2010/html5-flash-y-otras-armas-de-destruccion-masiva/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>Carga de archivos en AS3</title>
		<link>http://www.lucasmourelle.com.ar/2010/carga-de-archivos-en-as3/</link>
		<comments>http://www.lucasmourelle.com.ar/2010/carga-de-archivos-en-as3/#comments</comments>
		<pubDate>Sat, 13 Feb 2010 01:32:58 +0000</pubDate>
		<dc:creator>Lucas Mourelle</dc:creator>
				<category><![CDATA[desarrollo web]]></category>
		<category><![CDATA[programación]]></category>
		<category><![CDATA[tecnología]]></category>
		<category><![CDATA[actionscript]]></category>
		<category><![CDATA[as3]]></category>
		<category><![CDATA[flash]]></category>

		<guid isPermaLink="false">http://www.lucasmourelle.com.ar/?p=149</guid>
		<description><![CDATA[Antes y después El lengueja de programación de la Plataforma Flash ha pasado por 3 versiones: ActionScript 1, ActionScript, 2 y ActionScript 3. Como sabemos, varias cuestiones han cambiado en el paso de AS2 a AS3. La carga de archivos &#8230; <a href="http://www.lucasmourelle.com.ar/2010/carga-de-archivos-en-as3/">Continued</a>]]></description>
			<content:encoded><![CDATA[<h1>Antes y después</h1>
<p>El lengueja de programación de la Plataforma Flash ha pasado por 3 versiones: ActionScript 1, ActionScript, 2 y ActionScript 3. Como sabemos, varias cuestiones han cambiado en el paso de AS2 a AS3. La carga de archivos externos es una de ellas. Si bien la traducción literal es más o menos sencilla, vale la pena repasarla.</p>
<p>Lo que en AS2 solíamos hacer así:</p>
<pre class="brush: as3; light: true; pad-line-numbers: 2; title: ; wrap-lines: false; notranslate">
loadMovie(&quot;archivo_secundario.swf&quot;, this);
</pre>
<p>En AS3 se debe hacer así (el ejemplo citado a continuación está copiado de la documentación de Adobe, y luego ligeramente modificado):</p>
<pre class="brush: as3; light: true; pad-line-numbers: 2; title: ; wrap-lines: false; notranslate">
import flash.display.*;
import flash.net.URLRequest;
var cargador:Loader = new Loader();
var urlReq:URLRequest = new URLRequest(&quot;archivo_secundario.swf&quot;);
cargador.load(urlReq);
this.addChild(cargador);
</pre>
<p>Más allá de lo que se puede ver a golpe de vista, hay un par de cuestiones interesantes que trataré de sacar a la luz en este post.</p>
<h1>El ejemplo de Adobe:</h1>
<p>Antes de crear nuestro propio ejemplo —seguramente más complejo— repasaremos lo que hicieron los muchachos de Adobe. El ejemplo original se incluye en la documentación de la clase Loader (encargada de la carga de archivos externos en AS3).</p>
<p>Se importan las clases necesarias para la realización de la carga de un archivo externo. Nosotros lo haremos de forma detallada cuando nos toque crear nuestro propio ejemplo. Adobe ha sido un poco vago al importar todas las clases del paquete <strong>flash.display</strong> sin mayores precisiones (como podrán ver ustedes mismos, ésta no es una práctica muy amigable ya que el paquete <a href="http://help.adobe.com/en_US/AS3LCR/Flash_10.0/flash/display/package-detail.html" target="_blank">flash.display</a> contiene numerosas clases que no están siendo utilizadas por el resto del código).</p>
<pre class="brush: as3; light: true; pad-line-numbers: 2; title: ; wrap-lines: false; notranslate">
// importar las clases necesarias:
import flash.display.*;
import flash.net.URLRequest;
</pre>
<p>Se crea una instancia de la clase <a href="http://help.adobe.com/en_US/AS3LCR/Flash_10.0/flash/display/Loader.html" target="_blank">Loader</a>, que hará las veces de cargador. Este tipo de objeto (que hereda de la clase <a href="http://livedocs.adobe.com/flash/9.0/ActionScriptLangRefV3/flash/display/DisplayObjectContainer.html" target="_blank">DisplayObjectContainer</a>) tiene la funcionalidad necesaria para realizar la carga.</p>
<pre class="brush: as3; light: true; pad-line-numbers: 2; title: ; wrap-lines: false; notranslate">
// crear el cargador:
var cargador:Loader = new Loader();
</pre>
<p>Se prepara una instancia de <a href="http://help.adobe.com/en_US/AS3LCR/Flash_10.0/flash/net/URLRequest.html" target="_blank">URLRequest</a>, el tipo de objeto que espera recibir el método <a href="http://livedocs.adobe.com/flash/9.0/ActionScriptLangRefV3/flash/display/Loader.html#load%28%29" target="_blank">load</a> de la clase <a href="http://livedocs.adobe.com/flash/9.0/ActionScriptLangRefV3/flash/display/Loader.html" target="_blank">Loader</a>.</p>
<pre class="brush: as3; light: true; pad-line-numbers: 2; title: ; wrap-lines: false; notranslate">
// preparar la URL request:
var urlReq:URLRequest = new URLRequest(&quot;archivo_secundario.swf&quot;);
</pre>
<p>Efectivamente se da la orden de carga por medio de la función <a href="http://livedocs.adobe.com/flash/9.0/ActionScriptLangRefV3/flash/display/Loader.html#load%28%29" target="_blank">load</a>, incluyendo como parámetro a aquel objeto de tipo <a href="http://help.adobe.com/en_US/AS3LCR/Flash_10.0/flash/net/URLRequest.html" target="_blank">URLRequest</a> que creamos anteriormente.</p>
<pre class="brush: as3; light: true; pad-line-numbers: 2; title: ; wrap-lines: false; notranslate">
// se da la orden de carga:
cargador.load(urlReq);
</pre>
<p>Hasta aquí, la carga del archivo externo ya se puso en marcha, pero aún queda agregarlo a la escena. La siguiente línea de código agrega al <strong>cargador</strong> (de tipo Loader) a la escena, como <em>child</em> del <strong>root</strong>. Siendo que los objetos de clase <a href="http://help.adobe.com/en_US/AS3LCR/Flash_10.0/flash/display/Loader.html" target="_blank">Loader</a> heredan de <a href="http://livedocs.adobe.com/flash/9.0/ActionScriptLangRefV3/flash/display/DisplayObjectContainer.html" target="_blank">DisplayObjectContainer</a>, tienen la posibilidad de agregarse a la <em>Display List</em>, al igual que un MovieClip o un Sprite.</p>
<pre class="brush: as3; light: true; pad-line-numbers: 2; title: ; wrap-lines: false; notranslate">
// poner el cargador en escena:
this.addChild(cargador);
</pre>
<p>Recordemos el código completo, comentado:</p>
<pre class="brush: as3; light: true; pad-line-numbers: 2; title: ; wrap-lines: false; notranslate">
// importar las clases necesarias:
import flash.display.*;
import flash.net.URLRequest;
// crear el cargador:
var cargador:Loader = new Loader();
// preparar la URL request:
var urlReq:URLRequest = new URLRequest(&quot;archivo_secundario.swf&quot;);
// dar la orden de carga:
cargador.load(urlReq);
// poner el cargador en escena:
this.addChild(cargador);
</pre>
<p>A primera vista, parece mucho más complejo que la escueta versión en AS2 (y lo es), pero en programación <em>menos</em> no siempre es <em>más</em>. El cambio a AS3 nos facilita la resolución de errores y la generación de diferentes funcionalidades. El código nuevo ganó en complejidad, pero también en coherencia, orientación a objetos, facilidad en la solución de errores y funcionalidad.</p>
<p>Veremos un poco más a fondo el asunto en la siguiente página&#8230;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.lucasmourelle.com.ar/2010/carga-de-archivos-en-as3/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Explorer go home</title>
		<link>http://www.lucasmourelle.com.ar/2010/explorer-go-home/</link>
		<comments>http://www.lucasmourelle.com.ar/2010/explorer-go-home/#comments</comments>
		<pubDate>Thu, 04 Feb 2010 14:26:17 +0000</pubDate>
		<dc:creator>Lucas Mourelle</dc:creator>
				<category><![CDATA[desarrollo web]]></category>
		<category><![CDATA[tecnología]]></category>
		<category><![CDATA[css]]></category>
		<category><![CDATA[html]]></category>
		<category><![CDATA[ie]]></category>
		<category><![CDATA[js]]></category>
		<category><![CDATA[xhtml]]></category>

		<guid isPermaLink="false">http://www.lucasmourelle.com.ar/?p=100</guid>
		<description><![CDATA[Quienes trabajamos en el desarrollo de sitios web sabemos que el Internet Explorer, de Microsoft, es de lo peor. Lo sabemos, no por nuestro fanatismo geek, los numerosos artículos que versan sobre sus vulnerabilidades en materia de seguridad, o por &#8230; <a href="http://www.lucasmourelle.com.ar/2010/explorer-go-home/">Continued</a>]]></description>
			<content:encoded><![CDATA[<p><a class="lightbox" title="Cartel IE" href="http://www.lucasmourelle.com.ar/wp-content/uploads/2010/02/cartel_ie.gif"><img class="alignnone size-medium wp-image-120" title="Cartel IE" src="http://www.lucasmourelle.com.ar/wp-content/uploads/2010/02/cartel_ie-430x255.gif" alt="" width="430" height="255" /></a></p>
<p>Quienes trabajamos en el desarrollo de sitios web sabemos que el <strong>Internet Explorer,</strong> de Microsoft, es de lo peor. Lo sabemos, no por nuestro fanatismo geek, los numerosos artículos que versan sobre sus vulnerabilidades en materia de seguridad, o por boca de terceros, sino porque sufrimos diariamente sus caprichos y su incorrecta interpretación de código HTML y CSS.</p>
<p>Cuando terminamos de escribir el código y los estilos de un sitio, cuidando que todo esté acorde a los estándares dictados por la W3C, y pasamos a testearlo en diferentes navegadores, vemos que la mayoría muestra las páginas de la forma esperada… la mayoría, salvo el Internet Explorer. De ahí que estamos obligados a introducir hacks —en muchos casos incluso código no estándar— para reparar el problema. Este fenómeno suma horas, complicaciones inesperadas, incertidumbre y stress a nuestra tarea de desarrollo.</p>
<p>Una posible solución a largo plazo, es procurar que los usuarios elijan otros navegadores y dejen de utilizar IE (algo que está ocurriendo: las estadísticas de los últimos años muestran cómo viene perdiendo terreno el que alguna vez fue el navegador más utilizado).</p>
<h1>Educar al soberano:</h1>
<p>Dejar de incluir hacks en los sitios que desarrollamos sería una buena táctica; algo así como una guerrilla de insurrectos desarrolladores web —aunque convengamos que sería complicado explicarle a nuestro cliente que ve su sitio destartalado porque está utilizando Internet Explorer, que es el peor navegador, y entonces debiera cambiarlo y utilizar Firefox, o Chrome o Safari, lo mismo que los demás visitantes del sitio—. Eso es imposible. El cliente quiere que su sitio se vea perfecto en todos los principales navegadores, especialmente en el bendito Explorer.</p>
<p>Estos pocos días que transcurrieron desde que puse en marcha mi blog personal me han enseñado mucho. Ayer, por ejemplo, pensé que tener un sitio web personal implica hacer lo que se me de la gana. Decidí que no agregaría hacks para solucionar los errores de interpretación de IE, y que aportaría mi granito de arena para explicarle a los navegantes usuarios de Explorer que les convenía utilizar otros navegadores. Decidí incluir un cartel —visible únicamente para usuarios de IE— que los alerte e invite a probar otras alternativas.</p>
<p>Hay muchas maneras de presentar contenido únicamente a Internet Explorer. Voy a explicar a continuación cómo está resuelto en el caso de este sitio web en particular.</p>
<p>A modo de receta de cocina, diré que haremos uso de:</p>
<ul>
<li>los comentarios condicionales de IE.</li>
<li>un poco de javascript no intrusivo.</li>
<li>css a gusto para condimentar.</li>
</ul>
<h2>Comentarios condicionales:</h2>
<p>Quizás porque la gente de Mircosoft sabe que su navegador deja mucho que desear, inventaron una forma fácil para que los desarrolladores podamos escribir código que sólo el IE pueda ver; lo hicieron en la forma de comentarios de HTML, pero con una estructura estándar que el IE leerá.</p>
<p>Haciendo uso de esta posibilidad, podemos agregar un archivo JavaScript externo, que sólo IE verá. Escribiendo el siguiente código dentro de la etiqueta head:</p>
<pre class="brush: xml; light: true; pad-line-numbers: 2; title: ; wrap-lines: false; notranslate">
&lt;!--[if IE]&gt;
    &lt;script type=&quot;text/javascript&quot; src=&quot;ruta_al_archivo_javascript.js&quot;&gt;&lt;/script&gt;
&lt;![endif]--&gt;
</pre>
<p>Los demás navegadores verán eso como parte de un comentario de HTML, y no cargarán el JS externo.</p>
<h2>Un poco de JS no intrusivo:</h2>
<p>A continuación, utilicé un poco de JavaScript para escribir contenido en el HTML. ¿No podría haber escrito el código HTML directamente dentro de la etiqueta body, utilizando los comentarios condicionales propios de IE? Sí, lo podría haber hecho, pero preferí utilizar JS porque no quería ensuciar el código HTML (ni siquiera con un &#8220;comentario&#8221;) con todo este asunto. Cada cual podrá sopesar qué le conviene, según el caso.</p>
<p>El código JS será algo así:</p>
<pre class="brush: jscript; light: true; pad-line-numbers: 2; title: ; wrap-lines: false; notranslate">
// definir la funcion escribirCartelIE:
function escribirCartelIE() {
    // chequea que funcione el control del DOM desde JS:
    if (!document.getElementsByTagName){
        return;
    }
    // crear una referencia al body:
    var body_element = document.body;
    // modificar el contenido del body, agregándole un poco de HTML al principio:
    body_element.innerHTML = '&lt;div id=&quot;cartel_ie&quot;&gt;&lt;p&gt;Ups! Est&amp;amp;aacute;s utilizando Internet Explorer.&lt;/p&gt;&lt;p&gt;El &lt;strong&gt;Microsoft Internet Explorer&lt;/strong&gt; es un navegador web inseguro, inc&amp;amp;oacute;modo y cuya habilidad para mostrar correctamente las p&amp;amp;aacute;ginas web deja mucho que desear. Por fortuna, no es el &amp;amp;uacute;nico navegador que existe en el mercado. Te recomiendo que pruebes alguno de los siguientes navegadores:&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;a href=&quot;http://www.mozilla.com&quot;&gt;Mozilla Firefox&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;http://www.google.com/chrome&quot;&gt;Google Chrome&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;http://www.apple.com/safari/&quot;&gt;Apple Safari&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;http://www.opera.com&quot;&gt;Opera&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;' + body_element.innerHTML;
}
// hacer todo cuando se cargue el HTML:
window.onload = escribirCartelIE;
</pre>
<p>Desde ya, el mensaje puede ser otro. Estoy seguro de que tendrán más imaginación que yo a la hora de redactar el texto.</p>
<p>Fíjense que no incluí código JS en el html. Recuerden que es siempre conveniente mantener separado el contenido (HTML), de la presentación (CSS) y del comportamiento (JS).</p>
<h2>CSS a gusto:</h2>
<p>Cuando el IE termine de cargar la página, ejecutará la función escribirCartelIE, que modificará el contenido del HTML. A partir de ese momento, el HTML literalmente tendrá nuevos elementos: un div con id cartel_ie y su contenido.</p>
<p>Las órdenes de cómo deben presentarse estos elementos, pueden estar junto con los demás selectores, en el archivo CSS que se esté usando. Esto no afecta al resto del contenido del CSS. Los navegadores que no tengan ese elemento en el HTML, no aplicarán esas órdenes del CSS.</p>
<p>Aquí, a modo de ejemplo, el código CSS que se está utilizando en este sitio:</p>
<pre class="brush: css; light: true; pad-line-numbers: 2; title: ; wrap-lines: false; notranslate">
/* css para IE */
#cartel_ie {
    width: 428px;
    padding: 10px;
    border: 1px dotted #F0F;
    font: 13px/1.5em Georgia, &quot;Times New Roman&quot;, Times, serif;
    margin: 10px auto 5px 249px;
}
#cartel_ie .titulo {
    font: 16px &quot;Courier New&quot;, Courier, mono;
    color: #F0F;
}
</pre>
<p>¡Los invito a hacer una movida similar en sus sitios web personales! Un pequeño banner no basta.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.lucasmourelle.com.ar/2010/explorer-go-home/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
	</channel>
</rss>

