<?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>2013-02-22T08:11:54Z</updated>

	<link rel="alternate" type="text/html" href="http://www.berriart.com" />
	<id>http://www.berriart.com/feed/atom/</id>
	

	<generator uri="http://wordpress.org/" version="3.3.2">WordPress</generator>
		<atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/atom+xml" href="http://feeds.feedburner.com/berriart" /><feedburner:info uri="berriart" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><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" /><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[Cómo crear un menú responsive con Sidr]]></title>
		<link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/berriart/~3/2tdMChZ7_7o/" />
		<id>http://www.berriart.com/?p=963</id>
		<updated>2013-02-22T08:11:54Z</updated>
		<published>2013-02-21T22:46:58Z</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="Recursos" />		<summary type="html"><![CDATA[Este fin de semana he publicado Sidr, un plugin jQuery para crear menús laterales al estilo de la aplicación móvil de Facebook. La razón de hacerlo, es que a pesar de la infinidad de plugins existentes para hacer menús responsive, ninguno se adecuaba a todas mis necesidades: Sencillo y ligero Compatible con (casi) cualquier diseño [...]]]></summary>
		<content type="html" xml:base="http://www.berriart.com/2013/02/22/como-crear-un-menu-responsive-con-sidr/">&lt;p&gt;&lt;a href="http://www.berriart.com/sidr/"&gt;&lt;img class="alignleft" src="http://www.berriart.com/sidr/images/sidr.png" alt="Sidr" /&gt;&lt;/a&gt; Este fin de semana he publicado &lt;a href="http://www.berriart.com/sidr/" title="Plugin jQuery para hacer menús laterales"&gt;Sidr&lt;/a&gt;, un plugin jQuery para crear menús laterales al estilo de la aplicación móvil de Facebook.&lt;/p&gt;
&lt;p&gt;La razón de hacerlo, es que a pesar de la infinidad de plugins existentes para hacer menús responsive, ninguno se adecuaba a todas mis necesidades:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Sencillo y ligero&lt;/li&gt;
&lt;li&gt;Compatible con (casi) cualquier diseño&lt;/li&gt;
&lt;li&gt;Que no limite el contenido a una lista (&amp;lt;ul&amp;gt;)&lt;/li&gt;
&lt;li&gt;Que permita multiples menús&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;He intentado hacerlo lo más flexible que he podido, pero sin meter demasiadas opciones ni funcionalidades que luego no se usan; y aunque mi intención era facilitarme la creación de menús responsive, es totalmente usable en desktop. &lt;/p&gt;
&lt;p&gt;Lo primero es incluir la librería y uno de los temas (&lt;em&gt;dark&lt;/em&gt; o &lt;em&gt;light&lt;/em&gt;) que van incluídos con el plugin. Aunque también puedes aplicarle tus propios estilos.&lt;/p&gt;
&lt;pre name="code" class="html"&gt;
	&amp;lt;!DOCTYPE html&amp;gt;
	&amp;lt;html&amp;gt;
	  &amp;lt;head&amp;gt;
	    &amp;lt;!-- Your stuff --&amp;gt;

	    &amp;lt;!-- Include Sidr bundled CSS theme --&amp;gt;
	    &amp;lt;link rel=&amp;quot;stylesheet&amp;quot; href=&amp;quot;javascripts/sidr/stylesheets/jquery.sidr.dark.css&amp;quot;&amp;gt;
	  &amp;lt;/head&amp;gt;
	  &amp;lt;body&amp;gt;
	    &amp;lt;!-- Your stuff --&amp;gt;

	    &amp;lt;!-- Include jQuery --&amp;gt;
	    &amp;lt;script src=&amp;quot;javascripts/jquery.js&amp;quot;&amp;gt;&amp;lt;/script&amp;gt;
	    &amp;lt;!-- Include the Sidr JS --&amp;gt;
	    &amp;lt;script src=&amp;quot;javascripts/sidr/jquery.sidr.min.js&amp;quot;&amp;gt;&amp;lt;/script&amp;gt;
	  &amp;lt;/body&amp;gt;
	&amp;lt;/html&amp;gt;
&lt;/pre&gt;
&lt;p&gt;Luego tienes que crear un enlace o un botón que al clickarlo haga abrir y cerrar el menú. Normalmente se pondría en una barra superior y se ocultaría en desktop con media queries, pero eso ya al gusto de cada uno. A ese botón le asociamos un &lt;em&gt;sidr&lt;/em&gt; llamando al plugin, y se le indica que contenido va a tener el menú.&lt;/p&gt;
&lt;pre name="code" class="html"&gt;
&amp;lt;style&amp;gt;
#mobile-header {
    display: none;
}
@media only screen and (max-width: 767px){
    #mobile-header {
        display: block;
    }
}
&amp;lt;/style&amp;gt;

&amp;lt;div id=&amp;quot;mobile-header&amp;quot;&amp;gt;
    &amp;lt;a id=&amp;quot;responsive-menu-button&amp;quot; href=&amp;quot;#sidr&amp;quot;&amp;gt;Menu&amp;lt;/a&amp;gt;
&amp;lt;/div&amp;gt;

&amp;lt;div id=&amp;quot;navigation&amp;quot;&amp;gt;
    &amp;lt;nav class=&amp;quot;nav&amp;quot;&amp;gt;
        &amp;lt;ul&amp;gt;
            &amp;lt;li&amp;gt;&amp;lt;a href=&amp;quot;#download&amp;quot;&amp;gt;Download&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;
            &amp;lt;li&amp;gt;&amp;lt;a href=&amp;quot;#getstarted&amp;quot;&amp;gt;Get started&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;
            &amp;lt;li&amp;gt;&amp;lt;a href=&amp;quot;#usage&amp;quot;&amp;gt;Demos &amp;amp;amp; Usage&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;
            &amp;lt;li&amp;gt;&amp;lt;a href=&amp;quot;#documentation&amp;quot;&amp;gt;Documentation&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;
            &amp;lt;li&amp;gt;&amp;lt;a href=&amp;quot;#themes&amp;quot;&amp;gt;Themes&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;
            &amp;lt;li&amp;gt;&amp;lt;a href=&amp;quot;#support&amp;quot;&amp;gt;Support&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;
        &amp;lt;/ul&amp;gt;
    &amp;lt;/nav&amp;gt;
&amp;lt;/div&amp;gt;

&amp;lt;script&amp;gt;
    $(&amp;#39;#responsive-menu-button&amp;#39;).sidr({
      source: &amp;#39;#navigation&amp;#39;
    });
