<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><rss 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/" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0">

<channel>
	<title>Arragonán</title>
	
	<link>http://www.danilat.com/weblog</link>
	<description>Daniel Latorre - Desarrollador y algunas cosas más</description>
	<lastBuildDate>Mon, 09 Nov 2009 01:51:40 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.5</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" href="http://feeds.feedburner.com/danilat" type="application/rss+xml" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com" /><item>
		<title>Gracias Rails</title>
		<link>http://feedproxy.google.com/~r/danilat/~3/GdwzLINJKeU/</link>
		<comments>http://www.danilat.com/weblog/2009/11/09/gracias-rails/#comments</comments>
		<pubDate>Mon, 09 Nov 2009 01:51:40 +0000</pubDate>
		<dc:creator>dani</dc:creator>
				<category><![CDATA[Java]]></category>
		<category><![CDATA[Programación]]></category>
		<category><![CDATA[Rails]]></category>

		<guid isPermaLink="false">http://www.danilat.com/weblog/?p=577</guid>
		<description><![CDATA[Gracias a @tomaslin, me encuentro un más que interesante post llamado Thank you, Rails de Jacob Kaplan-Moss, presidente de la Django Software Foundation, con quien no podría estar más de acuerdo!
Es más que habitual ver gente de dentro de una comunidad de un framework inspirado en Rails hacer críticas más o menos feroces hacia el [...]]]></description>
			<content:encoded><![CDATA[<p>Gracias a <a href="http://twitter.com/tomaslin/status/5478632440">@tomaslin</a>, me encuentro un más que interesante post llamado <a href="http://jacobian.org/writing/thank-you-rails/">Thank you, Rails</a> de <a href="http://jacobian.org/">Jacob Kaplan-Moss</a>, presidente de la <a href="http://www.djangoproject.com/foundation/">Django Software Foundation</a>, con quien no podría estar más de acuerdo!</p>
<p>Es más que habitual ver gente de dentro de una comunidad de un framework inspirado en <a href="http://rubyonrails.org/">Rails</a> hacer críticas más o menos feroces hacia el propio Rails, y comparar el framework de turno con Rails para &#8220;demostrar&#8221; que tiene mejor rendimiento, que escala mejor(en cualquier caso, pienso que sería más correcto decir que es más <em>fácil</em> escalar), etc., afirmaciones que pueden ser más o menos reales, aunque hay por ahí algunos benchmarks/comparativas que hay que cogerlos con pinzas. </p>
<p>A mi, en la mayoría de los casos, me parece una actitud negativa que &#8220;enfrenta&#8221; comunidades, a ver quien la tiene más larga, y no lleva a ninguna parte. Es mucho más inteligente observar, aplaudir y por qué no copiar o adaptar, los avances de frameworks diferentes al &#8220;mío&#8221;.</p>
<p>Para mi, el gran mérito de Rails, además de que se haya creado una comunidad más que interesante alrededor suyo, es que replanteó a muchos como se llevaba a cabo el desarrollo web, y por ello que hayan salido tantos frameworks web que lo han tenido como ejemplo para tener algo similar en otros lenguajes de programación  (<a href="http://grails.org/">Grails</a>, <a href="http://www.djangoproject.com/">Django</a>, <a href="http://cakephp.org/">CakePHP</a>, <a href="http://www.symfony-project.org/">Symfony</a>, <a href="http://www.springsource.org/roo">Roo</a>, <a href="http://framework.zend.com/">Zend</a>, <a href="http://www.playframework.org/">Play!</a>, y otros muchos que me dejo).</p>
<p>Y volviendo al post de Jacob Kaplan-Moss, agradece principalmente dos cosas de Rails:</p>
<ul>
<li><strong>La programación debe ser divertida</strong>(pienso que Ruby dentro de Rails tiene mucha culpa en este punto): Creo que la mayoría que nos metimos en este mundillo, lo hicimos porque nos parecía que iba a ser divertido (bueno&#8230; otra razón era que la informática era el futuro y se iba a cobrar mucho dinero XD).
<p>Jacob habla de que la comunidad Python a veces se toma a ella misma demasiado en serio: necesitaba ser un lenguaje serio, usado por gente seria, para empresas serias y grandes desarrollos(a.k.a. &#8220;enterprisey&#8221;). </p>
<p>Y llegó Rails para recordar que el desarrollo web debería ser algo divertido, la comunidad Rails en general desprende que se pueden desarrollar productos pequeños, divertidos, ligeros y además hacer dinero con ellos.
</li>
<li><strong>La simplicidad es una feature</strong>, o lo que sería <em>menos es más</em>: Pone como anti-ejemplo el caso de los CMS y la típica obsesión de cubrir el máximo de casos de uso posibles, terminando siendo productos mastodónticos. Aunque no exclusivo de los CMS, seguro que muchos de los que hemos trabajado con gestión de contenidos, lo hemos vivido.
<p>Rails, por un lado no pretende cubrir el máximo de casos de uso reales, para eso hay plugins que pueden facilitar la vida; y por otro, es un framework <em>opinado</em> (aquí entra lo de <a href="http://es.wikipedia.org/wiki/Convenci%C3%B3n_sobre_Configuraci%C3%B3n">Convention over Configuration</a> <img src='http://www.danilat.com/weblog/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> ). Lo que quiere decir que el framework tiene un funcionamiento por defecto que no es necesario configurar, para ahorrar decisiones al desarrollador, lo que lo hace más simple.</p>
<p>Resumiendo, gracias a Rails, estos nuevos frameworks tratan de minimizar el trabajo &#8220;genérico&#8221; de los desarrolladores, sin querer llegar a cubrir cada caso de uso.</li>
</ul>
<p>¿He dicho que el lenguaje con el que más he trabajado(y sigo trabajando) es Java? Considerado uno de los lenguajes más &#8220;serios&#8221; y más complejos en cuanto a configuraciones, especificaciones&#8230; pero sobre todo en la forma que se ha venido utilizando. Y gracias a Rails han aparecido algunos frameworks web interesantes como Grails o Play!, y creo que algunos otros de los que no hablo porque no tengo suficientes referencias, que son más divertidos y minimizan el trabajo. </p>
<p>Por esto, además de porque he trabajado con Rails y que tengo pendiente retomarlo XD, <strong>gracias</strong>!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.danilat.com/weblog/2009/11/09/gracias-rails/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.danilat.com/weblog/2009/11/09/gracias-rails/</feedburner:origLink></item>
		<item>
		<title>Actualizado a Wordpress 2.8.5</title>
		<link>http://feedproxy.google.com/~r/danilat/~3/rk67eHtaQa4/</link>
		<comments>http://www.danilat.com/weblog/2009/11/07/actualizado-a-wordpress-2-8-5/#comments</comments>
		<pubDate>Sat, 07 Nov 2009 03:49:51 +0000</pubDate>
		<dc:creator>dani</dc:creator>
				<category><![CDATA[Php]]></category>

		<guid isPermaLink="false">http://www.danilat.com/weblog/?p=602</guid>
		<description><![CDATA[Una bendición esto de las actualizaciones automáticas de wordpress, sobre todo para los que no nos gusta perder tiempo manteniendo nuestra instalación  
He pasado de 2.7.1 a 2.8.5 y por ahora sin problemas, si alguien encuentra algo, se agradece el aviso  
]]></description>
			<content:encoded><![CDATA[<p>Una bendición esto de las actualizaciones automáticas de wordpress, sobre todo para los que <a href="http://www.danilat.com/weblog/2009/03/01/migrado-de-wordpress-2011-a-271/">no nos gusta perder tiempo manteniendo nuestra instalación</a> <img src='http://www.danilat.com/weblog/wp-includes/images/smilies/icon_razz.gif' alt=':P' class='wp-smiley' /> </p>
<p>He pasado de 2.7.1 a 2.8.5 y por ahora sin problemas, si alguien encuentra algo, se agradece el aviso <img src='http://www.danilat.com/weblog/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://www.danilat.com/weblog/2009/11/07/actualizado-a-wordpress-2-8-5/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		<feedburner:origLink>http://www.danilat.com/weblog/2009/11/07/actualizado-a-wordpress-2-8-5/</feedburner:origLink></item>
		<item>
		<title>Anunciada la Beca Alzado 2009</title>
		<link>http://feedproxy.google.com/~r/danilat/~3/1w32QD0gQ5I/</link>
		<comments>http://www.danilat.com/weblog/2009/11/04/anunciada-la-beca-alzado-2009/#comments</comments>
		<pubDate>Wed, 04 Nov 2009 01:08:06 +0000</pubDate>
		<dc:creator>dani</dc:creator>
				<category><![CDATA[General]]></category>
		<category><![CDATA[Jobsket]]></category>

		<guid isPermaLink="false">http://www.danilat.com/weblog/?p=573</guid>
		<description><![CDATA[Parece mentira que ya haya pasado un año desde que nos planteamos participar con Jobsket en la Beca Alzado 2008, que finalmente nos concedieron. 
Pues resulta que hace unos días, en alzado han convocado la Beca Alzado 2009. Para el que no la conozca, es un concurso de ideas, donde al ganador se le dan [...]]]></description>
			<content:encoded><![CDATA[<p>Parece mentira que ya haya pasado un año desde que nos planteamos participar con <a href="http://www.jobsket.com/">Jobsket</a> en la Beca Alzado 2008, <a href="http://www.danilat.com/weblog/2008/12/15/jobsket-ganador-de-la-beca-alzado-2008/">que finalmente nos concedieron</a>. </p>
<p>Pues resulta que hace unos días, en <a href="http://alzado.org/">alzado</a> han convocado la <a href="http://alzado.org/articulo.php?id_art=810">Beca Alzado 2009</a>. Para el que no la conozca, es un concurso de ideas, donde al ganador se le dan 3000€ para ayudarle a que se pueda hacer realidad, sin ningún compromiso con alzado ni nada de <em>letra pequeña</em>.</p>
<p>Sólo puedo recomendar presentarse a todo el mundo que ande con un proyecto interesante entre manos. En nuestro caso, nos ha servido de ayuda a muchos niveles(los 3000€, ganar visibilidad, consejos&#8230;), además de ser una gran inyección de motivación <img src='http://www.danilat.com/weblog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>Y para los que queráis saber más acerca de <a href="http://www.jobsket.com/">Jobsket</a>, tras convocar la Beca para este año, <a href="http://www.eduardomanchon.com/">Eduardo Manchón</a> ha publicado una <a href="http://alzado.org/articulo.php?id_art=815">entrevista a Martín</a>, donde habla de un poco de todo: de donde venimos, hacia donde queremos ir, como trabajamos&#8230;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.danilat.com/weblog/2009/11/04/anunciada-la-beca-alzado-2009/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		<feedburner:origLink>http://www.danilat.com/weblog/2009/11/04/anunciada-la-beca-alzado-2009/</feedburner:origLink></item>
		<item>
		<title>Cierra la puerta</title>
		<link>http://feedproxy.google.com/~r/danilat/~3/-By5G2R2Mm0/</link>
		<comments>http://www.danilat.com/weblog/2009/10/30/cierra-la-puerta/#comments</comments>
		<pubDate>Fri, 30 Oct 2009 01:32:48 +0000</pubDate>
		<dc:creator>dani</dc:creator>
				<category><![CDATA[Humor]]></category>

		<guid isPermaLink="false">http://www.danilat.com/weblog/?p=569</guid>
		<description><![CDATA[
By dream sister  
]]></description>
			<content:encoded><![CDATA[<p><img src="http://farm3.static.flickr.com/2342/2089801014_6791eb2a71_d.jpg" alt="" /></p>
<p>By <a href="http://www.flickr.com/photos/dreamsister/">dream sister</a> <img src='http://www.danilat.com/weblog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://www.danilat.com/weblog/2009/10/30/cierra-la-puerta/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		<feedburner:origLink>http://www.danilat.com/weblog/2009/10/30/cierra-la-puerta/</feedburner:origLink></item>
		<item>
		<title>Great developers – not programming languages – build great products</title>
		<link>http://feedproxy.google.com/~r/danilat/~3/-Cuib9-ZEIY/</link>
		<comments>http://www.danilat.com/weblog/2009/10/20/great-developers-not-programming-languages-build-great-products/#comments</comments>
		<pubDate>Tue, 20 Oct 2009 02:15:57 +0000</pubDate>
		<dc:creator>dani</dc:creator>
				<category><![CDATA[Programación]]></category>

		<guid isPermaLink="false">http://www.danilat.com/weblog/?p=562</guid>
		<description><![CDATA[Hacía tiempo mucho que me rondaba por la cabeza escribir algo de la &#8220;guerra&#8221; de los lenguajes de programación(y frameworks por extensión), un flame típico en blogs, foros, listas de correo, eventos, cafés, cervezas&#8230; y Abel Muiño (@amuino) me lo puso ayer en bandeja con esta cita extraída del post The Best Programming Language for [...]]]></description>
			<content:encoded><![CDATA[<p>Hacía tiempo mucho que me rondaba por la cabeza escribir algo de la &#8220;guerra&#8221; de los lenguajes de programación(y frameworks por extensión), un flame típico en blogs, foros, listas de correo, eventos, cafés, cervezas&#8230; y <a href="http://ramblingabout.wordpress.com/">Abel Muiño</a> (<a href="http://twitter.com/amuino/status/4995763392">@amuino</a>) me lo puso ayer en bandeja con esta cita extraída del post <a href="http://kevindewalt.com/blog/2009/10/14/the-best-programming-language-for-a-lean-startup/">The Best Programming Language for a Lean Startup</a>.</p>
<p>A mi ha llegado un punto en que me resulta gracioso, dependiendo de la experiencia de cada programador, se  oyen opiniones que no tienen nada que ver unas con otras. Cuando al final, que un producto sea mejor o peor(al menos a nivel de programación), depende más de la capacidad del programador y su experiencia con el lenguaje que utilice, y no del lenguaje en sí.</p>
<p>Algunas opiniones/tópicos que he visto repetirse muuuchas veces:</p>
<blockquote><p>Java es &#8220;enterprisey&#8221;.<br />
Rails no escala.<br />
Para aplicaciones empresariales serias, hay que utilizar Java.<br />
Javascript es sucio.<br />
Si no tiene tipado estático, es para aplicaciones de juguete.<br />
-Pon aquí un lenguaje- es lento.<br />
-Pon aquí un lenguaje- es una mierda XD.
</p></blockquote>
<p>O el clásico:</p>
<blockquote><p>Cobol está muerto</p></blockquote>
<p>Y para que no se diga, tampoco estoy libre de pecado, yo pienso que PHP lo pone demasiado fácil para empezar a escribir <a href="http://es.wikipedia.org/wiki/C%C3%B3digo_spaghetti">código spaghetti</a> XD</p>
]]></content:encoded>
			<wfw:commentRss>http://www.danilat.com/weblog/2009/10/20/great-developers-not-programming-languages-build-great-products/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		<feedburner:origLink>http://www.danilat.com/weblog/2009/10/20/great-developers-not-programming-languages-build-great-products/</feedburner:origLink></item>
		<item>
		<title>La ciencia en España no necesita tijeras</title>
		<link>http://feedproxy.google.com/~r/danilat/~3/U7hpD_BNikQ/</link>
		<comments>http://www.danilat.com/weblog/2009/10/07/la-ciencia-en-espana-no-necesita-tijeras/#comments</comments>
		<pubDate>Tue, 06 Oct 2009 23:59:59 +0000</pubDate>
		<dc:creator>dani</dc:creator>
				<category><![CDATA[General]]></category>

		<guid isPermaLink="false">http://www.danilat.com/weblog/?p=554</guid>
		<description><![CDATA[Vía Ricardo Galli encuentro la inciativa La ciencia en España no necesita tijeras, a la que no puedo más que unirme.

Precisamente, el lunes noche volví de unos días de vacaciones en Bélgica, donde visité a un &#8220;cerebro fugado&#8221; que se dedica a la investigación. Además, pude conocer a más españoles en su misma situación y [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://gallir.wordpress.com/2009/10/07/la-ciencia-en-espana-no-necesita-tijeras/">Vía Ricardo Galli</a> encuentro la inciativa <a href="http://aldea-irreductible.blogspot.com/2009/10/la-ciencia-en-espana-no-necesita.html">La ciencia en España no necesita tijeras</a>, a la que no puedo más que unirme.</p>
<p><a href="http://www.flickr.com/photos/dlato/3988774130/" title="La ciencia en España no necesita tijeras por Dani Latorre, en Flickr"><img src="http://farm4.static.flickr.com/3534/3988774130_e97e8efef8.jpg" width="500" height="500" alt="La ciencia en España no necesita tijeras" /></a></p>
<p>Precisamente, el lunes noche volví de unos días de vacaciones en Bélgica, donde visité a un <em>&#8220;cerebro fugado&#8221;</em> que se dedica a la investigación. Además, pude conocer a más españoles en su misma situación y hablamos sobre el tema, son investigadores a los que les gustaría volver, pero mientras quieran dedicarse a la investigación lo tienen realmente difícil y con hasta un 37% de recorte presupuestario, la puerta que seguirá abierta será la de salida.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.danilat.com/weblog/2009/10/07/la-ciencia-en-espana-no-necesita-tijeras/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.danilat.com/weblog/2009/10/07/la-ciencia-en-espana-no-necesita-tijeras/</feedburner:origLink></item>
		<item>
		<title>Escuela de Groovy se presenta</title>
		<link>http://feedproxy.google.com/~r/danilat/~3/sKOQko2hpI4/</link>
		<comments>http://www.danilat.com/weblog/2009/09/29/escuela-de-groovy-se-presenta/#comments</comments>
		<pubDate>Tue, 29 Sep 2009 01:13:21 +0000</pubDate>
		<dc:creator>dani</dc:creator>
				<category><![CDATA[Grails]]></category>
		<category><![CDATA[Groovy]]></category>
		<category><![CDATA[Java]]></category>

		<guid isPermaLink="false">http://www.danilat.com/weblog/?p=545</guid>
		<description><![CDATA[Me parece muy interesante la iniciativa que se presentó el Viernes en Madrid On Rails: Escuela de Groovy, una joint venture entre ImaginaWorks y Salenda, dos de las empresas de referencia en el mundillo Groovy/Grails/Griffon/&#8230; hispano.
Pienso que es interesante que unan el esfuerzo que ya estaban haciendo por separado impartiendo charlas, talleres y seminarios para [...]]]></description>
			<content:encoded><![CDATA[<p>Me parece muy interesante la iniciativa que <a href="http://www.escueladegroovy.com/blog/presentacion-de-escuela-de-groovy">se presentó el Viernes</a> en <a href="http://www.madridonrails.com/">Madrid On Rails</a>: <a href="http://www.escueladegroovy.com/"><strong>Escuela de Groovy</strong></a>, una joint venture entre <a href="http://www.imaginaworks.com/">ImaginaWorks</a> y <a href="http://www.salenda.es/">Salenda</a>, dos de las empresas de referencia en el mundillo Groovy/Grails/Griffon/&#8230; hispano.</p>
<p>Pienso que es interesante que unan el esfuerzo que ya estaban haciendo por separado impartiendo charlas, talleres y seminarios para &#8220;evangelizar&#8221; acerca de las bondades que pueden aportar Groovy o Grails; y que se quieran enfocar conjuntamente en hacer llegar estas tecnologías a las empresas para tratar de ayudarles a ser más productivas(principalmente a <em>empresas Java</em>, obviamente).</p>
<p>Os dejo los videos que grabaron durante la presentación, si os interesa conocer algunas cosas del lenguaje Groovy o del framework Grails, no dejéis de verlos:</p>
<p><embed src="http://blip.tv/play/AYGi_XEC" type="application/x-shockwave-flash" width="480" height="414" allowscriptaccess="always" allowfullscreen="true"></embed><br />
<a href="http://www.escueladegroovy.com/quienes-somos/alvaro-sanchezmariscal">Álvaro Sánchez-Mariscal</a>, haciendo una introducción a Groovy </p>
<p><embed src="http://blip.tv/play/AYGi9HgC" type="application/x-shockwave-flash" width="480" height="414" allowscriptaccess="always" allowfullscreen="true"></embed><br />
<a href="http://www.escueladegroovy.com/quienes-somos/nacho-brito">Nacho Brito</a>, acerca de los beneficios de usar Groovy</p>
]]></content:encoded>
			<wfw:commentRss>http://www.danilat.com/weblog/2009/09/29/escuela-de-groovy-se-presenta/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		<feedburner:origLink>http://www.danilat.com/weblog/2009/09/29/escuela-de-groovy-se-presenta/</feedburner:origLink></item>
		<item>
		<title>The Principles Of Successful Freelancing disponible gratuitamente</title>
		<link>http://feedproxy.google.com/~r/danilat/~3/X2Q7jzmjuA8/</link>
		<comments>http://www.danilat.com/weblog/2009/09/09/the-principles-of-successful-freelancing-disponible-gratuitamente/#comments</comments>
		<pubDate>Wed, 09 Sep 2009 01:27:11 +0000</pubDate>
		<dc:creator>dani</dc:creator>
				<category><![CDATA[General]]></category>

		<guid isPermaLink="false">http://www.danilat.com/weblog/?p=534</guid>
		<description><![CDATA[Ya hablé aquí hace un tiempo acerca del libro The Principles Of Successful Freelancing.
Pues resulta que hoy me ha llegado un correo de SitePoint, anunciando que durante 7 días la versión en PDF está disponible para descarga gratuita, yo ya me lo he descargado, a ver cuando voy terminando mis lecturas pendientes y le dedico [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.danilat.com/weblog/2008/12/13/principios-para-hacerse-freelance-con-exito/">Ya hablé aquí hace un tiempo</a> acerca del libro <a href="http://www.sitepoint.com/books/freelancer1/">The Principles Of Successful Freelancing</a>.</p>
<p>Pues resulta que hoy me ha llegado un correo de SitePoint, anunciando que durante 7 días la versión en PDF está <a href="http://twitaway.sitepoint.com/">disponible para descarga gratuita</a>, yo ya me lo he descargado, a ver cuando voy terminando mis <a href="http://java.sun.com/docs/books/effective/">lecturas</a> <a href="http://www.apress.com/book/view/1590599950">pendientes</a> y le dedico un tiempo, a ver si resulta un libro interesante y útil.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.danilat.com/weblog/2009/09/09/the-principles-of-successful-freelancing-disponible-gratuitamente/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.danilat.com/weblog/2009/09/09/the-principles-of-successful-freelancing-disponible-gratuitamente/</feedburner:origLink></item>
		<item>
		<title>Cambiando de prototype a YUI con Grails</title>
		<link>http://feedproxy.google.com/~r/danilat/~3/IbR7IUxzNig/</link>
		<comments>http://www.danilat.com/weblog/2009/09/08/cambiando-de-prototype-a-yui-con-grails/#comments</comments>
		<pubDate>Mon, 07 Sep 2009 23:46:25 +0000</pubDate>
		<dc:creator>dani</dc:creator>
				<category><![CDATA[Grails]]></category>
		<category><![CDATA[Javascript]]></category>

		<guid isPermaLink="false">http://www.danilat.com/weblog/?p=508</guid>
		<description><![CDATA[Días antes del último despliegue de Jobsket, estuve dándole vueltas a un problemilla con Grails 1.0.5 y los taglibs estándar para usar Ajax, por defecto Grails utiliza la librería javascript prototype para abstraerse de los distintos navegadores. Para que funcionen los taglibs remoteFunction, remoteLink y formRemote debemos utilizar &#60;g:javascript library=&#8221;prototype&#8221; /&#62; para que cargue el [...]]]></description>
			<content:encoded><![CDATA[<p>Días antes del último despliegue de <a href="http://www.jobsket.com/">Jobsket</a>, estuve dándole vueltas a un problemilla con <strong>Grails 1.0.5</strong> y los <a href="http://grails.org/doc/1.0.x/guide/6.%20The%20Web%20Layer.html#6.7%20Ajax">taglibs estándar para usar Ajax</a>, por defecto Grails utiliza la librería javascript <a href="http://www.prototypejs.org/">prototype</a> para abstraerse de los distintos navegadores. Para que funcionen los taglibs remoteFunction, remoteLink y formRemote debemos utilizar <em>&lt;g:javascript library=&#8221;prototype&#8221; /&gt;</em> para que cargue el .js de la librería, la cuestión es que estamos utilizando algunos componentes de <a href="http://developer.yahoo.com/yui/">YahooUI</a>(y de <a href="http://grails.org/plugin/grails-ui">GrailsUI</a>) y para aligerar el peso de las peticiones, queríamos quitar todas nuestras dependencias con prototype.</p>
<p>Después de refactorizar nuestro código javascript dependiente de prototype, donde hemos encontrado que hay efectos muy sencillos de implementar gracias a <a href="http://script.aculo.us/">script.aculo.us</a> que no lo son tanto con YahooUI(la librería <a href="http://blog.davglass.com/files/yui/effects/">Effects Widget</a> nos ha ayudado en esta transición), nos encontramos que teniendo en el layout la declaración de qué librería deben usar para renderizar esos taglibs de Ajax, en las vistas seguía haciéndolo con el código para prototype, por lo que daba errores javascript. Para que en cada vista renderizara usando el código de YUI, debemos poner la declaración <em>&lt;g:javascript library=&#8221;yui&#8221; /&gt;</em> en cada vista, yendo con cuidado en el orden de las dependencias, ya que si hay un <em>&lt;g:javascript library=&#8221;yui&#8221;/&gt;</em> en el layout y en la vista sólo se renderizará el segundo, por lo que habría que hacer algo así:</p>
<p>En el layout:<br />
<code>&lt;g:javascript library="yui" /&gt;<br />
&lt;g:layoutHead /&gt;<br />
&lt;yui:javascript dir="..." file="..." /&gt;<br />
&lt;yui:javascript dir="..." file="..." /&gt;<br />
&lt;g:javascript library="application" /&gt;</code></p>
<p>En la vista:<br />
<code>&lt;g:javascript library="yui" /&gt;<br />
&lt;yui:javascript dir="..." file="..." /&gt;</code></p>
<p>En este orden se renderizarán primero las dependencias básicas de la librería YUI, luego las que necesitemos para usar componentes, y por último nuestro propio código que puede depender de algún componente.</p>
<p>En fin, no es una solución DRY, pero funciona para los pocos casos en los que lo necesitamos.</p>
<p>Otra de las soluciones de las que nos hemos ayudado, como muchos seguro que imaginaréis <img src='http://www.danilat.com/weblog/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> , es implementar una función $(), que aunque no nos dé las bondades de las <a href="http://www.prototypejs.org/learn/extensions">extensiones DOM de prototype</a>, nos ha ayudado a tener que cambiar mucho menos código:</p>
<p><code>function $(id){ return YAHOO.util.Dom.get(id)}</code></p>
]]></content:encoded>
			<wfw:commentRss>http://www.danilat.com/weblog/2009/09/08/cambiando-de-prototype-a-yui-con-grails/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		<feedburner:origLink>http://www.danilat.com/weblog/2009/09/08/cambiando-de-prototype-a-yui-con-grails/</feedburner:origLink></item>
		<item>
		<title>Script en groovy para descargar ficheros de GoEar</title>
		<link>http://feedproxy.google.com/~r/danilat/~3/jwyhH5xpa9Q/</link>
		<comments>http://www.danilat.com/weblog/2009/08/07/script-en-groovy-para-descargar-ficheros-de-goear/#comments</comments>
		<pubDate>Fri, 07 Aug 2009 01:57:40 +0000</pubDate>
		<dc:creator>dani</dc:creator>
				<category><![CDATA[Groovy]]></category>

		<guid isPermaLink="false">http://www.danilat.com/weblog/?p=501</guid>
		<description><![CDATA[Una de las cosas de Groovy que pueden resultarnos útiles en algunos momentos, es la posibilidad de escribir pequeños scripts para automatizar alguna tarea o para escribir pequeñas utilidades. Es algo muy habitual para lenguajes como Perl o Ruby, y que tienen la ventaja de que comienza antes su ejecución por no tener que arrancar [...]]]></description>
			<content:encoded><![CDATA[<p>Una de las cosas de Groovy que pueden resultarnos útiles en algunos momentos, es la posibilidad de escribir pequeños scripts para automatizar alguna tarea o para escribir pequeñas utilidades. Es algo muy habitual para lenguajes como Perl o Ruby, y que tienen la ventaja de que comienza antes su ejecución por no tener que arrancar la JVM, cosa que sí necesita Groovy(que esto sea más o menos crítico, que lo decida cada uno <img src='http://www.danilat.com/weblog/wp-includes/images/smilies/icon_razz.gif' alt=':P' class='wp-smiley' /> ).</p>
<p>A modo de ejemplo, y basándome en el post <a href="http://es.debugmodeon.com/articulo/descargando-la-musica-de-goear-com">Descargando la música de GoEar.com en debugmodeon</a>, se me ocurrió escribir un pequeño script que hiciera prácticamente lo mismo(<strong>Extractor.groovy</strong>):</p>
<p><strong>Update</strong>: Parece que el código se verá mejor <a href="http://gist.github.com/163668">en gist</a></p>
<p><code>import groovy.util.XmlParser<br />
args.each{ id -><br />
	def songs = new XmlParser().parse("http://www.goear.com/files/xmlfiles/${id[0]}/secm${id}.xml")<br />
	def song = songs.song[0]<br />
	def mp3 = song.'@path'<br />
	def name = (song.'@artist'+"_"+song.'@title').replaceAll(" ","_")<br />
	def file = new File("/path-a-un-directorio/${id}-${name}.mp3").newOutputStream()<br />
	file << new URL(mp3).openStream()<br />
	file.close()<br />
	println "${name} has been downloaded"<br />
}</code> </p>
<p>Para utilizarlo, simplemente le pasamos los identificadores de las canciones que queramos descargar, por ejemplo: </p>
<p><code>groovy Extractor.groovy cd332f6 e96ff20 acee672</code></p>
]]></content:encoded>
			<wfw:commentRss>http://www.danilat.com/weblog/2009/08/07/script-en-groovy-para-descargar-ficheros-de-goear/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.danilat.com/weblog/2009/08/07/script-en-groovy-para-descargar-ficheros-de-goear/</feedburner:origLink></item>
	</channel>
</rss>
