<?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>Alfonso Jiménez</title>
	<atom:link href="http://alfonsojimenez.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://alfonsojimenez.com</link>
	<description>[stray-random categories=default noajax=true disableaspect=false]</description>
	<lastBuildDate>Thu, 29 Jul 2010 22:25:01 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>5 tips for working from home</title>
		<link>http://alfonsojimenez.com/thoughts/5-tips-for-working-from-home/</link>
		<comments>http://alfonsojimenez.com/thoughts/5-tips-for-working-from-home/#comments</comments>
		<pubDate>Thu, 29 Jul 2010 22:25:01 +0000</pubDate>
		<dc:creator>alfonsojimenez</dc:creator>
				<category><![CDATA[Thoughts]]></category>
		<category><![CDATA[remote job]]></category>
		<category><![CDATA[telecommute]]></category>

		<guid isPermaLink="false">http://alfonsojimenez.com/?p=1260</guid>
		<description><![CDATA[
I have been working in my pyjamas since more than two years ago. I mean by this that I have been working remotely from home. Now you may be thinking, I could never do that, and yeah, you are right, this kind of job is not made for everyone. It&#8217;s got its advantages, but it&#8217;s [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://farm4.static.flickr.com/3526/3818230214_90443aede5.jpg" alt="Home office" class="centro" /></p>
<p>I have been working in my pyjamas since more than two years ago. I mean by this that I have been working remotely from home. Now you may be thinking, I could never do that, and yeah, you are right, this kind of job is not made for everyone. It&#8217;s got its advantages, but it&#8217;s got its disadvantages as well like everything else in the world. If you don&#8217;t organize yourself thoroughly, you will never be able to put up with it for a long time. I must to admit that I sometimes miss working in an office with my colleagues, but in the other hand I&#8217;m absolutely aware of the great advantages that my current job offers me. I think the right thing to do is try to find a good balance among work and free time. Here you have some tips to help you find that balance.</p>
<h2>1. Don&#8217;t work and spend your free time in the same place</h2>
<p>This is one of the hardest facts for anyone working remotely to stand. It&#8217;s very frustrating (and unhealthy?) to sleep, work, eat, have a shower, watch TV, &#8230; in only one room. I know sometimes you have no choice since I also had to do all my life within four walls whilst I was living in San Francisco. Having a bed at a few meters from you when you are working on something boring is very tempting. Believe me, your productivity could fall off by far. So as long you can avoid doing this. Try to set up an independent workspace free of distractions.</p>
<h2>2. Make people who are living with you realize that you are working</h2>
<p>In case you are not living on your own, some people will find hard to realize that you are really working, not spending all day at home. They will tend to talk to you or ask you to do things whilst you are working. Let them know when you knock off.</p>
<h2>3. Make a good use of the free time that a telecommute job offers you</h2>
<p>One of the best advantages of working from home is the large amount of time that you can save in a day. I have realized that I can have up to 2 hours of free time more than when I was working in an office (trains, traffic stucks, lunch times, &#8230;). I normally spend that time on housework (laundry, house cleaning, grocery shopping, cooking, &#8230;) and on chilling me out.</p>
<h2>4. Have a work timetable and carry it out strictly</h2>
<p>Despite some companies already sets you a work timetable, normally they will give you the freedom of work whenever you want within reasonable limits. So this is when you have to discipline yourself and stick to working hours. You can also try to fit your timetable around people living with you, therefore you will avoid becoming very unsociable. Don&#8217;t get up too early or too late, design timetable which you can feel comfortable with.</p>
<h2>5. Try to be available as much as you can</h2>
<p>This is a very important point to have in mind when you are a telecommute worker: <strong>availability</strong>. Try to be available for your company as much as you can, at least during working hours. There are loads of ways you can be contacted by: phone, mail, IM, VoIP, &#8230; It&#8217;s very frustrating when you need a guy who you are paying for and you can&#8217;t find him/her.</p>
<p>Image | <a href="http://www.flickr.com/photos/tyleringram/3818230214/" title="TylerIngram">TylerIngram</a></p>
]]></content:encoded>
			<wfw:commentRss>http://alfonsojimenez.com/thoughts/5-tips-for-working-from-home/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>2011 Porsche Boxster Spyder</title>
		<link>http://alfonsojimenez.com/cars/2011-porsche-boxster-spyder/</link>
		<comments>http://alfonsojimenez.com/cars/2011-porsche-boxster-spyder/#comments</comments>
		<pubDate>Sun, 30 May 2010 11:18:26 +0000</pubDate>
		<dc:creator>alfonsojimenez</dc:creator>
				<category><![CDATA[Cars]]></category>
		<category><![CDATA[boxster]]></category>
		<category><![CDATA[california]]></category>
		<category><![CDATA[monterrey]]></category>
		<category><![CDATA[porsche]]></category>
		<category><![CDATA[spyder]]></category>
		<category><![CDATA[video]]></category>
		<category><![CDATA[vimeo]]></category>

		<guid isPermaLink="false">http://alfonsojimenez.com/?p=1267</guid>
		<description><![CDATA[
2011 Porsche Boxster Spyder. 320-hp, 3.4-liter flat-six
]]></description>
			<content:encoded><![CDATA[<p><object width="622" height="412"><param name="allowfullscreen" value="true" /><param name="allowscriptaccess" value="always" /><param name="movie" value="http://vimeo.com/moogaloop.swf?clip_id=7961759&amp;server=vimeo.com&amp;show_title=0&amp;show_byline=0&amp;show_portrait=0&amp;color=d40707&amp;fullscreen=1" /><embed src="http://vimeo.com/moogaloop.swf?clip_id=7961759&amp;server=vimeo.com&amp;show_title=0&amp;show_byline=0&amp;show_portrait=0&amp;color=d40707&amp;fullscreen=1" type="application/x-shockwave-flash" allowfullscreen="true" allowscriptaccess="always" width="622" height="412"></embed></object></p>
<p>2011 Porsche Boxster Spyder. 320-hp, 3.4-liter flat-six</p>
]]></content:encoded>
			<wfw:commentRss>http://alfonsojimenez.com/cars/2011-porsche-boxster-spyder/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>La cultura de la propina en los Estados Unidos</title>
		<link>http://alfonsojimenez.com/thoughts/la-cultura-de-la-propina-en-los-estados-unidos/</link>
		<comments>http://alfonsojimenez.com/thoughts/la-cultura-de-la-propina-en-los-estados-unidos/#comments</comments>
		<pubDate>Sun, 14 Feb 2010 07:24:45 +0000</pubDate>
		<dc:creator>alfonsojimenez</dc:creator>
				<category><![CDATA[Thoughts]]></category>
		<category><![CDATA[economía]]></category>
		<category><![CDATA[estados unidos]]></category>
		<category><![CDATA[propinas]]></category>
		<category><![CDATA[Spanish]]></category>
		<category><![CDATA[tips]]></category>

		<guid isPermaLink="false">http://alfonsojimenez.com/?p=1238</guid>
		<description><![CDATA[Una propina consiste en el pago voluntario como recompensa por un buen trato recibido. Generalmente estos pagos van dirigidos a empleados del sector servicios (camareros, taxistas, &#8230;). En Europa es bastante común dejar una parte del cambio como propina cuando la atención por parte del servidor ha sido excepcional y por lo consiguiente el cliente [...]]]></description>
			<content:encoded><![CDATA[<p><img alt="" src="http://upload.wikimedia.org/wikipedia/commons/6/63/USCurrency_Federal_Reserve.jpg" title="Dollars" class="derecha_sinmarco" width="255" height="416" />Una propina consiste en el <strong>pago voluntario</strong> como recompensa por un buen trato recibido. Generalmente estos pagos van dirigidos a empleados del sector servicios (camareros, taxistas, &#8230;). En Europa es bastante común dejar una parte del cambio como propina cuando la atención por parte del servidor ha sido excepcional y por lo consiguiente el cliente se siente muy satisfecho por ello. En mi caso suelo dejar algo de propina cuando en un restaurante me sirven extraordinariamente bien, es decir, en muy pocas ocasiones. Y con esto no quiero decir que me traten mal ni mucho menos. En muchos restaurantes se incluye en la factura un cargo extra por el servicio (normalmente viene descrito en concepto de cubierto), el cual por ley el cliente está en pleno derecho a no pagar en caso de que el servicio no haya sido lo suficientemente bueno.</p>
<p>En los Estados Unidos la cultura de la propina es bastante peculiar, incluso puede resultar un tanto chocante para el visitante. Es un objeto de opiniones sin límites y dispares, aunque está más que asumido resignadamente por la sociedad estadounidense. Aquí la propina entra en un escenario donde deja de ser voluntaria y pasa a ser una <strong>obligación moral</strong>. Tal es dicha obligación, que si no se deja propina la sensación equivale a marcharse del establecimiento sin pagar. Esta práctica aceptada por la sociedad establece que es necesario propinar a la persona que te sirve <strong>una cantidad comprendida entre el 10% y el 20% del importe total de la factura</strong>. Es muy probable que si en un restaurante no dejas nada de propina el camarero te exija su gratificación, ya que lo consideran como una buena parte de su sueldo. Y digo una buena parte de su sueldo porque en los Estados Unidos un camarero normalmente cobra el <em>minimum wage</em> establecido por cada estado, entonces la mayoría de las veces la recaudación de propinas puede llegar a superar al propio salario. De hecho las propinas se incluyen en la declaración fiscal como ingresos (al menos un 8%), un invento del orwelliano IRS (<em>Internal Revenue Service</em>) para intentar subsanar los agravios producidos en la economía sumergida del país, porque&#8230; ¿cuanto dinero se mueve al año en los Estados Unidos en concepto de propinas? Obviamente este sistema es el negocio perfecto para el dueño del restaurante, puesto que no necesita pagar a sus empleados un salario relativamente alto, ya que éstos se complementan gracias a la &#8220;voluntad&#8221; de los clientes y evitan el tener que abonar una cantidad bastante importante de impuestos.</p>
<p>En mi opinión cuando una propina deja de ser voluntaria deja de ser propina. He vivido experiencias totalmente opuestas en otros países como Japón, donde el hecho de dejar una propina puede llegar a ser incluso ofensivo para el camarero. Personalmente pienso que los gastos del servicio deberían de estar incluido siempre en el precio que aparece en el menú, como también lo están la mesa y el mantel que se predispone para el cliente. Además, el buen servicio es aquel que resulta totalmente transparente para el consumidor, no se trata de ofrecer una adulación extrema por el mero hecho de conseguir una propina mayor.</p>
<p>Un argumento, que por cierto no me gusta nada, a favor de las propinas obligatorias en USA se basa en que el salario medio de un camarero es bastante bajo. Aunque no me da exactamente igual, me temo decir que este problema no atañe al cliente. Puestos así hasta se puede considerar como una desigualdad de oportunidades respecto a otros trabajadores de sectores diferentes y con sueldos bajos. De este modo, ¿por qué no propinamos a una señora de la limpieza o a un cajero de de un supermercado?</p>
<p>También cabe decir que el sistema proclive a calcular una propina basada proporcionalmente al total de la factura me parece un tanto irracional. Siguiendo la regla del 20%, si en un restaurante pido una botella de vino valorada en $40 necesitaría pagar $8 en concepto de propina. Sin embargo, si pido otra botella valorada en $400, el gasto correspondiente a la propina asciende a $80. ¿Realmente supone al camarero una carga mayor de trabajo traer una botella más cara o más barata? A mi modo de ver, esta fórmula carece de sentido.</p>
<p>Por suerte o degracia y debido al carácter intangible del asunto, seguiré propinando a diestro y siniestro mientras esté por Estados Unidos, remitiéndome al proverbio de San Ambrosio de Milán, <em>cuando estés en Roma, haz como los romanos</em>.</p>
]]></content:encoded>
			<wfw:commentRss>http://alfonsojimenez.com/thoughts/la-cultura-de-la-propina-en-los-estados-unidos/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Integrating Yahoo r3 with Phing</title>
		<link>http://alfonsojimenez.com/php/integrating-yahoo-r3-with-phing/</link>
		<comments>http://alfonsojimenez.com/php/integrating-yahoo-r3-with-phing/#comments</comments>
		<pubDate>Mon, 21 Dec 2009 17:13:47 +0000</pubDate>
		<dc:creator>alfonsojimenez</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[continuous integration]]></category>
		<category><![CDATA[phing]]></category>
		<category><![CDATA[yahoo]]></category>
		<category><![CDATA[yahoo r3]]></category>

		<guid isPermaLink="false">http://www.alfonsojimenez.com/2009/12/21-integrating-yahoo-r3-with-phing</guid>
		<description><![CDATA[Yahoo r3 is a powerful tool for building websites which could require multiple languages or dimensions. The r3 outputs may be plain text files, web templates, configuration files or even source code. Sometimes maintaining a big site translated into different languages can become a nightmare, but r3 lets you do it on an easy way. [...]]]></description>
			<content:encoded><![CDATA[<p><img class="derecha_sinmarco" src="http://img.alfonsojimenez.com/2009/12/phing-yahoo-r3.jpg" alt="Phing Yahoo r3" /><strong>Yahoo r3</strong> is a powerful tool for building websites which could require multiple languages or dimensions. The <strong>r3</strong> outputs may be plain text files, web templates, configuration files or even source code. Sometimes maintaining a big site translated into different languages can become a nightmare, but <strong>r3</strong> lets you do it on an easy way. It offers a neat and powerful command line interface which will make your life easier. It can also be managed by using a web interface.</p>
<p>I know this could be a somewhat confusing thing to explain, so I&#8217;m going to try to give an example of what you can do with it. At <strong>Weblogs SL</strong>, we have a platform which handles instances of 37 blogs in 2 languages (Spanish and Portuguese), so we have to maintain 37&#215;2 = 74 sites. They almost share the same layout structure, but sometimes we need to make specific changes on certain site (maybe a customized header or sidebar). <strong>r3</strong> lets you do all this kind of things by specializing templates for a particular site/language. Coming back to our example, we have two dimensions: <strong>blog</strong> and <strong>language</strong>. Once we have created the dimensions, we can generate all the templates. These raw templates are <strong>parseable</strong> by the template engine included within our platform, so they are processed by the application afterwards. We can also put all the &#8220;static variables&#8221; for each blog (such as blog titles, URLs, paths, &#8230;) during this pre-build process.</p>
<p>So after far too much research, we came up with <strong>Yahoo r3</strong>, but we still had an itch to scratch: how can we integrate this into our continuous integration workflow? We are using <strong>Phing</strong> (and <em>Java Ant</em>) for building our sites, so it was nice to have some <strong>Phing</strong> tasks to work with <strong>r3</strong>. So I wrote these two tasks:</p>
<h2>r3GenerateTask.php</h2>
<div class="codecolorer-container php blackboard" style="overflow:auto;white-space:nowrap;border: 1px solid #9F9F9F;width:435px;height:500px;"><div class="php codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #b1b100;">require_once</span> <span style="color: #0000ff;">'phing/Task.php'</span><span style="color: #339933;">;</span><br />
<span style="color: #009933; font-style: italic;">/**<br />
&nbsp;* r3 Generate Task<br />
&nbsp;*<br />
&nbsp;* PHP version 5<br />
&nbsp;*<br />
&nbsp;* @category &nbsp;Phing Task<br />
&nbsp;* @package &nbsp; phing<br />
&nbsp;* @author &nbsp; &nbsp;Alfonso Jimenez<br />
&nbsp;* license &nbsp; http://www.gnu.org/licenses/gpl.html GPL<br />
&nbsp;*<br />
&nbsp;*/</span><br />
<span style="color: #000000; font-weight: bold;">class</span> r3GenerateTask <span style="color: #000000; font-weight: bold;">extends</span> Task<br />
<span style="color: #009900;">&#123;</span><br />
&nbsp; &nbsp; <span style="color: #009933; font-style: italic;">/**<br />
&nbsp; &nbsp; &nbsp;* path to r3 workspace<br />
&nbsp; &nbsp; &nbsp;*<br />
&nbsp; &nbsp; &nbsp;* var &nbsp;string<br />
&nbsp; &nbsp; &nbsp;*/</span><br />
&nbsp; &nbsp; protected <span style="color: #000088;">$r3Workspace</span><span style="color: #339933;">;</span><br />
<br />
&nbsp; &nbsp; <span style="color: #009933; font-style: italic;">/**<br />
&nbsp; &nbsp; &nbsp;* init method<br />
&nbsp; &nbsp; &nbsp;*<br />
&nbsp; &nbsp; &nbsp;* @return boolean<br />
&nbsp; &nbsp; &nbsp;*/</span><br />
&nbsp; &nbsp; <span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000000; font-weight: bold;">function</span> init<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><br />
&nbsp; &nbsp; <span style="color: #009900;">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #b1b100;">return</span> <span style="color: #009900; font-weight: bold;">true</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; <span style="color: #009900;">&#125;</span><br />
<br />
&nbsp; &nbsp; <span style="color: #009933; font-style: italic;">/**<br />
&nbsp; &nbsp; &nbsp;* main method<br />
&nbsp; &nbsp; &nbsp;*<br />
&nbsp; &nbsp; &nbsp;* @return void<br />
&nbsp; &nbsp; &nbsp;*/</span><br />
&nbsp; &nbsp; <span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000000; font-weight: bold;">function</span> main<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><br />
&nbsp; &nbsp; <span style="color: #009900;">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000088;">$command</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">'r3 -c '</span><span style="color: #339933;">.</span> <span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">Workspace</span> <span style="color: #339933;">.</span><span style="color: #0000ff;">' generate -av'</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000088;">$output</span> &nbsp;<span style="color: #339933;">=</span> <a href="http://www.php.net/array"><span style="color: #990000;">array</span></a><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000088;">$return</span> &nbsp;<span style="color: #339933;">=</span> <span style="color: #009900; font-weight: bold;">null</span><span style="color: #339933;">;</span><br />
<br />
&nbsp; &nbsp; &nbsp; &nbsp; try <span style="color: #009900;">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <a href="http://www.php.net/exec"><span style="color: #990000;">exec</span></a><span style="color: #009900;">&#40;</span><span style="color: #000088;">$command</span><span style="color: #339933;">,</span> <span style="color: #000088;">$output</span><span style="color: #339933;">,</span> <span style="color: #000088;">$return</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #b1b100;">foreach</span> <span style="color: #009900;">&#40;</span><span style="color: #000088;">$output</span> <span style="color: #b1b100;">as</span> <span style="color: #000088;">$line</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">log</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$line</span><span style="color: #339933;">,</span> Project<span style="color: #339933;">::</span><span style="color: #004000;">MSG_VERBOSE</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #009900;">&#125;</span><br />
<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #000088;">$return</span> <span style="color: #339933;">!==</span> 0<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; throw <span style="color: #000000; font-weight: bold;">new</span> BuildException<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'Task exited with code'</span><span style="color: #339933;">.</span> <span style="color: #000088;">$return</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #009900;">&#125;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #009900;">&#125;</span> catch <span style="color: #009900;">&#40;</span>BuildException <span style="color: #000088;">$e</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span><br />
<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000088;">$op</span> <span style="color: #339933;">=</span> Project<span style="color: #339933;">::</span><span style="color: #004000;">MSG_WARN</span><span style="color: #339933;">;</span><br />
<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #000088;">$this</span><span style="color: #339933;">-&amp;</span>gt<span style="color: #339933;">;</span>quiet <span style="color: #339933;">===</span> <span style="color: #009900; font-weight: bold;">true</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000088;">$op</span> <span style="color: #339933;">=</span> Project<span style="color: #339933;">::</span><span style="color: #004000;">MSG_VERBOSE</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #009900;">&#125;</span><br />
<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000088;">$this</span><span style="color: #339933;">-&amp;</span>gt<span style="color: #339933;">;</span>log<span style="color: #009900;">&#40;</span><span style="color: #000088;">$e</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">getMessage</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">,</span> <span style="color: #000088;">$op</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #009900;">&#125;</span><br />
&nbsp; &nbsp; <span style="color: #009900;">&#125;</span><br />
<span style="color: #009900;">&#125;</span></div></div>
<h2>r3SetVarTask.php</h2>
<div class="codecolorer-container php blackboard" style="overflow:auto;white-space:nowrap;border: 1px solid #9F9F9F;width:435px;height:500px;"><div class="php codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #b1b100;">require_once</span> <span style="color: #0000ff;">'phing/Task.php'</span><span style="color: #339933;">;</span><br />
<br />
<span style="color: #009933; font-style: italic;">/** <br />
&nbsp;* r3 setVar Task <br />
&nbsp;* <br />
&nbsp;* PHP version 5 <br />
&nbsp;* <br />
&nbsp;* category Phing Task<br />
&nbsp;* package phing <br />
&nbsp;* author Alfonso Jimenez &lt;yo@alfonsojimenez.com&gt; <br />
&nbsp;* license http://www.gnu.org/licenses/gpl.html GPL <br />
&nbsp;* <br />
&nbsp;*/</span><br />
<span style="color: #000000; font-weight: bold;">class</span> r3SetVarTask <span style="color: #000000; font-weight: bold;">extends</span> Task <span style="color: #009900;">&#123;</span><br />
&nbsp; &nbsp; <span style="color: #009933; font-style: italic;">/** <br />
&nbsp; &nbsp; &nbsp;* path to r3 workspace <br />
&nbsp; &nbsp; &nbsp;*<br />
&nbsp; &nbsp; &nbsp;* var string <br />
&nbsp; &nbsp; &nbsp;*/</span><br />
&nbsp; &nbsp; protected <span style="color: #000088;">$r3Workspace</span><span style="color: #339933;">;</span><br />
<br />
&nbsp; &nbsp; <span style="color: #009933; font-style: italic;">/** &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <br />
&nbsp; &nbsp; &nbsp;* dimension &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<br />
&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;<br />
&nbsp; &nbsp; &nbsp;* @var string &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<br />
&nbsp; &nbsp; &nbsp;*/</span> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <br />
&nbsp; &nbsp; protected <span style="color: #000088;">$dimension</span><span style="color: #339933;">;</span> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <br />
<br />
&nbsp; &nbsp; <span style="color: #009933; font-style: italic;">/** &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <br />
&nbsp; &nbsp; &nbsp;* variable key &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <br />
&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;<br />
&nbsp; &nbsp; &nbsp;* @var string &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<br />
&nbsp; &nbsp; &nbsp;*/</span> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <br />
&nbsp; &nbsp; protected <span style="color: #000088;">$key</span><span style="color: #339933;">;</span> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <br />
<br />
&nbsp; &nbsp; <span style="color: #009933; font-style: italic;">/** &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <br />
&nbsp; &nbsp; &nbsp;* variable value &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <br />
&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;<br />
&nbsp; &nbsp; &nbsp;* @var string &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<br />
&nbsp; &nbsp; &nbsp;*/</span> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <br />
&nbsp; &nbsp; protected <span style="color: #000088;">$value</span><span style="color: #339933;">;</span> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <br />
<br />
&nbsp; &nbsp; <span style="color: #009933; font-style: italic;">/** &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <br />
&nbsp; &nbsp; &nbsp;* sets the r3 workspace path &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <br />
&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;<br />
&nbsp; &nbsp; &nbsp;* param string $r3Workspace &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <br />
&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;<br />
&nbsp; &nbsp; &nbsp;* return void &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <br />
&nbsp; &nbsp; &nbsp;*/</span> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <br />
&nbsp; &nbsp; <span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000000; font-weight: bold;">function</span> setr3Workspace<span style="color: #009900;">&#40;</span><span style="color: #000088;">$r3Workspace</span><span style="color: #009900;">&#41;</span> &nbsp; &nbsp; &nbsp;<br />
&nbsp; &nbsp; <span style="color: #009900;">&#123;</span> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">r3Workspace</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$r3Workspace</span><span style="color: #339933;">;</span> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<br />
&nbsp; &nbsp; <span style="color: #009900;">&#125;</span> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <br />
<br />
&nbsp; &nbsp; <span style="color: #009933; font-style: italic;">/** &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <br />
&nbsp; &nbsp; &nbsp;* sets dimension &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <br />
&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;<br />
&nbsp; &nbsp; &nbsp;* param string $dimension &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <br />
&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;<br />
&nbsp; &nbsp; &nbsp;* return void &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <br />
&nbsp; &nbsp; &nbsp;*/</span> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <br />
&nbsp; &nbsp; <span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000000; font-weight: bold;">function</span> setDimension<span style="color: #009900;">&#40;</span><span style="color: #000088;">$dimension</span><span style="color: #009900;">&#41;</span> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<br />
&nbsp; &nbsp; <span style="color: #009900;">&#123;</span> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">dimension</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$dimension</span><span style="color: #339933;">;</span> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<br />
&nbsp; &nbsp; <span style="color: #009900;">&#125;</span> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <br />
<br />
&nbsp; &nbsp; <span style="color: #009933; font-style: italic;">/** &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <br />
&nbsp; &nbsp; &nbsp;* sets the variable key &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<br />
&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;<br />
&nbsp; &nbsp; &nbsp;* param string $key &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <br />
&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;<br />
&nbsp; &nbsp; &nbsp;* return void &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <br />
&nbsp; &nbsp; &nbsp;*/</span> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <br />
&nbsp; &nbsp; <span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000000; font-weight: bold;">function</span> setKey<span style="color: #009900;">&#40;</span><span style="color: #000088;">$key</span><span style="color: #009900;">&#41;</span> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<br />
&nbsp; &nbsp; <span style="color: #009900;">&#123;</span> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">key</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$key</span><span style="color: #339933;">;</span> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<br />
&nbsp; &nbsp; <span style="color: #009900;">&#125;</span> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <br />
<br />
&nbsp; &nbsp; <span style="color: #009933; font-style: italic;">/** &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <br />
&nbsp; &nbsp; &nbsp;* sets the variable value &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<br />
&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;<br />
&nbsp; &nbsp; &nbsp;* param string $value &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <br />
&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;<br />
&nbsp; &nbsp; &nbsp;* return void &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <br />
&nbsp; &nbsp; &nbsp;*/</span> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <br />
&nbsp; &nbsp; <span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000000; font-weight: bold;">function</span> setValue<span style="color: #009900;">&#40;</span><span style="color: #000088;">$value</span><span style="color: #009900;">&#41;</span> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<br />
&nbsp; &nbsp; <span style="color: #009900;">&#123;</span> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">value</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$value</span><span style="color: #339933;">;</span> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<br />
&nbsp; &nbsp; <span style="color: #009900;">&#125;</span> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <br />
<br />
&nbsp; &nbsp; <span style="color: #009933; font-style: italic;">/**<br />
&nbsp; &nbsp; &nbsp;* init method<br />
&nbsp; &nbsp; &nbsp;* &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<br />
&nbsp; &nbsp; &nbsp;* @return boolean<br />
&nbsp; &nbsp; &nbsp;*/</span> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <br />
&nbsp; &nbsp; <span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000000; font-weight: bold;">function</span> init<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><br />
&nbsp; &nbsp; <span style="color: #009900;">&#123;</span> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #b1b100;">return</span> <span style="color: #009900; font-weight: bold;">true</span><span style="color: #339933;">;</span> &nbsp; &nbsp; &nbsp;<br />
&nbsp; &nbsp; <span style="color: #009900;">&#125;</span> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <br />
<br />
&nbsp; &nbsp; <span style="color: #009933; font-style: italic;">/** &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <br />
&nbsp; &nbsp; &nbsp;* main method &nbsp; &nbsp; &nbsp; &nbsp;<br />
&nbsp; &nbsp; &nbsp;* &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<br />
&nbsp; &nbsp; &nbsp;* @return void &nbsp; &nbsp; &nbsp; <br />
&nbsp; &nbsp; &nbsp;*/</span> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <br />
&nbsp; &nbsp; <span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000000; font-weight: bold;">function</span> main<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><br />
&nbsp; &nbsp; <span style="color: #009900;">&#123;</span> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000088;">$command</span> <span style="color: #339933;">=</span> ‘r3 <span style="color: #339933;">-</span>c ‘<span style="color: #339933;">.</span> <span style="color: #000088;">$this</span>‐<span style="color: #339933;">&gt;</span>r3Workspace <span style="color: #339933;">.</span>’ <span style="color: #000000; font-weight: bold;">var</span> set ‘<span style="color: #339933;">.</span> <span style="color: #000088;">$this</span>‐<span style="color: #339933;">&gt;</span>dimension<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span style="color: #339933;">.</span>’ ‘<span style="color: #339933;">.</span> <span style="color: #000088;">$this</span>‐<span style="color: #339933;">&gt;</span>key <span style="color: #339933;">.</span>’ ‘<span style="color: #339933;">.</span> <span style="color: #000088;">$this</span>‐<span style="color: #339933;">&gt;</span>value<span style="color: #339933;">;</span> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000088;">$output</span> &nbsp;<span style="color: #339933;">=</span> <a href="http://www.php.net/array"><span style="color: #990000;">array</span></a><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> &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; <br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000088;">$return</span> &nbsp;<span style="color: #339933;">=</span> <span style="color: #009900; font-weight: bold;">null</span><span style="color: #339933;">;</span> &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;<br />
<br />
&nbsp; &nbsp; &nbsp; &nbsp; try <span style="color: #009900;">&#123;</span> &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; &nbsp; &nbsp; &nbsp; &nbsp; <br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <a href="http://www.php.net/exec"><span style="color: #990000;">exec</span></a><span style="color: #009900;">&#40;</span><span style="color: #000088;">$command</span><span style="color: #339933;">,</span> <span style="color: #000088;">$output</span><span style="color: #339933;">,</span> <span style="color: #000088;">$return</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <br />
<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #b1b100;">foreach</span> <span style="color: #009900;">&#40;</span><span style="color: #000088;">$output</span> <span style="color: #b1b100;">as</span> <span style="color: #000088;">$line</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">log</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$line</span><span style="color: #339933;">,</span> Project<span style="color: #339933;">::</span><span style="color: #004000;">MSG_VERBOSE</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #009900;">&#125;</span><br />
<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #000088;">$return</span> <span style="color: #339933;">!==</span> 0<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; throw <span style="color: #000000; font-weight: bold;">new</span> BuildException<span style="color: #009900;">&#40;</span>‘Task exited with code’<span style="color: #339933;">.</span> <span style="color: #000088;">$return</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #009900;">&#125;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #009900;">&#125;</span> catch <span style="color: #009900;">&#40;</span>BuildException <span style="color: #000088;">$e</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span><br />
<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000088;">$op</span> <span style="color: #339933;">=</span> Project<span style="color: #339933;">::</span><span style="color: #004000;">MSG_WARN</span><span style="color: #339933;">;</span><br />
<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">quiet</span> <span style="color: #339933;">===</span> <span style="color: #009900; font-weight: bold;">true</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000088;">$op</span> <span style="color: #339933;">=</span> Project<span style="color: #339933;">::</span><span style="color: #004000;">MSG_VERBOSE</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #009900;">&#125;</span><br />
<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">log</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$e</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">getMessage</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">,</span> <span style="color: #000088;">$op</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #009900;">&#125;</span><br />
&nbsp; &nbsp; <span style="color: #009900;">&#125;</span><br />
<span style="color: #009900;">&#125;</span></div></div>
<p>If you want to use these tasks in your Phing file, you have to place them in /usr/share/php/phing/extended/tasks/ first. Then you can call them by writing the following <em>tag-commands</em>:</p>
<p><em>&lt;taskdef name=&#8221;r3-generate&#8221; classname=&#8221;extended.tasks.r3GenerateTask&#8221; /&gt;<br />
&lt;taskdef name=&#8221;r3-setVar&#8221; classname=&#8221;extended.tasks.r3SetVarTask&#8221; /&gt; </em></p>
<p><em>&lt;r3-generate r3Workspace=&#8221;${workspace.dir}&#8221;&gt;&lt;/r3&gt;<br />
&lt;r3-setVar r3Workspace=&#8221;${workspace.dir}&#8221; dimension=&#8221;${dimension}&#8221; key=&#8221;var_key&#8221; value=&#8221;${var_value}&#8221;&gt;&lt;/r3&gt;</em></p>
<p>Let&#8217;s see an example of a real <strong>Phing</strong> file. Imagine that we have to write a task which needs to do the following steps:</p>
<ol>
<li>Get a <strong>Yahoo r3</strong> workspace from a SVN repository (<em>http://svn.test.com/trunk/r3</em>)</li>
<li>Build the <strong>Yahoo r3</strong> workspace</li>
<li>Move the generated templates into a certain directory</li>
<li>Clean up the temporary files</li>
</ol>
<p>So we can straightforward write a <strong>Phing</strong> task in order to follow this sequence of steps:</p>
<div class="codecolorer-container php blackboard" style="overflow:auto;white-space:nowrap;border: 1px solid #9F9F9F;width:435px;"><div class="php codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #000000; font-weight: bold;">&lt;?</span>xml version<span style="color: #339933;">=</span><span style="color: #0000ff;">&quot;1.0&quot;</span><span style="color: #000000; font-weight: bold;">?&gt;</span><br />
&lt;project name=&quot;Yahoo r3 Templates Build&quot; basedir=&quot;.&quot; default=&quot;build&quot;&gt;<br />
<br />
&nbsp; &nbsp;&lt;property name=&quot;tmp.dir&quot; value=&quot;/tmp/template&quot; /&gt;<br />
&nbsp; &nbsp;&lt;property name=&quot;templates.dir&quot; value=&quot;/home/r3/templates&quot; /&gt;<br />
&nbsp; &nbsp;&lt;property name=&quot;svn&quot; value=&quot;http://svn.test.com/trunk/r3&quot; /&gt;<br />
<br />
&nbsp; &nbsp;&lt;target name=&quot;build&quot; depends=&quot;init, generate, clean&quot; /&gt;<br />
<br />
&nbsp; &nbsp;&lt;target name=&quot;init&quot;&gt;<br />
&nbsp; &nbsp; &nbsp; &lt;taskdef name=&quot;r3-generate&quot; classname=&quot;extended.tasks.r3GenerateTask&quot; /&gt;<br />
<br />
&nbsp; &nbsp; &nbsp; &lt;mkdir dir=&quot;${tmp.dir}&quot; /&gt;<br />
&nbsp; &nbsp; &nbsp; &lt;svncheckout svnpath=&quot;/usr/bin/svn&quot; repositoryurl=&quot;${svn}&quot; todir=&quot;${tmp.dir}&quot;/&gt;<br />
&nbsp; &nbsp;&lt;/target&gt;<br />
<br />
&nbsp; &nbsp;&lt;target name=&quot;generate&quot;&gt;<br />
&nbsp; &nbsp; &nbsp; &lt;r3-generate r3Workspace=&quot;${tmp.dir}&quot;&gt;&lt;/r3-generate&gt;<br />
&nbsp; &nbsp;&lt;/target&gt;<br />
<br />
&nbsp; &nbsp;&lt;target name=&quot;clean&quot;&gt;<br />
&nbsp; &nbsp; &nbsp; &lt;copy todir=&quot;${templates.dir}&quot;&gt;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &lt;fileset dir=&quot;${tmp.dir}/htdocs&quot;&gt;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&lt;include name=&quot;**&quot; /&gt;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &lt;/fileset&gt;<br />
&nbsp; &nbsp; &nbsp; &lt;/copy&gt;<br />
<br />
&nbsp; &nbsp; &nbsp; &lt;delete dir=&quot;${tmp.dir}&quot; includeemptydirs=&quot;true&quot; failonerror=&quot;true&quot; /&gt;<br />
&nbsp; &nbsp;&lt;/target&gt;<br />
&lt;/project&gt;</div></div>
]]></content:encoded>
			<wfw:commentRss>http://alfonsojimenez.com/php/integrating-yahoo-r3-with-phing/feed/</wfw:commentRss>
		<slash:comments>21</slash:comments>
		</item>
		<item>
		<title>The Ibracadabra Show starts</title>
		<link>http://alfonsojimenez.com/football/the-ibracadabra-show-starts/</link>
		<comments>http://alfonsojimenez.com/football/the-ibracadabra-show-starts/#comments</comments>
		<pubDate>Mon, 27 Jul 2009 20:10:03 +0000</pubDate>
		<dc:creator>alfonsojimenez</dc:creator>
				<category><![CDATA[Football]]></category>
		<category><![CDATA[fc barcelona]]></category>
		<category><![CDATA[zlatan ibrahimovic]]></category>

		<guid isPermaLink="false">http://www.alfonsojimenez.com/2009/07/27-the-ibracadabra-show-starts</guid>
		<description><![CDATA[
]]></description>
			<content:encoded><![CDATA[<p><img src="http://img.alfonsojimenez.com/2009/07/ibrahimovic_barcelona.jpg" alt="Zlatan Ibrahimovic - FC Barcelona - BarÃ§a" /></p>
]]></content:encoded>
			<wfw:commentRss>http://alfonsojimenez.com/football/the-ibracadabra-show-starts/feed/</wfw:commentRss>
		<slash:comments>23</slash:comments>
		</item>
		<item>
		<title>How should a microblog search engine be?</title>
		<link>http://alfonsojimenez.com/internet/how-should-a-microblog-search-engine-be/</link>
		<comments>http://alfonsojimenez.com/internet/how-should-a-microblog-search-engine-be/#comments</comments>
		<pubDate>Wed, 15 Jul 2009 18:24:36 +0000</pubDate>
		<dc:creator>alfonsojimenez</dc:creator>
				<category><![CDATA[Internet]]></category>

		<guid isPermaLink="false">http://www.alfonsojimenez.com/2009/07/15-how-should-a-microblog-search-engine-be</guid>
		<description><![CDATA[Lately people have been talking too much about searches on microblogging services. It&#8217;s been said that even Google is launching a new microblog search engine in the next few months. Some services exist already such as Twingly or Twitter Search (Summize), but none of them answer my queries as I would like. As a normal [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://img.alfonsojimenez.com/2009/07/search_lens.png" class="derecha_sinmarco" alt="Lens" />Lately people have been talking too much about searches on microblogging services. It&#8217;s been said that even <strong>Google</strong> is launching a new microblog search engine in the next few months. Some services exist already such as <a href="http://www.twingly.com" rel="nofollow">Twingly</a> or <a href="http://search.twitter.com">Twitter Search</a> (<em>Summize</em>), but none of them answer my queries as I would like. As a normal user, I would insert into a microblog search engine two type of queries: <strong>What&#8217;s happening right now?</strong> or <strong>What&#8217;s being said about ____ at the moment?</strong>, since it doesn&#8217;t make sense to look for information about the capital of Zimbabwe or if I want to know everything about a certain family of birds. It may be possible to <em>guess</em> one of these questions using a microblog search service, but I would use a classic search engine though.</p>
<p>Imagine that you&#8217;re a frustated Manchester United fan and you want to know what&#8217;s going on regarding your favourite football team. So you go to <em>Twitter Search</em> and look for the terms &#8220;Manchester United&#8221;. The results will leave you stunned because of the multiple kind of information found. Despite receiving hundreds of results each minute, 90% of the found messages are crap. You&#8217;ll get lots of duplicated messages, <em>spam</em> from the media Twitter accounts using <em>twitterfeed</em>, messages written in languages that you probably don&#8217;t understand (Chinese, Spanish, Italian, Arabic, &#8230;), messages written by <em>&#8220;irrelevant&#8221;</em> users and so so so much crap.</p>
<p>How should a microblog search engine be? Are we retrieving <strong>useful information</strong> from these kind of sources?</p>
]]></content:encoded>
			<wfw:commentRss>http://alfonsojimenez.com/internet/how-should-a-microblog-search-engine-be/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>phpredis, 2 Fast 2 Furious</title>
		<link>http://alfonsojimenez.com/php/phpredis-2-fast-2-furious/</link>
		<comments>http://alfonsojimenez.com/php/phpredis-2-fast-2-furious/#comments</comments>
		<pubDate>Tue, 02 Jun 2009 10:00:01 +0000</pubDate>
		<dc:creator>alfonsojimenez</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[databases]]></category>
		<category><![CDATA[phpredis]]></category>
		<category><![CDATA[redis]]></category>

		<guid isPermaLink="false">http://www.alfonsojimenez.com/2009/06/02-phpredis-2-fast-2-furious</guid>
		<description><![CDATA[Redis (REmote DIctionary Server) is a persistent key-value database with built-in net interface written in ANSI-C for Posix systems. Whilst it may at first seem like the wheel is being reinvented here, the need for something beyond a simple key-value database is pretty clear. It&#8217;s possible to use Redis like a replacement of memcached, with [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://img.alfonsojimenez.com/2009/04/redis.jpg" class="derecha_sinmarco" alt="phpredis" /><strong>Redis</strong> (REmote DIctionary Server) is a persistent key-value database with built-in net interface written in ANSI-C for Posix systems. Whilst it may at first seem like the wheel is being reinvented here, the need for something beyond a simple key-value database is pretty clear. It&#8217;s possible to use <strong>Redis</strong> like a replacement of <strong>memcached</strong>, with the main difference being the dataset is stored persistently &#8211; not volatile data &#8211; and <strong>Redis</strong> introduces new data structures such as <strong>list</strong> and <strong>sets</strong>. Furthermore, it implements atomic operations in order to interoperate with these data structures.</p>
<p>I released a <strong>PHP extension</strong> called <a href="http://code.google.com/p/phpredis/" title="phpredis - PHP Extension for Redis">phpredis</a> a couple of weeks ago, which works as a PHP client API for <strong>Redis</strong>. The project is hosted at Google Code at the moment, and you can get the code directly from the SVN repository: <a href="http://phpredis.googlecode.com/svn/trunk/" title="phpredis">http://phpredis.googlecode.com/svn/trunk/</a>.</p>
<p>Despite a <em>vanilla</em> PHP client library already exists, I felt the need to write it since a PHP extension normally performs better and I wanted to make the most of <strong>Redis</strong> potential.</p>
<p>Let&#8217;s see a snippet of how to make a simple operation to <strong>Redis</strong> using the PHP client:</p>
<pre class="sh_php">
    $redis = new Redis();
    $redis->connect('127.0.0.1', 6379);

    $redis->set('key', 27);

    echo $redis->get('key'); // it should print 27

    $redis->incrby('key', 3);

    echo $redis->get('key'); // it should print 30
</pre>
<p>The code above was quite obvious, it stored a value associate to <em>key</em> and it increments its value by 3. Let&#8217;s see another snippet a bit more complex, for example using a <em>list</em>:</p>
<pre class="sh_php">
    $redis = new Redis();
    $redis->connect('127.0.0.1', 6379);

    $redis->lPush('list', 'val');
    $redis->lPush('list', 'val2');
    $redis->lPush('list', 'val3', 1);

    echo $redis->lPop('list', 1); // it should print val3
    echo $redis->lPop('list'); // it should print val2
    echo $this->lPop('list'); //it should print val
</pre>
<p>Notice that depending on the last optional parameter (0 by default) it&#8217;s possible to append/extract an element to/from the tail or to/from the head of the list.</p>
<p>There is a list including all the <a href="http://code.google.com/p/phpredis/wiki/referencemethods">available methods</a>. At the moment, I&#8217;m working on the implementation of more new Redis commands and on the support for complex data structures such as arrays and PHP objects.</p>
<p>Apart from <strong>phpredis</strong>, there are more client API for languages as Perl, Python, Ruby and Erlang. You can find this and more at the <a href="http://code.google.com/p/redis/" title="Redis Database">Redis project homepage</a>. Redis has been written by Salvatore Sanfilippo who I&#8217;m chuffed to bits with.</p>
]]></content:encoded>
			<wfw:commentRss>http://alfonsojimenez.com/php/phpredis-2-fast-2-furious/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Made in Heaven</title>
		<link>http://alfonsojimenez.com/football/made-in-heaven/</link>
		<comments>http://alfonsojimenez.com/football/made-in-heaven/#comments</comments>
		<pubDate>Mon, 01 Jun 2009 09:28:29 +0000</pubDate>
		<dc:creator>alfonsojimenez</dc:creator>
				<category><![CDATA[Football]]></category>
		<category><![CDATA[fc barcelona]]></category>
		<category><![CDATA[josep guardiola]]></category>

		<guid isPermaLink="false">http://www.alfonsojimenez.com/2009/06/01-made-in-heaven</guid>
		<description><![CDATA[
]]></description>
			<content:encoded><![CDATA[<p><img src="http://img.alfonsojimenez.com/2009/06/josep-guardiola-dios.jpg" alt="Josep Guardiola - Portada de El PeriÃ³dico de Catalunya" class="centro" /></p>
]]></content:encoded>
			<wfw:commentRss>http://alfonsojimenez.com/football/made-in-heaven/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>The dessert</title>
		<link>http://alfonsojimenez.com/uncategorized/the-dessert/</link>
		<comments>http://alfonsojimenez.com/uncategorized/the-dessert/#comments</comments>
		<pubDate>Wed, 27 May 2009 22:30:47 +0000</pubDate>
		<dc:creator>alfonsojimenez</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[champions league]]></category>
		<category><![CDATA[fc barcelona]]></category>
		<category><![CDATA[manchester united]]></category>

		<guid isPermaLink="false">http://www.alfonsojimenez.com/2009/05/27-the-dessert</guid>
		<description><![CDATA[
]]></description>
			<content:encoded><![CDATA[<p><img src="http://img.alfonsojimenez.com/2009/05/barcelona-manchester-final.jpg" class="centro" alt="FC Barcelona vs Manchester United - Champions League Final : Messi, Iniesta and Henry" /></p>
]]></content:encoded>
			<wfw:commentRss>http://alfonsojimenez.com/uncategorized/the-dessert/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>The main course</title>
		<link>http://alfonsojimenez.com/football/the-main-course/</link>
		<comments>http://alfonsojimenez.com/football/the-main-course/#comments</comments>
		<pubDate>Sat, 23 May 2009 22:30:22 +0000</pubDate>
		<dc:creator>alfonsojimenez</dc:creator>
				<category><![CDATA[Football]]></category>
		<category><![CDATA[fc barcelona]]></category>
		<category><![CDATA[league]]></category>

		<guid isPermaLink="false">http://www.alfonsojimenez.com/2009/05/23-the-main-course</guid>
		<description><![CDATA[
]]></description>
			<content:encoded><![CDATA[<p><img src="http://img.alfonsojimenez.com/2009/05/main_course_barcelona.jpg" class="centro" alt="Liga 2008/2009 FC Barcelona - BarÃ§a" /></p>
]]></content:encoded>
			<wfw:commentRss>http://alfonsojimenez.com/football/the-main-course/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>