&amp;lt;/script&amp;gt;
&lt;/pre&gt;
&lt;p&gt;Aunque en el ejemplo solo meto en el menú lateral un &amp;lt;ul&amp;gt; puedes meter lo que quieras (por ejemplo también el  buscador), y puedes ponerlo tanto a la derecha como a la izquierda. Para más información aquí tenéis la &lt;a href="http://www.berriart.com/sidr/"&gt;documentación completa y las demos&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Tengo la intención de separarlo de jQuery para que se pueda usar sin dependencias, pero inicialmente era más fácil crearlo así, y como de momento uso jQuery en el 95% de los proyectos&amp;#8230; Espero que me deis algo de feedback, y que si lo usáis en algún proyecto me aviséis para que me regodee un poco.&lt;/p&gt;
&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/berriart?a=2tdMChZ7_7o:urniR43D8MI: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=2tdMChZ7_7o:urniR43D8MI: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=2tdMChZ7_7o:urniR43D8MI: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=2tdMChZ7_7o:urniR43D8MI:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/berriart?i=2tdMChZ7_7o:urniR43D8MI:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/berriart?a=2tdMChZ7_7o:urniR43D8MI:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/berriart?i=2tdMChZ7_7o:urniR43D8MI:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/berriart/~4/2tdMChZ7_7o" height="1" width="1"/&gt;</content>
		<link rel="replies" type="text/html" href="http://www.berriart.com/2013/02/22/como-crear-un-menu-responsive-con-sidr/#comments" thr:count="5" />
		<link rel="replies" type="application/atom+xml" href="http://www.berriart.com/2013/02/22/como-crear-un-menu-responsive-con-sidr/feed/atom/" thr:count="5" />
		<thr:total>5</thr:total>
	<feedburner:origLink>http://www.berriart.com/2013/02/22/como-crear-un-menu-responsive-con-sidr/</feedburner:origLink></entry>
		<entry>
		<author>
			<name>artberri</name>
						<uri>http://www.berriart.com</uri>
					</author>
		<title type="html"><![CDATA[Scroll suave (smooth scrolling) con jQuery]]></title>
		<link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/berriart/~3/8MPvcUuHaQo/" />
		<id>http://www.berriart.com/?p=956</id>
		<updated>2012-06-29T08:33:02Z</updated>
		<published>2012-06-29T08:33:02Z</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="Web 2.0" />		<summary type="html"><![CDATA[Si usas jQuery en tus proyectos, sería muy fácil hacer ese efecto de desplazamiento suave entre las anclas de tu página. Os paso un fragmento de código que uso yo para hacerlo en los proyectos en los que trabajo: /* Smooth scrolling para anclas */ $('a.smooth').live('click', function(e) { var $link = $(this); var anchor = [...]]]></summary>
		<content type="html" xml:base="http://www.berriart.com/2012/06/29/scroll-suave-smooth-scrolling-con-jquery/">&lt;p&gt;Si usas &lt;a href="http://jquery.com/"&gt;jQuery&lt;/a&gt; en tus proyectos, sería muy fácil hacer ese efecto de desplazamiento suave entre las anclas de tu página. Os paso un fragmento de código que uso yo para hacerlo en los proyectos en los que trabajo:&lt;/p&gt;
&lt;pre name="code" class="javascript"&gt;/* Smooth scrolling para anclas */
$('a.smooth').live('click', function(e) {
    var $link = $(this);
    var anchor  = $link.attr('href');
    $('html, body').stop().animate({
        scrollTop: $(anchor).offset().top
    }, 1000);
});&lt;/pre&gt;
&lt;p&gt;Si os fijáis en el código lo que hago es añadir el evento a todos los enlaces de la clase &lt;em&gt;smooth&lt;/em&gt;, por lo tanto un ejemplo de código HTML en el que esto se aplicaría sería:&lt;/p&gt;
&lt;pre name="code" class="html"&gt;&amp;lt;a href="#ancla1" class="smooth"&amp;gt;Ir al ancla1&amp;lt;/a&amp;gt;
&amp;lt;a href="#ancla2" class="smooth"&amp;gt;Ir al ancla2&amp;lt;/a&amp;gt;
&amp;lt;a href="#ancla3" class="smooth"&amp;gt;Ir al ancla3&amp;lt;/a&amp;gt;
&amp;lt;div id="ancla1"&amp;gt;Contenido 1&amp;lt;/div&amp;gt;
&amp;lt;div id="ancla2"&amp;gt;Contenido 2&amp;lt;/div&amp;gt;
&amp;lt;div id="ancla3"&amp;gt;Contenido 3&amp;lt;/div&amp;gt;&lt;/pre&gt;
&lt;p&gt;El 1000 que se puede ver en el código javascript se refiere a los milisegundos que dura el efecto, lo podéis cambiar para regular ese tiempo al gusto.&lt;/p&gt;
&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/berriart?a=8MPvcUuHaQo:UWM1eYCcmS0: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=8MPvcUuHaQo:UWM1eYCcmS0: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=8MPvcUuHaQo:UWM1eYCcmS0: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=8MPvcUuHaQo:UWM1eYCcmS0:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/berriart?i=8MPvcUuHaQo:UWM1eYCcmS0:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/berriart?a=8MPvcUuHaQo:UWM1eYCcmS0:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/berriart?i=8MPvcUuHaQo:UWM1eYCcmS0:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/berriart/~4/8MPvcUuHaQo" height="1" width="1"/&gt;</content>
		<link rel="replies" type="text/html" href="http://www.berriart.com/2012/06/29/scroll-suave-smooth-scrolling-con-jquery/#comments" thr:count="10" />
		<link rel="replies" type="application/atom+xml" href="http://www.berriart.com/2012/06/29/scroll-suave-smooth-scrolling-con-jquery/feed/atom/" thr:count="10" />
		<thr:total>10</thr:total>
	<feedburner:origLink>http://www.berriart.com/2012/06/29/scroll-suave-smooth-scrolling-con-jquery/</feedburner:origLink></entry>
		<entry>
		<author>
			<name>artberri</name>
						<uri>http://www.berriart.com</uri>
					</author>
		<title type="html"><![CDATA[Ejecutar crons y evitar que se solapen]]></title>
		<link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/berriart/~3/BJQ7x-_xiTA/" />
		<id>http://www.berriart.com/?p=951</id>
		<updated>2012-05-15T21:29:09Z</updated>
		<published>2012-05-15T21:26:42Z</published>
		<category scheme="http://www.berriart.com" term="Desarrollo web" /><category scheme="http://www.berriart.com" term="Programación" />		<summary type="html"><![CDATA[En más de una ocasión he tenido problemas de solapamiento a la hora de ejecutar scripts desde el crontab. Porque si decidimos usar un cron job para ejecutar scripts periódicamente con intervalos pequeños de tiempo, o también scripts con mucho tiempo de ejecución (a veces incluso mezclamos ambas cosas) es probable que corramos el riesgo [...]]]></summary>
		<content type="html" xml:base="http://www.berriart.com/2012/05/15/ejecutar-crons-evitar-solapen/">&lt;p&gt;En más de una ocasión he tenido problemas de solapamiento a la hora de ejecutar &lt;em&gt;scripts&lt;/em&gt; desde el &lt;em&gt;crontab&lt;/em&gt;. Porque si decidimos usar un &lt;em&gt;cron job&lt;/em&gt; para ejecutar &lt;em&gt;scripts&lt;/em&gt; periódicamente con intervalos pequeños de tiempo, o también &lt;em&gt;scripts&lt;/em&gt; con mucho tiempo de ejecución (a veces incluso mezclamos ambas cosas) es probable que corramos el riesgo de que los &lt;em&gt;scripts&lt;/em&gt; se solapen y se cargue demasiado el servidor, o que incluso &amp;#8216;se cuelgue&amp;#8217;. Pienso además que nos pasa más a menudo a los programadores de PHP (sobretodo porque seguramente ese &lt;em&gt;cron job&lt;/em&gt; no debería estar hecho en PHP, pero somos así de monolingüistas).&lt;/p&gt;
&lt;p&gt;Una posible solución, y que es la que usaba hasta hace poco, es la de crear un fichero de control: Al iniciar la ejecución del &lt;em&gt;script&lt;/em&gt; lo primero sería comprobar si ese fichero existe y comenzar solo si no está creado, si todo va bien lo siguiente sería crearlo para evitar el solapamiento y borrarlo justo al finalizar la ejecución.&lt;/p&gt;
&lt;p&gt;Esta solución no me gustaba del todo porque si por cualquier razón el &lt;em&gt;script&lt;/em&gt; no acababa de ejecutarse, el fichero de control no se borraba y entonces nunca más se volvía a ejecutar hasta que te dabas cuenta y borrabas el fichero de control manualmente. Por eso he pensado que lo mejor es comprobar directamente si el &lt;em&gt;script&lt;/em&gt; está en ejecución antes de lanzar el siguiente sin usar fichero de control.&lt;/p&gt;
&lt;p&gt;Para probarlo he usado un script que seguro se va a solapar:&lt;/p&gt;
&lt;pre name="code" class="php"&gt;
&amp;lt;?php
while(1) {
    $zero = 0;
}
&lt;/pre&gt;
&lt;p&gt;Para ejecutarlo desde el &lt;em&gt;cron&lt;/em&gt; lo que he hecho es un pequeño &lt;em&gt;shell script&lt;/em&gt; que también va a ser el encargado de evitar el solapamiento:&lt;/p&gt;
&lt;pre name="code"&gt;
#!/bin/bash
PHP_EXECUTABLE="/usr/bin/php"
SCRIPT_DIRECTORY="/home/alberto"
SCRIPT_NAME="test.php"
if ps -fea | grep $SCRIPT_NAME | grep -v grep
then
    date
    echo "Overlaping message end"
else
    cd $SCRIPT_DIRECTORY
    $PHP_EXECUTABLE $SCRIPT_DIRECTORY"/"$SCRIPT_NAME &gt; /dev/null 2&gt;&amp;#038;1
fi
&lt;/pre&gt;
&lt;p&gt;Como podéis ver lo que hago es comprobar con el comando &lt;em&gt;ps&lt;/em&gt; si el &lt;em&gt;script&lt;/em&gt; está en ejecución antes de lanzarlo de nuevo. Lo que hay que hacer luego simplemente es añadirlo al &lt;em&gt;crontab&lt;/em&gt;, en mi caso dejando un pequeño log para poder comprobar si se solapa o no:&lt;/p&gt;
&lt;pre name="code"&gt;
* * * * * /home/alberto/test.sh &gt; /home/alberto/test.log
&lt;/pre&gt;
&lt;p&gt;¿Qué os parece el método? ¿Qué habéis hecho vosotros si alguna vez os ha pasado?&lt;/p&gt;
&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/berriart?a=BJQ7x-_xiTA:N3IAEJSEkuo: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=BJQ7x-_xiTA:N3IAEJSEkuo: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=BJQ7x-_xiTA:N3IAEJSEkuo: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=BJQ7x-_xiTA:N3IAEJSEkuo:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/berriart?i=BJQ7x-_xiTA:N3IAEJSEkuo:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/berriart?a=BJQ7x-_xiTA:N3IAEJSEkuo:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/berriart?i=BJQ7x-_xiTA:N3IAEJSEkuo:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/berriart/~4/BJQ7x-_xiTA" height="1" width="1"/&gt;</content>
		<link rel="replies" type="text/html" href="http://www.berriart.com/2012/05/15/ejecutar-crons-evitar-solapen/#comments" thr:count="4" />
		<link rel="replies" type="application/atom+xml" href="http://www.berriart.com/2012/05/15/ejecutar-crons-evitar-solapen/feed/atom/" thr:count="4" />
		<thr:total>4</thr:total>
	<feedburner:origLink>http://www.berriart.com/2012/05/15/ejecutar-crons-evitar-solapen/</feedburner:origLink></entry>
		<entry>
		<author>
			<name>artberri</name>
						<uri>http://www.berriart.com</uri>
					</author>
		<title type="html"><![CDATA[HTML5 DevUp, conferencia de desarrollo HTML5 en Barcelona]]></title>
		<link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/berriart/~3/umAHgkfVGdk/" />
		<id>http://www.berriart.com/?p=940</id>
		<updated>2012-04-05T10:11:38Z</updated>
		<published>2012-04-05T10:11:38Z</published>
		<category scheme="http://www.berriart.com" term="Recursos" />		<summary type="html"><![CDATA[La gente de Ideateca (casi-vecinos aquí en Bilbao) ha organizado para este 27 de abril una conferencia en Barcelona sobre HTML5. Os lo comento aquí porque hablamos de una conferencia muy orientada a desarrolladores y dónde los ponentes son gente &#8216;que se mancha las manos&#8217;. En la conferencia se hablará del futuro del HTML5, un [...]]]></summary>
		<content type="html" xml:base="http://www.berriart.com/2012/04/05/html5-devup-conferencia-de-desarrollo-html5-en-barcelona/">&lt;p&gt;&lt;img alt="HTML5 DevUp" src="/wp-content/uploads/DevUp-HTML5.png" class="alignleft" width="300" height="128" /&gt; La gente de &lt;a href="http://www.ideateca.com/"&gt;Ideateca&lt;/a&gt; (casi-vecinos aquí en Bilbao) ha organizado para este 27 de abril una conferencia en Barcelona sobre HTML5. Os lo comento aquí porque hablamos de una conferencia muy orientada a desarrolladores y dónde los ponentes son gente &amp;#8216;que se mancha las manos&amp;#8217;.&lt;/p&gt;
&lt;p&gt;En la conferencia se hablará del futuro del HTML5, un estándar que todos estamos empezando a adoptar, pero también de su estado actual y de como podemos aprovechar al máximo las funcionalidades desarrolladas hasta el momento tanto en la web como en los dispositivos móviles, dónde las implementaciones en HTML5 en vez de en nativo están creciendo como la espuma.&lt;/p&gt;
&lt;p&gt;Entre los ponentes podemos encontrar a expertos a nivel mundial, que supongo que serán los que más llamen la atención y los que más salgan en los medios, aunque por mi parte voy a destacar a parte del producto nacional que también estará allí y a los que por una razón u otra sigo más de cerca:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Javi de TapQuo:&lt;/strong&gt; Es un &lt;em&gt;javascripter&lt;/em&gt; emprendedor, creador de una de las herramientas de desarrollo que más me ha gustado en los últimos tiempos. Esta herramienta es &lt;a href="http://www.lungojs.com/"&gt;LungoJS&lt;/a&gt;, un framework para el desarrollo de aplicaciones móviles con HTML5 muy fácil de usar y a la vez muy completo. He tenido la oportunidad de asistir a un par de charlas/taller con él y merece la pena.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Miguel Schneider de Telefónica:&lt;/strong&gt; Es el director de desarrollo de BlueVia, la plataforma para desarrolladores del &lt;a href="http://www.openwebdevice.com/"&gt;Open Web Device&lt;/a&gt;. Que si aún no os suena, os sonará, porque se trata del dispositivo móvil que dispondrá de sistema operativo nativo en HTML5 y dónde las aplicaciones correrán también en HTML5 de forma nativa. &lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Javier Usobiaga o @htmlboy:&lt;/strong&gt; Es un amante del HTML5 y CSS3 que últimamente anda de gira por España dándo cursos y evangelizando junto con su mujer con la que tiene el estudio &lt;a href="http://Swwweet.com"&gt;Swwweet.com&lt;/a&gt;. En la conferencia hablará sobre el diseño web responsive, algo en lo que últimamente yo estoy totalmente volcado, a ver si saco un rato y os escribo un par de posts sobre el tema.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Ibon Tolosana de Ideateca:&lt;/strong&gt; Ibon es el que está llevando los temas técnicos en Ideateca, empresa organizadora del evento, y que además es un crack y un pionero en todo lo relacionado con los juegos y el HTML5. Es el creador de &lt;a href="http://labs.hyperandroid.com/animation"&gt;CAAT&lt;/a&gt;, un framework para el desarrollo de juegos en canvas de HTML5. Si queréis podéis echaros unos ludos a &lt;a href="http://www.ludei.com/sumon"&gt;Sumon&lt;/a&gt;, uno de los juegos que han desarrollado con ello (ojo que engancha).&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Al resto de ponentes &lt;a href="http://devup.ideateca.com/html5/ponentes-2012/"&gt;los podéis ver aquí&lt;/a&gt;. &lt;/p&gt;
&lt;p&gt;Por si queréis asistir, deciros que se celebrará en el Auditorio central de la Torre Diagonal 00 en Barcelona el 27 de abril, y si queréis conocer el programa completo para convenceros lo podéis &lt;a href="http://devup.ideateca.com/html5/programa/"&gt;leer aquí&lt;/a&gt;. Siento decir que yo no podré asistir, no por falta de ganas, si no por tener otros compromisos que nada tienen que ver con el desarrollo.&lt;/p&gt;
&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/berriart?a=umAHgkfVGdk:9raPCuMviS4: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=umAHgkfVGdk:9raPCuMviS4: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=umAHgkfVGdk:9raPCuMviS4: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=umAHgkfVGdk:9raPCuMviS4:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/berriart?i=umAHgkfVGdk:9raPCuMviS4:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/berriart?a=umAHgkfVGdk:9raPCuMviS4:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/berriart?i=umAHgkfVGdk:9raPCuMviS4:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/berriart/~4/umAHgkfVGdk" height="1" width="1"/&gt;</content>
		<link rel="replies" type="text/html" href="http://www.berriart.com/2012/04/05/html5-devup-conferencia-de-desarrollo-html5-en-barcelona/#comments" thr:count="4" />
		<link rel="replies" type="application/atom+xml" href="http://www.berriart.com/2012/04/05/html5-devup-conferencia-de-desarrollo-html5-en-barcelona/feed/atom/" thr:count="4" />
		<thr:total>4</thr:total>
	<feedburner:origLink>http://www.berriart.com/2012/04/05/html5-devup-conferencia-de-desarrollo-html5-en-barcelona/</feedburner:origLink></entry>
		<entry>
		<author>
			<name>artberri</name>
						<uri>http://www.berriart.com</uri>
					</author>
		<title type="html"><![CDATA[Imágenes adaptaptadas al dispositivo en diseños &#8216;responsive&#8217;]]></title>
		<link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/berriart/~3/xiZlLiyTk0U/" />
		<id>http://www.berriart.com/?p=930</id>
		<updated>2012-03-05T22:48:46Z</updated>
		<published>2012-03-05T22:48:46Z</published>
		<category scheme="http://www.berriart.com" term="Desarrollo web" /><category scheme="http://www.berriart.com" term="Recursos" /><category scheme="http://www.berriart.com" term="Web 2.0" /><category scheme="http://www.berriart.com" term="diseño" /><category scheme="http://www.berriart.com" term="imagenes" /><category scheme="http://www.berriart.com" term="responsive" />		<summary type="html"><![CDATA[Llevo un tiempo dándole vueltas a las diferentes soluciones a la hora de servir imágenes en un diseño responsive. No me refiero simplemente a hacer que las imágenes sean fluídas y que se adapten al dispositivo, sino que hablo de que no sea necesario descargar una imagen de 1280px en un dispositivo que solo tiene [...]]]></summary>
		<content type="html" xml:base="http://www.berriart.com/2012/03/06/imagenes-adaptaptadas-al-dispositivo-en-disenos-responsive/">&lt;p&gt;Llevo un tiempo dándole vueltas a las diferentes soluciones a la hora de servir imágenes en un &lt;a href="http://en.wikipedia.org/wiki/Responsive_Web_Design"&gt;diseño &lt;em&gt;responsive&lt;/em&gt;&lt;/a&gt;. No me refiero simplemente a hacer que las &lt;a href="http://unstoppablerobotninja.com/entry/fluid-images"&gt;imágenes sean fluídas&lt;/a&gt; y que se adapten al dispositivo, sino que hablo de que no sea necesario descargar una imagen de 1280px en un dispositivo que solo tiene 480px de ancho. &lt;/p&gt;
&lt;p&gt;&lt;img src="http://www.berriart.com/wp-content/uploads/2012/03/responsive01-600x330.jpg" alt="Diseño responsive" title="Diseño responsive" width="600" height="330" class="aligncenter size-medium wp-image-935" /&gt;&lt;/p&gt;
&lt;p&gt;Imaginad una web que tenga muchas imágenes de alta resolución (hablando de páginas web), o si no sois capaces echad simplemente un vistazo a &lt;a href="http://www.boston.com/bigpicture/"&gt;esta web&lt;/a&gt;. Si nos estamos adaptando a los dispositivos móviles, lo que no podemos es hacerle descargar al usuario más de 5 megas en fotos y luego escalarlas a la mitad, mucho menos si tenemos en cuenta el ancho de banda de las tarifas móviles españolas.&lt;/p&gt;
&lt;p&gt;Por eso creo, y no soy el único, que habría que servir diferentes tamaños (y por lo tanto diferentes pesos) de imágenes en función del dispositivo que esté accediendo a tu web. La mejor solución que he encontrado es &lt;a href="http://adaptive-images.com/"&gt;Adaptive Images&lt;/a&gt;, o cualquier sucedáneo del mismo. Pero el problema es que aunque es lo mejor que he visto no me convence, tiene ciertas pegas y no me gustaría que fuese &lt;em&gt;peor el remedio que la enfermedad&lt;/em&gt;.&lt;/p&gt;
&lt;p&gt;Las pegas que le veo a este sistema son:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Todas las imágenes servidas de esta manera dejarán de ser &amp;#8216;contenido estático&amp;#8217; ya que será un archivo PHP el encargado de decidir la imagen a servir en base a la resolución del dispositivo.&lt;/li&gt;
&lt;li&gt;Las imágenes afectadas no se podrán &lt;a href="http://developer.yahoo.com/performance/rules.html#cookie_free"&gt;servir desde un dominio libre de cookies&lt;/a&gt; ya que el sistema se basa en ellas para funcionar.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Aún así, en webs que no tienen un excesivo tráfico no creo que conlleve un gran problema y creo que utilizar Adaptive Images mejorará la experiencia del usuario en dispositivos móviles sin afectar negativamente al resto de usuararios, pero me gustaría que me dijerais si vosotros os habéis planteado esto y si habéis encontrado una manera mejor de hacerlo.&lt;/p&gt;
&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/berriart?a=xiZlLiyTk0U:C1P9OGn3BJI: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=xiZlLiyTk0U:C1P9OGn3BJI: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=xiZlLiyTk0U:C1P9OGn3BJI: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=xiZlLiyTk0U:C1P9OGn3BJI:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/berriart?i=xiZlLiyTk0U:C1P9OGn3BJI:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/berriart?a=xiZlLiyTk0U:C1P9OGn3BJI:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/berriart?i=xiZlLiyTk0U:C1P9OGn3BJI:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/berriart/~4/xiZlLiyTk0U" height="1" width="1"/&gt;</content>
		<link rel="replies" type="text/html" href="http://www.berriart.com/2012/03/06/imagenes-adaptaptadas-al-dispositivo-en-disenos-responsive/#comments" thr:count="4" />
		<link rel="replies" type="application/atom+xml" href="http://www.berriart.com/2012/03/06/imagenes-adaptaptadas-al-dispositivo-en-disenos-responsive/feed/atom/" thr:count="4" />
		<thr:total>4</thr:total>
	<feedburner:origLink>http://www.berriart.com/2012/03/06/imagenes-adaptaptadas-al-dispositivo-en-disenos-responsive/</feedburner:origLink></entry>
		<entry>
		<author>
			<name>artberri</name>
						<uri>http://www.berriart.com</uri>
					</author>
		<title type="html"><![CDATA[Bundle para crear sitemap en Symfony2]]></title>
		<link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/berriart/~3/BfzTp-AjT7o/" />
		<id>http://www.berriart.com/?p=922</id>
		<updated>2012-02-05T10:52:46Z</updated>
		<published>2012-02-05T10:52:46Z</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="Programación" /><category scheme="http://www.berriart.com" term="Recursos" /><category scheme="http://www.berriart.com" term="Symfony" /><category scheme="http://www.berriart.com" term="bundle" /><category scheme="http://www.berriart.com" term="php" /><category scheme="http://www.berriart.com" term="sitemap" /><category scheme="http://www.berriart.com" term="symfony2" />		<summary type="html"><![CDATA[Creo que se puede decir que ya está lista la primera versión de mi primer Bundle público de Symfony2, se trata de BerriartSitemapBundle. Tal y como se indica en el nombre se trata de un bundle para crear sitemaps en tu proyecto Symfony2. La verdad es que me he basado en uno existente para crearlo [...]]]></summary>
		<content type="html" xml:base="http://www.berriart.com/2012/02/05/bundle-para-crear-sitemap-en-symfony2/">&lt;p&gt;&lt;a href="http://www.berriart.com/wp-content/uploads/2012/02/google_sitemap_symfony.png"&gt;&lt;img src="http://www.berriart.com/wp-content/uploads/2012/02/google_sitemap_symfony.png" alt="Imagen de BerriartSitemapBundle" title="google_sitemap_symfony" width="180" height="180" class="alignleft size-full wp-image-926" /&gt;&lt;/a&gt;Creo que se puede decir que ya está lista la primera versión de mi primer Bundle público de Symfony2, se trata de &lt;a href="http://www.berriart.com/en/berriart-sitemap-bundle-symfony2/"&gt;BerriartSitemapBundle&lt;/a&gt;. Tal y como se indica en el nombre se trata de un &lt;em&gt;bundle&lt;/em&gt; para crear sitemaps en tu proyecto Symfony2.&lt;/p&gt;
&lt;p&gt;La verdad es que me he basado en uno existente para crearlo (&lt;a rel="nofollow" href="https://github.com/avalanche123/AvalancheSitemapBundle"&gt;AvalancheSitemapBundle&lt;/a&gt;), y la mayor diferencia entre ambos es que el de Avalanche123 está preparado para usarse con DoctrineMongoDB y el mio con Doctrine, por lo que los datos del sitemap se podrían almacenar en una BD MySQL.&lt;/p&gt;
&lt;p&gt;La verdad es que no veía la necesidad de instalar mongodb exclusivamente para almacenar las URLs del sitemap y como no me parece descabellado usar la misma BD del proyecto para hacerlo, decidí que yo quería algo parecido a ese Bundle pero con MySQL, así que lo hice y aquí está.&lt;/p&gt;
&lt;p&gt;Solo lo he probado en un proyecto y es una primera versión, así que puede que tenga algún que otro fallo, si los encontráis no dudéis en decírmelo (a través del &lt;a href="https://github.com/artberri/BerriartSitemapBundle/issues"&gt;Issue Tracker de Github&lt;/a&gt; por favor).&lt;/p&gt;
&lt;p&gt;El siguiente paso en el desarrollo del bundle será añadirle la posibilidad de generar físicamente los ficheros del sitemap en disco y comprimirlos con gzip, para que no tenga que generar al vuelo el sitemap cada vez que hay una petición. Si además de esta se os ocurre alguna otra funcionalidad que os gustaría que le añadiera, ya sabéis, me lo contáis y lo valoro.&lt;/p&gt;
&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/berriart?a=BfzTp-AjT7o:Zk8G353oKVs: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=BfzTp-AjT7o:Zk8G353oKVs: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=BfzTp-AjT7o:Zk8G353oKVs: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=BfzTp-AjT7o:Zk8G353oKVs:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/berriart?i=BfzTp-AjT7o:Zk8G353oKVs:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/berriart?a=BfzTp-AjT7o:Zk8G353oKVs:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/berriart?i=BfzTp-AjT7o:Zk8G353oKVs:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/berriart/~4/BfzTp-AjT7o" height="1" width="1"/&gt;</content>
		<link rel="replies" type="text/html" href="http://www.berriart.com/2012/02/05/bundle-para-crear-sitemap-en-symfony2/#comments" thr:count="0" />
		<link rel="replies" type="application/atom+xml" href="http://www.berriart.com/2012/02/05/bundle-para-crear-sitemap-en-symfony2/feed/atom/" thr:count="0" />
		<thr:total>0</thr:total>
	<feedburner:origLink>http://www.berriart.com/2012/02/05/bundle-para-crear-sitemap-en-symfony2/</feedburner:origLink></entry>
		<entry>
		<author>
			<name>artberri</name>
						<uri>http://www.berriart.com</uri>
					</author>
		<title type="html"><![CDATA[Mi entorno de desarrollo web]]></title>
		<link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/berriart/~3/AhVqYNGoiaY/" />
		<id>http://www.berriart.com/?p=901</id>
		<updated>2012-01-26T22:48:18Z</updated>
		<published>2012-01-27T08:53:46Z</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="Recursos" /><category scheme="http://www.berriart.com" term="addons" /><category scheme="http://www.berriart.com" term="entorno de desarrollo" /><category scheme="http://www.berriart.com" term="git" /><category scheme="http://www.berriart.com" term="herramientas" /><category scheme="http://www.berriart.com" term="ide" /><category scheme="http://www.berriart.com" term="LAMP" /><category scheme="http://www.berriart.com" term="Netbeans" /><category scheme="http://www.berriart.com" term="svn" />		<summary type="html"><![CDATA[Hoy os quería comentar cual es mi entorno de desarrollo, no para convenceros de que me copiéis, sino más bien para que me digáis vuestra opinión, qué os parece y que me recomendaríais. Cuando me acostumbro a algo me cuesta bastante cambiar aunque sepa que con el tiempo va a mejorar mi forma de trabajar, [...]]]></summary>
		<content type="html" xml:base="http://www.berriart.com/2012/01/27/mi-entorno-de-desarrollo-web/">&lt;p&gt;&lt;a href="http://www.berriart.com/wp-content/uploads/2012/01/funny-pictures-beer-computer-57j.jpg"&gt;&lt;img src="http://www.berriart.com/wp-content/uploads/2012/01/funny-pictures-beer-computer-57j-150x150.jpg" alt="Entorno de desarrollo ideal" width="150" height="150" class="alignright size-thumbnail wp-image-908" /&gt;&lt;/a&gt;Hoy os quería comentar cual es mi entorno de desarrollo, no para convenceros de que me copiéis, sino más bien para que me digáis vuestra opinión, qué os parece y que me recomendaríais. Cuando me acostumbro a algo me cuesta bastante cambiar aunque sepa que con el tiempo va a mejorar mi forma de trabajar, no sé si es porque me hago viejo, pero soy capaz de intentarlo, así que no dudéis en dejarme cualquier comentario al respecto.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Un PC con una distro Linux, en mi caso &lt;a href="http://www.ubuntu.com/"&gt;Ubuntu&lt;/a&gt;, que me viene muy bien porque tiene todo lo que yo quiero y además es lo suficiente fácil de usar para que el resto de usuarios del ordenador en mi casa no se enfaden.
&lt;ul&gt;
&lt;li&gt;Apache, MySQL y PHP incluídos, y a poder ser actualizados&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="http://netbeans.org/"&gt;Netbeans&lt;/a&gt; es hasta el momento mi IDE preferido, aunque relamente estoy deseando cambiar porque siempre me da la impresión de que estoy cazando moscas a cañonazos. Si sigue por el buen camino &lt;a href="http://www.sublimetext.com/2"&gt;Sublime Text 2&lt;/a&gt; puede ser un buen candidato para el cambio, aunque todavía le queda camino por recorrer si quiere convencerme.&lt;/li&gt;
&lt;li&gt;&lt;a href="http://git-scm.com/"&gt;Git&lt;/a&gt; y &lt;a href="http://subversion.tigris.org/"&gt;Subversion&lt;/a&gt; para trabajo en grupo y control de versiones. Como cliente gráfico uso el propio Netbeans ya que me parece muy buena la integración que incluye con ambos, aunque muchas veces soy más amigo de usar directamente el terminal. Si sigo usando ambos es porque para proyectos de WordPress uso Subversion, pero si no, Git sería ya mi único amigo en este aspecto.&lt;/li&gt;
&lt;li&gt;Como navegador para desarrollo sigo usando &lt;a href="http://www.mozilla.org/es-ES/firefox/new/"&gt;Firefox&lt;/a&gt;, no por el navegador en sí, ya que prefiero Chrome (o mejor dicho Chromium), sino por todos los &lt;em&gt;Addons&lt;/em&gt; sin los que no podría vivir:
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://addons.mozilla.org/es-ES/firefox/addon/firebug/"&gt;Firebug&lt;/a&gt;, sin ninguna duda la herramienta que más problemas me ha resuelto en los últimos años.&lt;/li&gt;
&lt;li&gt;&lt;a href="https://addons.mozilla.org/en-us/firefox/addon/hostadmin/"&gt;HostAdmin&lt;/a&gt;, de &lt;em&gt;dev&lt;/em&gt; a &lt;em&gt;pre&lt;/em&gt; y a &lt;em&gt;prod&lt;/em&gt; en un solo click.&lt;/li&gt;
&lt;li&gt;&lt;a href="https://addons.mozilla.org/es-es/firefox/addon/yslow/"&gt;YSlow&lt;/a&gt; y &lt;a href="http://code.google.com/speed/page-speed/download.html"&gt;Page Speed&lt;/a&gt; para asegurarme que estoy haciendo las cosas bien en algunos aspectos de rendimiento. Son buenas &lt;em&gt;checklists&lt;/em&gt;.&lt;/li&gt;
&lt;li&gt;&lt;a href="https://addons.mozilla.org/es-es/firefox/addon/web-developer/"&gt;Web Developer&lt;/a&gt;, &lt;a href="https://addons.mozilla.org/en-US/firefox/addon/showip/"&gt;ShowIP&lt;/a&gt;, &lt;a href="https://addons.mozilla.org/en-US/firefox/addon/searchstatus/"&gt;SearchStatus&lt;/a&gt;, &lt;a href="https://addons.mozilla.org/en-us/firefox/addon/defyformvalidation/"&gt;defyFormValidation&lt;/a&gt;,&amp;#8230; y algún otro más también están instalados en mi navegador, pero no les doy uso tan a menudo&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.focusboosterapp.com/"&gt;Focus Booster&lt;/a&gt; es mi pomodoro (sí, ya sé, usa Adobe Air, pero qué le vamos a hacer, nadie es perfecto). Sencillo y efectivo. (Si os interesa que tal me va usando el pomodoro os diré que bien cuando soy estricto con ello, lo que me cuesta es ser realmente estricto).&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Seguro que me queda alguna herramienta por nombrar, ahora es un poco tarde y la cabeza no funciona del todo bien, si me acuerdo editaré el post y la añadiré. Si a alguno os apetece y como últimamente ya no se ven muchos &lt;em&gt;memes&lt;/em&gt;, podríais tomarlo como tal y contar en vuestros respectivos blogs como es vuestro entorno, si no, como ya he dicho estaría muy bien que me dejarais algún comentario con vuestra opinión.&lt;/p&gt;
&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/berriart?a=AhVqYNGoiaY:g-OG6YnxpSg: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=AhVqYNGoiaY:g-OG6YnxpSg: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=AhVqYNGoiaY:g-OG6YnxpSg: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=AhVqYNGoiaY:g-OG6YnxpSg:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/berriart?i=AhVqYNGoiaY:g-OG6YnxpSg:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/berriart?a=AhVqYNGoiaY:g-OG6YnxpSg:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/berriart?i=AhVqYNGoiaY:g-OG6YnxpSg:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/berriart/~4/AhVqYNGoiaY" height="1" width="1"/&gt;</content>
		<link rel="replies" type="text/html" href="http://www.berriart.com/2012/01/27/mi-entorno-de-desarrollo-web/#comments" thr:count="13" />
		<link rel="replies" type="application/atom+xml" href="http://www.berriart.com/2012/01/27/mi-entorno-de-desarrollo-web/feed/atom/" thr:count="13" />
		<thr:total>13</thr:total>
	<feedburner:origLink>http://www.berriart.com/2012/01/27/mi-entorno-de-desarrollo-web/</feedburner:origLink></entry>
		<entry>
		<author>
			<name>artberri</name>
						<uri>http://www.berriart.com</uri>
					</author>
		<title type="html"><![CDATA[Profiling con WordPress y XHProf]]></title>
		<link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/berriart/~3/AMkyEyiotVc/" />
		<id>http://www.berriart.com/?p=891</id>
		<updated>2012-01-10T00:50:07Z</updated>
		<published>2012-01-13T08:22:17Z</published>
		<category scheme="http://www.berriart.com" term="Plugins" /><category scheme="http://www.berriart.com" term="Programación" /><category scheme="http://www.berriart.com" term="Recursos" /><category scheme="http://www.berriart.com" term="WordPress" /><category scheme="http://www.berriart.com" term="debugging" /><category scheme="http://www.berriart.com" term="Facebook" /><category scheme="http://www.berriart.com" term="php" /><category scheme="http://www.berriart.com" term="plugin" /><category scheme="http://www.berriart.com" term="profiling" /><category scheme="http://www.berriart.com" term="xhprof" />		<summary type="html"><![CDATA[A veces, y la mayoría por culpa de algún plugin peleón, he querido hacer profiling de alguna instalación de WordPress, para ello he utilizado XHProf (aunque empecé a intentarlo con XDebug). XHProf está desarrollado en un principio por Facebook y para Facebook, aunque en 2009 lo liberaron para que lo pudiéramos usar los demás. Por [...]]]></summary>
		<content type="html" xml:base="http://www.berriart.com/2012/01/13/profiling-wordpress/">&lt;p&gt;&lt;a href="http://www.berriart.com/wp-content/uploads/2012/01/xhprof-callgraph_small.png"&gt;&lt;img src="http://www.berriart.com/wp-content/uploads/2012/01/xhprof-callgraph_small-150x150.png" alt="Imagen del Callgraph de XHProf" title="xhprof-callgraph_small" width="150" height="150" class="alignleft size-thumbnail wp-image-895" /&gt;&lt;/a&gt;A veces, y la mayoría por culpa de algún &lt;em&gt;plugin&lt;/em&gt; peleón, he querido hacer &lt;a href="http://en.wikipedia.org/wiki/Profiling_%28computer_programming%29"&gt;profiling&lt;/a&gt; de alguna instalación de WordPress, para ello he utilizado &lt;a href="http://pecl.php.net/package/xhprof"&gt;XHProf&lt;/a&gt; (aunque empecé a intentarlo con &lt;a href="http://xdebug.org/"&gt;XDebug&lt;/a&gt;). XHProf está desarrollado en un principio por Facebook y para Facebook, aunque en 2009 lo liberaron para que lo pudiéramos usar los demás. Por si no lo sabíais Facebook tiene una serie de &lt;a href="http://developers.facebook.com/opensource/"&gt;herramientas propias liberadas&lt;/a&gt;, muchas relacionadas lógicamente con PHP. &lt;/p&gt;
&lt;p&gt;Con esta herramienta se pueden saber ciertos datos de la ejecución de una página, entre ellos:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Listado y número de llamadas a una función/método&lt;/li&gt;
&lt;li&gt;Tiempo de ejecución de una función/método&lt;/li&gt;
&lt;li&gt;Tiempo de CPU de una función/método&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;No voy a explicar aquí como instalar XHProf en vuestro servidor, lo que os voy a poner es un pequeño plugin que he desarrollado que habilita el profiling en WordPress cuando tienes &lt;code&gt;WP_DEBUG&lt;/code&gt; activado y XHProf instalado. Lo he llamado &lt;a href="http://www.berriart.com/en/wp-xhprof-profiler/"&gt;WP XHProf Profiler&lt;/a&gt; como era de esperar :p&lt;/p&gt;
&lt;p&gt;Enlace al plugin: &lt;a href="http://www.berriart.com/en/wp-xhprof-profiler/"&gt;http://www.berriart.com/en/wp-xhprof-profiler/&lt;/a&gt;&lt;/p&gt;
&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/berriart?a=AMkyEyiotVc:EOIKZOFN4KM: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=AMkyEyiotVc:EOIKZOFN4KM: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=AMkyEyiotVc:EOIKZOFN4KM: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=AMkyEyiotVc:EOIKZOFN4KM:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/berriart?i=AMkyEyiotVc:EOIKZOFN4KM:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/berriart?a=AMkyEyiotVc:EOIKZOFN4KM:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/berriart?i=AMkyEyiotVc:EOIKZOFN4KM:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/berriart/~4/AMkyEyiotVc" height="1" width="1"/&gt;</content>
		<link rel="replies" type="text/html" href="http://www.berriart.com/2012/01/13/profiling-wordpress/#comments" thr:count="3" />
		<link rel="replies" type="application/atom+xml" href="http://www.berriart.com/2012/01/13/profiling-wordpress/feed/atom/" thr:count="3" />
		<thr:total>3</thr:total>
	<feedburner:origLink>http://www.berriart.com/2012/01/13/profiling-wordpress/</feedburner:origLink></entry>
		<entry>
		<author>
			<name>artberri</name>
						<uri>http://www.berriart.com</uri>
					</author>
		<title type="html"><![CDATA[Symfony2, permisos en el directorio cache (y en logs)]]></title>
		<link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/berriart/~3/v1sx-3BfLF0/" />
		<id>http://www.berriart.com/?p=856</id>
		<updated>2012-01-09T22:04:03Z</updated>
		<published>2012-01-09T09:33:25Z</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="Symfony" /><category scheme="http://www.berriart.com" term="consola" /><category scheme="http://www.berriart.com" term="permisos" /><category scheme="http://www.berriart.com" term="php" /><category scheme="http://www.berriart.com" term="symfony2" />		<summary type="html"><![CDATA[Supongo que habréis sido más espabilados que yo, pero si alguno de vosotros también se ha peleado con los permisos del directorio app/cache, aquí tenéis la solución. Mi problema era que en la instalación de Symfony2 siempre le daba permisos 777 a los directorios app/cache y app/logs, pensaba que con eso valía. En un principio [...]]]></summary>
		<content type="html" xml:base="http://www.berriart.com/2012/01/09/symfony2-permisos-directorio-cache/">&lt;p&gt;Supongo que habréis sido más espabilados que yo, pero si alguno de vosotros también se ha peleado con los permisos del directorio &lt;code&gt;app/cache&lt;/code&gt;, aquí tenéis la solución. Mi problema era que en la instalación de &lt;a href="http://www.berriart.com/2011/07/11/primeras-impresiones-symfony2/"&gt;Symfony2&lt;/a&gt; siempre le daba permisos 777 a los directorios &lt;code&gt;app/cache&lt;/code&gt; y &lt;code&gt;app/logs&lt;/code&gt;, pensaba que con eso valía. &lt;/p&gt;
&lt;p&gt;En un principio parece que sí, se accede vía web y sin ningún problema se van generando los ficheros de caché. Pero si más adelante ibas a la línea de comandos e intentabas alguna acción que tuviera que reescribir esos ficheros (generados por usuario apache o similar) te decía que el usuario que usabas no tenía permisos. Pues nada, yo volvía a darle permisos 777 con ayuda del &lt;em&gt;sudo&lt;/em&gt;, hacía lo que tenía que hacer y de nuevo volvía a darle permisos para que el usuario &lt;em&gt;apache&lt;/em&gt; no tuviera problemas en sobreescribir lo que yo había generado desde consola con mi usuario. Menudo lío ¿no?&lt;/p&gt;
&lt;p&gt;Llegado un punto en el que este &lt;em&gt;loop&lt;/em&gt; empezaba a convertirse en infinito, busqué un poquito y descubrí que no tenía que ir muy lejos a buscar la solución, estaba escrita en la &lt;a href="http://symfony.com/doc/2.0/book/installation.html#configuration-and-setup"&gt;propia documentación de Symfony2&lt;/a&gt;. Y realmente tampoco era tan complicada si hubiera pensado un poquito, ambos usuarios deben tener permisos sobre esos directorios:&lt;/p&gt;
&lt;pre&gt;sudo rm -rf app/cache/*
sudo rm -rf app/logs/*
sudo setfacl -R -m u:www-data:rwx -m u:`whoami`:rwx app/cache app/logs
sudo setfacl -dR -m u:www-data:rwx -m u:`whoami`:rwx app/cache app/logs&lt;/pre&gt;
&lt;p&gt;Dónde &lt;code&gt;www-data&lt;/code&gt; es el nombre del usuario de los accesos web (en algunos casos es &lt;em&gt;apache&lt;/em&gt;, &lt;em&gt;http&lt;/em&gt;,&amp;#8230;) y dónde &lt;code&gt;whoami&lt;/code&gt; es el nombre del usuario con el que accedes y ejecutas la consola de Symfony.&lt;/p&gt;
&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/berriart?a=v1sx-3BfLF0:ZfJdo5pCXFE: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=v1sx-3BfLF0:ZfJdo5pCXFE: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=v1sx-3BfLF0:ZfJdo5pCXFE: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=v1sx-3BfLF0:ZfJdo5pCXFE:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/berriart?i=v1sx-3BfLF0:ZfJdo5pCXFE:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/berriart?a=v1sx-3BfLF0:ZfJdo5pCXFE:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/berriart?i=v1sx-3BfLF0:ZfJdo5pCXFE:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/berriart/~4/v1sx-3BfLF0" height="1" width="1"/&gt;</content>
		<link rel="replies" type="text/html" href="http://www.berriart.com/2012/01/09/symfony2-permisos-directorio-cache/#comments" thr:count="1" />
		<link rel="replies" type="application/atom+xml" href="http://www.berriart.com/2012/01/09/symfony2-permisos-directorio-cache/feed/atom/" thr:count="1" />
		<thr:total>1</thr:total>
	<feedburner:origLink>http://www.berriart.com/2012/01/09/symfony2-permisos-directorio-cache/</feedburner:origLink></entry>
		<entry>
		<author>
			<name>artberri</name>
						<uri>http://www.berriart.com</uri>
					</author>
		<title type="html"><![CDATA[Probando las novedades de PHP 5.4]]></title>
		<link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/berriart/~3/mIOUuJ97M3A/" />
		<id>http://www.berriart.com/?p=862</id>
		<updated>2012-01-02T09:37:11Z</updated>
		<published>2012-01-02T09:37:11Z</published>
		<category scheme="http://www.berriart.com" term="Desarrollo web" /><category scheme="http://www.berriart.com" term="Noticias" /><category scheme="http://www.berriart.com" term="Programación" /><category scheme="http://www.berriart.com" term="php" /><category scheme="http://www.berriart.com" term="php 5.4" /><category scheme="http://www.berriart.com" term="servidor" /><category scheme="http://www.berriart.com" term="servidor web" /><category scheme="http://www.berriart.com" term="trait" />		<summary type="html"><![CDATA[A pesar de que algunos aún estamos asimilando y adaptándonos a las novedades de PHP 5.3, se está hablando mucho estos últimos días de las novedades de PHP 5.4, a raíz de la reciente liberación de la cuarta release candidate de esta versión. Así que después de leer sobre ello me he decidido a probar [...]]]></summary>
		<content type="html" xml:base="http://www.berriart.com/2012/01/02/novedades-php-54/">&lt;p&gt;A pesar de que algunos aún estamos asimilando y adaptándonos a las novedades de PHP 5.3, se está hablando mucho estos últimos días de las novedades de PHP 5.4, a raíz de la reciente liberación de la &lt;a href="http://www.php.net/archive/2011.php#id2011-12-25-1"&gt;cuarta &lt;em&gt;release candidate&lt;/em&gt;&lt;/a&gt; de esta versión. Así que después de leer sobre ello me he decidido a probar un poco y la he instalado en casa. &lt;/p&gt;
&lt;p&gt;De &lt;a href="https://svn.php.net/repository/php/php-src/tags/php_5_4_0RC4/NEWS"&gt;las novedades de la versión&lt;/a&gt; las que más me han llamado la atención y las que creo que más útiles me van a resultar son los &lt;em&gt;traits&lt;/em&gt; y el &lt;em&gt;servidor web embebido&lt;/em&gt;. Aparte de estas dos y de las mejoras en el propio motor y extensiones, otras novedades de las que no voy a hablar hoy pero parecen interesantes son:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Array dereferencing (un poco raro lo de poner corchetes al final de una función :p )&lt;/li&gt;
&lt;li&gt;Soporte para DTrace&lt;/li&gt;
&lt;li&gt;Nueva función http_response_code()&lt;/li&gt;
&lt;li&gt;Llamadas indirectas a métodos estáticos de una clase mediante un array&lt;/li&gt;
&lt;li&gt;Permite el uso de $this en &lt;em&gt;closures&lt;/em&gt; dentro de métodos&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;Traits&lt;/h2&gt;
&lt;p&gt;Creo que se puede decir que los &lt;em&gt;traits&lt;/em&gt; han sido la solución de PHP para implementar lo que muchos pedían, &amp;#8216;herencia múltiple&amp;#8217; o la posibilidad de crear una clase que &lt;em&gt;extienda&lt;/em&gt; múltiples clases, y así poder reaprovechar mejor el código. La manera de usar sería:&lt;/p&gt;
&lt;pre name="code" class="php"&gt;
&amp;lt;?php

trait HelloWorld {
    private $whatelse;

    public function sayIt() {
        echo 'Hello World!'. PHP_EOL;
        echo $this-&gt;whatelse . PHP_EOL;
    }
}

class Producto {
    use HelloWorld;

    public function __construct($string) {
        $this-&gt;whatelse = $string;
    }
}

class Servicio {
    use HelloWorld;

    public function __construct() {
        $this-&gt;whatelse = date('c');
    }
}

$servicio = new Servicio();
$producto = new Producto('Internet');

$servicio-&gt;sayIt();
$producto-&gt;sayIt();
&lt;/pre&gt;
&lt;p&gt;Esta sería la respuesta a este pequeño script:&lt;/p&gt;
&lt;pre&gt;Hello World!
2011-12-29T23:27:19+00:00
Hello World!
Internet&lt;/pre&gt;
&lt;p&gt;Sé que no es el mejor ejemplo pero creo que se entiende.&lt;/p&gt;
&lt;h2&gt;Servidor web embebido&lt;/h2&gt;
&lt;p&gt;Ya &lt;a href="http://php.net/manual/en/features.commandline.webserver.php"&gt;dejan bien claro desde PHP&lt;/a&gt; que se trata simplemente de un servidor para desarrollo, y no para usar en entornos de producción. Pero aún así, creo que nadie va a negar la utilidad de que PHP incluya su propio servidor y que no necesitemos instalar Apache ni ningún otro servidor web para poder ejecutar y probar nuestras aplicaciones. Para arrancar el servidor simplemente tenemos que ejecutar lo siguiente (es probable que tengas que hacer sudo):&lt;/p&gt;
&lt;pre&gt;php -S &amp;lt;addr&amp;gt;:&amp;lt;port&amp;gt; -t &amp;lt;docroot&amp;gt;&lt;/pre&gt;
&lt;p&gt;Por ejemplo:&lt;/p&gt;
&lt;pre&gt;php -S localhost:80 -t /var/www&lt;/pre&gt;
&lt;p&gt;Al ejecutarlo arrancaríamos el servidor web en el puerto 80 con el &lt;em&gt;document root&lt;/em&gt; en &lt;code&gt;/var/www&lt;/code&gt;; el log de accesos y errores aparecería directamente en consola. Para pararlo simplemnte pulsaríamos Ctrl+C.&lt;/p&gt;
&lt;h2&gt;Instalación &lt;/h2&gt;
&lt;p&gt;Como sabéis PHP5.4 no es una versión estable, pero si queréis instalarlo en vuestro entorno de desarrollo o de pruebas podéis ir a &lt;a href="http://qa.php.net/"&gt;esta web&lt;/a&gt;, descargarlo y compilarlo. &lt;/p&gt;
&lt;p&gt;Si usáis Ubuntu y no os queréis complicar, podéis hacerlo mucho más fácilmente siguiendo &lt;a href="http://chemicaloliver.net/internet/installing-php-5-4-in-ubuntu/"&gt;este pequeño tutorial&lt;/a&gt;. Eso sí, aviso que cuando lo probé yo el paquete no estaba actualizado aún y te instalaba la RC3.&lt;/p&gt;
&lt;p&gt;Por último, feliz año a todos y que programéis mucho :p&lt;/p&gt;
&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/berriart?a=mIOUuJ97M3A:4j4G_InsL3A: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=mIOUuJ97M3A:4j4G_InsL3A: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=mIOUuJ97M3A:4j4G_InsL3A: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=mIOUuJ97M3A:4j4G_InsL3A:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/berriart?i=mIOUuJ97M3A:4j4G_InsL3A:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/berriart?a=mIOUuJ97M3A:4j4G_InsL3A:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/berriart?i=mIOUuJ97M3A:4j4G_InsL3A:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/berriart/~4/mIOUuJ97M3A" height="1" width="1"/&gt;</content>
		<link rel="replies" type="text/html" href="http://www.berriart.com/2012/01/02/novedades-php-54/#comments" thr:count="1" />
		<link rel="replies" type="application/atom+xml" href="http://www.berriart.com/2012/01/02/novedades-php-54/feed/atom/" thr:count="1" />
		<thr:total>1</thr:total>
	<feedburner:origLink>http://www.berriart.com/2012/01/02/novedades-php-54/</feedburner:origLink></entry>
	</feed><!-- Performance optimized by W3 Total Cache. Learn more: http://www.w3-edge.com/wordpress-plugins/

Served from: www.berriart.com @ 2013-05-04 16:27:18 -->
