<?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>Ya he aprendido otra cosa :D &#187; Desarrollo web</title>
	<atom:link href="http://www.aureoares.es/category/desarrollo-web/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.aureoares.es</link>
	<description>por Áureo Ares</description>
	<lastBuildDate>Thu, 17 Jul 2014 15:48:10 +0000</lastBuildDate>
	<language>es-ES</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
		<item>
		<title>Meta información en WordPress: título y descripción.</title>
		<link>http://www.aureoares.es/titulo-y-descripcion-en-wordpress/</link>
		<comments>http://www.aureoares.es/titulo-y-descripcion-en-wordpress/#comments</comments>
		<pubDate>Wed, 16 Jul 2014 09:43:38 +0000</pubDate>
		<dc:creator><![CDATA[Áureo Ares]]></dc:creator>
				<category><![CDATA[Desarrollo web]]></category>
		<category><![CDATA[Wordpress]]></category>

		<guid isPermaLink="false">http://www.aureoares.es/?p=151</guid>
		<description><![CDATA[Título y meta-descripción personalizados en Wordpress. Aprende a modificar directamente el tema que uses para añadir funcionalidades sin sobrecargar de plugins el blog.]]></description>
				<content:encoded><![CDATA[<p>La sobrecarga de plugins termina siendo un problema en muchos sitios web basados en cualquier gestor de contenidos, no sólo en WordPress. Es común recurrir a ellos para realizar tareas que en realidad no necesitan un plugin.</p>
<p>Por eso quería traer algunos ejemplos de cómo conseguir lo que necesitamos realizando algunas modificaciones directamente en nuestra plantilla de WordPress.<span id="more-151"></span></p>
<p>Uno de los ámbitos que más suelen preocupar y que más tiende a hacer un uso intensivo de plugins es el SEO. Aún no sé si escribiré artículos más avanzados, pero de momento empezaremos por lo básico: título y descripción de las páginas.</p>
<h2>¿Qué necesitamos?</h2>
<p>Esto no va a ser una clase de SEO, de modo que supondremos que ya sabemos cómo escribir y escoger los textos para las distintas partes de cada página.</p>
<p>Lo que necesitamos es que cada página pueda mostrar un título y una descripción diferentes. Por ejemplo, hay montones de plantillas que utilizan la misma descripción para todas las páginas del blog (la descripción del blog, configurada en Ajustes &gt; Generales) o directamente no ponen descripción en ninguna página salvo la principal.</p>
<h2>¿Cómo lo hacemos?</h2>
<p>Con el título lo tenemos fácil, sobre todo porque seguramente la plantilla en cuestión ya lo esté haciendo bien (o más o menos bien). Mi método suele ser el siguiente:</p><pre class="crayon-plain-tag">&lt;title&gt;
&lt;?php
	if(is_home() or is_front_page())
	{
		$site_name = get_bloginfo('name', 'display');
		echo $site_name;
	}
	else
	{
		wp_title('', True, 'right');
	}
?&gt;
&lt;/title&gt;</pre><p>A veces puede ser suficiente con utilizar la función <a title="Función wp_title en la documentación oficial de WordPress" href="http://codex.wordpress.org/Function_Reference/wp_title" target="_blank">wp_title</a>, pero en muchos casos aparecerá un título en blanco en la página principal.</p>
<p>Otro modo de hacer lo mismo pero más &#8220;elegante&#8221; sería añadir un filtro a wp_title:</p><pre class="crayon-plain-tag">function filter_wp_title($title)
{
	if(is_home() or is_front_page())
	{
		$site_name = get_bloginfo('name', 'display');
		return $site_name;
	}
	return $title;
}
add_filter('wp_title', 'filter_wp_title');</pre><p>Pero personalmente prefiero dejar el fichero functions.php lo más limpio posible. Manías.</p>
<p>El resultado de la función wp_title es predecible (títulos de artículos, nombres de categorías&#8230;) y suele ser suficiente. En caso de querer algo muy sofisticado y completamente diferente a lo habitual, con las herramientas anteriores se puede hacer casi de todo.</p>
<p>Con la descripción tendremos que ser un poco más creativos. Mi opción favorita para esto son los &#8220;campos personalizados&#8221; que WordPress permite añadir tanto a los artículos como a las páginas.</p>
<p>Creo un campo personalizado llamado &#8220;meta_description&#8221; y lo añado en cada nueva página. Para los artículos, el propio WordPress permite añadir un &#8220;extracto&#8221;, que por alguna razón no se suele utilizar pero puede ser muy útil. WordPress también permite dar descripciones a las categorías.</p>
<p>De modo que para la página principal utilizo la descripción del blog, para las categorías su propia descripción, para los artículos el extracto y para las páginas el campo personalizado &#8220;meta_description&#8221;.</p>
<p>Todo esto traducido a código sería algo así:</p><pre class="crayon-plain-tag">$meta_description = '';
	if(is_home() or is_front_page())
	{
		$meta_description = get_bloginfo('description', 'display');
	}
	elseif(is_single() or is_page())
	{
		if(has_excerpt()) $meta_description = get_the_excerpt();
		else $meta_description = get_post_meta(get_the_ID(), 'meta_description', True);
	}
	elseif(is_category())
	{
		$meta_description = category_description();
	}
	if($meta_description)
	{ 
		$meta_description = strip_tags($meta_description);
		echo '&lt;meta name="description" content="'.$meta_description.'" /&gt;'; 
	}</pre><p>En los artículos sin extracto se intentará utilizar el campo personalizado igual que en las páginas.</p>
<h2>¿Y las keywords?</h2>
<p>Me sorprende que a estas alturas aún se siga hablando de las &#8220;meta keywords&#8221; junto con el título y descripción. <strong>Simplemente no deberían usarse, al menos no como antes.</strong></p>
<p><a title="Artículo oficial de Google sobre la &quot;meta keywords&quot;." href="http://googlewebmastercentral.blogspot.com.es/2009/09/google-does-not-use-keywords-meta-tag.html" target="_blank">Este artículo de Google</a> (de Septiembre de 2009) deja bastante claro que en el mejor de los casos no sirven para nada y en el peor de los casos podría ser perjudicial. Desde el punto e vista de Google, claro.</p>
<p>Hasta la fecha no hay señales de que esto haya cambiado o vaya a cambiar, y personalmente no creo que otros buscadores den algún tipo de valor positivo a esta meta-información.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.aureoares.es/titulo-y-descripcion-en-wordpress/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Cómo escalar el contenido de un &#8220;canvas&#8221; en HTML5 sobre la marcha.</title>
		<link>http://www.aureoares.es/escalar-canvas-html5/</link>
		<comments>http://www.aureoares.es/escalar-canvas-html5/#comments</comments>
		<pubDate>Thu, 26 Jun 2014 16:31:33 +0000</pubDate>
		<dc:creator><![CDATA[Áureo Ares]]></dc:creator>
				<category><![CDATA[Desarrollo web]]></category>
		<category><![CDATA[Programación]]></category>

		<guid isPermaLink="false">http://www.aureoares.es/?p=117</guid>
		<description><![CDATA[Ejemplo de cómo podemos escalar los elementos de un Canvas en HTML5 según va cambiando el dibujo o el tamaño de la pantalla. Mantenemos el tamaño del dibujo adaptado al lienzo.]]></description>
				<content:encoded><![CDATA[<p>Cuando trabajas con canvas hay ocasiones en las que no tienes ni idea del tamaño que va a tener el &#8220;dibujo&#8221;.</p>
<p>Digamos que el contenido de tu canvas va cambiando. Si se hace más grande que el canvas pintarás fuera. Si se hace demasiado pequeño se verá ridículo con todo el espacio disponible alrededor. También puede ocurrir que en lugar de variar el tamaño del dibujo, sea el tamaño del canvas lo que cambie.<span id="more-117"></span></p>
<p>Hay técnicas básicas para escalar el contenido del canvas mediante CSS, pero sólo son útiles en casos muy concretos y sencillos.</p>
<p>Yo utilizo un método bastante sencillo pero que funciona muy bien:</p>
<ol>
<li>Coloco los elementos dentro del canvas con el tamaño que me convenga.</li>
<li>Mantengo una lista de &#8220;puntos clave&#8221; en el dibujo.</li>
<li>Calculo la escala óptima para que todos los puntos clave quepan dentro del canvas manteniendo el dibujo lo más grande posible.</li>
<li>Aplico la escala al dibujo.</li>
<li>Recoloco el dibujo, pegándolo a la esquina superior izquierda.</li>
<li>Cada vez que haya un cambio en el dibujo (o en el tamaño del canvas) habrá que recalcular la escala y mover de nuevo el dibujo a la esquina si es necesario.</li>
</ol>
<p>Se este modo el dibujo se ve siempre lo más grande posible.</p>
<p>Es importante tener claro que todos los elementos tendrán una doble representación. Por una parte tendremos las coordenadas y medidas &#8220;reales&#8221; que manejaremos internamente y por otra parte las que utilicemos para pintarlos al aplicar la escala.</p>
<h2>¿Por qué dos medidas diferentes?</h2>
<p>Supongamos que tenemos una línea que representa una pared que mide 4 metros. Por comodidad decidimos que vamos a tomar como referencia 1px = 1cm, de modo que tenemos una línea de 400px.</p>
<p>Si va recta desde la esquina superior izquierda hacia la derecha, la línea comenzará en las coordenadas (0/0) y terminará en (400/0). Internamente es mejor guardar las líneas como puntos así que nos guardamos esas dos coordenadas como representación de nuestra &#8220;pared&#8221;.</p>
<p>Pero el canvas que tenemos para dibujar es muy pequeño, digamos que de 200 x 200 píxeles. La escala a aplicar se ve claramente que es 0,5. Sin embargo, sólo aplicamos la escala en el momento de dibujar la línea, sin modificar las coordenadas reales del elemento.</p>
<p>De este modo conservamos los valores reales para otros usos y al mismo tiempo evitamos arrastrar pequeños errores de redondeo, ya que la escala se aplica siempre sobre el valor original en lugar de sobre valores que ya se han escalado anteriormente.</p>
<h2>Los puntos clave.</h2>
<p>Lo que suelo hacer es guardarme una lista con la posición de cada uno de los puntos que definen los extremos de los objetos. Los dos extremos de una línea, los vértices de un polígono, las 4 esquinas de una imagen&#8230;</p>
<p>Normalmente estos puntos sirven también para otros propósitos. Pero si no los necesito para nada más, otra opción es guardar solamente los puntos más extremos del dibujo ya que son los que usaremos para decidir la escala. En este caso tendremos que estar seguros de mantener los puntos actualizados si los elementos se mueven.</p>
<h2>La escala.</h2>
<p>La función para calcular la escala dependerá de cómo desarrollemos la aplicación, pero en general es muy fácil.</p>
<p>Tenemos que localizar los &#8220;bordes&#8221; del dibujo, que vienen a ser los valores máximos y mínimos de las coordenadas X e Y. Son 4 valores que delimitan el dibujo y pueden pertenecer a 4 puntos diferentes (el valor mínimo de X y de Y por ejemplo, no tienen por qué ser del mismo punto):</p>
<p><a href="http://www.aureoares.es/wp-content/uploads/canvas_max_min_coords.png"><img class="aligncenter size-full wp-image-121" src="http://www.aureoares.es/wp-content/uploads/canvas_max_min_coords.png" alt="Ejemplo de puntos que definen los bordes de un dibujo." width="350" height="255" /></a></p>
<p>Con los 4 valores encontrados, tendremos dos posibles escalas que calcular. El ancho del dibujo viene marcado por la distancia entre los valores mínimo y máximo de X. La relación entre el ancho del canvas y del dibujo nos da la escala óptima para el eje X, y lo mismo sucede con el alto para el eje Y.</p>
<p>Si no es necesario mantener la relación de aspecto en el dibujo podemos directamente aplicar la escala óptima a cada eje, de lo contrario nos quedaremos con la menor y aplicaremos la misma a los dos.</p>
<p>Por último sólo tenemos que mover todo el contenido del canvas para pegarlo a la esquina superior izquierda. Para ello calculamos la distancia entre la esquina superior izquierda (0/0 si no estamos dejando ningún margen) para ambos ejes y la restamos a la posición de todos los elementos.</p>
<p>En el caso de aplicar la misma escala a ambos ejes seguramente nos sobre espacio a un lado del canvas, así que podemos optar por centrar el dibujo en lugar de moverlo completamente a la esquina.</p>
<h2>El código:</h2>
<p>Podéis ver un ejemplo en el siguiente enlace: <a title="Ejemplo de ajuste de escala en Canvas." href="http://www.aureoares.es/demos/canvas_resize/index.html" target="_blank">Ejemplo de escala en canvas</a>.</p>
<p>Por comodidad está todo el código en la misma página, basta con ver el código fuente desde el navegador o guardarla y abrirla con un editor de texto.</p>

<!-- iframe plugin v.3.0 wordpress.org/plugins/iframe/ -->
<iframe src="http://www.aureoares.es/demos/canvas_resize/index.html" width="90%" height="500" scrolling="yes" class="iframe-class" frameborder="0"></iframe>

]]></content:encoded>
			<wfw:commentRss>http://www.aureoares.es/escalar-canvas-html5/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Exportando el catálogo de Prestashop a Mercamania.</title>
		<link>http://www.aureoares.es/exportando-el-catalogo-de-prestashop-a-mercamania/</link>
		<comments>http://www.aureoares.es/exportando-el-catalogo-de-prestashop-a-mercamania/#comments</comments>
		<pubDate>Mon, 26 May 2014 15:03:54 +0000</pubDate>
		<dc:creator><![CDATA[Áureo Ares]]></dc:creator>
				<category><![CDATA[Desarrollo web]]></category>
		<category><![CDATA[Programación]]></category>

		<guid isPermaLink="false">http://www.aureoares.es/?p=129</guid>
		<description><![CDATA[Módulo para Prestashop 1.5 que permite generar el fichero CSV de exportación para los catálogos de LeGuide, concretamente para la web de Mercamanía.]]></description>
				<content:encoded><![CDATA[<p>Los del grupo <a title="Web del grupo LeGuide (en inglés)" href="http://www.leguidegroup.com/" target="_blank">LeGuide</a> responden bastante bien en los servicios de pago, pero integrar tiendas con el servicio gratuito a partir de la información disponible en la web y el &#8220;manual&#8221; que ofrecen puede ser desesperante.<span id="more-129"></span></p>
<p>La interfaz para facilitar los datos de la empresa y la tienda es clara. El problema viene al generar el fichero CSV con los datos de los productos. Ni siquiera queda claro cómo se deben de llamar los campos y terminas a base de prueba y error, corrigiendo poco a poco las cosas que te dicen que están mal, en un castellano que se ve que no es su primer ni su segundo idioma. Al menos esa es mi experiencia con ellos.</p>
<p>Tras preparar un módulo de Prestashop (1.5, pero no creo que haya mucho problema en pasarlo a 1.6) he pensado en compartirlo por si alguien quiere usarlo o adaptarlo a sus necesidades.</p>
<p>Los campos exportados para cada producto son:</p>
<ul>
<li>Categoría: El nombre de la categoría principal del producto en la tienda.</li>
<li>Referencia interna: La referencia del producto en la tienda (no la del proveedor).</li>
<li>Título: El nombre del producto.</li>
<li>Descripción: La descripción corta del producto.</li>
<li>Precio: El precio del producto base, sin contar los atributos.</li>
<li>URL producto: La URL de la página del producto.</li>
<li>URL imagen: La URL de la imagen principal del producto.</li>
<li>Gastos de envío: Modificable en la configuración del módulo.</li>
<li>Disponibilidad: Todos los productos se marcan como disponibles ya que el módulo solo exporta los productos disponibles.</li>
<li>Plazo de entrega: Modificable en la configuración del módulo.</li>
<li>Garantía: Este campo es obligatorio que aparezca, pero lo dejamos siempre vacío.</li>
</ul>
<p>Es sencillito y se puede ampliar mucho, pero en mi caso es más que suficiente. Si alguien quiere usarlo es posible que necesite hacerle alguna modificación. Está probado con Mercamania, pero debería funcionar tal cual con el resto de servicios de LeGuide (Pikengo, choozen, dooyoo&#8230;).</p>
<p>Así es como se ve la pantalla de configuración:</p>
<p><a href="http://www.aureoares.es/wp-content/uploads/leguideexport.png"><img class="aligncenter size-full wp-image-133" src="http://www.aureoares.es/wp-content/uploads/leguideexport.png" alt="leguideexport" width="1425" height="756" /></a></p>
<p>Básicamente lo que hace es crear un CSV al vuelo al acceder a cualquiera de las URLs que aparecen al final, a partir de los parámetros configurados.</p>
<p>Está escrito siguiendo el estándar de codificación de <a title="Sitio oficial de módulos para Prestashop" href="http://addons.prestashop.com/" target="_blank">addons.prestashop.com</a> (que es diferente a mi estilo habitual) ya que hice el intento de publicarlo como si lo fuese a vender, para ver si pasaba el análisis técnico que hacen a los módulos (y lo pasó).</p>
<p>El módulo en cuestión lo podéis encontrar en <a title="Página del módulo en Google Code" href="https://code.google.com/p/prestashop-leguide-export/" target="_blank">Google Code</a>. Cualquier aportación es bienvenida.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.aureoares.es/exportando-el-catalogo-de-prestashop-a-mercamania/feed/</wfw:commentRss>
		<slash:comments>8</slash:comments>
		</item>
		<item>
		<title>Hack: Facebook nos trae el nuevo PHP&#8230; ¿o no?</title>
		<link>http://www.aureoares.es/hack-facebook-y-php/</link>
		<comments>http://www.aureoares.es/hack-facebook-y-php/#comments</comments>
		<pubDate>Mon, 31 Mar 2014 11:21:01 +0000</pubDate>
		<dc:creator><![CDATA[Áureo Ares]]></dc:creator>
				<category><![CDATA[Desarrollo web]]></category>
		<category><![CDATA[Programación]]></category>

		<guid isPermaLink="false">http://www.aureoares.es/?p=53</guid>
		<description><![CDATA[Primeras impresiones sobre Hack, el nuevo lenguaje de programación propuesto por Facebook y basado en PHP.]]></description>
				<content:encoded><![CDATA[<div id="attachment_69" style="width: 310px" class="wp-caption alignleft"><a href="http://www.aureoares.es/wp-content/uploads/hack_language.png"><img class="size-medium wp-image-69 " title="Logo Hack." src="http://www.aureoares.es/wp-content/uploads/hack_language-300x185.png" alt="hack_language" width="300" height="185" /></a><p class="wp-caption-text">Logotipo de Hack, el nuevo lenguaje de programación creado por Facebook y basado en PHP.</p></div>
<p>Hace poco que Facebook ha liberado su lenguaje de programación Hack, un nombre desafortunado para buscar en Google (prueba a buscar &#8220;hack code sample&#8221;).</p>
<p>Para echarle un vistazo rápido, el pequeño <a title="Tutorial de Hack en la web oficial" href="http://hacklang.org/tutorial/" target="_blank">tutorial (inglés)</a> que han preparado es un modo de empezar. Para empezar a probarlo más en serio se puede instalar una máquina virtual de <a title="Web oficial de Vagrant." href="http://www.vagrantup.com/" target="_blank">Vagrant (inglés)</a> con <a title="Web oficial de HHVM." href="http://hhvm.com/" target="_blank">HHVM (inglés)</a>. Googleando un poco se encuentran máquinas virtuales ya listas para utilizar.<span id="more-53"></span></p>
<p>En <a title="Documentación ofcicial de HHVM y Hack." href="http://docs.hhvm.com/" target="_blank">docs.hhvm.com</a> está toda la documentación sobre HHVM y Hack. De momento toda la documentación es en inglés, pero supongo que con el tiempo la irán traduciendo.</p>
<p>Ya hay montones de artículos por ahí enumerando las características y novedades del lenguaje (y se pueden leer en la web oficial o en el mismo índice del manual, no hace falta irse más lejos), así que me centraré en dos reflexiones que seguramente estaremos haciendo muchos ahora mismo:</p>
<h2>¿Vale la pena aprenderlo y utilizarlo?</h2>
<p>Si ya controlas PHP y comprendes los nuevos conceptos añadidos por Hack de trabajar con otros lenguajes, realmente hay poco que aprender salvo algunas reglas más de sintaxis. El resto es como en todos los lenguajes, usarlo lo suficiente como para aprender a &#8220;pensar en Hack&#8221; para sacarle el máximo partido.</p>
<p>Usarlo o no supongo que depende del punto de vista. Si quieres trabajar en Facebook, ya estás tardando :D. Creo que no se pierde nada por probarlo en una pequeña aplicación, aunque sólo sea por curiosidad. Pero para un proyecto serio me lo tendría que pensar.</p>
<p>Tiene desde luego un punto muy a favor: si Facebook lleva un tiempo utilizándolo, mal no debe funcionar. A esto se añaden todas las mejoras sobre PHP, que a simple vista parecen muy atractivas.</p>
<p>Sin embargo, hay que tener en cuenta un par de cosas. Supongamos que empiezas un proyecto nuevo y decides desarrollarlo con Hack. Supongamos también que dentro de dos años Facebook decide migrar a Python (por decir algo) y abandona el desarrollo de Hack y de HHVM. Como &#8220;la comunidad&#8221; no retome el proyecto y además lo haga bien (que puede pasar) vas a tener un problema.</p>
<p>También hay que tener en cuenta que HHVM y Hack están creados por Facebook para satisfacer sus necesidades específicas. Estas necesidades pueden coincidir con las tuyas o no.</p>
<h2>¿Hack va a sustituir a PHP?</h2>
<p>Pues no lo creo, al menos en mucho tiempo.</p>
<p>Supongamos por un momento que Hack es &#8220;superior&#8221; a PHP en todos los aspectos. Aunque fuese así, es muy difícil que los grandes frameworks y CMS se conviertan y mantengan dos versiones del software (Hack y PHP).</p>
<p>Por otra parte, el grueso de la comunidad de PHP está demasiado acostumbrado a buscar en Google cómo hacer X cosa en PHP y encontrar 40 implementaciones donde elegir. Por mucho que se pueda hablar de las bondades de PHP, su mejor carta es la enorme cantidad de código que ya hay escrito.</p>
<p>También es posible que con el tiempo PHP vaya adoptando características de Hack. Seguramente incluyendo el tipado gradual (la característica estrella de Hack) ya disuadiría a la mayoría de desarrolladores de &#8220;pasarse&#8221; a Hack, aunque no será lo que se dice una tarea fácil.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.aureoares.es/hack-facebook-y-php/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>¿De quién aprendo?</title>
		<link>http://www.aureoares.es/de-quien-aprendo/</link>
		<comments>http://www.aureoares.es/de-quien-aprendo/#comments</comments>
		<pubDate>Tue, 06 Jul 2010 18:44:00 +0000</pubDate>
		<dc:creator><![CDATA[Áureo Ares]]></dc:creator>
				<category><![CDATA[Desarrollo web]]></category>
		<category><![CDATA[Programación]]></category>

		<guid isPermaLink="false">http://www.aureoares.es/?p=9</guid>
		<description><![CDATA[Estaba preparando la siguiente clase de CSS para un amigo cuando he pensado: ¿Cuánto hace que no escribo en el blog? Estoy dando clases de desarrollo web a un amigo (y a mi padre, que ha aprovechado para apuntarse). Empezamos por HTML 4.01 (aunque tal vez debería haber ido directamente al XHTML) y me gustaría [&#8230;]]]></description>
				<content:encoded><![CDATA[<p>Estaba preparando la siguiente clase de <a href="http://www.w3.org/Style/CSS/">CSS</a> para un amigo cuando he pensado: ¿Cuánto hace que no escribo en el blog?</p>
<p>Estoy dando clases de desarrollo web a un amigo (y a mi padre, que ha aprovechado para apuntarse). Empezamos por <a href="http://www.w3.org/TR/html401/">HTML 4.01</a> (aunque tal vez debería haber ido directamente al <a href="http://www.w3.org/TR/xhtml1/">XHTML</a>) y me gustaría llegar al menos a lo más básico de bases de datos con MySQL, si esque no se me quedan por el camino.</p>
<p>La verdad es que conozco a muchas personas que desarrollan sitios web, desde páginas muy sencillas hasta complejas aplicaciones web, y por alguna razón las que (en mi opinión) lo hacen no sólo con mayor soltura, sino también con mayor corrección, son aquellas que han aprendido por sí mismas. De acuerdo, suena bastante raro viniendo de alguien que precisamente se encuentra enseñando a otras personas, pero es la verdad. Probablemente se deba a que los únicos que de verdad se leen las especificaciones y documentaciones oficiales son los autodidactas.<span id="more-9"></span></p>
<p>Yo personalmente prefiero leer la documentación completa en lugar de que alguien decida por mí qué partes son las que me interesan, y analizar qué es lo que más se utiliza (y si es bueno o no) leyendo código de otras personas.</p>
<p>En el caso concreto de HTML creo que la especificación se digiere bastante bien. Una vez leída y comprendida, si pasas a leer manuales y demás probablemente aprendas cómo los demás hacen cosas que no se te ocurrirían fácilmente, pero podrás distinguir quién hace las cosas bien y quién no. Es decir: sabrás de quién debes aprender. Bien es cierto que en este caso no estamos hablando exactamente de un estándar, sino de una recomendación del <a href="http://www.w3c.es/">W3C</a>, pero el mundo sería mucho más bonito si todos hiciésemos caso a estas buenas personas, y digan lo que digan creo que nadie me hará cambiar de opinión. Claro que hay otros casos en los que la especificación no es tan fácil de digerir (<a href="http://en.wikipedia.org/wiki/ECMAScript">ECMAScript</a> para mí fue un infierno), pero si uno sabe buscar siempre se encuentra algún punto por el que empezar.</p>
<p>Lo que quiero decir con todo esto es que cuando aprendes de otra persona, normalmente dependerá mucho de quién te enseñe, pero si decides aprender por ti mismo lo mejor es empezar siempre por la documentación oficial.</p>
<p>Los principales inconvenientes suelen ser el tiempo (generalmente es más rápido leer un manual que te explique lo que necesitas saber y deje de lado lo que sea prescindible) y el idioma (todos sabemos que en Internet la información de mayor calidad suele encontrarse en inglés) pero en este mundillo uno está prácticamente obligado a &#8220;aprender a aprender&#8221; (y a actualizarse) y al menos comprender el inglés escrito.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.aureoares.es/de-quien-aprendo/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
