<?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>Aleph &#187; Internet</title>
	<atom:link href="http://aleph.llull.net/category/informatica/internet/feed/" rel="self" type="application/rss+xml" />
	<link>http://aleph.llull.net</link>
	<description></description>
	<lastBuildDate>Mon, 01 Aug 2011 08:48:44 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.1.2</generator>
		<item>
		<title>Cambiar la contraseña de Google en Android</title>
		<link>http://aleph.llull.net/2010/11/07/cambiar-la-contrasena-de-google-en-android/</link>
		<comments>http://aleph.llull.net/2010/11/07/cambiar-la-contrasena-de-google-en-android/#comments</comments>
		<pubDate>Sun, 07 Nov 2010 12:06:00 +0000</pubDate>
		<dc:creator>Eduard</dc:creator>
				<category><![CDATA[Internet]]></category>
		<category><![CDATA[android]]></category>
		<category><![CDATA[captcha]]></category>
		<category><![CDATA[gmail]]></category>
		<category><![CDATA[google]]></category>
		<category><![CDATA[nexus one]]></category>
		<category><![CDATA[password]]></category>

		<guid isPermaLink="false">http://aleph.llull.net/?p=906</guid>
		<description><![CDATA[Hoy me ha dado por cambiar la contraseña de mi cuenta en Google y, como era de esperar, mi Nexus One ha dejado de sincronizar los contactos y emails, pero no me esperaba que fuera tan complicado cambiarle la contraseña. Aunque debo reconocer que seguramente la culpa sea mía Cuando la sincronización ha fallado, en [...]]]></description>
			<content:encoded><![CDATA[<p><img class="size-full wp-image-909 alignright" title="GMail" src="http://aleph.llull.net/wp-content/uploads/gmail-logo.png" alt="" width="187" height="187" />Hoy me ha dado por cambiar la contraseña de <a href="http://www.google.com/profiles/e.llull">mi cuenta en Google</a> y, como era de esperar, mi Nexus One ha dejado de sincronizar los contactos y emails, pero no me esperaba que fuera tan complicado cambiarle la contraseña. Aunque debo reconocer que seguramente la culpa sea mía <img src='http://aleph.llull.net/wp-includes/images/smilies/icon_razz.gif' alt=':-P' class='wp-smiley' /> </p>
<p>Cuando la sincronización ha fallado, en la barra de notificaciones de Android (la barra arriba del todo) ha aparecido el correspondiente aviso. Al hacerle click me ha abierto un dialogo preguntándome por un captcha, que por su tamaño resulta <strong>mu</strong><strong>y complicado</strong> leer y con el teclado en la pantalla resulta <strong>muy sencillo</strong> equivocarse al teclear. Después de contestar el captcha debía introducir la nueva contraseña, pero no conseguía pasar del captcha.</p>
<p>Tras buscar un poco por la ayuda de GMail, he encontrado que si te equivocabas en repetidas ocasiones al introducir el captcha, este se bloquearía. Por el tamaño que tiene, estoy convencido que en mis primeros intentos debo haberlo bloqueado. Por suerte los captchas se pueden desbloquear desde <a href="https://www.google.com/accounts/UnlockCaptcha">https://www.google.com/accounts/UnlockCaptcha</a>, y tras hacerlo he podido poner la nueva contraseña en el móvil sin ningún problema.</p>
<p>Así que, ya sabéis que hacer si os encontráis en la misma situación.</p>
]]></content:encoded>
			<wfw:commentRss>http://aleph.llull.net/2010/11/07/cambiar-la-contrasena-de-google-en-android/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>El porqué de las instancias &#8220;spot&#8221; de Amazon EC2</title>
		<link>http://aleph.llull.net/2010/08/10/el-porque-de-las-instancias-spot-de-amazon-ec2/</link>
		<comments>http://aleph.llull.net/2010/08/10/el-porque-de-las-instancias-spot-de-amazon-ec2/#comments</comments>
		<pubDate>Tue, 10 Aug 2010 17:30:11 +0000</pubDate>
		<dc:creator>Eduard</dc:creator>
				<category><![CDATA[Internet]]></category>
		<category><![CDATA[amazon]]></category>
		<category><![CDATA[aws]]></category>
		<category><![CDATA[ec2]]></category>
		<category><![CDATA[rentabilidad]]></category>
		<category><![CDATA[spot]]></category>
		<category><![CDATA[velocity 2010]]></category>

		<guid isPermaLink="false">http://aleph.llull.net/?p=872</guid>
		<description><![CDATA[Desde que las conocí, las instancias spot de Amazon EC2 siempre me habían llamado la atención desde la perspectiva económica. Aunque me parecía una forma interesante de sacar provecho económico a un exceso de capacidad de la plataforma EC2 en horas valle, que de otra forma sería desperdiciada, no acababa de entender sus ventajas frente [...]]]></description>
			<content:encoded><![CDATA[<p><img class="alignleft size-full wp-image-876" src="http://aleph.llull.net/wp-content/uploads/logo_aws.gif" alt="Amazon Web Services" width="164" height="60" /></p>
<p>Desde que las conocí, las <a href="http://aws.amazon.com/ec2/spot-instances/">instancias spot de Amazon EC2</a> siempre me habían llamado la atención desde la perspectiva económica. Aunque me parecía una forma interesante de sacar provecho económico a un exceso de capacidad de la plataforma EC2 en horas valle, que de otra forma sería desperdiciada, no acababa de entender sus ventajas frente a consolidar los servidores virtuales en un menor número de hosts y apagar los ociosos para ahorrar en consumo eléctrico. Siempre había supuesto, como gran parte de la industria, que el consumo eléctrico era el principal gasto en un datacenter.</p>
<p>No lo entendía hasta que hace unos días tuve la oportunidad de ver la presentación &#8220;<a title="Video de la presentación &quot;Datacenter Infrastructure Innovation&quot;" href="http://www.youtube.com/watch?v=kHW-ayt_Urk">Datacenter Infrastructure Innovation</a>&#8221; (<a title="Transperencias de la presentación &quot;Datacenter Infrastructure Innovation&quot;" href="http://mvdirona.com/jrh/TalksAndPapers/JamesHamilton_Velocity20100623.pdf">trasparencias</a>) que <a title="Blog de James Hamilton" href="http://perspectives.mvdirona.com/">James Hamilton</a> dió durante el <a href="http://en.oreilly.com/velocity2010/">Velocity 2010</a>. En su presentación realiza un estudio de los costes mensuales de un datacenter, mensualizando el coste de los servidores y de las infraestructuras de distribución y refrigeración a lo largo de sus periodos de amortización (3 y 10 años, respectivamente). De esta manera, puede comparar esos gastos con el consumo eléctrico. Y resulta que el que yo suponía era el principal gasto realmente es el tercero, siendo los dos primeros el hardware de los servidores y las infraestructuras, en ese orden.</p>
<p>Como bien explica James, consolidando y apagando hosts se ahorraría en consumo eléctrico pero, al no estar sacando ningún provecho económico al servidor físico ni a la parte proporcional de las infraestructuras de distribución y refrigeración, realmente se está perdiendo dinero. Al contrario de lo que ocurre con el consumo eléctrico, la amortización de las infraestructuras no es algo que puedas ahorrarte.</p>
<p>Pero si tienes exceso de capacidad y apagar los servidores supone realmente un gasto, ¿qué se puede hacer? Ahí es donde encajan las instancias spot. Permiten sacarle provecho al exceso de capacidad que se produce en las horas valle, a un precio que resulta atractivo a los clientes. Mientras escribo este artículo, el precio de las instancias spot es un ~60% más barato que las on-demand. Eso sí, las aplicaciones que corran en este tipo de instancias deben estar preparadas para los apagados abruptos que se producen en cuanto la demanda de instancias &#8220;normales&#8221; aumenta.</p>
<p>Instancias spot, ahorro económico para los clientes y una forma de aprovechar la capacidad sobrante para Amazon.</p>
]]></content:encoded>
			<wfw:commentRss>http://aleph.llull.net/2010/08/10/el-porque-de-las-instancias-spot-de-amazon-ec2/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Actualización automática de los plugins de WordPress por SSH</title>
		<link>http://aleph.llull.net/2009/07/11/actualizacion-automatica-de-los-plugins-de-wordpress-por-ssh/</link>
		<comments>http://aleph.llull.net/2009/07/11/actualizacion-automatica-de-los-plugins-de-wordpress-por-ssh/#comments</comments>
		<pubDate>Sat, 11 Jul 2009 15:09:37 +0000</pubDate>
		<dc:creator>Eduard</dc:creator>
				<category><![CDATA[Internet]]></category>
		<category><![CDATA[SysAdmin]]></category>
		<category><![CDATA[how-to]]></category>
		<category><![CDATA[plugins]]></category>
		<category><![CDATA[ssh]]></category>
		<category><![CDATA[wordpress]]></category>

		<guid isPermaLink="false">http://aleph.llull.net/?p=823</guid>
		<description><![CDATA[Las versiones recientes de WordPress te permiten actualizar los plugins instalados con un simple click. Aunque interesante, nunca había usado esa funcionalidad porque requería tener instalado y configurado un servidor FTP o FTPS. Y, la verdad, me daba mucha pereza tener que mantener un servicio sólo para esto. Pero hoy, tras actualizar a la versión [...]]]></description>
			<content:encoded><![CDATA[<p>Las versiones recientes de <a href="http://wordpress.org/">WordPress</a> te permiten actualizar los <em>plugins</em> instalados con un simple <em>click</em>. Aunque interesante, nunca había usado esa funcionalidad porque requería tener instalado y configurado un servidor <acronym title="File Transfer Protocol">FTP</acronym> o <acronym title="File Transfer Protocol over SSL">FTPS</acronym>. Y, la verdad, me daba mucha pereza tener que mantener un servicio sólo para esto.</p>
<p>Pero hoy, tras actualizar a la <a href="http://wordpress.org/development/2009/07/wordpress-2-8-1/">versión 2.8.1</a>, por casualidad he lanzado un <em>grep</em> en un directorio que no tocaba y he descubierto el fichero <code>wp-admin/includes/class-wp-filesystem-ssh2.php</code>. Resulta que WordPress también puede usar <acronym title="Secure SHell">SSH</acronym> para realizar esas actualizaciones. Normalmente esa opción no aparece por que no disponemos de todo el software necesario para que funcione, pero es bastante sencillo conseguirlo. Veamos como hacerlo en una <a href="http://www.debian.org/">Debian</a>:</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;">$ <span style="color: #c20cb9; font-weight: bold;">sudo</span> <span style="color: #c20cb9; font-weight: bold;">aptitude</span> <span style="color: #c20cb9; font-weight: bold;">install</span> libssh2-<span style="color: #000000;">1</span> libssh2-<span style="color: #000000;">1</span>-dev php5-dev
$ <span style="color: #c20cb9; font-weight: bold;">sudo</span> pecl <span style="color: #c20cb9; font-weight: bold;">install</span> <span style="color: #660033;">-f</span> ssh2
$ <span style="color: #c20cb9; font-weight: bold;">sudo</span> <span style="color: #c20cb9; font-weight: bold;">vi</span> <span style="color: #000000; font-weight: bold;">/</span>etc<span style="color: #000000; font-weight: bold;">/</span>php5<span style="color: #000000; font-weight: bold;">/</span>conf.d<span style="color: #000000; font-weight: bold;">/</span>ssh2.ini
    <span style="color: #007800;">extension</span>=ssh2.so
$ <span style="color: #c20cb9; font-weight: bold;">sudo</span> <span style="color: #000000; font-weight: bold;">/</span>etc<span style="color: #000000; font-weight: bold;">/</span>init.d<span style="color: #000000; font-weight: bold;">/</span>apache2 restart</pre></div></div>

<p>Una vez tenemos instalada la extensión <strong>ssh2.so</strong> de <a href="http://www.php.net/">PHP</a>, podemos desinstalar los paquetes de desarrollo que instalamos en el primer paso.</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;">$ <span style="color: #c20cb9; font-weight: bold;">sudo</span> <span style="color: #c20cb9; font-weight: bold;">aptitude</span> remove libssh2-<span style="color: #000000;">1</span> libssh2-<span style="color: #000000;">1</span>-dev php5-dev</pre></div></div>

<p>Listo, ya podemos actualizar los <em>plugins</em> desde la comodidad de nuestro navegador sin necesidad de tener un servidor FTP o FTPS. Seguramente también se puede usar para actualizar el propio WordPress, aunque no lo puedo confirmar ya que yo lo <a title="`Como usar subversion para actualizar versiones` por Perroverd" href="http://mitago.net/archives/2009/05/19/T19_32_33/index.html">actualizo usando subversión</a>.</p>
<p>Como se puede ver es bastante sencillo. De todas formas, os dejo un screencast que he hecho sobre la instalación (inaugurando mi cuenta de YouTube).</p>
<p style="text-align: center;"><span class="youtube">
<object type="application/x-shockwave-flash" width="480" height="360" data="http://www.youtube.com/v/v6IyBoLznRo?color1=d6d6d6&amp;color2=f0f0f0&amp;border=0&amp;fs=1&amp;hl=en&amp;autoplay=0&amp;loop=&amp;showinfo=0&amp;iv_load_policy=3&amp;showsearch=0&amp;rel=0&amp;hd=1">
<param name="movie" value="http://www.youtube.com/v/v6IyBoLznRo?color1=d6d6d6&amp;color2=f0f0f0&amp;border=0&amp;fs=1&amp;hl=en&amp;autoplay=0&amp;loop=&amp;showinfo=0&amp;iv_load_policy=3&amp;showsearch=0&amp;rel=0&amp;hd=1" />
<param name="allowFullScreen" value="true" />
<param name="wmode" value="transparent" />
</object>
</span><p><a href="http://www.youtube.com/watch?v=v6IyBoLznRo&fmt=18"><img src="http://img.youtube.com/vi/v6IyBoLznRo/default.jpg" width="130" height="97" border=0></a></p></p>
]]></content:encoded>
			<wfw:commentRss>http://aleph.llull.net/2009/07/11/actualizacion-automatica-de-los-plugins-de-wordpress-por-ssh/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Optimizaciones en el blog</title>
		<link>http://aleph.llull.net/2009/05/24/optimizaciones-en-el-blog/</link>
		<comments>http://aleph.llull.net/2009/05/24/optimizaciones-en-el-blog/#comments</comments>
		<pubDate>Sun, 24 May 2009 20:58:28 +0000</pubDate>
		<dc:creator>Eduard</dc:creator>
				<category><![CDATA[Internet]]></category>
		<category><![CDATA[apache]]></category>
		<category><![CDATA[how-to]]></category>
		<category><![CDATA[optimización]]></category>
		<category><![CDATA[web]]></category>
		<category><![CDATA[yslow]]></category>

		<guid isPermaLink="false">http://aleph.llull.net/?p=705</guid>
		<description><![CDATA[Desde que Xisco me pidió consejo tras probar varias de sus páginas con YSlow tenía pendiente escribir este post. YSlow es un plugin para Firefox que analiza distintos aspectos que pueden afectar al rendimiento de páginas webs y realiza recomendaciones. Todos los aspectos que se tienen en cuenta giran alrededor del tiempo de carga de [...]]]></description>
			<content:encoded><![CDATA[<p>Desde que <a title="Blog personal d’en Xisco Lladó" href="http://zigazaga.net/">Xisco</a> me pidió consejo tras probar varias de sus páginas con <a title=" Yahoo! YSlow for Firefox" href="http://developer.yahoo.com/yslow/">YSlow</a> tenía pendiente escribir este post. YSlow es un plugin para Firefox que analiza distintos aspectos que pueden afectar al rendimiento de páginas webs y realiza recomendaciones. Todos los aspectos que se tienen en cuenta giran alrededor del tiempo de carga de la web. No entran en temas como optimización de base de datos y otros aspectos internos del servidor.</p>
<p>De <a href="http://developer.yahoo.com/performance/rules.html">todas las reglas</a>, las más sencillas de corregir son:</p>
<ul>
<li><a href="http://developer.yahoo.com/performance/rules.html#expires">Add Expires headers</a></li>
<li><a href="http://developer.yahoo.com/performance/rules.html#gzip">Compress components with gzip</a></li>
<li><a href="http://http://developer.yahoo.com/performance/rules.html#etags">Configure entity tags (ETags)</a></li>
</ul>
<p>Otras reglas pueden suponer reescribir parte de la aplicación pero para solventar estas tres basta con añadir algunas líneas al final del <code>.htaccess</code> del directorio raíz de nuestra web. Hay que tener en cuenta que los modulos necesarios deben estar instalados y la configuración del servidor nos debe permitir establecer esta configuración (directiva <a href="http://httpd.apache.org/docs/2.0/en/mod/core.html#allowoverride">AllowOverride</a>)</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
</pre></td><td class="code"><pre class="apache" style="font-family:monospace;"><span style="color: #adadad; font-style: italic;"># Add Expires Header</span>
&lt;<span style="color: #000000; font-weight:bold;">IfModule</span> mod_expires.c&gt;
<span style="color: #00007f;">ExpiresActive</span> <span style="color: #0000ff;">on</span>
<span style="color: #00007f;">ExpiresByType</span> image/gif <span style="color: #7f007f;">&quot;access plus 1 week&quot;</span>
<span style="color: #00007f;">ExpiresByType</span> image/jpeg <span style="color: #7f007f;">&quot;access plus 1 week&quot;</span>
<span style="color: #00007f;">ExpiresByType</span> image/png <span style="color: #7f007f;">&quot;access plus 1 week&quot;</span>
<span style="color: #00007f;">ExpiresByType</span> text/css <span style="color: #7f007f;">&quot;access plus 1 week&quot;</span>
<span style="color: #00007f;">ExpiresByType</span> application/javascript <span style="color: #7f007f;">&quot;access plus 1 week&quot;</span>
&lt;/<span style="color: #000000; font-weight:bold;">IfModule</span>&gt;
&nbsp;
<span style="color: #adadad; font-style: italic;"># Compress CSS files</span>
&lt;<span style="color: #000000; font-weight:bold;">IfModule</span> mod_deflate.c&gt;
<span style="color: #00007f;">AddOutputFilterByType</span> DEFLATE text/plain text/html text/xml application/rss+xml application/atom_xml
<span style="color: #00007f;">AddOutputFilterByType</span> DEFLATE text/css application/javascript
&lt;/<span style="color: #000000; font-weight:bold;">IfModule</span>&gt;
&nbsp;
<span style="color: #adadad; font-style: italic;"># ETag only use file time and size, but no inode</span>
<span style="color: #00007f;">FileETag</span> MTime Size</pre></td></tr></table></div>

<p>En las líneas 2 a 9 configuramos que las imágenes, hojas de estilo y javascripts tengan una fecha de expiración de una semana a partir del momento en que se ha visitado la página web. Esto significa que el navegador del usuario usará la copia local (fichero cacheado) durante una semana. Este comportamiento puede suponer un problema si tenemos ficheros de estos tipos que vamos modificando sin cambiarle el nombre (p.e. un banner) ya que los navegadores de algunos de los usuarios mantendran las versiones antiguas.</p>
<p>Desde la 12 a la 15 configuramos la compresión de las páginas HTML, feeds (<code>text/xml</code>, <code>application/rss+xml</code> y <code>application/atom_xml</code>), hojas de estilo y javascripts. De esta forma conseguimos ahorrar tráfico (importante si estamos en un hosting con limitaciones de tráfico)  y que el tiempo de transmisión sea menor.</p>
<p>Finalmente, en la última línea configuramos los ETags generados por el propio servidor Apache para los ficheros estáticos. Por defecto, <a href="http://httpd.apache.org/docs/2.0/en/mod/core.html#fileetag">Apache tiene en cuenta tres aspector para generar el ETag</a>: el inodo, fecha de modificación y tamaño. Pero se recomienda no usar el inodo para generarlo ya que si nuestra web empieza a ser conocida y tenemos que distribuir la carga entre varios servidores, es muy poco probable que un fichero tenga el mismo inodo en todos los servidores de la granja. Entonces, el ETag variaría en funcion del servidor que lo generara por lo que no se sacaría provecho a esta cabecera. Para resolverlo, configuramos el Apache para que genere el ETag sólo considerando la fecha de modificación y el tamaño del fichero.</p>
<p>Con esta simple configuración yo conseguí pasar de una puntuación de <a href="http://aleph.llull.net/wp-content/uploads/aleph-yslow-grade-c.png">74</a> a <a href="http://aleph.llull.net/wp-content/uploads/aleph-yslow-grade-b.png">89</a>.</p>
<p>A medida que pueda escribiré algún post más sobre optimización web y como resolverlo en el caso concreto de un blog que usa WordPress.</p>
]]></content:encoded>
			<wfw:commentRss>http://aleph.llull.net/2009/05/24/optimizaciones-en-el-blog/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Posteando desde el iPod Touch</title>
		<link>http://aleph.llull.net/2009/04/11/posteando-desde-el-ipod-touch/</link>
		<comments>http://aleph.llull.net/2009/04/11/posteando-desde-el-ipod-touch/#comments</comments>
		<pubDate>Sat, 11 Apr 2009 10:50:25 +0000</pubDate>
		<dc:creator>Eduard</dc:creator>
				<category><![CDATA[Internet]]></category>
		<category><![CDATA[iphone]]></category>
		<category><![CDATA[ipod]]></category>

		<guid isPermaLink="false">http://aleph.llull.net/2009/04/11/posteando-desde-el-ipod-touch</guid>
		<description><![CDATA[Como ya es bien conocido, Apple inició una revolución en el campo de los dispositivos móviles cuando presentó la última generación de los iPod (incluyendo su teléfono móvil, el iPhone) y dió el siguiente paso al publicar la versión 2.x del software de esos dispositivos al añadir el App Store. Gracias a lo cual la [...]]]></description>
			<content:encoded><![CDATA[<p>Como ya es bien conocido, <a title="Apple" href="http://www.apple.es/">Apple</a> inició una revolución en el campo de los dispositivos móviles cuando presentó la <a title="iPod Touch" href="http://www.apple.es/ipodtouch/">última generación de los iPod</a> (incluyendo su teléfono móvil, el <a title="iPhone" href="http://www.apple.es/iphone/">iPhone</a>) y dió el siguiente paso al publicar la versión 2.x del software de esos dispositivos al añadir el <a title="App Store" href="http://www.apple.es/ipodtouch/appstore/">App Store</a>. Gracias a lo cual la funcionalidad de estas plataformas móviles ha aumentado enormemente al permitir que terceras partes publiquen aplicaciones.</p>
<p>Una de estas aplicaciones, <a href="http://iphone.wordpress.org/">WordPress for iPhone</a>, es la que me ha permitido publicar este post desde mi iPod Touch. Todavía le faltan algunas funcionalidades como, por ejemplo, la de un editor enriquecido que permita añadir enlaces o algo de estilo (listas, negrita, etc.) a los post, pero seguro que sólo es questión de tiempo.</p>
]]></content:encoded>
			<wfw:commentRss>http://aleph.llull.net/2009/04/11/posteando-desde-el-ipod-touch/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>Zenphoto: galería minimalista</title>
		<link>http://aleph.llull.net/2008/11/01/zenphoto-galeria-minimalista/</link>
		<comments>http://aleph.llull.net/2008/11/01/zenphoto-galeria-minimalista/#comments</comments>
		<pubDate>Sat, 01 Nov 2008 19:59:51 +0000</pubDate>
		<dc:creator>Eduard</dc:creator>
				<category><![CDATA[Internet]]></category>
		<category><![CDATA[fotos]]></category>
		<category><![CDATA[galería]]></category>
		<category><![CDATA[mod_rewrite]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[web]]></category>

		<guid isPermaLink="false">http://aleph.llull.net/?p=151</guid>
		<description><![CDATA[Aquellos de vosotros que lleváis más tiempo visitando mi blog, os habréis dado cuenta de que he cambiado el software con el que gestiono mi galería de fotografías. Anteriormente usaba Gallery2 por su integración con WordPress mediante el plugin WPG2 (para el que desarrollé una mejora). Pero si bién era una solución válida, resultaba demasiado [...]]]></description>
			<content:encoded><![CDATA[<p>Aquellos de vosotros que lleváis más tiempo visitando mi blog, os habréis dado cuenta de que he cambiado el software con el que gestiono <a href="http://aleph.llull.net/zenphoto/">mi galería de fotografías</a>. Anteriormente usaba <a href="http://gallery.menalto.com/">Gallery2</a> por su integración con <a href="http://wordpress.org/">WordPress</a> mediante el plugin <a href="http://wordpress.org/extend/plugins/wpg2/">WPG2</a> (para el que desarrollé <a title="Mejorando WPG2: wpg2link" href="http://aleph.llull.net/2005/10/19/mejorando-wpg2-wpg2link">una mejora</a>). Pero si bién era una solución válida, resultaba demasiado compleja. Era como matar moscas a cañonazos. Sólo necesitaba una mínima parte de las características de Gallery2.</p>
<p>Por eso, un día empecé a evaluar alternativas que se ajustaran mejor a mis necesidades. Las únicas características que me interesaban eran que pudiera organizar las fotografías en álbumes, que se pudiera mostrar los datos EXIF de las fotografías, poder etiquetarlas, valorarlas y comentarlas, que se integrara con WordPress y que fuera una herramienta libre. <strong>Finalmente encontré <a href="http://www.zenphoto.org/">Zenphoto</a>, que cumple con todas esas necesidades excepto la integración con WordPress</strong>. En su web lo definen como:</p>
<blockquote><p>Zenphoto is an answer to lots of calls for an online gallery solution that just makes sense. After years of bloated software that does everything and your dishes, zenphoto just shows your photos, simply. It’s got all the functionality and “features” you need, and nothing you don’t. Where the old guys put in a bunch of modules and junk, we put a lot of thought. We hope you agree with our philosopy: simpler is better. Don’t get us wrong though –zenphoto really does have everything you need for your online gallery, and you’ll even stare in awe at some of the innovative innovations we innovated upon.</p></blockquote>
<p>Con el plugin <a href="http://simbul.bzaar.net/zenphotopress/">ZenphotoPress</a> para WordPress conseguí poder añadir fotos de la galería en los posts de forma simple. <strong>Pero integrar la apariencia me lo tuve que currar yo</strong>, usando como guía <a title="Integrating Zenphoto into WordPress" href="http://www.ruzee.com/blog/2006/06/integrating-zenphoto-into-wordpress/">este post de Steffen Rusitschka</a>. Pero con ese método Google no indexaba las páginas de la galería, aunque se visualizaban correctamente, porque todas devolvían un status 404. Además, compartían el título (tag &lt;title&gt; del <abbr title="HyperText Markup Language">HTML</abbr>) haciéndolo muy poco <em>Search Engine Friendly</em>. Para solucionarlo tuve que modificar un poco el código de Steffen. Este es el <code>index.php</code> de mi <em>theme</em> integrado con el WordPress:</p>

<div class="wp_syntax"><div class="code"><pre class="php-brief" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">&lt;?php</span> <span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #339933;">!</span><span style="color: #990000;">defined</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'WEBPATH'</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span> <span style="color: #990000;">die</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> normalizeColumns<span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">3</span><span style="color: #339933;">,</span> <span style="color: #cc66cc;">6</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> <span style="color: #000000; font-weight: bold;">?&gt;</span>
<span style="color: #000000; font-weight: bold;">&lt;?php</span> <span style="color: #b1b100;">require</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">$_SERVER</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'DOCUMENT_ROOT'</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">.</span><span style="color: #0000ff;">'/wp-blog-header.php'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> <span style="color: #000000; font-weight: bold;">?&gt;</span>
<span style="color: #000000; font-weight: bold;">&lt;?php</span>
<span style="color: #666666; font-style: italic;">// set the HTTP status</span>
status_header<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'200'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #666666; font-style: italic;">// add the zen headers to the wordpress header</span>
<span style="color: #000000; font-weight: bold;">function</span> zentitle<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
  <span style="color: #990000;">echo</span> <span style="color: #0000ff;">'&amp;raquo; '</span><span style="color: #339933;">.</span><span style="color: #990000;">strip_tags</span><span style="color: #009900;">&#40;</span>getGalleryTitle<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span>
<span style="color: #000000; font-weight: bold;">function</span> addzen<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
  <span style="color: #990000;">global</span> <span style="color: #0000ff;">$_zp_themeroot</span><span style="color: #339933;">;</span>
  <span style="color: #990000;">echo</span> <span style="color: #0000ff;">'&lt;link rel=&quot;stylesheet&quot; type=&quot;text/css&quot; media=&quot;screen, projection&quot; href=&quot;'</span><span style="color: #339933;">.</span><span style="color: #0000ff;">$_zp_themeroot</span><span style="color: #339933;">.</span><span style="color: #0000ff;">'/css/master.css&quot; /&gt;'</span><span style="color: #339933;">;</span>
  zenJavascript<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
  printRSSHeaderLink<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'Gallery'</span><span style="color: #339933;">,</span><span style="color: #0000ff;">'Gallery RSS'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span>
add_action<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'wp_head'</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'addzen'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
add_action<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'wp_title'</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'zentitle'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #000000; font-weight: bold;">?&gt;</span>
<span style="color: #000000; font-weight: bold;">&lt;?php</span> get_header<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> <span style="color: #000000; font-weight: bold;">?&gt;</span>
&nbsp;
&lt;div class=&quot;index&quot;&gt;
  &lt;!-- Código original de Zenphoto --&gt;
&lt;/div&gt;
&nbsp;
<span style="color: #000000; font-weight: bold;">&lt;?php</span> get_footer<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> <span style="color: #000000; font-weight: bold;">?&gt;</span></pre></div></div>

<p>Lo más extraño es que yo tengo las bases de datos del blog y de la galería separadas pero no he necesitado hacer lo que comenta Steffen de conectarnos a una base de datos y luego a la otra. Por eso, si comparáis mi trozo de códico con el de Steffen veréis que falta esa parte. Lo siguiente será integrar el login de las dos aplicaciones, para lo que he visto que hay plugins, pero de momento no lo he mirado.</p>
<p>Como las URL de los álbumes han cambiado,<strong> también he añadido reglas de redirección en el <code>.htaccess</code> para no perder los enlaces que pudiera haber desde otras páginas</strong>.</p>
<p>Al final he conseguido dejarlo bastante bien integrado y estoy muy contento, tanto del resultado como de la aplicación en sí. Tiene justo lo que necesito. Ni más, ni menos. <img src='http://aleph.llull.net/wp-includes/images/smilies/icon_biggrin.gif' alt=':-D' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://aleph.llull.net/2008/11/01/zenphoto-galeria-minimalista/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Warriors of The Net</title>
		<link>http://aleph.llull.net/2008/10/13/warriors-of-the-net/</link>
		<comments>http://aleph.llull.net/2008/10/13/warriors-of-the-net/#comments</comments>
		<pubDate>Mon, 13 Oct 2008 12:58:56 +0000</pubDate>
		<dc:creator>Eduard</dc:creator>
				<category><![CDATA[Internet]]></category>
		<category><![CDATA[divulgación]]></category>
		<category><![CDATA[LAN]]></category>
		<category><![CDATA[networking]]></category>
		<category><![CDATA[router]]></category>
		<category><![CDATA[switch]]></category>

		<guid isPermaLink="false">http://aleph.llull.net/?p=199</guid>
		<description><![CDATA[Como me suele ocurrir a menudo, mientras navegaba un poco por youtube he encontrado por casualidad un vídeo divulgativo donde se explica cómo funciona Internet para los no técnicos. Versión en inglés &#124; Sitio original La verdad es que está bastante bien, pero hay determinados momentos que no me han gustado tanto. Uno de ellos [...]]]></description>
			<content:encoded><![CDATA[<p>Como me suele ocurrir a menudo, mientras navegaba un poco por youtube he encontrado por casualidad un vídeo divulgativo donde se explica cómo funciona Internet para los no técnicos.</p>
<div style="text-align: center;"><span class="youtube">
<object type="application/x-shockwave-flash" width="425" height="344" data="http://www.youtube.com/v/Oxc13cCNQMA?color1=d6d6d6&amp;color2=f0f0f0&amp;border=0&amp;fs=1&amp;hl=en&amp;autoplay=0&amp;loop=&amp;showinfo=0&amp;iv_load_policy=3&amp;showsearch=0&amp;rel=0">
<param name="movie" value="http://www.youtube.com/v/Oxc13cCNQMA?color1=d6d6d6&amp;color2=f0f0f0&amp;border=0&amp;fs=1&amp;hl=en&amp;autoplay=0&amp;loop=&amp;showinfo=0&amp;iv_load_policy=3&amp;showsearch=0&amp;rel=0" />
<param name="allowFullScreen" value="true" />
<param name="wmode" value="transparent" />
</object>
</span><p><a href="http://www.youtube.com/watch?v=Oxc13cCNQMA"><img src="http://img.youtube.com/vi/Oxc13cCNQMA/default.jpg" width="130" height="97" border=0></a></p><br />
<a title="Warriors of The Net en inglés" href="http://www.youtube.com/watch?v=Ve7_4ot-Dzs">Versión en inglés</a> | <a href="http://www.warriorsofthe.net/">Sitio original</a></div>
<p>La verdad es que está bastante bien, pero hay determinados momentos que no me han gustado tanto. Uno de ellos es cuando aparece el router por primera vez: por la forma en que lo explican parece que el router funciona de forma transparente, mientras que en la realidad los paquetes deben ir destinados al router para que este los dirija hacia el siguiente salto. Otro de esos momentos es cuando hablan del <a title="Ping de la muerte en la Wikipedia" href="http://es.wikipedia.org/wiki/Ping_de_la_muerte">ping de la muerte</a>, ya que me parece un poco sensacionalista y más cuando hace algunos años que los fabricantes solucionaron la vulnerabilidad.</p>
<p>Pero a parte de estos detalles me parece muy interesante.</p>
]]></content:encoded>
			<wfw:commentRss>http://aleph.llull.net/2008/10/13/warriors-of-the-net/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>The adventures of Ace, DBA</title>
		<link>http://aleph.llull.net/2008/10/07/the-adventures-of-ace-dba/</link>
		<comments>http://aleph.llull.net/2008/10/07/the-adventures-of-ace-dba/#comments</comments>
		<pubDate>Tue, 07 Oct 2008 08:05:20 +0000</pubDate>
		<dc:creator>Eduard</dc:creator>
				<category><![CDATA[Internet]]></category>
		<category><![CDATA[dba]]></category>
		<category><![CDATA[humor]]></category>
		<category><![CDATA[tira cómica]]></category>

		<guid isPermaLink="false">http://aleph.llull.net/?p=256</guid>
		<description><![CDATA[&#8220;The adventures of Ace, DBA&#8221; es el título de una tira cómica que descubrí a principios de verano cuyo protagonista es Ace, un DBA de Oracle. El aspecto es similar al de xkcd, como reconoce el autor, y hay alguna tira que es para troncharse. Eso sí, no es para el público en general ya [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: center;"><img class="size-full wp-image-257 aligncenter" title="DBA Superpowers" src="http://aleph.llull.net/wp-content/files/ace-dba-2008-08-08.jpg" alt="" width="500" height="177" /></p>
<p>&#8220;<a href="http://www.orcldba.com/ace/">The adventures of Ace, DBA</a>&#8221; es el título de una tira cómica que descubrí a principios de verano cuyo protagonista es Ace, un DBA de Oracle. El aspecto es similar al de <a href="http://xkcd.com/">xkcd</a>, como <a title="About The Adventures of Ace, DBA" href="http://www.orcldba.com/ace/about/">reconoce el autor</a>, y hay alguna tira que es para troncharse. Eso sí, no es para el público en general ya que el humor es muy geek, y en <a title="Error codes" href="http://www.orcldba.com/ace/2008/08/13/error-codes/">algunos</a> <a title="Flashback" href="http://www.orcldba.com/ace/2008/08/20/flashback/">casos</a> puede ser difícil pillar la gracia totalmente si nunca has trabajado con Oracle.</p>
<p>La lástima es que desde finales de Agosto no ha publicado ninguna tira nueva.</p>
]]></content:encoded>
			<wfw:commentRss>http://aleph.llull.net/2008/10/07/the-adventures-of-ace-dba/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Los primeros routers: Interface Message Processor</title>
		<link>http://aleph.llull.net/2005/11/09/los-primeros-routers-interface-message-processor/</link>
		<comments>http://aleph.llull.net/2005/11/09/los-primeros-routers-interface-message-processor/#comments</comments>
		<pubDate>Wed, 09 Nov 2005 21:40:58 +0000</pubDate>
		<dc:creator>Eduard</dc:creator>
				<category><![CDATA[Internet]]></category>

		<guid isPermaLink="false">http://aleph.llull.net/?p=65</guid>
		<description><![CDATA[A finales de los &#8217;60, principio de los &#8217;70, la agencia estadounidense ARPA se propuso conectar los mainframes de varias universidades norteamericanas usando conmutación de paquetes, creando la red que se conocería como ARPANET y que sería la precursora de la Internet actual. En un principio se propuso que fueran los propios mainframes de las [...]]]></description>
			<content:encoded><![CDATA[<p><a href="/wp-content/files/imp.jpg"><img class="alignright" src="/wp-content/files/thumb-imp.jpg" alt="Interface Message Processor photography" /></a>A finales de los &#8217;60, principio de los &#8217;70, la agencia estadounidense <abbr title="Advanced Research Projects Agency">ARPA</abbr> se propuso conectar los mainframes de varias universidades norteamericanas usando conmutación de paquetes, creando la red que se conocería como <a href="http://en.wikipedia.org/wiki/ARPANET">ARPANET</a> y que sería la precursora de la Internet actual. </p>
<p>En un principio se propuso que fueran los propios mainframes de las universidades los que se encargasen del enrutado de paquetes, pero en aquellos tiempos la potencia de cálculo era extremadamente preciosa y los administradores de los mainframes estaban preocupados por el efecto negativo que podría tener ese trabajo extra en sus máquinas. Por eso, finalmente se decidió que el trabajo duro de enrutado lo llevase a cabo un dispositivo externo que se conoció como <a href="http://en.wikipedia.org/wiki/Interface_Message_Processor"><abbr title="Interface Message Processor">IMP</abbr></a>, que era un minicomputador (supongo que en aquellos tiempos tenían un concepto diferente de lo que es mini porque, a mi, algo del tamaño de una nevera no me parece pequeño <img src='http://aleph.llull.net/wp-includes/images/smilies/icon_biggrin.gif' alt=':-D' class='wp-smiley' /> ), en concreto un Honeywell 516 como el que se puede ver en la foto de al lado. El desarrollo de los IMP fue llevado a cabo por la empresa <a href="http://www.bbn.com/">BBN Technologies</a> que, sorprendentemente, todavía existe.</p>
<p>Los IMP estaban conectados mediante lineas dedicadas de 50kbps fullduplex. En un momento determinado, se decidió que era necesario conectar esta red a otras como SATNET y <a href="http://en.wikipedia.org/wiki/ALOHAnet">ALOHANET</a>, entre otras. Cada una de estas redes tenía sus protocolos y había que encontrar una forma de que todas ellas pudieran comunicarse, lo que impulso la creación del protocolo <abbr title="Transmission Control Protocol">TCP</abbr>, que posteriormente se partió en dos: TCP e <abbr title="Internet Protocol">IP</abbr>.</p>
<p>Digo que fueron los primeros &#8220;routers&#8221; porque, hasta entonces, la conmutación de paquetes no había sido nada más que un ejercicio teórico. De hecho, ARPA le ofreció a AT&#038;T el desarrollo de la red pero esta declinó la oferta ya que consideraba que la conmutación de paquetes no funcionaría nunca.</p>
<p>Todo esto y más (como <a href="http://www.bbn.com/Historical_Highlights/%40sign.html">por qué usamos la @ en las direcciones de correo</a>) lo podéis encontrar en el libro <em>&#8220;Where wizards stay up late&#8221;</em>, lectura que os recomiendo.</p>
<p>Como curiosidad, el último IMP fue apagado en 1989.</p>
]]></content:encoded>
			<wfw:commentRss>http://aleph.llull.net/2005/11/09/los-primeros-routers-interface-message-processor/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Logos de Google</title>
		<link>http://aleph.llull.net/2005/10/31/logos-de-google/</link>
		<comments>http://aleph.llull.net/2005/10/31/logos-de-google/#comments</comments>
		<pubDate>Mon, 31 Oct 2005 19:47:36 +0000</pubDate>
		<dc:creator>Eduard</dc:creator>
				<category><![CDATA[Internet]]></category>

		<guid isPermaLink="false">http://aleph.llull.net/?p=62</guid>
		<description><![CDATA[Es sabido por todos que Google tiene la costumbre de alterar el logo de su página en fechas señaladas. Por ejemplo, hoy lo han cambiado para celebrar el día de Halloween. Bien, pues hoy he encontrado la galería con todos esos logos que Google ha usado desde 1999. Mientras miraba los logos del 2004, en [...]]]></description>
			<content:encoded><![CDATA[<p>Es sabido por todos que <a href="http://www.google.com/">Google</a> tiene la costumbre de alterar el logo de su página en fechas señaladas. Por ejemplo, hoy lo han cambiado para celebrar el día de Halloween. Bien, pues hoy he encontrado <a href="http://www.google.com/holidaylogos.html" title="Google logos">la galería con todos esos logos</a> que Google ha usado desde 1999.</p>
<p>Mientras miraba <a href="http://www.google.com/holidaylogos04.html" title="2004 Google logos">los logos del 2004</a>, en concreto el del <a href="http://en.wikipedia.org/wiki/April_fool's_day">1 de abril</a> <img src='http://aleph.llull.net/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' /> , he visto que Google quiere abrir <a href="http://www.google.com/jobs/lunar_job.html" title="Google lunar office">una oficina en la luna</a> y buscan empleados. Si os animáis, podéis enviarles un correo a <a href="mailto:lunarjobs@google.com">lunarjobs@google.com</a>.</p>
<p>Para finalizar, mientras leía esa &#8220;oferta de empleo&#8221; he encontrado <a href="http://www.google.com/jobs/britney.html" title="Britney Spears misspellings">un listado con mil y una formas de buscar &#8220;Britney Spears&#8221;</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://aleph.llull.net/2005/10/31/logos-de-google/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>

