<?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>Daniel Nabil: diseño web, Mallorca &#187; Blog</title>
	<atom:link href="http://www.danielnabil.com/seccion/blog/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.danielnabil.com</link>
	<description>Estudio de diseño web y gráfico en Mallorca</description>
	<lastBuildDate>Thu, 26 Jan 2012 09:49:18 +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>Cómo personalizar la nueva barra de herramientas en WordPress 3.3</title>
		<link>http://www.danielnabil.com/blog/como-personalizar-barra-herramientas-wordpress-3-3/</link>
		<comments>http://www.danielnabil.com/blog/como-personalizar-barra-herramientas-wordpress-3-3/#comments</comments>
		<pubDate>Mon, 16 Jan 2012 00:24:38 +0000</pubDate>
		<dc:creator>Daniel</dc:creator>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[WordPress]]></category>

		<guid isPermaLink="false">http://www.danielnabil.com/?p=557</guid>
		<description><![CDATA[La actualización a WordPress 3.3 incluye, entre otras cosas, un cambio importante en el area de administración, una nueva barra de herramientas (Toolbar) que combina la barra de administración de la versión 3.1 (o Admin bar) y la cabecera. Desde esta barra podemos acceder rápidamente a algunas páginas internas e ... <a href="http://www.danielnabil.com/blog/como-personalizar-barra-herramientas-wordpress-3-3/" class="seguir"><img src="/wp-content/themes/dn2/img/mas.png" alt="" /></a>]]></description>
			<content:encoded><![CDATA[<p>La actualización a <a href="http://codex.wordpress.org/Version_3.3">WordPress 3.3</a> incluye, entre otras cosas, un cambio importante en el area de administración, una nueva barra de herramientas (<em>Toolbar</em>) que combina la barra de administración de la versión 3.1 (o <em>Admin bar</em>) y la cabecera. Desde esta barra podemos acceder rápidamente a algunas páginas internas e información, como accesos para crear nuevo contenido, comentarios o actualizaciones disponibles.</p>
<p>Esta nueva barra se puede personalizar. Es un lugar perfecto para añadir elementos, ahora llamados nodos (<em>nodes</em>), que pueden contener otros nodos agrupados en submenús, como enlaces personalizados, accesos directos, etc., aunque para personalizarla necesitaremos editar algo de código.</p>
<p>En principio no se recomienda eliminarla por completo (ver nota ampliada más abajo). Es mejor ajustarla a nuestras necesidades a través de reglas CSS y enlaces personalizados.</p>
<p>Vamos a ver algunos ejemplos para conseguirlo:</p>
<h3>Cómo eliminar elementos de la barra de herramientas</h3>
<p>Para desactivar alguno de los elementos o nodos que WordPress 3.3 instala por defecto tenemos que crear una nueva función especificando qué enlaces queremos suprimir. El código, como siempre, lo podemos añadir al archivo <code>functions.php</code> de nuestro tema activo o añadirlo a un plugin que nos ayude a ajustar esta funcionalidad.</p>
<p>Utilizando el código del siguiente ejemplo tal como está, nos quedará una barra totalmente vacía (a excepción del nombre de la web). Para personalizar los elementos que queremos conservar basta comentar (añadir &#8220;//&#8221;) delante de las lineas que nos interesen:</p>
<pre class="brush: php; title: ; notranslate">
// Eliminamos elementos del nuevo toolbar en WP 3.3
function eliminar_nodos_admin_bar() {
	global $wp_admin_bar;
	$wp_admin_bar-&gt;remove_menu('wp-logo'); // Elimina el logo de WordPress (desaparece también todo el submenú)
	$wp_admin_bar-&gt;remove_menu('about'); // Elimina el enlace &quot;Sobre WordPress&quot;
	$wp_admin_bar-&gt;remove_menu('wporg'); // Elimina el enlace a wordpress.org
	$wp_admin_bar-&gt;remove_menu('documentation'); // Elimina el enlace a la documentación oficial (Codex)
	$wp_admin_bar-&gt;remove_menu('support-forums'); // Elimina el enlace a los foros de ayuda
	$wp_admin_bar-&gt;remove_menu('feedback'); // Elimina el enlace &quot;Sugerencias&quot;
	$wp_admin_bar-&gt;remove_menu('view-site'); // Elimina el submenú que aparece al pasar el cursor sobre el nombre de la web
	$wp_admin_bar-&gt;remove_menu('comments'); // Elimina el acceso directo a los comentarios
	$wp_admin_bar-&gt;remove_menu('updates'); // Elimina el icono de notificación de actualizaciones
	$wp_admin_bar-&gt;remove_menu('new-content'); // Elimina el menú para generar nuevo contenido
	$wp_admin_bar-&gt;remove_menu('my-account'); // Elimina el acceso a la cuenta de usuario y al enlace para desconectarse
	}
add_action('wp_before_admin_bar_render', 'eliminar_nodos_admin_bar');
</pre>
<h3>Cómo cambiar el aspecto visual de la barra</h3>
<p>Podemos adaptar el backend del sistema a nuestro gusto o a los colores de la marca del cliente, por ejemplo. Con esta función podremos cambiar el logo del sistema en WordPress 3.3, cambiar el color de fondo de la barra, el color de los elementos y cualquier otro detalle al que se pueda acceder mediante CSS.</p>
<p>Las funciones que existían hasta ahora para eliminar o cambiar el logo de WordPress no sirven en esta nueva versión. El logo tiene clases CSS nuevas y los bloques HTML donde se inserta también han cambiado. En el siguiente ejemplo tendremos que cambiar la ruta en la linea 3 por la correspondiente en cada caso:</p>
<pre class="brush: php; title: ; notranslate">
// Editamos el aspecto visual de la barra
function personalizar_aspecto_toolbar() {
	$adminlogo = '/images/adminlogo.png'; // Especificar ruta (tamaño = 20 x 20 px)
	echo '&lt;style&gt;
		#wpadminbar { background: #1B3E6E !important; }
		#wp-admin-bar-wp-logo &gt; .ab-item .ab-icon {
			background-image: url('.get_bloginfo('template_directory').$adminlogo.') !important;
			background-position: 0 0;
			}
		  &lt;/style&gt;'; }
add_action('admin_head', 'personalizar_aspecto_toolbar');
</pre>
<h3>Cómo añadir un enlace simple a la barra de administación</h3>
<p>Los ejemplos que he visto en otras páginas utilizan el método &#8220;<a href="http://codex.wordpress.org/Function_Reference/add_menu">add menu</a>&#8220;, sin embargo en la documentación de WordPress se recomienda utilizar la función <a href="http://codex.wordpress.org/Function_Reference/add_node">add_node()</a> para añadir elementos a la barra de herramientas:</p>
<pre class="brush: php; title: ; notranslate">
// Añadir un enlace simple con la función &quot;add_node&quot;
function link_simple_toolbar($wp_admin_bar) {
	$args = array(
		'id' =&gt; 'mi-link', // Identificador único
		'title' =&gt; 'Mi nuevo enlace', // Título del enlace
		'href' =&gt; 'http://miweb.com/mi-pagina/', // URL de destino
		'meta' =&gt; array('class' =&gt; 'mi-clase') // Clase del elemento
		);
	$wp_admin_bar-&gt;add_node($args);
}
add_action('admin_bar_menu', 'link_simple_toolbar', 100); // 25, si queremos que salga el primero
</pre>
<h3>Cómo añadir elementos agrupados a la barra de administación</h3>
<p>Para incorporar nuevos elementos a esta barra tendremos que crear otra función especificando los títulos y enlaces que queremos añadir. Podemos crear un submenú con diferentes opciones anidadas e incluso ampliarlo hasta donde queramos.</p>
<p>Lo importante en este caso es que los elementos &#8220;hijos&#8221; hagan referencia al identificador del elemento superior (<em>parent</em>):</p>
<pre class="brush: php; title: ; notranslate">
// Añadimos un enlace y un submenú con dos opciones
function link_simple_toolbar($wp_admin_bar) {
	$link = array(
		'id' =&gt; 'mi-link', // Identificador único
		'title' =&gt; 'Nuevo enlace', // Título del enlace
		'href' =&gt; '#', // URL de destino (si no queremos que apunte a ningún sitio, podemos dejarlo tal cual)
		'meta' =&gt; array('class' =&gt; 'mi-clase') // Clase del elemento
		);
	$sublink1 = array(
		'id'    =&gt; 'mi-sublink1', // Identificador único
		'parent' =&gt; 'mi-link', // Identificador del elemento superior
		'title' =&gt; 'Nuevo sublink 1', // Título del enlace
		'href'  =&gt; 'http://www.google.es/', // URL de destino
		'meta'  =&gt; array(
			'title' =&gt; __('Titulo para este link'), // Atributo &quot;title&quot; del enlace
			'target' =&gt; '_blank', // Destino (&quot;_blank&quot; abrirá el enlace en una página o pestaña nueva)
			'class' =&gt; 'mi_link_item_class' // Clase del elemento
			)
		);
	$sublink2 = array(
		'id'    =&gt; 'mi-sublink2',
		'parent' =&gt; 'mi-link', // Identificador del elemento superior
		'title' =&gt; 'Nuevo sublink 2',
		'href'  =&gt; 'http://www.google.es/',
		'meta'  =&gt; array(
			'title' =&gt; __('Titulo para este link'),
			'target' =&gt; '_blank',
			'class' =&gt; 'mi_link_item_class'
			)
		);
	$wp_admin_bar-&gt;add_node($link);
	$wp_admin_bar-&gt;add_node($sublink1);
	$wp_admin_bar-&gt;add_node($sublink2);
}
add_action('admin_bar_menu', 'link_simple_toolbar', 100); // 25 = En la primera posición (justo después del logo)
?&gt;
</pre>
<h3>¿Es posible desactivar la barra por completo?</h3>
<p>No sin <a href="http://wp.tutsplus.com/tutorials/how-to-disable-the-admin-bar-in-wordpress-3-3/">importantes esfuerzos</a>. Algunos filtros como &#8220;show_admin_bar&#8221; ya no sirven en WordPress 3.3 para desactivar la barra. A diferencia de la anterior &#8220;Admin bar&#8221;, ahora no se incluye una manera para eliminarla en el backend del sistema (solo en el frontend, a través de las opciones de cada usuario, ya que ahí no es imprescindible). Tampoco funcionarán por tanto algunos plugins que ocultaban esta barra.</p>
<p>La <a href="http://wordpress.org/support/topic/hiding-admin-bar-in-wordpress-33#post-2495624">justificación de los desarrolladores</a> para no permitir la desactivación de este elemento es que ahora se combina con la cabecera (header) del sistema e incluye funciones importantes para el usario, como la posibilidad de cerrar sesión o documentación de utilidad para el usuario, por lo que se recomienda no eliminarla completamente.</p>
<p>Aun así, hay plugins que ya permiten eliminar la barra por completo:</p>
<ul class="lessMargin">
<li><a href="http://wordpress.org/extend/plugins/hide-toolbar-plugin/">Hide Toolbar Plugin</a></li>
<li><a href="http://wordpress.org/extend/plugins/wordpress-admin-bar-improved/">WordPress Admin Bar Improved</a></li>
</ul>
<h3>Creamos un plugin para tenerlo todo a mano</h3>
<p>Para no cargar nuestro archivo <code>functions.php</code>, en este caso sería buena idea crear un plugin para meter todos estos fragmentos de código y facilitar así la edición. Además, al cambiar de un tema a otro, nuestros ajustes permanecerán intactos.</p>
<p>En realidad, crear un plugin básico <a href="http://ayudawordpress.com/crea-un-plugin-para-liberar-el-fichero-functions-php/">es muy fácil</a>, aunque en este caso se podría completar, por ejemplo, con una página de opciones para editar fácilmente los detalles.</p>
<p>Este plugin no pretende ser una solución de instalar y listo. Es necesario adaptarlo a las necesidades de cada uno, pero es muy fácil hacer modificaciones siguiendo las instrucciones y comentarios incluidos. </p>
<p>Personalizando un poco el código del plugin podremos:</p>
<ul class="lessMargin">
<li>Eliminar algunos elementos por defecto (solo hay que editar los comentarios para activar y desactivar cada uno)</li>
<li>Cambiar el color de fondo de la barra (editar para modificar el color)</li>
<li>Cambiar el logo de WordPress por la imagen que especifiquemos</li>
<li>Añadir enlaces nuevos con o sin submenús (editar para configurar los detalles)</li>
</ul>
<p><strong>Descargar plugin: <a href="http://www.danielnabil.com/img/toolbar-personalizado.zip" onClick="javascript: pageTracker._trackPageview('/descargas/plugin-toolbar'); ">Toolbar personalizado</a></strong> (ZIP, 2 KB)</p>
<h3>Más información y artículos relacionados</h3>
<ul class="lessMargin">
<li><a href="http://digwp.com/2012/01/goodbye-admin-bar-hello-toolbar/">Goodbye Admin Bar, Hello Toolbar</a> (Digging into WordPress)</li>
<li><a href="http://www.sitepoint.com/change-wordpress-33-toolbar/">How to Customize the WordPress 3.3 Toolbar</a> (Sitepoint)</li>
<li><a href="http://www.emenia.es/personaliza-wordpress-admin/">Personaliza el área de administración de WordPress</a> (Emenia.es)</li>
<li><a href="http://pippinsplugins.com/add-menu-links-to-the-new-wordpress-3-3-tool-bar/">Add Menu Links to the New WordPress 3.3 Tool Bar</a> (Pippinsplugins.com)</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.danielnabil.com/blog/como-personalizar-barra-herramientas-wordpress-3-3/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Editores de código online: 5 entornos de trabajo para editar y experimentar con HTML, CSS y JavaScript</title>
		<link>http://www.danielnabil.com/blog/editores-codigo-online-entornos-trabajo-html-css-javascript/</link>
		<comments>http://www.danielnabil.com/blog/editores-codigo-online-entornos-trabajo-html-css-javascript/#comments</comments>
		<pubDate>Thu, 24 Nov 2011 10:35:26 +0000</pubDate>
		<dc:creator>Daniel</dc:creator>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[HTML/CSS]]></category>
		<category><![CDATA[Internet]]></category>

		<guid isPermaLink="false">http://www.danielnabil.com/?p=546</guid>
		<description><![CDATA[Tanto si nos pasamos el día diseñando y desarrollando en HTML, CSS y Javascript como si estamos aprendiendo a utilizar estos lenguajes, hay un tipo de herramienta que nos vendrá muy bien conocer: los entornos de trabajo online.
Se trata de aplicaciones web que funcionan directamente en el navegador y que ... <a href="http://www.danielnabil.com/blog/editores-codigo-online-entornos-trabajo-html-css-javascript/" class="seguir"><img src="/wp-content/themes/dn2/img/mas.png" alt="" /></a>]]></description>
			<content:encoded><![CDATA[<p>Tanto si nos pasamos el día diseñando y desarrollando en HTML, CSS y Javascript como si estamos aprendiendo a utilizar estos lenguajes, hay un tipo de herramienta que nos vendrá muy bien conocer: los <strong>entornos de trabajo online</strong>.</p>
<p>Se trata de aplicaciones web que funcionan directamente en el navegador y que nos permiten, por una parte, generar código sin la necesidad de crear y guardar archivos ni tener que subirlos a un servidor, y por otra, compartir estos códigos y colaborar fácilmente con otras personas.</p>
<p>Aunque no sustituyen a los editores de código tradicionales (Coda, Expresso, Notepad++, TextMate, Sublime Text, Dreamweaver, etc.), estas herramientas son cada vez más indispensables porque facilitan enormemente algunas tareas. Por ejemplo:</p>
<ul class="lessMargin">
<li>Probar cierta funcionalidad en las diferentes versiones de una librería de JavaScript sin tener que cargar todas las versiones ni enlazar con librerías externas</li>
<li>Enseñar a alguien cómo conseguir hacer algo sin tener que enviarle los archivos</li>
<li>Divertirnos probando cosas nuevas sin miedo a romper nada</li>
<li>Utilizarlo como herramienta educativa en cursos y clases presenciales</li>
<li>Experimentar y ver el resultado inmediatamente mientras vamos escribiendo</li>
<li>Buscar errores de código de manera colaborativa</li>
<li>Pedir a alguien que nos ayude con algún problema concreto que no sabemos resolver</li>
<li>Escribir CSS directamente en Less o Sass</li>
</ul>
<p>Son muy fáciles de usar. De hecho, sólo hay que visitar la web de la herramienta que más nos convenza y ponerse a escribir. No tienen publicidad ni nada que distraiga. Además, como normalmente incluyen coloreado de código y autotabulación, es fácil mantener el código organizado.</p>
<p>Como puntos negativos se me ocurren dos: </p>
<ul class="lessMargin">
<li>No autocompletan el código mientras escribimos, con lo que es más lento que utilizar un editor tradicional</li>
<li>No se guarda automáticamente una copia por si algo falla (al estilo de WordPress, por ejemplo), por lo que si trabajamos con grandes fragmentos de código puede ser algo a tener en cuenta</li>
</ul>
<p>En definitiva, básicamente no ofrecen nada que no se puediera hacer antes, aunque sí reducen considerablemente el tiempo necesario para conseguirlo y facilitan mucho la tarea.</p>
<p>Vamos a ver cinco de estas herramientas: <strong>Tinkerbin</strong>, <strong>jsFiddle</strong>, <strong>CSS Desk</strong>, <strong>JS Bin</strong> y <strong>Dabblet</strong>.</p>
<h2>Tinkerbin</h2>
<p><img src="http://www.danielnabil.com/img/tinkerbin.jpg" alt="Tinkerbin: editor de código online" width="618" height="412" class="alignnone size-full" /></p>
<p>Con <a href="http://tinkerbin.com/">Tinkerbin</a> podemos trabajar y combinar HTML, JavaScript y CSS cómodamente en pestañas. Es el editor que más opciones ofrece a nivel de preprocesamiento de código. Permite utilizar tanto HTML como HAML, Sass (con Compass), Less y CofeeScript. Cuenta incluso con bastantes atajos de teclado para, por ejemplo, cambiar de pestaña y de lenguaje, ver el código, etc.</p>
<p>Enlace directo: <a href="http://tinkerbin.com/">http://tinkerbin.com/</a></p>
<h2>CSSDesk</h2>
<p><img src="http://www.danielnabil.com/img/cssdesk.jpg" alt="CSSDesk: editor de css online" width="618" height="412" class="alignnone size-full" /></p>
<p><a href="http://cssdesk.com/">CSS Desk</a> se centra en ofrecernos un entorno online para HTML y CSS (no incluye Javascript ni librerías externas). Tiene una interfaz muy cuidada con la que podemos incluso cambiar el fondo de la herramienta y añadir retículas en columnas. CSS Desk es ideal para probar código CSS y ver el resultado en tiempo real.</p>
<p>Enlace directo: <a href="http://cssdesk.com/">http://cssdesk.com/</a></p>
<h2>JSFiddle</h2>
<p><img src="http://www.danielnabil.com/img/jsfiddle.jpg" alt="JSFiddle: editor Javascript, HTML y CSS" width="618" height="412" class="alignnone size-full" /></p>
<p><a href="http://jsfiddle.net/">jsFiddle</a> es el editor más completo en varios niveles: la documentación que ofrece y la cantidad de librerías externas disponibles (Mootols, jQuery, Prototype, YUI, Dojo, Raphael&#8230;). Además de guardar y ofrecernos un enlace corto, jsFiddle incluye formateo y revisión del código con JSLint y TidyUp, cambio de DTD (xHTML, HTML4, HTML5&#8230;), inclusión de recursos externos (hojas de estilo guardadas en nuestro servidor, por ejemplo) e incluso algunos ejemplos prácticos para ver la herramienta en acción.</p>
<p>Enlace directo: <a href="http://jsfiddle.net/">http://jsfiddle.net/</a></p>
<h2>JSBin</h2>
<p><img src="http://www.danielnabil.com/img/jsbin.jpg" alt="JSBin: editor online de código libre" width="618" height="412" class="alignnone size-full" /></p>
<p>Creado por Remy Sharp y de código libre, <a href="http://jsbin.com/">JS Bin</a> permite incrustar librerías jQuery (en diferentes versiones) e incluso jQuery UI o jQuery Mobile. JS Bin es una aplicación web diseñada para ayudarnos a editar JavaScript y CSS probando fragmentos de código en un contexto determinado y revisarlo después de manera colaborativa. Incluye amplia documentación a través de <a href="http://jsbin.tumblr.com/">tutoriales en vídeo</a> creados por el autor.</p>
<p>Enlace directo: <a href="http://jsbin.com/">http://jsbin.com/</a></p>
<h2>Dabblet</h2>
<p><img src="http://www.danielnabil.com/img/dabblet.jpg" alt="Dabblet: editor CSS y HTML, por Lea Verou"" width="618" height="378" class="alignnone size-full wp-image-552" /></p>
<p><a href="http://dabblet.com/">Dabblet</a> es un nuevo editor online interactivo creado por <a href="http://lea.verou.me/2011/12/introducing-dabblet-an-interactive-css-playground/">Lea Verou</a> y enfocado a la escritura de CSS y HTML. Muy útil para hacer pruebas y experimentos en CSS3, por ejemplo. Cuenta con actualización automática del código y muy buenos indicadores visuales para las reglas que estamos aplicando: color, ancho, degradados&#8230;(recomiendo ver el vídeo del enlace anterior). Además, con Dabblet es posible guardar las muestras directamente en una cuenta de GitHub.</p>
<p>Enlace directo: <a href="http://dabblet.com/">http://dabblet.com/</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.danielnabil.com/blog/editores-codigo-online-entornos-trabajo-html-css-javascript/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Enlaces interesantes sobre diseño y desarrollo web</title>
		<link>http://www.danielnabil.com/blog/enlaces-interesantes-sobre-diseno-y-desarrollo-web/</link>
		<comments>http://www.danielnabil.com/blog/enlaces-interesantes-sobre-diseno-y-desarrollo-web/#comments</comments>
		<pubDate>Sun, 20 Nov 2011 17:19:46 +0000</pubDate>
		<dc:creator>Daniel</dc:creator>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[HTML/CSS]]></category>
		<category><![CDATA[Internet]]></category>

		<guid isPermaLink="false">http://www.danielnabil.com/?p=528</guid>
		<description><![CDATA[Hoy en día, con la cantidad de información que hay en Internet, ya no es necesario estar constantemente comprando libros para estar al día de los temas que a uno le interesan. De hecho, no es que no sea necesario, es que sería imposible pretender estar bien informado de algo ... <a href="http://www.danielnabil.com/blog/enlaces-interesantes-sobre-diseno-y-desarrollo-web/" class="seguir"><img src="/wp-content/themes/dn2/img/mas.png" alt="" /></a>]]></description>
			<content:encoded><![CDATA[<p>Hoy en día, con la cantidad de información que hay en Internet, ya no es necesario estar constantemente comprando libros para estar al día de los temas que a uno le interesan. De hecho, no es que no sea necesario, es que sería imposible pretender estar bien informado de algo contando únicamente con la ayuda de los libros que se publican, especialmente en temas relacionados con Internet y las nuevas tecnologías.</p>
<p>Aquí van, como referencia y sin ningún orden en particular, algunos enlaces útiles relacionados con el diseño y desarrollo de páginas web, para tener a mano y consultar. </p>
<p>La mayoría de estos enlaces los he ido publicando <a href="http://twitter.com/daninabil">en Twitter</a>, pero he pensado que estaría bien ir recopilándolos para poder acceder a ellos más fácilmente.</p>
<h2>HTML5 for Web Designers</h2>
<p><img src="http://www.danielnabil.com/img/html5-for-web-designers.gif" alt="HTML5 for web designers" width="300" height="200" class="alignright size-full wp-image-545" /></p>
<p>En 2010 <a href="http://www.abookapart.com/">A Book Apart</a> publicó <em>HTML5 For Web Designers</em>, un libro conciso y fácil de leer especialmente interesante para entender la evolución de este lenguaje y conocer las posibilidades de la última versión, particularmente desde el punto de vista del diseñador web, ya que incluye consejos de utilización, novedades a nivel semántico, nuevas etiquetas y elementos, mejoras en formularios, etc. </p>
<p>Ahora el libro está disponible para leer online de manera totalmente gratuita:</p>
<p><a href="http://html5forwebdesigners.com/">http://html5forwebdesigners.com/</a></p>
<h2>WhatFont: inspecciona fácilmente las tipografías de una web</h2>
<p><img src="http://www.danielnabil.com/img/whatfont.jpg" alt="WhatFont inspecciona qué tipografías usa una web" width="300" height="200" class="alignright size-full wp-image-543" /></p>
<p>WhatFont es una extensión para Google Chrome gracias a la cual podemos averiguar fácil y rápidamente las tipografías que vemos en cualquier página web, y encontrar información relacionada: tamaño, interlineado, color, etc. </p>
<p>Es mucho más rápido que utilizar Firebug o el inspector de Webkit. Además, detecta tanto fuentes comunes como servicios externos como Typekit o Google Web Fonts:</p>
<p><a href="http://chengyinliu.com/whatfont.html">http://chengyinliu.com/whatfont.html</a></p>
<h2>pShadow: sombras con jQuery</h2>
<p><img src="http://www.danielnabil.com/img/pshadow-sombras-jquery.jpg" alt="Sombras con jQuery: pShadow" width="300" height="200" class="alignright size-full wp-image-538" /></p>
<p>Con esta extensión de jQuery podemos añadir sombras a cualquier elemento HTML. Funciona en los navegadores principales y se puede usar libremente. </p>
<p>Como se ve en la <a href="http://www.matthewdawkins.co.uk/pshadow/pshadow-demo.html">página de demostración</a>, las sombras que consigue pShadow son bastante convincentes, aunque lo que hace esta extensión es añadir una imagen de la sombra en PNG en la parte inferior del elemento y posicionarla mediante Javascript, no crear la sombra en sí:</p>
<p><a href="http://www.matthewdawkins.co.uk/2011/10/pshadow-a-jquery-extension-for-gorgeous-drop-shadows/">http://www.matthewdawkins.co.uk/2011/10/pshadow-a-jquery-extension-for-gorgeous-drop-shadows/</a></p>
<h2>Cursos de programación online con Codecademy</h2>
<p><img src="http://www.danielnabil.com/img/codecademy-clases-online.jpg" alt="Codecademy: cursos de programación online" width="300" height="200" class="alignright size-full wp-image-531"></p>
<p>Codecademy es un servicio de aprendizaje online. A través de su web nos ofrece cursos de programación con los que podemos aprender a programar de forma gratuita, interactiva y entretenida directamente desde el navegador. </p>
<p>Hace unos días publiqué un pequeño artículo sobre Codecademy, por lo interesante que me pareció:</p>
<p><a href="http://www.danielnabil.com/blog/cursos-programacion-online-codecademy/">http://www.danielnabil.com/blog/cursos-programacion-online-codecademy/</a></p>
<h2>Herramientas SEO gratuitas de Google</h2>
<p><img src="http://www.danielnabil.com/img/google-seo-tools.jpg" alt="Google Seo Tools" width="300" height="200" class="alignright size-full wp-image-537" /></p>
<p>Un estudio de las principales herramientas y aplicaciones gratuitas enfocadas al posicionamiento en buscadores que Google pone a nuestra disposición para analizar, monitonizar y optimizar el posicionamiento en buscadores de una web. </p>
<p>En esta lista se habla de Google Analytics, Alerts, Insights for Search, Webmaster Tools, Trends, Adwords Keyword Tool, Website Optimizer y algunas herramientas más:</p>
<p><a href="http://blueblots.com/tools/google-seo-tools/">http://blueblots.com/tools/google-seo-tools/</a></p>
<h2>Animatable, galería de animaciones CSS</h2>
<p><img src="http://www.danielnabil.com/img/animatable-transiciones-css.jpg" alt="Galería de animaciones CSS" width="300" height="200" class="alignright size-full wp-image-536" /></p>
<p><em>Animatable</em> es una guía de transiciones CSS básicas en la que podemos ver, desde una misma página, varios tipos de animaciones y la gran cantidad de posibilidades que ofrece CSS a través de una solo propiedad. Es una buena manera de ver cuales son las propiedades que permiten animaciones. </p>
<p>Lógicamente, estas transiciones solo funcionan en los navegadores en los que está incorporada esta tecnología:</p>
<p><a href="http://leaverou.github.com/animatable/">http://leaverou.github.com/animatable/</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.danielnabil.com/blog/enlaces-interesantes-sobre-diseno-y-desarrollo-web/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Cómo desactivar plugins de WordPress sin acceso al area de administración</title>
		<link>http://www.danielnabil.com/blog/desactivar-plugins-wordpress-sin-acceso-administracion/</link>
		<comments>http://www.danielnabil.com/blog/desactivar-plugins-wordpress-sin-acceso-administracion/#comments</comments>
		<pubDate>Sun, 20 Nov 2011 11:10:17 +0000</pubDate>
		<dc:creator>Daniel</dc:creator>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[WordPress]]></category>

		<guid isPermaLink="false">http://www.danielnabil.com/?p=539</guid>
		<description><![CDATA[Es probable que en alguna ocasión necesitemos <strong>desactivar todos los plugins</strong> (o solo alguno) de nuestra instalación de WordPress pero, por una u otra razón, no podamos acceder al area de administración: páginas en blanco, pérdida de los datos de acceso o cualquier otra razón.]]></description>
			<content:encoded><![CDATA[<h3>Respuesta rápida (en caso de urgencia):</h3>
<ul>
<li><strong>Por FTP</strong>. Renombra la carpeta &#8220;<code>plugins</code>&#8221; y crea otra igual, pero vacía.</li>
<li>O <strong>a través de phpMyAdmin</strong>. Edita el campo &#8220;<code>active_plugins</code>&#8221; (en la tabla &#8220;<code>wp_options</code>&#8220;) y vacía la lista de plugins activos sustituyendo el contenido por: &#8220;<code>a:0:{}</code>&#8221; (sin las comillas)</li>
</ul>
<h3>Respuesta completa</h3>
<p>Es probable que en alguna ocasión necesitemos <strong>desactivar todos los plugins</strong> (o solo alguno) de nuestra instalación de WordPress pero, por una u otra razón, no podamos acceder al area de administración: páginas en blanco, pérdida de los datos de acceso o cualquier otra razón. </p>
<p>Por ejemplo, podemos encontrarnos con páginas en blanco en el panel de administración cuando algún plugin no es compatible con la versión de WordPress que tenemos instalada (o simplemente porque contiene errores), cuando el archivo &#8220;<code>functions.php</code>&#8221; del tema activo o &#8220;<code>wp-config</code>&#8221; están mal formados, etc.</p>
<p>Para comprobar si se trata de un problema con algún plugin instalado, tendremos que desactivarlos todos e ir activándolos de uno en uno, pero como no podemos acceder a la página de gestión, no podemos hacer nada.</p>
<p>Hay dos maneras de solucionarlo: por FTP o accediendo directamente a la base de datos a través de phpMyAdmin (o cualquier otro gestor).</p>
<h2>Cómo desactivar plugins por FTP</h2>
<p>Si tenemos acceso FTP a los archivos de la instalación, lo único que tenemos que hacer es <strong>cambiar el nombre de la carpeta &#8220;<code>plugins</code>&#8220;</strong> (en <code>wp-content/plugins</code>), por ejemplo llamándola &#8220;plugins_original&#8221;, y crear una carpeta nueva vacía. Paso a paso sería así:</p>
<ol class="lessMargin">
<li>Acceder por FTP a nuestra instalación de WordPress</li>
<li>Abrir la carpeta &#8220;<code>wp-content</code>&#8220;</li>
<li>Buscar la carpeta &#8220;<code>plugins</code>&#8221; y cambiarle el nombre (por ejemplo, &#8220;plugins_original&#8221;)</li>
<li>Crear una carpeta nueva y llamarla &#8220;plugins&#8221;</li>
</ol>
<p>Al volver a acceder al panel de administración nos aparecerá un mensaje de error por cada plugin que teníamos activado, pero en este caso, eso es precisamente lo que buscábamos: &#8220;<em>El plugin X se ha desactivado debido a un error: El archivo del plugin no existe.</em>&#8221;</p>
<p>Si volvermos a renombrar la carpeta original por FTP, los plugins aparecerán como inactivos y podremos volver a activarlos uno a uno, fijándonos bien cual es el que causa problemas.</p>
<h2>Cómo desactivar plugins en phpMyAdmin</h2>
<p>Lo que vamos a hacer es decirle al sistema que no tenemos ningún plugin activado, es decir, el mismo método que el anterior pero, esta vez, marcándolo directamente en la base de datos. En otras palabras, no vamos a eliminar ninguna extensión, solo a desactivarlas &#8220;a distancia&#8221;. Para ello tendremos que:</p>
<ol>
<li>Acceder a través de phpMyAdmin a la base de datos de nuestra instalación de WordPress</li>
<li>Examinar la tabla &#8220;<code>wp_options</code>&#8221; (el prefijo &#8220;<code>wp_</code>&#8221; puede variar según la instalación)</li>
<li>Buscar en la columna &#8220;<code>option_name</code>&#8221; la fila &#8220;<code>active_plugins</code>&#8221; (puede que no esté en la primera página). O también podemos hacer una consulta SQL directa. Así:
<pre>SELECT * FROM wp_options WHERE option_name = 'active_plugins';</pre>
</li>
<li>Editar esta fila</li>
<li>En el campo &#8220;<code>option_value</code>&#8221; veremos una lista de todos nuestros plugins activos en forma de cadena. Lógicamente la longitud y el contenido variará dependiendo de los que tengamos activados:
<pre>a:2:{i:0;s:19:"akismet/akismet.php";i:1;s:27:"wp-pagenavi/wp-pagenavi.php";}</pre>
</li>
<li>Guardar una copia de esta cadena (por si acaso, para poder volver a activar los plugins más tarde) y sustituirla por:
<pre>a:0:{}</pre>
</li>
<li>Finalmente guardamos los cambios pulsando &#8220;Continuar&#8221;</li>
</ol>
<p>Ahora podremos volver a acceder al panel de administración de WordPress. Si el problema de las páginas en blanco continúa, lo más probable es que los archivos &#8220;<code>functions.php</code>&#8221; o &#8220;<code>wp-config</code>&#8221; estén mal formados.</p>
<p>Más información (en inglés):<br />
<a href="http://codex.wordpress.org/FAQ_Troubleshooting#How_to_deactivate_all_plugins_when_not_able_to_access_the_administrative_menus.3F">How to deactivate all plugins when not able to access the administrative menus?</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.danielnabil.com/blog/desactivar-plugins-wordpress-sin-acceso-administracion/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Nombres de dominio internacionalizados (IDNs), WordPress, SEO y navegadores</title>
		<link>http://www.danielnabil.com/blog/nombres-dominio-internacionalizados-idn-wordpress-seo-navegadores/</link>
		<comments>http://www.danielnabil.com/blog/nombres-dominio-internacionalizados-idn-wordpress-seo-navegadores/#comments</comments>
		<pubDate>Sun, 13 Nov 2011 02:21:35 +0000</pubDate>
		<dc:creator>Daniel</dc:creator>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[Alojamiento y dominios]]></category>
		<category><![CDATA[Internet]]></category>
		<category><![CDATA[WordPress]]></category>

		<guid isPermaLink="false">http://www.danielnabil.com/?p=533</guid>
		<description><![CDATA[Dominios en el mundo. Fuente: Wikipedia
¿Por qué aparecen símbolos &#8220;raros&#8221; en la barra de direcciones del navegador cuando visitamos sitios web con caracteres internacionales? Por ejemplo, al visitar http://www.radiopollença.net puede aparecer como &#8220;http://www.xn--radiopollena-udb.net/&#8221;.
Explicación simple
Es normal. Es una medida de seguridad. El navegador te está avisando de que el dominio que ... <a href="http://www.danielnabil.com/blog/nombres-dominio-internacionalizados-idn-wordpress-seo-navegadores/" class="seguir"><img src="/wp-content/themes/dn2/img/mas.png" alt="" /></a>]]></description>
			<content:encoded><![CDATA[<div id="attachment_534" class="wp-caption alignnone" style="width: 628px"><img src="http://www.danielnabil.com/img/dominios-mundo.jpg" alt="Dominios en el mundo" title="Dominios en el mundo" width="618" height="207" class="size-full wp-image-534" /><p class="wp-caption-text">Dominios en el mundo. Fuente: <a href='http://es.wikipedia.org/wiki/Dominio_de_Internet'>Wikipedia</a></p></div>
<p>¿Por qué aparecen símbolos &#8220;raros&#8221; en la barra de direcciones del navegador cuando visitamos sitios web con caracteres internacionales? Por ejemplo, al visitar <a href="http://www.xn--radiopollena-udb.net">http://www.radiopollença.net</a> puede aparecer como &#8220;http://www.xn--radiopollena-udb.net/&#8221;.</p>
<h3>Explicación simple</h3>
<p>Es normal. Es una medida de seguridad. El navegador te está avisando de que el dominio que acabas de teclear contiene caracteres multilingües.</p>
<p>Cada navegador (Firefox, Chrome, Internet Explorer, Safari, Opera) tiene sus propias reglas al respecto para protegernos de posibles ataques. Algunos permiten configurar esto y otros no. Para saber cómo hacerlo, averigua qué navegador estás utilizando y sigue leyendo.</p>
<h3>Explicación completa</h3>
<p>Al principio, los nombres de dominio únicamente podían contener caracteres ASCII: letras de la A a la Z, números y algún que otro símbolo, como por ejemplo guiones. Pero a medida que Internet se fue haciendo más popular e internacionalizando, fue necesario incorporar un sistema que permitiera utilizar caracteres de otros idiomas (por ejemplo, &#8220;ñ&#8221;, &#8220;ç&#8221;, tildes, diéresis, etc.)</p>
<p>Así, a partir de 2005 y con el fin de dar cabida a estos diferentes caracteres no ASCII propios de algunos idiomas (como el español, el francés o el catalán), los registradores empezaron a permitir lo que se llaman <strong>IDNs o Internationalized Domain Names (<a href="http://es.wikipedia.org/wiki/Nombre_de_dominio_internacionalizado">nombres de dominio internazionalizados</a>)</strong>.</p>
<p>De todas formas, a pesar del tiempo que hace que se permite el registro de este tipo de dominios, si alguna vez has visitado una web con un IDN de este tipo, es posible que tu navegador lo haya transformado en algo así: &#8220;http://www.xn--nombre-xyz.com/&#8221;</p>
<p>Lo que hacen los agentes de usuario (los navegadores, por ejemplo) para que esto funcione es transformar los caracteres Unicode (ñ, ç, ü…) del dominio a una cadena que encaje con la forma tradicional, para después enviarla al servidor de nombres de dominio (DNS). Por ejemplo, un dominio con la cedilla (&#8220;ç&#8221;), muy común en francés y en catalán, como &#8220;http://www.pollença.com&#8221; se convierte en &#8220;http://www.xn--pollena-zxa.com/&#8221;. Igualmente, el dominio &#8220;http://www.españa.com&#8221; se convierte en &#8220;http://www.xn--espaa-rta.com/&#8221;.</p>
<p><strong>A este formato convertido o codificado se le llama Código púny o <a href="http://es.wikipedia.org/wiki/Punycode">Punycode</a>, que no es más que una representación en formato ASCII del nombre original</strong>.</p>
<p>En resumen:</p>
<ul class="lessMargin">
<li>Dominio Unicode: españa.com</li>
<li>Dominio Punycode: http://www.xn--espaa-rta.com/</li>
</ul>
<p>Sería perfecto si los navegadores y otros agentes de usuario pudieran mostrar tranquilamente el formato Unicode de todos los dominios. Pero el problema viene cuando, dada la inmensa variedad de idiomas y caracteres, algunos son demasiado parecidos. El caso más popular es la &#8220;а&#8221; en cirílico, que a simple vista no se diferencia de la &#8220;a&#8221; latina, o la &#8220;O&#8221; griega de la &#8220;O&#8221; latina y la &#8220;O&#8221; en cirílico.</p>
<p>Aprovechando esto, alguien podría registrar un dominio que a simple vista pareciera otro (es decir, hacer <a href="http://es.wikipedia.org/wiki/Phishing">Phishing</a> o <a href="http://es.wikipedia.org/wiki/Spoofing">Spoofing</a>, engañar a alguien haciéndose pasar por otra persona, entidad o servicio, por ejemplo, un banco). A este tipo de engaños concretamente se los conoce como ataques homógrafos de IDN (<a href="http://en.wikipedia.org/wiki/IDN_homograph_attack">IDN homograph attack</a>).</p>
<p>Como no es posible que, para evitar este tipo de prácticas, los agentes registradores puedan controlar todos los dominios que se dan de alta, lo que hacen los navegadores para evitar confusiones y tratar de protegernos de estos ataques homógrafos es, en muchas ocasiones, mostrar al usuario los IDNs en formato Punycode en lugar del original. </p>
<p>Pero no es tan simple. Cada navegador lo hace de manera diferente. Según el caso, podremos configurarlo para que nos muestre un dominio sin codificar, aunque hay navegadores que no lo permiten. Vamos a ver las diferencias.</p>
<h2>Gestión de IDNs en los diferentes navegadores</h2>
<h3>IDNs en Google Chrome</h3>
<p>Chrome determina si mostrar IDNs en Punycode o Unicode según el/los idioma/s que el usuario &#8220;entiende&#8221; (o sea, tiene configurados en su sistema). Es decir, Chrome detecta el idioma del sistema o navegador y, si el dominio contiene caracteres de un idioma que no está en la lista de los configurados por el usuario, muestra el dominio en formato Punycode.</p>
<p>Por ejemplo, si en mi ordenador tengo configurado el español como único idioma del navegador o del sistema (depende de si la plataforma es Windows, Mac Os X o Linux) y escribo en la barra de direcciones de Chrome el dominio &#8220;www.españa.com&#8221; (que contiene una &#8220;ñ&#8221;), el navegador me mostrará el dominio en formato Unicode (es decir, tal como se escribe, con la &#8220;ñ&#8221;). En cambio, si mi idioma es el inglés, por ejemplo, como la letra &#8220;ñ&#8221; no pertenece a la lista de caracteres permitidos, me mostrará el dominio en formato Punycode, así: &#8220;http://www.xn--espaa-rta.com/&#8221;</p>
<p>En Windows y Linux los idiomas se configuran desde las opciones del navegador: <strong>Opciones > Avanzada > Configuración de idiomas y del corrector ortográfico</strong>. </p>
<p>En Mac OS X el idioma del navegador viene determinado por el idioma del sistema. Se puede configurar accediendo a: <strong>Aplicaciones > Preferencias del sistema > Idioma y texto > Idioma</strong>.</p>
<p>De esta manera, Google Chrome consigue que podamos ver dominios internacionalizados sin codificar, incluso aunque sean .net o .com, que son dominios de primer nivel generales, no específicos de un país.</p>
<h3>IDNs en Internet Explorer</h3>
<p>Internet Explorer (IE) actúa de manera muy similar a como lo hace Chrome: muestra las URLs sin codificar siempre y cuando todos los caracteres del dominio pertenezcan al idioma configurado por el usuario en las opciones del navegador: <strong>Opciones de Internet > General > Idiomas</strong>.</p>
<h3>IDNs en Firefox</h3>
<p>En el caso de Firefox, lo que hace este navegador para decidir si mostrar Unicode o Punycode es analizar la extensión de cada dominio (.com, .net, .es, .cat, etc.) y compararlos con unas listas de caracteres permitidos. De esta manera, un dominio con caracteres internacionales puede verse codificado según el nivel al que pertenezca.</p>
<p>Por ejemplo, un dominio con la cedilla (&#8220;ç&#8221;), muy frecuente en catalán y en francés, como &#8220;htttp://www.pollença.com&#8221; se mostrará en Punycode, porque los dominios &#8220;.com&#8221; no permiten &#8220;ç&#8221;. En cambio, el dominio &#8220;http://www.pollença.cat&#8221; se mostrará en Unicode porque los &#8220;.cat&#8221; sí que permiten la cedilla.</p>
<p>Lo mismo pasaría con el dominio &#8220;españa.com&#8221;. En Firefox aparecería en formato Punycode, en cambio &#8220;españa.es&#8221;, en formato Unicode.</p>
<p>Firefox incorpora una lista blanca de TLDs. Si al menos uno de los caracteres del dominio no está en esa lista, el dominio no se mostrará en Unicode. Dicho de otra forma, Firefox siempre mostrará un dominio en formato Punycode para &#8220;.com&#8221;, porque este TLD no está en la lista blanca. Es decir, ni &#8220;españa.com&#8221;, ni &#8220;pollença.com&#8221; se verán &#8220;correctamente&#8221;.</p>
<h3>IDNs en Safari</h3>
<p>Safari ofrece una lista de idiomas editable por el usuario en la que aparecen los que están permitidos para mostrarse de manera nativa en la barra del navegador.</p>
<p>Los nombres de dominio que contengan caracteres que no estén en esa lista de idiomas se mostrarán por tanto en el formato ASCII (Punycode)</p>
<p>Podemos editar esta lista muy fácilmente con cualquier editor de texto (siempre y cuando se tengan permisos de administración). Esta lista se llama &#8220;Lista blanca de IDNs permitidos por defecto en WebKit&#8221; (Default Web Kit International Domain Name Script White List) y la podemos encontrar en esta ruta: Sistema > Libreria > Frameworks > WebKit.framework > Versions > A > Resources > IDNScriptWhiteList.txt</p>
<p>Si borramos todos los idiomas que aparecen en esta lista, Safari mostrará todos los dominios codificados con su equivalente en Punycode.</p>
<h3>IDNs en Opera</h3>
<p>Opera analiza, al igual que Firefox, en una lista blanca de dominios de primer nivel (TLDs) con las que compara los dominios. Únicamente muestra IDNs en formato Unicode siempre y cuando todos los caracteres del dominio estén permitidos para ese TLD en particular.</p>
<h2>En resumen</h2>
<p>Si queremos que nuestro dominio del primer ejemplo &#8220;radiopollença.net&#8221; se muestre tal como lo escribimos, tendremos que cambiar la configuración de idioma del sistema o del navegador al catalán, en todos los casos menos si utilizamos Firefox u Opera, que no se basan en configuraciones locales y por tanto no podremos hacer nada (en realidad, <a href="https://addons.mozilla.org/en-US/firefox/addon/idn-navbar/">existen extensiones</a> que permiten cambiar esta configuración, pero no son nada recomendables porque nos abren la puerta a posibles ataques).</p>
<h2>Dominios IDN, SEO y accesibilidad</h2>
<p>¿Afecta negativamente a nivel de posicionamiento en buscadores (SEO) tener un dominio internacionalizado?</p>
<p>Por una parte, los IDNs nos dan más flexibilidad, es decir, nos permiten posicionar palabras exactas, tal como se escriben. En el caso de &#8220;Pollença&#8221;, puede haber mucha diferencia entre registrar un dominio como &#8220;Pollenca&#8221; (con &#8220;c&#8221; en lugar de &#8220;ç&#8221;) o como la versión castellanizada &#8220;Pollensa&#8221; (con &#8220;s&#8221;). Además, disponer de un dominio con caracteres multilingües nos permite acceder a un posicionamiento más local y por tanto más preciso, ya que, desde hace tiempo los buscadores no ofrecen ningún problema para indexar estos dominios.</p>
<p class="destacado">Partiendo de la premisa de hacer sitios web claros y accesibles para todo el mundo, el hecho de añadir complejidad a nuestra dirección web puede ser un punto importante en contra de adquirir un dominio multilingüe.</p>
<p>Pero, como hemos visto, los navegadores no nos lo ponen fácil. Es muy probable que el usuario que visita una página web con un dominio internacionalizado, se extrañe como mínimo al ver el cambio a Punycode, es decir, provoque una primera reacción de rechazo hacia algo raro, que no conoce.</p>
<p>Por otro lado, registrar un dominio con caracteres multilingües puede no ser una buena idea (ni a nivel SEO ni a nivel de accesibilidad) ya que algunos usuarios podrían tener dificultades para acceder a la &#8220;ñ&#8221; o la &#8220;ç&#8221; en teclados ingleses, por ejemplo. Todo dependerá de nuestro &#8220;target&#8221;, a qué público nos estamos dirigiendo.</p>
<p>A nivel de compatibilidad de navegadores, aunque afortunadamente cada vez se utilice menos, Internet Explorer 6 (IE6) da errores al acceder a dominios IDN.</p>
<p>Por tanto, partiendo de la premisa de hacer sitios web claros y accesibles para todo el mundo, el hecho de añadir complejidad a nuestra dirección web puede ser un punto importante en contra de adquirir uno de estos dominios.</p>
<p>En cualquier caso, lo ideal podría ser registrar otro dominio similar que solamente contenga caracteres ASCII (&#8220;normales&#8221;) y redireccionarlo a su versión en IDN.</p>
<p>También hay que tener en cuenta que estos dominios pueden ser difíciles de integrar en programas como gestores de correo, de FTP, sistemas de gestión de contenido como WordPress, Joomla o Drupal, extensiones, Twitter, Facebook y otras redes sociales, etc.</p>
<p>Por todo esto, la adquisición de un dominio multilingüe puede ser una muy mala idea, al menos por ahora, debido a la cantidad de problemas, costes y tiempo necesario para solventarlos, pero más que por dificultades a nivel SEO e indexación en buscadores, por accesibilidad y por compatibilidad del software.</p>
<h2>WordPress y los IDNs</h2>
<p>WordPress no es una aplicación IDNA (aplicaciones capaces de gestionar dominios IDN), por lo tanto al configurarlo deberemos utilizar la versión en Punycode. Si no lo hacemos así, el sistema eliminará todos los caracteres no-ASCII de nuestro dominio.</p>
<p>Pero esto no quiere decir que WordPress tenga problemas con los dominios multilingües. Lo único que hay que hacer al configurar el sistema es introducir el dominio en formato Punycode (<a href="http://mct.verisign-grs.com/">aquí encontrarás un conversor</a>), tanto en el campo &#8220;Dirección de WordPress (URL)&#8221; como en &#8220;Dirección del sitio (URL)&#8221;. A partir de ahí ya depende del navegador.</p>
<p>Conviene ir con mucho cuidado cuando hacemos este tipo de cambios, especialmente si no sabemos bien lo que hacemos, ya que fácilmente podemos perder el acceso al area de administración de WordPress. En ese caso, podemos acceder directamente a la base de datos a través de phpMyAdmin o tener a mano la información del Codex de WordPress sobre <a href="http://codex.wordpress.org/Changing_The_Site_URL">cómo cambiar la URL de la web</a> (en inglés).</p>
<p>Donde sí podemos encontrar limitaciones importantes de WordPress con respecto a los IDNs es en los comentarios, los plugins que utilicemos, integración con redes sociales o la gestión de emails, por ejemplo.</p>
<p>Aunque no lo he probado, existe un plugin que se llama <a href="http://wordpress.org/extend/plugins/idna/">IDNA</a> que permite utilizar dominios IDN en WordPress (aunque según su autor, no se trata de una versión estable, sinó de una Beta, &#8220;como mucho&#8221;). Para ello utiliza una librería llamada <a href="http://freecode.com/projects/php_net_idna">PHP Net_IDNA</a> que convierte de Punycode a Unicode y viceversa.</p>
<h2>Conclusión</h2>
<p>Registrar dominios con caracteres multilingües no es ni buena ni mala opción. Dependerá de cada caso, por lo que habrá que analizar si puede afectar de alguna manera a nuestros usuarios o al proceso de configuración del software que vayamos a utilizar. </p>
<p>Lo más probable es que con el tiempo todo el software, tanto online como off-line, esté perfectamente adaptado a las configuraciones multilingües, pero por ahora (noviembre de 2011), sigue siendo algo un poco complicado. Prueba de ello es la longitud de este artículo.</p>
<h3>Bibliografía</h3>
<p>A continuación encontrarás una lista de recursos para poder acceder a información de primera mano sobre los IDNs y los diferentes navegadores:</p>
<ul>
<li><a href="http://mct.verisign-grs.com/ ">IDN Conversion Tool</a>: Herramienta para convertir nombres de dominio internacionales (IDN) a caracteres nativos o Punycode.</li>
<li><a href="http://www.chromium.org/developers/design-documents/idn-in-google-chrome">IDN in Google Chrome (Google Chrome&#8217;s IDN policy)</a>: artículo sobre la política de Google Chrome con respecto a los IDNs.</li>
<li><a href="http://msdn.microsoft.com/en-us/library/bb250505%28VS.85%29.aspx">Internationalized Domain Name Support in Microsoft Internet Explorer 7</a>: política de Microsoft con respecto al tratamiento de los IDNs en Internet Explorer 7 y versiones superiores.</li>
<li><a href="http://www.mozilla.org/projects/security/tld-idn-policy-list.html">Mozilla.org: IDN-enabled TLDs</a>: Lista de los TLDs (dominios de primer nivel) para los cuales el sofware de Mozilla muestra IDNs en formato Unicode.</li>
<li><a href="http://support.apple.com/kb/TA22996?viewlocale=en_US">About Safari International Domain Name support</a>: artículo sobre la política de Apple con respecto a los IDNs.</li>
<li><a href="http://www.opera.com/support/kb/view/788/">Opera support for IDNs</a>: artículo sobre la política de Opera con respecto a los IDNs.</li>
<li><a href="http://www.iana.org/domains/idn-tables/">Repository of IDN Practices</a>: Tablas de IDNs de la IANA (Internet Assigned Numbers Authority) para consultar las letras permitidas en cada TLD.</li>
<li><a href="http://www.iana.org/domains/idn-tables/tables/cat_ca_1.0.html">IDN Tables: CAT (catalan)</a>: tabla de caracteres asignados por la <a href="http://www.domini.cat/">Fundació puntCAT</a> para el catalán.</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.danielnabil.com/blog/nombres-dominio-internacionalizados-idn-wordpress-seo-navegadores/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Cursos de programación online con Codecademy</title>
		<link>http://www.danielnabil.com/blog/cursos-programacion-online-codecademy/</link>
		<comments>http://www.danielnabil.com/blog/cursos-programacion-online-codecademy/#comments</comments>
		<pubDate>Sun, 06 Nov 2011 00:35:40 +0000</pubDate>
		<dc:creator>Daniel</dc:creator>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[Internet]]></category>

		<guid isPermaLink="false">http://www.danielnabil.com/?p=530</guid>
		<description><![CDATA[
Aparte de los cursos y clases presenciales de toda la vida a los que uno se puede apuntar, poco a poco van apareciendo en Internet más y más servicios que permiten aprender idiomas, a cocinar, a tocar un instrumento e incluso lenguajes de programación de manera cómoda y normalmente bastante ... <a href="http://www.danielnabil.com/blog/cursos-programacion-online-codecademy/" class="seguir"><img src="/wp-content/themes/dn2/img/mas.png" alt="" /></a>]]></description>
			<content:encoded><![CDATA[<p><img src="http://www.danielnabil.com/img/codecademy-clases-online.jpg" alt="Codecademy: cursos de programación online: Javascript" width="350" height="251" class="alignright size-full wp-image-531" /></p>
<p>Aparte de los cursos y clases presenciales de toda la vida a los que uno se puede apuntar, poco a poco van apareciendo en Internet más y más servicios que permiten aprender idiomas, a cocinar, a tocar un instrumento e incluso lenguajes de programación de manera cómoda y normalmente bastante económica.</p>
<p><strong><a href="http://www.codecademy.com/">Codecademy</a></strong> es uno de esos servicios, centrado en ofrecer <strong>cursos de programación online</strong>. A diferencia de competidores como por ejemplo <a href="http://www.lynda.com/">Lynda.com</a>, más enfocado al aprendizaje a través de vídeos, <em>Codecademy</em> permite <strong>aprender a programar de forma gratuita, interactiva y entretenida directamente desde el navegador</strong>, sin necesidad de registrarse ni de instalar nada en nuestro ordenador.</p>
<p>Sólo hay que saber un poco de inglés e ir siguiendo las lecciones paso a paso. Las explicaciones son breves, concisas y van siempre acompañadas de ejercicios interactivos, para poner a prueba lo que vamos aprendiendo.</p>
<p>Además, lo mejor de cursos como este es que nos permiten ir aprendiendo al ritmo que queramos; más rápido si nos parece fácil o repitiendo las lecciones y ejercicios en caso de que algo no nos haya quedado claro.</p>
<p>Ahora mismo <em>Codecademy</em> permite acceder de manera gratuita a un <strong>curso de iniciación a la programación en Javascript</strong>, que de momento consta de 3 cursos con 19 lecciones y 96 ejercicios, a través de los cuales aprenderemos las nociones básicas de este lenguaje (variables, operaciones, matrices, condicionales, bucles, funciones&#8230;) </p>
<p>Viendo el potencial de la enseñanza en Internet y <a href="http://techcrunch.com/2011/08/22/codecademy-surges-to-200000-users-2-1-million-lessons-completed-in-72-hours/">el interés que este tipo de cursos está generando</a>, lo más probable es que muy pronto tengan disponibles muchos más cursos online para aprender, por ejemplo, HTML, CSS, Ruby, Javascript o jQuery. Desde luego, una muy buena alternativa al aprendizaje clásico y estático <a href="http://www.danielnabil.com/blog/libros-sobre-diseno-web-programacion-wordpress-internet/">de los libros</a>.</p>
<p><strong>Enlace: <a href="http://www.codecademy.com/">Codecademy, learn to code Javascript</a></strong></p>
<p>Más información:</p>
<ul class="lessMargin">
<li><a href="http://venturebeat.com/2011/10/27/codecademy-2-5-million/">Codecademy raises $2.5M to make you a coding master</a></li>
<li><a href="http://thenextweb.com/apps/2011/10/14/code-academy-learning-to-code-just-became-fun-easy-and-slightly-addicting/">Codecademy: Learning to code just became fun, easy and slightly addictive</a></li>
<li><a href="http://wwwhatsnew.com/2011/08/19/codecademy-para-aprender-a-programar/">Codecademy, para aprender a programar</a></li>
<li><a href="http://techcrunch.com/2011/08/22/codecademy-surges-to-200000-users-2-1-million-lessons-completed-in-72-hours/">Codecademy Surges To 200,000 Users, 2.1 Million Lessons Completed In 72 Hours</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.danielnabil.com/blog/cursos-programacion-online-codecademy/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Lorem Pixum: generador automático de imágenes para maquetación web</title>
		<link>http://www.danielnabil.com/blog/lorem-pixum-generadores-automaticos-imagenes-maquetacion-web/</link>
		<comments>http://www.danielnabil.com/blog/lorem-pixum-generadores-automaticos-imagenes-maquetacion-web/#comments</comments>
		<pubDate>Sun, 14 Aug 2011 15:10:44 +0000</pubDate>
		<dc:creator>Daniel</dc:creator>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[Diseño web]]></category>
		<category><![CDATA[HTML/CSS]]></category>
		<category><![CDATA[WordPress]]></category>

		<guid isPermaLink="false">http://www.danielnabil.com/?p=525</guid>
		<description><![CDATA[Imagen generada automáticamente por Lorem Pixum
De la misma manera que existen generadores de textos de muestra (a partir del conocido Lorem Ipsum o de otros textos), también existen generadores de fotos aleatorias y de espacios para imágenes (placeholders).
Por ejemplo, la imagen que ves aquí al lado está generada automáticamente. Lo ... <a href="http://www.danielnabil.com/blog/lorem-pixum-generadores-automaticos-imagenes-maquetacion-web/" class="seguir"><img src="/wp-content/themes/dn2/img/mas.png" alt="" /></a>]]></description>
			<content:encoded><![CDATA[<div class="wp-caption alignright" style="width: 360px"><img src="http://lorempixum.com/350/230/" alt="Imagen generada automáticamente por Lorem Pixum" /><p class="wp-caption-text">Imagen generada automáticamente por Lorem Pixum</p></div>
<p>De la misma manera que existen generadores de textos de muestra (a partir del conocido <em>Lorem Ipsum</em> o de otros textos), también existen generadores de fotos aleatorias y de espacios para imágenes (placeholders).</p>
<p>Por ejemplo, la imagen que ves aquí al lado está generada automáticamente. Lo único que se ha especificado es que mida 350 x 230 pixels. </p>
<p>Este tipo de servicios son perfectos a la hora de empezar a maquetar una web, evitándonos tener que recurrir a fotos de stock o imágenes de relleno que podamos tener preparadas en nuestro cajón de recursos.</p>
<h2>Lorem Pixum</h2>
<p><a href="http://lorempixum.com/">Lorem Pixum</a> es un <strong>servicio de generación automática de imágenes gratuito y muy fácil de utilizar</strong>. Solo tenemos que apuntar la URL de la imagen a este servicio, especificando las dimensiones que necesitamos, y nos incrustará una foto automáticamente. En el ejemplo anterior la URL sería:</p>
<pre>http://lorempixum.com/350/230/</pre>
<p>Podemos seleccionar cualquier tamaño, es decir, no estamos limitados a tamaños estándar. Funcionará igualmente bien tanto si pedimos una foto de 300 x 200 pixels, como cualquier otra proporción caprichosa que necesitemos, por ejemplo 206 x 191. Eso sí, el límite, tanto del ancho como del alto, es de 1920 pixels, el perfil de color siempre será RGB o escala de grises y la resolución, 72 ppp.</p>
<p>Lorem Pixum nos permite seleccionar fotos de entre 11 temas o categorías: fotos abstractas, de animales, urbanas, de comida, nocturnas, moda, gente, naturaleza, deportes, técnicas y transportes.</p>
<p>Esto nos puede venir muy bien, por ejemplo, si estamos montando una web para un restaurante y todavía no nos han enviado las fotos de los platos del menú. Podríamos utilizar las fotos de <em>Lorem Pixum</em> especificando que sólo queremos fotos cuadradas de exactamente 500 x 500 pixels y únicamente de la categoría &#8220;Comida&#8221;. Así:</p>
<pre>http://lorempixum.com/500/500/food</pre>
<p>Si queremos recibir siempre la misma foto, basta añadir el número detrás de la categoría:</p>
<pre>http://lorempixum.com/400/200/sports/1/</pre>
<p>También es posible añadir un pequeño texto vertical sobre la foto:</p>
<pre>http://lorempixum.com/400/300/technics/3/Ubuntu/</pre>
<p>Utilizar un servicio como este tiene dos ventajas más: no tenemos que preocuparnos por los derechos de las fotos (siempre y cuando las utilicemos únicamente para maquetación web o de imprenta) y que, al no estar alojadas las fotos en nuestro servidor, tampoco tenemos que subir ni copiar nada, ni preocuparnos por el ancho de banda (en otras palabras, estamos haciendo &#8220;<a href="http://es.wikipedia.org/wiki/Hot-linking">hotlinking</a>&#8220;, pero en este caso está permitido).</p>
<p>Lógicamente, podemos utilizar este servicio tanto desde las plantillas HTML o CSS, como directamente desde WordPress o cualquier otro editor de contenidos que estemos utilizando.</p>
<p>Lorem Pixum se está haciendo bastante popular. De hecho, ahora mismo llevan servidas casi <strong>22 millones de fotos</strong> desde que pusieron en marcha el servicio en abril de 2011.</p>
<p>Sinceramente, cuando lo conocí pensé que sería una curiosidad más, algo que desechas rápidamente porque no te soluciona o facilita nada en el día a día. Pero no es así. Por ejemplo, es mucho más rápido generar una imagen con un tamaño específico a partir de Lorem Pixum, que abrir una foto en Photoshop, recortarla y guardarla para web. Si estamos maquetando una web, es más fácil y mucho más rápido probar diferentes tamaños de una foto cambiando sólo la URL, que tener que crear todos los tamaños previamente.</p>
<p>Si te ha convencido, puedes probar esta herramienta visitando: <a href="http://lorempixum.com/">http://lorempixum.com/</a></p>
<h2>Otros servicios similares</h2>
<ul>
<li class="clear"><img src="http://placekitten.com/125/80" alt="Foto generada automáticamente por Placekitten" class="alignright" /><strong>Placekitten</strong> es otro generador de fotos parecido a Lorem Pixum pero con la particularidad de que únicamente nos entrega fotos sobre un tema: gatos<br />
<a href="http://placekitten.com/">http://placekitten.com/</a></li>
<li class="clear"><img src="http://placehold.it/125x80" alt="Foto generada automáticamente por Placehold.it" class="alignright" /><strong>Placehold.it</strong> es diferente a los dos servicios anteriores. En este caso, se trata de un generador de espacios para imágenes (los típicos cuadros grises tan frecuentes en maquetación). Podemos seleccionar el formato, texto, color y tamaño de los recuadros.<br />
<a href="http://placehold.it/">http://placehold.it/</a></li>
<li class="clear"><img src="http://ipsumimage.appspot.com/125x80" alt="Foto generada automáticamente por Ipsum Image" class="alignright" /><strong>Ipsum Image</strong> es otro generador de espacios para imágenes. Además del tamaño, nos permite seleccionar el color de fondo, el texto que queremos que aparezca sobre la foto (incluido el tamaño y el color de ese texto) y el formato (PNG, JPG o JPEG)<br />
<a href="http://ipsumimage.appspot.com/">http://ipsumimage.appspot.com/</a></li>
</ul>
<h2>Generadores de textos de muestra</h2>
<p>Si lo que buscas son generadores de textos de muestra (dummy text), aquí tienes algunas herramientas útiles:</p>
<ul>
<li><strong>RandomText</strong>, generador aleatorio de Lorem Ipsum y textos de muestra.<br />
<a href="http://www.randomtext.me/">http://www.randomtext.me/</a></li>
<li><strong>Lorem ipsum for webdesigners</strong>. Generador de textos aleatorios a partir de obras literarias de autores conocidos.<br />
<a href="http://www.blindtextgenerator.com/lorem-ipsum">http://www.blindtextgenerator.com/lorem-ipsum</a></li>
<li><strong>Quijotipsum</strong>, generador de texto basado en El Quijote de Cervantes: <a href="http://www.quijotipsum.com/">http://www.quijotipsum.com/</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.danielnabil.com/blog/lorem-pixum-generadores-automaticos-imagenes-maquetacion-web/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>La World Wide Web cumple veinte años</title>
		<link>http://www.danielnabil.com/blog/20-aniversario-world-wide-web/</link>
		<comments>http://www.danielnabil.com/blog/20-aniversario-world-wide-web/#comments</comments>
		<pubDate>Sat, 06 Aug 2011 18:38:31 +0000</pubDate>
		<dc:creator>Daniel</dc:creator>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[Internet]]></category>

		<guid isPermaLink="false">http://www.danielnabil.com/?p=523</guid>
		<description><![CDATA[WorldWideWeb (Nexus), el primer navegador y editor de páginas web creado por Tim Berners-Lee
Un 6 de agosto de 1991, hace exactamente 20 años, se inauguró la &#8220;gran base de datos de hipertexto con enlaces&#8221; conocida hoy en día como World Wide Web, una tecnología que, junto al desarrollo de Internet, ... <a href="http://www.danielnabil.com/blog/20-aniversario-world-wide-web/" class="seguir"><img src="/wp-content/themes/dn2/img/mas.png" alt="" /></a>]]></description>
			<content:encoded><![CDATA[<div id="attachment_524" class="wp-caption alignnone" style="width: 628px"><img src="http://www.danielnabil.com/img/worldwideweb-browser.jpg" alt="El Navegador WorldWideWeb de Berners-Lee" width="618" height="306" class="size-full wp-image-524" /><p class="wp-caption-text">WorldWideWeb (Nexus), el primer navegador y editor de páginas web creado por Tim Berners-Lee</p></div>
<p>Un 6 de agosto de 1991, hace exactamente 20 años, se inauguró la &#8220;gran base de datos de hipertexto con enlaces&#8221; conocida hoy en día como <strong>World Wide Web</strong>, una tecnología que, junto al desarrollo de Internet, iba a cambiar radicalmente la manera en que nos comunicamos y compartimos.</p>
<p><a href="http://es.wikipedia.org/wiki/Tim_Berners-Lee">Tim Berners-Lee</a>, creador de la Web, <a href="http://www.w3.org/People/Berners-Lee/FAQ.html">explica</a> como curiosidad que, antes de llamarlo &#8220;World Wide Web&#8221;, algunos de los nombres que se barajaron para este nuevo proyecto fueron &#8220;The Information Mesh&#8221; (La Malla de Información) o &#8220;The Information Mine&#8221; (La Mina de Información), siglas de su propio nombre (TIM).</p>
<p>En 1973, <a href="http://es.wikipedia.org/wiki/Vinton_Cerf">Vinton Cerf y Bob Kahn</a> definieron el protocol gracias al cual se permitía enviar paquetes de un ordenador a otro. Berners-Lee llevaba desde 1980 investigando la manera de compartir información entre científicos desde diferentes puntos del planeta sin tener que utilizar necesariamente el mismo tipo de hardware y software. </p>
<p>Las incompatibilidades entre las plataformas y herramientas que se utilizaban en esa fecha hacían imposible acceder a los documentos existente a través de una sistema común, lo cual suponía una pérdida de tiempo, frustación y respuestas obsoletas a consultas simples.</p>
<p>Con este trasfondo, Berners-Lee y su equipo propusieron un sistema de hipertexto de acceso a la documentación del <a href="http://es.wikipedia.org/wiki/Organizaci%C3%B3n_Europea_para_la_Investigaci%C3%B3n_Nuclear">CERN</a>, creando así la semilla de la World Wide Web tal y como lo conocemos hoy en día.</p>
<p class="destacado">Entre los objetivos iniciales que se propusieron estaba el ofrecer el software de manera gratuita, para asegurar que todo el mundo tuviera acceso a la Web.</p>
<p>Afortunadamente, Tim Berners-Lee puso su idea a disposición de todo el mundo, libremente, sin patentes ni canones de ningún tipo. De hecho, entre las propuestas del proyecto inicial <a href="http://www.w3.org/Proposal.html">se preocuparon de explicar</a> lo que había que evitar: utilizar complejos sistemas de autorización en los que la información no pudiera ser accesible por todo el mundo (literalmente). Todo el tráfico de la red debía ser público.</p>
<p>Ahora, veinte años después y así como la Web va evolucionando, debemos seguir <a href="http://www.w3.org/People/Berners-Lee/FAQ.html">el consejo de Berners-Lee</a> y hacer un uso inteligente de toda la información que ahora tenemos a nuestro alcance.</p>
<p>Si te interesa el tema, aquí encontrarás un entretenido artículo (en inglés) que recoge algunas opiniones sobre cómo piensa la gente que será Internet dentro de 20 años: <a href="http://thenextweb.com/insider/2011/08/06/what-will-the-internet-be-like-in-20-years/">What will the Internet be like in 20 years?</a>. </p>
<p>Particularmente pienso que hasta ahora solamente hemos llegado a la parte que se refiere a la Red (Web), pero que a esta &#8220;red de alcance mundial&#8221; todavía le falta alcanzar gran parte de su significado, precisamente el de &#8220;alcance mundial&#8221;, <em>literalmente</em>, tal como la definieron hace hoy veinte años.</p>
<p>Si quieres ampliar información, aquí tienes algunos artículos relacionados:</p>
<ul>
<li>Tim Berners-Lee responde a algunas preguntas frecuentes (en inglés):<br />
<a href="http://www.w3.org/People/Berners-Lee/FAQ.html">http://www.w3.org/People/Berners-Lee/FAQ.html</a></li>
<li>Tal día como hoy hace 20 años nació la World Wide Web (en inglés):<br />
<a href="http://thenextweb.com/insider/2011/08/06/20-years-ago-today-the-world-wide-web-opened-to-the-public/">http://thenextweb.com/insider/2011/08/06/20-years-ago-today-the-world-wide-web&#8230;</a></li>
<li>The World Wide Web: A very short personal history, por Tim Berners-Lee (en inglés): <a href="http://www.w3.org/People/Berners-Lee/ShortHistory">http://www.w3.org/People/Berners-Lee/ShortHistory</a></li>
<li>La evolución del diseño web desde 1990 hasta hoy. De la web textual a las redes sociales y los dispositivos móviles: <a href="http://www.danielnabil.com/blog/evolucion-diseno-web/">http://www.danielnabil.com/blog/evolucion-diseno-web/</a></li>
<li>Weaving the Web: The Original Design and Ultimate Destiny of the World Wide Web by its Inventor (Amazon): <a href="http://www.amazon.com/Weaving-Web-Original-Ultimate-Inventor/dp/0062515861">http://www.amazon.com/Weaving-Web-Original-Ultimate-Inventor&#8230;</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.danielnabil.com/blog/20-aniversario-world-wide-web/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>La evolución del diseño web desde 1990 hasta hoy</title>
		<link>http://www.danielnabil.com/blog/evolucion-diseno-web/</link>
		<comments>http://www.danielnabil.com/blog/evolucion-diseno-web/#comments</comments>
		<pubDate>Fri, 15 Jul 2011 18:54:41 +0000</pubDate>
		<dc:creator>Daniel</dc:creator>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[Diseño web]]></category>
		<category><![CDATA[Internet]]></category>

		<guid isPermaLink="false">http://www.danielnabil.com/?p=505</guid>
		<description><![CDATA[Desde 1990 hasta hoy, Internet y el diseño web han evolucionado de forma imparable desde la web textual a la web móvil y multimedia; desde los diseños basados en tablas a la maquetación en CSS, pasando por el Flash, las páginas dinámicas, la web semántica, el comercio online, las redes ... <a href="http://www.danielnabil.com/blog/evolucion-diseno-web/" class="seguir"><img src="/wp-content/themes/dn2/img/mas.png" alt="" /></a>]]></description>
			<content:encoded><![CDATA[<p>Desde 1990 hasta hoy, Internet y el diseño web han evolucionado de forma imparable desde la web textual a la web móvil y multimedia; desde los diseños basados en tablas a la maquetación en CSS, pasando por el Flash, las páginas dinámicas, la web semántica, el comercio online, las redes sociales, los CMS&#8230;</p>
<p>Desde sus inicios la web se ha ido desarrollando muy rápidamente hasta convertirse en algo imprescindible en nuestras vidas, pero a pesar de que la historia de Internet y el diseño web es muy corta (la primera página web se publicó <a href="http://thenextweb.com/insider/2011/08/06/20-years-ago-today-the-world-wide-web-opened-to-the-public/">hace 20 años</a>), es difícil imaginarse cómo serán los próximos 20 años y qué avances tecnológicos iran apareciendo.</p>
<p>Este gráfico creado por <a href="http://blog.kissmetrics.com/evolution-of-web-design/">KISSmetrics</a> muestra esta evolución y cómo ha ido cambiando el <a href="http://www.danielnabil.com/">diseño web</a> a partir de las diferentes tecnologías que lo hacen posible.</p>
<p><img src="http://www.danielnabil.com/img/evolucion-diseno-web.gif" alt="Gráfico sobre la historia del diseño web desde 1990" title="La evolución del diseño web / The evolution of web design" width="618" height="6132" class="size-full wp-image-506 mt" /></p>
]]></content:encoded>
			<wfw:commentRss>http://www.danielnabil.com/blog/evolucion-diseno-web/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Cómo proteger entradas o páginas con contraseña en WordPress</title>
		<link>http://www.danielnabil.com/blog/wordpress-proteger-contrasena-paginas-entradas/</link>
		<comments>http://www.danielnabil.com/blog/wordpress-proteger-contrasena-paginas-entradas/#comments</comments>
		<pubDate>Wed, 29 Jun 2011 23:46:09 +0000</pubDate>
		<dc:creator>Daniel</dc:creator>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[WordPress]]></category>

		<guid isPermaLink="false">http://www.danielnabil.com/?p=501</guid>
		<description><![CDATA[
WordPress permite desde hace tiempo proteger fácilmente nuestra información privada bajo contraseña. Cualquier entrada o página de nuestra web o blog puede ser publicada para que solamente algunos usuarios tengan acceso.
Para publicar un contenido protegido por contraseña:

Desde el editor de páginas o entradas de WordPress tenemos que pulsar el botón ... <a href="http://www.danielnabil.com/blog/wordpress-proteger-contrasena-paginas-entradas/" class="seguir"><img src="/wp-content/themes/dn2/img/mas.png" alt="" /></a>]]></description>
			<content:encoded><![CDATA[<p><img src="http://www.danielnabil.com/img/wordpress-proteger-contrasena.png" alt="Opciones de WordPress: proteger con contraseña" width="321" height="349" class="alignright size-full wp-image-502" /></p>
<p><a href="http://www.danielnabil.com/tema/wordpress/">WordPress</a> permite desde hace tiempo proteger fácilmente nuestra información privada bajo contraseña. Cualquier entrada o página de nuestra web o blog puede ser publicada para que solamente algunos usuarios tengan acceso.</p>
<p>Para publicar un contenido protegido por contraseña:</p>
<ol>
<li>Desde el editor de páginas o entradas de WordPress tenemos que pulsar el botón &#8220;Editar&#8221; que hay junto a la opción &#8220;Visibilidad: Público&#8221;, seleccionar &#8220;Protegida con contraseña&#8221; y después pulsar el botón &#8220;Aceptar&#8221; (ver imagen). También se puede cambiar o editar la contraseña desde la <em>edición rápida</em>.</li>
<li>Después solo tenemos que pulsar el botón &#8220;Publicar&#8221;. A partir de ese momento nuestra información solo estará disponible para aquellos a quienes hayamos facilitado la contraseña del primer paso.</li>
</ol>
<p>Por defecto WordPress añade automáticamente la palabra &#8220;Protegido&#8221; (o &#8220;Protected&#8221;, si no la hemos traducido) al título de nuestra entrada o página. Para eliminar esta palabra y dejar el título tal como lo hemos publicado, tendremos que hacer algo más:</p>
<ol>
<li>Abrir el archivo <code>functions.php</code> (si nuestra plantilla no lo tiene, lo creamos)</li>
<li>Añadir este fragmento de código:
<pre class="brush: php; title: ; notranslate">
// Cambiando el título de los posts protegidos con contraseña:
add_filter('the_title','entradas_protegidas');
function entradas_protegidas($title) {
	return str_replace('Protegido:','', $title);
	}
</pre>
<p>Con esto lo que hacemos es añadir un filtro al título para que sustituya la palabra &#8220;Protegido&#8221; por &#8220;&#8221;, es decir, por nada. Si lo que queremos es sustituirla por otra palabra, solo tenemos que escribirlo entre las comillas. Por ejemplo:</p>
<pre class="brush: php; title: ; notranslate">
// Cambiando el título de los posts protegidos con contraseña:
add_filter('the_title','entradas_protegidas');
function entradas_protegidas($title) {
	return str_replace('Protegido:','Acceso restringido:', $title);
	}
</pre>
</li>
</ol>
<p>Este método protege dos bloques de información: el contenido (the_content) y los comentarios (comments_template).</p>
<h3>¿Qué diferencia hay entre &#8220;Protegida con contraseña&#8221; y &#8220;Privada&#8221;?</h3>
<p>Cualquiera de estas dos opciones protege nuestra información, pero hay una diferencia importante: al marcar una entrada o página como privada, ésta desaparece completamente, es decir, la visibilidad para el visitante es nula, mientras que si la protegemos con contraseña lo único que ocultamos es el contenido (pero no el título). </p>
<p>Por defecto, el contenido privado en WordPress solo es visible para administradores y editores. Cualquier rol con menos privilegios carece de la posibilidad de visualizar (y mucho menos editar) esta información.</p>
<h3>Cómo modificar el formulario de protección con contraseña</h3>
<p>WordPress, al menos hasta la versión 3.1.3, no nos ofrece ninguna clase especial para dar estilo a este formulario (algo un poco extraño ya que una simple clase en el <code>body</code> nos permitiría acceder a él mediante reglas CSS). Para poder editar este formulario, lo mejor es recrear la función en nuestro archivo <code>functions.php</code>:</p>
<pre class="brush: php; title: ; notranslate">
add_filter('the_password_form', 'nuevo_formulario');
function nuevo_formulario() {
    global $post;
    $label = 'pwbox-'.(empty($post-&gt;ID) ? rand() : $post-&gt;ID );
    $output = '&lt;form class=&quot;formulario-contrasena&quot; action=&quot;' . get_option('siteurl') . '/wp-pass.php&quot; method=&quot;post&quot;&gt;' . __(&quot;&lt;p&gt;&lt;strong&gt;Esta información está protegida.&lt;/strong&gt;&lt;br /&gt;Por favor, para verla escribe la contraseña a continuación:&lt;/p&gt;&quot;) . '&lt;p&gt;&lt;input name=&quot;post_password&quot; id=&quot;' . $label . '&quot; type=&quot;password&quot; size=&quot;25&quot; /&gt;&lt;input type=&quot;submit&quot; name=&quot;Submit&quot; value=&quot;' . esc_attr__(&quot;Submit&quot;) . '&quot; /&gt;&lt;/p&gt;&lt;/form&gt;';
    return $output;
    }
</pre>
<h3>Proteger con contraseña una web completa</h3>
<p>Hasta el momento WordPress tampoco ofrece la posibilidad de proteger toda una web con contraseña, aunque es posible que forme parte de las opciones del sistema en futuras versiones. De todas formas, hasta que esto ocurra, afortunadamente existen numerosos plugins que facilitan mucho el tema:</p>
<ul class="lessMargin">
<li><a href="http://wordpress.org/extend/plugins/pagerestrict/">Page Restrict</a>: acceso restringido para páginas o entradas seleccionadas</li>
<li><a href="http://wordpress.org/extend/plugins/restricted-site-access/">Restricted Site Access</a>: acceso limitado a usuarios registrados o a determinadas direcciones IP</li>
<li><a href="http://wordpress.org/extend/plugins/registered-users-only/">Registered Users Only</a>: obliga a todos los visitantes a identificarse para poder acceder a la web</li>
</ul>
<p>También podemos restringir el acceso a nuestra web mediante .htaccess. Un simple ejemplo:</p>
<pre class="brush: php; title: ; notranslate">
RewriteEngine on
RewriteCond %{REQUEST_URI} !/acceso-restringido.php$
RewriteCond %{REMOTE_ADDR} !^80\.31\.190\.52
RewriteCond %{HTTP_REFERER} !^http://www.miweb.com/ [NC]
RewriteCond %{HTTP_REFERER} !^http://miweb.com/ [NC]
RewriteRule $ /acceso-restringido.php [R=302,L]
</pre>
<p>Así, cualquier usuario que visite nuestra web y no tenga la IP del ejemplo será redireccionado a la página &#8220;acceso-restringido.php&#8221;.</p>
<h3>Más información:</h3>
<ul class="peq lessMargin">
<li><a href="http://codex.wordpress.org/Content_Visibility">WordPress content visibility</a> (en inglés)</li>
<li><a href="http://digwp.com/2009/08/password-protect-more-than-the_content/">Password Protect More Than the_content()</a> (en inglés)</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.danielnabil.com/blog/wordpress-proteger-contrasena-paginas-entradas/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
	</channel>
</rss>

