<?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</title>
	<atom:link href="http://www.emm-gfx.net/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>Fri, 12 Mar 2010 08:51:03 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<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 hacer [...]]]></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> (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> (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> (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><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></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;
  [...]]]></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> (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/2008/11/encriptar-y-desencriptar-cadena-php/" title="Encriptar y desencriptar cadena con PHP">Encriptar y desencriptar cadena con PHP</a> (0)</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> (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/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> (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> (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> (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><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></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> (7)</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 adoctrinamiento [...]]]></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/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>1</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>
<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> (0)</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>0</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 del bosque

$cadena = [...]]]></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/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> (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><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><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/11/str_replace-de-php-en-javascript/" title="str_replace() de PHP en Javascript">str_replace() de PHP en Javascript</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 salimos de MySQL:
flush privileges;
quit
Reiniciamos MySQL:
sudo /etc/init.d/mysql restart
Visto en [...]]]></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>
		<item>
		<title>Instalar mcrypt en Ubuntu 8.04.3 server LTS</title>
		<link>http://www.emm-gfx.net/2010/01/instalar-mcrypt-en-ubuntu-8-04-3-server-lts/</link>
		<comments>http://www.emm-gfx.net/2010/01/instalar-mcrypt-en-ubuntu-8-04-3-server-lts/#comments</comments>
		<pubDate>Tue, 19 Jan 2010 18:58:43 +0000</pubDate>
		<dc:creator>Josep Viciana</dc:creator>
				<category><![CDATA[Sistemas]]></category>
		<category><![CDATA[mcrypt]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Ubuntu 8.04]]></category>

		<guid isPermaLink="false">http://www.emm-gfx.net/?p=810</guid>
		<description><![CDATA[
			
				
			
		
Estoy repreparando el servidor personal que utilizo para proyectos de desarrollo. Lo he hecho desde cero por que la vez anterior lo hice hace tiempo y sin dejar nada documentado sobre lo que se hacía, de manera que con el tiempo y mi pobre memória he acabado olvidándome de casi todas las contraseñas que puse&#8230; [...]]]></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%2Finstalar-mcrypt-en-ubuntu-8-04-3-server-lts%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fwww.emm-gfx.net%2F2010%2F01%2Finstalar-mcrypt-en-ubuntu-8-04-3-server-lts%2F&amp;source=emmgfx&amp;style=normal&amp;service=bit.ly" height="61" width="50" /><br />
			</a>
		</div>
<p><img style="float: right;" src="http://www.emm-gfx.net/wp-content/uploads/2010/01/mcrypt2.png" alt="mcrypt logo" />Estoy repreparando el servidor personal que utilizo para proyectos de desarrollo. Lo he hecho desde cero por que la vez anterior lo hice hace tiempo y sin dejar nada documentado sobre lo que se hacía, de manera que con el tiempo y mi pobre memória he acabado olvidándome de casi todas las contraseñas que puse&#8230; por eso he hecho copias de seguridad de todo y he vuelto a reinstalar el sistema. Quería instalar debian, como tenía antes, pero aún no sé por qué no me aceptaba el disco&#8230; y por eso he usado un Ubuntu Server&#8230; que tampoco está mal, y menos para mí que no sé demasiado de esto.<span id="more-810"></span></p>
<p>El caso es que necesitaba el paquete mcrypt, y no sé por qué no estaba en los repositorios que venían&#8230; por lo que he leido eso acaba siendo un problema para bastante gente que como yo ha buscado ayuda&#8230; (que al final ha resultado estar <a href="http://packages.ubuntu.com/hardy/amd64/php5-mcrypt/download">en la misma página de ubuntu</a>). Lo que he tenido que hacer es, añadir un nuevo repositorio en el archivo sources.list para que busque ahí el paquete que necesito, php5-mcrypt.</p>
<p><strong>Editamos el archivo sources.list</strong></p>
<pre>nano /etc/apt/sources.list</pre>
<p><strong>Y se añade la linea</strong><br />
(si nuestro servidor es amd64, si es otro visita la <a href="http://packages.ubuntu.com/hardy/php5-mcrypt">página de ubuntu</a> para buscar el tuyo)</p>
<pre>http://packages.ubuntu.com/hardy/amd64/php5-mcrypt/download</pre>
<p><strong>Actualizamos la lista de paquetes:</strong></p>
<pre>apt-get update</pre>
<p><strong>Y ahora ya se puede instalar el paquete que quería:</strong></p>
<pre>apt-get install php5-mcrypt</pre>
<p>Ahora sólo queda reiniciar Apache para que tenga sentido el trabajo hecho:</p>
<pre>/etc/init.d/apache2 restart</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/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/servidor-dedicado-con-ip-dinamica/" title="Servidor dedicado con IP dinámica.">Servidor dedicado con IP dinámica.</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> (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/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><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></ul>]]></content:encoded>
			<wfw:commentRss>http://www.emm-gfx.net/2010/01/instalar-mcrypt-en-ubuntu-8-04-3-server-lts/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>RMDIR recursivo en PHP</title>
		<link>http://www.emm-gfx.net/2010/01/rmdir-recursivo-en-php/</link>
		<comments>http://www.emm-gfx.net/2010/01/rmdir-recursivo-en-php/#comments</comments>
		<pubDate>Tue, 19 Jan 2010 12:35:32 +0000</pubDate>
		<dc:creator>Josep Viciana</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[exec]]></category>
		<category><![CDATA[Recursividad]]></category>
		<category><![CDATA[rmdir]]></category>
		<category><![CDATA[unix]]></category>

		<guid isPermaLink="false">http://www.emm-gfx.net/?p=802</guid>
		<description><![CDATA[
			
				
			
		
Para eliminar directorios con php se utiliza la función rmdir(), el problema es que esa función no permite borrar carpetas que contengan algo, ya sea otras carpetas vacías o archivos.
Se pueden hacer funciones para eliminar carpetas y su contenido utilizando sólo php, de hecho en el manual de rmdir en php.net se pueden ver algunas [...]]]></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%2Frmdir-recursivo-en-php%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fwww.emm-gfx.net%2F2010%2F01%2Frmdir-recursivo-en-php%2F&amp;source=emmgfx&amp;style=normal&amp;service=bit.ly" height="61" width="50" /><br />
			</a>
		</div>
<p>Para eliminar directorios con php se utiliza la función <code>rmdir()</code>, el problema es que esa función no permite borrar carpetas que contengan algo, ya sea otras carpetas vacías o archivos.</p>
<p>Se pueden hacer funciones para eliminar carpetas y su contenido utilizando sólo php, de hecho en el <a href="http://es2.php.net/rmdir">manual de rmdir en php.net</a> se pueden ver algunas en los comentarios, pero no es eso lo que me interesa. Lo que voy a explicar es cómo hacerlo utilizando comandos del sistema (en unix, los de windows no tengo ni idea).<span id="more-802"></span></p>
<p>La cosa es sencilla, para ejecutar comandos del sistema se utiliza la función <code>exec()</code> de PHP.</p>
<p>Por ejemplo:</p>
<pre>echo '&lt;ol&gt;';
if(exec('rm -frv /el/directorio/a/borrar/',$salida)){
   foreach($salida as $line){
      echo '&lt;li&gt;'.$line.'&lt;/li&gt;';
   }
}else{
   echo '&lt;li&gt;Error al eliminar archivos&lt;/li&gt;';
}
echo '&lt;/ol&gt;';</pre>
<p>Como se ve, he utilizado el comando rm con las opciones <code>-frv</code>, la <code>f</code> es para forzar (ignora archivos inexistentes), la <code>r</code> para que sea recursivo y la <code>v</code> (de verbose) para que explique lo que esta haciendo. Si queréis, en la wikipedia hay <a href="http://en.wikipedia.org/wiki/Rm_%28Unix%29">mas información</a> sobre el comando <code>rm</code>.</p>
<h2  class="related_post_title">Articulos relacionados</h2><ul class="related_post"><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/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> (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><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></ul>]]></content:encoded>
			<wfw:commentRss>http://www.emm-gfx.net/2010/01/rmdir-recursivo-en-php/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Vectorizando 8. Mercè</title>
		<link>http://www.emm-gfx.net/2010/01/vectorizando-8-merce/</link>
		<comments>http://www.emm-gfx.net/2010/01/vectorizando-8-merce/#comments</comments>
		<pubDate>Wed, 06 Jan 2010 22:31:47 +0000</pubDate>
		<dc:creator>Josep Viciana</dc:creator>
				<category><![CDATA[Diseño e ilustración]]></category>
		<category><![CDATA[Dibujo]]></category>
		<category><![CDATA[Ilustración]]></category>
		<category><![CDATA[Photoshop]]></category>
		<category><![CDATA[Vectores]]></category>

		<guid isPermaLink="false">http://www.emm-gfx.net/?p=773</guid>
		<description><![CDATA[
			
				
			
		
He hecho otro dibujo. Estoy bastante contento con el resultado pero creo que no haré ninguno más&#8230; resulta un poco triste decirlo, pero bueno, me duelen las manos cuando cojo el lápiz, al principio me daba igual pero ahora duele como para tomarselo en serio xD. El caso es que he tardado algo más de [...]]]></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%2Fvectorizando-8-merce%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fwww.emm-gfx.net%2F2010%2F01%2Fvectorizando-8-merce%2F&amp;source=emmgfx&amp;style=normal&amp;service=bit.ly" height="61" width="50" /><br />
			</a>
		</div>
<p>He hecho otro dibujo. Estoy bastante contento con el resultado pero creo que no haré ninguno más&#8230; resulta un poco triste decirlo, pero bueno, me duelen las manos cuando cojo el lápiz, al principio me daba igual pero ahora duele como para tomarselo en serio xD. El caso es que he tardado algo más de dos semanas (tomándomelo con calma, claro) y ha sido el primer dibujo que he hecho dese el Photoshop de Mac (ha sido exactamente lo mismo).<span id="more-773"></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=8559222&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=8559222&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></p>
<p><a href="http://vimeo.com/8559222">Vectorizando 8, Mercè</a> from <a href="http://vimeo.com/emmgfx">Josep Viciana</a> on <a href="http://vimeo.com">Vimeo</a>.</p>
<p><img title="Vectorizando 8 Me 2" src="http://www.emm-gfx.net/wp-content/uploads/2010/01/27.jpg" alt="" width="100%" /></p>
<h2  class="related_post_title">Articulos relacionados</h2><ul class="related_post"><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/01/vectorizando-8-merce/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>En ciernes de pericia</title>
		<link>http://www.emm-gfx.net/2009/12/en-ciernes-de-pericia/</link>
		<comments>http://www.emm-gfx.net/2009/12/en-ciernes-de-pericia/#comments</comments>
		<pubDate>Wed, 23 Dec 2009 15:17:14 +0000</pubDate>
		<dc:creator>Josep Viciana</dc:creator>
				<category><![CDATA[Música]]></category>
		<category><![CDATA[Last Chance]]></category>
		<category><![CDATA[Letras]]></category>

		<guid isPermaLink="false">http://www.emm-gfx.net/?p=766</guid>
		<description><![CDATA[
			
				
			
		
Es el tiempo que ha pasado y el que pasará, el que te cuidaba y ahora te quiere odiar. Son los años que han calmado el sentimiento, los años que han pasado y se acumulan, los que quieren recordarnos las promesas y que pueden demostrar los cambios. Es la pobreza del no saber, lo duro [...]]]></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%2F2009%2F12%2Fen-ciernes-de-pericia%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fwww.emm-gfx.net%2F2009%2F12%2Fen-ciernes-de-pericia%2F&amp;source=emmgfx&amp;style=normal&amp;service=bit.ly" height="61" width="50" /><br />
			</a>
		</div>
<blockquote><p>Es el tiempo que ha pasado y el que pasará, el que te cuidaba y ahora te quiere odiar. Son los años que han calmado el sentimiento, los años que han pasado y se acumulan, los que quieren recordarnos las promesas y que pueden demostrar los cambios. Es la pobreza del no saber, lo duro de no quererlo entender, no poder olvidar y no querer borrar. Sé que las cosas han cambiado y ahora no se bien si debo odiar ni sé bien si debo amar. Tantas veces se ha planteado&#8230; Restos de miseria para olvidar y algunas glorias que recordar. Sabemos y sé que el tiempo pasa pero hay algo que nunca cambia, el ánsia de unidad y lealtad, la codicia que no dejaremos marchar. Y así hasta el final del camino seguiremos en ciernes de pericia, aspirando torcer el destino y seguir nuestro camino. Por los buenos tiempos pasados y por los buenos tiempos que vendrán</p></blockquote>
<p style="text-align: right;">- para <a href="http://www.myspace.com/lastchancebcn">Last Chance</a></p>
<h2  class="related_post_title">Articulos relacionados</h2><ul class="related_post"><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/10/letras-dulce-miseria-de-proudz/" title="Letras &#8220;Dulce miseria&#8221; de Proudz">Letras &#8220;Dulce miseria&#8221; de Proudz</a> (7)</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/2009/02/semana-hardcore-lunes-state-murders-la-llama-sigue-viva/" title="Semana Hardcore (lunes): State Murders &#8211; La llama sigue viva">Semana Hardcore (lunes): State Murders &#8211; La llama sigue viva</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/2009/12/en-ciernes-de-pericia/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>El propósito del obrero debería ser&#8230;</title>
		<link>http://www.emm-gfx.net/2009/12/el-proposito-del-obrero-deberia-ser/</link>
		<comments>http://www.emm-gfx.net/2009/12/el-proposito-del-obrero-deberia-ser/#comments</comments>
		<pubDate>Sat, 19 Dec 2009 14:00:29 +0000</pubDate>
		<dc:creator>Josep Viciana</dc:creator>
				<category><![CDATA[General]]></category>
		<category><![CDATA[Citas]]></category>
		<category><![CDATA[Desobediencia civil y otros escritos]]></category>
		<category><![CDATA[Thoreau]]></category>

		<guid isPermaLink="false">http://www.emm-gfx.net/?p=758</guid>
		<description><![CDATA[
			
				
			
		
El propósito del obrero debería ser, no el ganarse la vida o conseguir &#8220;un buen trabajo&#8221;, sino realizar bien un determinado trabajo y hasta en un sentido pecuniario sería económico para una ciudad pagar a  sus obreros tan bien que no sintieran que estaban trabajando por un mínimo, para seguir viviendo sin más, sino [...]]]></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%2F2009%2F12%2Fel-proposito-del-obrero-deberia-ser%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fwww.emm-gfx.net%2F2009%2F12%2Fel-proposito-del-obrero-deberia-ser%2F&amp;source=emmgfx&amp;style=normal&amp;service=bit.ly" height="61" width="50" /><br />
			</a>
		</div>
<blockquote><p>El propósito del obrero debería ser, no el ganarse la vida o conseguir &#8220;un buen trabajo&#8221;, sino realizar bien un determinado trabajo y hasta en un sentido pecuniario sería económico para una ciudad pagar a  sus obreros tan bien que no sintieran que estaban trabajando por un mínimo, para seguir viviendo sin más, sino que trabajaban por fines científicos o morales. No contrates a un hombre que te hace el trabajo por dinero, sino a aquel que lo hace porque le gusta, aunque muy despacio. (&#8230;) Es significativo que existan pocos hombres tan bien empleados, que trabajen tan de acuerdo con sus intereses, que un poco de dinero o fama no les arranque de su tarea actual.</p></blockquote>
<p><a href="http://es.wikipedia.org/wiki/Henry_David_Thoreau">Thoreau</a>, poniendo palabras a lo que siempre he pensado en <a href="http://www.casadellibro.com/libro-desobediencia-civil-y-otros-escritos/1058200/2900001086547">Desobediencia civil y otros escritos</a>. Tengo la sensación de que el pasado me roba las ideas, xD. Más <a href="http://es.wikipedia.org/wiki/Renta_b%C3%A1sica_universal#Defensores_de_la_Renta_B.C3.A1sica_Universal">información sobre la renta básica universal</a>.</p>
<h2  class="related_post_title">Articulos relacionados</h2><ul class="related_post"><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/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/2009/12/el-proposito-del-obrero-deberia-ser/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Comprobar la validez de un dominio con PHP</title>
		<link>http://www.emm-gfx.net/2009/12/comprobar-la-validez-de-un-dominio-con-php/</link>
		<comments>http://www.emm-gfx.net/2009/12/comprobar-la-validez-de-un-dominio-con-php/#comments</comments>
		<pubDate>Fri, 11 Dec 2009 19:04:21 +0000</pubDate>
		<dc:creator>Josep Viciana</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[Desarrollo]]></category>
		<category><![CDATA[Función]]></category>
		<category><![CDATA[Snippets]]></category>

		<guid isPermaLink="false">http://www.emm-gfx.net/?p=748</guid>
		<description><![CDATA[
			
				
			
		
Una sencilla función para verificar que un nombre de dominio existe. Es la función que utilizo en saberpagerank.es para verificar que el dominio introducido es correcto, podéis encontrar una demostración de allí.

function getAddrByHost($host, $timeout = 3) {
   $query = `nslookup -timeout=$timeout -retry=1 $host`;
   if(preg_match('/\nAddress: (.*)\n/', $query, $matches)){
     [...]]]></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%2F2009%2F12%2Fcomprobar-la-validez-de-un-dominio-con-php%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fwww.emm-gfx.net%2F2009%2F12%2Fcomprobar-la-validez-de-un-dominio-con-php%2F&amp;source=emmgfx&amp;style=normal&amp;service=bit.ly" height="61" width="50" /><br />
			</a>
		</div>
<p>Una sencilla función para verificar que un nombre de dominio existe. Es la función que utilizo en <a href="http://www.saberpagerank.es">saberpagerank.es</a> para verificar que el dominio introducido es correcto, podéis encontrar una demostración de allí.</p>
<pre lang="php" line="1">
function getAddrByHost($host, $timeout = 3) {
   $query = `nslookup -timeout=$timeout -retry=1 $host`;
   if(preg_match('/\nAddress: (.*)\n/', $query, $matches)){
      return trim($matches[1]);
   }else{
      return false;
   }
   return $host;
}
</pre>
<p>Y no hay mucho más que añadir, el nombre de dominio se le pasa en el primer parámetro, es decir, para utilizar la función se haría algo así:</p>
<pre lang="php" line="1">
if(!getAddrByHost('www.dominioabsurdo.lol')){
   die('El dominio parece incorrecto :(');
}
</pre>
<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/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> (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/2008/11/encriptar-y-desencriptar-cadena-php/" title="Encriptar y desencriptar cadena con PHP">Encriptar y desencriptar cadena con PHP</a> (0)</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> (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/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/2009/12/comprobar-la-validez-de-un-dominio-con-php/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Hydrax, Skyx y Paradise Engine</title>
		<link>http://www.emm-gfx.net/2009/12/hydrax-skyx-y-paradise-engine/</link>
		<comments>http://www.emm-gfx.net/2009/12/hydrax-skyx-y-paradise-engine/#comments</comments>
		<pubDate>Mon, 07 Dec 2009 18:30:40 +0000</pubDate>
		<dc:creator>Josep Viciana</dc:creator>
				<category><![CDATA[General]]></category>
		<category><![CDATA[3D]]></category>
		<category><![CDATA[Desarrollo]]></category>
		<category><![CDATA[Hydrax]]></category>
		<category><![CDATA[Paradise Engine]]></category>
		<category><![CDATA[Paradise theading]]></category>
		<category><![CDATA[Skyx]]></category>
		<category><![CDATA[Xavier Verguin]]></category>

		<guid isPermaLink="false">http://www.emm-gfx.net/?p=672</guid>
		<description><![CDATA[
			
				
			
		
Hoy estoy bastante contento. De algún modo, me encuentro involucrado &#8211; aunque con un papel bastante humilde -  en el proyecto que lidera Xavier Verguín al que hemos llamado Paradise Engine y que estoy seguro de que dará que hablar. Pero creo que lo más adecuado es ver el vídeo demostración &#8211; si podéis en [...]]]></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%2F2009%2F12%2Fhydrax-skyx-y-paradise-engine%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fwww.emm-gfx.net%2F2009%2F12%2Fhydrax-skyx-y-paradise-engine%2F&amp;source=emmgfx&amp;style=normal&amp;service=bit.ly" height="61" width="50" /><br />
			</a>
		</div>
<p>Hoy estoy bastante contento. De algún modo, me encuentro involucrado &#8211; <span style="color: #888888;">aunque con un papel bastante humilde</span> -  en el proyecto que lidera Xavier Verguín al que hemos llamado Paradise Engine y que estoy seguro de que dará que hablar. Pero creo que lo más adecuado es ver el vídeo demostración &#8211; <span style="color: #888888;">si podéis en HD</span> &#8211; y luego explicar lo que és.</p>
<p>Paradise Engine viene a ser el contenedor que aúna otros proyectos en los que trabajamos desde hace tiempo, que han tenido un avance notable y que sinceramente, a día de hoy me dejan con la boca abierta cada vez que los veo.</p>
<p><object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="100%" height="286" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="wmode" value="transparent" /><param name="allowFullScreen" value="true" /><param name="allowscriptaccess" value="always" /><param name="src" value="http://www.youtube-nocookie.com/v/FL02s_MGIQc&amp;hl=es_ES&amp;fs=1&amp;rel=0&amp;hd=1" /><param name="allowfullscreen" value="true" /><embed type="application/x-shockwave-flash" width="100%" height="286" src="http://www.youtube-nocookie.com/v/FL02s_MGIQc&amp;hl=es_ES&amp;fs=1&amp;rel=0&amp;hd=1" allowscriptaccess="always" allowfullscreen="true" wmode="transparent"></embed></object></p>
<p>Por un lado está <strong>Hydrax</strong>, que se encarga de generar mares &#8211; <span style="color: #888888;">agua</span> -, ríos y cualquier cosa similar con una calidad gráfica impresionante, como se puede ver en el vídeo incrustado un poco más arriba. Sinceramente, creo que no sólo Hydrax no tiene nada que envidiar al <a class="fancy" href="http://www.emm-gfx.net/wp-content/uploads/2009/12/agua-crysis.png">renderizado de aguas de Crysis</a>, sino que es bastante superior.</p>
<p>También hay que destacar <strong>Skyx</strong>, que pretende ser y es un simulador fotorealista de cielos &#8211; <span style="color: #888888;">incluyendo la luz, las nubes y su densidad</span> &#8211; , capaz de generar ciclos dinámicos de luz día/noche. Skyx se integra a la perfección con Hydrax para poder hacer de Paradise Engine lo que es.</p>
<p>Otro punto muy importante de Paradise Engine, es el llamado <strong>Paradise Threading</strong>, que ha sido pensado para aprovechar al máximo el hardware de un equipo, sea cual sea, concretamente el/los procesador/es. Con Paradise Threading, el engine se adapta al número de procesadores para rendir lo mejor posible en cada caso, sin cambios de código, completamente escalable. De esta manera funcionará tanto en un ordenador con un procesador que en uno con 32, pero tendrá un rendimiento equivalente al que los 32 procesadores merecen.</p>
<p>La verdad, me parece impresionante el trabajo que se está haciendo y admirable la dedicación que se le está poniendo, que puedo asegurar que es muchísima&#8230; Cuando esté un poco más maduro, cuando haya una demo disponible para que todo el mundo pueda bajarla y probarla en su ordenador, publicaré una entrevista que tengo acordada con el principal desarrollador &#8211; <span style="color: #888888;">Xavier</span> &#8211; sobre este proyecto, su estado actual y los objetivos marcados. Espero que resulte interesante.</p>
<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/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/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/07/tron-2-para-el-2010/" title="Tron 2 para el 2010">Tron 2 para el 2010</a> (0)</li><li><a href="http://www.emm-gfx.net/2009/07/inline-block-cross-browser/" title="inline-block cross-browser">inline-block cross-browser</a> (2)</li><li><a href="http://www.emm-gfx.net/2009/01/retrasar-eventos-y-efectos-de-jquery/" title="Retrasar eventos y efectos de jQuery">Retrasar eventos y efectos de jQuery</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> (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> (0)</li></ul>]]></content:encoded>
			<wfw:commentRss>http://www.emm-gfx.net/2009/12/hydrax-skyx-y-paradise-engine/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>En defensa de los derechos fundamentales de Internet</title>
		<link>http://www.emm-gfx.net/2009/12/en-defensa-de-los-derechos-fundamentales-de-internet/</link>
		<comments>http://www.emm-gfx.net/2009/12/en-defensa-de-los-derechos-fundamentales-de-internet/#comments</comments>
		<pubDate>Wed, 02 Dec 2009 12:44:38 +0000</pubDate>
		<dc:creator>Josep Viciana</dc:creator>
				<category><![CDATA[General]]></category>
		<category><![CDATA[Copyright]]></category>
		<category><![CDATA[Democrácia]]></category>
		<category><![CDATA[Derechos de autor]]></category>
		<category><![CDATA[Internet]]></category>
		<category><![CDATA[Privacidad]]></category>

		<guid isPermaLink="false">http://www.emm-gfx.net/?p=592</guid>
		<description><![CDATA[
			
				
			
		
Sólo han hecho falta unas horas, ayer por la tarde/noche se alertó con un email a los simpatizantes y afiliados del Partido Pirata, que avisaba de las oscuras &#8211; y para variar, tan vergonzosas como para querer ocultarlas &#8211; intenciones del Gobierno. En las horas que se han ido sucediendo desde la nota, docenas de [...]]]></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%2F2009%2F12%2Fen-defensa-de-los-derechos-fundamentales-de-internet%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fwww.emm-gfx.net%2F2009%2F12%2Fen-defensa-de-los-derechos-fundamentales-de-internet%2F&amp;source=emmgfx&amp;style=normal&amp;service=bit.ly" height="61" width="50" /><br />
			</a>
		</div>
<p><a class="fancy" title="CUIDADO QUE VIENE LA PESTE" href="http://www.emm-gfx.net/wp-content/uploads/2009/12/3447261172_334aeb0e70_o.jpg"><img style="float:right; margin:3px; border:1px solid #ccc; padding:3px;" src="http://www.emm-gfx.net/wp-content/uploads/2009/12/3447261172_334aeb0e70_o-150x112.jpg" alt="" width="150" height="112" /></a>Sólo han hecho falta unas horas, ayer por la tarde/noche se alertó con un email a los simpatizantes y afiliados del <a href="http://www.partidopirata.es/">Partido Pirata</a>, que avisaba de las oscuras &#8211; <span style="color: #999999;">y</span><span style="color: #999999;"><span style="color: #999999;"> para</span> variar, tan vergonzosas como para querer ocultarlas</span> &#8211; intenciones del Gobierno. En las horas que se han ido sucediendo desde la nota, docenas de sitios se han hecho eco del manifiesto publicado en defensa de los derechos fundamentales de Internet.</p>
<p><a href="http://http://www.eleconomista.es/imag/_v2/documentos/economiasostenible.pdf" target="_blank">ANTEPROYECTO DE LEY DE ECONOMIA SOSTENIBLE</a> <span style="color: #999999;">.pdf &#8211; 533KB</span><br />
Gracias a Sergi (caos30) por recordarme que ponga el enlace</p>
<p>Copia y pega este manifiesto en donde tengas oportunidad, compártelo en Facebook o cualquier red social. Y si te sientes con ánimos, puedes escupir en la cara a alguna <a class="fancy" title="Angeles Gonzalez-Sinde" href="http://www.emm-gfx.net/wp-content/uploads/2009/12/presidenta_academia_cine_angeles_gonzalez-sinde_durante_intervencion.jpg">mala persona</a> que se lo merezca.</p>
<blockquote><p><strong>MANIFIESTO EN DEFENSA DE LOS DERECHOS FUNDAMENTALES DE INTERNET:</strong></p>
<ol>
<li><span style="font-weight: bold;">Los derechos de autor no pueden situarse por encima de los derechos fundamentales de los ciudadanos</span>, como el derecho a la privacidad, a la seguridad, a la presunción de inocencia, a la tutela judicial efectiva y a la libertad de expresión.</li>
<li><span style="font-weight: bold;">La suspensión de derechos fundamentales es y debe seguir siendo competencia exclusiva del poder judicia</span>l. Ni un cierre sin sentencia. Este anteproyecto, en contra de lo establecido en el artículo 20.5 de la Constitución, pone en manos de un órgano no judicial -un organismo dependiente del ministerio de Cultura-, la potestad de impedir a los ciudadanos españoles el acceso a cualquier página web.</li>
<li><span style="font-weight: bold;">La nueva legislación creará inseguridad jurídica en todo el sector tecnológico español</span>, perjudicando uno de los pocos campos de desarrollo y futuro de nuestra economía, entorpeciendo la creación de empresas, introduciendo trabas a la libre competencia y ralentizando su proyección internacional.</li>
<li><span style="font-weight: bold;">La nueva legislación propuesta amenaza a los nuevos creadores y entorpece la creación cultural.</span> Con Internet y los sucesivos avances tecnológicos se ha democratizado extraordinariamente la creación y emisión de contenidos de todo tipo, que ya no provienen prevalentemente de las industrias culturales tradicionales, sino de multitud de fuentes diferentes.</li>
<li><span style="font-weight: bold;">Los autores</span>, como todos los trabajadores,<span style="font-weight: bold;"> tienen derecho a vivir de su trabajo con nuevas ideas creativas, modelos de negocio y actividades</span> asociadas a sus creaciones. Intentar sostener con cambios legislativos a una industria obsoleta que no sabe adaptarse a este nuevo entorno no es ni justo ni realista. Si su modelo de negocio se basaba en el control de las copias de las obras y en Internet no es posible sin vulnerar derechos fundamentales, deberían buscar otro modelo.</li>
<li>Consideramos que <span style="font-weight: bold;">las industrias culturales necesitan para sobrevivir alternativas modernas, eficaces, creíbles y asequibles y que se adecuen a los nuevos usos sociales, </span>en lugar de limitaciones tan desproporcionadas como ineficaces para el fin que dicen perseguir.</li>
<li><span style="font-weight: bold;">Internet debe funcionar de forma libre y sin interferencias políticas</span> auspiciadas por sectores que pretenden perpetuar obsoletos modelos de negocio e imposibilitar que el saber humano siga siendo libre.</li>
<li><span style="font-weight: bold;">Exigimos que el Gobierno garantice por ley la neutralidad de la Red en España,</span> ante cualquier presión que pueda producirse, como marco para el desarrollo de una economía sostenible y realista de cara al futuro.</li>
<li><span style="font-weight: bold;">Proponemos una verdadera reforma del derecho de propiedad intelectual </span>orientada a su fin: devolver a la sociedad el conocimiento, promover el dominio público y limitar los abusos de las entidades gestoras.</li>
<li><span style="font-weight: bold;"><span style="font-weight: normal;"><span style="font-weight: bold;">En democracia las leyes y sus modificaciones deben aprobarse tras el oportuno debate público</span> y habiendo consultado previamente a todas las partes implicadas. No es de recibo que se realicen cambios legislativos que afectan a derechos fundamentales en una ley no orgánica y que versa sobre otra materia.</span></span></li>
</ol>
</blockquote>
<h2  class="related_post_title">Articulos relacionados</h2><ul class="related_post"><li><a href="http://www.emm-gfx.net/2010/02/copia-este-libro/" title="Copia este libro">Copia este libro</a> (0)</li></ul>]]></content:encoded>
			<wfw:commentRss>http://www.emm-gfx.net/2009/12/en-defensa-de-los-derechos-fundamentales-de-internet/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Fátum</title>
		<link>http://www.emm-gfx.net/2009/12/fatum/</link>
		<comments>http://www.emm-gfx.net/2009/12/fatum/#comments</comments>
		<pubDate>Wed, 02 Dec 2009 09:01:00 +0000</pubDate>
		<dc:creator>Josep Viciana</dc:creator>
				<category><![CDATA[Música]]></category>
		<category><![CDATA[Citas]]></category>
		<category><![CDATA[Hardcore]]></category>
		<category><![CDATA[Letras]]></category>

		<guid isPermaLink="false">http://www.emm-gfx.net/?p=563</guid>
		<description><![CDATA[
			
				
			
		
Haz lo que quieras sin esperar aprobación. Haz siempre lo que quieras usando tu razón pero párate y escucha, presta atención: Cada frase y palabra adoctrina e induce. Cada imagen y farsa duerme y cierra a ti y tu destino. Su inducción frena la duda, y es que tus dudas frenan la rueda que te [...]]]></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%2F2009%2F12%2Ffatum%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fwww.emm-gfx.net%2F2009%2F12%2Ffatum%2F&amp;source=emmgfx&amp;style=normal&amp;service=bit.ly" height="61" width="50" /><br />
			</a>
		</div>
<blockquote><p>Haz lo que quieras sin esperar aprobación. Haz siempre lo que quieras usando tu razón pero párate y escucha, presta atención: Cada frase y palabra adoctrina e induce. Cada imagen y farsa duerme y cierra a ti y tu destino. Su inducción frena la duda, y es que tus dudas frenan la rueda que te ciega y encadena, que te ata y amordaza. Y así se rompe la evidencia, nuestro destino ya no es nuestro destino, ahora es parte de la cadena, él es el camino del sistema. Policías y políticos son las putas de la esfera que compran bienestar, que venden tu dignidad callando tu opinión e imponiendo su razón. Su  inducción frena la duda, y es que tus dudas frenan la rueda, la que te ciega y encadena, la que te ata y amordaza a ti y tu destino.</p></blockquote>
<p style="text-align: right;">- para <a href="http://www.myspace.com/lastchancebcn">Last Chance</a></p>
<h2  class="related_post_title">Articulos relacionados</h2><ul class="related_post"><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> (7)</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><li><a href="http://www.emm-gfx.net/2010/02/escuela-de-odio-y-habeas-corpus-a-dolor/" title="Escuela de odio y Habeas corpus: A dolor">Escuela de odio y Habeas corpus: A dolor</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/en-ciernes-de-pericia/" title="En ciernes de pericia">En ciernes de pericia</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/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/2009/11/live-to-win/" title="Live to win">Live to win</a> (0)</li></ul>]]></content:encoded>
			<wfw:commentRss>http://www.emm-gfx.net/2009/12/fatum/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Comportamiento de la pluma en Photoshop CS4</title>
		<link>http://www.emm-gfx.net/2009/12/comportamiento-de-la-pluma-en-photoshop-cs4/</link>
		<comments>http://www.emm-gfx.net/2009/12/comportamiento-de-la-pluma-en-photoshop-cs4/#comments</comments>
		<pubDate>Tue, 01 Dec 2009 19:41:16 +0000</pubDate>
		<dc:creator>Josep Viciana</dc:creator>
				<category><![CDATA[Diseño e ilustración]]></category>
		<category><![CDATA[Diseño]]></category>
		<category><![CDATA[Ilustración]]></category>
		<category><![CDATA[Photoshop]]></category>
		<category><![CDATA[Pluma]]></category>
		<category><![CDATA[Vectores]]></category>

		<guid isPermaLink="false">http://www.emm-gfx.net/?p=554</guid>
		<description><![CDATA[
			
				
			
		
Cuando hago dibujos &#8211; sólo por afición &#8211; y son ilustraciones vectoriales, utilizo la herramienta Pluma &#8211; atajo P -, pero desde que me pasé a la versión CS4 me di cuenta de que el comportamiento de la pluma era diferente. Ya no rellenaba el vector con un color, ahora dejaba la silueta preparada para [...]]]></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%2F2009%2F12%2Fcomportamiento-de-la-pluma-en-photoshop-cs4%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fwww.emm-gfx.net%2F2009%2F12%2Fcomportamiento-de-la-pluma-en-photoshop-cs4%2F&amp;source=emmgfx&amp;style=normal&amp;service=bit.ly" height="61" width="50" /><br />
			</a>
		</div>
<p>Cuando hago dibujos &#8211; <span style="color: #888888;">sólo por afición</span> &#8211; y son ilustraciones vectoriales, utilizo la herramienta Pluma &#8211; <span style="color: #888888;">atajo P</span> -, pero desde que me pasé a la versión CS4 me di cuenta de que el comportamiento de la pluma era diferente. Ya no rellenaba el vector con un color, ahora dejaba la silueta preparada para hacer máscaras, por ejemplo (no sé si lo estoy explicando bien, pero es mas o menos eso). Para que se comporte como lo hacía antes, sólo hay que hacer click en el icono que se ve en la captura de pantalla que acompaña a esta entrada.</p>
<p>Sólo necesitaba saber esto para poder seguir haciendo dibujos, y lo he descubierto gracias a un tal <a href="http://www.youtube.com/user/str0ngbacker" target="_blank">str0ngbacker</a> en <a href="http://www.youtube.com/watch?v=U1MRRo5zpvc" target="_blank">este video</a> que me ha ayudado más que la <a href="http://help.adobe.com/es_ES/Photoshop/11.0/WSfd1234e1c4b69f30ea53e41001031ab64-73ada.html">documentación oficial</a> y recomiendo ver.</p>
<p><a class="fancy" href="http://www.emm-gfx.net/wp-content/uploads/2009/12/pluma-photoshop-cs4.gif"><img title="Pluma Photoshop CS4" src="http://www.emm-gfx.net/wp-content/uploads/2009/12/pluma-photoshop-cs4.gif" alt="Pluma Photoshop CS4" width="582" height="342" border="0" /></a></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></ul>]]></content:encoded>
			<wfw:commentRss>http://www.emm-gfx.net/2009/12/comportamiento-de-la-pluma-en-photoshop-cs4/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
