<?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>emmgfx &#187; Josep Viciana</title>
	<atom:link href="http://www.emm-gfx.net/author/admin/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.emm-gfx.net</link>
	<description>Y ahora sin más; construye y destruye.</description>
	<lastBuildDate>Thu, 19 Aug 2010 16:19:59 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
		<item>
		<title>Pacifismo</title>
		<link>http://www.emm-gfx.net/2010/08/pacifismo/</link>
		<comments>http://www.emm-gfx.net/2010/08/pacifismo/#comments</comments>
		<pubDate>Thu, 19 Aug 2010 16:19:20 +0000</pubDate>
		<dc:creator>Josep Viciana</dc:creator>
				<category><![CDATA[General]]></category>
		<category><![CDATA[George Orwell]]></category>
		<category><![CDATA[Pacifismo]]></category>

		<guid isPermaLink="false">http://www.emm-gfx.net/?p=1382</guid>
		<description><![CDATA[Ayer mismo dije que preferia no postear nada en mi blog antes que escribir cualquier chorrada. Un diseño de Neopren Articulos relacionadosNo se encuentran articulos relacionados]]></description>
			<content:encoded><![CDATA[<div class="tweetmeme_button" style="float:left; margin:-34px 0px 0px -60px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fwww.emm-gfx.net%2F2010%2F08%2Fpacifismo%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fwww.emm-gfx.net%2F2010%2F08%2Fpacifismo%2F&amp;source=emmgfx&amp;style=normal&amp;service=bit.ly" height="61" width="50" /><br />
			</a>
		</div>
<p>Ayer mismo dije que preferia no postear nada en mi blog antes que escribir cualquier chorrada.</p>
<p><img class="alignnone size-large wp-image-1383" title="pacifismo fascista orwell" src="http://www.emm-gfx.net/wp-content/uploads/2010/08/pacifismo-fascista-orwell-610x503.jpg" alt="" width="100%" /></p>
<p>Un diseño de <a href="http://neopren.tumblr.com/post/608229346" target="_blank">Neopren</a></p>
<h2  class="related_post_title">Articulos relacionados</h2><ul class="related_post"><li>No se encuentran articulos relacionados</li></ul>]]></content:encoded>
			<wfw:commentRss>http://www.emm-gfx.net/2010/08/pacifismo/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Tildes en Javascript</title>
		<link>http://www.emm-gfx.net/2010/07/acentos-y-tildes-en-javascript/</link>
		<comments>http://www.emm-gfx.net/2010/07/acentos-y-tildes-en-javascript/#comments</comments>
		<pubDate>Thu, 29 Jul 2010 12:21:32 +0000</pubDate>
		<dc:creator>Josep Viciana</dc:creator>
				<category><![CDATA[Javascript]]></category>
		<category><![CDATA[Función]]></category>
		<category><![CDATA[Tildes]]></category>
		<category><![CDATA[Unicode]]></category>

		<guid isPermaLink="false">http://www.emm-gfx.net/?p=1369</guid>
		<description><![CDATA[Para mostrar tildes y otros carácteres especiales con javascript, por ejemplo en un alert() hay que hacerlo en unicode. En Nice entity hay una lista de conversión entre carácteres especiales y su versión en HTML y unicode. Por ejemplo, á en unicode sería \u00e1, de manera que es prácticamente imposible recordar todos los carácteres, por [...]]]></description>
			<content:encoded><![CDATA[<div class="tweetmeme_button" style="float:left; margin:-34px 0px 0px -60px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fwww.emm-gfx.net%2F2010%2F07%2Facentos-y-tildes-en-javascript%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fwww.emm-gfx.net%2F2010%2F07%2Facentos-y-tildes-en-javascript%2F&amp;source=emmgfx&amp;style=normal&amp;service=bit.ly" height="61" width="50" /><br />
			</a>
		</div>
<p>Para mostrar tildes y otros carácteres especiales con javascript, por ejemplo en un <code>alert()</code> hay que hacerlo en unicode. En <a href="http://nice-entity.com/">Nice entity</a> hay una lista de conversión entre carácteres especiales y su versión en HTML y unicode.</p>
<p>Por ejemplo, á en unicode sería <code>\u00e1</code>, de manera que es prácticamente imposible recordar todos los carácteres, por eso lo más lógico es hacer una función que nos los convierta, así podemos escribir con los carácteres que queramos sin preocuparnos de la codificación, y luego aplicar la función.<span id="more-1369"></span></p>
<p>He hecho una con las más importantes, usa <code><a href="http://www.emm-gfx.net/2010/01/str_replace-de-php-en-javascript-2/">replace()</a></code>:</p>
<pre>function tildes_unicode(str){
	str = str.replace('á','\u00e1');
	str = str.replace('é','\u00e9');
	str = str.replace('í','\u00ed');
	str = str.replace('ó','\u00f3');
	str = str.replace('ú','\u00fa');

	str = str.replace('Á','\u00c1');
	str = str.replace('É','\u00c9');
	str = str.replace('Í','\u00cd');
	str = str.replace('Ó','\u00d3');
	str = str.replace('Ú','\u00da');

	str = str.replace('ñ','\u00f1');
	str = str.replace('Ñ','\u00d1');
	return str;
}</pre>
<p>Un ejemplo de uso sería:</p>
<pre>var cadena = "Así";
alert(tildes_unicode(cadena)); // Así
alert(cadena); // AsÃ­</pre>
<h2  class="related_post_title">Articulos relacionados</h2><ul class="related_post"><li><a href="http://www.emm-gfx.net/2010/03/base64-encode-y-decode-en-javascript/" title="Base64 (encode y decode) en Javascript">Base64 (encode y decode) en Javascript</a> (1)</li><li><a href="http://www.emm-gfx.net/2010/03/enviar-el-log-de-errores-de-php-por-email/" title="Enviar el log de errores de PHP por email">Enviar el log de errores de PHP por email</a> (0)</li><li><a href="http://www.emm-gfx.net/2010/02/obtener-la-url-que-se-esta-visitando-con-php/" title="Obtener la URL que se esta visitando con PHP">Obtener la URL que se esta visitando con PHP</a> (0)</li><li><a href="http://www.emm-gfx.net/2010/02/comprobar-dni-nif-con-php/" title="Comprobar DNI / NIF con PHP">Comprobar DNI / NIF con PHP</a> (0)</li><li><a href="http://www.emm-gfx.net/2010/01/str_replace-de-php-en-javascript-2/" title="La función str_replace() de PHP en Javascript">La función str_replace() de PHP en Javascript</a> (0)</li><li><a href="http://www.emm-gfx.net/2009/12/comprobar-la-validez-de-un-dominio-con-php/" title="Comprobar la validez de un dominio con PHP">Comprobar la validez de un dominio con PHP</a> (0)</li><li><a href="http://www.emm-gfx.net/2009/11/str_replace-de-php-en-javascript/" title="str_replace() de PHP en Javascript">str_replace() de PHP en Javascript</a> (0)</li><li><a href="http://www.emm-gfx.net/2009/09/aprender-jquery-1-que-es-y-por-que-usarlo/" title="Aprender jQuery, 1: Qué és y por qué usarlo.">Aprender jQuery, 1: Qué és y por qué usarlo.</a> (0)</li><li><a href="http://www.emm-gfx.net/2009/08/recursividad-en-mkdir-de-php/" title="Recursividad en mkdir de PHP">Recursividad en mkdir de PHP</a> (0)</li><li><a href="http://www.emm-gfx.net/2009/07/detectar-peticion-ajax-con-php/" title="Detectar petición AJAX con PHP">Detectar petición AJAX con PHP</a> (1)</li></ul>]]></content:encoded>
			<wfw:commentRss>http://www.emm-gfx.net/2010/07/acentos-y-tildes-en-javascript/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>He vuelto a hacerlo</title>
		<link>http://www.emm-gfx.net/2010/07/he-vuelto-a-hacerlo/</link>
		<comments>http://www.emm-gfx.net/2010/07/he-vuelto-a-hacerlo/#comments</comments>
		<pubDate>Thu, 22 Jul 2010 19:35:53 +0000</pubDate>
		<dc:creator>Josep Viciana</dc:creator>
				<category><![CDATA[General]]></category>
		<category><![CDATA[Facebook]]></category>

		<guid isPermaLink="false">http://www.emm-gfx.net/?p=1342</guid>
		<description><![CDATA[La verdad es que Facebook me gusta, me parece admirable y creo que es una obra maestra de la civilización, muy por encima de la televisión y las altas tecnologías (no hablo de Facebook como un elemento tecnológico, aunque lo sea, ahora mismo me refiero a Facebook como concepto). La forma en que se ha [...]]]></description>
			<content:encoded><![CDATA[<div class="tweetmeme_button" style="float:left; margin:-34px 0px 0px -60px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fwww.emm-gfx.net%2F2010%2F07%2Fhe-vuelto-a-hacerlo%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fwww.emm-gfx.net%2F2010%2F07%2Fhe-vuelto-a-hacerlo%2F&amp;source=emmgfx&amp;style=normal&amp;service=bit.ly" height="61" width="50" /><br />
			</a>
		</div>
<p>La verdad es que Facebook me gusta, me parece admirable y creo que es una obra maestra de la civilización, muy por encima de la televisión y las altas tecnologías (no hablo de Facebook como un elemento tecnológico, aunque lo sea, ahora mismo me refiero a Facebook como concepto). La forma en que se ha construido y evolucionado desde que empezó, su forma de atraer a los usuarios a la vorágine de la nueva información del resto de usuarios y el <em>feedback</em> de la nuestra. La manera de atraerte a publicar y ver contenidos, de expresar tus gustos y definirte como persona en un perfil limpio y claro. Facebook (con o sin oscuros intereses y todos los trapos sucios que se saquen) es una idea genial llevada a cabo de la mejor forma posible. Facebook <em>mola</em>, es un hecho, y los 500.000.000 usuarios registrados a día de hoy lo demuestran. Y yo&#8230; <strong>he vuelto a <del datetime="2010-07-22T19:22:19+00:00">borrar</del> desactivar mi cuenta de Facebook</strong>.</p>
<div style="background-color:#2a5c97;background-color:#2A5C97;color:#FFFFFF;font-family:Georgia;padding:5px 10px 5px 5px; -moz-border-radius:0px 5px 5px 0px; -webkit-border-radius:0px 5px 5px 0px; border-radius:0px 5px 5px 0px;text-align:justify; height:110px;"><img src="http://www.emm-gfx.net/wp-content/uploads/2010/07/fb.png" alt="" width="202" height="120" style="float:left;margin:-5px 5px 0 -5px;" />Me ha dado por calcular el porcentaje de usuarios de Facebook en relación al número de habitantes del estado español y es asombroso. No sé si lo habré hecho bien pero el resultado es que Facebook tiene diez veces más habitantes que España (46951532 españoles frente a 500000000 perfiles). La gente que trabaja en en la red social puede estar orgullosa.</div>
<p><span id="more-1342"></span></p>
<p><strong>No es por privacidad</strong>, porque no tengo nada privado ni comprometedor, lo máximo que podría averiguar de mí alguien por mi perfil de Facebook sería con qué gente me muevo, y, si está infiltrado en mi lista de poco más de 50 amigos como mucho sabría que películas, música y libros me gustan; pero eso no me preocupa en absoluto por dos razones. Porque no creo que nadie (además de las corporaciones que investigan los gustos de la gente) tenga ningún tipo de interés en saberlos. Y también porque no hay nada comprometedor.<br />
Nunca he puesto fotos mías ni de amigos, aunque se que como mínimo hay 4 fotos en las que salgo yo, subidas por otros usuarios (y eso no me gusta). Es una pena,  había conseguido que hasta el boom de Facebook no hubieran fotos mías en internet, podéis llamarme paranoico pero es algo que no me gusta.</p>
<p>Entonces ¿cuál és el problema? Precisamente eso, que está demasiado bien, és adictivo y entretenido. Y acaba por hacerme perder el tiempo de forma seria.</p>
<p>El tiempo que dedico a mis proyectos personales en los últimos días se ha reducido a cero, aunque no me preocupa demasiado. Pero en la oficina con el trabajo de verdad también ha empezado a quitarme demasiado tiempo, y lo que es peor, hace que me cueste concentrarme.</p>
<p>Existen teorías y estudios sobre la mejora de productividad en trabajadores que utilizan redes sociales en el trabajo que desde luego no me he mirado, pero supongo que mis fuentes son fehacientes. Me creo esos estudios, me parece lógico hasta cierto punto, la gente necesita &#8220;desconectar&#8221; de vez en cuando para no saturarse. Pero el mismo diseño de Facebook hace que lo tengas siempre abierto, siempre en una pestaña o recibiendo notificaciones en el móvil o en el mismo sistema operativo de tu ordenador. Eso es completamente innecesario y no te hace desconectar, sino dejar de hacer otras cosas para estar pendiente sólo de Facebook, es decir, dejar de hacer otras cosas para perder el tiempo.</p>
<p>La otra vez que cerré mi cuenta (de ahí lo de &#8220;he vuelto&#8221;) fue por lo mismo, porque me quitaba demasiado tiempo. Y pasó lo menos sorprendente, volví a escribir cosas que creo interesantes en este blog y empecé proyectos. Cuando creí estar <em>desenganchado</em> de Facebook volví a activar mi cuenta y volví a dejar de escribir aquí, a dejar de lado mis proyectos y a bajar la productividad en general.</p>
<p>Asi que nada, ya no tengo perfil en Facebook, ahora en lugar de publicar allí cualquier cosa que vea con un mínimo de interés lo haré en este blog, y espero que la pereza de escribir haga de filtro para que sólo las cosas más interesantes se publiquen.</p>
<h2  class="related_post_title">Articulos relacionados</h2><ul class="related_post"><li>No se encuentran articulos relacionados</li></ul>]]></content:encoded>
			<wfw:commentRss>http://www.emm-gfx.net/2010/07/he-vuelto-a-hacerlo/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>La vuvuzela de Youtube</title>
		<link>http://www.emm-gfx.net/2010/06/la-vuvuzela-de-youtube/</link>
		<comments>http://www.emm-gfx.net/2010/06/la-vuvuzela-de-youtube/#comments</comments>
		<pubDate>Thu, 24 Jun 2010 18:36:55 +0000</pubDate>
		<dc:creator>Josep Viciana</dc:creator>
				<category><![CDATA[General]]></category>
		<category><![CDATA[Vuvuzela]]></category>
		<category><![CDATA[Youtube]]></category>

		<guid isPermaLink="false">http://www.emm-gfx.net/?p=1332</guid>
		<description><![CDATA[La verdad es que no entro casi nunca a Youtube, normalmente sólo cuando me pasan un enlace. Hoy me ha dado por buscar información sobre Janis Joplin en Google y salían unos videos relacionados, he ido a ver uno y he visto que el reproductor tenía un icono nuevo, una pelota de futbol. Extrañado, he [...]]]></description>
			<content:encoded><![CDATA[<div class="tweetmeme_button" style="float:left; margin:-34px 0px 0px -60px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fwww.emm-gfx.net%2F2010%2F06%2Fla-vuvuzela-de-youtube%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fwww.emm-gfx.net%2F2010%2F06%2Fla-vuvuzela-de-youtube%2F&amp;source=emmgfx&amp;style=normal&amp;service=bit.ly" height="61" width="50" /><br />
			</a>
		</div>
<p>La verdad es que no entro casi nunca a Youtube, normalmente sólo cuando me pasan un enlace. Hoy me ha dado por buscar información sobre Janis Joplin en Google y salían unos videos relacionados, he ido a ver uno y he visto que el reproductor tenía un icono nuevo, una pelota de futbol. Extrañado, he hecho click a ver qué hacía y me he llevado una sorpresa, la nueva habilidad de Youtube es dificultar a los usuarios que vean los videos con un sonido de vuvuzelas de fondo (aunque más bien son el sonido principal y el resto es lo que queda en el fondo).<span id="more-1332"></span></p>
<p>Me parece curioso, sobretodo porque ese sonido se ha hecho muy famoso ultimamente, con aplicaciones para iPhone, para Android, para Nokia, hay incluso gente que paga por tener esas aplicaciones&#8230; y no lo entiendo, es sólo una trompeta mermada.</p>
<p><img src="http://www.emm-gfx.net/wp-content/uploads/2010/06/youtube-610x475.jpg" alt="" width="100%" /></p>
<h2  class="related_post_title">Articulos relacionados</h2><ul class="related_post"><li>No se encuentran articulos relacionados</li></ul>]]></content:encoded>
			<wfw:commentRss>http://www.emm-gfx.net/2010/06/la-vuvuzela-de-youtube/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>En unos segundos</title>
		<link>http://www.emm-gfx.net/2010/06/en-unos-segundos/</link>
		<comments>http://www.emm-gfx.net/2010/06/en-unos-segundos/#comments</comments>
		<pubDate>Mon, 14 Jun 2010 13:00:25 +0000</pubDate>
		<dc:creator>Josep Viciana</dc:creator>
				<category><![CDATA[General]]></category>
		<category><![CDATA[Citas]]></category>

		<guid isPermaLink="false">http://www.emm-gfx.net/?p=1320</guid>
		<description><![CDATA[Lo dibujé en sólo unos segundos, pero me ha costado 34 años aprender a dibujarlo en sólo unos segundos - Paula Scher Articulos relacionadosLa programación hoy en día (0)Copia este libro (0)El propósito del obrero debería ser&#8230; (0)Fátum (1)UI is the killer feature (0)Grandes citas V (0)]]></description>
			<content:encoded><![CDATA[<div class="tweetmeme_button" style="float:left; margin:-34px 0px 0px -60px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fwww.emm-gfx.net%2F2010%2F06%2Fen-unos-segundos%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fwww.emm-gfx.net%2F2010%2F06%2Fen-unos-segundos%2F&amp;source=emmgfx&amp;style=normal&amp;service=bit.ly" height="61" width="50" /><br />
			</a>
		</div>
<blockquote><p>Lo dibujé en sólo unos segundos, pero me ha costado 34 años aprender a dibujarlo en sólo unos segundos</p></blockquote>
<p style="text-align: right;">- <a href="http://pentagram.com/es/socios/paula-scher.php" target="_blank">Paula Scher</a></p>
<h2  class="related_post_title">Articulos relacionados</h2><ul class="related_post"><li><a href="http://www.emm-gfx.net/2010/05/la-programacion-hoy-en-dia/" title="La programación hoy en día">La programación hoy en día</a> (0)</li><li><a href="http://www.emm-gfx.net/2010/02/copia-este-libro/" title="Copia este libro">Copia este libro</a> (0)</li><li><a href="http://www.emm-gfx.net/2009/12/el-proposito-del-obrero-deberia-ser/" title="El propósito del obrero debería ser&#8230;">El propósito del obrero debería ser&#8230;</a> (0)</li><li><a href="http://www.emm-gfx.net/2009/12/fatum/" title="Fátum">Fátum</a> (1)</li><li><a href="http://www.emm-gfx.net/2009/11/ui-is-the-killer-feature/" title="UI is the killer feature">UI is the killer feature</a> (0)</li><li><a href="http://www.emm-gfx.net/2008/12/grandes-citas-v/" title="Grandes citas V">Grandes citas V</a> (0)</li></ul>]]></content:encoded>
			<wfw:commentRss>http://www.emm-gfx.net/2010/06/en-unos-segundos/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Vectorizando 9, Rachel McAdams</title>
		<link>http://www.emm-gfx.net/2010/05/vectorizando-9-rachel-mcadams/</link>
		<comments>http://www.emm-gfx.net/2010/05/vectorizando-9-rachel-mcadams/#comments</comments>
		<pubDate>Mon, 17 May 2010 14:30:29 +0000</pubDate>
		<dc:creator>Josep Viciana</dc:creator>
				<category><![CDATA[Diseño e ilustración]]></category>
		<category><![CDATA[Dibujo]]></category>
		<category><![CDATA[Rachel McAdams]]></category>
		<category><![CDATA[Vectores]]></category>

		<guid isPermaLink="false">http://www.emm-gfx.net/?p=1289</guid>
		<description><![CDATA[Hace unos seis meses hice el que iba a ser mi último dibujo, fué entre diciembre de 2009 y enero de 2010, unos meses fríos, lo que acentuaba el dolor que me hizo decir que no haría más dibujos. Pero ahora con la primavera parece que se ha solucionado, más o menos, y que puedo [...]]]></description>
			<content:encoded><![CDATA[<div class="tweetmeme_button" style="float:left; margin:-34px 0px 0px -60px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fwww.emm-gfx.net%2F2010%2F05%2Fvectorizando-9-rachel-mcadams%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fwww.emm-gfx.net%2F2010%2F05%2Fvectorizando-9-rachel-mcadams%2F&amp;source=emmgfx&amp;style=normal&amp;service=bit.ly" height="61" width="50" /><br />
			</a>
		</div>
<p>Hace unos seis meses hice el que iba a ser <a href="http://www.emm-gfx.net/2010/01/vectorizando-8-merce/">mi último dibujo</a>, fué entre diciembre de 2009 y enero de 2010, unos meses fríos, lo que acentuaba el dolor que me hizo decir que no haría más dibujos. Pero ahora con la primavera parece que se ha solucionado, más o menos, y que puedo volver a intentarlo.</p>
<p>Empecé este dibujo en marzo, con la primavera, y lo he acabado en abril, un mes después. He usado Photoshop CS4 (para el próximo me he propuesto empezar a usar Illustrator, para poder comparar) de OS X y mi Wacom Graphire Bluetooth de siempre. La modelo (por llamarla de alguna manera) es <a href="http://es.wikipedia.org/wiki/Rachel_McAdams">Rachel McAdams</a>, supongo que ha sido por verla en <a href="http://es.wikipedia.org/wiki/Sherlock_Holmes_%282009%29">la película de Sherlock Holmes</a>, que me gustó bastante.<span id="more-1289"></span></p>
<p><object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="100%" height="338" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="allowfullscreen" value="true" /><param name="allowscriptaccess" value="always" /><param name="src" value="http://vimeo.com/moogaloop.swf?clip_id=11783557&amp;server=vimeo.com&amp;show_title=1&amp;show_byline=1&amp;show_portrait=0&amp;color=ffffff&amp;fullscreen=1" /><embed type="application/x-shockwave-flash" width="100%" height="338" src="http://vimeo.com/moogaloop.swf?clip_id=11783557&amp;server=vimeo.com&amp;show_title=1&amp;show_byline=1&amp;show_portrait=0&amp;color=ffffff&amp;fullscreen=1" allowscriptaccess="always" allowfullscreen="true"></embed></object><br />
<a href="http://vimeo.com/11783557">Vectorizando 9, Rachel McAdams</a> from <a href="http://vimeo.com/emmgfx">Josep Viciana</a> on <a href="http://vimeo.com">Vimeo</a>.</p>
<p>Siempre que hago un dibujo voy guardando <em>snapshots </em>del proceso para luego hacer un video con todas, y esta vez además he guardado un video del principio para ponerlo a cámara rápida. Creo que ha quedado bastante bien y hace que el resultado sea más entretenido de ver, así que supongo que cuando haga otro dibujo lo haré grabando todo el proceso (aunque sea bastante más pesado).</p>
<p>La canción del video es Ones were warriors, de <a href="http://www.thedisasters.com">Roger Miret &amp; the disasters</a>, el grupo punk-rock del vocalista de Agnostic Front.</p>
<p>He colgado <a href="http://www.facebook.com/album.php?aid=128943&amp;id=1091864507&amp;l=d57fba9eea">las fotos del proceso en mi perfil de Facebook</a>, aunque mi perfil es privado he hecho las fotos públicas para poderlas enlazar aquí.</p>
<p>Y por último, parece ser que este dibujo ha llamado la atención de Nando de <a href="http://www.myspace.com/proudz" target="_blank">Proud&#8217;z</a>, un grupo de Madrid que sigo desde hace bastantes años. Me ha sugerido que haga algún dibujo para merchandising, y eso sin duda me gustaría bastante, asi que habrá que ver como acaba este tema.</p>
<h2  class="related_post_title">Articulos relacionados</h2><ul class="related_post"><li><a href="http://www.emm-gfx.net/2010/01/vectorizando-8-merce/" title="Vectorizando 8. Mercè">Vectorizando 8. Mercè</a> (0)</li><li><a href="http://www.emm-gfx.net/2009/12/comportamiento-de-la-pluma-en-photoshop-cs4/" title="Comportamiento de la pluma en Photoshop CS4">Comportamiento de la pluma en Photoshop CS4</a> (0)</li></ul>]]></content:encoded>
			<wfw:commentRss>http://www.emm-gfx.net/2010/05/vectorizando-9-rachel-mcadams/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>La programación hoy en día</title>
		<link>http://www.emm-gfx.net/2010/05/la-programacion-hoy-en-dia/</link>
		<comments>http://www.emm-gfx.net/2010/05/la-programacion-hoy-en-dia/#comments</comments>
		<pubDate>Wed, 05 May 2010 12:31:34 +0000</pubDate>
		<dc:creator>Josep Viciana</dc:creator>
				<category><![CDATA[General]]></category>
		<category><![CDATA[Citas]]></category>
		<category><![CDATA[Rich Cook]]></category>

		<guid isPermaLink="false">http://www.emm-gfx.net/?p=1276</guid>
		<description><![CDATA[Creo que nunca dejaré de sorprenderme, en este sentido. &#8220;La programación hoy en día, es una carrera entre los desarrolladores de software, tratando de crear más y mejores programas a prueba de idiotas, y el universo, creando más y mejores idiotas. De momento, el universo va ganando.&#8221; - Rich Cook Articulos relacionadosEn unos segundos (0)Copia [...]]]></description>
			<content:encoded><![CDATA[<div class="tweetmeme_button" style="float:left; margin:-34px 0px 0px -60px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fwww.emm-gfx.net%2F2010%2F05%2Fla-programacion-hoy-en-dia%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fwww.emm-gfx.net%2F2010%2F05%2Fla-programacion-hoy-en-dia%2F&amp;source=emmgfx&amp;style=normal&amp;service=bit.ly" height="61" width="50" /><br />
			</a>
		</div>
<p>Creo que nunca dejaré de sorprenderme, en este sentido.</p>
<blockquote><p>&#8220;La programación hoy en día, es una carrera entre los desarrolladores de software, tratando de crear más y mejores programas a prueba de idiotas, y el universo, creando más y mejores idiotas. De momento, el universo va ganando.&#8221;</p></blockquote>
<p style="text-align: right;">- <a href="http://en.wikipedia.org/wiki/Rick_Cook" target="_blank">Rich Cook</a></p>
<h2  class="related_post_title">Articulos relacionados</h2><ul class="related_post"><li><a href="http://www.emm-gfx.net/2010/06/en-unos-segundos/" title="En unos segundos">En unos segundos</a> (0)</li><li><a href="http://www.emm-gfx.net/2010/02/copia-este-libro/" title="Copia este libro">Copia este libro</a> (0)</li><li><a href="http://www.emm-gfx.net/2009/12/el-proposito-del-obrero-deberia-ser/" title="El propósito del obrero debería ser&#8230;">El propósito del obrero debería ser&#8230;</a> (0)</li><li><a href="http://www.emm-gfx.net/2009/12/fatum/" title="Fátum">Fátum</a> (1)</li><li><a href="http://www.emm-gfx.net/2009/11/ui-is-the-killer-feature/" title="UI is the killer feature">UI is the killer feature</a> (0)</li><li><a href="http://www.emm-gfx.net/2008/12/grandes-citas-v/" title="Grandes citas V">Grandes citas V</a> (0)</li></ul>]]></content:encoded>
			<wfw:commentRss>http://www.emm-gfx.net/2010/05/la-programacion-hoy-en-dia/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Las pulseras magnéticas que lo curan todo</title>
		<link>http://www.emm-gfx.net/2010/05/las-pulseras-magneticas-que-lo-curan-todo/</link>
		<comments>http://www.emm-gfx.net/2010/05/las-pulseras-magneticas-que-lo-curan-todo/#comments</comments>
		<pubDate>Mon, 03 May 2010 09:24:59 +0000</pubDate>
		<dc:creator>Josep Viciana</dc:creator>
				<category><![CDATA[General]]></category>
		<category><![CDATA[Power balance]]></category>
		<category><![CDATA[pulsera]]></category>
		<category><![CDATA[timo]]></category>

		<guid isPermaLink="false">http://www.emm-gfx.net/?p=1250</guid>
		<description><![CDATA[Desde hace unas semanas estoy viendo cada vez a más gente con estas pulseras&#8230; no voy a escribir sobre lo que milagrosamente logran, sino sobre porque digo que no lo hacen y cómo puede ser que hayan triunfado tanto sin haber ni un sólo estudio que respalde su efecto y siendo algo tan fácilmente catalogable [...]]]></description>
			<content:encoded><![CDATA[<div class="tweetmeme_button" style="float:left; margin:-34px 0px 0px -60px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fwww.emm-gfx.net%2F2010%2F05%2Flas-pulseras-magneticas-que-lo-curan-todo%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fwww.emm-gfx.net%2F2010%2F05%2Flas-pulseras-magneticas-que-lo-curan-todo%2F&amp;source=emmgfx&amp;style=normal&amp;service=bit.ly" height="61" width="50" /><br />
			</a>
		</div>
<p>Desde hace unas semanas estoy viendo cada vez a más gente con estas <a class="fancy" href="http://www.emm-gfx.net/wp-content/uploads/2010/05/pulsera-power-balance.jpg">pulseras</a>&#8230; no voy a escribir sobre lo que milagrosamente logran, sino sobre porque digo que no lo hacen y cómo puede ser que hayan triunfado tanto sin haber ni un sólo estudio que respalde su efecto y siendo algo tan fácilmente catalogable de timo.<span id="more-1250"></span></p>
<p>Lo que <del datetime="2010-05-03T07:33:00+00:00">este timo</del> hace, es mejorar tu equilibrio (¿equilibrio de qué, espiritual? ¿o hay alguien va tropezando y volcando sobre si mismo cada vez que se pone de pies?) evitar dolores de cabeza, reducir estrés y entre otras muchas cosas (cara de póquer incoming), <strong>aumentar el núcleo de fuerza y energía del cuerpo</strong>.</p>
<p>Lo que te venden es una pulsera de silicona con un <a class="fancy" href="http://www.emm-gfx.net/wp-content/uploads/2010/05/dscf4926.jpg">holograma</a>, así de sencillo.</p>
<p>La verdad es que no sé cual es el precio de fabricación de esta pulsera, pero puedo pensar que como mucho (insisto en el mucho) debe costar unos 0,50€ frente al precio para la masa que es de unos 30€.</p>
<p>Lo que la gente ve es que es algo que todo mundo dice que funciona de verdad, que los <a class="fancy" href="http://www.emm-gfx.net/wp-content/uploads/2010/05/guti.jpg">famosos</a> la utilizan y no tiene un precio exagerado,  o mas bien, no nos viene de 30€ asi que ¿por qué no probarlo?. Si en lugar de valer eso costaran 2€ la gente pensaría que es una chorrada, que es imposible que por ese precio sea algo a tener en cuenta, pero al ser algo que &#8220;pica&#8221; un poco, aunque sea poco, ya hay que darle importancia. De esa manera, cuanto más grave es el timo, más éxito tiene.</p>
<p>El hecho de ser una pulsera hace que la veas constantemente, que pienses en ella y en lo que el boca a boca te ha dicho que hace. Pero en realidad eso sólo hace que potenciar el <strong>efecto placebo</strong>, que sí es algo real y por tanto, todo lo que la pulsera arregle, es mental y podría solucionarse tomando pastillas de azúcar o simplemente siendo conscientes de que esos problemas y achaques son reales, pero no fisicos, y que una piedra  en el zapato nos haría el mismo beneficio que la pulsera de 30€.</p>
<p>En la tienda online oficial de la pulsera, hay un <span style="text-decoration: line-through;">falso</span> testimonio que dice: &#8220;<em>mi madre con artrosis en una pierna ha dejado de usar muletas, ya que no cojea ni un 5% de lo que lo hacía antes</em>&#8220;. Así que deberían andarse con ojo las farmacéuticas que promuevan enfermedades en sí o el miedo a ellas, porque estas pulseras les van a destrozar el negocio.</p>
<p>Lo curioso es que todo esto no es algo que estuviera por descubrir, es algo que todo el mundo sabe pero que por algún motivo quiere omitir, como si necesitaran la ilusión de creer que hay algo capaz de curar sus males y desconocer el método. Pero no, es un trozo de silicona y lo que <strong>espero que os resulte irritante</strong>: habéis pagado mucho por él.</p>
<h2  class="related_post_title">Articulos relacionados</h2><ul class="related_post"><li>No se encuentran articulos relacionados</li></ul>]]></content:encoded>
			<wfw:commentRss>http://www.emm-gfx.net/2010/05/las-pulseras-magneticas-que-lo-curan-todo/feed/</wfw:commentRss>
		<slash:comments>8</slash:comments>
		</item>
		<item>
		<title>Bowtie, para OS X</title>
		<link>http://www.emm-gfx.net/2010/04/bowtie-para-os-x/</link>
		<comments>http://www.emm-gfx.net/2010/04/bowtie-para-os-x/#comments</comments>
		<pubDate>Thu, 29 Apr 2010 17:07:03 +0000</pubDate>
		<dc:creator>Josep Viciana</dc:creator>
				<category><![CDATA[General]]></category>
		<category><![CDATA[Bowtie]]></category>
		<category><![CDATA[desklet]]></category>
		<category><![CDATA[iTunes]]></category>
		<category><![CDATA[OS X]]></category>
		<category><![CDATA[widget]]></category>

		<guid isPermaLink="false">http://www.emm-gfx.net/?p=1208</guid>
		<description><![CDATA[Bowtie es una aplicación para OS X que permite tener algo así como un widget, desklet o applet, que se coloca en el escritorio y permite tener un relativo control de iTunes (dependiendo del skin que se use se pueden controlar unas cosas u otras). Para entender mejor lo que hace, lo mejor son unas [...]]]></description>
			<content:encoded><![CDATA[<div class="tweetmeme_button" style="float:left; margin:-34px 0px 0px -60px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fwww.emm-gfx.net%2F2010%2F04%2Fbowtie-para-os-x%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fwww.emm-gfx.net%2F2010%2F04%2Fbowtie-para-os-x%2F&amp;source=emmgfx&amp;style=normal&amp;service=bit.ly" height="61" width="50" /><br />
			</a>
		</div>
<p>Bowtie es una aplicación para OS X que permite tener algo así como un widget, desklet o applet, que se coloca en el escritorio y permite tener un relativo control de iTunes (dependiendo del skin que se use se pueden controlar unas cosas u otras).</p>
<div style="background-image: url(http://www.emm-gfx.net/wp-content/uploads/2010/04/background.png); width: 100%; border: 1px solid #000000; padding: 10px 0px 0px 0px; background-position: 0px -80px;" align="center"><img src="http://www.emm-gfx.net/wp-content/uploads/2010/04/logo.png" border="0" alt="" /></div>
<p><span id="more-1208"></span></p>
<p>Para entender mejor lo que hace, lo mejor son <strong>unas imagenes</strong>:</p>
<p><a href="http://www.emm-gfx.net/wp-content/uploads/2010/04/rexcon.jpg" class="fancy" rel="bowtie"><img class="alignnone size-thumbnail wp-image-1218" title="rexcon" src="http://www.emm-gfx.net/wp-content/uploads/2010/04/rexcon-150x82.jpg" alt="" width="150" height="82" style="border:1px solid #333; padding:2px;" /></a> <a href="http://www.emm-gfx.net/wp-content/uploads/2010/04/minimal.jpg" class="fancy" rel="bowtie"><img class="alignnone size-thumbnail wp-image-1217" title="minimal" src="http://www.emm-gfx.net/wp-content/uploads/2010/04/minimal-150x39.jpg" alt="" width="150" height="39" style="border:1px solid #333; padding:2px;"/></a> <a href="http://www.emm-gfx.net/wp-content/uploads/2010/04/bowtie-baumann.jpg" class="fancy"rel="bowtie"><img class="alignnone size-thumbnail wp-image-1216" title="bowtie-baumann" src="http://www.emm-gfx.net/wp-content/uploads/2010/04/bowtie-baumann-150x68.jpg" alt="" width="150" height="68" style="border:1px solid #333; padding:2px;"  /></a></p>
<p>Bowtie es gratuito y se puede descargar desde <a href="http://bowtieapp.com/">su web</a>. Una vez instalado, basta con buscar algun skin que nos guste e instalarselo (con un sólo doble click) y cuando utilicemos iTunes aparecerá Bowtie en el escritorio.</p>
<p>Lo mejor del programa son, sin duda, sus skins, que tienen un diseño muy cuidado. Eso es lo que pasa cuando hacer un skin resulta &#8220;fácil&#8221;, ya que está preparado para que se desarrollen con HTML5, CSS y Javascript. La verdad es que no he mirado como se hacen&#8230; he encontrado por ahí <a href="http://iandrew.deviantart.com/art/Pixel-for-Bowtie-104192795">un diseño sencillo que hace lo que quiero</a>, no tengo necesidad de hacer el mío propio; pero para quien lo quiera probar, los creadores del programa han escrito una <a href="http://library.13bold.com/developing-themes-for-bowtie/">guia para aprender a desarrollar temas de Bowtie</a>.</p>
<p>Bowtie además está preparado para funcionar con Growl y la API de Last.fm, así que puede usarse de substituto para el scrobbling, sin necesitar el programa oficial de Last.fm.</p>
<ul>
<li><a href="http://bowtieapp.com/">Descargar Bowtie</a></li>
<li><a href="http://smokingapples.com/software/10-beautiful-bowtie-themes/">Recopilatorio de temas (1) para Bowtie</a></li>
<li><a href="http://www.appsmashups.com/themes-para-bowtie/">Recopilatorio de temas (y 2) para Bowtie</a></li>
</ul>
<p>La verdad, no sé por qué he escrito esto, sólo que he vuelto a instalarme el programa después de algún tiempo y he pensado que podría estar bien, ya que llevo un mes sin escribir nada en el blog, pero creo que esto es justo lo que no quería. Toma dos tazas.</p>
<h2  class="related_post_title">Articulos relacionados</h2><ul class="related_post"><li><a href="http://www.emm-gfx.net/2009/08/aplicaciones-por-defecto-en-os-x/" title="Aplicaciones por defecto en OS X">Aplicaciones por defecto en OS X</a> (0)</li><li><a href="http://www.emm-gfx.net/2009/07/la-sensibilidad-del-raton-en-mac/" title="La sensibilidad del ratón en Mac">La sensibilidad del ratón en Mac</a> (3)</li><li><a href="http://www.emm-gfx.net/2009/07/mejoras-visuales-de-snow-leopard/" title="Mejoras visuales de Snow Leopard">Mejoras visuales de Snow Leopard</a> (3)</li><li><a href="http://www.emm-gfx.net/2009/07/minimizado-suck-en-os-x/" title="Minimizado &#8220;suck&#8221; en OS X">Minimizado &#8220;suck&#8221; en OS X</a> (1)</li></ul>]]></content:encoded>
			<wfw:commentRss>http://www.emm-gfx.net/2010/04/bowtie-para-os-x/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Base64 (encode y decode) en Javascript</title>
		<link>http://www.emm-gfx.net/2010/03/base64-encode-y-decode-en-javascript/</link>
		<comments>http://www.emm-gfx.net/2010/03/base64-encode-y-decode-en-javascript/#comments</comments>
		<pubDate>Mon, 29 Mar 2010 17:22:34 +0000</pubDate>
		<dc:creator>Josep Viciana</dc:creator>
				<category><![CDATA[Javascript]]></category>
		<category><![CDATA[base64]]></category>
		<category><![CDATA[codificar]]></category>
		<category><![CDATA[decodificar]]></category>
		<category><![CDATA[Función]]></category>

		<guid isPermaLink="false">http://www.emm-gfx.net/?p=1162</guid>
		<description><![CDATA[Me he pasado un rato buscando alguna función para codificar y decodificar (que no encriptar) cadenas de texto en base64, de la misma forma que lo haría en PHP. Nota: No utilizar esto para &#8220;ofuscar&#8221; las contraseñas o cualquier otro dato importante, hay que tener en cuenta que cualquiera puede decodificar una cadena en base64. [...]]]></description>
			<content:encoded><![CDATA[<div class="tweetmeme_button" style="float:left; margin:-34px 0px 0px -60px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fwww.emm-gfx.net%2F2010%2F03%2Fbase64-encode-y-decode-en-javascript%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fwww.emm-gfx.net%2F2010%2F03%2Fbase64-encode-y-decode-en-javascript%2F&amp;source=emmgfx&amp;style=normal&amp;service=bit.ly" height="61" width="50" /><br />
			</a>
		</div>
<p>Me he pasado un rato buscando alguna función para codificar y decodificar (que no encriptar) cadenas de texto en base64, de la misma forma que lo haría en PHP.</p>
<div class="cuadro-amarillo"><strong>Nota:</strong> No utilizar esto para &#8220;ofuscar&#8221; las contraseñas o cualquier otro dato importante, hay que tener en cuenta que cualquiera puede <a href="http://www.motobit.com/util/base64-decoder-encoder.asp" target="_blank">decodificar una cadena en base64</a>. Lo correcto es usar algoritmos como <a href="http://www.php.net/md5" target="_blank">md5</a> que no se pueden desvelar tan fácilmente (que yo sepa, sólo es posible con <a href="http://es.wikipedia.org/wiki/Ataque_de_fuerza_bruta" target="_blank">fuerza bruta</a>).</div>
<p>En PHP es algo así:</p>
<pre>&lt;?PHP
$cadena = base64_encode('w00t');
echo $cadena; # dzAwdA==
$cadena = base64_decode('dzAwdA==');
echo $cadena; # w00t
?&gt;
</pre>
<p>Y en Javascript, con el código que pondré a continuación, sería algo así:</p>
<pre>&lt;script&gt;
var cadena = Base64.encode('w00t');
alert(cadena); // dzAwdA==
var cadena = Base64.decode('dzAwdA==');
alert(cadena); // w00t
&lt;/script&gt;
</pre>
<p><span id="more-1162"></span><br />
El código javascript para que esto funcione, es el siguiente:</p>
<pre>/**
*
*  Base64 encode / decode
*  http://www.webtoolkit.info/
*
**/

var Base64 = {

	// private property
	_keyStr : "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",

	// public method for encoding
	encode : function (input) {
		var output = "";
		var chr1, chr2, chr3, enc1, enc2, enc3, enc4;
		var i = 0;

		input = Base64._utf8_encode(input);

		while (i &lt; input.length) {

			chr1 = input.charCodeAt(i++);
			chr2 = input.charCodeAt(i++);
			chr3 = input.charCodeAt(i++);

			enc1 = chr1 &gt;&gt; 2;
			enc2 = ((chr1 &amp; 3) &lt;&lt; 4) | (chr2 &gt;&gt; 4);
			enc3 = ((chr2 &amp; 15) &lt;&lt; 2) | (chr3 &gt;&gt; 6);
			enc4 = chr3 &amp; 63;

			if (isNaN(chr2)) {
				enc3 = enc4 = 64;
			} else if (isNaN(chr3)) {
				enc4 = 64;
			}

			output = output +
			this._keyStr.charAt(enc1) + this._keyStr.charAt(enc2) +
			this._keyStr.charAt(enc3) + this._keyStr.charAt(enc4);

		}

		return output;
	},

	// public method for decoding
	decode : function (input) {
		var output = "";
		var chr1, chr2, chr3;
		var enc1, enc2, enc3, enc4;
		var i = 0;

		input = input.replace(/[^A-Za-z0-9\+\/\=]/g, "");

		while (i &lt; input.length) {

			enc1 = this._keyStr.indexOf(input.charAt(i++));
			enc2 = this._keyStr.indexOf(input.charAt(i++));
			enc3 = this._keyStr.indexOf(input.charAt(i++));
			enc4 = this._keyStr.indexOf(input.charAt(i++));

			chr1 = (enc1 &lt;&lt; 2) | (enc2 &gt;&gt; 4);
			chr2 = ((enc2 &amp; 15) &lt;&lt; 4) | (enc3 &gt;&gt; 2);
			chr3 = ((enc3 &amp; 3) &lt;&lt; 6) | enc4;

			output = output + String.fromCharCode(chr1);

			if (enc3 != 64) {
				output = output + String.fromCharCode(chr2);
			}
			if (enc4 != 64) {
				output = output + String.fromCharCode(chr3);
			}

		}

		output = Base64._utf8_decode(output);

		return output;

	},

	// private method for UTF-8 encoding
	_utf8_encode : function (string) {
		string = string.replace(/\r\n/g,"\n");
		var utftext = "";

		for (var n = 0; n &lt; string.length; n++) {

			var c = string.charCodeAt(n);

			if (c &lt; 128) {
				utftext += String.fromCharCode(c);
			}
			else if((c &gt; 127) &amp;&amp; (c &lt; 2048)) {
				utftext += String.fromCharCode((c &gt;&gt; 6) | 192);
				utftext += String.fromCharCode((c &amp; 63) | 128);
			}
			else {
				utftext += String.fromCharCode((c &gt;&gt; 12) | 224);
				utftext += String.fromCharCode(((c &gt;&gt; 6) &amp; 63) | 128);
				utftext += String.fromCharCode((c &amp; 63) | 128);
			}

		}

		return utftext;
	},

	// private method for UTF-8 decoding
	_utf8_decode : function (utftext) {
		var string = "";
		var i = 0;
		var c = c1 = c2 = 0;

		while ( i &lt; utftext.length ) {

			c = utftext.charCodeAt(i);

			if (c &lt; 128) {
				string += String.fromCharCode(c);
				i++;
			}
			else if((c &gt; 191) &amp;&amp; (c &lt; 224)) {
				c2 = utftext.charCodeAt(i+1);
				string += String.fromCharCode(((c &amp; 31) &lt;&lt; 6) | (c2 &amp; 63));
				i += 2;
			}
			else {
				c2 = utftext.charCodeAt(i+1);
				c3 = utftext.charCodeAt(i+2);
				string += String.fromCharCode(((c &amp; 15) &lt;&lt; 12) | ((c2 &amp; 63) &lt;&lt; 6) | (c3 &amp; 63));
				i += 3;
			}

		}

		return string;
	}

}</pre>
<h2  class="related_post_title">Articulos relacionados</h2><ul class="related_post"><li><a href="http://www.emm-gfx.net/2010/07/acentos-y-tildes-en-javascript/" title="Tildes en Javascript">Tildes en Javascript</a> (0)</li><li><a href="http://www.emm-gfx.net/2010/03/enviar-el-log-de-errores-de-php-por-email/" title="Enviar el log de errores de PHP por email">Enviar el log de errores de PHP por email</a> (0)</li><li><a href="http://www.emm-gfx.net/2010/02/obtener-la-url-que-se-esta-visitando-con-php/" title="Obtener la URL que se esta visitando con PHP">Obtener la URL que se esta visitando con PHP</a> (0)</li><li><a href="http://www.emm-gfx.net/2010/02/comprobar-dni-nif-con-php/" title="Comprobar DNI / NIF con PHP">Comprobar DNI / NIF con PHP</a> (0)</li><li><a href="http://www.emm-gfx.net/2010/01/str_replace-de-php-en-javascript-2/" title="La función str_replace() de PHP en Javascript">La función str_replace() de PHP en Javascript</a> (0)</li><li><a href="http://www.emm-gfx.net/2009/12/comprobar-la-validez-de-un-dominio-con-php/" title="Comprobar la validez de un dominio con PHP">Comprobar la validez de un dominio con PHP</a> (0)</li><li><a href="http://www.emm-gfx.net/2009/11/str_replace-de-php-en-javascript/" title="str_replace() de PHP en Javascript">str_replace() de PHP en Javascript</a> (0)</li><li><a href="http://www.emm-gfx.net/2009/09/aprender-jquery-1-que-es-y-por-que-usarlo/" title="Aprender jQuery, 1: Qué és y por qué usarlo.">Aprender jQuery, 1: Qué és y por qué usarlo.</a> (0)</li><li><a href="http://www.emm-gfx.net/2009/08/recursividad-en-mkdir-de-php/" title="Recursividad en mkdir de PHP">Recursividad en mkdir de PHP</a> (0)</li><li><a href="http://www.emm-gfx.net/2009/07/detectar-peticion-ajax-con-php/" title="Detectar petición AJAX con PHP">Detectar petición AJAX con PHP</a> (1)</li></ul>]]></content:encoded>
			<wfw:commentRss>http://www.emm-gfx.net/2010/03/base64-encode-y-decode-en-javascript/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Enviar el log de errores de PHP por email</title>
		<link>http://www.emm-gfx.net/2010/03/enviar-el-log-de-errores-de-php-por-email/</link>
		<comments>http://www.emm-gfx.net/2010/03/enviar-el-log-de-errores-de-php-por-email/#comments</comments>
		<pubDate>Thu, 11 Mar 2010 12:29:15 +0000</pubDate>
		<dc:creator>Josep Viciana</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[Control de errores]]></category>
		<category><![CDATA[Función]]></category>

		<guid isPermaLink="false">http://www.emm-gfx.net/?p=1125</guid>
		<description><![CDATA[Tener noticias de los errores que puedan surgir en una web, sobretodo cuando acaba de ser puesta en producción y necesita una atención especial para confirmar que todo funciona bien, o cuando se acaba de realizar algún cambio en el servidor, puede ser un punto muy importante. Para recibir los errores por email, hay que [...]]]></description>
			<content:encoded><![CDATA[<div class="tweetmeme_button" style="float:left; margin:-34px 0px 0px -60px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fwww.emm-gfx.net%2F2010%2F03%2Fenviar-el-log-de-errores-de-php-por-email%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fwww.emm-gfx.net%2F2010%2F03%2Fenviar-el-log-de-errores-de-php-por-email%2F&amp;source=emmgfx&amp;style=normal&amp;service=bit.ly" height="61" width="50" /><br />
			</a>
		</div>
<p>Tener noticias de los errores que puedan surgir en una web, sobretodo cuando acaba de ser puesta en producción y necesita una atención especial para confirmar que todo funciona bien, o cuando se acaba de realizar algún cambio en el servidor, puede ser un punto muy importante.</p>
<p>Para recibir los errores por email, hay que hacer dos cosas:<span id="more-1125"></span></p>
<ol>
<li>Preparar una función con las instrucciones en caso de ocurrir un error.</li>
<li>Decirle a PHP que tiene que ejecutar la función creada cuando sucedan errores.</li>
</ol>
<p>La primera parte, la función, sería algo así</p>
<pre>function errorPersonalizado($numeroerror, $cadenaerror){
    echo "&lt;div&gt;&lt;strong&gt;Error:&lt;/strong&gt; [$numeroerror] $cadenaerror&lt;/div&gt;";
    error_log("Error: [$numeroerror] $cadenaerror",1,"webmaster@elsitio.net","From: logerrores@elsitio.net");
}
</pre>
<p>La segunda parte, donde se le dice a PHP que tiene que ejecutar la función <code>errorPersonalizado</code> cuando ocurran errores, es sólo una linea:</p>
<pre>set_error_handler("errorPersonalizado");</pre>
<p>Por defecto, <code>set_error_handler</code> ejecuta <code>error_log()</code>.</p>
<p>Personalmente, creo que la mejor idea para controlar el log de errores en cada caso es&#8230;</p>
<ul>
<li>Para webs/aplicaciones <strong>en producción: No mostrar los errores en la misma página</strong>, por seguridad; y guardarlos en un archivo de logs que vaya &#8220;rotando&#8221; para que no acabe dando problemas cuando alcance tamaños complicados para el sistema de archivos. Los errores se pueden ocultar usando <code>error_reporting(0)</code>.</li>
<li><strong>Cuando se está desarrollando</strong>, lo más cómodo es <strong>tener los errores bien visibles</strong>, que aparezcan en la misma página cuando sucedan (este es el comportamiento por defecto).</li>
<li>Cuando cualquier tipo de error puede ser importante, lo mejor es utilizar este pequeño truco para enviar los errores por email y así mantenernos informados con más frecuencia, normalmente esto no es necesario cuando la programación está en desarrollo.</li>
</ul>
<p>Más información en la <a href="http://es.php.net/manual/en/ref.errorfunc.php" target="_blank">documentación oficial de PHP</a> y en <a href="http://www.w3schools.com/php/php_error.asp" target="_blank">w3schools</a>.</p>
<div id="_mcePaste" style="overflow: hidden; position: absolute; left: -10000px; top: 105px; width: 1px; height: 1px;">http://www.w3schools.com/php/php_error.asp</div>
<h2  class="related_post_title">Articulos relacionados</h2><ul class="related_post"><li><a href="http://www.emm-gfx.net/2010/02/obtener-la-url-que-se-esta-visitando-con-php/" title="Obtener la URL que se esta visitando con PHP">Obtener la URL que se esta visitando con PHP</a> (0)</li><li><a href="http://www.emm-gfx.net/2010/02/comprobar-dni-nif-con-php/" title="Comprobar DNI / NIF con PHP">Comprobar DNI / NIF con PHP</a> (0)</li><li><a href="http://www.emm-gfx.net/2009/12/comprobar-la-validez-de-un-dominio-con-php/" title="Comprobar la validez de un dominio con PHP">Comprobar la validez de un dominio con PHP</a> (0)</li><li><a href="http://www.emm-gfx.net/2009/08/recursividad-en-mkdir-de-php/" title="Recursividad en mkdir de PHP">Recursividad en mkdir de PHP</a> (0)</li><li><a href="http://www.emm-gfx.net/2008/11/encriptar-y-desencriptar-cadena-php/" title="Encriptar y desencriptar cadena con PHP">Encriptar y desencriptar cadena con PHP</a> (3)</li><li><a href="http://www.emm-gfx.net/2008/07/comprobar-estado-de-un-servidor-mediante-php/" title="Comprobar estado de un servidor mediante PHP">Comprobar estado de un servidor mediante PHP</a> (1)</li><li><a href="http://www.emm-gfx.net/2010/07/acentos-y-tildes-en-javascript/" title="Tildes en Javascript">Tildes en Javascript</a> (0)</li><li><a href="http://www.emm-gfx.net/2010/03/base64-encode-y-decode-en-javascript/" title="Base64 (encode y decode) en Javascript">Base64 (encode y decode) en Javascript</a> (1)</li><li><a href="http://www.emm-gfx.net/2010/02/mostrar-una-fecha-sin-mostrarla-de-forma-amigable-con-php/" title="Mostrar una fecha sin mostrarla, de forma amigable, con PHP">Mostrar una fecha sin mostrarla, de forma amigable, con PHP</a> (1)</li><li><a href="http://www.emm-gfx.net/2010/01/str_replace-de-php-en-javascript-2/" title="La función str_replace() de PHP en Javascript">La función str_replace() de PHP en Javascript</a> (0)</li></ul>]]></content:encoded>
			<wfw:commentRss>http://www.emm-gfx.net/2010/03/enviar-el-log-de-errores-de-php-por-email/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Viaje a Les Angles, en Francia (final de Febrero 2010)</title>
		<link>http://www.emm-gfx.net/2010/02/viaje-a-les-angles-en-francia-final-de-febrero-2010/</link>
		<comments>http://www.emm-gfx.net/2010/02/viaje-a-les-angles-en-francia-final-de-febrero-2010/#comments</comments>
		<pubDate>Fri, 26 Feb 2010 14:30:12 +0000</pubDate>
		<dc:creator>Josep Viciana</dc:creator>
				<category><![CDATA[General]]></category>
		<category><![CDATA[Esquí]]></category>
		<category><![CDATA[Francia]]></category>
		<category><![CDATA[Les Angles]]></category>
		<category><![CDATA[Miguél Noguera]]></category>
		<category><![CDATA[Policía]]></category>

		<guid isPermaLink="false">http://www.emm-gfx.net/?p=1057</guid>
		<description><![CDATA[Este fin de semana que empieza hoy, viernes, va a ser sorprendentemente activo, me quedan unas horas de trabajar en la web de Paradise Studios y luego empezará todo, el lugar de encuentro de todos los fines de semana desde hace varios años, improvisar el resto de la noche para mañana despertarme tarde y salir [...]]]></description>
			<content:encoded><![CDATA[<div class="tweetmeme_button" style="float:left; margin:-34px 0px 0px -60px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fwww.emm-gfx.net%2F2010%2F02%2Fviaje-a-les-angles-en-francia-final-de-febrero-2010%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fwww.emm-gfx.net%2F2010%2F02%2Fviaje-a-les-angles-en-francia-final-de-febrero-2010%2F&amp;source=emmgfx&amp;style=normal&amp;service=bit.ly" height="61" width="50" /><br />
			</a>
		</div>
<p>Este fin de semana que empieza hoy, viernes, va a ser sorprendentemente activo, me quedan unas horas de trabajar en <a href="http://www.paradise-studios.net">la web de Paradise Studios</a> y luego empezará todo, el lugar de encuentro de todos los fines de semana desde hace varios años, improvisar el resto de la noche para mañana despertarme tarde y salir corriendo a ensayo, que será el primero que hagamos con el nuevo nombre, Cold as ice. Este ensayo se va a adelantar porque esa misma tarde hay un Ultrashow de <a href="http://miguelnoguera.blogspot.com/2010/02/vigalondo-ultrashow.html">Miguél Noguera</a>, y no tengo intención de perdermelo. El domingo haré un viaje rápido a Francia, a Les Angles, donde hay unas pistas de esquí que se de quien quiere visitar.</p>
<p>Hoy estoy positivo, a pesar de que la policía de mi pueblo / ciudad / provincia es (aunque quede mal decirlo) una puta basura.<span id="more-1057"></span></p>
<p><iframe width="100%" height="350" frameborder="0" scrolling="no" marginheight="0" marginwidth="0" src="http://www.google.es/maps?f=d&amp;source=s_d&amp;saddr=barcelona&amp;daddr=Les+Angles,+Pirineos+Orientales,+Languedoc-Rosell%C3%B3n,+Francia&amp;hl=es&amp;geocode=FY2HdwIdPxwhACn1KO0mcZikEjEwA6Qh4PoABA%3BFf-tiQId0aQfACktPUH6comvEjHQb2cWIYgHBA&amp;mra=ls&amp;sll=42.916206,2.614746&amp;sspn=4.23975,11.634521&amp;ie=UTF8&amp;ll=41.98127,2.02489&amp;spn=1.19228,0.38502&amp;output=embed"></iframe><br />
<a href="http://www.google.es/maps?f=d&amp;source=embed&amp;saddr=barcelona&amp;daddr=Les+Angles,+Pirineos+Orientales,+Languedoc-Rosell%C3%B3n,+Francia&amp;hl=es&amp;geocode=FY2HdwIdPxwhACn1KO0mcZikEjEwA6Qh4PoABA%3BFf-tiQId0aQfACktPUH6comvEjHQb2cWIYgHBA&amp;mra=ls&amp;sll=42.916206,2.614746&amp;sspn=4.23975,11.634521&amp;ie=UTF8&amp;ll=41.98127,2.02489&amp;spn=1.19228,0.38502" style="display:block; text-align:right;">Ver mapa más grande →</a></p>
<h2  class="related_post_title">Articulos relacionados</h2><ul class="related_post"><li>No se encuentran articulos relacionados</li></ul>]]></content:encoded>
			<wfw:commentRss>http://www.emm-gfx.net/2010/02/viaje-a-les-angles-en-francia-final-de-febrero-2010/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Obtener la URL que se esta visitando con PHP</title>
		<link>http://www.emm-gfx.net/2010/02/obtener-la-url-que-se-esta-visitando-con-php/</link>
		<comments>http://www.emm-gfx.net/2010/02/obtener-la-url-que-se-esta-visitando-con-php/#comments</comments>
		<pubDate>Fri, 26 Feb 2010 09:40:47 +0000</pubDate>
		<dc:creator>Josep Viciana</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[Desarrollo]]></category>
		<category><![CDATA[Función]]></category>
		<category><![CDATA[HTTP]]></category>
		<category><![CDATA[HTTPS]]></category>
		<category><![CDATA[Snippets]]></category>
		<category><![CDATA[URL]]></category>

		<guid isPermaLink="false">http://www.emm-gfx.net/?p=1045</guid>
		<description><![CDATA[Con esta función, se puede saber la URL que se está visitando&#8230; y no hay nada más que decir, sólo la función y un ejemplo. function selfURL(){ $s = empty($_SERVER["HTTPS"]) ? '' : ($_SERVER["HTTPS"] == "on") ? "s" : ""; $protocol = strleft(strtolower($_SERVER["SERVER_PROTOCOL"]), "/").$s; $port = ($_SERVER["SERVER_PORT"] == "80") ? "" : (":".$_SERVER["SERVER_PORT"]); return $protocol."://".$_SERVER['SERVER_NAME'].$port.$_SERVER['REQUEST_URI']; [...]]]></description>
			<content:encoded><![CDATA[<div class="tweetmeme_button" style="float:left; margin:-34px 0px 0px -60px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fwww.emm-gfx.net%2F2010%2F02%2Fobtener-la-url-que-se-esta-visitando-con-php%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fwww.emm-gfx.net%2F2010%2F02%2Fobtener-la-url-que-se-esta-visitando-con-php%2F&amp;source=emmgfx&amp;style=normal&amp;service=bit.ly" height="61" width="50" /><br />
			</a>
		</div>
<p>Con esta función, se puede saber la URL que se está visitando&#8230; y no hay nada más que decir, sólo la función y un ejemplo.</p>
<pre>function selfURL(){
   $s        = empty($_SERVER["HTTPS"]) ? '' : ($_SERVER["HTTPS"] == "on") ? "s" : "";
   $protocol = strleft(strtolower($_SERVER["SERVER_PROTOCOL"]), "/").$s;
   $port     = ($_SERVER["SERVER_PORT"] == "80") ? "" : (":".$_SERVER["SERVER_PORT"]);
   return $protocol."://".$_SERVER['SERVER_NAME'].$port.$_SERVER['REQUEST_URI'];
}
function strleft($s1, $s2){
   return substr($s1, 0, strpos($s1, $s2));
}</pre>
<p>En realidad son dos, pero van juntas. Y para usarla es bastante sencillo.</p>
<pre>
echo selfURL(); /* http://www.emm-gfx.net/2010/02/obtener-la-url-que-se-esta-visitando-con-php/ */
</pre>
<p>Puede no parecer demasiado util, pero a mi me ha venido bien varias veces.</p>
<h2  class="related_post_title">Articulos relacionados</h2><ul class="related_post"><li><a href="http://www.emm-gfx.net/2009/12/comprobar-la-validez-de-un-dominio-con-php/" title="Comprobar la validez de un dominio con PHP">Comprobar la validez de un dominio con PHP</a> (0)</li><li><a href="http://www.emm-gfx.net/2008/07/comprobar-estado-de-un-servidor-mediante-php/" title="Comprobar estado de un servidor mediante PHP">Comprobar estado de un servidor mediante PHP</a> (1)</li><li><a href="http://www.emm-gfx.net/2009/11/eliminar-posicion-de-un-array-en-php/" title="Eliminar posición de un array en PHP">Eliminar posición de un array en PHP</a> (2)</li><li><a href="http://www.emm-gfx.net/2008/11/encriptar-y-desencriptar-cadena-php/" title="Encriptar y desencriptar cadena con PHP">Encriptar y desencriptar cadena con PHP</a> (3)</li><li><a href="http://www.emm-gfx.net/2008/05/php-cookies/" title="PHP: Cookies">PHP: Cookies</a> (0)</li><li><a href="http://www.emm-gfx.net/2010/03/enviar-el-log-de-errores-de-php-por-email/" title="Enviar el log de errores de PHP por email">Enviar el log de errores de PHP por email</a> (0)</li><li><a href="http://www.emm-gfx.net/2010/02/comprobar-dni-nif-con-php/" title="Comprobar DNI / NIF con PHP">Comprobar DNI / NIF con PHP</a> (0)</li><li><a href="http://www.emm-gfx.net/2010/02/mostrar-una-fecha-sin-mostrarla-de-forma-amigable-con-php/" title="Mostrar una fecha sin mostrarla, de forma amigable, con PHP">Mostrar una fecha sin mostrarla, de forma amigable, con PHP</a> (1)</li><li><a href="http://www.emm-gfx.net/2009/11/str_replace-de-php-en-javascript/" title="str_replace() de PHP en Javascript">str_replace() de PHP en Javascript</a> (0)</li><li><a href="http://www.emm-gfx.net/2009/09/encontrar-todos-los-links-de-una-pagina-con-php/" title="Encontrar todos los links de una página con PHP">Encontrar todos los links de una página con PHP</a> (0)</li></ul>]]></content:encoded>
			<wfw:commentRss>http://www.emm-gfx.net/2010/02/obtener-la-url-que-se-esta-visitando-con-php/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Comprobar DNI / NIF con PHP</title>
		<link>http://www.emm-gfx.net/2010/02/comprobar-dni-nif-con-php/</link>
		<comments>http://www.emm-gfx.net/2010/02/comprobar-dni-nif-con-php/#comments</comments>
		<pubDate>Sun, 21 Feb 2010 22:28:27 +0000</pubDate>
		<dc:creator>Josep Viciana</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[DNI]]></category>
		<category><![CDATA[Función]]></category>
		<category><![CDATA[NIF]]></category>

		<guid isPermaLink="false">http://www.emm-gfx.net/?p=964</guid>
		<description><![CDATA[Esta función es capaz de comprobar si el NIF tiene un formato correcto o no, es decir, si la letra indicada es la que corresponde a la cadena de 8 números. Que devuelva un resultado positivo no quiere decir que sea un número que exista, sólo que el formato es correcto. function comprobar_nif($nif){ $letras = [...]]]></description>
			<content:encoded><![CDATA[<div class="tweetmeme_button" style="float:left; margin:-34px 0px 0px -60px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fwww.emm-gfx.net%2F2010%2F02%2Fcomprobar-dni-nif-con-php%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fwww.emm-gfx.net%2F2010%2F02%2Fcomprobar-dni-nif-con-php%2F&amp;source=emmgfx&amp;style=normal&amp;service=bit.ly" height="61" width="50" /><br />
			</a>
		</div>
<p>Esta función es capaz de comprobar si el NIF tiene un formato correcto o no, es decir, si la letra indicada es la que corresponde a la cadena de 8 números. Que devuelva un resultado positivo no quiere decir que sea un número que exista, sólo que el formato es correcto.<span id="more-964"></span></p>
<pre>function comprobar_nif($nif){
   $letras = explode(',','T,R,W,A,G,M,Y,F,P,D,X,B,N,J,Z,S,Q,V,H,L,C,K,E');
   if (
      (strlen($nif)!=9) ||
      (!is_long($entero=intval(substr($nif,0,8)))) ||
      (!in_array($letra=strtoupper(substr($nif,8,1)),$letras)) ||
      ($letra!=$letras[$entero%23])
      ){
         return false;
      }else{
         return true;
      }
}
</pre>
<p>Si le indicamos <code>00000000T</code> devolverá <code>true</code>, aunque no creo que exista (este es el número que uso para hacer pruebas). Y creo que el uso es bastante sencillo, sería algo como esto</p>
<pre>if(comprobar_nif('00000000T')){
   echo 'Correcto';
}else{
   echo 'Incorrecto';
}
</pre>
<h2  class="related_post_title">Articulos relacionados</h2><ul class="related_post"><li><a href="http://www.emm-gfx.net/2010/03/enviar-el-log-de-errores-de-php-por-email/" title="Enviar el log de errores de PHP por email">Enviar el log de errores de PHP por email</a> (0)</li><li><a href="http://www.emm-gfx.net/2010/02/obtener-la-url-que-se-esta-visitando-con-php/" title="Obtener la URL que se esta visitando con PHP">Obtener la URL que se esta visitando con PHP</a> (0)</li><li><a href="http://www.emm-gfx.net/2009/12/comprobar-la-validez-de-un-dominio-con-php/" title="Comprobar la validez de un dominio con PHP">Comprobar la validez de un dominio con PHP</a> (0)</li><li><a href="http://www.emm-gfx.net/2009/08/recursividad-en-mkdir-de-php/" title="Recursividad en mkdir de PHP">Recursividad en mkdir de PHP</a> (0)</li><li><a href="http://www.emm-gfx.net/2008/11/encriptar-y-desencriptar-cadena-php/" title="Encriptar y desencriptar cadena con PHP">Encriptar y desencriptar cadena con PHP</a> (3)</li><li><a href="http://www.emm-gfx.net/2008/07/comprobar-estado-de-un-servidor-mediante-php/" title="Comprobar estado de un servidor mediante PHP">Comprobar estado de un servidor mediante PHP</a> (1)</li><li><a href="http://www.emm-gfx.net/2010/07/acentos-y-tildes-en-javascript/" title="Tildes en Javascript">Tildes en Javascript</a> (0)</li><li><a href="http://www.emm-gfx.net/2010/03/base64-encode-y-decode-en-javascript/" title="Base64 (encode y decode) en Javascript">Base64 (encode y decode) en Javascript</a> (1)</li><li><a href="http://www.emm-gfx.net/2010/02/mostrar-una-fecha-sin-mostrarla-de-forma-amigable-con-php/" title="Mostrar una fecha sin mostrarla, de forma amigable, con PHP">Mostrar una fecha sin mostrarla, de forma amigable, con PHP</a> (1)</li><li><a href="http://www.emm-gfx.net/2010/01/str_replace-de-php-en-javascript-2/" title="La función str_replace() de PHP en Javascript">La función str_replace() de PHP en Javascript</a> (0)</li></ul>]]></content:encoded>
			<wfw:commentRss>http://www.emm-gfx.net/2010/02/comprobar-dni-nif-con-php/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Escuela de odio y Habeas corpus: A dolor</title>
		<link>http://www.emm-gfx.net/2010/02/escuela-de-odio-y-habeas-corpus-a-dolor/</link>
		<comments>http://www.emm-gfx.net/2010/02/escuela-de-odio-y-habeas-corpus-a-dolor/#comments</comments>
		<pubDate>Thu, 18 Feb 2010 15:39:37 +0000</pubDate>
		<dc:creator>Josep Viciana</dc:creator>
				<category><![CDATA[Música]]></category>
		<category><![CDATA[Escuela de odio]]></category>
		<category><![CDATA[Habeas Corpus]]></category>
		<category><![CDATA[Hardcore]]></category>
		<category><![CDATA[Nuevo disco]]></category>
		<category><![CDATA[Punk]]></category>

		<guid isPermaLink="false">http://www.emm-gfx.net/?p=969</guid>
		<description><![CDATA[Hace unos meses leí que los dos grupos iban a sacar un disco juntos. Un vinilo (que no sale en CD) donde hay 2 versiones (A mi familia, de Agnostic Front, grabada de nuevo) y A dolor (de Motorhead). Y otras 6 canciones suyas, 3 de Habeas que toca Escuela y 3 de Escuela que [...]]]></description>
			<content:encoded><![CDATA[<div class="tweetmeme_button" style="float:left; margin:-34px 0px 0px -60px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fwww.emm-gfx.net%2F2010%2F02%2Fescuela-de-odio-y-habeas-corpus-a-dolor%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fwww.emm-gfx.net%2F2010%2F02%2Fescuela-de-odio-y-habeas-corpus-a-dolor%2F&amp;source=emmgfx&amp;style=normal&amp;service=bit.ly" height="61" width="50" /><br />
			</a>
		</div>
<p>Hace unos meses leí que los dos grupos iban a sacar un disco juntos. Un vinilo (que no sale en CD) donde hay 2 versiones (A mi familia, de Agnostic Front, grabada de nuevo) y A dolor (de Motorhead). Y otras 6 canciones suyas, 3 de Habeas que toca Escuela y 3 de Escuela que tocan Habeas. Hoy, a pesar que Correos en mi pueblo son basura, he podido recoger el disco y ponerme a escucharlo.</p>
<p><a href="http://www.emm-gfx.net/wp-content/uploads/2010/02/A-dolor.mp3">A dolor</a><span id="more-969"></span></p>
<h3>Cara A &#8211; Habeas Corpus:</h3>
<p><strong>01. Canciu de llucha (Escuela de odio)</strong></p>
<blockquote><p>Un añu cualquiera, en cualquier ciudá, miles de persones xuntarense para lluchar. Escontra la pobreza. Num más fame más Escontra&#8217;l capital, y po la igualda. Escontra&#8217;l opresor, pola llibertá. Tos xuntos empiecen a glayar. A glayar. Los motivos son xustificaos, los derechos son violaos, los gobiernos del solau y los pueblos esclavizaos. La batalla ya comenzó. El enemigu espera sentau. El nun tien que facer ná. Solo ordena y manda a les sos fuerces atacar. Ellos solo dan hosties y más hosties, toes per detrás. Hosties y más hosties, toes per detrás. Per detrás. Son como llatigazos sin compasión que duelen na espalda pero no nel corazón. Y un añu cualquiera, en cualquier ciudá, miles de persones xuntarense para  lluchar. Escpmtra la pobreza. Num más fame más Escontra&#8217;l capital, y po  la igualda. Escontra&#8217;l opresor, pola llibertá. Tos xuntos empiecen a  glayar. A glayar. Los motivos son xustificaos, los derechos son violaos,  los gobiernos del solau y los pueblos esclavizaos. La batalla ya  comenzó. El enemigu espera sentau. El nun tien que facer ná. Solo ordena  y manda a les sos fuerces atacar. Ellos solo dan hosties y más hosties,  toes per detrás. Hosties y más hosties, toes per detrás. Per detrás.</p></blockquote>
<p><strong>02. Los de siempre (Escuela de odio)</strong></p>
<blockquote><p>Cuantas hostias nos habéis pegado, cuantas más tendremos que llevar.Creeis que estamos muertos y que somos fáciles de manejar. No, dormidos nunca estamos. La venganza jamás olvidamos. Asturies despierta y ponte firme, que te quieren tirar. Los fascistas hicieron nuestros barrios para tenernos bien controlados. Los que antes eran controlados ahora nos controlan. Demócratas que aprendísteis de Franco a robarnos vigilarnos y explotarnos. Buen maestro que tuvisteis y ahora sois como él, sois como él, sois como él. Vamos Asturies despierta. Vamos Asturies en pié. Si&#8230; nos habéis engañado, nos habéis robado, nos habéis traicionado&#8230; a nuestro pueblo, a nuestra gente. Y sólo por todos aquellos que cayéron por defenderlo, seguiremos en pié de guerra. Sí.Habéis hecho emigrar a nuestra gente, habéis robado al pueblo la verdad y su futuru. Habéis ocultado muy bien la realidad con la represión y el Paraisu Natural. Dios, Asturies lo que yes y lo que fuiste, Asturies quien te roba? son los que no te quieren. Asturies despierta que están durmiendo y sin que tú te enteres te están destruyendo. Vamos Asturies despierta, vamos Asturies en pie. Caciques fuera. Sí, que el huracán obrero te despierte. Que la fuerza del pueblo te ponga donde te mereces. Que los cuervos vuelen por los gritos de tu gente. Puxa Asturies libre se ve escrito en tus paredes. Sí, me acuerdo de tu historia y me respigo. Me acuerdo de tu luches cuando toes eren uno. Me acuerdo de ese humo entre el fuego y los disturbios, y de les calles llenes que temblaben les aceres. Vamos Asturies despierta. Vamos Asturies en pie. Vamos Asturies no te rindas. Ni un paso atrás. Vamos Asturies a la calle. Vamos Asturies hay tanto por hacer. Asturies despierta que te qiuero mucho y no te quiero ver muerta. Vosotros contra nosotros. Nosotros contra vosotros. Vosotros contra nosotros. Nosotros contra vosotros. Vosotros sois los buenos, nosotros somos los malos. Vosotros dais las hostias, nosotros las llevamos. Los de siempre.</p></blockquote>
<p><strong>03. Asturies arde (Escuela de odio)</strong></p>
<blockquote><p>Oi! Oi! Oi! Oi! Asturies obrera y dinamitera, qué te tán faciendo que nadie se entera. Cierrennos les mines. mafia carbonera. Cierren los talleres, mafia metalera. Fueu al principaou, fueu al parlamentu. Asturias ta en llucha. Asturies se quema. Asturies arde&#8230; Asturies arde. Asturies obrera y dinamitera, qué te tán faciendo que nadie se entera. Fuera los fascistes de la nuesa terra. Caña al patrón, resistencia obrera. Asturies arde&#8230; Asturies arde. La próxima visita será con dinamita. Arde la naval, Duro Felguera. Quemen los grilletes, corten carreteres. Vuelen los torniellos, lancen volaores. Asturias ta en grieska, Asturias ye obrera. Asturies arde&#8230; Asturies arde.</p></blockquote>
<p><strong>A mi familia (Agnostic Front)</strong></p>
<blockquote><p>A mi familia a mis amigos. A los que estámn y a los que ya se han ido. Este mensaje es para todos, nada hubiese sido posible sin ellos. Aún recuerdo todo el tiempo invertido, todo lo que hemos pasado&#8230; En el barrio, allí empezamos, corría el año 93. Hardcore. Barrio a barrio. Fue el amor de nuestro desencanto. Politica y música unidas en nuestras letras y en nuestra actitud. Paticipamos de una escena de grupos, colectivos y de centros sociales. Hardcore. Barrio a barrio. Fue el amor de nuestro desencanto y de nuestro rechazo. Habeas Corpus, Escuela de odio, desde 1993 haciendo del punk y del hardcore una amenaza. A mi familia a mis amigos. A los que estámn y a los que ya se han ido. Este mensaje es para todos, nada hubiese sido posible sin ellos. A mi familia a mis amigos. A los que estámn y a los que ya se han ido. Este mensaje es para todos, nada hubiese sido posible sin ellos. A mi familia a mis amigos. A los que estámn y a los que ya se han ido. Este mensaje es para todos, nada hubiese sido posible sin ellos. Hardcore.</p></blockquote>
<h3>Cara B &#8211; Escuela de odio:</h3>
<p><strong>01. Basta ya (Habeas Corpus)</strong></p>
<blockquote><p>Hace unos días caía muerto un policía. Tres iban a ser los disparos que acabaron con su vida. Hace unos días mataron a un policía, ejemplar trabajador, esposo y padre de familia. Al día siguiente nadie hablaba de otra cosa, al día siguiente no existía otra noticia, al día siguiente asistimos a su entierro y lloramos cuando dijeron llorad, obedientes lloramos. Dolidos por la pérdida de ese gran hombre hicimos nuestro el dolor de aquella familia calificamos de inútil aquella última muerte y exigimos y rogamos, suplicamos que así fuese. Sentimos nuestro cada pésame enviado, con él, dijeron, nos han matado a todos. Guardamos luto y un minuto de silencio junto a las autoridades de cualquier color y signo. Fuimos testigos de todo ese gran teatro, de los comunicados de condena y de repulsa, de las banderas con la vara a media asta<br />
de esa inmensa mayoría, de los gritos de <em>ya basta</em> ¡Basta! Asistimos a todas las concentraciones, fuimos a las mil y una manifestaciones. Vestimos lazos de todos los colores. Sus palabras permitieron que no dijésemos nada. Aquellos días vestimos de tolerancia, cerramos filas en torno a la democracia. Ciudadanos bien, ciudadanos de pie, acusando no se qué, acusando no se quién. El mismo día hubo una muerte sin noticia una de tantas que no se rentabilizan, una de tantas en las que es algún obrero el que al igual que al vacío cae también en el olvido. ¿Qué valor tiene la muerte de un desgraciado? El mismo valor que tuvo su nacimiento. ¿Dónde están sus viudas? ¿Dónde? ¿Dónde están sus hijos? ¿Dónde las condolencias, dónde tanto y tanto grito? Fuimos testigos de todo ese gran teatro, de los comunicados de condena y de repulsa de las banderas con la vara a media asta, de esa inmensa mayoría, de los gritos de ya basta. Basta ya! Basta ya! Basta ya! Basta ya! Ni sus manos son tan blancas, ni son blancas sus palomas, ni es tan blanca su bandera, ni tampoco sus entrañas. Su cal sí que es blanca! Fuimos testigos de todo ese gran teatro, de los comunicados de condena y de repulsa, de las banderas con la vara a media asta, de esa inmensa mayoría, de los gritos de ya basta. Su cal sí que es blanca!</p></blockquote>
<p><strong>02. Enterrado en vida (Habeas Corpus)</strong></p>
<blockquote><p>Estoy obligado a vivir, a tener que aprender a vivir enterrado en vida. Pero me ahoga esta vida, me ahoga mi vida, exijo el derecho a acabar con mi  vida. Nadie. Y cuando digo nadie estoy diciendo que nadie, tiene ningun  dercho a decidir sobre mi vida tiene derecho alguno a decidir sobre mi  muerte. Ni cuando ni como ni por qué, porque nadie deberia estar por encima ni por  debajo de nadie y cuando digo nadie estoy diciendo que paren, por favor,  paren todo este dolor. Tengo todo el derecho del mundo a decir se acabó. ¿Hasta cuando? ¿Hasta cuando seguir esperando? ¿Hasta cuando? ¿Hasta cuando seguir aguantando? Mi  vida es sólo mia. Todos. Y cuando digo todos estoy diciendo que todos tenemos el derechoa vivir dignamente. Tenemos derecho a morir  dignamente. Cuando es mayor el miedo a la vida que a la muerte, y no hay moral que pueda oponerse a la razón, no hay razón ni hay un Dios ni leyes ni explicación que me obligue a vivir esta lenta agonía, que me obligue a vivir enterrado en vida. ¿Hasta cuando? ¿Hasta cuando seguir esperando? ¿Hasta cuando? ¿Hasta  cuando seguir aguantando? Mi  vida es sólo mia. Mi vida, mi muerte, solamente a mi me pertenecen. Mi vida es sólo mía. ¿Hasta cuando tendré que esperar?  Solamente mía. ¿Hasta cuando tendré que esperar? Derecho a la eutanasia, derecho al suicidio.</p></blockquote>
<p><strong>03. Fascismo nunca más (Habeas Corpus)</strong></p>
<blockquote><p>Por la miseria que crearon y el dolor que provocaron: fascismo nunca más. Por habernos enseñado la muerte y su significado: fascismo nunca más. Por los que fueron vencidos, pero nunca convencidos: fascismo nunca más. Por habernos empujado a odiarles como les odiamos: fascismo nunca más. No pasarán. Por nuestra libertad. por pura dignidad: fascismo, nunca más. Per la nostra llibertat. per pura dignitat: feixisme, mai mes. Gure askatasunaren alde. duintasunagatik: faxismo, gehiagorik ez. Pola nossa liberdade. por pura dignidade: faxismo, nunca mais.</p></blockquote>
<p><strong> 04. A dolor (Motorhead)</strong></p>
<blockquote><p>Vive el punk, más hardcore, movimiento a la revolución. En las calles, en la lucha, somos una rebelión. Por todos mis amigos, por los momentos que juntos vivimos. Habeas Corpus, Escuela de odio. Vamos todos a dolor, vamos todos a dolor. ¡A dolor! Mil batallas, mil conciertos y en mi cabeza llena de recuerdos, es mi vida, <em>is my life</em>, esta es mi única verdad. Para todos mis amigos, por los momentos que vivimos. Habeas Corpus, Escuela de odio, vamos todos a dolor. ¡A dolor! En Asturias los Escuela, en Madrid los Habeas. Puxa Asturies punks &amp; skins. Madrid malababa hardcore crew. Por todos mis amigos, por las cervezas que nos bebimos, vamos todos a dolor, vamos todos a dolor, vamos todos a dolor. ¡A dolor!</p></blockquote>
<h2  class="related_post_title">Articulos relacionados</h2><ul class="related_post"><li><a href="http://www.emm-gfx.net/2009/08/se-asoma-dulce-miseria-el-nuevo-disco-de-proudz/" title="Se asoma &#8220;Dulce miseria&#8221;, el nuevo disco de Proudz">Se asoma &#8220;Dulce miseria&#8221;, el nuevo disco de Proudz</a> (1)</li><li><a href="http://www.emm-gfx.net/2009/03/proximamente-nuevo-cd-de-habeas-corpus-rarezas/" title="Próximamente: Nuevo CD de Habeas Corpus (Rarezas)">Próximamente: Nuevo CD de Habeas Corpus (Rarezas)</a> (0)</li><li><a href="http://www.emm-gfx.net/2009/02/juntos-unidos-y-adelante-fragment-records/" title="Juntos, unidos y adelante (Fragment Records)">Juntos, unidos y adelante (Fragment Records)</a> (0)</li><li><a href="http://www.emm-gfx.net/2009/01/vindicatio/" title="Vindicatio">Vindicatio</a> (0)</li><li><a href="http://www.emm-gfx.net/2009/12/fatum/" title="Fátum">Fátum</a> (1)</li><li><a href="http://www.emm-gfx.net/2009/11/live-to-win/" title="Live to win">Live to win</a> (0)</li><li><a href="http://www.emm-gfx.net/2009/10/letras-dulce-miseria-de-proudz/" title="Letras &#8220;Dulce miseria&#8221; de Proudz">Letras &#8220;Dulce miseria&#8221; de Proudz</a> (9)</li><li><a href="http://www.emm-gfx.net/2009/02/letras-rythm-amongst-the-chaos-de-terror/" title="Letras &#8220;Rythm amongst the Chaos&#8221; de  Terror">Letras &#8220;Rythm amongst the Chaos&#8221; de  Terror</a> (0)</li><li><a href="http://www.emm-gfx.net/2008/10/letras-rey-de-reyes-de-proudz/" title="Letras &#8220;Rey de reyes&#8221; de Proudz">Letras &#8220;Rey de reyes&#8221; de Proudz</a> (0)</li><li><a href="http://www.emm-gfx.net/2008/10/letras-pura-vida-de-proudz/" title="Letras &#8220;Pura vida&#8221; de Proudz">Letras &#8220;Pura vida&#8221; de Proudz</a> (0)</li></ul>]]></content:encoded>
			<wfw:commentRss>http://www.emm-gfx.net/2010/02/escuela-de-odio-y-habeas-corpus-a-dolor/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
<enclosure url="http://www.emm-gfx.net/wp-content/uploads/2010/02/A-dolor.mp3" length="1143027" type="audio/mpeg" />
		</item>
		<item>
		<title>Copia este libro</title>
		<link>http://www.emm-gfx.net/2010/02/copia-este-libro/</link>
		<comments>http://www.emm-gfx.net/2010/02/copia-este-libro/#comments</comments>
		<pubDate>Sun, 14 Feb 2010 01:24:29 +0000</pubDate>
		<dc:creator>Josep Viciana</dc:creator>
				<category><![CDATA[General]]></category>
		<category><![CDATA[Citas]]></category>
		<category><![CDATA[Copyright]]></category>
		<category><![CDATA[David Bravo]]></category>
		<category><![CDATA[P2P]]></category>
		<category><![CDATA[Propiedad intelectual]]></category>

		<guid isPermaLink="false">http://www.emm-gfx.net/?p=924</guid>
		<description><![CDATA[Sexto: Lleva la información de Internet a la calle. Para contrarrestar la campaña mediática a la que incita la industria es importante que lleves también la información más allá de Internet. Puedes reivindicar tus ideas con octavillas, camisetas o pegatinas. Puedes organizar jornadas sobre estos temas, manifestarte o fotocopiar y repartir libros como éste. El [...]]]></description>
			<content:encoded><![CDATA[<div class="tweetmeme_button" style="float:left; margin:-34px 0px 0px -60px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fwww.emm-gfx.net%2F2010%2F02%2Fcopia-este-libro%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fwww.emm-gfx.net%2F2010%2F02%2Fcopia-este-libro%2F&amp;source=emmgfx&amp;style=normal&amp;service=bit.ly" height="61" width="50" /><br />
			</a>
		</div>
<p><img style="float: right; margin: 0px 0px 10px 10px;" src="http://www.emm-gfx.net/wp-content/uploads/2010/02/copia_este_libro.png" alt="copia_este_libro" /></p>
<blockquote>
<h3>Sexto: Lleva la información de Internet a la calle.</h3>
<p>Para contrarrestar la campaña mediática a la que incita la industria es importante que lleves también la información más allá de Internet. Puedes reivindicar tus ideas con octavillas, camisetas o pegatinas. Puedes organizar jornadas sobre estos temas, manifestarte o fotocopiar y repartir libros como éste. El adoctrinamiento por parte del poder tiene que combatirse con una información vírica y contagiosa que recorra las venas de todos los medios que estén a nuestro alcance.</p></blockquote>
<ul>
<li><a href="http://emm-gfx.net/copia_este_libro/Copia-este-libro.pdf">Descargar &#8220;Copia este libro&#8221; en formato PDF</a></li>
<li><a href="http://emm-gfx.net/copia_este_libro/Copia-este-libro.rtf">Descargar &#8220;Copia este libro&#8221; en formato RTF</a></li>
<li><a href="http://emm-gfx.net/copia_este_libro/Copia-este-libro.sxw">Descargar &#8220;Copia este libro&#8221; en formato SXW</a></li>
<li><a href="http://copiaestelibro.bandaancha.st/index.html">Leer versión online de &#8220;Copia este libro&#8221;</a></li>
</ul>
<p>El famoso abogado David Bravo publicó en 2005 este libro lleno de citas, ejemplos, argumentos y acusaciones directas. La verdad es que no tiene desperdicio.</p>
<p>Publicado con licencia Creative Commons BY-NC-SA.</p>
<h2  class="related_post_title">Articulos relacionados</h2><ul class="related_post"><li><a href="http://www.emm-gfx.net/2010/06/en-unos-segundos/" title="En unos segundos">En unos segundos</a> (0)</li><li><a href="http://www.emm-gfx.net/2010/05/la-programacion-hoy-en-dia/" title="La programación hoy en día">La programación hoy en día</a> (0)</li><li><a href="http://www.emm-gfx.net/2009/12/el-proposito-del-obrero-deberia-ser/" title="El propósito del obrero debería ser&#8230;">El propósito del obrero debería ser&#8230;</a> (0)</li><li><a href="http://www.emm-gfx.net/2009/12/en-defensa-de-los-derechos-fundamentales-de-internet/" title="En defensa de los derechos fundamentales de Internet">En defensa de los derechos fundamentales de Internet</a> (5)</li><li><a href="http://www.emm-gfx.net/2009/12/fatum/" title="Fátum">Fátum</a> (1)</li><li><a href="http://www.emm-gfx.net/2009/11/ui-is-the-killer-feature/" title="UI is the killer feature">UI is the killer feature</a> (0)</li><li><a href="http://www.emm-gfx.net/2008/12/grandes-citas-v/" title="Grandes citas V">Grandes citas V</a> (0)</li></ul>]]></content:encoded>
			<wfw:commentRss>http://www.emm-gfx.net/2010/02/copia-este-libro/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Servidor dedicado con IP dinámica.</title>
		<link>http://www.emm-gfx.net/2010/02/servidor-dedicado-con-ip-dinamica/</link>
		<comments>http://www.emm-gfx.net/2010/02/servidor-dedicado-con-ip-dinamica/#comments</comments>
		<pubDate>Thu, 11 Feb 2010 16:10:01 +0000</pubDate>
		<dc:creator>Josep Viciana</dc:creator>
				<category><![CDATA[Sistemas]]></category>
		<category><![CDATA[Afraid]]></category>
		<category><![CDATA[DNS]]></category>
		<category><![CDATA[Ubuntu 8.04]]></category>

		<guid isPermaLink="false">http://www.emm-gfx.net/?p=864</guid>
		<description><![CDATA[Debe hacer unos dos años que utilizo un servidor local (un Poweredge t105) de verdad, nada de LAMP&#8217;s en local ni programas como xampp ó easyphp, este tipo de software acaba limitando al usuario en muchos sentidos y aunque puedan ser usables en emergéncias o casos aislados, no recomiendo a nadie que los use. La [...]]]></description>
			<content:encoded><![CDATA[<div class="tweetmeme_button" style="float:left; margin:-34px 0px 0px -60px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fwww.emm-gfx.net%2F2010%2F02%2Fservidor-dedicado-con-ip-dinamica%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fwww.emm-gfx.net%2F2010%2F02%2Fservidor-dedicado-con-ip-dinamica%2F&amp;source=emmgfx&amp;style=normal&amp;service=bit.ly" height="61" width="50" /><br />
			</a>
		</div>
<p>Debe hacer unos dos años que utilizo un servidor local (un <a class="fancy" href="http://www.emm-gfx.net/wp-content/uploads/2010/02/pedge_t105_overview1.jpg">Poweredge t105</a>) de verdad, nada de LAMP&#8217;s en local ni programas como <a href="http://www.apachefriends.org/es/xampp.html">xampp</a> ó <a href="http://www.easyphp.org/">easyphp</a>, este tipo de software acaba limitando al usuario en muchos sentidos y aunque puedan ser usables en emergéncias o casos aislados, no recomiendo a nadie que los use. La verdad es que es mejor invertir el tiempo en aprender un mínimo de sistemas para poder preparar un entorno de desarrollo de calidad que invertir el tiempo en hacer que un programa de terceros le imite.</p>
<p>Entonces lo que quería era tener un servidor LAMP pero completamente independiente del ordenador con que se trabajase, y es lo que hice. El sistema sería un Debian o Ubuntu (para servidores) con Apache 2, PHP 5, MySQL, Samba y opcionalmente algún servidor FTP como <a href="http://vsftpd.beasts.org/">vsftpd</a> ó <a href="http://www.proftpd.org/">proftpd</a>, SSH&#8230; y todo lo que se quiera, pero lo básico es eso.</p>
<p>No voy a explicar como se hace eso ya que en <a href="http://www.ubuntu-es.org/">otros sitios</a> hay más información de la que yo sería capaz de dar. Lo que quiero explicar es cómo se prepara el servidor para que sea accesible desde internet (desde fuera) con un dominio normal y corriente. Puede parecer fácil pero no lo és tanto, resulta un problema tener una conexión con IP dinámica, pero no es nada que no se pueda solucionar.<span id="more-864"></span></p>
<p>La estructura de lo que quiero hacer sería esta:</p>
<pre>[SERVIDOR DEDICADO]           &lt;- [DOMINIO GENÉRICO]           &lt;- [ESTACIÓN DE TRABAJO]
               &lt;- [SERVIDOR DNS 2]             &lt;- [SERVIDOR DNS 1]
</pre>
<p>Es sencillo, pero como ya he dicho el problema es la IP dinámica. Ese problema se soluciona con un servidor dinámico de DNS y un proceso de Cron en el servidor</p>
<p>Cuando en la estación de trabajo se intenta acceder a un dominio &#8211; <span style="color: #888888;">p.ej. devicelost.com</span> &#8211; lo que hará es ir al primer servidor de DNS (sabrá cual és porque es parte de la configuración del router ó el ISP) para buscar la información de ese dominio, en concreto las direcciones del segundo servidor de DNS (que será el dinámico) con la IP del servidor dedicado actualizada.</p>
<p>Hay otros servicios de DNS dinámica, pero el que yo utilizo (y me funciona muy bien) es <a href="http://freedns.afraid.org/">afraid.org</a>, que nos permite actualizar la IP del dedicado de una forma sencilla, con cron, sin tener que instalar nada en el servidor. Una vez registrados en Afraid, podemos añadir nuestro dominio (que deberá tener asignadas las direcciones DNS de afraid).</p>
<p><strong>DNS de Afraid.org</strong></p>
<pre>NS1.AFRAID.ORG
NS2.AFRAID.ORG
NS3.AFRAID.ORG
NS4.AFRAID.ORG
</pre>
<p>Esas DNS son las que hay que ponerle al dominio que se quiere utilizar, si no sabes como, hablalo con tu proveedor o la persona que lo registró.</p>
<p>Ahora sólo queda preparar el cron del servidor dedicado para que actualice la IP del segundo servidor DNS (el de Afraid).</p>
<p>Para editar el archivo de cron, sólo hay que escribir crontab -e en terminal y podremos editarlo, para que funcione con vuestro dominio deberíais tener algo como esto:</p>
<pre># m h  dom mon dow   command
0 * * * * wget -q --background http://freedns.afraid.org/dynamic/update.php?U2NBR2FrTVRTTUlBQVExZks4NDozNDU5NTgx
0 * * * * rm wget-log*
</pre>
<p>Cambiando esa URL por la vuestra, que podréis encontrarla en <a href="http://freedns.afraid.org/dynamic/">http://freedns.afraid.org/dynamic/</a> es el enlace a <a href="http://www.emm-gfx.net/wp-content/uploads/2010/02/direct-url.gif">Direct URL</a> que os aparecerá por cada dominio agregado, de esta manera la IP se actualizará automáticamente cada hora (dependiendo de la configuración que se escriba en el cron).</p>
<h2  class="related_post_title">Articulos relacionados</h2><ul class="related_post"><li><a href="http://www.emm-gfx.net/2010/01/instalar-mcrypt-en-ubuntu-8-04-3-server-lts/" title="Instalar mcrypt en Ubuntu 8.04.3 server LTS">Instalar mcrypt en Ubuntu 8.04.3 server LTS</a> (0)</li></ul>]]></content:encoded>
			<wfw:commentRss>http://www.emm-gfx.net/2010/02/servidor-dedicado-con-ip-dinamica/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Mostrar una fecha sin mostrarla, de forma amigable, con PHP</title>
		<link>http://www.emm-gfx.net/2010/02/mostrar-una-fecha-sin-mostrarla-de-forma-amigable-con-php/</link>
		<comments>http://www.emm-gfx.net/2010/02/mostrar-una-fecha-sin-mostrarla-de-forma-amigable-con-php/#comments</comments>
		<pubDate>Wed, 10 Feb 2010 19:16:05 +0000</pubDate>
		<dc:creator>Josep Viciana</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[nicetime]]></category>
		<category><![CDATA[Snippets]]></category>

		<guid isPermaLink="false">http://www.emm-gfx.net/?p=874</guid>
		<description><![CDATA[Mostrar el tiempo de forma amigable, como Facebook o Twitter es una buena idea, sobretodo sobre todo si el lapso de tiempo entre el actual y el que se quiere mostrar no es demasiado largo. Si en vez de mostrar &#8220;14/11/1988 10:30&#8243; mostramos &#8220;Hace 21 años&#8221; puede parecer un poco exagerado y en ese caso [...]]]></description>
			<content:encoded><![CDATA[<div class="tweetmeme_button" style="float:left; margin:-34px 0px 0px -60px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fwww.emm-gfx.net%2F2010%2F02%2Fmostrar-una-fecha-sin-mostrarla-de-forma-amigable-con-php%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fwww.emm-gfx.net%2F2010%2F02%2Fmostrar-una-fecha-sin-mostrarla-de-forma-amigable-con-php%2F&amp;source=emmgfx&amp;style=normal&amp;service=bit.ly" height="61" width="50" /><br />
			</a>
		</div>
<p><a class="fancy" href="http://www.emm-gfx.net/wp-content/uploads/2010/02/tiempo.gif">Mostrar el tiempo de forma amigable, como Facebook o Twitter</a> es una buena idea, <span style="text-decoration: line-through;">sobretodo</span> sobre todo si el lapso de tiempo entre el actual y el que se quiere mostrar no es demasiado largo. Si en vez de mostrar &#8220;14/11/1988 10:30&#8243; mostramos &#8220;Hace 21 años&#8221; puede parecer un poco exagerado y en ese caso yo mostraría algo como &#8220;Hace 21 años (el 14/11/1988)&#8221;. Pero si es algo que se actualiza con más frecuencia, como los estados de Twitter, Facebook y cualquier otra red social, donde es normal que no pasen más de 4 horas entre cada actualización y muy pocas veces pasa de un día, es mejor poner &#8220;Hace 34 minutos&#8221; que poner la hora en que se hizo, resulta más entendible para el usuario y da una imagen de dinamismo que el modo convencional no es capaz. Y el motivo es sencillo, cuando el usuario ve &#8220;a las 13:30&#8243; lo que hace es mirar la hora actual y calcular el lapso de tiempo&#8230; es decir, que mostrando la fecha de forma amigable lo que hacemos es evitarle al usuario la necesidad de pensar.<span id="more-874"></span></p>
<p>En Intenta han publicado <a href="http://www.webintenta.com/funcion-para-determinar-el-tiempo-transcurrido-en-PHP.html">su propia versión</a> del <em>snippet</em> que iba a publicar yo hoy mismo &#8211; <span style="color: #888888;">se me ha adelantado por unas horas&#8230;</span> &#8211; , pero a su manera.  Y como el mío es algo diferente &#8211; <span style="color: #888888;">los dos parten de la misma función <code>nicetime()</code></span> &#8211; lo publico igualmente.</p>
<p>En cualquier caso, la función original la escribió un tal yasmary en los <a href="http://www.php.net/manual/en/function.time.php#89415">comentarios de la documentación</a> de php, y esto es una adaptación para que se pueda utilizar tanto con fechas formateadas como con el <em>epoch time</em> de <em>unix</em> y <strong>en castellano</strong>.</p>
<p>Para utilizarla, sería algo como esto:</p>
<pre>echo nicetime('1988-11-14');
# Mostraría "Hace 21 años"
echo nicetime('2010-02-12');
# Mostraría "Dentro de 2 días"
echo nicetime('1234567890');
# Mostraría "Hace 1 año";
</pre>
<p>Esta es <strong>la función</strong>, y el ejemplo de resultado se puede ver a la derecha (en el globo azul de Twitter).</p>
<pre>function nicetime($date){
   if(empty($date)){
      return "Fecha no especificada";
   }
   $periods    = array("segundo", "minuto", "hora", "d&amp;iacute;a", "semana", "mese", "a&amp;ntilde;o", "d&amp;eacute;cada");
   $lengths    = array("60","60","24","7","4.35","12","10");

   $now            = time();
   if(is_int($date)){
      $unix_date   = $date;
   }else{
      $unix_date   = strtotime($date);
   }

   if(empty($unix_date)) {
      return "Fecha incorrecta";
   }
   if($now &gt; $unix_date) {
      $difference  = $now - $unix_date;
      $tense       = "Hace ";
   }else{
      $difference  = $unix_date - $now;
      $tense       = "Dentro de ";
   }
   for($j = 0; $difference &gt;= $lengths[$j] &amp;&amp; $j &lt; count($lengths)-1; $j++) {
      $difference /= $lengths[$j];
   }
   $difference = round($difference);
   if($difference != 1) {
      $periods[$j].= "s";
   }
   return "{$tense} $difference $periods[$j] ";
}
</pre>
<div class="cuadro-amarillo"><strong>Nota 12 mayo 2010:</strong><br />
Parece que <a href="http://alexwhinfield.com/lightweight-php-seconds-ago-script/" target="_blank">Alex Whinfield ha publicado un script parecido pero más sencillo</a>, aunque lo que más me ha llamado la atención es uno de los comentarios en que le avisan de que wordpress incluye una función para esto llamada <code>human_time_diff()</code>, de manera que algunas veces no sería necesario incluir nuestra propia función <img src='http://www.emm-gfx.net/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </div>
<h2  class="related_post_title">Articulos relacionados</h2><ul class="related_post"><li><a href="http://www.emm-gfx.net/2010/02/obtener-la-url-que-se-esta-visitando-con-php/" title="Obtener la URL que se esta visitando con PHP">Obtener la URL que se esta visitando con PHP</a> (0)</li><li><a href="http://www.emm-gfx.net/2009/12/comprobar-la-validez-de-un-dominio-con-php/" title="Comprobar la validez de un dominio con PHP">Comprobar la validez de un dominio con PHP</a> (0)</li><li><a href="http://www.emm-gfx.net/2009/11/eliminar-posicion-de-un-array-en-php/" title="Eliminar posición de un array en PHP">Eliminar posición de un array en PHP</a> (2)</li><li><a href="http://www.emm-gfx.net/2009/09/encontrar-todos-los-links-de-una-pagina-con-php/" title="Encontrar todos los links de una página con PHP">Encontrar todos los links de una página con PHP</a> (0)</li><li><a href="http://www.emm-gfx.net/2008/07/comprobar-estado-de-un-servidor-mediante-php/" title="Comprobar estado de un servidor mediante PHP">Comprobar estado de un servidor mediante PHP</a> (1)</li><li><a href="http://www.emm-gfx.net/2008/05/php-cookies/" title="PHP: Cookies">PHP: Cookies</a> (0)</li><li><a href="http://www.emm-gfx.net/2010/03/enviar-el-log-de-errores-de-php-por-email/" title="Enviar el log de errores de PHP por email">Enviar el log de errores de PHP por email</a> (0)</li><li><a href="http://www.emm-gfx.net/2010/02/comprobar-dni-nif-con-php/" title="Comprobar DNI / NIF con PHP">Comprobar DNI / NIF con PHP</a> (0)</li><li><a href="http://www.emm-gfx.net/2010/01/str_replace-de-php-en-javascript-2/" title="La función str_replace() de PHP en Javascript">La función str_replace() de PHP en Javascript</a> (0)</li><li><a href="http://www.emm-gfx.net/2010/01/instalar-mcrypt-en-ubuntu-8-04-3-server-lts/" title="Instalar mcrypt en Ubuntu 8.04.3 server LTS">Instalar mcrypt en Ubuntu 8.04.3 server LTS</a> (0)</li></ul>]]></content:encoded>
			<wfw:commentRss>http://www.emm-gfx.net/2010/02/mostrar-una-fecha-sin-mostrarla-de-forma-amigable-con-php/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>La función str_replace() de PHP en Javascript</title>
		<link>http://www.emm-gfx.net/2010/01/str_replace-de-php-en-javascript-2/</link>
		<comments>http://www.emm-gfx.net/2010/01/str_replace-de-php-en-javascript-2/#comments</comments>
		<pubDate>Fri, 29 Jan 2010 13:02:02 +0000</pubDate>
		<dc:creator>Josep Viciana</dc:creator>
				<category><![CDATA[Javascript]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[replace]]></category>
		<category><![CDATA[str_replace]]></category>

		<guid isPermaLink="false">http://www.emm-gfx.net/?p=855</guid>
		<description><![CDATA[La función str_replace() de PHP tiene un uso muy sencillo, se le entregan 3 parámetros; la cadena a buscar, la cadena por la que se substituirá, y la cadena sobre la que se va a trabajar. Por ejemplo&#8230; $cadena = 'Prefiero el helado de frutas del bosque'; echo $cadena; // Prefiero el helado de frutas [...]]]></description>
			<content:encoded><![CDATA[<div class="tweetmeme_button" style="float:left; margin:-34px 0px 0px -60px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fwww.emm-gfx.net%2F2010%2F01%2Fstr_replace-de-php-en-javascript-2%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fwww.emm-gfx.net%2F2010%2F01%2Fstr_replace-de-php-en-javascript-2%2F&amp;source=emmgfx&amp;style=normal&amp;service=bit.ly" height="61" width="50" /><br />
			</a>
		</div>
<p>La función <code>str_replace()</code> de PHP tiene un uso muy sencillo, se le entregan 3 parámetros; la cadena a buscar, la cadena por la que se substituirá, y la cadena sobre la que se va a trabajar. Por ejemplo&#8230;</p>
<pre>$cadena = 'Prefiero el helado de frutas del bosque';
echo $cadena;
// Prefiero el helado de frutas del bosque

$cadena = str_replace('frutas del bosque','pistacho',$cadena);
echo $cadena;
// Prefiero el helado de pistacho
</pre>
<p>Más información sobre <code>str_replace()</code> en la <a href="http://es.php.net/str_replace">página de PHP</a>.</p>
<p>Para hacerlo <strong>en Javascript</strong> se haría así:</p>
<pre>cadena = 'Prefiero el helado de frutas del bosque';
alert(cadena);
// Prefiero el helado de frutas del bosque

cadena = cadena.replace(/frutas del bosque/g,"pistacho");
alert(cadena);
// Prefiero el helado de pistacho
</pre>
<p>Si sólo se quiere cambiar la primera coincidencia, en vez de utilizar <code>/frutas del bosque/g</code> debería ser <code>"frutas del bosque"</code>. El cambio entre <code>//g</code> y <code>""</code> es aparentemente absurdo y me ha costado varias horas de trabajo&#8230; pero de errores se aprende.</p>
<h2  class="related_post_title">Articulos relacionados</h2><ul class="related_post"><li><a href="http://www.emm-gfx.net/2009/07/detectar-peticion-ajax-con-php/" title="Detectar petición AJAX con PHP">Detectar petición AJAX con PHP</a> (1)</li><li><a href="http://www.emm-gfx.net/2010/07/acentos-y-tildes-en-javascript/" title="Tildes en Javascript">Tildes en Javascript</a> (0)</li><li><a href="http://www.emm-gfx.net/2010/03/base64-encode-y-decode-en-javascript/" title="Base64 (encode y decode) en Javascript">Base64 (encode y decode) en Javascript</a> (1)</li><li><a href="http://www.emm-gfx.net/2010/03/enviar-el-log-de-errores-de-php-por-email/" title="Enviar el log de errores de PHP por email">Enviar el log de errores de PHP por email</a> (0)</li><li><a href="http://www.emm-gfx.net/2010/02/obtener-la-url-que-se-esta-visitando-con-php/" title="Obtener la URL que se esta visitando con PHP">Obtener la URL que se esta visitando con PHP</a> (0)</li><li><a href="http://www.emm-gfx.net/2010/02/comprobar-dni-nif-con-php/" title="Comprobar DNI / NIF con PHP">Comprobar DNI / NIF con PHP</a> (0)</li><li><a href="http://www.emm-gfx.net/2010/02/mostrar-una-fecha-sin-mostrarla-de-forma-amigable-con-php/" title="Mostrar una fecha sin mostrarla, de forma amigable, con PHP">Mostrar una fecha sin mostrarla, de forma amigable, con PHP</a> (1)</li><li><a href="http://www.emm-gfx.net/2010/01/instalar-mcrypt-en-ubuntu-8-04-3-server-lts/" title="Instalar mcrypt en Ubuntu 8.04.3 server LTS">Instalar mcrypt en Ubuntu 8.04.3 server LTS</a> (0)</li><li><a href="http://www.emm-gfx.net/2010/01/rmdir-recursivo-en-php/" title="RMDIR recursivo en PHP">RMDIR recursivo en PHP</a> (0)</li><li><a href="http://www.emm-gfx.net/2009/12/comprobar-la-validez-de-un-dominio-con-php/" title="Comprobar la validez de un dominio con PHP">Comprobar la validez de un dominio con PHP</a> (0)</li></ul>]]></content:encoded>
			<wfw:commentRss>http://www.emm-gfx.net/2010/01/str_replace-de-php-en-javascript-2/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Recuperar la contraseña de root a MySQL</title>
		<link>http://www.emm-gfx.net/2010/01/recuperar-la-contrasena-de-root-a-mysql/</link>
		<comments>http://www.emm-gfx.net/2010/01/recuperar-la-contrasena-de-root-a-mysql/#comments</comments>
		<pubDate>Fri, 22 Jan 2010 12:57:51 +0000</pubDate>
		<dc:creator>Josep Viciana</dc:creator>
				<category><![CDATA[Sistemas]]></category>
		<category><![CDATA[MySQL]]></category>
		<category><![CDATA[root]]></category>

		<guid isPermaLink="false">http://www.emm-gfx.net/?p=832</guid>
		<description><![CDATA[Paramos MySQL y lo iniciamos MySQL de forma segura: sudo /etc/init.d/mysql stop sudo mysqld_safe –skip-grant-tables &#38; Entramos con el nombre de usuario root y seleccionamos la base de datos: mysql -u root use mysql; Ejecutamos esta sentencia cambiando &#8220;xxx&#8221; por la nueva contraseña que queramos: update user set password=PASSWORD("xxx") where User='root'; Refrescamos los permisos y [...]]]></description>
			<content:encoded><![CDATA[<div class="tweetmeme_button" style="float:left; margin:-34px 0px 0px -60px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fwww.emm-gfx.net%2F2010%2F01%2Frecuperar-la-contrasena-de-root-a-mysql%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fwww.emm-gfx.net%2F2010%2F01%2Frecuperar-la-contrasena-de-root-a-mysql%2F&amp;source=emmgfx&amp;style=normal&amp;service=bit.ly" height="61" width="50" /><br />
			</a>
		</div>
<p>Paramos MySQL y lo iniciamos MySQL de forma segura:</p>
<pre>sudo /etc/init.d/mysql stop
sudo mysqld_safe –skip-grant-tables &amp;</pre>
<p>Entramos con el nombre de usuario root y seleccionamos la base de datos:</p>
<pre>mysql -u root
use mysql;</pre>
<p>Ejecutamos esta sentencia cambiando &#8220;xxx&#8221; por la nueva contraseña que queramos:</p>
<pre>update user set password=PASSWORD("xxx") where User='root';</pre>
<p>Refrescamos los permisos y salimos de MySQL:</p>
<pre>flush privileges;
quit</pre>
<p>Reiniciamos MySQL:</p>
<pre>sudo /etc/init.d/mysql restart</pre>
<div>Visto en el <a href="http://www.keopx.net">blog de Keopx</a></div>
<h2  class="related_post_title">Articulos relacionados</h2><ul class="related_post"><li>No se encuentran articulos relacionados</li></ul>]]></content:encoded>
			<wfw:commentRss>http://www.emm-gfx.net/2010/01/recuperar-la-contrasena-de-root-a-mysql/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
