<?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>Ruido blanco</title>
	<atom:link href="http://ruido-blanco.net/blog/feed/" rel="self" type="application/rss+xml" />
	<link>http://ruido-blanco.net/blog</link>
	<description>Estática sólo para confundir</description>
	<lastBuildDate>Thu, 02 Dec 2010 21:21:56 +0000</lastBuildDate>
	<language>es</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.2</generator>
		<item>
		<title>Truco</title>
		<link>http://ruido-blanco.net/blog/archivos/2010/12/02/truco/</link>
		<comments>http://ruido-blanco.net/blog/archivos/2010/12/02/truco/#comments</comments>
		<pubDate>Thu, 02 Dec 2010 21:21:56 +0000</pubDate>
		<dc:creator>Daniel</dc:creator>
				<category><![CDATA[Asides]]></category>
		<category><![CDATA[Ordenadores]]></category>

		<guid isPermaLink="false">http://ruido-blanco.net/blog/?p=1222</guid>
		<description><![CDATA[The more astute reader may have already noticed there is subtle flaw in this system resulting in a way to keep Pinky, Inky, and Clyde inside the ghost house for a very long time after eating them. The trick involves having to sacrifice a life in order to reset and enable the global dot counter, [...]]]></description>
			<content:encoded><![CDATA[<blockquote><p>The more astute reader may have already noticed there is subtle flaw in this system resulting in a way to keep Pinky, Inky, and Clyde inside the ghost house for a very long time after eating them. The trick involves having to sacrifice a life in order to reset and enable the global dot counter, and then making sure Clyde exits the house before that counter is equal to 32. This is accomplished by avoiding eating dots and waiting for the timer limit to force Clyde out. Once Clyde is moving for the exit, start eating dots again until at least 32 dots have been consumed since the life was lost. Now head for an energizer and gobble up some ghosts. Blinky will leave the house immediately as usual, but the other three ghosts will remain “stuck” inside as long as Pac-Man continues eating dots with sufficient frequency as not to trigger the control timer. Why does this happen? The key lies in how the global dot counter works—it cannot be deactivated if Clyde is outside the house when the counter has a value of 32. By letting the timer force Clyde out before 32 dots are eaten, the global dot counter will keep counting dots instead of deactivating when it reaches 32. Now when the ghosts are eaten by Pac-Man and return home, they will still be using the global dot counter to determine when to leave. As previously described, however, this counter&#8217;s logic only checks for three values: 7, 17, and 32, and once those numbers are exceeded, the counter has no way to release the ghosts associated with them. The only control left to release the ghosts is the timer which can be easily avoided by eating a dot every so often to reset it. Click on the YouTube video below to see a demonstration of this curious behavior:</p>
<p style="text-align: right"><a href="http://home.comcast.net/~jpittman2/pacman/pacmandossier.html#CH2%20-%20Home%20Sweet%20Home" title="The Pac-Man Dossier —Home, Sweet, Home">The Pac-Man Dossier</a></p></blockquote>

<div class="center"><object type="application/x-shockwave-flash" style="width:450px; height:366px;" data="http://www.youtube.com/v/GI_kHYAUZOU">
<param name="movie" value="http://www.youtube.com/v/GI_kHYAUZOU"></param><param name="allowFullScreen" value="true"></param>
</object></div>
]]></content:encoded>
			<wfw:commentRss>http://ruido-blanco.net/blog/archivos/2010/12/02/truco/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Yo La Tengo</title>
		<link>http://ruido-blanco.net/blog/archivos/2010/09/20/yo-la-tengo/</link>
		<comments>http://ruido-blanco.net/blog/archivos/2010/09/20/yo-la-tengo/#comments</comments>
		<pubDate>Mon, 20 Sep 2010 21:15:10 +0000</pubDate>
		<dc:creator>Daniel</dc:creator>
				<category><![CDATA[Asides]]></category>
		<category><![CDATA[Música]]></category>

		<guid isPermaLink="false">http://ruido-blanco.net/blog/?p=1219</guid>
		<description><![CDATA[During the 1962 season, New York Mets center fielder Richie Ashburn and Venezuelan shortstop Elio Chacón found themselves colliding in the outfield. When Ashburn went for a catch, he would scream, “I got it! I got it!” only to run into Chacón, who spoke only Spanish. Ashburn learned to yell,]]></description>
			<content:encoded><![CDATA[<blockquote><p>During the 1962 season, New York Mets center fielder Richie Ashburn and Venezuelan shortstop Elio Chacón found themselves colliding in the outfield. When Ashburn went for a catch, he would scream, “I got it! I got it!” only to run into Chacón, who spoke only Spanish. Ashburn learned to yell, <a href="http://en.wikipedia.org/wiki/Yo_La_Tengo title="Yo La Tengo — Wikipedia, the free encyclopedia">“¡Yo la tengo! ¡Yo la tengo!”</a> instead. In a later game, Ashburn happily saw Chacón backing off. He relaxed, positioned himself to catch the ball, and was instead run over by left fielder Frank Thomas, who understood no Spanish and had missed a team meeting that proposed using the words “¡Yo la tengo!” as a way to avoid outfield collisions. After getting up, Thomas asked Ashburn, “What the heck is a Yellow Tango?”</p></blockquote>
]]></content:encoded>
			<wfw:commentRss>http://ruido-blanco.net/blog/archivos/2010/09/20/yo-la-tengo/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>The same companies that spent…</title>
		<link>http://ruido-blanco.net/blog/archivos/2010/06/22/the-same-companies-that-spent%e2%80%a6/</link>
		<comments>http://ruido-blanco.net/blog/archivos/2010/06/22/the-same-companies-that-spent%e2%80%a6/#comments</comments>
		<pubDate>Tue, 22 Jun 2010 18:58:38 +0000</pubDate>
		<dc:creator>Daniel</dc:creator>
				<category><![CDATA[Asides]]></category>

		<guid isPermaLink="false">http://ruido-blanco.net/blog/?p=1214</guid>
		<description><![CDATA[The same companies that spent decades telling lawmakers that they were explicitly not guardians of the morality of the young—that they could’t be held accountable for sex, drugs and rock’n’roll, for gangsta rap, for drug-fuelled dance-parties—did a complete reversal and began to beat their chests about the corrupting influence of downloading on the poor kiddies. [...]]]></description>
			<content:encoded><![CDATA[<blockquote><p>The same companies that spent decades telling lawmakers that they were explicitly not guardians of the morality of the young—that they could’t be held accountable for sex, drugs and rock’n’roll, for gangsta rap, for drug-fuelled dance-parties—did a complete reversal and began to beat their chests about the corrupting influence of downloading on the poor kiddies.</p>
<p style="text-align:right;">Cory Doctorow</p></blockquote>

<p>(por cierto, entrada 2<sup>10</sup>, creí que nunca iba a llegar).</p>
]]></content:encoded>
			<wfw:commentRss>http://ruido-blanco.net/blog/archivos/2010/06/22/the-same-companies-that-spent%e2%80%a6/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>10 discos de los 00s</title>
		<link>http://ruido-blanco.net/blog/archivos/2010/03/31/10-discos-de-los-00s/</link>
		<comments>http://ruido-blanco.net/blog/archivos/2010/03/31/10-discos-de-los-00s/#comments</comments>
		<pubDate>Wed, 31 Mar 2010 18:07:55 +0000</pubDate>
		<dc:creator>Daniel</dc:creator>
				<category><![CDATA[Música]]></category>

		<guid isPermaLink="false">http://ruido-blanco.net/blog/?p=1205</guid>
		<description><![CDATA[Me vais a permitir algo un poco fuera del tema general de la página, pero que espero que al menos os ayude a descubrir algo de música buena (en mi opinión). Mi vuelta a España me ha permitido utilizar mucho más intensamente Spotify, y probar mucha más música que anteriormente, pero también redescubrir muchos discos [...]]]></description>
			<content:encoded><![CDATA[<p>Me vais a permitir algo un poco fuera del tema general de la página, pero que espero que al menos os ayude a descubrir algo de música buena (en mi opinión).</p>

<p>Mi vuelta a España me ha permitido utilizar mucho más intensamente <a href="http://www.spotify.com" title="Spotify - Todo un mundo de música">Spotify</a>, y probar mucha más música que anteriormente, pero también redescubrir muchos discos que no escuchaba desde hace mucho tiempo (también tengo que decir que Spotify me falla en muchos grupos, de los que solo tiene discografías parciales, normalmente cuando se cambian a una discográfica un poco más grande que la inicial. Nadie es perfecto).</p>

<p>Creo que estos últimos días he conseguido recopilar diez álbumes que, en mi impresión, son los más importantes de la decada (y al ser mi impresión, casi todo es música <em>indie</em> y nada en español, lo que no quiere decir que no haya nada bueno en esas categorías).</p>

<p>Sin ningún orden especial, más que alfabético:</p>

<dl>
<dt>Arcade Fire — Funeral (2004)</dt>
<dd>El <em>booklet</em> del disco de <em>debut</em> de Arcade Fire está dedicado a tres familiares fallecidos de los integrantes del grupo (que como en parte son familia, aún es más grave). Alguna vez he leído alguna crítica que insinuaba que más familiares deberían morir para que Arcade Fire puedan repetir la maravilla que es este disco. Desgraciadamente no está en Spotify, pero sí en iTunes o Amazon.</dd>
<dt>Death Cab for Cutie — Transatlanticism (2003)</dt>
<dd>El cuarto albúm de estudio de Death Cab for Cutie. Un disco mucho más completo que sus anteriores álbumes y que les abrió las puertas de Atlantic Records, a una base de <em>fans</em> mucho mayor… y supongo que eso llevó a que les pidieran una canción para la banda sonora de New Moon. Pensándolo bien, quizá este disco no fuera tan buena idea. No disponible en Spotify (pero sí <a href="http://open.spotify.com/artist/0YrtvWJMgSdVrk3SfNjTbx" title="Spotify - Death Cab for Cutie">los discos a partir de Plans</a>). Sí está en iTunes y en Amazon.</dd>
<dt>Interpol — Turn on the bright lights (2002)</dt>
<dd>El disco de <em>debut</em> de Interpol, y habrá gente que diga que Antics es mejor, y que se merecería más estar en esta lista, pero como soy yo el que escribo, pues este se queda (aunque me llamen gafapasta, cosa que nunca he llevado). Venga, adivinad que viene ahora: No disponible en Spotify ni en iTunes, pero sí en Amazon (Matador no parece tener mucho interés en la distribución digital). <a href="http://open.spotify.com/artist/3WaJSfKnzc65VDgmj2zU8B" title="Spotify - Interpol">Parte de la discografía sí está en Spotify</a>.</dd>
<dt>LCD Soundsystem — Sound of Silver (2007)</dt>
<dd>Segundo album del proyecto de James Murphy, mucho más concentrado que su gracioso disco de <em>debut</em> (a todos nos encanta <em>Daft Punk is playing in my house</em>, pero no se la puede tomar uno en serio). Disponible, por fin, <a href="http://open.spotify.com/album/1R8kkopLT4IAxzMMkjic6X" title="Spotify - LCD Soundsystem - Sound of Silver">Spotify</a>.</dd>
<dt>Radiohead — In Rainbows (2007)</dt>
<dd>Septima maravilla en salir de la cabeza de Yorke, Greenwood y compañía. El disco es uno de los mejores de Radiohead, pero además tiene el honor de ser el disco que hizo temblar a toda la industria musical, con el curioso modelo de comercialización elegido por la banda. Irónicamente no está disponible en Spotify, ni para su descarga desde la web, aunque sí en iTunes y Amazon.</dd>
<dt>Radiohead — Kid A (2000)</dt>
<dd>Y esta es la cuarta maravilla (no quería repetir grupos, pero ambos discos son demasiado importantes como para no incluirlos). Después del éxito de <em>OK Computer</em>, la banda da un vuelco a su estilo y se marca <em>Kid A</em>, que, para mí, define al Radiohead del nuevo siglo. <a href="http://open.spotify.com/album/6J6nlVu4JMveJz0YM9zDgL" title="Spotify - Radiohead - Kid A">Kid A</a> sí está en Spotify.</dd>
<dt>Sufjan Stevens &#8211; Sufjan Stevens invites you to: Come on feel the Illinoise (2005)</dt>
<dd>Quinto disco del artista, y segundo del ambicioso proyecto de hacer un album para cada estado. Todas las pistas están relacionadas o bien con lugares del estado de Illinois, o bien con personas que “pasaban” por allí. <a href="http://open.spotify.com/album/4T9nh9EEDX3XGt11hyim9o" title="Spotify - Sufjan Stevens - Illinois">Illinois</a> está en Spotify.</dd>
<dt>The Avalanches — Since I Left You (2000)</dt>
<dd>El único disco de la banda australiana The Avalanches (a pesar de que Spotify se empeñe de lo contrario). Un prodigio del <em>sampling</em> y un ejemplo de como hacer un increible album electrónico sin dejar fuera a nadie. Seguimos esperando el segundo disco. <a href="http://open.spotify.com/album/5tdVTLJ3ulMI5twWsZzX2x" title="Spotify - The Avalanches - Since I Left You">Since I Left You en Spotify</a>.</dd>
<dt>The Postal Service — Give Up (2003)</dt>
<dd>En su momento pensé que este album presentaba a la banda que tendría que seguir año tras año. Por desgracia sus componentes no han vuelto a tener tiempo libre de sus otros proyectos (Ben Gibbard con Death Cab For Cutie, y Jimmy Tamborello con Dntel), pero a mí me llevó a descubrirles a ellos, y a todas sus ramificaciones, influencias, e influenciados. Otra banda que nos debe una continuación. <a href="http://open.spotify.com/album/10U8OewhdapOUFPPdVZYae" title="Spotify - The Postal Service - Give Up">Give Up en Spotify</a>.</dd>
<dt>Wilco — Yankee Hotel Foxtrot (2002)</dt>
<dd>Otro album que no solo está aquí por ser una pieza musical importante, si no porque demuestra, de nuevo, que las discográficas no entienden de música. Warner no quería publicar el disco porque no le parecía comercial, los componentes del grupo compraron los derechos del album y lo pusieron en Internet gratuitamente. Después se lo llevaron a otra discográfica (que para más detalles, era filial de Warner), que se lo publicó. Fue un éxito de crítica y de ventas (es el album más vendido de Wilco). Como supondréis, con tanto lío de discográfica, no se encuentra en Spotify, aunque sí en iTunes y Amazon.</dd>
</dl>

<p>Y como habéis sido buenos, y habéis llegado hasta aquí… diez enlaces a la bahía pirata:
<ul>
<li><a href="http://thepiratebay.org/torrent/3973879/Arcade_Fire_-_Funeral" title="The Pirate Bay - Arcade Fire - Funeral">Arcade Fire — Funeral</a></li>
<li><a href="http://thepiratebay.org/torrent/3318035/Death_cab_for_cutie_-_Transatlanticism" title="The Pirate Bay - Death Cab For Cutie - Transatlanticism">Death Cab For Cutie — Transatlanticism</a></li>
<li><a href="http://thepiratebay.org/torrent/4376929/Interpol_-_Turn_On_the_Bright_Lights_[2002]" title="The Pirate Bay - Interpol - Turn On The Bright Lights">Interpol — Turn On The Bright Lights</a></li>
<li><a href="http://thepiratebay.org/torrent/3949010/LCD_Soundsystem_-_Sound_of_Silver_(Album)" title="The Pirate Bay - LCD Soundsystem - Sound Of Silver">LCD Soundsystem — Sound Of Silver</a></li>
<li><a href="http://thepiratebay.org/torrent/5289741/Radiohead_-_In_Rainbows" title="The Pirate Bay - Radiohead - In Rainbows">Radiohead — In Rainbows</a></li>
<li><a href="http://thepiratebay.org/torrent/3309276/Radiohead_(2000)_Kid_A_[mp3_-ape_eac]" title="The Pirate Bay - Radiohead - Kid A">Radiohead — Kid A</a></li>
<li><a href="http://thepiratebay.org/torrent/3467929/Sufjan_Stevens__Illinois" title="The Pirate Bay - Sufjan Stevens - Illinois">Sufjan Stevens — Illinois</a></li>
<li><a href="http://thepiratebay.org/torrent/3574739/The_Avalanches_-_Since_I_Left_You_(2000)_[Original_Release_-_Eve" title="The Pirate Bay - The Avalanches - Since I Left You">The Avalanches — Since I Left You</a></li>
<li><a href="http://thepiratebay.org/torrent/3301430/The_Postal_Service_-_Give_Up_(2003)" title="The Pirate Bay - The Postal Service - Give Up">The Postal Service — Give Up</a></li>
<li><a href="http://thepiratebay.org/torrent/4319030/Wilco_-_Yankee_Hotel_Foxtrot_(VBR_MP3)" title="The Pirate Bay - Wilco - Yankee Hotel Foxtrot">Wilco — Yankee Hotel Foxtrot</a></li>
</ul></p>
]]></content:encoded>
			<wfw:commentRss>http://ruido-blanco.net/blog/archivos/2010/03/31/10-discos-de-los-00s/feed/</wfw:commentRss>
		<slash:comments>13</slash:comments>
		</item>
		<item>
		<title>Google no se anda con chiquitas con los puzzles</title>
		<link>http://ruido-blanco.net/blog/archivos/2010/03/20/google-no-se-anda-con-chiquitas-con-los-puzzles/</link>
		<comments>http://ruido-blanco.net/blog/archivos/2010/03/20/google-no-se-anda-con-chiquitas-con-los-puzzles/#comments</comments>
		<pubDate>Sat, 20 Mar 2010 15:29:41 +0000</pubDate>
		<dc:creator>Daniel</dc:creator>
				<category><![CDATA[General]]></category>

		<guid isPermaLink="false">http://ruido-blanco.net/blog/?p=1199</guid>
		<description><![CDATA[El Jueves estuve en el Google Chrome Hackathon Madrid (junto con Alberto), y por programar y presentar una extensión (Video5) me dieron una camiseta, que cambié a Alberto por su puzzle (la extensión de Alberto es YouTube Video Kit). El puzzle tiene unas 500 piezas. Los bordes y la parte superior del puzzle fueron sencillos, [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://ruido-blanco.net/blog/wp-content/uploads/2010/03/puzzle.jpeg" alt="Google Chrome Extensions Puzzle" title="Google Chrome Extensions Puzzle" width="100%" class="aligncenter size-full wp-image-1200" /></p>

<p>El Jueves estuve en el <a href="http://programa-con-google.blogspot.com/2010/03/google-chrome-hackaton-madrid.html" title="Programa con Google: Google Chrome Hackathon Madrid">Google Chrome Hackathon Madrid</a> (junto con Alberto), y por programar y presentar una extensión (<a href="https://chrome.google.com/extensions/detail/bnbgfkneigcldienfggfoacjnkbmmhhe?hl=es" title="Video5 - Galería de extensiones de Google Chrome">Video5</a>) me dieron una camiseta, que cambié a Alberto por su puzzle (la extensión de Alberto es <a href="https://chrome.google.com/extensions/detail/eabbpecapgpjacbdnkniiankolclnnid?hl=es" title="YouTube Video Kit - Galería de extensiones de Google Chrome">YouTube Video Kit</a>).</p>

<p>El puzzle tiene unas 500 piezas. Los bordes y la parte superior del puzzle fueron sencillos, pero la parte central (el código bidimensional) es más cuestión de mirar a la forma de la pieza más que al dibujo. Al final, esta mañana lo he terminado (ayudado por mi hermano y mi hermana a ratos) y descubierto el contenido: una extensión para Google Chrome, que en ciertas páginas activa un <em>page action</em> que te lleva a un documento de Google Docs. Desgraciadamente este documento parece que sólo es accesible a empleados de Google (o gente que tenga un correo terminado en google.com), por lo que no puedo llegar más allá.</p>

<p>Pensándolo así debería haberme quedado con la camiseta ¿no?</p>
]]></content:encoded>
			<wfw:commentRss>http://ruido-blanco.net/blog/archivos/2010/03/20/google-no-se-anda-con-chiquitas-con-los-puzzles/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Construyendo entornos de hosting</title>
		<link>http://ruido-blanco.net/blog/archivos/2010/02/28/construyendo-entornos-de-hosting/</link>
		<comments>http://ruido-blanco.net/blog/archivos/2010/02/28/construyendo-entornos-de-hosting/#comments</comments>
		<pubDate>Sun, 28 Feb 2010 22:05:13 +0000</pubDate>
		<dc:creator>Daniel</dc:creator>
				<category><![CDATA[Ordenadores]]></category>

		<guid isPermaLink="false">http://ruido-blanco.net/blog/?p=1195</guid>
		<description><![CDATA[Me he encontrado una charla del grupo de usuarios de Ruby de San Diego que no la he visto enlazada en ninguno de mis blogs habituales (aunque puede ser que no estuviera mirando). La charla trata sobre construir sistemas de hosting para aplicaciones Ruby (aunque hay mucho aplicable a otro tipo de aplicaciones, por supuesto), [...]]]></description>
			<content:encoded><![CDATA[<p>Me he encontrado una charla del <a href="http://sdruby.org" title="SD Ruby - We are San Diego's Ruby community">grupo de usuarios de Ruby de San Diego</a> que no la he visto enlazada en ninguno de mis <em>blogs</em> habituales (aunque puede ser que no estuviera mirando). La charla trata sobre construir sistemas de hosting para aplicaciones Ruby (aunque hay mucho aplicable a otro tipo de aplicaciones, por supuesto), desde el <em>hardware</em> hasta el <em>software</em> (la segunda parte sigue siendo muy interesante para <em>hosting</em> gestionado).</p>

<p>El <a href="http://sdruby.org/podcast/77" title="SD Ruby - Episode 077: Building Your Own Hosting Environment">video de la charla</a> está disponible y el ponente <a href="http://nicbenders.com/hosting/" title="Building a Hosting Enviroment, Correctly">ha recopilado enlaces y las transparencias</a>.</p>

<p>Tras el salto, mis notas (en horrible español técnico y con enlaces).</p>

<p><span id="more-1195"></span></p>

<p>Un servidor no es un ordenador de escritorio: necesita ser durable, mantenible y escalable.</p>

<p>DEBES utilizar <a href="http://en.wikipedia.org/wiki/RAID#Hardware-based" title="RAID en la Wikipedia">RAID <em>hardware</em></a>. Una de las ventajas más grandes del RAID <em>harware</em> es la <em>caché</em> protegida por la batería (las escrituras pendientes no se pierden debido a un fallo de corriente). El RAID <em>hardware</em> permite además hacer <em>write-back</em> en vez de <em>write-through</em>. La diferencia entre los dos es escribir a la velocidad de la memoria frente a escribir a la velocidad del disco. También necesitas discos que se puedan cambiar “en caliente”. Si pierdes un disco no quieres tener que parar el servidor para sustituirlo.</p>

<p>DEBES tener una consola de gestión remota REAL (no se refiere a SSH o similares). Necesitas algo que se ejecute cuando el sistema operativo no se está ejecutando. Algo como <a href="http://www.delltechcenter.com/page/OpenManage+Systems+Management" title="OpenManage System Management - The Dell TechCenter">Dell OpenManage</a>.</p>

<p>DEBES tener fuentes de alimentación redundantes. Las fuentes de alimentación contienen piezas físicas, que, como los discos duros, pueden fallar. También es recomendable utilizar diferentes circuitos para las diferentes fuentes de alimentación.</p>

<p>NECESITAS una CPU para servidores, no para escritorios. Buena <em>cache</em> L2 (de segundo nivel) y gran ancho de banda para memoria. Actualmente, para servidores, <a href="http://en.wikipedia.org/wiki/Intel_Nehalem_(microarchitecture)" title="Nehalem (microarchitecture) en la Wikipedia">Nehalem</a> son los procesadores a instalar. Cuentan con controlador de memoria en el <em>chip</em>, pero no se debe llenar los canales de memoria con <em>DIMMs</em> porque cada uno ralentiza el canal.</p>

<p>Para sistema operativo no hay discusión: una distribución de Linux con soporte a largo plazo (LTS, <em>long term support</em>). Dos posibilidades: <a href="http://www.redhat.com/rhel/server/" title="Red Hat Enterprise Linux 5 Server">Red Hat Enterprise Linux</a> (publicada en el 2007 y con soporte hasta el 2014) o <a href="http://www.ubuntu.com/products/whatIsubuntu/serveredition" title="Ubuntu Server Edition">Ubuntu Server LTS</a> (publicada en el 2008 y soportada hasta el 2013). La idea es que nunca se necesita actualizar el sistema operativo de un servidor una vez instalado, únicamente aplicar las actualizaciones de seguridad.</p>

<p>NO instales una distribución al completo (nada de XWindows en un servidor). Instala únicamente lo que necesites. Paquetes extra significa <em>bugs</em> extras, problemas de seguridad <em>extra</em> y trabajo de mantenimiento extra.</p>

<p>Utiliza gestión de volumenes lógicos (LVM, <em>Logical Volume Management</em>), de forma que puedas añadir más discos duros físicos sin tener que crear nuevas particiones e incluyendo el nuevo espacio en las particiones ya existentes.</p>

<p>Utiliza ext3 como sistema de ficheros: muchos más usuarios significa que los problemas que puedas llegar a tener pueden haber sido resueltos antes. Utiliza la opción <em>noatime</em> cuando montes particiones, de otra forma cada lectura del disco significa una escritura para el tiempo de acceso, lo que empeorará el ancho de banda del disco y <em>envenenará</em> la <em>cache</em>.</p>

<p>Utiliza /etc/hosts y no dependas en el DNS. Todos los servidores (bases de datos, ficheros,…) deben poder ser resueltos sin necesidad de utilizar DNS.</p>

<p>Utiliza iptables incluso si tienes más líneas de defensa (como <em>firewalls</em> <em>hardware</em>) o tu servidor no esta directamente conectado a Internet.</p>

<p>Redirige el correo electrónico del <em>root</em> a un correo real. Muchos programas envian correos a <em>root</em>, sin la redirección los correos podrían perderse durante meses o años.</p>

<p>Utiliza <a href="http://wiki.opscode.com/display/chef/Home" title="Home - Chef - Opscode Open Source Wiki">Chef</a>.</p>

<p>Para desplegar aplicaciones utiliza Apache y Passenger. La configuración del host virtual de Apache y la configuración de Passenger deben estar en archivos diferentes. Activa el <a href="http://www.modrails.com/documentation/Users%20guide%20Apache.html#PassengerUseGlobalQueue" title="Phusion Passenger users guide"><em>GlobalQueue</em> de Passenger</a> (esta opción utiliza una única cola, en vez de una cola por <em>worker</em>, mejorando el rendimiento en el caso de peticiones largas). Modifica <em>MaxPoolSize</em> dependiendo de cada servidor y cada aplicación: aumentalo hasta que el servidor empiece a necesitar <em>swapping</em>. Establece el <em>PoolIdleTime</em> a 0 para que los <em>worker</em> no se desactiven cuando esté “ociosos” (y vigila que no existan <em>leaks</em> por procesos de larga duración).</p>

<p>En vez de utilizar el Ruby proporcionado por la distribución utiliza <a href="http://www.rubyenterpriseedition.com/" title="Ruby Enterprise Edition">Ruby Enterprise Edition</a>. La principal ventaja es un recolector de basura configurable. <a href="http://blog.evanweaver.com/articles/2009/04/09/ruby-gc-tuning/" title="ruby gc tuning :: snax">Evan Weaver tiene un buen <em>wrapper</em> optimizado para procesos de larga duración</a>.</p>

<p>Comprueba tus <em>backups</em> (restaura desde el <em>backup</em> para comprobarlo). El único <em>backup</em> en el que puedes confiar es el que hayas comprobado que funciona más recientemente. Si no puedes permitirte perder una semana de datos, comprueba tus <em>backups</em> cada semana.</p>

<p>NECESITAS Gigabit para tu red interna, incluso si tu <em>upstream</em> no dispone de esa velocidad (lo más probable). Lo que pretendes es reducir la latencia dentro de tu red (cuanto más ancho de banda, menos tardará el servidor de bases de datos en proporciona la información al servidor de aplicaciones). Hay soluciones baratas por unos $100 (Linksys). El control de flujo (<em>flow control</em>) evita problemas cuando tu red Gigabit se encuentra con tu red Megabit (problemas de <em>packet dropping</em>).</p>

<p>Monitoriza. Dos tipos: disponibilidad y eficiencia. <a href="http://www.nagios.org/" title="Nagios - The Industry Standard in IT Infrastructure Monitoring">Nagios</a> es código abierto. <a href="http://www.pingdom.com/" title="Pingdom Web site monitoring for 100% uptime">Pingdom</a> es barato ($10/mes, con <em>push notifications</em> para el iPhone). Tiene la ventaja de ejecutarse en una red diferente a la tuya y comprobar la disponibilidad “al mundo” de tu aplicación. <a href="http://www.newrelic.com/" title="New Relic .:. On-Demand Application Management">New Relic RPM</a> tiene versión gratuita y versión de pago (cara), pero es muy buena herramienta.</p>

<p>¿Por qué no <a href="http://nginx.org/" title="nginx news">Nginx</a>?<br />
Es menos estable y “peor” soportado. Frente a Apache, Nginx sirve con mucho menos gasto de CPU contenido estático, pero si el problema es este, posiblemente deberías estar sirviendo el contenido estático desde Amazon S3.</p>

<p>¿Capistrano sí o Capistrano no?<br />
<a href="http://www.capify.org/" title="Capistrano">Capistrano</a> no es <em>abandonware</em> pero si <em>doneware</em> y posiblemente no se actualice. Se debe utilizar un sistema de despliege automatizado mediante <em>scripts</em>. Capistrano sigue siendo una opción muy buena, pero no es la única y existen muchas alternativas.</p>

<p>¿Seguridad e iptables?<br />
Sí es la última línea de defensa y tienes <em>firewalls</em> <em>hardware</em> delante, trata de hacerlo simple: cierra todos los puertos, abre HTTP, abre SSH para algunos rangos, y cosas como DNS… Si no puedes restringir SSH a ciertos rangos, limita el número de conexiones desde una subred para evitar ataques de diccionario.</p>

<p>¿No es el controlador RAID un punto de fallo único?<br />
Sí, es un punto de fallo único (<em>single point of failure</em>). Si necesitas evitar esto, será necesario un NAS o similar.</p>

<p>¿Se debe utilizar <a href="http://mmonit.com/monit/" title="Monit">Monit</a> o <a href="http://god.rubyforge.org/" title="God - A Process Monitoring Framework in Ruby">God</a>?<br />
No es necesario para Passenger, pero es necesario para cosas como BackgroundJob, Workling,… También es necesario rotar los archivos de registro (<em>log</em>), de otra forma crecerán hasta llenar el disco duro y harán fallar al servidor. Haz que el servidor no requiera intervención humana.</p>

<p>¿Se debe aplicar todo esto a <em>hostings</em> gestionados?<br />
La parte de <em>hardware</em> es irrelevante, pero se debe aplicar la parte de <em>software</em> siempre que se pueda. Mantén tus propios <em>backups</em>, a pesar de que el <em>hosting</em> realice <em>backups</em> de tus datos. Para tu propio servidor no utilices virtualización, proporciona mucha flexibilidad, pero el precio en eficiencia no lo vale.</p>

<p>¿Se debe compilar desde código fuente?<br />
Utiliza siempre que puedas soluciones estándares proporcionadas con la distribución. Compila desde código únicamente cuando sea necesario (Ruby Enterprise Edition, versiones modernas de Git). Deberias “paquetizar” tus productos para desplegar nuevos servidor más rápido y más estandarizadamente. Muchas veces puedes elegir paquetes de la distribución más moderna y re-compilarlos tu mismo para una versión anterior.</p>

<p>¿Por qué <em>Long Term Support</em>?<br />
Quieres construir el servidor, lanzar tu producto, y no volver a tocar el servidor de nuevo.</p>

<p>¿Se debería utilizar JRuby?<br />
En principio no. No es tan estándar y tan utilizado como el Ruby de Matz. Además consume más memoria. En la práctica no es competición para Ruby en entornos de producción.</p>
]]></content:encoded>
			<wfw:commentRss>http://ruido-blanco.net/blog/archivos/2010/02/28/construyendo-entornos-de-hosting/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Llamadme tonto</title>
		<link>http://ruido-blanco.net/blog/archivos/2010/02/09/llamadme-tonto/</link>
		<comments>http://ruido-blanco.net/blog/archivos/2010/02/09/llamadme-tonto/#comments</comments>
		<pubDate>Tue, 09 Feb 2010 20:27:47 +0000</pubDate>
		<dc:creator>Daniel</dc:creator>
				<category><![CDATA[General]]></category>

		<guid isPermaLink="false">http://ruido-blanco.net/blog/?p=1188</guid>
		<description><![CDATA[]]></description>
			<content:encoded><![CDATA[<p><a class="no-underline" href="http://ruido-blanco.net/blog/wp-content/uploads/2010/02/eyetv3-about.png" title="Ventana de Acerca de EyeTV 3.3"><img src="http://ruido-blanco.net/blog/wp-content/uploads/2010/02/eyetv3-about.png" alt="Ventana de Acerca de EyeTV 3.3" title="Ventana de Acerca de EyeTV 3.3" width="480" height="354" class="size-full wp-image-1187" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://ruido-blanco.net/blog/archivos/2010/02/09/llamadme-tonto/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>* Radio</title>
		<link>http://ruido-blanco.net/blog/archivos/2010/01/17/globradio/</link>
		<comments>http://ruido-blanco.net/blog/archivos/2010/01/17/globradio/#comments</comments>
		<pubDate>Sun, 17 Jan 2010 13:57:02 +0000</pubDate>
		<dc:creator>Daniel</dc:creator>
				<category><![CDATA[Programación]]></category>

		<guid isPermaLink="false">http://ruido-blanco.net/blog/?p=1183</guid>
		<description><![CDATA[Nada más publicar RNE Radio alguién me pregunto si iba a liberar el código fuente de la aplicación (fuisteis varios, pero como no os recuerdo a todos, tendreis que quedar en el anonimato). Mi respuesta fue que se liberaría cuando hubieramos hecho algo de dinero con ella. Como muchos sabéis, RNE Radio fue un éxito [...]]]></description>
			<content:encoded><![CDATA[<p>Nada más publicar <a href="http://ruido-blanco.net/blog/archivos/2009/01/05/rne-radio-¡felices-reyes-a-todos/" title="RNE Radio: ¡Felices reyes a todos! - Ruido blanco">RNE Radio</a> alguién me pregunto si iba a liberar el código fuente de la aplicación (fuisteis varios, pero como no os recuerdo a todos, tendreis que quedar en el anonimato). Mi respuesta fue que se liberaría cuando hubieramos hecho algo de dinero con ella. Como muchos sabéis, <a href="http://ruido-blanco.net/blog/archivos/2009/02/12/al-asalto-de-las-maquinas-de-pedos-o-como-triunfamos-en-el-app-store/" title="Al asalto de las máquinas de pedos (o como triunfamos en el App Store) - Ruido blanco">RNE Radio fue un éxito</a> y hicimos “algún” dinero. Además durante el año pasado expandimos el catálogo con <a href="http://ruido-blanco.net/blog/archivos/2009/04/05/¿nueva-version-ya-actualizare/" title="¿Nueva versión? Ya actualizaré - Ruido blanco">France Radio</a>, que más lentamente, pero con obstinación, llegó a superar la recaudación de RNE Radio en el App Store (aunque por desgracia su vida también <a href="http://apps.yoteinvoco.com/franceradio/" title="Reproductor France Radio">tuvo que ser acabada</a>). También está el “hermano menor” de esas dos, <a href="http://radio.asoc.fi.upm.es/iphone/" title="FI-FM Radio">FI-FM Radio</a> (el servidor está caido), que sigue en la tienda, de forma gratuita, y descargada masivamente por alguna razón que <a href="http://ruido-blanco.net/blog/archivos/2009/04/16/resenas-de-los-clientes-de-fi-fm-radio/" title="Reseñas de los clientes de FI-FM Radio">escapa a mi entendimiento</a>.</p>

<p>Hace unos días me decidí a limpiar el repositorio que yo utilizaba para el desarrollo (el repositorio compartido por Javier era Subversion, y yo utilizaba git-svn para manejarlo) y <a href="http://github.com/drodriguez/globradio" title="drodriguez's globradio at master - GitHub">publicarlo en GitHub</a> como código abierto, esperando que a alguién le sea útil (al menos como herramienta educativa de cómo no escribir código). Tras el salto describiré algo más el contenido del código y las ausencias.</p>

<p><span id="more-1183"></span></p>

<p>Primero una disculpa, el código no es el código completo del que dispongo, y la historia contiene algunos saltos (sobre todo al principio). La razón es sencilla: el código de RNE Radio paso a ser propiedad de RTVE, y, aunque nosotros tenemos aún la propiedad de todo el código anterior al contrato (o al menos así lo entiendo yo), he preferido no publicarlo, por si los abogados se ponen nerviosos. De forma que no encontrareis el código o el <em>artwork</em> de RNE Radio en el repositorio (o eso espero). También me he cargado cosas como la web y las versiones archivadas de los productos que enviamos a la App Store, porque principalmente sólo ocupan espacio. A parte de eso, creo que está el resto (un poco modificado para que siga compilando y funcionando como el primer día).</p>

<p>¿Qué podemos encontrar? Pues como primer destacado, RRQAudioPlayer.[hm], RRQM3UParser.[hm], RRQPLSParser.[hm] y RRQShoutcastAudioPlayer.[hm] son los que hacían sonar a todos los programas (técnicamente se podrían haber reutilizado parte de los controlodares, pero según las aplicaciones empezaron a divergir, tener diferentes controladores fue una facilidad, en vez de un incordio, aunque aún hay bastante copia-pega entre ellos). RRQM3UParser y RRQPLSParser son simples <em>parsers</em> para los formator M3U y PLS, que obtienen la lista de archivos a reproducir (normalmente MP3), mientras que RRQAudioPlayer y RRQShoutcastAudioPlayer son los que descargan el <em>stream</em>, lo decodifican y lo envían al sistema de sonido del dispositivo. El primero está basado en uno de los ejemplos de Apple y muchas otras referencias desperdigadas por Internet. El segundo es una ampliación del primero para escuchar <em>streams</em> <a href="http://www.shoutcast.com/" title="Free Internet Radio - SHOUTcast Radio">Shoutcast</a> con meta-información incluida en el <em>stream</em> (como por ejemplo el de Radio FI). A este último, lo único que le quedaría por hacer es conseguir “sincronizar” la aparición de la meta-información con el sonido en sí (algo que busqué y rebusqué, y que creo que sigue sin ser posible).</p>

<p>Para Radio FI-FM necesitabamos una implementación de (parte) de la API de <a href="http://last.fm" title="Last.fm">Last.fm</a>, que está contenida en los archivos FILastFMDataProvider.[hm], FIImageProvider.[hm] y FI*Info.[hm]. Todo porque pensabamos que una aplicación en la que únicamente sonara sonido iba a quedar sosa (aunque siempre supimos que la gente únicamente miraría a la pantalla de vez en cuando… en el caso de que alguien utilizase la aplicación). Luego descubrimos que puedes poner a volar unas notas musicales que calientan el dispositivo a más no poder, y la gente no protestaba.</p>

<p>En el repositorio también está el código de COPE Radio, que nunca fue publicada, y que tiene una característica que me divertí mucho programándola: la selección de la cadena con un botón que se puede arrastrar con el dedo y rebota. Es una tontería, pero me gusta (la implementación está en COPENeedleView.[hm]).</p>

<p>Luego tenemos algunas clases de utilidad, como RRQFileLogger.[hm] para almacenar los <em>logs</em> en un archivo en el dispositivo, RRQNSString+Version.[hm], para comprobar si una versión es mayor, menor, igual o compatible con otra (aunque creo que este código finalmente no fue utilizado), y RRQVolumeView.[hm] que se encargaba de modificar el <em>slider</em> de volumen por defecto del sistema operativo en algo que nos gustaba más (y en un principio a hacer que ese <em>slider</em> proporcionando por el sistema operativo mostrara los cambios de volumen realizados con los botones físicos del dispositivo, <em>bug</em> que Apple eliminó en algún momento posterior). Finalmente encontramos a isArrrrr.m, que nunca entró en producción (estaba pensado para France Radio 2.0), un intento de un sistema antipiratería recopilado de comentarios en foros y páginas de Internet, mezclado con un poco de paranoia.</p>

<p>Hay, además de <em>master</em>, otras dos ramas con algún código interesante de France Radio 1.5 (en el cuál se incluían todas las cadenas de Radio France Bleu) y France Radio 2.0 (nunca publicado, y que iba a incluir muchas más cadenas francesas, una semilla para un posible “Ñ” Radio). En estos dos, según el número de cadenas aumentaba, vimos que la solución del archivo plist empezaba a ser un impedimento, y empezamos a utilizar <a href="http://sqlite.org" title="SQLite">SQLite</a> mediante <a href="http://code.google.com/p/sqlitepersistentobjects/" title="sqlitepersistentobjects - Project Hosting on Google Code">SQLitePersistentObjects</a> (proyecto abandonado a su suerte desde la aparición de Core Data en el iPhoneOS 3.0, pero muy útil para los días del 2.0). Seguramente no son los controladores más limpios basados en una base de datos, pero hay algunas ideas ahí dentro que quizá merezca la pena mirar (como el <em>timeout</em> para volver al controlador anterior).</p>

<p>Pues creo que eso es un resumen del código presente (que muy posiblemente sea todo el código que existirá relacionado, por mi parte). Si alguien quiere y puede hacer algo con él, al menos seguirá teniendo utilidad.</p>
]]></content:encoded>
			<wfw:commentRss>http://ruido-blanco.net/blog/archivos/2010/01/17/globradio/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Please, Please, Please Let Me Get What I Want</title>
		<link>http://ruido-blanco.net/blog/archivos/2009/08/20/please-please-please-let-me-get-what-i-want/</link>
		<comments>http://ruido-blanco.net/blog/archivos/2009/08/20/please-please-please-let-me-get-what-i-want/#comments</comments>
		<pubDate>Thu, 20 Aug 2009 21:39:18 +0000</pubDate>
		<dc:creator>Daniel</dc:creator>
				<category><![CDATA[Asides]]></category>
		<category><![CDATA[Cine]]></category>
		<category><![CDATA[Música]]></category>

		<guid isPermaLink="false">http://ruido-blanco.net/blog/?p=1175</guid>
		<description><![CDATA[No solo Zooey Deschanel nos brinda su presencia en (500) Days of Summer, sino que, a través de She &#38; Him, regala a la banda sonora con una deliciosa versión del Please, Please, Please Let Me Get What I Want de The Smiths. Aún no he visto la película (que promete), pero si podéis echar [...]]]></description>
			<content:encoded><![CDATA[<p><object type="application/x-shockwave-flash" data="http://ruido-blanco.net/blog/wp-content/musicplayer.swf?&#038;song_url=http://ruido-blanco.net/descargas/please-please-please-let-me-get-what-i-want.mp3" 
width="17" height="17">
<param name="movie" 
value="http://ruido-blanco.net/blog/wp-content/musicplayer.swf?&#038;song_url=http://ruido-blanco.net/descargas/please-please-please-let-me-get-what-i-want.mp3" />
</object> No solo <a href="http://spanish.imdb.com/name/nm0221046/" title="Zooey Deschanel en IMDB">Zooey Deschanel</a> nos brinda su presencia en <a href="http://spanish.imdb.com/title/tt1022603/" title="(500) Days of Summer en IMDB">(500) Days of Summer</a>, sino que, a través de <a href="http://www.sheandhim.com/" title="She &amp; Him">She &amp; Him</a>, regala a la banda sonora con una deliciosa versión del <a href="http://en.wikipedia.org/wiki/Please,_Please,_Please_Let_Me_Get_What_I_Want" title="Please, Please, Please Let Me Get What I Want en la Wikipedia">Please, Please, Please Let Me Get What I Want</a> de <a href="http://en.wikipedia.org/wiki/The_Smiths" title="The Smiths en la Wikipedia">The Smiths</a>.</p>

<p>Aún no he visto la película (que promete), pero si podéis echar una mano a la banda sonora la recomiendo (y si la compráis por iTunes tiene <em>bonus tracks</em>, entre ellos una cantada por de Zooey y una versión de <a href="http://en.wikipedia.org/wiki/Here_Comes_Your_Man" title="Here Comes Your Man en la Wikipedia">Here Comes Your Man</a> cantada por <a href="http://spanish.imdb.com/name/nm0330687/" title="Joseph Gordon-Levitt en IMDB">Joseph Gordon-Levitt</a>).</p>

<p>Y como homenaje postumo, una pregunta sencilla, ¿en qué dos películas de <a href="http://spanish.imdb.com/name/nm0000455/" title="John Hughes en IMDB">John Hughes</a> aparecia la canción en cuestión?</p>
]]></content:encoded>
			<wfw:commentRss>http://ruido-blanco.net/blog/archivos/2009/08/20/please-please-please-let-me-get-what-i-want/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>PocketCheat disponible en GitHub</title>
		<link>http://ruido-blanco.net/blog/archivos/2009/07/31/pocketcheat-disponible-en-github/</link>
		<comments>http://ruido-blanco.net/blog/archivos/2009/07/31/pocketcheat-disponible-en-github/#comments</comments>
		<pubDate>Fri, 31 Jul 2009 08:20:07 +0000</pubDate>
		<dc:creator>Daniel</dc:creator>
				<category><![CDATA[Programación]]></category>

		<guid isPermaLink="false">http://ruido-blanco.net/blog/?p=1168</guid>
		<description><![CDATA[Esta mañana me he cruzado con Cheat for iPhone/iPod touch, una aplicación para acceder a los cheat sheets de cheat. Hace meses (Enero-Febrero) me puse a programar una aplicación de similares características, pero nunca saqué tiempo para terminarla (de hecho, casi no se puede decir que esté “empezada”) y se quedó en el limbo. Como [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://ruido-blanco.net/blog/wp-content/uploads/2009/07/cheat-icon-512x512.png" alt="PocketCheat icon (the Konami code)" title="PocketCheat icon" width="512" height="512" class="size-full wp-image-1169 centered" /></p>

<p>Esta mañana me he cruzado con <a href="http://cheatapp.com/" title="Cheat">Cheat for iPhone/iPod touch</a>, una aplicación para acceder a los <a href="http://cheat.errtheblog.com/" title="$ command line cheat sheets">cheat sheets de cheat</a>.</p>

<p>Hace meses (Enero-Febrero) me puse a programar una aplicación de similares características, pero nunca saqué tiempo para terminarla (de hecho, casi no se puede decir que esté “empezada”) y se quedó en el limbo. Como ya no tiene mucho sentido seguir desarrollandola (el poco mercado que tuviese la aplicación acaba de ser ocupado) la publico como código abierto (siempre me rondó la idea por la cabeza, pero también quería tenerla más avanzada).</p>

<p>El <a href="http://github.com/drodriguez/PocketCheat/tree" title="drodriguez's PocketCheat - GitHub">código está en GitHub</a> (aunque no se porqué aún no aparece), y tendréis que admitirme que el icono de mi versión es (al menos) infinitamente superior <img src='http://ruido-blanco.net/blog/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' /> .</p>
]]></content:encoded>
			<wfw:commentRss>http://ruido-blanco.net/blog/archivos/2009/07/31/pocketcheat-disponible-en-github/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
