<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/atom10full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><feed xmlns="http://www.w3.org/2005/Atom" xmlns:thr="http://purl.org/syndication/thread/1.0" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" xml:lang="en" xml:base="http://www.berriart.com/wp-atom.php">
	<title type="text">Berriart</title>
	<subtitle type="text">Un programador hablando de diseño............</subtitle>

	<updated>2009-07-04T14:08:45Z</updated>
	<generator uri="http://wordpress.org/" version="2.8">WordPress</generator>

	<link rel="alternate" type="text/html" href="http://www.berriart.com" />
	<id>http://www.berriart.com/feed/atom/</id>
	

			<geo:lat>43.28082174529978</geo:lat><geo:long>-2.987959384918213</geo:long><link rel="license" type="text/html" href="http://creativecommons.org/licenses/by-nc/2.0/" /><logo>http://creativecommons.org/images/public/somerights20.gif</logo><xhtml:meta xmlns:xhtml="http://www.w3.org/1999/xhtml" name="robots" content="noindex" /><link rel="self" href="http://feeds.feedburner.com/berriart" type="application/atom+xml" /><feedburner:emailServiceId>berriart</feedburner:emailServiceId><feedburner:feedburnerHostname>http://feedburner.google.com</feedburner:feedburnerHostname><entry>
		<author>
			<name>artberri</name>
						<uri>http://www.berriart.com</uri>
					</author>
		<title type="html"><![CDATA[Hay muchas maneras de decir las cosas]]></title>
		<link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/berriart/~3/pNd6GHZJ5Es/" />
		<id>http://www.berriart.com/?p=491</id>
		<updated>2009-07-04T14:08:45Z</updated>
		<published>2009-07-04T14:06:20Z</published>
		<category scheme="http://www.berriart.com" term="Noticias" /><category scheme="http://www.berriart.com" term="berriart" /><category scheme="http://www.berriart.com" term="humor" /><category scheme="http://www.berriart.com" term="vacaciones" />		<summary type="html"><![CDATA[&#60;?php
/**
 * Notification to Berriart readers
 *
 * @package blog
 * @author Alberto Varela (artberri)
 * @version 2.0
 */

$artberri = new myself();

while( time() > strtotime("2009-07-03 19:00:00") &#038;&#038; time() < strtotime("2009-07-15 09:30:00") ) {
	holidays($artberri);
}

function holidays($people) {
	if( time() > strtotime("2009-07-06 13:00:00") &#038;&#038; time() < strtotime("2009-07-13 19:30:00") ) {
		holidays_in_menorca($people);
	}
	else {
		$people->eat();
		if( !$people->istired() &#038;&#038; $people->isbored() ) {
			$people->party();
		}
		sleep(8*3600);
	}
}

function holidays_in_menorca($people) {
	$people->beach();
	$people->eat();
	$people->beach();
	if( !$people->istired() [...]]]></summary>
		<content type="html" xml:base="http://www.berriart.com/2009/07/04/hay-muchas-maneras-de-decir-las-cosas/">&lt;pre name="code" class="php"&gt;&amp;lt;?php
/**
 * Notification to Berriart readers
 *
 * @package blog
 * @author Alberto Varela (artberri)
 * @version 2.0
 */

$artberri = new myself();

while( time() &gt; strtotime("2009-07-03 19:00:00") &amp;#038;&amp;#038; time() &lt; strtotime("2009-07-15 09:30:00") ) {
	holidays($artberri);
}

function holidays($people) {
	if( time() &gt; strtotime("2009-07-06 13:00:00") &amp;#038;&amp;#038; time() &lt; strtotime("2009-07-13 19:30:00") ) {
		holidays_in_menorca($people);
	}
	else {
		$people-&gt;eat();
		if( !$people-&gt;istired() &amp;#038;&amp;#038; $people-&gt;isbored() ) {
			$people-&gt;party();
		}
		sleep(8*3600);
	}
}

function holidays_in_menorca($people) {
	$people-&gt;beach();
	$people-&gt;eat();
	$people-&gt;beach();
	if( !$people-&gt;istired() &amp;#038;&amp;#038; $people-&gt;isbored() ) {
		$people-&gt;party();
	}
	sleep(8*3600);
}

?&amp;gt;&lt;/pre&gt;
&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/berriart?a=pNd6GHZJ5Es:-bxgnNyZ8Y4:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/berriart?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/berriart?a=pNd6GHZJ5Es:-bxgnNyZ8Y4:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/berriart?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/berriart?a=pNd6GHZJ5Es:-bxgnNyZ8Y4:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/berriart?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/berriart?a=pNd6GHZJ5Es:-bxgnNyZ8Y4:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/berriart?i=pNd6GHZJ5Es:-bxgnNyZ8Y4:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/berriart?a=pNd6GHZJ5Es:-bxgnNyZ8Y4:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/berriart?i=pNd6GHZJ5Es:-bxgnNyZ8Y4:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/berriart/~4/pNd6GHZJ5Es" height="1" width="1"/&gt;</content>
		<link rel="replies" type="text/html" href="http://www.berriart.com/2009/07/04/hay-muchas-maneras-de-decir-las-cosas/#comments" thr:count="2" />
		<link rel="replies" type="application/atom+xml" href="http://www.berriart.com/2009/07/04/hay-muchas-maneras-de-decir-las-cosas/feed/atom/" thr:count="2" />
		<thr:total>2</thr:total>
	<feedburner:origLink>http://www.berriart.com/2009/07/04/hay-muchas-maneras-de-decir-las-cosas/</feedburner:origLink></entry>
		<entry>
		<author>
			<name>artberri</name>
						<uri>http://www.berriart.com</uri>
					</author>
		<title type="html"><![CDATA[Protege y ayuda a proteger la privacidad de tus fotos en Facebook]]></title>
		<link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/berriart/~3/NvyDTq85xlo/" />
		<id>http://www.berriart.com/?p=488</id>
		<updated>2009-06-22T22:31:20Z</updated>
		<published>2009-06-22T22:30:19Z</published>
		<category scheme="http://www.berriart.com" term="Aplicaciones web" /><category scheme="http://www.berriart.com" term="Noticias" /><category scheme="http://www.berriart.com" term="aplicación" /><category scheme="http://www.berriart.com" term="Facebook" /><category scheme="http://www.berriart.com" term="privacidad" />		<summary type="html"><![CDATA[Lo de la privacidad en internet es un tema sobre el que se podrían estar horas hablando, pero hay ciertas cosas que creo que son muy fáciles de evitar sin necesidad de tanta discusión. Me he enterado que los álbumes de fotos que subimos a Facebook quedan marcados por defecto como públicos, lo que quiere [...]]]></summary>
		<content type="html" xml:base="http://www.berriart.com/2009/06/23/protege-privacidad-fotos-facebook/">&lt;p&gt;Lo de la privacidad en internet es un tema sobre el que se podrían estar horas hablando, pero hay ciertas cosas que creo que son muy fáciles de evitar sin necesidad de tanta discusión. Me he enterado que los álbumes de fotos que subimos a Facebook quedan marcados por defecto como públicos, lo que quiere decir que cualquier persona puede ver esas fotos. Me parece un asunto grave porque la mayoría de la gente piensa que solo sus amigos podrán ver esas fotos, pero no es así, y hay fotos que la gente no subiría si supiese que cualquiera puede verlas (lo he preguntado entre amigos del barrio y el 100% de encuestados pensaba que solo sus amigos veían sus fotos, o como mucho amigos de amigos). Este problema me parece que hubiera sido (y es) muy fácil de evitar, pero alguna razón les llevaría a la gente de Facebook a hacerlo (no quiero pensar cual).&lt;/p&gt;
&lt;p&gt;De esto me enteré gracias a &lt;a href="http://www.blogoff.es/2009/05/25/facebook-permite-ver-los-albumes-de-fotos-de-cualquiera/"&gt;un post en Blogoff&lt;/a&gt; en el que en principio se trataba el asunto como si fuera un bug de FB, lo que cualquiera hubiera pensado al saber algo así, y no una cuestión de privacidad. Pero teniendo en cuenta que la mayoría de users de Facebook no se interesan en leer sobre esas cosas en internet, he pensado en otra manera de hacerles llegar esa noticia y de avisarles para que protejan sus fotos cambiando la privacidad a sus álbumes.&lt;/p&gt;
&lt;p&gt;Lo que he hecho ha sido crear una aplicación para FB que avisa sobre ello y ayuda a configurar tus álbumes para que solo los vean tus amigos. Además te sugiere que invites a tus amigos para que ellos también protejan sus fotos. Creo que es una manera de llegar a más gente, si todo va bien y la gente se la agrega y avisa a sus amigos mediante invitación. La aplicación la os la podéis agregar pinchando en esta URL:&lt;/p&gt;
&lt;p&gt;&lt;a href="http://apps.facebook.com/tu-privacidad/"&gt;http://apps.facebook.com/tu-privacidad/&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Ya me diréis que os parece y si vuestros albumes eran públicos o no.&lt;/p&gt;
&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/berriart?a=NvyDTq85xlo:TPmUEtjYMuc:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/berriart?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/berriart?a=NvyDTq85xlo:TPmUEtjYMuc:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/berriart?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/berriart?a=NvyDTq85xlo:TPmUEtjYMuc:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/berriart?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/berriart?a=NvyDTq85xlo:TPmUEtjYMuc:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/berriart?i=NvyDTq85xlo:TPmUEtjYMuc:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/berriart?a=NvyDTq85xlo:TPmUEtjYMuc:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/berriart?i=NvyDTq85xlo:TPmUEtjYMuc:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/berriart/~4/NvyDTq85xlo" height="1" width="1"/&gt;</content>
		<link rel="replies" type="text/html" href="http://www.berriart.com/2009/06/23/protege-privacidad-fotos-facebook/#comments" thr:count="3" />
		<link rel="replies" type="application/atom+xml" href="http://www.berriart.com/2009/06/23/protege-privacidad-fotos-facebook/feed/atom/" thr:count="3" />
		<thr:total>3</thr:total>
	<feedburner:origLink>http://www.berriart.com/2009/06/23/protege-privacidad-fotos-facebook/</feedburner:origLink></entry>
		<entry>
		<author>
			<name>artberri</name>
						<uri>http://www.berriart.com</uri>
					</author>
		<title type="html"><![CDATA[Clase PHP para la nueva API de Minube]]></title>
		<link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/berriart/~3/s0RQyynbv5o/" />
		<id>http://www.berriart.com/?p=483</id>
		<updated>2009-06-17T08:26:54Z</updated>
		<published>2009-06-17T08:26:54Z</published>
		<category scheme="http://www.berriart.com" term="Aplicaciones web" /><category scheme="http://www.berriart.com" term="Desarrollo web" /><category scheme="http://www.berriart.com" term="Recursos" /><category scheme="http://www.berriart.com" term="API" /><category scheme="http://www.berriart.com" term="clase" /><category scheme="http://www.berriart.com" term="minube" /><category scheme="http://www.berriart.com" term="php" />		<summary type="html"><![CDATA[Últimamente a las startups españolas les ha dado por crear APIs para que todos podamos utilizar sus datos, crear mashups,&#8230; Ya lo hicieron 11870, nvivo, bitacoras,&#8230; y ahora le ha tocado el turno a Minube. Personalmente me parece estupendo, ya sabemos todos lo que nos enseñaron de pequeñitos, compartir es bueno.
Pues aprovechando esta salida, y [...]]]></summary>
		<content type="html" xml:base="http://www.berriart.com/2009/06/17/clase-php-api-minube/">&lt;p&gt;Últimamente a las &lt;em&gt;startups&lt;/em&gt; españolas les ha dado por crear APIs para que todos podamos utilizar sus datos, crear mashups,&amp;#8230; Ya lo hicieron &lt;a href="http://11870.com"&gt;11870&lt;/a&gt;, &lt;a href="http://www.nvivo.es/"&gt;nvivo&lt;/a&gt;, &lt;a href="http://bitacoras.com"&gt;bitacoras&lt;/a&gt;,&amp;#8230; y ahora le ha tocado el turno a &lt;a href="http://www.minube.com"&gt;Minube&lt;/a&gt;. Personalmente me parece estupendo, ya sabemos todos lo que nos enseñaron de pequeñitos, compartir es bueno.&lt;/p&gt;
&lt;p&gt;&lt;a style="float:left; margin:0 5px 5px 0;" href="http://www.minube.com/api/"&gt;&lt;img src="http://1.images.minube.com/minube_api_01.png" alt="Powered by Minube" title="Powered by Minube"  style="border:0px;vertical-align:bottom;" /&gt;&lt;/a&gt;Pues aprovechando esta salida, y teniendo en cuenta que se me ha ocurrido una semi-idea para la que tal vez pueda usar esta API, he creado una clase en PHP para facilitar su manejo, &lt;a href="http://www.berriart.com/minube-php/"&gt;Minube PHP&lt;/a&gt;. Teniendo en cuenta que la idea puede no llegar  nada o quedarse aparcada como tantas otras cosas, he creido conveniente publicar la clase para que otros que si vayan a llevar a cabo las suyas se ahorren el trabajo.&lt;/p&gt;
&lt;p&gt;Minube PHP: &lt;a href="http://www.berriart.com/minube-php/"&gt;http://www.berriart.com/minube-php/&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;(Hace más de un mes que no escribía en el blog, soy un poco vago ¿verdad?)&lt;/p&gt;
&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/berriart?a=s0RQyynbv5o:N5qGxX7wcJs:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/berriart?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/berriart?a=s0RQyynbv5o:N5qGxX7wcJs:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/berriart?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/berriart?a=s0RQyynbv5o:N5qGxX7wcJs:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/berriart?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/berriart?a=s0RQyynbv5o:N5qGxX7wcJs:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/berriart?i=s0RQyynbv5o:N5qGxX7wcJs:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/berriart?a=s0RQyynbv5o:N5qGxX7wcJs:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/berriart?i=s0RQyynbv5o:N5qGxX7wcJs:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/berriart/~4/s0RQyynbv5o" height="1" width="1"/&gt;</content>
		<link rel="replies" type="text/html" href="http://www.berriart.com/2009/06/17/clase-php-api-minube/#comments" thr:count="3" />
		<link rel="replies" type="application/atom+xml" href="http://www.berriart.com/2009/06/17/clase-php-api-minube/feed/atom/" thr:count="3" />
		<thr:total>3</thr:total>
	<feedburner:origLink>http://www.berriart.com/2009/06/17/clase-php-api-minube/</feedburner:origLink></entry>
		<entry>
		<author>
			<name>artberri</name>
						<uri>http://www.berriart.com</uri>
					</author>
		<title type="html"><![CDATA[Ajustar el centro y el zoom de un listado de puntos con Google Maps]]></title>
		<link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/berriart/~3/YHwYL6FDX00/" />
		<id>http://www.berriart.com/?p=477</id>
		<updated>2009-05-13T13:26:48Z</updated>
		<published>2009-05-13T13:25:55Z</published>
		<category scheme="http://www.berriart.com" term="Desarrollo web" /><category scheme="http://www.berriart.com" term="Programación" /><category scheme="http://www.berriart.com" term="centro" /><category scheme="http://www.berriart.com" term="google maps" /><category scheme="http://www.berriart.com" term="javascript" /><category scheme="http://www.berriart.com" term="zoom" />		<summary type="html"><![CDATA[Sé que ando tarde, pero son cosas que pasan. Cuando tenía que mostrar un listado de puntos en un mapa usando la API de Google Maps, siempre he tenido ciertos problemas para ajustar en lo posible el mapa a los puntos mostrados. Es decir, encontraba problemas en elegir el centro y el zoom exacto para [...]]]></summary>
		<content type="html" xml:base="http://www.berriart.com/2009/05/13/ajustar-el-centro-y-el-zoom-de-un-listado-de-puntos-con-google-maps/">&lt;p&gt;Sé que ando tarde, pero son cosas que pasan. Cuando tenía que mostrar un listado de puntos en un mapa usando la API de Google Maps, siempre he tenido ciertos problemas para ajustar en lo posible el mapa a los puntos mostrados. Es decir, encontraba problemas en elegir el centro y el zoom exacto para que se vieran todos los puntos lo más cerca posible. Para conseguirlo usaba un par de funciones en PHP y realizaba el cálculo &lt;em&gt;server side&lt;/em&gt;, aunque no siempre conseguía el resultado perfecto.&lt;/p&gt;
&lt;p&gt;Bueno, pues hace poco que me he enterado que la propia API de Google Maps te permite hacerlo sin muchas complicaciones. Así que por si acaso hay por ahí algún despistadillo como yo que se páis que lo podéis hacer de la siguiente manera (más abajo hay un ejemplo completo):&lt;/p&gt;
&lt;pre class="javascript"&gt;
/* Primero seteamos el centro a cualquier punto */
map.setCenter(new GLatLng(0,0),0);

/* Creamos un objeto vacio GLatLngBounds() */
var bounds = new GLatLngBounds();

/* Por cada uno de los puntos a incluir en el mapa extendemos los límites del objeto */
/* En este caso latlng debería ser un objeto GLatLng */
/* Ejemplo: var latlng = new GLatLng(43, -2); */
bounds.extend(latlng);

/* Cuando hayamos incluido todos los puntos seteamos el centro y el zoom usando el objeto 'bounds' */
map.setZoom(map.getBoundsZoomLevel(bounds));
map.setCenter(bounds.getCenter());
&lt;/pre&gt;
&lt;p&gt;Su modo de empleo se puede ver mejor en el siguiente ejemplo. Aprovechando que hoy se jugará la final de Copa, he creado un pequeño mapita con los puntos de Bilbao donde habrá pantallas gigantes para seguir el partido de mi querido Athletic contra el Barça, el zoom y el centro del mapa se calculan usando el método que he explicado más arriba.&lt;/p&gt;
&lt;p&gt;&lt;a href="http://www.berriart.com/examples/ajustar-centro-y-zoom-google-maps.html"&gt;http://www.berriart.com/examples/ajustar-centro-y-zoom-google-maps.html&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Y ya puestos, os comento a los twitteros del Athletic que podéis conseguir una camiseta oficial gracias a &lt;a href="http://bilbao.bi"&gt;Bilbao.bi&lt;/a&gt; si estos días comentáis la final por Twitter. Para obtener más información&lt;a href="http://bilbao.bi/copa_athletic"&gt; seguir el siguiente enlace&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Si estos días no me véis por &lt;em&gt;la internete&lt;/em&gt; es que hemos ganado la copa &lt;img src='http://www.berriart.com/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /&gt;  Athletic, beti zurekin!&lt;/p&gt;
&lt;p&gt;&lt;img src="http://www.berriart.com/wp-content/uploads/2009/05/athletic-campeon.jpg" alt="athletic campeon de copa" width="550" height="389" style="display:block;margin:auto;" /&gt;&lt;/p&gt;
&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/berriart?a=YHwYL6FDX00:Rfv4SxPvts8:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/berriart?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/berriart?a=YHwYL6FDX00:Rfv4SxPvts8:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/berriart?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/berriart?a=YHwYL6FDX00:Rfv4SxPvts8:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/berriart?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/berriart?a=YHwYL6FDX00:Rfv4SxPvts8:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/berriart?i=YHwYL6FDX00:Rfv4SxPvts8:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/berriart?a=YHwYL6FDX00:Rfv4SxPvts8:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/berriart?i=YHwYL6FDX00:Rfv4SxPvts8:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/berriart/~4/YHwYL6FDX00" height="1" width="1"/&gt;</content>
		<link rel="replies" type="text/html" href="http://www.berriart.com/2009/05/13/ajustar-el-centro-y-el-zoom-de-un-listado-de-puntos-con-google-maps/#comments" thr:count="1" />
		<link rel="replies" type="application/atom+xml" href="http://www.berriart.com/2009/05/13/ajustar-el-centro-y-el-zoom-de-un-listado-de-puntos-con-google-maps/feed/atom/" thr:count="1" />
		<thr:total>1</thr:total>
	<feedburner:origLink>http://www.berriart.com/2009/05/13/ajustar-el-centro-y-el-zoom-de-un-listado-de-puntos-con-google-maps/</feedburner:origLink></entry>
		<entry>
		<author>
			<name>artberri</name>
						<uri>http://www.berriart.com</uri>
					</author>
		<title type="html"><![CDATA[Hook al activar o desacivar un plugin de WordPress]]></title>
		<link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/berriart/~3/bqXriM-Ynzk/" />
		<id>http://www.berriart.com/?p=473</id>
		<updated>2009-05-05T22:51:25Z</updated>
		<published>2009-05-05T22:49:47Z</published>
		<category scheme="http://www.berriart.com" term="Desarrollo web" /><category scheme="http://www.berriart.com" term="Plugins" /><category scheme="http://www.berriart.com" term="Tutoriales" /><category scheme="http://www.berriart.com" term="Web 2.0" /><category scheme="http://www.berriart.com" term="WordPress" /><category scheme="http://www.berriart.com" term="activar" /><category scheme="http://www.berriart.com" term="funciones" /><category scheme="http://www.berriart.com" term="plugins de wordpress" />		<summary type="html"><![CDATA[Si eres desarrollador de plugins de WordPress, te habrá pasado alguna vez que has querido que se ejecute alguna acción cuando un usuario instala uno de tus plugins o cuando lo desinstala. Un ejemplo claro es que tu plugin necesite una tabla de base de datos adicional, y necesite que ésta se cree al activar [...]]]></summary>
		<content type="html" xml:base="http://www.berriart.com/2009/05/06/hook-activar-desactivar-plugin/">&lt;p&gt;Si eres desarrollador de plugins de WordPress, te habrá pasado alguna vez que has querido que se ejecute alguna acción cuando un usuario instala uno de tus plugins o cuando lo desinstala. Un ejemplo claro es que tu plugin necesite una tabla de base de datos adicional, y necesite que ésta se cree al activar el plugin. Al igual que al desinstalar el plugin podría ser que esa tabla ya no sirva y quieras que se borre.&lt;/p&gt;
&lt;p&gt;Para ello Wordpress nos ofrece dos funciones que nos permitirán que se ejecute algo al activar o desactivar un plugin, estas funciones son &lt;em&gt;register_activation_hook&lt;/em&gt; y &lt;em&gt;register_deactivation_hook&lt;/em&gt;. Se puede ver su modo de empleo en las siguientes líneas de código que simulan la situación que he expuesto antes:&lt;/p&gt;
&lt;pre name="code" class="php"&gt;&amp;lt;?php

register_activation_hook( __FILE__, 'plugin_name_activate' );
register_deactivation_hook( __FILE__, 'plugin_name_deactivate' );

function plugin_name_activate() {
	global $wpdb;
	$sql = 'CREATE TABLE `' . $wpdb-&gt;prefix . 'plugin_name`
		( `id` INT( 11 ) NOT NULL AUTO_INCREMENT PRIMARY KEY ,
		`date` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ,
		`otro` VARCHAR( 255 ) NOT NULL )
	';
	$wpdb-&gt;query($sql);

}

function plugin_name_deactivate() {
	global $wpdb;
	$sql = 'DROP TABLE `' . $wpdb-&gt;prefix . 'plugin_name`';
	$wpdb-&gt;query($sql);

}

?&amp;gt;&lt;/pre&gt;
&lt;p&gt;A mi me han sido de utilidad en más de una ocasión, ya me contaréis.&lt;/p&gt;
&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/berriart?a=bqXriM-Ynzk:mAb4QuuKjYo:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/berriart?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/berriart?a=bqXriM-Ynzk:mAb4QuuKjYo:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/berriart?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/berriart?a=bqXriM-Ynzk:mAb4QuuKjYo:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/berriart?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/berriart?a=bqXriM-Ynzk:mAb4QuuKjYo:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/berriart?i=bqXriM-Ynzk:mAb4QuuKjYo:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/berriart?a=bqXriM-Ynzk:mAb4QuuKjYo:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/berriart?i=bqXriM-Ynzk:mAb4QuuKjYo:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/berriart/~4/bqXriM-Ynzk" height="1" width="1"/&gt;</content>
		<link rel="replies" type="text/html" href="http://www.berriart.com/2009/05/06/hook-activar-desactivar-plugin/#comments" thr:count="1" />
		<link rel="replies" type="application/atom+xml" href="http://www.berriart.com/2009/05/06/hook-activar-desactivar-plugin/feed/atom/" thr:count="1" />
		<thr:total>1</thr:total>
	<feedburner:origLink>http://www.berriart.com/2009/05/06/hook-activar-desactivar-plugin/</feedburner:origLink></entry>
		<entry>
		<author>
			<name>artberri</name>
						<uri>http://www.berriart.com</uri>
					</author>
		<title type="html"><![CDATA[Concatenar dentro de la propia consulta en MySQL]]></title>
		<link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/berriart/~3/vyCZStj6170/" />
		<id>http://www.berriart.com/?p=470</id>
		<updated>2009-04-29T08:35:31Z</updated>
		<published>2009-04-29T08:35:31Z</published>
		<category scheme="http://www.berriart.com" term="Desarrollo web" /><category scheme="http://www.berriart.com" term="Programación" /><category scheme="http://www.berriart.com" term="bases de datos" /><category scheme="http://www.berriart.com" term="concatenar" /><category scheme="http://www.berriart.com" term="consultas" /><category scheme="http://www.berriart.com" term="mysql" />		<summary type="html"><![CDATA[Me estoy empezando a acostumbrar a buscar soluciones a mis necesidades desde la propia consulta a la BD. Antes me limitaba a realizar consultas INSERT, UPDATE, SELECT o DELETE de lo más normales, y una vez recibidos los datos los trataba mediante PHP. Incluso en mis inicios, para hacer una media o buscar el máximo [...]]]></summary>
		<content type="html" xml:base="http://www.berriart.com/2009/04/29/concatenar-dentro-de-la-propia-consulta-en-mysql/">&lt;p&gt;Me estoy empezando a acostumbrar a buscar soluciones a mis necesidades desde la propia consulta a la BD. Antes me limitaba a realizar consultas &lt;em&gt;INSERT&lt;/em&gt;, &lt;em&gt;UPDATE&lt;/em&gt;, &lt;em&gt;SELECT&lt;/em&gt; o &lt;em&gt;DELETE&lt;/em&gt; de lo más normales, y una vez recibidos los datos los trataba mediante PHP. Incluso en mis inicios, para hacer una media o buscar el máximo consultaba todos los datos y sacaba la solución programando en vez de usar algo tan simple como &lt;em&gt;AVG&lt;/em&gt; o &lt;em&gt;MAX&lt;/em&gt; en la consulta. Imagino que tampoco es tan raro cuando empiezas y cuando nadie te ha explicado que se puede hacer de otra manera.&lt;/p&gt;
&lt;p&gt;Pero concatenar era algo que creo que nunca había necesitado -aunque sabía que podía hacerlo-, y esta semana en cambio he tenido que probar a ver que tal. Además, al final incluso he acabado usando una función que desconocía, &lt;em&gt;GROUP_CONCAT&lt;/em&gt;, en vez de la más conocida &lt;em&gt;CONCAT&lt;/em&gt;.&lt;/p&gt;
&lt;p&gt;Imaginemos que queremos un string con la dirección completa de un lugar y que tenemos esa información guardada en una tabla, pero tenemos guardados por separado la dirección, el código postal, la ciudad y la provincia. Puedes hacer una SELECT, pedirle todos los datos y concatenarlos al gusto mediante PHP. Pero también podemos recibir los datos ya formateados de la propia consulta utilizando &lt;em&gt;CONCAT&lt;/em&gt;, por ejemplo:&lt;/p&gt;
&lt;p&gt;&lt;code&gt;SELECT CONCAT( `direccion`, ' - ', `ciudad`, '/', `codigopostal`, ' (', `provincia`, ')' ) as `address` FROM `places` WHERE `id` = '123'&lt;br /&gt;
Nos devolvería algo así: "C/ La Paz, 43 - Barakaldo/48903 (Bizkaia)"&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;También puede que queramos juntar varios campos en un string, separados todos por el mismo caracter o caracteres. Para eso, lo mejor sería usar &lt;em&gt;CONCAT_WS&lt;/em&gt;, dónde el primer parametro que le pasamos es el separador que concatenará el resto de parametros de la función. Vamos a poner otro ejemplo:&lt;/p&gt;
&lt;p&gt;&lt;code&gt;SELECT CONCAT_WS( ', ', `telefono_personal`, `telefono_trabajo`, `movil`, `fax` ) as `telephone_list` FROM `listing` WHERE `id` = '123'&lt;br /&gt;
Nos devolvería algo así: "945678345, 91234567, 612312389, 911234234"&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;El último caso para el que voy a poner otro ejemplo es para el uso de &lt;em&gt;GROUP_CONCAT&lt;/em&gt;. Imagina que tenemos un tabla de posts, y una tabla de tags relacionada con los posts. Es decir cada uno de los posts puede tener uno, ninguno o varios tags. Y nuestro objetivo en este caso, es sacar de una sola consulta un listado con los títulos de los posts y todos los tags asociados a este. Se podría hacer con una serie de consultas y PHP, pero también lo podemos hacer de una sola (lo hacemos así porque una INNER JOIN no sacaría los posts que no tuvieran tags asociados y una LEFT JOIN nos saquería una fila por cada tag y lo que queremos es una fila por cada post):&lt;/p&gt;
&lt;p&gt;&lt;code&gt;SELECT posts.title, (SELECT GROUP_CONCAT(tags.name) FROM tags WHERE posts.id = tags.post_id) AS `alltags` FROM posts&lt;br /&gt;
Nos devolvería algo así:&lt;br /&gt;
"Tïtulo del primer post", "tag1, tag2, tag3, tag4"&lt;br /&gt;
"Post sin tags", NULL&lt;br /&gt;
"Este sería otro post", "tag3, tag4, tag1"&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;No sé si os servirá de mucha ayuda, pero al menos, recordaros a todos que &lt;a href="http://dev.mysql.com/doc/refman/5.0/es/string-functions.html"&gt;MySQL tiene funciones para strings&lt;/a&gt; y que muchas veces pueden ayudarnos y ahorrarnos un poco de código.&lt;/p&gt;
&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/berriart?a=vyCZStj6170:wN8rqCPxX0U:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/berriart?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/berriart?a=vyCZStj6170:wN8rqCPxX0U:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/berriart?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/berriart?a=vyCZStj6170:wN8rqCPxX0U:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/berriart?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/berriart?a=vyCZStj6170:wN8rqCPxX0U:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/berriart?i=vyCZStj6170:wN8rqCPxX0U:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/berriart?a=vyCZStj6170:wN8rqCPxX0U:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/berriart?i=vyCZStj6170:wN8rqCPxX0U:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/berriart/~4/vyCZStj6170" height="1" width="1"/&gt;</content>
		<link rel="replies" type="text/html" href="http://www.berriart.com/2009/04/29/concatenar-dentro-de-la-propia-consulta-en-mysql/#comments" thr:count="4" />
		<link rel="replies" type="application/atom+xml" href="http://www.berriart.com/2009/04/29/concatenar-dentro-de-la-propia-consulta-en-mysql/feed/atom/" thr:count="4" />
		<thr:total>4</thr:total>
	<feedburner:origLink>http://www.berriart.com/2009/04/29/concatenar-dentro-de-la-propia-consulta-en-mysql/</feedburner:origLink></entry>
		<entry>
		<author>
			<name>artberri</name>
						<uri>http://www.berriart.com</uri>
					</author>
		<title type="html"><![CDATA[Este finde Nonick Conference]]></title>
		<link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/berriart/~3/xyD0__kMX08/" />
		<id>http://www.berriart.com/?p=468</id>
		<updated>2009-04-24T10:04:54Z</updated>
		<published>2009-04-24T10:04:54Z</published>
		<category scheme="http://www.berriart.com" term="Noticias" /><category scheme="http://www.berriart.com" term="evento" /><category scheme="http://www.berriart.com" term="internet" /><category scheme="http://www.berriart.com" term="nonick" /><category scheme="http://www.berriart.com" term="vídeo" />		<summary type="html"><![CDATA[Hoy (yo solo a la tarde) y mañana estaré en Nonick Conference en Bilbao. Es un evento sobre Internet, muy centrado en el vídeo en la red. Al principio me echaba un poco para atrás el que el evento fuera en inglés, pero al final me he animado. Así que por allí estaré.
También asistirán Raquel, [...]]]></summary>
		<content type="html" xml:base="http://www.berriart.com/2009/04/24/este-finde-nonick-conference/">&lt;p&gt;Hoy (yo solo a la tarde) y mañana estaré en &lt;a href="http://nonickconference.com/"&gt;Nonick Conference&lt;/a&gt; en Bilbao. Es un evento sobre Internet, muy centrado en el vídeo en la red. Al principio me echaba un poco para atrás el que el evento fuera en inglés, pero al final me he animado. Así que por allí estaré.&lt;/p&gt;
&lt;p&gt;También asistirán &lt;a href="http://www.seofemenino.com/"&gt;Raquel&lt;/a&gt;, &lt;a href="http://www.galder.net"&gt;Galder&lt;/a&gt;, &amp;#8230; y algún que otro blogger local. ¿Alguno de vosotros va a estar? Para los que no podáis asistir tenéis la opción de ver parte del &lt;a href="http://nonickconference.com/"&gt;evento en straming desde la web&lt;/a&gt;.&lt;/p&gt;
&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/berriart?a=xyD0__kMX08:eOhaaHpkAKY:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/berriart?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/berriart?a=xyD0__kMX08:eOhaaHpkAKY:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/berriart?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/berriart?a=xyD0__kMX08:eOhaaHpkAKY:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/berriart?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/berriart?a=xyD0__kMX08:eOhaaHpkAKY:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/berriart?i=xyD0__kMX08:eOhaaHpkAKY:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/berriart?a=xyD0__kMX08:eOhaaHpkAKY:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/berriart?i=xyD0__kMX08:eOhaaHpkAKY:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/berriart/~4/xyD0__kMX08" height="1" width="1"/&gt;</content>
		<link rel="replies" type="text/html" href="http://www.berriart.com/2009/04/24/este-finde-nonick-conference/#comments" thr:count="3" />
		<link rel="replies" type="application/atom+xml" href="http://www.berriart.com/2009/04/24/este-finde-nonick-conference/feed/atom/" thr:count="3" />
		<thr:total>3</thr:total>
	<feedburner:origLink>http://www.berriart.com/2009/04/24/este-finde-nonick-conference/</feedburner:origLink></entry>
		<entry>
		<author>
			<name>artberri</name>
						<uri>http://www.berriart.com</uri>
					</author>
		<title type="html"><![CDATA[Mejorar con GIMP las fotos tomadas desde un avión]]></title>
		<link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/berriart/~3/ZHX0zi8BCgo/" />
		<id>http://www.berriart.com/?p=456</id>
		<updated>2009-04-23T23:09:29Z</updated>
		<published>2009-04-23T23:09:29Z</published>
		<category scheme="http://www.berriart.com" term="Gimp" /><category scheme="http://www.berriart.com" term="Tutoriales" /><category scheme="http://www.berriart.com" term="avión" /><category scheme="http://www.berriart.com" term="fotos" /><category scheme="http://www.berriart.com" term="tutorial" />		<summary type="html"><![CDATA[Una de las cosas que más molan de ir en el asiento con ventanilla de un avión es poder sacar fotos aéreas, aunque te pase como a mi, que siempre que se puede sacar algo chulo estoy mirando para otro lado, sin pilas o con la cámara muy a desmano (en la maleta facturada por [...]]]></summary>
		<content type="html" xml:base="http://www.berriart.com/2009/04/24/mejorar-con-gimp-las-fotos-tomadas-desde-un-avion/">&lt;p&gt;Una de las cosas que más &lt;em&gt;molan&lt;/em&gt; de ir en el asiento con ventanilla de un avión es poder sacar fotos aéreas, aunque te pase como a mi, que siempre que se puede sacar algo chulo estoy mirando para otro lado, sin pilas o con la cámara muy a desmano (en la maleta facturada por ejemplo). Pero existe un problema a la hora de sacar esas fotos y es que, gracias a la ventanilla y algún que otro factor, salen muy descoloridas o como si tuvieran una cortinilla gris delante.&lt;/p&gt;
&lt;p&gt;Pero como bien dice Helen Bradley en este &lt;a href="http://www.projectwoman.com/2009/02/photoshop-fixing-photos-shot-from.html"&gt;tutorial para photoshop&lt;/a&gt; en el que me he inspirado totalmente (ahora se dice así), hay pocas cosas que el Photoshop no pueda arreglar, o en este caso, el GIMP. Así que a continuación os explico como podéis arreglar una foto de ventanilla de avión con GIMP. Ésto sería un ejemplo:&lt;/p&gt;
&lt;p&gt;&lt;a href="http://www.berriart.com/wp-content/uploads/2009/04/tutorial-gimp.jpg"&gt;&lt;img src="http://www.berriart.com/wp-content/uploads/2009/04/tutorial-gimp-600x838.jpg" alt="tutorial-gimp" title="tutorial-gimp" width="600" height="838" class="size-medium wp-image-457" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Coger alguna de las fotos de avión de vuestros viajes y abrirla con el GIMP que empezamos.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Paso 1&lt;/strong&gt;&lt;br /&gt;
Empezamos haciendo un duplicado de la capa de fondo para trabajar sobre él, y dejamos debajo el original por si luego lo necesitamos. Para ello, podemos pulsar en el botón de duplicar capa, hacerlo desde el menú &lt;em&gt;Capa&lt;/em&gt; o pulsar &lt;em&gt;Shift+Ctrl+D&lt;/em&gt;.&lt;/p&gt;
&lt;p&gt;&lt;a href="http://www.berriart.com/wp-content/uploads/2009/04/duplicar.png"&gt;&lt;img src="http://www.berriart.com/wp-content/uploads/2009/04/duplicar-600x375.png" alt="duplicar capa" title="duplicar capa" width="600" height="375" class="size-medium wp-image-458" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Paso 2&lt;/strong&gt;&lt;br /&gt;
Seleccionamos la capa superior (sobre la que vamos a trabajar) y vamos al menú &lt;em&gt;Colores-&gt;Niveles&lt;/em&gt;. El histograma de niveles te dice mucho sobre el estado de la imagen. En la mayoría de estos casos faltara blanco y negro, y la curva se verá concentrada en el centro. Así que para arreglarlo vamos a arrastrar los &amp;#8217;sliders&amp;#8217; laterales -negro y blanco- hasta donde comienza la curva por cada uno de los lados. Al hacerlo se debería ver perfectamente un aumento en el contraste y un poco en el color también. Aceptamos y seguimos.&lt;/p&gt;
&lt;p&gt;&lt;a href="http://www.berriart.com/wp-content/uploads/2009/04/niveles.png"&gt;&lt;img src="http://www.berriart.com/wp-content/uploads/2009/04/niveles-600x375.png" alt="niveles" title="niveles" width="600" height="375" class="alignnone size-medium wp-image-460" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Paso 3&lt;/strong&gt;&lt;br /&gt;
Arreglar problemas con el color. Con frecuencia, la imagen tendrá demasiado azul (u otro problema de tonalidad) y se puede arreglar mediante un ajuste de curvas, así que vamos al menú  &lt;em&gt;Colores-&gt;Curvas&lt;/em&gt;. Del desplegable de canales, vamos seleccionando el rojo, verde y azul, y probamos a mover la curva hacia arriba o hacia abajo dependiendo de si le queremos dar  o quitar ese color. Se pueden hacer pruebas con la vista previa activada hasta que quede a tu gusto y aceptamos.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Paso 4&lt;/strong&gt;&lt;br /&gt;
Al hacer la foto desde tan alto, suele tener mejor tonalidad en la zona de abajo, la más cercana al fotografo. Para compensar esto vamos a añadir una capa nueva y a hacer lo siguiente sobre ella. Con el negro seleccionado de color frontal y el blanco de fondo, elegimos la herramienta de degradado y hacemos uno de arriba a abajo (la zona superior debe ser negra y la de abajo blanca). Cuando lo tengamos listo, cambiaremos el &amp;#8216;modo&amp;#8217; de la capa de &amp;#8216;normal&amp;#8217; a &amp;#8217;solapar&amp;#8217; (en un desplegable que hay sobre el listado de capas) y manejando la transparencia de esta capa lo dejamos al gusto.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Paso 5&lt;/strong&gt;&lt;br /&gt;
Ahora le podemos dar los últimos retoques a la capa de la imágen tratada utilizando las herramientas del menú de &lt;em&gt;Colores&lt;/em&gt;, saturación, contraste, brillo,&amp;#8230; hasta que por fin se parezca más a lo que queremos.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Paso 6&lt;/strong&gt;&lt;br /&gt;
Finalmente intentaremos darle un poco de nitided a la imagen, pero antes uniremos todas las capas en una pulsando en el menú &lt;em&gt;Imagen-&gt;Aplanar Imagen&lt;/em&gt;. Ahora, para darle nitided vamos a intentar enfocar la imágen con un filtro de GIMP. Prueba a ir al menú &lt;em&gt;Filtros-&gt;Realzar-&gt;Sharpen&lt;/em&gt; (si no lo tienes tendrás que instalar &lt;a href="http://comunidad.fotolibre.net/index.php?topic=2361.0"&gt;algún plugin para enfoque&lt;/a&gt;). Cuando lo tengas modifica el umbral del filtro hasta que te parezca que está bien y acepta. Hemos terminado.&lt;/p&gt;
&lt;p&gt;&lt;a href="http://www.berriart.com/wp-content/uploads/2009/04/final.png"&gt;&lt;img src="http://www.berriart.com/wp-content/uploads/2009/04/final-600x375.png" alt="final" title="final" width="600" height="375" class="alignnone size-medium wp-image-459" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Espero que os haya gustado, y ya sabéis, si lo probáis dejadme un enlace en los comentarios a vuestra imagen para ver el resultado.&lt;/p&gt;
&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/berriart?a=ZHX0zi8BCgo:hmGyn5zl2wQ:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/berriart?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/berriart?a=ZHX0zi8BCgo:hmGyn5zl2wQ:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/berriart?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/berriart?a=ZHX0zi8BCgo:hmGyn5zl2wQ:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/berriart?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/berriart?a=ZHX0zi8BCgo:hmGyn5zl2wQ:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/berriart?i=ZHX0zi8BCgo:hmGyn5zl2wQ:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/berriart?a=ZHX0zi8BCgo:hmGyn5zl2wQ:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/berriart?i=ZHX0zi8BCgo:hmGyn5zl2wQ:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/berriart/~4/ZHX0zi8BCgo" height="1" width="1"/&gt;</content>
		<link rel="replies" type="text/html" href="http://www.berriart.com/2009/04/24/mejorar-con-gimp-las-fotos-tomadas-desde-un-avion/#comments" thr:count="1" />
		<link rel="replies" type="application/atom+xml" href="http://www.berriart.com/2009/04/24/mejorar-con-gimp-las-fotos-tomadas-desde-un-avion/feed/atom/" thr:count="1" />
		<thr:total>1</thr:total>
	<feedburner:origLink>http://www.berriart.com/2009/04/24/mejorar-con-gimp-las-fotos-tomadas-desde-un-avion/</feedburner:origLink></entry>
		<entry>
		<author>
			<name>artberri</name>
						<uri>http://www.berriart.com</uri>
					</author>
		<title type="html"><![CDATA[Hosting multidominio con PHP y MySQL]]></title>
		<link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/berriart/~3/o7oqpfY-060/" />
		<id>http://www.berriart.com/?p=463</id>
		<updated>2009-04-22T23:22:26Z</updated>
		<published>2009-04-22T23:22:26Z</published>
		<category scheme="http://www.berriart.com" term="Análisis patrocinados" /><category scheme="http://www.berriart.com" term="alojamiento" /><category scheme="http://www.berriart.com" term="hosting" />		<summary type="html"><![CDATA[No lo hago mucho, pero a veces toca y me gusta avisar por si a alquien no le apetece seguir leyendo, esto es un análisis patrocinado a través de Zync. 
Le he estado echando un vistazo a los planes de alojamiento web de Cyberneticos, una empresa andaluza. Así que de primeras, no nos podemos esperar [...]]]></summary>
		<content type="html" xml:base="http://www.berriart.com/2009/04/23/hosting-multidominio-con-php-y-mysql/">&lt;p&gt;No lo hago mucho, pero a veces toca y me gusta avisar por si a alquien no le apetece seguir leyendo, esto es un análisis patrocinado a través de &lt;a rel="nofollow" href="http://zync.es/"&gt;Zync&lt;/a&gt;. &lt;/p&gt;
&lt;p&gt;Le he estado echando un vistazo a los planes de &lt;a href="http://www.cyberneticos.com/alojamiento-web-hosting.php"&gt;alojamiento web&lt;/a&gt; de &lt;a href="http://www.cyberneticos.com/"&gt;Cyberneticos&lt;/a&gt;, una empresa andaluza. Así que de primeras, no nos podemos esperar unos precios como los grandes americanos, pero nos aseguramos que el soporte y la comunicación será más fácil y en castellano.&lt;/p&gt;
&lt;p&gt;Aparte de los dedicados, VPS, &lt;em&gt;resellers&lt;/em&gt;,&amp;#8230; tiene unos buenos planes para usuarios que no necesiten tanto. Y lo mejor a primera vista es que incluso el plan más barato ofrece la posibilidad de ilimitados dominios, emails y bases de datos; algo que no suele ser lo más habitual. Luego, dependiendo del espacio o la transferencia que necesitemos, dispone de diferentes precios. Como panel de control usa DirectAdmin, que tal vez no se conozca tanto como Plesk, pero puedes probarlo en una demo desde la misma web y ver que te parece. Los planes también tienen un periodo de prueba de 30 días por si no te convencen y quieres devolver.&lt;/p&gt;
&lt;p&gt;Tiene  30 herramientas web preinstaladas (foros, blogs,..), para los vaguetes que no se animan a la programación,&lt;br /&gt;
estadísticas, herramientas de gestión, copias de seguridad,&amp;#8230; Además para animarte a empezar y seguir con ellos te regalan un dominio, y te lo seguirán pagando mientras sigas alojados con ellos. Pero he echado en falta alguna aclaración más sobre el soporte. Tienen sistema de tickets, ayuda online y teléfonica (al menos eso se oferta), pero no queda claro hasta dónde llega el soporte contratado con estos planes. &lt;/p&gt;
&lt;p&gt;Finalmente decir que no he probado su alojamiento, y todo esto son conclusiones sacadas después de darme unos paseos por su web.&lt;/p&gt;
&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/berriart?a=o7oqpfY-060:ZWweqpjBfKU:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/berriart?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/berriart?a=o7oqpfY-060:ZWweqpjBfKU:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/berriart?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/berriart?a=o7oqpfY-060:ZWweqpjBfKU:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/berriart?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/berriart?a=o7oqpfY-060:ZWweqpjBfKU:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/berriart?i=o7oqpfY-060:ZWweqpjBfKU:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/berriart?a=o7oqpfY-060:ZWweqpjBfKU:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/berriart?i=o7oqpfY-060:ZWweqpjBfKU:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/berriart/~4/o7oqpfY-060" height="1" width="1"/&gt;</content>
		<link rel="replies" type="text/html" href="http://www.berriart.com/2009/04/23/hosting-multidominio-con-php-y-mysql/#comments" thr:count="1" />
		<link rel="replies" type="application/atom+xml" href="http://www.berriart.com/2009/04/23/hosting-multidominio-con-php-y-mysql/feed/atom/" thr:count="1" />
		<thr:total>1</thr:total>
	<feedburner:origLink>http://www.berriart.com/2009/04/23/hosting-multidominio-con-php-y-mysql/</feedburner:origLink></entry>
		<entry>
		<author>
			<name>artberri</name>
						<uri>http://www.berriart.com</uri>
					</author>
		<title type="html"><![CDATA[Apezz, el karma no es tan importante]]></title>
		<link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/berriart/~3/UnGhJcsvEyo/" />
		<id>http://www.berriart.com/?p=453</id>
		<updated>2009-04-15T22:42:25Z</updated>
		<published>2009-04-15T22:42:25Z</published>
		<category scheme="http://www.berriart.com" term="Aplicaciones web" /><category scheme="http://www.berriart.com" term="Enlaces" /><category scheme="http://www.berriart.com" term="agregador" /><category scheme="http://www.berriart.com" term="meneame" /><category scheme="http://www.berriart.com" term="Noticias" />		<summary type="html"><![CDATA[Mi compañero Jon acaba de anunciar el lanzamiento de Apezz, un agregador social de noticias al estilo de Meneame y Digg, pero diferente en muchos aspectos. El primero, que el software se lo ha currado desde 0 utilizando symfony, nada de meneames o pliggs; pero es que este proyecto tiene matices que lo hacen  [...]]]></summary>
		<content type="html" xml:base="http://www.berriart.com/2009/04/16/apezz-el-karma-no-es-tan-importante/">&lt;p&gt;Mi compañero Jon acaba de anunciar el lanzamiento de &lt;a href="http://apezz.com/" title="agregador social de noticias"&gt;Apezz&lt;/a&gt;, un agregador social de noticias al estilo de &lt;a href="http://meneame.net/"&gt;Meneame&lt;/a&gt; y &lt;a href="http://digg.com"&gt;Digg&lt;/a&gt;, pero diferente en muchos aspectos. El primero, que el software se lo ha currado desde 0 utilizando symfony, nada de &lt;em&gt;meneames&lt;/em&gt; o &lt;em&gt;pliggs&lt;/em&gt;; pero es que este proyecto tiene matices que lo hacen  diferente a los otros.&lt;/p&gt;
&lt;p&gt;&lt;a href="http://apezz.com"&gt;&lt;img style="display:block;margin:auto;" src="http://www.berriart.com/wp-content/uploads/2009/04/apezz-400x182.png" alt="apezz" title="apezz" width="400" height="182" class="alignnone size-medium wp-image-454" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Una de las diferencias fundamentales es que los usuarios dejan de tener karma. Los votos de todos pasan a valer lo mismo, por lo que en ese aspecto (no en otros) se deja de premiar a los usuarios más habituales o activos, pero también se acaba con los &lt;a href="http://www.urbandictionary.com/define.php?term=karma%20whore"&gt;cazadores de karma&lt;/a&gt;. &lt;/p&gt;
&lt;p&gt;Otra de esas diferencias es que no todos los datos de la noticia están visibles para todos los usuarios. Por supuesto, sí que tendrás el título, el enlace y la entradilla -para poder valorarla-, pero ya no podrás saber si una noticia lleva 2 o 200 votos, otra buena manera para acabar con esos cazadores, y para acabar con esas noticias que van a portada por inercia. Al menos no podrán verlo los usuarios nuevos, aunque sí lo harás si subes de nivel porque Apezz premiará con información extra sobre las noticias a los usuarios más activos en vez de hacerlo con karma.&lt;/p&gt;
&lt;p&gt;Creo que merece la pena probarlo, pese a que lógicamente en estos momentos tiene mucho menos tráfico que otros sitios del estilo (y por lo tanto llevará menos tráfico a vuestras webs, que ya sé que sois todos unos &lt;em&gt;autobomberos&lt;/em&gt;), lo cierto es que si la noticia es buena llegará con más facilidad a portada porqué no será necesario que la haya enviado &lt;em&gt;supergurú&lt;/em&gt;, ni que consiga 20 votos en 10 segundos para que todos los demás la voten como borregos sin leer siquera el título.&lt;/p&gt;
&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/berriart?a=UnGhJcsvEyo:VuxiYfaF0Q4:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/berriart?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/berriart?a=UnGhJcsvEyo:VuxiYfaF0Q4:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/berriart?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/berriart?a=UnGhJcsvEyo:VuxiYfaF0Q4:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/berriart?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/berriart?a=UnGhJcsvEyo:VuxiYfaF0Q4:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/berriart?i=UnGhJcsvEyo:VuxiYfaF0Q4:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/berriart?a=UnGhJcsvEyo:VuxiYfaF0Q4:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/berriart?i=UnGhJcsvEyo:VuxiYfaF0Q4:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/berriart/~4/UnGhJcsvEyo" height="1" width="1"/&gt;</content>
		<link rel="replies" type="text/html" href="http://www.berriart.com/2009/04/16/apezz-el-karma-no-es-tan-importante/#comments" thr:count="1" />
		<link rel="replies" type="application/atom+xml" href="http://www.berriart.com/2009/04/16/apezz-el-karma-no-es-tan-importante/feed/atom/" thr:count="1" />
		<thr:total>1</thr:total>
	<feedburner:origLink>http://www.berriart.com/2009/04/16/apezz-el-karma-no-es-tan-importante/</feedburner:origLink></entry>
	</feed><!-- Dynamic Page Served (once) in 0.551 seconds --><!-- Cached page served by WP-Cache -->
