<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Boozox &#187; Boozox</title>
	<atom:link href="http://boozox.net/category/boozox/feed/" rel="self" type="application/rss+xml" />
	<link>http://boozox.net</link>
	<description>Blog de informática, programación, software libre, linux, y mucho más</description>
	<lastBuildDate>Fri, 16 Mar 2012 20:28:13 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.2</generator>
		<item>
		<title>NO al cierre de Webs</title>
		<link>http://boozox.net/boozox/no-al-cierre-de-webs/</link>
		<comments>http://boozox.net/boozox/no-al-cierre-de-webs/#comments</comments>
		<pubDate>Sun, 19 Dec 2010 14:44:57 +0000</pubDate>
		<dc:creator>Alex Barros</dc:creator>
				<category><![CDATA[Boozox]]></category>

		<guid isPermaLink="false">http://boozox.net/?p=807</guid>
		<description><![CDATA[http://NoAlCierreDeWebs.com]]></description>
			<content:encoded><![CDATA[<p><a href="http://noalcierredewebs.com"><img src="http://boozox.net/wp-content/noalcierredewebs.png" alt="noalcierredewebs" title="noalcierredewebs" width="709" height="114" class="alignnone size-full wp-image-810" /></a></p>
<p><a href="http://noalcierredewebs.com">http://NoAlCierreDeWebs.com</a></p>
]]></content:encoded>
			<wfw:commentRss>http://boozox.net/boozox/no-al-cierre-de-webs/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>API de Valenbisi (Servicio de JCDeacaux)</title>
		<link>http://boozox.net/boozox/api-de-valenbisi-servicio-de-jcdeacaux/</link>
		<comments>http://boozox.net/boozox/api-de-valenbisi-servicio-de-jcdeacaux/#comments</comments>
		<pubDate>Mon, 19 Jul 2010 18:40:26 +0000</pubDate>
		<dc:creator>Alex Barros</dc:creator>
				<category><![CDATA[Boozox]]></category>

		<guid isPermaLink="false">http://boozox.net/?p=759</guid>
		<description><![CDATA[Valenbisi es un servicio que ofrece el ayuntamiento de Valencia de bicicletas públicas, mediante una red de &#8220;estaciones&#8221; donde coger o dejar una bici. La web que tienen ( http://www.valenbisi.es ) me parece muy deficiente, por lo que me quiero aventurar a hacer una aplicación simplificada, más 2.0, con la API de Google Maps. La [...]]]></description>
			<content:encoded><![CDATA[<p><strong>Valenbisi</strong> es un servicio que ofrece el ayuntamiento de Valencia de <strong>bicicletas públicas</strong>, mediante una red de &#8220;<em>estaciones</em>&#8221; donde coger o dejar una bici.</p>
<p>La web que tienen ( <a href="http://www.valenbisi.es">http://www.valenbisi.es</a> ) me parece muy deficiente, por lo que me quiero aventurar a hacer una <strong>aplicación</strong> simplificada, más 2.0, con la API de Google Maps.</p>
<p>La web de Valenbisi (la empresa encargada es la francesa JCDecaux) no ofrece una API pública, pero no es muy difícil averiguar el sistema que usan para cargar los datos en su web (que es lo que voy a detallar a continuación). Sólo esperemos que no modifiquen esta funcionalidad, que resulta verdaderamente accesible.</p>
<div style="border: 1px solid #BBB;background-color:#F7F3E4;padding:0 50px 30px;margin:30px 30px 50px 50px;">
<h3>Actualización:</h3>
<p>Desde la aplicación <a href="http://biciv.com" title="Bici Valencia Estaciones Carril Bici Incidencias Estadísticas">biciv.com</a> se ofrece una sencilla API que en una sola consulta devuelve los valores actuales de todas las estaciones en formato JSON.</p>
<p>Puedes acceder a este listado en la dirección <strong>http://biciv.com/api/stations</strong></div>
<p>Se trata de <strong>dos archivos clave</strong>, que contienen toda la información en el <strong>formato XML</strong>:</p>
<h2>1: Las estaciones</h2>
<p>El primer archivo nos va a dar información de todas las <strong>estaciones existentes</strong>, junto con información relativa a la localización.</p>
<p><strong style="display:block;border:1px solid #777;padding:5px;margin:10px 7px 0;">http://www.valenbisi.es/service/carto</strong></p>
<p>Devuelve un archivo similar a este fragmento:</p>
<div class="dean_ch" style="white-space: wrap;">
<ol>
<li class="li1">
<div class="de1"><span class="sc3"><span class="re1">&lt;carto<span class="re2">&gt;</span></span></span> </div>
</li>
<li class="li1">
<div class="de1">&nbsp; <span class="sc3"><span class="re1">&lt;markers<span class="re2">&gt;</span></span></span> </div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; <span class="sc3"><span class="re1">&lt;marker</span> <span class="re0">name</span>=<span class="st0">&quot;063_AVDA. DEL PUERTO I&quot;</span> <span class="re0">number</span>=<span class="st0">&quot;63&quot;</span> <span class="re0">address</span>=<span class="st0">&quot;AVDA. DEL PUERTO I &#8211; Esq. C/Antonio Suarez&quot;</span> <span class="re0">fullAddress</span>=<span class="st0">&quot;AVDA. DEL PUERTO I &#8211; Esq. C/Antonio Suarez &nbsp;&quot;</span> <span class="re0">lat</span>=<span class="st0">&quot;39.46755709145644&quot;</span> <span class="re0">lng</span>=<span class="st0">&quot;-0.357891042655049&quot;</span> <span class="re0">open</span>=<span class="st0">&quot;1&quot;</span> <span class="re0">bonus</span>=<span class="st0">&quot;0&quot;</span><span class="re2">/&gt;</span></span> </div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; <span class="sc3"><span class="re1">&lt;marker</span> <span class="re0">name</span>=<span class="st0">&quot;064_AVDA. DEL PUERTO II&quot;</span> <span class="re0">number</span>=<span class="st0">&quot;64&quot;</span> <span class="re0">address</span>=<span class="st0">&quot;AVDA. DEL PUERTO II &#8211; Frente a los numeros 61 y 63&quot;</span> <span class="re0">fullAddress</span>=<span class="st0">&quot;AVDA. DEL PUERTO II &#8211; Frente a los numeros 61 y 63 &nbsp;&quot;</span> <span class="re0">lat</span>=<span class="st0">&quot;39.46638708872079&quot;</span> <span class="re0">lng</span>=<span class="st0">&quot;-0.353943030206345&quot;</span> <span class="re0">open</span>=<span class="st0">&quot;1&quot;</span> <span class="re0">bonus</span>=<span class="st0">&quot;0&quot;</span><span class="re2">/&gt;</span></span> </div>
</li>
<li class="li2">
<div class="de2">&nbsp; &nbsp; <span class="sc3"><span class="re1">&lt;marker</span> <span class="re0">name</span>=<span class="st0">&quot;065_AVDA. DEL PUERTO III&quot;</span> <span class="re0">number</span>=<span class="st0">&quot;65&quot;</span> <span class="re0">address</span>=<span class="st0">&quot;AVDA. DEL PUERTO III &#8211; Esquina con Calle Doctor Manuela&quot;</span> <span class="re0">fullAddress</span>=<span class="st0">&quot;AVDA. DEL PUERTO III &#8211; Esquina con Calle Doctor Manuela &nbsp;&quot;</span> <span class="re0">lat</span>=<span class="st0">&quot;39.46549608664973&quot;</span> <span class="re0">lng</span>=<span class="st0">&quot;-0.351062021089717&quot;</span> <span class="re0">open</span>=<span class="st0">&quot;1&quot;</span> <span class="re0">bonus</span>=<span class="st0">&quot;0&quot;</span><span class="re2">/&gt;</span></span> </div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; <span class="sc3"><span class="re1">&lt;marker</span> <span class="re0">name</span>=<span class="st0">&quot;066_GUILLEN DE ANGLESOLA&quot;</span> <span class="re0">number</span>=<span class="st0">&quot;66&quot;</span> <span class="re0">address</span>=<span class="st0">&quot;GUILLEN DE ANGLESOLA &#8211; Esquina con Avenida del Puerto&quot;</span> <span class="re0">fullAddress</span>=<span class="st0">&quot;GUILLEN DE ANGLESOLA &#8211; Esquina con Avenida del Puerto &nbsp;&quot;</span> <span class="re0">lat</span>=<span class="st0">&quot;39.46414708365747&quot;</span> <span class="re0">lng</span>=<span class="st0">&quot;-0.34636900630001&quot;</span> <span class="re0">open</span>=<span class="st0">&quot;1&quot;</span> <span class="re0">bonus</span>=<span class="st0">&quot;0&quot;</span><span class="re2">/&gt;</span></span> </div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; <span class="sc3"><span class="re1">&lt;marker</span> <span class="re0">name</span>=<span class="st0">&quot;067_JUAN VERDEGUER&quot;</span> <span class="re0">number</span>=<span class="st0">&quot;67&quot;</span> <span class="re0">address</span>=<span class="st0">&quot;JUAN VERDEGUER &#8211; Esquina con Calle Boters&quot;</span> <span class="re0">fullAddress</span>=<span class="st0">&quot;JUAN VERDEGUER &#8211; Esquina con Calle Boters &nbsp;&quot;</span> <span class="re0">lat</span>=<span class="st0">&quot;39.458805068652005&quot;</span> <span class="re0">lng</span>=<span class="st0">&quot;-0.337036975447925&quot;</span> <span class="re0">open</span>=<span class="st0">&quot;0&quot;</span> <span class="re0">bonus</span>=<span class="st0">&quot;1&quot;</span><span class="re2">/&gt;</span></span> </div>
</li>
<li class="li1">
<div class="de1"><span class="sc3"><span class="re1">&lt;/carto<span class="re2">&gt;</span></span></span></div>
</li>
</ol>
</div>
<p>Cada marker contiene toda la información de una estación, que son el <strong>nombre</strong>, el <strong>número</strong> (este dato es fundamental para el siguiente paso), la <strong>dirección</strong>, datos <strong>cartográficos</strong> y si está <strong>operativa</strong> (la propiedad <strong>bonus</strong> no he comprendido todavía qué significa)</p>
<h2>2: Detalles de la estación</h2>
<p>Cuando quieres centrarte en los datos de una estación concreta, debes acudir al siguiente archivo. Se trata de una dirección base a la que debes añadir al final el número de estación que deseas obtener.</p>
<p><strong style="display:block;border:1px solid #777;padding:5px;margin:10px 7px 0;">http://www.valenbisi.es/service/stationdetails/valence/num_estacion</strong><br />
<em>(donde num_estacion es un número entero correspondiente a una estación.)</em></p>
<p>Devuelve un archivo como este:</p>
<div class="dean_ch" style="white-space: wrap;">
<ol>
<li class="li1">
<div class="de1"><span class="sc3"><span class="re1">&lt;station<span class="re2">&gt;</span></span></span> </div>
</li>
<li class="li1">
<div class="de1">&nbsp; <span class="sc3"><span class="re1">&lt;available<span class="re2">&gt;</span></span></span>14<span class="sc3"><span class="re1">&lt;/available<span class="re2">&gt;</span></span></span> </div>
</li>
<li class="li1">
<div class="de1">&nbsp; <span class="sc3"><span class="re1">&lt;free<span class="re2">&gt;</span></span></span>2<span class="sc3"><span class="re1">&lt;/free<span class="re2">&gt;</span></span></span> </div>
</li>
<li class="li1">
<div class="de1">&nbsp; <span class="sc3"><span class="re1">&lt;total<span class="re2">&gt;</span></span></span>19<span class="sc3"><span class="re1">&lt;/total<span class="re2">&gt;</span></span></span> </div>
</li>
<li class="li2">
<div class="de2">&nbsp; <span class="sc3"><span class="re1">&lt;ticket<span class="re2">&gt;</span></span></span>0<span class="sc3"><span class="re1">&lt;/ticket<span class="re2">&gt;</span></span></span> </div>
</li>
<li class="li1">
<div class="de1"><span class="sc3"><span class="re1">&lt;/station<span class="re2">&gt;</span></span></span> </div>
</li>
</ol>
</div>
<p>Es decir, el número de <strong>bicicletas disponibles</strong> (avaliable), el número de <strong>bornetas disponibles</strong> para aparcar (free) el número <strong>total de bornetas</strong> con que cuenta la estación (total) y si admite la <strong>opción de alquiler</strong> con tarjeta bancaria (ticket).</p>
<p>A partir de aquí lo único que hace falta es un parser de XML para el lenguaje que estés utilizando, y una conexión a internet, el resto lo pone la imaginación del programador.</p>
<p>Que vivan las APIs!</p>
<p><em>(Editado: podéis ver mi experimento: <strong>bicis disponibles de Valenbisi</strong> en <a href="http://bicivalencia.com">http://bicivalencia.com</a> y una versión móvil en <a href="http://bicivalencia.com/m">http://bicivalencia.com/m</a>)</em></p>
]]></content:encoded>
			<wfw:commentRss>http://boozox.net/boozox/api-de-valenbisi-servicio-de-jcdeacaux/feed/</wfw:commentRss>
		<slash:comments>18</slash:comments>
		</item>
		<item>
		<title>Múltiples join y solución al encadenar LEFT JOINS</title>
		<link>http://boozox.net/boozox/multiples-join-y-solucion-al-encadenar-left-joins/</link>
		<comments>http://boozox.net/boozox/multiples-join-y-solucion-al-encadenar-left-joins/#comments</comments>
		<pubDate>Thu, 05 Nov 2009 20:27:25 +0000</pubDate>
		<dc:creator>Alex Barros</dc:creator>
				<category><![CDATA[Boozox]]></category>

		<guid isPermaLink="false">http://boozox.net/?p=720</guid>
		<description><![CDATA[Desde que publiqué el artículo de Inner Join para unir tablas y más especialmente el de Explicación visual de los SQL Join &#8211; Unir tablas con SQL me han consultado en muchos comentarios cómo hacer múltiples JOIN en una sóla consulta. Hasta hoy no lo había necesitado, y nunca supe contestar. Hasta hoy. Encadenar Joins [...]]]></description>
			<content:encoded><![CDATA[<p>Desde que publiqué el artículo de <strong><a href="http://boozox.net/mysql/inner-join-para-unir-tablas/">Inner Join para unir tablas</a></strong> y más especialmente el de <strong><a href="http://boozox.net/mysql/explicacion-visual-de-los-sql-join-unir-tablas-con-sql/">Explicación visual de los SQL Join &#8211; Unir tablas con SQL</a></strong> me han consultado en muchos comentarios <strong>cómo hacer múltiples JOIN en una sóla consulta</strong>.</p>
<p>Hasta hoy no lo había necesitado, y nunca supe contestar. Hasta hoy.</p>
<p>Encadenar Joins es tan simple como <strong>ponerlos uno a continuación de otro</strong>.<br />
ejemplo:</p>
<div class="dean_ch" style="white-space: wrap;">
<ol>
<li class="li1">
<div class="de1"><span class="kw1">SELECT</span> A.*, B.*, C.id <span class="kw1">FROM</span> tabla_a A </div>
</li>
<li class="li1">
<div class="de1"><span class="kw1">INNER</span> <span class="kw1">JOIN</span> tabla_b B <span class="kw1">ON</span> A.id = B.foo</div>
</li>
<li class="li1">
<div class="de1"><span class="kw1">LEFT</span> <span class="kw1">JOIN</span> tabla_c C <span class="kw1">ON</span> A.id = C.bar</div>
</li>
</ol>
</div>
<p>Y así sucesivamente. Puedes tener <strong>tantos joins como necesites</strong>, y si es necesario jugar con los paréntesis para cambiar la preferencia (<em>por defecto MySQL lee de izquierda a derecha</em>).</p>
<p>Pero una vez esto aclarado, me he encontrado con un <strong><em>problema</em></strong>. Lo que yo quería hacer es una serie de <strong>LEFT JOIN</strong>s para consultar en una serie de tablas la cantidad (<strong>COUNT</strong>()) de registros de otras tablas que estaban asociados a la clave primaria de una <strong>tabla principal</strong>.</p>
<p>En mi caso concreto, tengo una serie de <strong>Rutas</strong> de bicicleta en una tabla, y en otras tablas satélite tengo almacenados los <em>comentarios</em> asociados a la ruta, las <em>votaciones</em>, los <em>archivos</em> adjuntos, etc&#8230; de modo que haciendo  un <strong>COUNT</strong> en estas tablas para cada una de las claves primarias de la principal (<strong>Rutas</strong>) me saldría la cantidad asociada.</p>
<p>Así que hice algo como esto:</p>
<div class="dean_ch" style="white-space: wrap;">
<ol>
<li class="li1">
<div class="de1"><span class="kw1">SELECT</span> R.*, COUNT<span class="br0">&#40;</span>C.id<span class="br0">&#41;</span> comments, COUNT<span class="br0">&#40;</span>S.id<span class="br0">&#41;</span> saved, COUNT<span class="br0">&#40;</span>V.id<span class="br0">&#41;</span> votes, COUNT<span class="br0">&#40;</span>P.id<span class="br0">&#41;</span> photos, U.name owner, U.mail, U.about, U.image avatar, U.authority </div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1"><span class="kw1">FROM</span> geo_routes R </div>
</li>
<li class="li1">
<div class="de1"><span class="kw1">LEFT</span> <span class="kw1">JOIN</span> geo_comments_routes C <span class="kw1">ON</span> R.id = C.cid</div>
</li>
<li class="li2">
<div class="de2"><span class="kw1">LEFT</span> <span class="kw1">JOIN</span> geo_saved S <span class="kw1">ON</span> R.id = S.route </div>
</li>
<li class="li1">
<div class="de1"><span class="kw1">LEFT</span> <span class="kw1">JOIN</span> geo_votes V <span class="kw1">ON</span> R.id = V.route </div>
</li>
<li class="li1">
<div class="de1"><span class="kw1">LEFT</span> <span class="kw1">JOIN</span> geo_photos P <span class="kw1">ON</span> R.id = P.route </div>
</li>
<li class="li1">
<div class="de1"><span class="kw1">LEFT</span> <span class="kw1">JOIN</span> geo_users U <span class="kw1">ON</span> U.id = R.property </div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li2">
<div class="de2"><span class="kw1">GROUP</span> <span class="kw1">BY</span> R.id</div>
</li>
</ol>
</div>
<p>Pero esta consulta <strong>no daba valores correctos</strong>, sinó que en estos campos <strong>COUNT</strong> aparecía generalmente el mismo número replicado.</p>
<p>La solución es usar la cláusula <strong>DISTINCT</strong> en los <strong>COUNT</strong>, ya que en cada uno de los <strong>LEFT JOIN</strong> se están asociando muchos campos a cada registro de la tabla principal, y si no especificas el que te interesa cuántos DISTINTOS hay (<em>y no sólo cuántos hay</em>) te hincha la cifra o simplemente te la altera.</p>
<p>De modo que mi consulta ha quedado así:</p>
<div class="dean_ch" style="white-space: wrap;">
<ol>
<li class="li1">
<div class="de1"><span class="kw1">SELECT</span> R.*, COUNT<span class="br0">&#40;</span><span class="kw1">DISTINCT</span> C.id<span class="br0">&#41;</span> comments, COUNT<span class="br0">&#40;</span><span class="kw1">DISTINCT</span> S.id<span class="br0">&#41;</span> saved, COUNT<span class="br0">&#40;</span><span class="kw1">DISTINCT</span> V.id<span class="br0">&#41;</span> votes, COUNT<span class="br0">&#40;</span><span class="kw1">DISTINCT</span> P.id<span class="br0">&#41;</span> photos, U.name owner, U.mail, U.about, U.image avatar, U.authority </div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1"><span class="kw1">FROM</span> geo_routes R </div>
</li>
<li class="li1">
<div class="de1"><span class="kw1">LEFT</span> <span class="kw1">JOIN</span> geo_comments_routes C <span class="kw1">ON</span> R.id = C.cid</div>
</li>
<li class="li2">
<div class="de2"><span class="kw1">LEFT</span> <span class="kw1">JOIN</span> geo_saved S <span class="kw1">ON</span> R.id = S.route </div>
</li>
<li class="li1">
<div class="de1"><span class="kw1">LEFT</span> <span class="kw1">JOIN</span> geo_votes V <span class="kw1">ON</span> R.id = V.route </div>
</li>
<li class="li1">
<div class="de1"><span class="kw1">LEFT</span> <span class="kw1">JOIN</span> geo_photos P <span class="kw1">ON</span> R.id = P.route </div>
</li>
<li class="li1">
<div class="de1"><span class="kw1">LEFT</span> <span class="kw1">JOIN</span> geo_users U <span class="kw1">ON</span> U.id = R.property </div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li2">
<div class="de2"><span class="kw1">GROUP</span> <span class="kw1">BY</span> R.id</div>
</li>
</ol>
</div>
<p>Después he <strong><a href="http://dev.mysql.com/doc/refman/5.0/es/create-view.html">asociado a esta consulta una Vista</a></strong>, para poder tratarla como si fuera una tabla con esos campos ya incluidos.</p>
<p>Espero que estos consejos os puedan servir de mucho! A mi me ha costado mucho dar con las respuestas.</p>
]]></content:encoded>
			<wfw:commentRss>http://boozox.net/boozox/multiples-join-y-solucion-al-encadenar-left-joins/feed/</wfw:commentRss>
		<slash:comments>17</slash:comments>
		</item>
		<item>
		<title>¿Por qué cambio el código por la cámara de vídeo?</title>
		<link>http://boozox.net/boozox/%c2%bfpor-que-cambio-el-codigo-por-la-camara-de-video/</link>
		<comments>http://boozox.net/boozox/%c2%bfpor-que-cambio-el-codigo-por-la-camara-de-video/#comments</comments>
		<pubDate>Tue, 25 Aug 2009 22:26:31 +0000</pubDate>
		<dc:creator>Alex Barros</dc:creator>
				<category><![CDATA[Boozox]]></category>

		<guid isPermaLink="false">http://boozox.net/?p=714</guid>
		<description><![CDATA[La decisión está tomada, voy a cambiar el rumbo de mi vida: cambiaré la creación de webs y aplicaciones online por la creación de productos audiovisuales de mano de mi productora Zumbe. ¿Pero por qué? Porque haga lo que haga, me gusta entregarme al 100% dando el máximo de mi. En internet esto significa pasar [...]]]></description>
			<content:encoded><![CDATA[<p>La decisión está tomada, voy a <strong>cambiar el rumbo de mi vida</strong>: cambiaré la creación de <em>webs</em> y aplicaciones online por la creación de <em>productos audiovisuales</em> de mano de mi productora <strong><a href="http://zumbe.net/">Zumbe</a></strong>.</p>
<p>¿Pero por qué?</p>
<p>Porque haga lo que haga, me gusta <strong>entregarme al 100%</strong> dando el máximo de mi. En <strong>internet</strong> esto significa pasar horas y horas y más horas <strong>tecleando frente al ordenador</strong>, alejándote de las relaciones humanas. En el <strong>cine</strong> esto significa <strong>socializar con todo tu equipo</strong>, conocer gente y lugares increibles, caminar de un lado a otro&#8230;</p>
<p>Porque cuando haces páginas web <strong>todo el mundo quiere que le ayudes desinteresadamente</strong>, cosa que no me desagrada, pero sin duda <strong>absorve</strong>. Por no hablar de la cantidad de ofertas de <strong>empleo &#8220;basura&#8221;</strong> por parte de amigos, amigos de amigos y familiares, remunerados pero <strong>muy mal remunerados</strong>, porque total &#8220;<em>es lo que haces todo el día en casa sólo que encima te llevas algo a la buxaca</em>&#8221;</p>
<p>Porque <strong>amo la parte técnica y la parte artística por igual</strong>. En el cine puedes controlar el 50% de ambas fácilmente, pero en la creación de webs la parte artística es muy limitada y terriblemente compleja (hablo de <strong>buenos</strong> diseños de webs)</p>
<p>Porque quiero. Y me parece una aventura que va a merecer mucho la pena.</p>
<p><del datetime="2009-11-21T19:47:05+00:00">No me atrevo a sentenciar la muerte de este blog de temática informática, pero muy probablemente continúe mucho tiempo en coma.</del> Nop he resistido a la tentación</p>
<p>Gracias a todos por comprenderlo, y espero que veáis mis producciones con las mismas ganas que veíais mis tutoriales. Porque la informática le gusta a mucha gente, pero el entretenimiento&#8230; ¿a quién no le gusta?</p>
]]></content:encoded>
			<wfw:commentRss>http://boozox.net/boozox/%c2%bfpor-que-cambio-el-codigo-por-la-camara-de-video/feed/</wfw:commentRss>
		<slash:comments>12</slash:comments>
		</item>
		<item>
		<title>Proyectos on progress</title>
		<link>http://boozox.net/boozox/proyectos-on-progress/</link>
		<comments>http://boozox.net/boozox/proyectos-on-progress/#comments</comments>
		<pubDate>Tue, 02 Jun 2009 00:03:55 +0000</pubDate>
		<dc:creator>Alex Barros</dc:creator>
				<category><![CDATA[Boozox]]></category>

		<guid isPermaLink="false">http://boozox.net/?p=698</guid>
		<description><![CDATA[Rodaje de &#8220;Tu Muerte Está Cerca&#8221; 35% Se han rodado el capítulo 2 casi completo, y los capítulos 3 y 4 parcialmente. Faltan el 5 y 6. Estreno en Septiembre de 2009 Gpsia 3.0 55% Falta mucho diseño artístico y de interfaz manejable. Gran parte del núcleo ya está listo. Motriz 1.0 5% Proyecto en [...]]]></description>
			<content:encoded><![CDATA[<h2>Rodaje de &#8220;Tu Muerte Está Cerca&#8221;</h2>
<div style="background-color: #06c; height: 18px; width: 35%; color: #fff; font-weight: bold; text-align:right; font-size:18px; padding: 5px;">35%</div>
<p>Se han rodado el capítulo 2 casi completo, y los capítulos 3 y 4 parcialmente. Faltan el 5 y 6. Estreno en Septiembre de 2009</p>
<h2>Gpsia 3.0</h2>
<div style="background-color: #06c; height: 18px; width: 55%; color: #fff; font-weight: bold; text-align:right; font-size:18px; padding: 5px;">55%</div>
<p>Falta mucho diseño artístico y de interfaz manejable. Gran parte del núcleo ya está listo.</p>
<h2>Motriz 1.0</h2>
<div style="background-color: #06c; height: 18px; width: 5%; color: #fff; font-weight: bold; text-align:right; font-size:18px; padding: 5px;">5%</div>
<p>Proyecto en desarrollo, similar a un framework web.</p>
]]></content:encoded>
			<wfw:commentRss>http://boozox.net/boozox/proyectos-on-progress/feed/</wfw:commentRss>
		<slash:comments>8</slash:comments>
		</item>
		<item>
		<title>Iré a la Valencia Pillow Fight</title>
		<link>http://boozox.net/boozox/ire-a-la-valencia-pillow-fight/</link>
		<comments>http://boozox.net/boozox/ire-a-la-valencia-pillow-fight/#comments</comments>
		<pubDate>Thu, 28 May 2009 18:33:27 +0000</pubDate>
		<dc:creator>Alex Barros</dc:creator>
				<category><![CDATA[Boozox]]></category>

		<guid isPermaLink="false">http://boozox.net/?p=694</guid>
		<description><![CDATA[Yo voy&#8230; nos veremos allí? 13 de Junio en la pza. de la Virgen. Si estás de exámenes, no veo mejor manera de desahogarse!]]></description>
			<content:encoded><![CDATA[<p><strong>Yo voy&#8230; nos veremos allí?</strong><br />
<em>13 de Junio en la pza. de la Virgen. Si estás de exámenes, no veo mejor manera de desahogarse! <img src='http://boozox.net/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' /> </em></p>
<div style="margin-top:20px;text-align:center"><a href="http://valenciapillowfight.blogspot.com/"><img src="http://boozox.net/wp-content/flyer.jpg" alt="" title="Valencia Pillow Fight"/></a></div>
]]></content:encoded>
			<wfw:commentRss>http://boozox.net/boozox/ire-a-la-valencia-pillow-fight/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Script PHP para explorar archivos y directorios recursivamente</title>
		<link>http://boozox.net/boozox/script-php-para-explorar-archivos-y-directorios-recursivamente/</link>
		<comments>http://boozox.net/boozox/script-php-para-explorar-archivos-y-directorios-recursivamente/#comments</comments>
		<pubDate>Sat, 02 May 2009 15:59:25 +0000</pubDate>
		<dc:creator>Alex Barros</dc:creator>
				<category><![CDATA[Boozox]]></category>

		<guid isPermaLink="false">http://boozox.net/?p=686</guid>
		<description><![CDATA[No es la primera vez que necesito construirme un script como éste, así que voy a publicarlo tanto para mí en el futuro como para todo aquél que pueda servirle. Este script de PHP sencillamente recorre todos los archivos y directorios (y archivos dentro de directorios) a partir de cierta dirección que le proporciones, para [...]]]></description>
			<content:encoded><![CDATA[<p>No es la primera vez que necesito construirme un script como éste, así que voy a publicarlo tanto para mí en el futuro como para todo aquél que pueda servirle.</p>
<p>Este script de PHP sencillamente <strong>recorre todos los archivos y directorios</strong> (y archivos dentro de directorios) a partir de cierta dirección que le proporciones, para realizar la tarea que tu quieras.</p>
<p>En mi caso, necesitaba encontrar <strong>todos los archivos PHP,</strong> y buscar en su interior el <strong>primer parámetro </strong>de todas las apariciones de la <strong>función t()</strong></p>
<p>Para ello hice un ereg (expresión regular) al nombre de cada archivo, y a los que fueran php, hice otra expresión regular más compleja, que extrajera el primer parámetro de todas las funciones t() ejecutadas en el archivo, y lo almacenase en un array.</p>
<div class="dean_ch" style="white-space: wrap;">
<ol>
<li class="li1">
<div class="de1"><span class="kw2">&lt;?php</span></div>
</li>
<li class="li1">
<div class="de1"><span class="re0">$contenido</span> = <a href="http://www.php.net/array"><span class="kw3">array</span></a><span class="br0">&#40;</span><span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1"><span class="kw2">function</span> inspecRec<span class="br0">&#40;</span><span class="re0">$dir</span><span class="br0">&#41;</span> <span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <a href="http://www.php.net/global"><span class="kw3">global</span></a> <span class="re0">$contenido</span>;</div>
</li>
<li class="li2">
<div class="de2">&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">if</span> <span class="br0">&#40;</span><span class="re0">$gd</span> = <a href="http://www.php.net/opendir"><span class="kw3">opendir</span></a><span class="br0">&#40;</span><span class="re0">$dir</span><span class="br0">&#41;</span><span class="br0">&#41;</span> <span class="br0">&#123;</span> <span class="co1">//Abro directorio</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">while</span> <span class="br0">&#40;</span><span class="br0">&#40;</span><span class="re0">$ar</span> = <a href="http://www.php.net/readdir"><span class="kw3">readdir</span></a><span class="br0">&#40;</span><span class="re0">$gd</span><span class="br0">&#41;</span><span class="br0">&#41;</span> !== <span class="kw2">false</span><span class="br0">&#41;</span> <span class="br0">&#123;</span> <span class="co1">//recorro su interior</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">if</span><span class="br0">&#40;</span><a href="http://www.php.net/eregi"><span class="kw3">eregi</span></a><span class="br0">&#40;</span><span class="st0">&quot;.*<span class="es0">\.</span>php&quot;</span>,<span class="re0">$ar</span><span class="br0">&#41;</span><span class="br0">&#41;</span> <span class="br0">&#123;</span> <span class="co1">//compruebo extension</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="re0">$co</span> = <a href="http://www.php.net/file_get_contents"><span class="kw3">file_get_contents</span></a><span class="br0">&#40;</span><span class="re0">$dir</span>.<span class="st0">&#8216;/&#8217;</span>.<span class="re0">$ar</span><span class="br0">&#41;</span>; <span class="co1">//extraigo su contenido </span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <a href="http://www.php.net/preg_match_all"><span class="kw3">preg_match_all</span></a><span class="br0">&#40;</span><span class="st0">&quot;/[^a-zA-Z]t<span class="es0">\(</span>&#8216;(.*)&#8217;(,.+)?<span class="es0">\)</span>/Ui&quot;</span>,<span class="re0">$co</span>,<span class="re0">$re</span><span class="br0">&#41;</span>; <span class="co1">//compruebo funcion t()</span></div>
</li>
<li class="li2">
<div class="de2">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">if</span><span class="br0">&#40;</span><a href="http://www.php.net/count"><span class="kw3">count</span></a><span class="br0">&#40;</span><span class="re0">$re</span><span class="br0">&#91;</span><span class="nu0">1</span><span class="br0">&#93;</span><span class="br0">&#41;</span><span class="br0">&#41;</span> <span class="br0">&#123;</span> <span class="co1">//si ha encontrado contenido&#8230;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <a href="http://www.php.net/echo"><span class="kw3">echo</span></a> <span class="st0">&quot;&lt;br&gt;&lt;strong&gt;$dir/$ar&lt;/strong&gt;&quot;</span>; <a href="http://www.php.net/flush"><span class="kw3">flush</span></a><span class="br0">&#40;</span><span class="br0">&#41;</span>; <span class="co1">//imprimo el nombre de archivo</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">foreach</span><span class="br0">&#40;</span><span class="re0">$re</span><span class="br0">&#91;</span><span class="nu0">1</span><span class="br0">&#93;</span> <span class="kw1">as</span> <span class="re0">$r</span><span class="br0">&#41;</span><span class="br0">&#123;</span> <span class="co1">//introduzco frases</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">if</span><span class="br0">&#40;</span>!<a href="http://www.php.net/isset"><span class="kw3">isset</span></a><span class="br0">&#40;</span><span class="re0">$contenido</span><span class="br0">&#91;</span><span class="re0">$r</span><span class="br0">&#93;</span><span class="br0">&#41;</span><span class="br0">&#41;</span></div>
</li>
<li class="li2">
<div class="de2">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="re0">$contenido</span><span class="br0">&#91;</span><span class="re0">$r</span><span class="br0">&#93;</span> = <span class="re0">$r</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span> <span class="kw1">else</span> <span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <a href="http://www.php.net/echo"><span class="kw3">echo</span></a> <span class="st0">&quot;&lt;br&gt;$dir/$ar&quot;</span>; <a href="http://www.php.net/flush"><span class="kw3">flush</span></a><span class="br0">&#40;</span><span class="br0">&#41;</span>; <span class="co1">//imprimo nombre de archivo</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span> </div>
</li>
<li class="li2">
<div class="de2">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span> <span class="kw1">elseif</span><span class="br0">&#40;</span><a href="http://www.php.net/is_dir"><span class="kw3">is_dir</span></a><span class="br0">&#40;</span><span class="re0">$ar</span><span class="br0">&#41;</span> &amp;&amp; <span class="re0">$ar</span> != <span class="st0">&#8216;.&#8217;</span> &nbsp;&amp;&amp; <span class="re0">$ar</span> != <span class="st0">&#8216;..&#8217;</span><span class="br0">&#41;</span> <span class="br0">&#123;</span> <span class="co1">//si es un directorio..</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; inspecRec<span class="br0">&#40;</span><span class="re0">$ar</span><span class="br0">&#41;</span>; <span class="co1">//recursivamente lo inspecciono tambien</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <a href="http://www.php.net/closedir"><span class="kw3">closedir</span></a><span class="br0">&#40;</span><span class="re0">$gd</span><span class="br0">&#41;</span>; <span class="co1">//cierro el recurso</span></div>
</li>
<li class="li2">
<div class="de2">&nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span> <span class="kw1">else</span> <span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <a href="http://www.php.net/echo"><span class="kw3">echo</span></a> <span class="st0">&quot;&lt;hr&gt;Error: $dir&lt;br&gt;&quot;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span></div>
</li>
<li class="li1">
<div class="de1"><span class="br0">&#125;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li2">
<div class="de2">inspecRec<span class="br0">&#40;</span><span class="st0">&#8216;./&#8217;</span><span class="br0">&#41;</span>; <span class="co1">//Ejecuto desde el directorio actual</span></div>
</li>
<li class="li1">
<div class="de1"><span class="kw2">?&gt;</span></div>
</li>
</ol>
</div>
<p><strong><a href="http://boozox.net/jaula/inspecRec.phps">[Descargar código]</a></strong></p>
<p>El uso que le he dado esta vez, más concretamente, era recorrer todos los archivos del programa Gpsia, para buscar la función t() que es la encargada de <strong>traducir</strong>. Quiero pasar del sistema actual hecho por mí, al <strong>sistema estándar de traducción</strong> que es gettext(), soportado por PHP (como WordPress). <em>(Hablaré de esto próximamente)</em></p>
<p>Estas traducciones se hacen a partir de archivos .po, y mi script genera automáticamente un archivo .po preparado para ser traducido a cualquier idioma. El código específico es éste:</p>
<div class="dean_ch" style="white-space: wrap;">
<ol>
<li class="li1">
<div class="de1">msgid <span class="st0">&quot;&quot;</span></div>
</li>
<li class="li1">
<div class="de1">msgstr <span class="st0">&quot;&quot;</span></div>
</li>
<li class="li1">
<div class="de1"><span class="st0">&quot;Project-Id-Version: Gpsia 3.0<span class="es0">\n</span>&quot;</span></div>
</li>
<li class="li1">
<div class="de1"><span class="st0">&quot;POT-Creation-Date: <span class="es0">\n</span>&quot;</span></div>
</li>
<li class="li2">
<div class="de2"><span class="st0">&quot;PO-Revision-Date: <span class="es0">\n</span>&quot;</span></div>
</li>
<li class="li1">
<div class="de1"><span class="st0">&quot;Last-Translator: Alex Barros &lt;zumbenet@gmail.com&gt;<span class="es0">\n</span>&quot;</span></div>
</li>
<li class="li1">
<div class="de1"><span class="st0">&quot;Language-Team: <span class="es0">\n</span>&quot;</span></div>
</li>
<li class="li1">
<div class="de1"><span class="st0">&quot;MIME-Version: 1.0<span class="es0">\n</span>&quot;</span></div>
</li>
<li class="li1">
<div class="de1"><span class="st0">&quot;Content-Type: text/plain; charset=utf-8<span class="es0">\n</span>&quot;</span></div>
</li>
<li class="li2">
<div class="de2"><span class="st0">&quot;Content-Transfer-Encoding: 8bit<span class="es0">\n</span>&quot;</span></div>
</li>
<li class="li1">
<div class="de1"><span class="st0">&quot;X-Poedit-Language: Spanish<span class="es0">\n</span>&quot;</span></div>
</li>
<li class="li1">
<div class="de1"><span class="st0">&quot;X-Poedit-Country: SPAIN<span class="es0">\n</span>&quot;</span></div>
</li>
<li class="li1">
<div class="de1"><span class="st0">&quot;X-Poedit-SourceCharset: utf-8<span class="es0">\n</span>&quot;</span></div>
</li>
<li class="li1">
<div class="de1"><span class="kw2">&lt;?php</span></div>
</li>
<li class="li2">
<div class="de2"><span class="re0">$frases</span> = <a href="http://www.php.net/array"><span class="kw3">array</span></a><span class="br0">&#40;</span><span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1"><span class="kw2">function</span> inspecRec<span class="br0">&#40;</span><span class="re0">$dir</span><span class="br0">&#41;</span> <span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <a href="http://www.php.net/global"><span class="kw3">global</span></a> <span class="re0">$frases</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">if</span> <span class="br0">&#40;</span><span class="re0">$gd</span> = <a href="http://www.php.net/opendir"><span class="kw3">opendir</span></a><span class="br0">&#40;</span><span class="re0">$dir</span><span class="br0">&#41;</span><span class="br0">&#41;</span> <span class="br0">&#123;</span></div>
</li>
<li class="li2">
<div class="de2">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">while</span> <span class="br0">&#40;</span><span class="br0">&#40;</span><span class="re0">$ar</span> = <a href="http://www.php.net/readdir"><span class="kw3">readdir</span></a><span class="br0">&#40;</span><span class="re0">$gd</span><span class="br0">&#41;</span><span class="br0">&#41;</span> !== <span class="kw2">false</span><span class="br0">&#41;</span> <span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">if</span><span class="br0">&#40;</span><a href="http://www.php.net/eregi"><span class="kw3">eregi</span></a><span class="br0">&#40;</span><span class="st0">&quot;.*<span class="es0">\.</span>php&quot;</span>,<span class="re0">$ar</span><span class="br0">&#41;</span><span class="br0">&#41;</span> <span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="re0">$co</span> = <a href="http://www.php.net/file_get_contents"><span class="kw3">file_get_contents</span></a><span class="br0">&#40;</span><span class="re0">$dir</span>.<span class="st0">&#8216;/&#8217;</span>.<span class="re0">$ar</span><span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <a href="http://www.php.net/preg_match_all"><span class="kw3">preg_match_all</span></a><span class="br0">&#40;</span><span class="st0">&quot;/[^a-zA-Z]t<span class="es0">\(</span>&#8216;(.*)&#8217;(,.+)?<span class="es0">\)</span>/Ui&quot;</span>,<span class="re0">$co</span>,<span class="re0">$re</span><span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </div>
</li>
<li class="li2">
<div class="de2">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">if</span><span class="br0">&#40;</span><a href="http://www.php.net/count"><span class="kw3">count</span></a><span class="br0">&#40;</span><span class="re0">$re</span><span class="br0">&#91;</span><span class="nu0">1</span><span class="br0">&#93;</span><span class="br0">&#41;</span><span class="br0">&#41;</span> <span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="co2">#echo &quot;&lt;br&gt;&lt;strong&gt;$dir/$ar&lt;/strong&gt;&quot;; flush();</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">foreach</span><span class="br0">&#40;</span><span class="re0">$re</span><span class="br0">&#91;</span><span class="nu0">1</span><span class="br0">&#93;</span> <span class="kw1">as</span> <span class="re0">$r</span><span class="br0">&#41;</span><span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">if</span><span class="br0">&#40;</span>!<a href="http://www.php.net/isset"><span class="kw3">isset</span></a><span class="br0">&#40;</span><span class="re0">$frases</span><span class="br0">&#91;</span><span class="re0">$r</span><span class="br0">&#93;</span><span class="br0">&#41;</span><span class="br0">&#41;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="re0">$frases</span><span class="br0">&#91;</span><span class="re0">$r</span><span class="br0">&#93;</span> = <span class="re0">$r</span>;</div>
</li>
<li class="li2">
<div class="de2">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span> <span class="kw1">else</span> <span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="co2">#echo &quot;&lt;br&gt;$dir/$ar&quot;; flush();</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span> </div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span> <span class="kw1">elseif</span><span class="br0">&#40;</span><a href="http://www.php.net/is_dir"><span class="kw3">is_dir</span></a><span class="br0">&#40;</span><span class="re0">$ar</span><span class="br0">&#41;</span> &amp;&amp; <span class="re0">$ar</span> != <span class="st0">&#8216;.&#8217;</span> &nbsp;&amp;&amp; <span class="re0">$ar</span> != <span class="st0">&#8216;..&#8217;</span><span class="br0">&#41;</span> <span class="br0">&#123;</span></div>
</li>
<li class="li2">
<div class="de2">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; inspecRec<span class="br0">&#40;</span><span class="re0">$ar</span><span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <a href="http://www.php.net/closedir"><span class="kw3">closedir</span></a><span class="br0">&#40;</span><span class="re0">$gd</span><span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span> <span class="kw1">else</span> <span class="br0">&#123;</span></div>
</li>
<li class="li2">
<div class="de2">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="co2">#echo &quot;&lt;hr&gt;Error: $dir&lt;br&gt;&quot;;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span></div>
</li>
<li class="li1">
<div class="de1"><span class="br0">&#125;</span></div>
</li>
<li class="li1">
<div class="de1">inspecRec<span class="br0">&#40;</span><span class="st0">&#8216;./&#8217;</span><span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1"><a href="http://www.php.net/sort"><span class="kw3">sort</span></a><span class="br0">&#40;</span><span class="re0">$frases</span><span class="br0">&#41;</span>;</div>
</li>
<li class="li2">
<div class="de2"><span class="kw1">foreach</span><span class="br0">&#40;</span><span class="re0">$frases</span> <span class="kw1">as</span> <span class="re0">$f</span><span class="br0">&#41;</span> <span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <a href="http://www.php.net/echo"><span class="kw3">echo</span></a> <span class="st0">&quot;msgid <span class="es0">\&quot;</span>&quot;</span>.<a href="http://www.php.net/str_replace"><span class="kw3">str_replace</span></a><span class="br0">&#40;</span><a href="http://www.php.net/array"><span class="kw3">array</span></a><span class="br0">&#40;</span><span class="st0">&#8216;&quot;&#8217;</span>,<span class="st0">&quot;<span class="es0">\n</span>&quot;</span><span class="br0">&#41;</span>,<a href="http://www.php.net/array"><span class="kw3">array</span></a><span class="br0">&#40;</span><span class="st0">&#8216;<span class="es0">\&#8221;</span>&#8216;</span>,<span class="st0">&quot;&quot;</span><span class="br0">&#41;</span>,<a href="http://www.php.net/stripslashes"><span class="kw3">stripslashes</span></a><span class="br0">&#40;</span><span class="re0">$f</span><span class="br0">&#41;</span><span class="br0">&#41;</span>.<span class="st0">&quot;<span class="es0">\&quot;</span><span class="es0">\n</span>msgstr <span class="es0">\&quot;</span><span class="es0">\&quot;</span><span class="es0">\n</span><span class="es0">\n</span>&quot;</span>;</div>
</li>
<li class="li1">
<div class="de1"><span class="br0">&#125;</span></div>
</li>
<li class="li1">
<div class="de1"><span class="kw2">?&gt;</span></div>
</li>
</ol>
</div>
<p><strong><a href="http://boozox.net/jaula/pofile.phps">[Descargar código]</a></strong></p>
]]></content:encoded>
			<wfw:commentRss>http://boozox.net/boozox/script-php-para-explorar-archivos-y-directorios-recursivamente/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Retomando Gpsia con fuerza</title>
		<link>http://boozox.net/boozox/retomando-gpsia-con-fuerza/</link>
		<comments>http://boozox.net/boozox/retomando-gpsia-con-fuerza/#comments</comments>
		<pubDate>Tue, 28 Apr 2009 19:06:39 +0000</pubDate>
		<dc:creator>Alex Barros</dc:creator>
				<category><![CDATA[Boozox]]></category>

		<guid isPermaLink="false">http://boozox.net/?p=676</guid>
		<description><![CDATA[Gpsia es una aplicación que desarrollo en mi tiempo libre, que consiste en subir y compartir rutas grabadas con GPS, con muchas características muy interesantes. Es una aplicación con mucho potencial, porque el de &#8220;usuarios de GPS con ganas de copartir rutas&#8221;, es un público que está ahí, que está esperando que le ofrezcas una [...]]]></description>
			<content:encoded><![CDATA[<p><strong><a href="http://gpsia.com">Gpsia</a></strong> es una <strong>aplicación que desarrollo en mi tiempo libre</strong>, que consiste en <strong>subir y compartir rutas grabadas con GPS</strong>, con muchas <em>características</em> muy interesantes.</p>
<p><img style="float:left;margin:10px;" src="http://farm4.static.flickr.com/3023/2301729653_684e355fe4_m.jpg" alt="Nokia Sports Tracker foto de nighto" />Es una aplicación con mucho potencial, porque el de <em>&#8220;usuarios de GPS con ganas de copartir rutas&#8221;</em>, es un público que <strong>está ahí</strong>, que está esperando que le ofrezcas una <strong>buena solución</strong>. Además me encanta porque es una aplicación que realmente <strong>ayuda</strong> a la gente a conseguir lo que quiere, no es una <em>banalidad 2.0</em> (que abundan mucho por la red).</p>
<p>Pues bien, de vez en cuando me dan <em>venazos</em> y retomo mis proyectos de golpe, y <strong>anoche fue uno de esos días</strong>. Tengo miles de hojas con <em>bocetos</em> de lo que quiero construir, tanto en <strong>diseño</strong> como en funcionalidad, y en corrección de bugs y optimización.</p>
<p>No recordaba <strong>cuánto me gusta desarrollar aplicaciones</strong>! Estos días voy a intentar dedicarle tiempo a desarrollar todo lo que tengo en mente. Entre otras cosas, aprenderé a sincronizar <strong>programas en C y programas en PHP.</strong> </p>
<p><strong>¡Qué nervios! ¿Alguien tiene idea?</strong></p>
<p><em>[Fotografía de <a href="http://www.flickr.com/photos/nighto/">Nighto</a>]</em></p>
]]></content:encoded>
			<wfw:commentRss>http://boozox.net/boozox/retomando-gpsia-con-fuerza/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Creación musical</title>
		<link>http://boozox.net/boozox/creacion-musical/</link>
		<comments>http://boozox.net/boozox/creacion-musical/#comments</comments>
		<pubDate>Mon, 20 Apr 2009 02:52:24 +0000</pubDate>
		<dc:creator>Alex Barros</dc:creator>
				<category><![CDATA[Boozox]]></category>

		<guid isPermaLink="false">http://boozox.net/?p=666</guid>
		<description><![CDATA[Resulta que últimamente ando muy susceptible por el tema de creación musical. Y esque estamos creando la banda sonora de la serie Tu Muerte Está Cerca. Estubimos barajando Jamendo mucho tiempo, y de hecho usaremos alguna canción libre por enmedio, pero la Banda Sonora Original será creada íntegramente por nosotros. Estamos aún produciéndola, al igual [...]]]></description>
			<content:encoded><![CDATA[<p><a style="float:right; margin:5px;" href="http://www.flickr.com/photos/alexbarros/2244743731/" title="Hell's music por Alex Barros, en Flickr"><img src="http://farm3.static.flickr.com/2265/2244743731_5743d4a7c8_m.jpg" width="240" height="144" alt="Hell's music" /></a> Resulta que últimamente ando muy susceptible por el tema de <strong>creación musical</strong>. </p>
<p>Y esque <strong>estamos creando la banda sonora de la serie <a href="http://tumuerteestacerca.com">Tu Muerte Está Cerca</a></strong>. Estubimos barajando <a href="http://jamendo.com">Jamendo</a> mucho tiempo, y de hecho usaremos alguna canción libre por enmedio, pero la <strong>Banda Sonora Original</strong> será creada íntegramente por nosotros. </p>
<p>Estamos aún produciéndola, al igual que la serie. Aquí podéis descargaros <strong><a href="http://lexbar.es/d/pruebas_TMEC.mp3">un pequeño mp3</a></strong> de un día que estubimos experimentando al piano con los <strong>mágicos dedos de Laura Abarca</strong>. Auguro una Banda Sonora excepcional. (La liberaremos bajo <a href="http://creativecommons.com">Creative Commons</a>, cómo no!)</p>
<p>Y todo esto viene a cuento de que acabo de toparme con <a href="http://thru-you.com">la web de un <strong>audiocreador</strong></a>, que se dedica a recoger <strong>vídeos caseros de youtube y componer música con sus fragmentos</strong>, y el resultado es asombroso, una vez te adentras en la creación de audio aprecias lo <strong>verdaderamente complicado que resulta</strong>.</p>
<p>Visto en <a href="http://cortosytrailers.com/2009/04/13/kutiman-y-el-poder-de-la-mezcla/">Cortos &#038; Trailers</a></p>
<p><em>P.D.: Como novedad, en la barra lateral he empezado a colgar la música que oigo para compartirla con todos, porque <a href="http://www.filmica.com/david_bravo/">es legal</a>, y porque a través de Boozox me gustaría inspirar, y la música es fundamental.</em></p>
]]></content:encoded>
			<wfw:commentRss>http://boozox.net/boozox/creacion-musical/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
<enclosure url="http://lexbar.es/d/pruebas_TMEC.mp3" length="1020165" type="audio/mpeg" />
		</item>
		<item>
		<title>Nuevos horizontes en Boozox</title>
		<link>http://boozox.net/boozox/nuevos-horizontes-en-boozox/</link>
		<comments>http://boozox.net/boozox/nuevos-horizontes-en-boozox/#comments</comments>
		<pubDate>Mon, 20 Apr 2009 02:17:16 +0000</pubDate>
		<dc:creator>Alex Barros</dc:creator>
				<category><![CDATA[Boozox]]></category>

		<guid isPermaLink="false">http://boozox.net/?p=660</guid>
		<description><![CDATA[Va, esto no es serio! Me estoy desparramando demasiado, y la excusa de que &#8220;me falta tiempo&#8221; ha dejado de ser viable. Para quien no lo sepa, me he tomado un cuatrimestre sabático de universidad. Pero ya habrá tiempo para mi vida privada en otra ocasión. Me gustaría retomar el ritmo de Boozox, como Blog [...]]]></description>
			<content:encoded><![CDATA[<p><a style="float:left;margin:8px" href="http://www.flickr.com/photos/alexbarros/3410101187/" title="sad song por Alex Barros, en Flickr"><img src="http://farm4.static.flickr.com/3566/3410101187_c0275a71c7_m.jpg" width="240" height="180" alt="sad song" /></a> Va, esto no es serio! <strong>Me estoy desparramando demasiado</strong>, y la excusa de que &#8220;<em>me falta tiempo</em>&#8221; ha dejado de ser viable. Para quien no lo sepa, me he tomado un cuatrimestre sabático de universidad.</p>
<p>Pero ya habrá tiempo para mi vida privada en otra ocasión. Me gustaría<strong> retomar el ritmo de Boozox,</strong> como <strong>Blog personal</strong>, dándole otra perspectiva. <strong style="color:#06c">¿Habrá programación web? </strong><em>Sí, por supuesto, pero en dosis mucho menores</em>. Mi vida <u>ha cambiado</u>, y en consecuencia mi blog lo hará también.</p>
<p><a style="float:right;margin:8px" href="http://www.flickr.com/photos/alexbarros/3457288525/" title="Ashout por Alex Barros, en Flickr"><img src="http://farm4.static.flickr.com/3534/3457288525_d46144b397_m.jpg" width="240" height="180" alt="Ashout" /></a> En esta nueva etapa además de informática y creación web se tocará mucho más <strong>terreno artístico</strong>, de <strong>videocreación</strong>, <strong>inspiración</strong>, y otros temas más personales.</p>
<p>Si estabas suscrito al RSS, te sugiero que des <strong>una nueva oportunidad</strong> a Boozox, espero que su nueva cara te guste igual o más que la anterior! </p>
<p><strong>Nos vemos muy pronto aquí mismo. Qué ganas tenía de regresar!!</strong></p>
]]></content:encoded>
			<wfw:commentRss>http://boozox.net/boozox/nuevos-horizontes-en-boozox/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
	</channel>
</rss>

