<?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>Chuso! &#187; HTML</title>
	<atom:link href="http://chusete.es/category/desarrollo/html-desarrollo/feed/" rel="self" type="application/rss+xml" />
	<link>http://chusete.es</link>
	<description>A la tercera va la vencida</description>
	<lastBuildDate>Thu, 17 Nov 2011 19:44:13 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>Introducción a la programación Facebook II</title>
		<link>http://chusete.es/2011/09/16/introduccion-a-la-programacion-facebook-ii/</link>
		<comments>http://chusete.es/2011/09/16/introduccion-a-la-programacion-facebook-ii/#comments</comments>
		<pubDate>Fri, 16 Sep 2011 08:00:37 +0000</pubDate>
		<dc:creator>chusete</dc:creator>
				<category><![CDATA[desarrollo]]></category>
		<category><![CDATA[HTML]]></category>
		<category><![CDATA[javasctipt]]></category>
		<category><![CDATA[facebook]]></category>
		<category><![CDATA[facebook API]]></category>
		<category><![CDATA[insights]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[xfbml]]></category>

		<guid isPermaLink="false">http://chusete.es/?p=1139</guid>
		<description><![CDATA[Ok, el anterior artículo no estuvo mal; vimos una introducción conceptual a las piezas clave para la construcción de aplicaciones en Facebook. ¡Pero no llegamos a hacer nada! En este post vamos a construir algo sencillo, jugando con el SDK en JavaScript. Vamos a probar a mostrar algunos de los social plugins, usaremos Open Graph, y presentaremos [...]]]></description>
			<content:encoded><![CDATA[<p><img class="aligncenter size-full wp-image-1147" title="banner_fb2" src="http://chusete.es/wp-content/uploads/2011/09/banner_fb2.jpg" alt="" width="100%" /></p>
<p>Ok, el <a href="/2011/09/13/introduccion-a-la-programacion-en-facebook/">anterior artículo</a> no estuvo mal; vimos una introducción conceptual a las piezas clave para la construcción de aplicaciones en Facebook. ¡Pero no llegamos a hacer nada! En este post vamos a construir algo sencillo, jugando con el SDK en JavaScript. Vamos a probar a mostrar algunos de los social plugins, usaremos Open Graph, y presentaremos dos nuevas tecnologías: XFBML y Facebook Insights. ¡Al lío!</p>
<p><span id="more-1139"></span></p>
<h2>Paso 1 &#8211; Alojamiento para la aplicación</h2>
<p>Es responsabilidad del desarrollador buscar un alojamiento para su aplicación. Esto no suele ser un problema, ya que sirve cualquiera al que tengas acceso FTP. Sin embargo, desde el 1 de octubre de 2011 Facebook obliga a que las aplicaciones estén disponibles tanto por HTTP como por HTTPS.</p>
<p>Por lo pronto vamos a crear una carpeta llamada &#8220;/facebook&#8221; en el directorio raíz de la web, que será desde donde se acceda a nuestra aplicación.</p>
<div class="note">
<h3>Alojamiento gratuíto</h3>
<p>Desde el 15 de septiembre de 2011, Facebook ha llegado a un acuerdo con la compañía Heroku para ofrecer gratis un alojamiento reducido pero funcional para todo el que lo solicite. Queda fuera del alcance de esta guía explicar cómo utilizar este servicio. <a href="https://developers.facebook.com/blog/post/558/">Más información</a>.</p>
</div>
<h2>Paso 2 &#8211; Configurando la aplicación</h2>
<p>Ahora, accedemos a <a href="https://developers.facebook.com/">developers.facebook.com</a>, y de ahí vamos a la pestaña Aplicaciones. Seleccionamos la nuestra, y en el apartado de configuración pinchamos en &#8220;<em>Edit settings</em>&#8220;. En la parte inferior, tal como vimos en el anterior artículo, nos dan cuatro opciones para crear nuestra aplicación. Vamos a seleccionar Website e introducimos la URL completa con la que se accederá a nuestra aplicación. En mi caso, introduzco <a href="http://chusete.es/facebook">http://chusete.es/facebook</a>.</p>
<p><a href="http://chusete.es/wp-content/uploads/2011/09/Captura-de-pantalla-2011-09-16-a-las-06.03.58.png"><img class="aligncenter size-medium wp-image-1150" title="Captura de pantalla 2011-09-16 a la(s) 06.03.58" src="http://chusete.es/wp-content/uploads/2011/09/Captura-de-pantalla-2011-09-16-a-las-06.03.58-300x29.png" alt="" width="300" height="29" /></a></p>
<p>Pulsamos en <em>Guardar cambios</em>, y ya está. Ésta ha sido fácil <img src='http://chusete.es/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<h2>Paso 3 &#8211; Creando el esqueleto</h2>
<p>Ahora, en la carpeta /facebook de nuestro alojamiento web, vamos a crear un fichero llamado index.html con la estructura básica de un documento HTML. Además, añadiremos el código JavaScript que vimos en el anterior artículo que había que insertar para usar el SDK. Quedaría así el esqueleto:</p>
<pre name="code" class="html">&lt;!DOCTYPE html&gt;
&lt;html&gt;
&lt;head&gt;
    &lt;meta charset="UTF-8" /&gt;
    &lt;title&gt;Demo Facebook&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;
    &lt;h1&gt;Demo Facebook&lt;/h1&gt;

    &lt;div id="fb-root"&gt;&lt;/div&gt;
    &lt;script type="text/javascript" src="http://connect.facebook.net/es_ES/all.js"&gt;&lt;/script&gt;
    &lt;script type="text/javascript"&gt;
        FB.init({
            appId  : '256797284360192',
            status : true, // comprobar estado de login
            cookie : true, // habilitar cookies para permitir al servidor acceder a la sesión
            xfbml  : true, // renderizar código XFBML
            channelURL : 'http://chusete.es/facebook/channel.html', // fichero channel.html
            oauth  : true // habilita OAuth 2.0
        });
    &lt;/script&gt;
&lt;/body&gt;
&lt;/html&gt;</pre>
<div class="note">
<h3>Acerca de channelURL</h3>
<p>Si te fijas, verás que en la línea 18 hay una URL que apunta a channelURL. Este fichero tan sólo tendrá este contenido:</p>
<pre name="code" class="html">&lt;script src="http://connect.facebook.net/es_ES/all.js"&gt;&lt;/script&gt;</pre>
<p>Para saber más acerca de por qué es recomendable crear el fichero channel.html, consulta la documentación de la función <a href="https://developers.facebook.com/docs/reference/javascript/FB.init/">FB.init</a>.</p>
</div>
<p>Llegados a este punto, ya tenemos listo el esqueleto sobre el que construir una pequeña aplicación de demo. <a href="http://chusete.es/facebook/step3.html">Ver resultado del paso 3</a>.</p>
<h2>Paso 4 &#8211; Añadiendo Social Plugins (XFBML)</h2>
<p>Ya vimos que hay, ni más ni menos, que 10 social plugins. Vamos a insertar algunos a nuestra aplicación. Pero antes un poco de teoría. Hace tiempo, Facebook creó su propio lenguaje de marcado para poder insertar social plugins en nuestras aplicaciones. Hablamos del FBML (Facebook Markup Language). Para que pudierar interactuar con JavaScript, crearon FBJS; un dialecto de JavaScript para usarlo en conjunto con FBML dentro del espacio de Facebook. Sin embargo, desde el 11 de marzo de 2011, todo <a href="http://developers.facebook.com/blog/post/462">este conjunto de tecnologías ha quedado fuera de uso</a>. ¿Y qué hay en su lugar? Pues un sistema unificado para todas las aplicaciones, ya sean pestañas, aplicaciones en canvas, externas, etc., basado en tecnologías estándar: HTML, CSS y JavaScript. Mucho mejor, ¿verdad?</p>
<p>Para sustituir a FBML crearon XFBML, que es un sistema que, mediante etiquetas HTML estándar, permite definir Social Plugins. Por ejemplo, el botón &#8220;Me gusta&#8221; es algo tan sencillo como:</p>
<pre name="code" class="html">&lt;div data-send="false" data-width="450" data-show-faces="false"&gt;&lt;/div&gt;</pre>
<p>¿Cómo se hace para que ese código HTML se renderice como el Social Plugin &#8220;Me gusta&#8221;? Hay dos opciones:</p>
<ol>
<li>Si en el código de inicialización del SDK JavaScript (el método FB.init que hemos invocado en index.html) tenemos a true el campo xfbml, entonces se renderizarán todas las etiquetas XFBML automáticamente.</li>
<li>En caso contrario, podremos renderizarlas invocando a <a href="http://developers.facebook.com/docs/reference/javascript/FB.XFBML.parse/">FB.XFBML.parse</a>.</li>
</ol>
<p>Vale, ahora sólo nos queda saber cómo averiguar el código HTML que define cada Social Plugin. Accede a la página de <a href="http://developers.facebook.com/docs/plugins/">Social Plugins</a>, elige el que quieras usar, completa el formulario con los valores que desees (si es que el plugin te da esa opción), y finalmente pulsa sobre el botón <em>Get Code</em>. ¡Pero ojo! El código que te genera incluye tanto la inicialización del SDK, como el código HTML que define el plugin. Como nosotros ya tenemos el código del SDK, sólo tendremos que copiar el código HTML del plugin.</p>
<p>Por ejemplo, vamos a insertar un plugin <a href="http://developers.facebook.com/docs/reference/plugins/live-stream/">Live Stream</a> en nuestra demo. Al pulsar en <em>Get Code</em> obtenemos lo siguiente:</p>
<p><a href="http://chusete.es/wp-content/uploads/2011/09/Captura-de-pantalla-2011-09-16-a-las-04.04.58.png"><img class="aligncenter size-medium wp-image-1140" title="Captura de pantalla 2011-09-16 a la(s) 04.04.58" src="http://chusete.es/wp-content/uploads/2011/09/Captura-de-pantalla-2011-09-16-a-las-04.04.58-300x179.png" alt="" width="300" height="179" /></a></p>
<p>Copiamos sólo el código HTML:</p>
<pre name="code" class="html">&lt;div data-event-app-id="282078738484719" data-width="400" data-height="500" data-always-post-to-friends="false"&gt;&lt;/div&gt;</pre>
<p>Con lo que ya tendríamos un chat en nuestra aplicación web, con el siguiente aspecto:</p>
<p><a href="http://chusete.es/facebook/step4.html"><img class="aligncenter size-full wp-image-1141" title="Captura de pantalla 2011-09-16 a la(s) 04.17.38" src="http://chusete.es/wp-content/uploads/2011/09/Captura-de-pantalla-2011-09-16-a-las-04.17.38.png" alt="" width="430" height="594" /></a></p>
<p><a href="http://chusete.es/facebook/step4.html">Ver resultado del paso 4</a>.</p>
<h2>Paso 5 &#8211; Botón &#8220;Me gusta&#8221; y Open Graph</h2>
<p>Del mismo modo que hemos insertado un plugin Live Stream, ahora vamos a insertar el famoso botón &#8220;Me gusta&#8221;. Como vimos, para obtener el código XFBML debemos acceder a la página del plugin, completar el formulario, obtenemos su código, y lo copiamos. Siguiendo esos pasos obtendrás algo similar a esto (en función de cómo complementes el formulario):</p>
<pre name="code" class="html">&lt;div data-send="false" data-width="450" data-show-faces="false"&gt;&lt;/div&gt;</pre>
<p>Con solo pegar ese código al documento HTML, ya tendremos el botón en nuestra página. ¡Pero un momento! Como vimos en la primera parte, existe una tecnología llamada Open Graph que convierte un documento web en todo un objeto social, referenciable y al que como administradores podemos seguirle el rastro. Pues bien, vamos a hacer esto. En la propia página del plugin del botón &#8220;Me gusta&#8221; tenemos un formulario que nos permite generar algunos códigos Open Graph -aunque generarlos a mano es algo trivial. En mi caso, lo he dejado así:</p>
<pre name="code" class="html">&lt;meta property="og:title" content="Página demo de Facebook" /&gt;
&lt;meta property="og:type" content="website" /&gt;
&lt;meta property="og:description" content="Ésta es la página de demo de la segunda parte de la introducción a programación en Facebook de chusete.es" /&gt;
&lt;meta property="og:url" content="http://chusete.es/facebook/index.html" /&gt;
&lt;meta property="og:image" content="http://chusete.es/facebook/logo.png" /&gt;
&lt;meta property="og:site_name" content="chuso!" /&gt;
&lt;meta property="fb:admins" content="1048522537" /&gt;</pre>
<p>Ahora, cuando alguien comparta esta página en Facebook, ésa será la información que se mostrará por defecto. Por ejemplo, en este caso quedaría así:</p>
<p><a href="http://chusete.es/wp-content/uploads/2011/09/Captura-de-pantalla-2011-09-16-a-las-04.45.32.png"><img class="aligncenter size-medium wp-image-1142" title="Captura de pantalla 2011-09-16 a la(s) 04.45.32" src="http://chusete.es/wp-content/uploads/2011/09/Captura-de-pantalla-2011-09-16-a-las-04.45.32-300x154.png" alt="" width="300" height="154" /></a></p>
<p><a href="chusete.es/facebook/index.html">Ver resultado final</a>.</p>
<h2>Paso 6 &#8211; Página para administradores e Insights</h2>
<p>Pero hay más. Junto con la información Open Graph hemos insertado una etiqueta más, en la que el atributo property tiene como valor &#8220;fb:admins&#8221;. Ese campo contiene el id de nuestro usuario, de manera que así constaremos como el propietario de la página. ¿De qué nos sirve esto? Pues en resumen, para dos cosas. Fíjate en cómo queda el botón &#8220;Me gusta&#8221; cuando <strong>tú</strong> lo visualizas:</p>
<p><img class="aligncenter size-full wp-image-1143" title="Captura de pantalla 2011-09-16 a la(s) 05.14.40" src="http://chusete.es/wp-content/uploads/2011/09/Captura-de-pantalla-2011-09-16-a-las-05.14.40.png" alt="" width="416" height="40" /><br />
Interesante&#8230; Hay un link a &#8220;Página para administradores&#8221; y a &#8220;Estadísticas&#8221;. ¿Qué son?</p>
<h3>Página para administradores</h3>
<p>Cuando alguien pulse sobre el botón &#8220;Me gusta&#8221;, se creará un nuevo panel de administración con el que podrás comunicarte con tus &#8220;likers&#8221; (aquellos a los que les ha gustado tu publicación). Este panel estará disponible desde tu <a href="http://www.facebook.com/bookmarks/pages">lista de Facebook Pages</a>. Y lo más interesante: todo lo que publiques en el muro de esta página, aparecerá en las lista de novedades de los usuarios a los que les gustó tu publicación.</p>
<p><a href="http://chusete.es/wp-content/uploads/2011/09/Captura-de-pantalla-2011-09-16-a-las-05.17.26.png"><img class="aligncenter size-medium wp-image-1144" title="Captura de pantalla 2011-09-16 a la(s) 05.17.26" src="http://chusete.es/wp-content/uploads/2011/09/Captura-de-pantalla-2011-09-16-a-las-05.17.26-300x190.png" alt="" width="300" height="190" /></a></p>
<h3>Insights</h3>
<p>Y en segundo lugar, tendrás acceso a las estadísticas en <a href="www.facebook.com/insights/">Facebook Insights</a> (¡otra más de las tecnologías de Facebook!). Básicamente, es un panel de análisis de tráfico web, similar a Google Analytics. Puedes acceder desde el enlace &#8220;Estadísticas&#8221; que acompaña al botón &#8220;Me gusta&#8221;, pero es preferible reclamar la propiedad de tu dominio ante Facebook, para de ese modo tener acceso completo a todo lo que ocurre con tu página. Para ello, accedemos a la página principal de Insights, y pulsamos sobre el botón <img class="alignnone size-full wp-image-1145" title="Captura de pantalla 2011-09-16 a la(s) 05.25.00" src="http://chusete.es/wp-content/uploads/2011/09/Captura-de-pantalla-2011-09-16-a-las-05.25.00.png" alt="" width="172" height="25" />. Mete el dominio de tu web, copia el código &#8220;meta&#8221; que te ha generado, y pégalo en la página principal del dominio:</p>
<p><a href="http://chusete.es/wp-content/uploads/2011/09/Captura-de-pantalla-2011-09-16-a-las-05.25.56.png"><img class="aligncenter size-medium wp-image-1146" title="Captura de pantalla 2011-09-16 a la(s) 05.25.56" src="http://chusete.es/wp-content/uploads/2011/09/Captura-de-pantalla-2011-09-16-a-las-05.25.56-300x237.png" alt="" width="300" height="237" /></a>Finalmente pulsa en Get Insights y ya habrá finalizado el proceso de alta en Facebook Insights. Ahora, cada vez que accedas al dashboard de Insights, podrás consultar qué historias de tu página se han compartido o han gustado en Facebook.</p>
<p>Para más información, consulta la documentación de <a href="http://developers.facebook.com/docs/insights/">Facebook Insights</a>.</p>
<h2>Resumen</h2>
<p>En la primera parte dimos un repaso a las principales tecnologías que involucran el desarrollo de aplicaciones Facebook, y dimos de alta un nuevo perfil de aplicación.</p>
<p>Hoy, hemos visto cómo crear una aplicación en una web externa a Facebook vinculada a nuestro alojamiento. Hemos creado un documento HTML con el código de incialización del SDK JavaScript. Hemos conocido una tecnología de Facebook -XFBML- que nos permite crear plugins de una forma muy sencilla. Como ejemplo, hemos creado un plugin de tipo Live Stream, y otro con el botón &#8220;Me gusta&#8221;. También hemos añadido los códigos Open Graph y hemos visto su utilidad. Finalmente, hemos visto cómo interactuar con los usuarios a los que les gustan nuestras publicaciones, y cómo explorar las estadísticas de uso de nuestro sitio por los usuarios de Facebook.</p>
<p>&nbsp;
<div class="tweetmeme_button" style="float: left; margin-right: 10px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fchusete.es%2F2011%2F09%2F16%2Fintroduccion-a-la-programacion-facebook-ii%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fchusete.es%2F2011%2F09%2F16%2Fintroduccion-a-la-programacion-facebook-ii%2F&amp;source=chuso&amp;style=normal&amp;service=bit.ly&amp;service_api=R_86054639b9f90148987197dfdc061697&amp;b=2" height="61" width="50" /><br />
			</a>
		</div>
]]></content:encoded>
			<wfw:commentRss>http://chusete.es/2011/09/16/introduccion-a-la-programacion-facebook-ii/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Google ya indexa SVG, mientras IE9 mejora su implementación</title>
		<link>http://chusete.es/2010/09/01/google-ya-indexa-svg-mientras-ie9-mejora-su-implementacion/</link>
		<comments>http://chusete.es/2010/09/01/google-ya-indexa-svg-mientras-ie9-mejora-su-implementacion/#comments</comments>
		<pubDate>Wed, 01 Sep 2010 17:35:57 +0000</pubDate>
		<dc:creator>chusete</dc:creator>
				<category><![CDATA[desarrollo]]></category>
		<category><![CDATA[HTML]]></category>
		<category><![CDATA[software]]></category>
		<category><![CDATA[google]]></category>
		<category><![CDATA[ie9]]></category>
		<category><![CDATA[svg]]></category>

		<guid isPermaLink="false">http://chusete.es/?p=832</guid>
		<description><![CDATA[SVG, el estándar del w3c para gráficos vectoriales, está dando mucho de qué hablar. Hasta ahora su uso no ha sido muy extendido, e incluso muchos diseñadores y programadores web ni siquiera lo conocen. Es posible que esto cambie poco a poco. Estos días ha habido dos importantes novedades que seguro ayudarán a impulsar esta [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://es.wikipedia.org/wiki/SVG">SVG</a>, el estándar del w3c para gráficos vectoriales, está dando mucho de qué hablar. Hasta ahora su uso no ha sido muy extendido, e incluso muchos diseñadores y programadores web ni siquiera lo conocen. Es posible que esto cambie poco a poco.</p>
<p><a href="http://www.inkscape.org/showcase/branding/index.php?lang=en"><img class="alignnone" title="Ejemplo en SVG" src="http://www.inkscape.org/showcase/branding/suse_studio_fun_inkscape.png" alt="Ejemplo en SVG" width="400" height="300" /></a></p>
<p>Estos días ha habido dos importantes novedades que seguro ayudarán a impulsar esta tecnología.</p>
<h2>Google ahora indexa SVG</h2>
<p>Por una parte, desde hoy Google <a href="http://googlewebmastercentral.blogspot.com/2010/08/google-now-indexes-svg.html">indexa los ficheros SVG</a>, tanto si está empotrado dentro de un documento HTML como si está en su propio fichero. Podemos ver ejemplos de cómo funcionan estas búsquedas: <a href="http://www.google.com/search?q=sitemap+site:fastsvg.com">Ejemplo 1</a> y <a href="http://www.google.com/search?q=HideShow+site%3Asvg-whiz.com">Ejemplo 2</a>. De modo que ya cuentan con <a href="http://www.google.com/support/webmasters/bin/answer.py?hl=en&amp;answer=35287">un tipo de fichero más</a> a sumar a su extensa lista.</p>
<p>Una de las ventajas más evidentes es que esto impulsará el uso de SVG respecto a Flash. Recordemos que una de las principales funcionalidades de Flash es poder emplear gráficos vectoriales y animaciones en la web, cosa que también se puede realizar con SVG y JavaScript. Salvo que en el caso de Flash, la indexación de contenidos siempre ha sido bastante pobre. Esto con SVG parece que no pasará <img src='http://chusete.es/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<h2>IE9 se hace amigo de SVG</h2>
<p>Y la segunda noticia viene de mano de Microsoft. Precisamente ayer publicaban en el IEBlog un artículo animándonos a que nos <a href="http://blogs.msdn.com/b/ie/archive/2010/08/31/getting-ready-for-svg-open.aspx">preparemos para SVG</a>. A la vista de los resultados, han hecho una estupenda implementación de este estándar en su próximo navegador. Muestran además cómo se comporta, además de algunas pruebas en distintos navegadores.</p>
<p>Es de agradecer también que publiquen ejemplos de uso. No puedo evitar recordar mis inicios con la informática, cuando dibujaba polígonos en Basic o indagaba con la aplicación de renderizado 3d <a href="http://en.wikipedia.org/wiki/POV-Ray">POV-Ray</a>. Afortundamente, contamos con <a href="http://www.inkscape.org/">fantásticas aplicaciones</a> para dibujar nuestros gráficos en SVG.</p>
<p>Recordemos que IE9 no saldrá hasta finales de 2010, a pesar de que este mes veremos la primera beta.
<div class="tweetmeme_button" style="float: left; margin-right: 10px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fchusete.es%2F2010%2F09%2F01%2Fgoogle-ya-indexa-svg-mientras-ie9-mejora-su-implementacion%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fchusete.es%2F2010%2F09%2F01%2Fgoogle-ya-indexa-svg-mientras-ie9-mejora-su-implementacion%2F&amp;source=chuso&amp;style=normal&amp;service=bit.ly&amp;service_api=R_86054639b9f90148987197dfdc061697&amp;b=2" height="61" width="50" /><br />
			</a>
		</div>
]]></content:encoded>
			<wfw:commentRss>http://chusete.es/2010/09/01/google-ya-indexa-svg-mientras-ie9-mejora-su-implementacion/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>10 errores comunes de programadores web novatos</title>
		<link>http://chusete.es/2010/07/22/10-errores-comunes-de-programadores-web-novatos/</link>
		<comments>http://chusete.es/2010/07/22/10-errores-comunes-de-programadores-web-novatos/#comments</comments>
		<pubDate>Thu, 22 Jul 2010 21:53:33 +0000</pubDate>
		<dc:creator>chusete</dc:creator>
				<category><![CDATA[CSS]]></category>
		<category><![CDATA[desarrollo]]></category>
		<category><![CDATA[HTML]]></category>
		<category><![CDATA[css]]></category>
		<category><![CDATA[errores]]></category>
		<category><![CDATA[html]]></category>
		<category><![CDATA[novatos]]></category>
		<category><![CDATA[sitepoint]]></category>

		<guid isPermaLink="false">http://chusete.es/?p=777</guid>
		<description><![CDATA[Hace poco comentaba que en SitePoint habían publicado una lista de los 10 errores comunes de diseñadores web novatos. Pues recientemente publicaron un nuevo artículo, pero esta vez sobre los programadores web. Aquí el resumen: Ignorar los estándares web. Destacan el uso incorrecto del DOCTYPE, uso de etiquetas antiguas de HTML, o no validar el [...]]]></description>
			<content:encoded><![CDATA[<p>Hace poco comentaba que en SitePoint habían publicado una lista de los <a href="http://chusete.es/2010/06/15/10-errores-comunes-de-disenadores-web-novatos/">10 errores comunes de diseñadores web novatos</a>. Pues recientemente publicaron un <a href="http://www.sitepoint.com/blogs/2010/07/15/top-10-web-development-mistakes/">nuevo artículo</a>, pero esta vez sobre los programadores web. Aquí el resumen:</p>
<ol>
<li>Ignorar los estándares web. Destacan el uso incorrecto del DOCTYPE, uso de etiquetas antiguas de HTML, o no validar el código.</li>
<li>Delegar en software WYSIWYG. Muy acertadamente indican que, con este tipo de software uno se centra en la visualización, y no en la estructura.</li>
<li>Descuidar aspectos semánticos. El ejemplo que ponen es impagable: El programador novato, si quiere escribir un titular, lo pondrá encerrado en la etiqueta &lt;h1&gt;. Pero posteriormente es posible que &#8220;involucione&#8221;, y lo diseñe con divs anidados y estilos CSS.</li>
<li>Nombres de clases de estilos. ¿Qué tal una clase como &#8220;columna-izquierda-50px&#8221;? ¿Y si en un futuro el ancho cambia?</li>
<li>Prueba de navegadores tardía. Invitan al programador novato a revisar su página en varios navegadores desde el primer momento, y no dejarlo para el final. Personalmente, en este punto no estoy de acuerdo; Siempre he preferido desarrollar para una plataforma, y al final, corregir errores de las demás.</li>
<li>Ignorar la portabilidad. Destacan enlaces a rutas absolutas, conexiones a bases de datos sin centralizar, o realizar suposiciones sobre el entorno de ejecución.</li>
<li>Descuidar el ancho de banda. Poco más que añadir&#8230; En local un fichero de unos megas es irrelevante, no así en Internet.</li>
<li>Pésima accesibilidad. No consiste sólo en seguir unas reglas mecánicas de código, sino en tener en cuenta aspectos funcionales como poder consultar la web sin javascript, sin flash, en un móvil, o sin ratón.</li>
<li>Despreciar al SEO. Me encanta la definición que hacen del SEO: <em>Es una mezcla de psicoanálisis, complejidad técnica, y misteriosas artes oscuras</em>. En cualquier caso, indican que el desarrollador novato, dejará el SEO para el departamento de marketing una vez lanzada la página. Para entonces, ya será demasiado tarde.</li>
<li>Actualizaciones erróneas. Destacan la práctica de muchos programadores web de tener durante horas una página web en mantenimiento, cuando suele ser una tarea que no debería llevar más de unos minutos. En este punto tampoco estoy de acuerdo. Muchas actualizaciones tan sólo consisten en añadir documentos html, imágenes, y actualizar hojas de estilo y javascript. Sin embargo, hay aplicaciones web que requieren mucho más que eso a la hora de actualizar, por ejemplo cuando cambiamos la estructura de una base de datos, y se deben reestablecer todos los índices.</li>
<li>Como bonus, dejan una lista de otros 20 errores.</li>
</ol>
<p>En general, este artículo me ha parecido bastante más pobre que el anterior. Sobre todo, por lo mucho que se centra en la capa de presentación HTML, que dista mucho de ser coto exclusivo de los programadores web. En ningún punto se ha mencionado ni una sola práctica o error relacionada con la programación (Salvo el punto 6, donde sugieren no incluir <em>hard coded</em> la conexión a base de datos).
<div class="tweetmeme_button" style="float: left; margin-right: 10px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fchusete.es%2F2010%2F07%2F22%2F10-errores-comunes-de-programadores-web-novatos%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fchusete.es%2F2010%2F07%2F22%2F10-errores-comunes-de-programadores-web-novatos%2F&amp;source=chuso&amp;style=normal&amp;service=bit.ly&amp;service_api=R_86054639b9f90148987197dfdc061697&amp;b=2" height="61" width="50" /><br />
			</a>
		</div>
]]></content:encoded>
			<wfw:commentRss>http://chusete.es/2010/07/22/10-errores-comunes-de-programadores-web-novatos/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
	</channel>
</rss>

