<?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>xml-utils.com</title>
	<atom:link href="http://xml-utils.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://xml-utils.com</link>
	<description>by Ricardo Borillo</description>
	<lastBuildDate>Wed, 18 Jan 2012 12:46:13 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
		<item>
		<title>Presentación en MadridJS: &#8220;Sencha World&#8221;</title>
		<link>http://xml-utils.com/2012/01/18/presentacion-en-madridjs-sencha-world/</link>
		<comments>http://xml-utils.com/2012/01/18/presentacion-en-madridjs-sencha-world/#comments</comments>
		<pubDate>Wed, 18 Jan 2012 12:39:18 +0000</pubDate>
		<dc:creator>borillo</dc:creator>
				<category><![CDATA[All]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[Publicaciones]]></category>

		<guid isPermaLink="false">http://xml-utils.com/?p=233</guid>
		<description><![CDATA[Vídeo y la presentación que realicé el pasado 12 de Enero para el grupo de MadridJS.]]></description>
			<content:encoded><![CDATA[<p>Vídeo y la presentación que realicé el pasado 12 de Enero para el grupo de MadridJS.</p>
<p><iframe src="http://player.vimeo.com/video/35248899?title=0&amp;byline=0&amp;portrait=0&amp;color=80ceff" width="640" height="360" frameborder="0" webkitAllowFullScreen mozallowfullscreen allowFullScreen></iframe></p>
<p><br/><br/></p>
<p><object id="doc_44469" name="doc_44469" height="600" width="100%" type="application/x-shockwave-flash" data="http://d1.scribdassets.com/ScribdViewer.swf" style="outline:none;" ><param name="movie" value="http://d1.scribdassets.com/ScribdViewer.swf"><param name="wmode" value="opaque"><param name="bgcolor" value="#ffffff"><param name="allowFullScreen" value="true"><param name="allowScriptAccess" value="always"><param name="FlashVars" value="document_id=78004324&#038;access_key=key-7hho7mmi83v9a46jzsr&#038;page=1&#038;viewMode=list"><embed id="doc_44469" name="doc_44469" src="http://d1.scribdassets.com/ScribdViewer.swf?document_id=78004324&#038;access_key=key-7hho7mmi83v9a46jzsr&#038;page=1&#038;viewMode=list" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" height="600" width="100%" wmode="opaque" bgcolor="#ffffff"></embed></object></p>
]]></content:encoded>
			<wfw:commentRss>http://xml-utils.com/2012/01/18/presentacion-en-madridjs-sencha-world/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>iWeekend universitario UJI</title>
		<link>http://xml-utils.com/2011/12/08/iweekend-universitario-uji/</link>
		<comments>http://xml-utils.com/2011/12/08/iweekend-universitario-uji/#comments</comments>
		<pubDate>Thu, 08 Dec 2011 19:10:05 +0000</pubDate>
		<dc:creator>borillo</dc:creator>
				<category><![CDATA[Agile]]></category>
		<category><![CDATA[All]]></category>

		<guid isPermaLink="false">http://xml-utils.com/?p=201</guid>
		<description><![CDATA[Ya en frio y dos semanas después de la presentación de los ganadores, he decidido ordenar mis pensamientos sobre el iWeekend universitario que se realizó en la Universitat Jaume I y compartir mis impresiones. Antes de empezar, me gustaría explicar en que consiste un iWeekend de boca de los propios organizadores: iWeekend es una experiencia [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://xml-utils.com/wp-content/uploads/2011/12/iweekndlogo-uni.jpg" alt="" title="iweekndlogo-uni" width="318" height="85" class="alignright size-full wp-image-202" /></p>
<p>Ya en frio y dos semanas después de la presentación de los ganadores, he decidido ordenar mis pensamientos sobre el <a href="http://iweekend.org/uni/castellon/" target="_blank">iWeekend universitario que se realizó en la Universitat Jaume I</a> y compartir mis impresiones.</p>
<p>Antes de empezar, me gustaría explicar en que consiste un iWeekend de boca de los propios organizadores:</p>
<p><em>iWeekend es una experiencia intensa e innovadora que reúne a emprendedores y profesionales con talento de diferentes perfiles para votar ideas y llevarlas a la realidad, mediante el desarrollo de un business plan y un prototipo. Todo ello de manera colaborativa y en un fin de semana.</em></p>
<h2>Distribución de los equipos</h2>
<p>Ante todo, comentar que estuve en el evento <a href="http://iweekend.org/uni/castellon/mentores/#Ricardo%20Borillo" target="_blank">echando una mano a la parte técnica como mentor</a>, pero mi intención inicial era poder mezclarme un poco más con otros colectivos y así aprender un poco en áreas desconocidas para mi como el marketing o los negocios.</p>
<p>En este sentido, no tuve mucho éxito, ya que la distribución de los equipos no lo permitió. Compartiendo impresiones con más gente que asistió al que se organizó el mismo fin de semana en Valencia, la conclusión fue unánime: ¿Porqué los grupos de marketing, negocio y técnico que están colaborando en un mismo proyecto no están trabajando físicamente juntos?</p>
<p>En nuestro caso, los equipos se dividieron por salas en función del área a la que pertenecían y el proyecto en el que trabajaban. Esto creo que dificultó mucho la comunicación y la sensación del equipo técnico era de incertidumbre.</p>
<p>En mi opinión, hay que fomentar más el trabajo en grupo y la colaboración en este tipo de eventos, dejando atrás la visión clásica de equipos estancos. </p>
<h2>El equipo técnico</h2>
<p><img src="http://xml-utils.com/wp-content/uploads/2011/12/6420771975_576a92055f.jpg" alt="" title="6420771975_576a92055f" width="310" style="border:0px;" class="alignleft size-full wp-image-205" /> Una de las mejoras partes sin duda. Aunque los equipos estaban formados por estudiantes, todo el equipo demostró una gran profesionalidad e implicación. Hay que añadir a todo esto, que eramos el equipo menos numeroso y que hasta el final del primer día, no se pudo picar ni una línea de código debido a cambios de visión en los proyectos seleccionados.</p>
<p>Uno de mis objetivos que sí se cumplió fue introducir al equipo en las metodologías ágiles, trabajando todo el fin de semana con <a href="http://www.programania.net/desarrollo-agil/desarrollo-agil-con-kanban/" target="_blank">Kanban</a>. Para ello, montamos un panel para gestionar de forma visual las tareas de ambos proyectos y el resto se redujo a auto-organización del equipo &#8230; Me encantó comprobar lo fácil que se adaptó el equipo a esta forma de trabajo.</p>
<p>Lástima que el equipo técnico fuera tan escaso, ya que nos tocó enfrentarnos a los dos proyectos ganadores sin demasiado espacio de tiempo, sin muchos recursos y con sólo un par de diseñadores gráficos. Sobra decir que lo que sí que había y fue el mayor motivante, era la ilusión de la gente y las ganas de superar el desafío. Esto es lo que realmente te carga las pilas en este tipo de eventos!!!</p>
<p><img src="http://xml-utils.com/wp-content/uploads/2011/12/6420771217_29d5f80789.jpg" alt="" title="6420771217_29d5f80789" width="333" height="500" class="aligncenter size-full wp-image-203" /></p>
<h2>El resultado</h2>
<p>Del iWeekend UJI salieron dos proyectos, los cuales se eligieron tras las votaciones del viernes. Uno de ellos, 7 global, aunque no era un proyecto &#8220;iWeekend&#8221; sino más un PYME, consiguió que los equipos trabajaran a tope y fue el que más partido logró sacar del fin de semana. Este proyecto tenía como objetivo ayudar a clientes que no estaban consiguiendo el impacto deseado en el mercado, ayudándoles a renovar tanto su imagen, como las prácticas empresariales utilizadas &#8230; Ah, y todo ello en una semana!!</p>
<p><img src="http://xml-utils.com/wp-content/uploads/2011/12/6420771787_2d6ec3d79e.jpg" alt="" title="6420771787_2d6ec3d79e" width="500" height="333" class="aligncenter size-full wp-image-204" /></p>
<p><img src="http://xml-utils.com/wp-content/uploads/2011/12/6420759661_338e5eabfa_z.jpg" alt="" title="6420759661_338e5eabfa_z" width="500" class="aligncenter size-full wp-image-216" /></p>
<p>El otro proyecto, byebyeMarks, se centraba más en la idea de poder vender el talento y la capacidad de innovación que tiene los estudiantes, y de como las empresas pueden aprovecharla para enriquecer su I+D. Este proyecto sí tenía en su ADN el componente de negocio, colaboración e impacto en internet que no tenía el otro, pero los continuos cambios en el objetivo final del proyecto hicieron que no acabara de definirse hasta el domingo por la mañana. En consecuencia, la parte técnica en este proyecto, la cual era bastante más compleja que en el anterior, quedó sin mucho margen de maniobra y tuvo que conformarse con un esbozo de lo que podría ser el portal final.</p>
<p><img src="http://xml-utils.com/wp-content/uploads/2011/12/6420762053_071cd2680f.jpg" alt="" title="6420762053_071cd2680f" width="500" height="375" class="aligncenter size-full wp-image-213" /></p>
<p><img src="http://xml-utils.com/wp-content/uploads/2011/12/6420771627_9cb616e073.jpg" alt="" title="6420771627_9cb616e073" width="200" class="alignright size-full wp-image-214" style="margin-top:1em;" /></p>
<p>En definitiva, un fin de semana intenso y gratificante, en el que también hubo tiempo para ideas divertidas, como la que tuvo Ricardo. Ricardo presentó una idea que no salió elegida sobre popularizar las camisetas con mensajes positivos, como en la película de <a href="http://www.imdb.com/title/tt0448157/" target="_blank">Hancock</a>. Pués la idea que se le ocurrió, consistió en repartir su tarjeta de visita en un post-it con forma de corazón y hacer que el 80% de la gente la pudiera lucir en el pecho. Toda una muestra de como repartir cariño entre los asistente y de paso conseguir un poco de publicidad al mismo tiempo.</p>
<p>Señoras y señores, les presento al equipo iWeekend UJI 2011!!!!</p>
<p><img src="http://xml-utils.com/wp-content/uploads/2011/12/375289_10150395091748565_637583564_8407861_2110917339_n.jpg" alt="" title="375289_10150395091748565_637583564_8407861_2110917339_n" width="500" class="aligncenter size-full wp-image-215" /></p>
]]></content:encoded>
			<wfw:commentRss>http://xml-utils.com/2011/12/08/iweekend-universitario-uji/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Presentación en IPSA: &#8220;Infrastructura y servicios de firma digital&#8221;</title>
		<link>http://xml-utils.com/2011/07/30/presentacion-en-ipsa-infrastructura-y-servicios-de-firma-digital/</link>
		<comments>http://xml-utils.com/2011/07/30/presentacion-en-ipsa-infrastructura-y-servicios-de-firma-digital/#comments</comments>
		<pubDate>Sat, 30 Jul 2011 16:49:16 +0000</pubDate>
		<dc:creator>borillo</dc:creator>
				<category><![CDATA[Agile]]></category>
		<category><![CDATA[All]]></category>
		<category><![CDATA[Firma digital]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[Publicaciones]]></category>

		<guid isPermaLink="false">http://xml-utils.com/?p=168</guid>
		<description><![CDATA[Presentación realizada en]]></description>
			<content:encoded><![CDATA[<p>Presentación realizada en <a href="http://www.ipsa.es/ target="_blank">IPSA</a> durante mi <a href="http://www.desk-surfing.org/" target="_blank">DeskSurfing</a>:</p>
<p><object id="doc_52439" name="doc_52439" height="475" width="100%" type="application/x-shockwave-flash" data="http://d1.scribdassets.com/ScribdViewer.swf" style="outline:none;" ><param name="movie" value="http://d1.scribdassets.com/ScribdViewer.swf"><param name="wmode" value="opaque"><param name="bgcolor" value="#ffffff"><param name="allowFullScreen" value="true"><param name="allowScriptAccess" value="always"><param name="FlashVars" value="document_id=61134443&#038;access_key=key-1cw7hmegmimm4kvt3oy&#038;page=1&#038;viewMode=list"><embed id="doc_52439" name="doc_52439" src="http://d1.scribdassets.com/ScribdViewer.swf?document_id=61134443&#038;access_key=key-1cw7hmegmimm4kvt3oy&#038;page=1&#038;viewMode=list" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" height="475" width="100%" wmode="opaque" bgcolor="#ffffff"></embed></object></p>
]]></content:encoded>
			<wfw:commentRss>http://xml-utils.com/2011/07/30/presentacion-en-ipsa-infrastructura-y-servicios-de-firma-digital/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>DeskSurfing@Day 4</title>
		<link>http://xml-utils.com/2011/07/30/desksurfingday-4/</link>
		<comments>http://xml-utils.com/2011/07/30/desksurfingday-4/#comments</comments>
		<pubDate>Sat, 30 Jul 2011 16:40:50 +0000</pubDate>
		<dc:creator>borillo</dc:creator>
				<category><![CDATA[Agile]]></category>
		<category><![CDATA[All]]></category>
		<category><![CDATA[Java]]></category>

		<guid isPermaLink="false">http://xml-utils.com/?p=165</guid>
		<description><![CDATA[Último día en IPSA, esta vez junto a @AlfredoCasado. El objetivo de hoy era dar un repaso a todos los temas pendientes y acabar de completar así los aspectos que tenía pensados tratar en mi estancia. Esto ha hecho que hayamos podido reparasar aspectos bastante interesantes como: Testing de la capa REST Proceso de release [...]]]></description>
			<content:encoded><![CDATA[<p>Último día en <a href="http://www.ipsa.es" target="_blank">IPSA</a>, esta vez junto a <a href="http://twitter.com/AlfredoCasado" target="_blank">@AlfredoCasado</a>.</p>
<p>El objetivo de hoy era dar un repaso a todos los temas pendientes y acabar de completar así los aspectos que tenía pensados tratar en mi estancia. Esto ha hecho que hayamos podido reparasar aspectos bastante interesantes como:</p>
<ul>
<li>Testing de la capa REST</li>
<li><a href="http://maven.apache.org/plugins/maven-release-plugin/" target="_blank">Proceso de release con maven</a> y de creación de <a href="http://maven.apache.org/plugins/maven-assembly-plugin/" target="_blank">distribuciones de producto con maven assembly</a>.</li>
<li>El uso del fichero META-INF/services para la carga dinámica de módulos.</li>
<li>Creación de nuevos arquetipos para Maven.</li>
</ul>
<p>En definitiva, una mañana muy interesante!!</p>
<p>Como mi tren salía hoy a las 17:00, hemos aprovechado la comida para despedirnos y tomar unas cañas con el equipo completo. </p>
<p>Gran equipo humano el de IPSA, que me ha hecho sentir como en casa durante toda la semana y han sido unos anfitriones excelentes <img src='http://xml-utils.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>Hasta aquí mi <a href="http://www.desk-surfing.org/" target="_blank">DeskSurfing</a> &#8230; ¿Cuando empiezas el tuyo?</p>
]]></content:encoded>
			<wfw:commentRss>http://xml-utils.com/2011/07/30/desksurfingday-4/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>DeskSurfing@Day 3</title>
		<link>http://xml-utils.com/2011/07/30/desksurfingday-3/</link>
		<comments>http://xml-utils.com/2011/07/30/desksurfingday-3/#comments</comments>
		<pubDate>Sat, 30 Jul 2011 16:26:25 +0000</pubDate>
		<dc:creator>borillo</dc:creator>
				<category><![CDATA[Agile]]></category>
		<category><![CDATA[All]]></category>
		<category><![CDATA[Firma digital]]></category>
		<category><![CDATA[Java]]></category>

		<guid isPermaLink="false">http://xml-utils.com/?p=161</guid>
		<description><![CDATA[Tras la vuelta de nuevo al panel para ver el estado de las tareas, hoy he comenzado preparando unas slides para la presentación que tenía que realizar a las 12:00 sobre &#8220;Infrastructura y servicios de firma digital&#8221;. La verdad es que ha sido genial ver como ha venido un montón de gente de la empresa, [...]]]></description>
			<content:encoded><![CDATA[<p>Tras la vuelta de nuevo al panel para ver el estado de las tareas, hoy he comenzado preparando unas slides para la presentación que tenía que realizar a las 12:00 sobre &#8220;Infrastructura y servicios de firma digital&#8221;.</p>
<p>La verdad es que ha sido genial ver como ha venido un montón de gente de la empresa, y no sólo la gente del propio grupo de desarrollo. La sesión ha servido para dar un repaso al funcionamiento de una autoridad certificadora, algunos de los servicios que ofrece (OCSP/TSA) y el uso aplicado de los procesos de firma digital tanto en herramientas existentes como OpenOffice o Acrobat Reader, como su implementación en aplicaciones web con <a href="http://universitatjaumei.jira.com/browse/CRYPTOAPPLET" target="_blank">CryptoApplet</a>.</p>
<p>Sinceramente, lo he pasado genial, ya que estas cosas me encantan <img src='http://xml-utils.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>Tras la presentación, me he unido a <a href="http://twitter.com/jjballano" target="_blank">@jjballano</a> para comenzar una nueva tarea que tenía asignada y poder ver así un poco más en detalle el entramado de tests de la aplicación.</p>
<p>Hemos ido avanzando, pero la segunda parte ha quedado pendiente para el día siguiente.</p>
<p>Al final de la jornada, hemos decidido hacer una visita al <a href="http://betabeers.com/" target="_blank">Betabeers</a>, donde parecía que podríamos encontrar una interesante conversación sobre Desarrollo móvil y JavaScript, acompañada de unas <a href="http://betabeers.com/presentaciones/presentaciones-del-28-julio-en-betabeers/" target="_blank">presentaciones de nuevos proyectos</a>. </p>
<p>Al final nos hemos quedado poco rato, pero eso sí, hemos tenido una conversación muy intersante sobre JavaScript con uno de los valores en alza de estas semanas <a href="http://twitter.com/pasku1" target="_blank">@pasku1</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://xml-utils.com/2011/07/30/desksurfingday-3/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>DeskSurfing@Day 2</title>
		<link>http://xml-utils.com/2011/07/27/desksurfingday-2/</link>
		<comments>http://xml-utils.com/2011/07/27/desksurfingday-2/#comments</comments>
		<pubDate>Wed, 27 Jul 2011 21:57:59 +0000</pubDate>
		<dc:creator>borillo</dc:creator>
				<category><![CDATA[Agile]]></category>
		<category><![CDATA[All]]></category>
		<category><![CDATA[Firma digital]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[UJI]]></category>

		<guid isPermaLink="false">http://xml-utils.com/?p=158</guid>
		<description><![CDATA[Segundo día en IPSA: Testing day. El día de hoy ha comenzado con la habitual reunión diaria frente al panel para ver en qué tareas comenzaba a trabajar el equipo. Después del reparto, me he unido a @AlfredoCasado para comenzar una de las historias de usuario que prometía dar guerra. Aunque era una historia de [...]]]></description>
			<content:encoded><![CDATA[<p>Segundo día en <a href="http://www.ipsa.es" target="_blank">IPSA</a>: Testing day.</p>
<p>El día de hoy ha comenzado con la habitual reunión diaria frente al panel para ver en qué tareas comenzaba a trabajar el equipo. Después del reparto, me he unido a <a href="http://twitter.com/AlfredoCasado" target="_blank">@AlfredoCasado</a> para comenzar una de las historias de usuario que prometía dar guerra.</p>
<p>Aunque era una historia de usuario bastante delicada al afectar partes centrales del producto, es un lujo ver cuando una buena base de tests hacen que todo el trabajo se limite a ir haciendo pequeños ajustes, arreglar tests y finalmente poder añadir la nueva funcionalidad teniendo todo el sistema de nuevo operativo.</p>
<p>Durante la implementación de esta historia de usuario he podido ahondar un poco más en conceptos como los <a href="http://www.junit.org/node/580" target="_blank">Rules de jUnit</a>, el uso de builders para la inicialización de los datos o las mejoras de expresividada en los asserts con <a href="http://joe.truemesh.com/blog/000511.html" target="_blank">assertThat</a> y <a href="http://code.google.com/p/hamcrest/" target="_blank">Harmcrest</a>.</p>
<p>No ha faltado la visión divertida, a la vez que instructiva de <a href="http://twitter.com/AlfredoCasado" target="_blank">@AlfredoCasado</a> en muchos aspectos del desarrollo, sobretodo en las comparaciones de Google Guice/Spring, JDBC/JPA y otras muchas <img src='http://xml-utils.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>Al final ha sido un día muy productivo y casi casi hemos completado la historia asignada, con lo que mañana toca afinar unos pequeños detalles y listo.</p>
<p>Adicionalmente, hemos decidido hacer mañana una pequeña presentación a todo el equipo sobre temas de firma. Así que durante una hora intentaré darles una visión sobre los distintos enfoques que se pueden seguir, formatos existentes y herramientas disponibles como <a href="http://universitatjaumei.jira.com/browse/CRYPTOAPPLET" target="_blank">CryptoApplet</a>. Espero que sirva para dar a la gente de <a href="http://www.ipsa.es" target="_blank">IPSA</a> una buena impresión de lo que es un <a href="http://desk-surfing.org/" target="_blank">DeskSurfing</a> &#8230; </p>
<p>Eso es todo por hoy. Mañana más &#8230; </p>
]]></content:encoded>
			<wfw:commentRss>http://xml-utils.com/2011/07/27/desksurfingday-2/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>DeskSurfing@Day 1</title>
		<link>http://xml-utils.com/2011/07/26/desksurfingday-1/</link>
		<comments>http://xml-utils.com/2011/07/26/desksurfingday-1/#comments</comments>
		<pubDate>Tue, 26 Jul 2011 19:55:44 +0000</pubDate>
		<dc:creator>borillo</dc:creator>
				<category><![CDATA[Agile]]></category>
		<category><![CDATA[All]]></category>
		<category><![CDATA[Firma digital]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[UJI]]></category>

		<guid isPermaLink="false">http://xml-utils.com/?p=153</guid>
		<description><![CDATA[La iniciativa de desk-surfing.org surge con el siguiente objetivo: &#8220;&#8221;" Estamos aquí para poner en contacto a profesionales que quieren mejorar. Para tener un lugar donde encontrar intercambios de puestos de trabajo. Donde unos abren sus puertas a otros para compartir experiencia, conocimiento y metodologías. Todo ello con el objetivo de aprender. &#8220;&#8221;" Este interesante [...]]]></description>
			<content:encoded><![CDATA[<p>La iniciativa de <a href="http://desk-surfing.org/" target="_blank">desk-surfing.org</a> surge con el siguiente objetivo:</p>
<p>&#8220;&#8221;"<br />
Estamos aquí para poner en contacto a profesionales que quieren mejorar. Para tener un lugar donde encontrar intercambios de puestos de trabajo. Donde unos abren sus puertas a otros para compartir experiencia, conocimiento y metodologías. Todo ello con el objetivo de aprender.<br />
&#8220;&#8221;"</p>
<p>Este interesante espíritu fué el que motivó mi interés por entrar en contacto con profesionales del mundo del desarrollo ágil de los que poder aprender buenas prácticas y aspectos avanzados de testing.</p>
<p><a href="http://www.ipsa.es" target="_blank">IPSA</a> ha sido la empresa elegida gracias al talento de su plantilla, la cual cuenta entre sus filas con cracks como <a href="http://twitter.com/jjballano" target="_blank">@jjballano</a> y <a href="http://twitter.com/AlfredoCasado" target="_blank">@AlfredoCasado</a>.</p>
<p>Como en todo buen intercambio, mi objetivo era poder ofrecer algo al equipo de <a href="http://www.ipsa.es" target="_blank">IPSA</a>, así que durante nuestras conversaciones iniciales, descubrimos el interés de estos por el mundo de la firma digital, los formatos de firma y las APIs existentes.</p>
<p>Bajo estas premisas llegué ayer a Madrid con la intención de pasar cuatro días con el equipo e intercambiar experiencias relativas a testing y firma digital.</p>
<p>Tras el amable recibimiento de <a href="http://twitter.com/jjballano" target="_blank">@jjballano</a> a mi llegada, comenzamos a comentar distintos aspectos interesantes del desarrollo en los que podríamos colaborar. Empezaba a estar ansioso ya por ponernos manos a la obra y comenzar a trabajar <img src='http://xml-utils.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>Hoy ha sido mi primer día en las oficinas de IPSA. El día ha comenzado con una reunion con el equipo de desarrollo con el fin de encontrar puntos de interés comunes, y no han tardado en surgir ideas como hacer un spike para testear las posibilidades de <a href="http://universitatjaumei.jira.com/browse/CRYPTOAPPLET" target="_blank">CryptoApplet</a> y otras librerías de firma, así como la posibilidad de hacer un pequeño seminario sobre formatos de firma.</p>
<p>Posteriormente, hemos entrado en el día a día del equipo cumpliendo con la demo que tenían pendiente y una posterior retrospectiva y planificación del siguiente sprint.</p>
<p>Me ha sorprendido gratamente la cantidad de personas de negocio que este equipo es capaz de congregar y como se implican estas en el proyecto (unos minutos antes de la demo ya estaban todos por allí exigiendo la realización de la reunión).</p>
<p>Aunque hoy no hemos podido contar con <a href="http://twitter.com/AlfredoCasado" target="_blank">@AlfredoCasado</a> que estaba fuera de la oficina, he tenido la posibilidad de concluir el día haciendo unos tests de generación de firmas longevas XAdES X-L con <a href="http://twitter.com/jjballano" target="_blank">@jjballano</a>.</p>
<p>Mañana toca sesión de testing aprovechando que en este sprint hay muchas tareas de este ámbito, aunque es posible que también abordemos alguna tarea de front con JavaScript ya que es un punto que tocamos muy a menudo en las aplicaciones UJI.</p>
<p>En conclusión, primera toma de contacto y día intenso de Scrum y spikes de firma digital.</p>
<p>Mañana más <img src='http://xml-utils.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://xml-utils.com/2011/07/26/desksurfingday-1/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Curso de Introducción a la Accesibilidad Web</title>
		<link>http://xml-utils.com/2011/05/23/curso-de-introduccion-a-la-accesibilidad-web/</link>
		<comments>http://xml-utils.com/2011/05/23/curso-de-introduccion-a-la-accesibilidad-web/#comments</comments>
		<pubDate>Mon, 23 May 2011 05:08:23 +0000</pubDate>
		<dc:creator>borillo</dc:creator>
				<category><![CDATA[Accesibilidad]]></category>
		<category><![CDATA[All]]></category>
		<category><![CDATA[decharlas]]></category>
		<category><![CDATA[Publicaciones]]></category>

		<guid isPermaLink="false">http://xml-utils.com/?p=148</guid>
		<description><![CDATA[Durante la semana pasada colaboré en la realización de un Curso de Introducción a la Accesibilidad Web para alumnos de la UJI de distintas titulaciones (no sólo informática). La primera parte del curso se completó con la jornada &#8220;Accesibilidad en primera persona&#8221; impartida por Miquel Martín y organizada por decharlas: Posteriormente y junto a David [...]]]></description>
			<content:encoded><![CDATA[<p>Durante la semana pasada colaboré en la realización de un <a href="http://www.uji.es/ES/serveis/use/amb/enee/eneeinclou/caw11.html" target="_blank">Curso de Introducción a la Accesibilidad Web</a> para alumnos de la UJI de distintas titulaciones (no sólo informática).</p>
<p>La primera parte del curso se completó con la jornada &#8220;Accesibilidad en primera persona&#8221; impartida por Miquel Martín y organizada por decharlas:</p>
<p><center><br />
<iframe src="http://player.vimeo.com/video/22287239?title=0&amp;byline=0&amp;portrait=0" width="501" height="376" frameborder="0"></iframe><br />
</center></p>
<p>Posteriormente y junto a David Gonzalez (del Servicio de Comunicaciones y Publicaciones de la UJI), impartí un pequeño curso teórico/práctico en el que explorar los principales aspectos definidos por las guías de accesibilidad del <a href="http://www.w3.org/WAI/" target="_blank">W3C</a> (<a href="http://www.w3.org/TR/WCAG10/" target="_blank">WCAG 1.0</a> y <a href="http://www.w3.org/TR/WCAG20/" target="_blank">WCAG 2.0</a>) y cómo aplicarlas a nuestros sitios web realizando validaciones automáticas con <a href="http://www.tawdis.net/" target="_blank">TAW</a> o <a href="http://www.sidar.org/hera/" target="_blank">HERA</a>, o revisiones manuales.</p>
<p>A continuación os dejo las slides de la presentación a modo de resumen. El resto del material del curso lo podeis encontrar <a href="http://www.scp.uji.es/caw/" target="_blank">aquí</a>.</p>
<p><iframe class="scribd_iframe_embed" src="http://www.scribd.com/embeds/56039200/content?start_page=1&#038;view_mode=list&#038;access_key=key-aoldm5vsfsyusun16va" data-auto-height="true" data-aspect-ratio="1.33333333333333" scrolling="no" id="doc_68447" width="100%" height="600" frameborder="0"></iframe><script type="text/javascript">(function() { var scribd = document.createElement("script"); scribd.type = "text/javascript"; scribd.async = true; scribd.src = "http://www.scribd.com/javascripts/embed_code/inject.js"; var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(scribd, s); })();</script></p>
]]></content:encoded>
			<wfw:commentRss>http://xml-utils.com/2011/05/23/curso-de-introduccion-a-la-accesibilidad-web/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Nabaztag como sistema de notificación de Jenkins</title>
		<link>http://xml-utils.com/2011/05/14/nabaztag-como-sistema-de-notificacion-de-jenkins/</link>
		<comments>http://xml-utils.com/2011/05/14/nabaztag-como-sistema-de-notificacion-de-jenkins/#comments</comments>
		<pubDate>Sat, 14 May 2011 16:28:19 +0000</pubDate>
		<dc:creator>borillo</dc:creator>
				<category><![CDATA[Agile]]></category>
		<category><![CDATA[All]]></category>
		<category><![CDATA[UJI]]></category>

		<guid isPermaLink="false">http://xml-utils.com/?p=132</guid>
		<description><![CDATA[Desde hace ya un tiempo que venimos utilizando Jenkins como servidor de integración contínua. El problema es que a medida que el número de proyectos aumenta, también lo hace el número de notificaciones por correo que recibimos de Jenkins informando al equipo del estado de los proyectos. Como casi siempre con estos sistemas de notificación, [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://xml-utils.com/wp-content/uploads/2011/05/5718664163_ac2a1779ed.jpg" alt="" title="5718664163_ac2a1779ed" width="150" align="right" class="alignright size-full wp-image-133" style="margin-left:10px; margin-bottom:10px;" /></p>
<p>Desde hace ya un tiempo que venimos utilizando <a href="http://jenkins-ci.org/" target="_blank">Jenkins</a> como servidor de integración contínua. El problema es que a medida que el número de proyectos aumenta, también lo hace el número de notificaciones por correo que recibimos de <a href="http://jenkins-ci.org/" target="_blank">Jenkins</a> informando al equipo del estado de los proyectos.</p>
<p>Como casi siempre con estos sistemas de notificación, la gente comienza a prestar menos atención a los correos recibidos y como consecuencia, se relaja la atención sobre el estado de las builds.</p>
<p>Intentado ver como corregir este efecto, vimos en internet distintos experimentos con sistemas visuales de notificación como semáforos o espadas laser, así que decidimos poner en marcha uno basado <a href="http://www.karotz.com/home" target="_blank">Nabaztag</a>.</p>
<p><a href="http://www.karotz.com/home" target="_blank">Nabaztag</a> es un juguete electrónico en forma de conejo que, mediante una conexión wifi, es capaz de recibir y reproducir mensajes externos o ficheros MP3.</p>
<p>El objetivo era que el <a href="http://www.karotz.com/home" target="_blank">Nabaztag</a> fuera el encargado de informar al equipo de viva voz cuando comienza una build, cuando concluye con éxito y, sobretodo, cuando falla.</p>
<p>Comenzamos a plantearnos como desarrollar un plugin de conexión con <a href="http://jenkins-ci.org/" target="_blank">Jenkins</a>, ya que <a href="http://www.karotz.com/home" target="_blank">Nabaztag</a> proporciona un API REST para poder lanzar comandos. El caso es que <a href="http://jenkins-ci.org/" target="_blank">Jenkins</a> es una excelente herramienta para la que ya existen innumerables plugins, y como no podía ser de otra forma, ya existía un <a href="https://wiki.jenkins-ci.org/display/JENKINS/Nabaztag+Plugin" target="_blank">plugin para comunicación con los Nabaztag</a> <img src='http://xml-utils.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>El proceso de instalación fue realmente sencillo. Ir a <a href="http://jenkins-ci.org/" target="_blank">Jenkins</a>, agregar el plugin de <a href="http://www.karotz.com/home" target="_blank">Nabaztag</a> y configurarlo:</p>
<p><img src="http://xml-utils.com/wp-content/uploads/2011/05/jenkins.png" alt="" title="jenkins" class="alignright size-full wp-image-135" style="width:100%;"/></p>
<p>Desde que lo pusimos en marcha, se ha convertido en uno mas del equipo, y gracias a webs como <a href="http://finecarrots.com/finedress.htm" target="_blank">finecarrots</a>, puede ir renovándose y cambiando de look.</p>
<p>Nuestro <a href="http://www.karotz.com/home" target="_blank">Nabaztag</a> en San Valentin:</p>
<p><center><br />
<img src="http://xml-utils.com/wp-content/uploads/2011/05/5719225378_f04b39f5ee_m.jpg" alt="" title="5719225378_f04b39f5ee_m" width="200" class="alignright size-full wp-image-134" /><br />
</center></p>
<p>O para la feria de Abril:</p>
<p><center><br />
<iframe width="425" height="349" src="http://www.youtube.com/embed/gw9DnZ2PUJ4" frameborder="0" allowfullscreen></iframe><br />
</center></p>
]]></content:encoded>
			<wfw:commentRss>http://xml-utils.com/2011/05/14/nabaztag-como-sistema-de-notificacion-de-jenkins/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Consultas SQL type-safe sencillas para JPA con QueryDSL</title>
		<link>http://xml-utils.com/2011/03/26/consultas-sql-type-safe-sencillas-para-jpa-con-querydsl/</link>
		<comments>http://xml-utils.com/2011/03/26/consultas-sql-type-safe-sencillas-para-jpa-con-querydsl/#comments</comments>
		<pubDate>Sat, 26 Mar 2011 20:21:53 +0000</pubDate>
		<dc:creator>borillo</dc:creator>
				<category><![CDATA[All]]></category>
		<category><![CDATA[Java]]></category>

		<guid isPermaLink="false">http://xml-utils.com/?p=122</guid>
		<description><![CDATA[Desde hace algún tiempo, estaba cuestionándome la forma en que mis DAO realizaban las consultas a base de datos haciendo uso de mis entidades JPA (clases con anotaciones @Entity). Inicialmente, opté por escribir las consultas en texto utilizando el lenguaje JPQL (Java Persistence Query Language). Esta me pareció una primera aproximación bastante sencilla, legible y [...]]]></description>
			<content:encoded><![CDATA[<p>Desde hace algún tiempo, estaba cuestionándome la forma en que mis <a href="http://www.codefutures.com/products/firestorm/benefits/" target="_blank">DAO</a> realizaban las consultas a base de datos haciendo uso de mis entidades JPA (clases con anotaciones @Entity).</p>
<p>Inicialmente, opté por escribir las consultas en texto utilizando el lenguaje <a href="http://en.wikipedia.org/wiki/Java_Persistence_Query_Language" target="_blank">JPQL</a> (Java Persistence Query Language). Esta me pareció una primera aproximación bastante sencilla, legible y rápida de realizar las consultas.</p>
<p>Como uso Spring Framework en mis desarrollos y suelo apoyarme en el JpaTemplate, mis consultas quedaban de la siguiente forma:</p>
<p><code>List<Empleado> listaEmpleados = jpaTemplate.find("from Empleado e where e.id = " + empleadoId);</code></p>
<p>Los problemas de utilizar esta sintaxis, aparecen rápidamente. El primero puede ser la seguridad, ya que me pueden inyectar código SQL y modificar el comportamiento de mis consultas.</p>
<p>Al margen de estas consideraciones, está el problema de que cuando comienzo a concatenar criterios, construir la cadena final que exprese la consulta a ejecutar se vuelve un proceso bastante complicado y muy propenso a errores.</p>
<p>Existen algunas maneras de evitar concatenar los valores de los filtros utilizando por ejemplo la clase MessageFormat de Java:</p>
<p><code>MessageFormat.format("from Empleado e where e.id = {0}", empleadoId);</code></p>
<p>O también la posibilidad de realizar las llamadas mediante &#8220;named params&#8221;:</p>
<p><code>Map<String, String> params = new HashMap<String, String>();<br />
params.put("empleadoId", empleadoId);<br />
jpaTemplate.findByNamedParams("from Empleado where e.id = :empleadoId", params);</code></p>
<p>Estas construcciones previenen la inyección de código SQL, pero seguimos teniendo el problema de que cualquier fallo que tengamos al codificar las consultas SQL, no se verá hasta que ejecutemos la consulta.</p>
<p>Está claro que deberíamos implementar tests que garanticen el correcto funcionamiento de nuestra capa de persistencia, pero sería deseable que este tipo de errores de codificación se pudieran detectar de forma más temprana.</p>
<p>Una de las soluciones al respecto es utilizar la <a href="http://www.altuure.com/2010/09/23/jpa-criteria-api-by-samples-part-i/" target="_blank">Criteria API</a> que tenemos disponible en JPA 2. Con esta API podemos construir las consultas de forma programática y evitar errores.</p>
<p>Básicamente, el uso de la Criteria API tiene el problema de que es un poco enrevesada de utilizar, de forma que las consultas producidas quedan muy poco legibles.</p>
<p>Ejemplo de consulta con la Criteria API:</p>
<p><code>CriteriaQuery query = builder.createQuery();<br />
Root<Person> men = query.from(Person.class);<br />
Root<Person> women = query.from(Person.class);<br />
Predicate menRestriction = builder.and(<br />
        builder.equal(men.get(Person_.gender), Gender.MALE),<br />
        builder.equal(men.get(Person_.relationshipStatus),<br />
        RelationshipStatus.SINGLE));<br />
Predicate womenRestriction = builder.and(<br />
        builder.equal( women.get(Person_.gender), Gender.FEMALE),<br />
        builder.equal( women.get(Person_.relationshipStatus),<br />
       RelationshipStatus.SINGLE));<br />
query.where(builder.and(menRestriction, womenRestriction));<br />
</code></p>
<p>Como posible solución a estos escenarios, aparece <a href="http://www.querydsl.com/" target="_blank">QueryDSL</a>. <a href="http://www.querydsl.com/" target="_blank">QueryDSL</a> nos ofrece una sintaxis mucho más flexible y natural, siendo necesaria la generación de una serie de clases a partir de nuestras entidades JPA mediante el uso de APT (Annotation Processing Tool).</p>
<p>Esta generación es posible realizarla de forma automática mediante <a href="http://blog.mysema.com/2010/07/querying-hibernate-with-querydsl.html" target="_blank">Ant o Maven</a>.</p>
<p>En defintiva, que <a href="http://www.querydsl.com/" target="_blank">QueryDSL</a> procesará todas las clases que tengamos con anotaciones del tipo @Entity, y producirá un nuevo conjunto de clases que permitirán construir consultas de una manera muy simple y semántica.</p>
<p>Con <a href="http://www.querydsl.com/" target="_blank">QueryDSL</a>, la consulta anterior quedaría como:</p>
<p><code>JPAQuery query = new JPAQuery(em);<br />
    QPerson men = new QPerson("men");<br />
    QPerson women = new QPerson("women");<br />
    query.from(men, women).where(<br />
          men.gender.eq(Gender.MALE),<br />
          men.relationshipStatus.eq(RelationshipStatsu.SINGLE),<br />
          women.gender.eq(Gender.FEMALE),<br />
          women.relationshipStatsu.eq(RelationshipStatus.SINGLE));<br />
</code></p>
]]></content:encoded>
			<wfw:commentRss>http://xml-utils.com/2011/03/26/consultas-sql-type-safe-sencillas-para-jpa-con-querydsl/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
	</channel>
</rss>

