<?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/"
	xmlns:georss="http://www.georss.org/georss" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:media="http://search.yahoo.com/mrss/"
	>

<channel>
	<title>ıllıllı ·3KBZ ıllıllı</title>
	<atom:link href="https://3kbzotas.wordpress.com/feed/" rel="self" type="application/rss+xml" />
	<link>https://3kbzotas.wordpress.com</link>
	<description>Grails, j2ee, pensamientos, comentarios y cosas &#34;interesantes&#34;</description>
	<lastBuildDate>Wed, 18 Jan 2012 19:28:56 +0000</lastBuildDate>
	<language>es</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.com/</generator>
<cloud domain='3kbzotas.wordpress.com' port='80' path='/?rsscloud=notify' registerProcedure='' protocol='http-post' />
<image>
		<url>https://s-ssl.wordpress.com/i/buttonw-com.png</url>
		<title>ıllıllı ·3KBZ ıllıllı</title>
		<link>https://3kbzotas.wordpress.com</link>
	</image>
	<atom:link rel="search" type="application/opensearchdescription+xml" href="https://3kbzotas.wordpress.com/osd.xml" title="ıllıllı ·3KBZ ıllıllı" />
	<atom:link rel='hub' href='https://3kbzotas.wordpress.com/?pushpress=hub'/>
		<item>
		<title>Scroll dinámico de contenido, AJAX powered, con jQuery y a4j:jsFunction (Java)</title>
		<link>https://3kbzotas.wordpress.com/2012/01/18/scroll-dinamico-de-contenido-ajax-powered-con-jquery-y-a4j-java/</link>
		<comments>https://3kbzotas.wordpress.com/2012/01/18/scroll-dinamico-de-contenido-ajax-powered-con-jquery-y-a4j-java/#comments</comments>
		<pubDate>Wed, 18 Jan 2012 19:25:54 +0000</pubDate>
		<dc:creator>Cristian</dc:creator>
				<category><![CDATA[J2EE]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[jQuery]]></category>
		<category><![CDATA[A4J]]></category>
		<category><![CDATA[Ajax]]></category>
		<category><![CDATA[Contenido Dinámico]]></category>
		<category><![CDATA[JSF]]></category>
		<category><![CDATA[Scroll]]></category>

		<guid isPermaLink="false">http://3kbzotas.wordpress.com/?p=400</guid>
		<description><![CDATA[Así como suena&#8230; BAM! Tuve que implementar un scroll dinámico de contenido, al mejor estilo Facebook o Twitter, y luego de revisar bastante algún componente que me ahorrara unas buenas horas de trabajo forzado, me di cuenta que no existía lo que yo necesitaba, al menos no partiendo de lo que ya tenía implementado. Vi en muchos [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=3kbzotas.wordpress.com&amp;blog=13394951&amp;post=400&amp;subd=3kbzotas&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p style="text-align:justify;"><a href="http://3kbzotas.files.wordpress.com/2012/01/bam.gif"><img class="alignright  wp-image-403" title="bam" src="http://3kbzotas.files.wordpress.com/2012/01/bam.gif?w=210&#038;h=174" alt="" width="210" height="174" /></a>Así como suena&#8230; BAM!</p>
<p style="text-align:justify;">Tuve que implementar un scroll dinámico de contenido, al mejor estilo Facebook o Twitter, y luego de revisar bastante algún componente que me ahorrara unas buenas horas de trabajo forzado, me di cuenta que no existía lo que yo necesitaba, al menos no partiendo de lo que ya tenía implementado.</p>
<p style="text-align:justify;">Vi en muchos lugares cosas del tipo: el código JS invoca una página y lo que esta te devuelve lo vas mostrando a continuación de lo que ya está, etc etc&#8230; pero mi caso es un poco más complejo. Tenía una app J2EE con JSF2, RichFaces, jQuery y todo funcionando con AJAX &#8230; y de ahí tenía que salir la solución, preferentemente. Y de ser aún más posible, tendría que seguir siendo AJAX. Nada de invocaciones truchas a páginas. <strong>AJAX señores, AJAX.</strong></p>
<p style="text-align:justify;">Manos a la obra, lo primero fue investigar como darme cuenta cuando el usuario llegó al tope del scroll. Afortunadamente, <strong>jQuery</strong> ya trae algo de eso y permite que al momento de llegar a lo más bajo de la página, se ejecute determinado javascript. Perfecto! &#8230; pero&#8230; no quiero hacer una llamada AJAX artesanal, porque luego es complicado renderear el contenido que quiero&#8230; Y ahí apareció mi amiga<strong> a4j:jsFunction</strong>, permitiendo definir una función javascript que al ser invocada llamara un método en el bean, y luego de la llamada renderear determinada área de mi página&#8230; <strong>BAM !</strong></p>
<p style="text-align:justify;">Mi caso se complicó más ya tenía un combo que, dependiendo su valor, tenía que permitir cargar contenido dinámico o sinó mostrar un paginador. Esto quiere decir que mi función a4j no se tenía que invocar siempre, sino que se tenía que invocar cuando el scroll dinámico estaba habilitado&#8230; y se habilitada o deshabilitaba vía AJAX. Muy lindo si&#8230; De momento no viene al caso, pero esa parte la solucioné attachando o desattachando la función  que se ejecutaba en el scroll vía jQuery, dependiendo qué se seleccionaba en el combo&#8230; no lo voy a poner acá, si estás en el mismo caso, preguntá que te explico más.</p>
<p style="text-align:justify;">En fin, sin más preámbulos, este es el código.</p>
<p>Código jQuery que debería ir en el onload() o el ready() del Body.</p>
<blockquote>
<div>$(window).scroll(function(){</div>
<div>      if ($(window).scrollTop() == $(document).height() &#8211; $(window).height()){</div>
<div>            miFuncionA4J();</div>
<div>      }</div>
<div>});</div>
</blockquote>
<p>Y luego, en el código JSF mismo, algo como esto:</p>
<blockquote><p>&lt;a4j:jsFunction name=&#8221;miFuncionA4J&#8221; action=&#8221;#{MiBean.unMetodo}&#8221; render=&#8221;seccionARenderear&#8221; /&gt;</p></blockquote>
<p style="text-align:justify;">Esto implica que cada vez que el usuario llegue al final de la página, se ejecutará miFuncionA4J(), que a su vez invocará el MiBean (presumíblemente para cargar algun otro contenido en una propiedad) y luego de re-rendeará determinada sección de la página (presumíblemente aquella que lee el contenido modificado en la propiedad mencionada).</p>
<p><em><strong>Bombastik!</strong></em></p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/3kbzotas.wordpress.com/400/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/3kbzotas.wordpress.com/400/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/3kbzotas.wordpress.com/400/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/3kbzotas.wordpress.com/400/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/3kbzotas.wordpress.com/400/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/3kbzotas.wordpress.com/400/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/3kbzotas.wordpress.com/400/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/3kbzotas.wordpress.com/400/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/3kbzotas.wordpress.com/400/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/3kbzotas.wordpress.com/400/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/3kbzotas.wordpress.com/400/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/3kbzotas.wordpress.com/400/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/3kbzotas.wordpress.com/400/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/3kbzotas.wordpress.com/400/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=3kbzotas.wordpress.com&amp;blog=13394951&amp;post=400&amp;subd=3kbzotas&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>https://3kbzotas.wordpress.com/2012/01/18/scroll-dinamico-de-contenido-ajax-powered-con-jquery-y-a4j-java/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="https://secure.gravatar.com/avatar/ba5a12559132a0572fbb3ba6922167a0?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Cristian</media:title>
		</media:content>

		<media:content url="http://3kbzotas.files.wordpress.com/2012/01/bam.gif?w=300" medium="image">
			<media:title type="html">bam</media:title>
		</media:content>
	</item>
		<item>
		<title>Mi Bean &#8220;Scope Viewed&#8221; se re-instancia cuando hago una llamada AJAX (o cualquier otra cosa).</title>
		<link>https://3kbzotas.wordpress.com/2012/01/09/mi-bean-scope-viewed-se-re-instancia-cuando-hago-una-llamada-ajax-o-cualquier-otra-cosa/</link>
		<comments>https://3kbzotas.wordpress.com/2012/01/09/mi-bean-scope-viewed-se-re-instancia-cuando-hago-una-llamada-ajax-o-cualquier-otra-cosa/#comments</comments>
		<pubDate>Mon, 09 Jan 2012 14:00:15 +0000</pubDate>
		<dc:creator>Cristian</dc:creator>
				<category><![CDATA[J2EE]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[A4J]]></category>
		<category><![CDATA[Ajax]]></category>
		<category><![CDATA[bean]]></category>
		<category><![CDATA[scopes]]></category>
		<category><![CDATA[Scopeviewed]]></category>

		<guid isPermaLink="false">http://3kbzotas.wordpress.com/?p=392</guid>
		<description><![CDATA[En estos días tuve un problemita que me tuvo a maltraer, y la solución fue TAN chota que no puedo dejar de compartirlo para evitarle dolores de cabeza a alguien. Estuve jugando con uno de los nuevos scopes de JSF2, el View Scope. Está muy lindo, sobre todo para lo que es AJAX. El bean [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=3kbzotas.wordpress.com&amp;blog=13394951&amp;post=392&amp;subd=3kbzotas&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p><img class="alignright  wp-image-393" title="sleeping-work-cubicle-stressed-office" src="http://3kbzotas.files.wordpress.com/2012/01/sleeping-work-cubicle-stressed-office.jpg?w=240&#038;h=180" alt="" width="240" height="180" />En estos días tuve un problemita que me tuvo a maltraer, y la solución fue TAN chota que no puedo dejar de compartirlo para evitarle dolores de cabeza a alguien.</p>
<p>Estuve jugando con uno de los nuevos scopes de JSF2, el <a title="View Scope" href="http://blogs.oracle.com/rlubke/entry/jsf_2_0_new_feature6" target="_blank">View Scope</a>. Está muy lindo, sobre todo para lo que es AJAX. El bean se mantiene vivo mientras no se cambie de vista (página). Pero hete aquí que mi bean al momento de realizar la primera llamada ajax se re instanciaba. Muy raro. Y no era la idea. Al re instanciarse perdía todo lo que podía haber hecho antes,  y lo más raro es que luego de re instanciarse (que palabra complicada) todo seguía funcionando bien.</p>
<p>Luego de leer mil sitios diferentes donde a muchas personas les pasaba lo mismo, pero a todas se les solucionaba de formas diferentes, me iluminé y probé algo que resolvió mi problema en particular: Como lo que estaba haciendo era una migración de código para dotarlo de ajax, tuve que poner un &lt;h:form&gt; que abarque toda mi página. Lo que no me di cuenta era que había métodos que generaban código para embeber en mi página que también le metían tags &lt;form&gt;. Por lo tanto tenía varios forms embebidos dentro de mi form (el que puse yo).</p>
<p>Para resumir, quité los forms embebidos y listo! Todo se arregló mágicamente y el bean funcionó como se suponía. Horas y horas de dolor de cabeza buscando una solución compleja a un problema que resultó ser de lo más básico.</p>
<p>Espero haber ahorrado un par de horas a quien visite este post <img src='https://s-ssl.wordpress.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/3kbzotas.wordpress.com/392/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/3kbzotas.wordpress.com/392/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/3kbzotas.wordpress.com/392/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/3kbzotas.wordpress.com/392/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/3kbzotas.wordpress.com/392/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/3kbzotas.wordpress.com/392/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/3kbzotas.wordpress.com/392/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/3kbzotas.wordpress.com/392/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/3kbzotas.wordpress.com/392/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/3kbzotas.wordpress.com/392/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/3kbzotas.wordpress.com/392/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/3kbzotas.wordpress.com/392/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/3kbzotas.wordpress.com/392/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/3kbzotas.wordpress.com/392/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=3kbzotas.wordpress.com&amp;blog=13394951&amp;post=392&amp;subd=3kbzotas&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>https://3kbzotas.wordpress.com/2012/01/09/mi-bean-scope-viewed-se-re-instancia-cuando-hago-una-llamada-ajax-o-cualquier-otra-cosa/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="https://secure.gravatar.com/avatar/ba5a12559132a0572fbb3ba6922167a0?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Cristian</media:title>
		</media:content>

		<media:content url="http://3kbzotas.files.wordpress.com/2012/01/sleeping-work-cubicle-stressed-office.jpg?w=300" medium="image">
			<media:title type="html">sleeping-work-cubicle-stressed-office</media:title>
		</media:content>
	</item>
		<item>
		<title>Solución para Grails en jBoss: Error creating bean with name &#8216;messageSource&#8217;: Initialization of bean failed</title>
		<link>https://3kbzotas.wordpress.com/2011/12/22/solucion_grails_jboss/</link>
		<comments>https://3kbzotas.wordpress.com/2011/12/22/solucion_grails_jboss/#comments</comments>
		<pubDate>Thu, 22 Dec 2011 15:09:21 +0000</pubDate>
		<dc:creator>Cristian</dc:creator>
				<category><![CDATA[Grails]]></category>
		<category><![CDATA[Tips]]></category>
		<category><![CDATA[jBoss]]></category>
		<category><![CDATA[messageSource]]></category>
		<category><![CDATA[WAR]]></category>

		<guid isPermaLink="false">http://3kbzotas.wordpress.com/?p=387</guid>
		<description><![CDATA[Hace un tiempo tuvimos un problemilla cuando tratamos de mandar un WAR compilado con Grails a un servidor de aplicaciones jBoss. Leyendo bastante di con una solución que, si bien decía que era para un bug cuando corría sobre jBoss 5.x (cuando la mía era jBoss 4.x), funcionó perfectamente y permitió desplegar sin problemas el [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=3kbzotas.wordpress.com&amp;blog=13394951&amp;post=387&amp;subd=3kbzotas&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p><img class="alignright" title="grails" src="http://swampmeadow.org/wp-content/uploads/2009/09/Holy_Grail_color_XS.jpg" alt="" width="188" height="225" />Hace un tiempo tuvimos un problemilla cuando tratamos de mandar un WAR compilado con Grails a un servidor de aplicaciones jBoss.</p>
<p>Leyendo bastante di con una solución que, si bien decía que era para un bug cuando corría sobre jBoss 5.x (cuando la mía era jBoss 4.x), funcionó perfectamente y permitió desplegar sin problemas el WAR armado con SpringSource STS en un server jBoss ordinario.</p>
<p>Dentro del proyecto Grails, carpeta grails-app/conf, van a encontrar un archivo BuildConfig.groovy</p>
<p>En este archivo, dentro del nodo (por asi decirlo) &#8220;grails.project.dependency.resolution{}&#8221; hay que agregar lo siguiente:</p>
<blockquote><p>runtime(&#8216;org.hibernate:hibernate-validator:3.1.0.GA&#8217;) {<br />
excludes &#8216;sl4j-api&#8217;, &#8216;hibernate.core&#8217;, &#8216;hibernate-commons-annotations&#8217;, &#8216;hibernate-entitymanager&#8217;<br />
}</p></blockquote>
<p>Vale destacar para orientarnos mas que este nodo &#8220;resolution&#8221; suele tener adentro otros nodos como &#8220;inherits&#8221;, &#8220;repositories&#8221; y &#8220;dependencies&#8221; &#8230; con agregar este nuevo &#8220;runtime&#8221; al mismo nivel que los anteriores mencionados, <em>estamos del otro lado!</em></p>
<p>Espero haya servido el tip !</p>
<p>El origen de la solución: (<a href="http://jira.codehaus.org/browse/GRAILS-5606?focusedCommentId=212135&amp;page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#action_212135" target="_blank">http://jira.codehaus.org/browse/GRAILS-5606?focusedCommentId=212135&amp;page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#action_212135</a>)</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/3kbzotas.wordpress.com/387/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/3kbzotas.wordpress.com/387/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/3kbzotas.wordpress.com/387/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/3kbzotas.wordpress.com/387/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/3kbzotas.wordpress.com/387/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/3kbzotas.wordpress.com/387/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/3kbzotas.wordpress.com/387/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/3kbzotas.wordpress.com/387/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/3kbzotas.wordpress.com/387/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/3kbzotas.wordpress.com/387/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/3kbzotas.wordpress.com/387/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/3kbzotas.wordpress.com/387/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/3kbzotas.wordpress.com/387/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/3kbzotas.wordpress.com/387/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=3kbzotas.wordpress.com&amp;blog=13394951&amp;post=387&amp;subd=3kbzotas&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>https://3kbzotas.wordpress.com/2011/12/22/solucion_grails_jboss/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="https://secure.gravatar.com/avatar/ba5a12559132a0572fbb3ba6922167a0?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Cristian</media:title>
		</media:content>

		<media:content url="http://swampmeadow.org/wp-content/uploads/2009/09/Holy_Grail_color_XS.jpg" medium="image">
			<media:title type="html">grails</media:title>
		</media:content>
	</item>
		<item>
		<title>Consultas directas a la Base de Datos en Grails, pero tomando conexiones desde el pool de conexiones (optimizado)</title>
		<link>https://3kbzotas.wordpress.com/2011/11/15/consultas-directas-a-la-base-de-datos-en-grails-pero-tomando-conexiones-del-pool-de-conexiones/</link>
		<comments>https://3kbzotas.wordpress.com/2011/11/15/consultas-directas-a-la-base-de-datos-en-grails-pero-tomando-conexiones-del-pool-de-conexiones/#comments</comments>
		<pubDate>Tue, 15 Nov 2011 16:20:47 +0000</pubDate>
		<dc:creator>Cristian</dc:creator>
				<category><![CDATA[Grails]]></category>
		<category><![CDATA[Hibernate]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[Query]]></category>
		<category><![CDATA[Servlet]]></category>
		<category><![CDATA[SQL]]></category>

		<guid isPermaLink="false">http://3kbzotas.wordpress.com/?p=371</guid>
		<description><![CDATA[Va uno de esos tips que más adelante pueden salvar vidas&#8230;  Hace poco empezamos a tener algunos problemas con las aplicaciones grails que se estaban desplegando en determinado servidor. Para arrancar los tiempos de despliegue pasaron de 1 a 4 minutos, y además de eso cada vez que se invocaban ciertas acciones, grails demoraba unos [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=3kbzotas.wordpress.com&amp;blog=13394951&amp;post=371&amp;subd=3kbzotas&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p style="text-align:justify;">Va uno de esos tips que más adelante pueden salvar vidas&#8230; <img class="alignright" title="Salvavidas" src="http://www.thefancydresswebsite.co.uk/images/products/large/baywatch_lifeguard_costume.jpg" alt="" width="188" height="268" /></p>
<p style="text-align:justify;">Hace poco empezamos a tener algunos problemas con las aplicaciones grails que se estaban desplegando en determinado servidor. Para arrancar los tiempos de despliegue pasaron de 1 a 4 minutos, y además de eso cada vez que se invocaban ciertas acciones, grails demoraba unos 30 segundos en responder&#8230; una vida !!</p>
<p style="text-align:justify;">Investigando, llegué a que cuando demoraba esos 30 segundos era justo en los métodos donde se hacían consultas directas a la base, creando nuevas conexiones y demás. Al parecer, grails estaba teniendo serios problemas para crear nuevas conexiones a la base, y si bien ya había leído por otro lado que la forma correcta de consultar la base era haciendo un<strong> <em>Sql.newInstance(db, user, pass,driver); </em></strong>y luego mandando la query, parece que de esta forma se crean conexiones por fuera del pool cada vez que se invoca&#8230; y eso es costoso.</p>
<p style="text-align:justify;">Luego de probar y leer bastante, llegué a la solución más prolija: tomar la conexión del pool de conexiones y ejecutar la consulta. De esta manera, utilizo conexiones que ya están listas que no tienen que crearse ni inicializarse, y de paso hago las cosas bien. Cabe destacar que el código que aquí voy a exponer es Java puro y duro. En groovy sería lo mismo, pero en mi caso la consulta a la BD la realizaba desde un servlet.</p>
<p style="text-align:justify;"><strong>A por ellos&#8230;</strong></p>
<blockquote><p> GrailsApplication ga = ApplicationHolder.getApplication();</p>
<p>Sql sql = new Sql(ga.getMainContext().getBean(&#8220;dataSource&#8221;, DataSource.class));</p>
<p>List&lt;groovy.sql.GroovyRowResult&gt; lista = sql.rows(&#8220;select XXX from YYY where ZZZ = &#8216;KKK&#8217; &#8221; );</p>
<p>sql.close();</p></blockquote>
<p style="text-align:justify;">Como resultado, el proceso de tomar la conexión y realizar la consulta demora menos de UN segundo. <strong>BAM !</strong></p>
<p style="text-align:justify;">Si bien no llegué todavía a solucionar el tema de porqué ahora demora mucho desplegar los war&#8217;s de grails (me suena a que está todo intimamente relacionado, y relacionado además con un cambio de memoria que hicimos en la base) si se pudo solucionar este tema que es vital, sobre todo porque impactaba cada vez que se invocaba la acción.</p>
<p style="text-align:justify;">Espero haber podido ayudar a alguien <img src='https://s-ssl.wordpress.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/3kbzotas.wordpress.com/371/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/3kbzotas.wordpress.com/371/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/3kbzotas.wordpress.com/371/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/3kbzotas.wordpress.com/371/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/3kbzotas.wordpress.com/371/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/3kbzotas.wordpress.com/371/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/3kbzotas.wordpress.com/371/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/3kbzotas.wordpress.com/371/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/3kbzotas.wordpress.com/371/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/3kbzotas.wordpress.com/371/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/3kbzotas.wordpress.com/371/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/3kbzotas.wordpress.com/371/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/3kbzotas.wordpress.com/371/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/3kbzotas.wordpress.com/371/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=3kbzotas.wordpress.com&amp;blog=13394951&amp;post=371&amp;subd=3kbzotas&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>https://3kbzotas.wordpress.com/2011/11/15/consultas-directas-a-la-base-de-datos-en-grails-pero-tomando-conexiones-del-pool-de-conexiones/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="https://secure.gravatar.com/avatar/ba5a12559132a0572fbb3ba6922167a0?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Cristian</media:title>
		</media:content>

		<media:content url="http://www.thefancydresswebsite.co.uk/images/products/large/baywatch_lifeguard_costume.jpg" medium="image">
			<media:title type="html">Salvavidas</media:title>
		</media:content>
	</item>
		<item>
		<title>OCR Online y Gratuito</title>
		<link>https://3kbzotas.wordpress.com/2011/10/17/ocr-online-y-gratuito/</link>
		<comments>https://3kbzotas.wordpress.com/2011/10/17/ocr-online-y-gratuito/#comments</comments>
		<pubDate>Mon, 17 Oct 2011 17:14:17 +0000</pubDate>
		<dc:creator>Cristian</dc:creator>
				<category><![CDATA[Cualquiercosa]]></category>
		<category><![CDATA[Inutilidades]]></category>
		<category><![CDATA[OCR]]></category>

		<guid isPermaLink="false">http://3kbzotas.wordpress.com/?p=359</guid>
		<description><![CDATA[Gran herramienta gran! Un OCR gratuito y online para tirarle imágenes o pdfs y que te devuelva el texto de los mismos. Lo probé y funciona bastante bien, hay que tirarle texto legible y estructurado para que el output sea coherente, pero salvo eso, me salvó de un lindo trabajo de mono apuro. http://www.free-ocr.com/ Enjoy [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=3kbzotas.wordpress.com&amp;blog=13394951&amp;post=359&amp;subd=3kbzotas&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Gran herramienta gran!<a href="http://3kbzotas.files.wordpress.com/2011/10/bibliotecaria3.jpg"><img class="alignright size-full wp-image-383" title="bibliotecaria3" src="http://3kbzotas.files.wordpress.com/2011/10/bibliotecaria3.jpg?w=604" alt=""   /></a></p>
<p>Un OCR gratuito y online para tirarle imágenes o pdfs y que te devuelva el texto de los mismos. Lo probé y funciona bastante bien, hay que tirarle texto legible y estructurado para que el output sea coherente, pero salvo eso, me salvó de un lindo <del>trabajo de mono</del> apuro.</p>
<p><a title="Free OCR" href="http://www.free-ocr.com/" target="_blank">http://www.free-ocr.com/</a></p>
<p>Enjoy it!</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/3kbzotas.wordpress.com/359/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/3kbzotas.wordpress.com/359/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/3kbzotas.wordpress.com/359/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/3kbzotas.wordpress.com/359/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/3kbzotas.wordpress.com/359/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/3kbzotas.wordpress.com/359/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/3kbzotas.wordpress.com/359/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/3kbzotas.wordpress.com/359/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/3kbzotas.wordpress.com/359/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/3kbzotas.wordpress.com/359/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/3kbzotas.wordpress.com/359/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/3kbzotas.wordpress.com/359/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/3kbzotas.wordpress.com/359/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/3kbzotas.wordpress.com/359/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=3kbzotas.wordpress.com&amp;blog=13394951&amp;post=359&amp;subd=3kbzotas&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>https://3kbzotas.wordpress.com/2011/10/17/ocr-online-y-gratuito/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="https://secure.gravatar.com/avatar/ba5a12559132a0572fbb3ba6922167a0?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Cristian</media:title>
		</media:content>

		<media:content url="http://3kbzotas.files.wordpress.com/2011/10/bibliotecaria3.jpg" medium="image">
			<media:title type="html">bibliotecaria3</media:title>
		</media:content>
	</item>
		<item>
		<title>Ordenar una rich:dataTable y su rich:Column con un Comparator</title>
		<link>https://3kbzotas.wordpress.com/2011/09/15/ordenar-una-richdatatable-y-su-richcolumn-con-un-comparator/</link>
		<comments>https://3kbzotas.wordpress.com/2011/09/15/ordenar-una-richdatatable-y-su-richcolumn-con-un-comparator/#comments</comments>
		<pubDate>Thu, 15 Sep 2011 19:37:21 +0000</pubDate>
		<dc:creator>Cristian</dc:creator>
				<category><![CDATA[J2EE]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[Comparator]]></category>
		<category><![CDATA[Rich]]></category>
		<category><![CDATA[Tablas]]></category>

		<guid isPermaLink="false">http://3kbzotas.wordpress.com/?p=360</guid>
		<description><![CDATA[Me pasó que necesité ordenar una rich:dataTable por una de sus columnas, y me costó un poco el tema de implementar el comparador, así que acá va el tip. En primer lugar, decirles que mi dataTable en el atributo &#8220;value&#8221; tiene el binding a una propiedad en el bean que es del tipo Map&#60;Integer, Algo&#62; [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=3kbzotas.wordpress.com&amp;blog=13394951&amp;post=360&amp;subd=3kbzotas&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Me pasó que necesité ordenar una rich:dataTable por una de sus columnas, y me costó un poco el tema de implementar el comparador, así que acá va el tip.</p>
<p>En primer lugar, decirles que mi dataTable en el atributo &#8220;value&#8221; tiene el binding a una propiedad en el bean que es del tipo Map&lt;Integer, Algo&gt; y yo quiero ordenar la tabla por una de las propiedades de ese algo. Por defecto rich:dataTable me ordena todo de acuerdo a la clave del Map, algo bastante inservible en mi caso.</p>
<p>Entonces, hice lo siguiente: en la columna en cuestión dentro de la jsp agregué las propiedades &#8220;comparator&#8221;, &#8220;selfSorted&#8221; y &#8220;sortOrder&#8221;.</p>
<pre>&lt;rich:column comparator="#{MiBean.comparaAlgo}" selfSorted="false" sortOrder="DESCENDING"&gt;</pre>
<p>Luego en el bean definí el comparador &#8220;comparaAlgo&#8221; con su get y set (no lo detallo aquí abajo, pero sepan que es necesario).</p>
<pre>Comparator&lt;Map.Entry&lt;Integer, Algo&gt;&gt; comparaAlgo =
new Comparator&lt;Map.Entry&lt;Integer, Algo&gt;&gt;() {
	public int compare(Map.Entry&lt;Integer, Algo&gt; e1, Map.Entry&lt;Integer, Algo&gt; e2) {
		return e1.getValue().getPropiedadDeAlgo().compareTo(e2.getValue().getPropiedadDeAlgo());
	}
};</pre>
<p>Y ta, cuando lea la jsp y vea que queremos un orden ascendente por esa columna, va a utilizar el comparador para armar la lista y todo va a salir según lo planeado!</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/3kbzotas.wordpress.com/360/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/3kbzotas.wordpress.com/360/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/3kbzotas.wordpress.com/360/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/3kbzotas.wordpress.com/360/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/3kbzotas.wordpress.com/360/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/3kbzotas.wordpress.com/360/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/3kbzotas.wordpress.com/360/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/3kbzotas.wordpress.com/360/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/3kbzotas.wordpress.com/360/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/3kbzotas.wordpress.com/360/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/3kbzotas.wordpress.com/360/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/3kbzotas.wordpress.com/360/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/3kbzotas.wordpress.com/360/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/3kbzotas.wordpress.com/360/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=3kbzotas.wordpress.com&amp;blog=13394951&amp;post=360&amp;subd=3kbzotas&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>https://3kbzotas.wordpress.com/2011/09/15/ordenar-una-richdatatable-y-su-richcolumn-con-un-comparator/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="https://secure.gravatar.com/avatar/ba5a12559132a0572fbb3ba6922167a0?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Cristian</media:title>
		</media:content>
	</item>
		<item>
		<title>Creando XML en Java de la forma más fácil, rápida e intuitiva.</title>
		<link>https://3kbzotas.wordpress.com/2011/08/01/creando-xml-en-java-de-la-forma-mas-facil-rapida-e-intuitiva/</link>
		<comments>https://3kbzotas.wordpress.com/2011/08/01/creando-xml-en-java-de-la-forma-mas-facil-rapida-e-intuitiva/#comments</comments>
		<pubDate>Mon, 01 Aug 2011 15:52:54 +0000</pubDate>
		<dc:creator>Cristian</dc:creator>
				<category><![CDATA[Java]]></category>
		<category><![CDATA[xml]]></category>

		<guid isPermaLink="false">http://3kbzotas.wordpress.com/?p=342</guid>
		<description><![CDATA[Se puede decir que si luego de este post se te complica crear un XML en Java, dedicate a otra cosa (si, así de fácil viene la mano). Lo &#8220;bueno&#8221; de este método infalible es que no necesita ningun complemento extra. Para arrancar, importamos un par de librerías: import org.w3c.dom.*; import javax.xml.parsers.*; import javax.xml.transform.*; import [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=3kbzotas.wordpress.com&amp;blog=13394951&amp;post=342&amp;subd=3kbzotas&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Se puede decir que si luego de este post se te complica crear un XML en Java, dedicate a otra cosa (si, así de fácil viene la mano).</p>
<p>Lo &#8220;bueno&#8221; de este método infalible es que no necesita ningun complemento extra.</p>
<p>Para arrancar, importamos un par de librerías:</p>
<pre>import org.w3c.dom.*;
import javax.xml.parsers.*;
import javax.xml.transform.*;
import javax.xml.transform.dom.*;
import javax.xml.transform.stream.*;</pre>
<p>Luego a los bifes. Creamos primero los constructores, factory&#8217;s y demás&#8230;</p>
<pre>DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
DocumentBuilder builder = factory.newDocumentBuilder();
DOMImplementation implementation = builder.getDOMImplementation();</pre>
<p>Ahora creamos el objeto Document, lo que vendría a ser nuestra raíz del arbol XML  y también le seteamos la versión de XML.</p>
<pre>Document document = implementation.createDocument(null, "documento", null);
document.setXmlVersion("1.0");</pre>
<p>Obtenemos la raíz</p>
<pre>Element raiz = document.getDocumentElement();</pre>
<p>Y luego creamos un nodo para agregarle a la raíz, el cual va a contener algún texto.</p>
<pre>Element nodoNombreCampo = document.createElement("ElementoHijoDeLaRaíz"); //creamos un nuevo elemento
Text nodoValorCampo = document.createTextNode("contenido del elemento hijo"); //Ingresamos la info
nodoNombreCampo.appendChild(nodoValorCampo);
raiz.appendChild(nodoNombreCampo); //pegamos el elemento a la raiz "Documento"</pre>
<p>De esta forma nuestro XML quedaría con una estructura similar a la siguiente:</p>
<pre>&lt;?xml version="1.0" encoding="UTF-8"?&gt;
&lt;documento&gt;
&lt;<span class="Apple-style-span" style="font-family:Consolas, Monaco, monospace;font-size:12px;line-height:18px;white-space:pre;">ElementoHijoDeLaRaíz</span>&gt;<span class="Apple-style-span" style="font-family:Consolas, Monaco, monospace;font-size:12px;line-height:18px;white-space:pre;">contenido del elemento hijo</span>&lt;/ElementoHijoDeLaRaíz&gt;
&lt;/documento&gt; </pre>
<p>Para terminar podemos guardar ese XML creado en un archivo, array de byte o lo que queramos&#8230;</p>
<pre>Source source = new DOMSource(document);
Result result = new StreamResult(new java.io.File("resultado.xml")); //nombre del archivo
Transformer transformer = TransformerFactory.newInstance().newTransformer();
transformer.transform(source, result);</pre>
<p>Listo el pollo !</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/3kbzotas.wordpress.com/342/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/3kbzotas.wordpress.com/342/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/3kbzotas.wordpress.com/342/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/3kbzotas.wordpress.com/342/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/3kbzotas.wordpress.com/342/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/3kbzotas.wordpress.com/342/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/3kbzotas.wordpress.com/342/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/3kbzotas.wordpress.com/342/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/3kbzotas.wordpress.com/342/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/3kbzotas.wordpress.com/342/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/3kbzotas.wordpress.com/342/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/3kbzotas.wordpress.com/342/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/3kbzotas.wordpress.com/342/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/3kbzotas.wordpress.com/342/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=3kbzotas.wordpress.com&amp;blog=13394951&amp;post=342&amp;subd=3kbzotas&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>https://3kbzotas.wordpress.com/2011/08/01/creando-xml-en-java-de-la-forma-mas-facil-rapida-e-intuitiva/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="https://secure.gravatar.com/avatar/ba5a12559132a0572fbb3ba6922167a0?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Cristian</media:title>
		</media:content>
	</item>
		<item>
		<title>Manejo de fechas en Java (Sumar, Restar, etc.)</title>
		<link>https://3kbzotas.wordpress.com/2011/04/25/manejo-de-fechas-en-java-sumar-restar-etc/</link>
		<comments>https://3kbzotas.wordpress.com/2011/04/25/manejo-de-fechas-en-java-sumar-restar-etc/#comments</comments>
		<pubDate>Mon, 25 Apr 2011 17:57:20 +0000</pubDate>
		<dc:creator>Cristian</dc:creator>
				<category><![CDATA[J2EE]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[Fecha]]></category>
		<category><![CDATA[Fechas]]></category>

		<guid isPermaLink="false">http://3kbzotas.wordpress.com/?p=336</guid>
		<description><![CDATA[Me cansé de siempre andar revoloteando por la Interné cuando necesito realizar operaciones con fechas, así que acá va el método más simple que encontré, y básicamente lo saqué de esta web. Básicamente consiste en utilizar un objeto java.util.Calendar, que aparentemente andabien para estas cosas! Por ejemplo, vamos a sumar 47 meses (47 porque se [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=3kbzotas.wordpress.com&amp;blog=13394951&amp;post=336&amp;subd=3kbzotas&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Me cansé de siempre andar revoloteando por la <em>Interné</em> cuando necesito realizar operaciones con fechas, así que acá va el método más simple que encontré, y básicamente lo saqué de <strong><a title="Delirios de aprendizaje" href="http://cuartoderrota.blogspot.com/2007/10/sumar-valor-una-fecha.html">esta</a></strong> web.</p>
<p>Básicamente consiste en utilizar un objeto java.util.Calendar, que aparentemente andabien para estas cosas!</p>
<p>Por ejemplo, vamos a sumar 47 meses (47 porque se me antoja) a la fecha de hoy.</p>
<blockquote><p>String hoy = new SimpleDateFormat(&#8220;dd/MM/yyyy&#8221;).format(new Date());<br />
String [] dataTemp = hoy.split(&#8220;/&#8221;);<br />
Calendar c = Calendar.getInstance();<br />
c.set(Integer.parseInt(dataTemp[2]), Integer.parseInt(dataTemp[1])- 1, Integer.parseInt(dataTemp[0]));<br />
c.add(Calendar.MONTH, 47);</p></blockquote>
<p>Aclaraciones: en primer término, al setearle el mes al Calendar le resto uno porque va de 0 a 11 &#8230; si, yo también pensé WTF ??  &#8230; Y en segundo lugar, luego de todo esto se puede hacer un c.getTime() y eso devuelve un DATE que tranquilamente puede ser parseado por un DateFormat nuevamente.</p>
<p>Además de todo, podría obviarse la parte del split, ya que el getInstance del calendar obtiene la fecha actual, pero el ejemplo está bueno por si en algun momento hay que sumar &#8220;cosas&#8221; a fechas que no son la de hoy <img src='https://s-ssl.wordpress.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>Enjoy!</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/3kbzotas.wordpress.com/336/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/3kbzotas.wordpress.com/336/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/3kbzotas.wordpress.com/336/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/3kbzotas.wordpress.com/336/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/3kbzotas.wordpress.com/336/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/3kbzotas.wordpress.com/336/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/3kbzotas.wordpress.com/336/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/3kbzotas.wordpress.com/336/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/3kbzotas.wordpress.com/336/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/3kbzotas.wordpress.com/336/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/3kbzotas.wordpress.com/336/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/3kbzotas.wordpress.com/336/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/3kbzotas.wordpress.com/336/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/3kbzotas.wordpress.com/336/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=3kbzotas.wordpress.com&amp;blog=13394951&amp;post=336&amp;subd=3kbzotas&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>https://3kbzotas.wordpress.com/2011/04/25/manejo-de-fechas-en-java-sumar-restar-etc/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
	
		<media:content url="https://secure.gravatar.com/avatar/ba5a12559132a0572fbb3ba6922167a0?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Cristian</media:title>
		</media:content>
	</item>
		<item>
		<title>Creando Javascript en tiempo de ejecución</title>
		<link>https://3kbzotas.wordpress.com/2011/03/18/creando-javascript-en-tiempo-de-ejecucion/</link>
		<comments>https://3kbzotas.wordpress.com/2011/03/18/creando-javascript-en-tiempo-de-ejecucion/#comments</comments>
		<pubDate>Fri, 18 Mar 2011 20:49:23 +0000</pubDate>
		<dc:creator>Cristian</dc:creator>
				<category><![CDATA[Desarrollo Web]]></category>
		<category><![CDATA[J2EE]]></category>
		<category><![CDATA[dinámico]]></category>
		<category><![CDATA[Javascript]]></category>

		<guid isPermaLink="false">http://3kbzotas.wordpress.com/?p=331</guid>
		<description><![CDATA[Misión: que cuando determinada página cargue, la función de validación invocada en el evento &#8220;onSubmit&#8221; dependa del documento que abrí, los campos pertenecientes al mismo y demás. Apuesta que lo consigue? Partamos de la base que tengo un form, que en el evento onSubmit tiene lo siguiente: return validar(); Esto implica que si la función [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=3kbzotas.wordpress.com&amp;blog=13394951&amp;post=331&amp;subd=3kbzotas&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p><strong>Misión:</strong> que cuando determinada página cargue, la función de validación invocada en el evento &#8220;onSubmit&#8221; dependa del documento que abrí, los campos pertenecientes al mismo y demás. <strong>Apuesta que lo consigue?</strong></p>
<p>Partamos de la base que tengo un form, que en el evento onSubmit tiene lo siguiente: <em>return validar();</em></p>
<p>Esto implica que si la función validar retorna <em>true</em> el form se va a submitear y sinó&#8230; no.</p>
<p>Ahora bien, cómo hacemos para que esa función validar se arme dinámicamente cada vez que abro la página? Mi primer pensamiento fue: Un Binding, obvio! &#8230; pero no, no hay un elemento del tipo Script q pueda bindearse (estoy halando pal tujes, lo se). Entonces? A huevo, si señor <img src='https://s-ssl.wordpress.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  &#8230; y a huevo implica que el binding sea de un Div y ahi dentro mandarle el script&#8230; veamos como.</p>
<p><span id="more-331"></span></p>
<p>&nbsp;</p>
<p><span style="text-decoration:underline;"><strong>En la jsp</strong></span></p>
<p>&lt;t:div binding=&#8221;#{MiBean.funcionValidar}&#8221; /&gt;</p>
<p><span style="text-decoration:underline;"><strong>En el Bean</strong></span></p>
<p>public Div getFuncionValidar(){<br />
Application app = FacesContext.getCurrentInstance().getApplication();<br />
Div function = (Div)app.createComponent(Div.COMPONENT_TYPE);</p>
<p>UIScript script = new UIScript();</p>
<p>//Aca es donde se debe crear el codigo javascript.</p>
<p>HtmlOutputText text = new HtmlOutputText();<br />
text.setValue(&#8220;function validar(){return false}&#8221;);</p>
<p>script.getChildren().add(text);<br />
function.getChildren().add(script);</p>
<p>return function;</p>
<p>}</p>
<p>Y listo. Como veran, dentro del div le metí un UIComponent del tipo Script y adentro el texto que va a contener, que tal como lo necesitamos, será javascript.</p>
<p>Obviamente que donde yo puse text.setValue hay que poner en realidad el código a ejecutar. Ahora con ese return false nunca se va a hacer el submit del form.</p>
<p>Eso es todo amigos <img src='https://s-ssl.wordpress.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/3kbzotas.wordpress.com/331/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/3kbzotas.wordpress.com/331/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/3kbzotas.wordpress.com/331/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/3kbzotas.wordpress.com/331/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/3kbzotas.wordpress.com/331/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/3kbzotas.wordpress.com/331/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/3kbzotas.wordpress.com/331/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/3kbzotas.wordpress.com/331/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/3kbzotas.wordpress.com/331/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/3kbzotas.wordpress.com/331/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/3kbzotas.wordpress.com/331/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/3kbzotas.wordpress.com/331/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/3kbzotas.wordpress.com/331/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/3kbzotas.wordpress.com/331/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=3kbzotas.wordpress.com&amp;blog=13394951&amp;post=331&amp;subd=3kbzotas&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>https://3kbzotas.wordpress.com/2011/03/18/creando-javascript-en-tiempo-de-ejecucion/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="https://secure.gravatar.com/avatar/ba5a12559132a0572fbb3ba6922167a0?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Cristian</media:title>
		</media:content>
	</item>
		<item>
		<title>Hurgando el pasado&#8230;</title>
		<link>https://3kbzotas.wordpress.com/2011/03/17/hurgando-el-pasado/</link>
		<comments>https://3kbzotas.wordpress.com/2011/03/17/hurgando-el-pasado/#comments</comments>
		<pubDate>Thu, 17 Mar 2011 19:50:10 +0000</pubDate>
		<dc:creator>Cristian</dc:creator>
				<category><![CDATA[Tips]]></category>
		<category><![CDATA[Greplin]]></category>
		<category><![CDATA[Memolane]]></category>

		<guid isPermaLink="false">http://3kbzotas.wordpress.com/?p=323</guid>
		<description><![CDATA[Siempre me pregunté porque facebook no tenía un buscador que me permitiese buscar sobre mis publicaciones. &#8220;Yo me acuerdo que hace meses puse un video copado en facebook, pero ahora no lo encuentro en ningun lado&#8230;&#8221; odio cuando pasa eso. O algo que me permitiese filtrar y ver todo lo que puse en el &#8220;Que [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=3kbzotas.wordpress.com&amp;blog=13394951&amp;post=323&amp;subd=3kbzotas&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p style="text-align:justify;">Siempre me pregunté porque facebook no tenía un buscador que me permitiese buscar sobre mis publicaciones. <em>&#8220;Yo me acuerdo que hace meses puse un video copado en facebook, pero ahora no lo encuentro en ningun lado&#8230;&#8221;</em> odio cuando pasa eso. O algo que me permitiese filtrar y ver todo lo que puse en el &#8220;Que estás pensando&#8221; desde que abri mi cuenta.</p>
<p style="text-align:justify;">En fin, desde hace un par de días la solución llegó a mi&#8230; por partida doble.</p>
<p style="text-align:justify;">Primero encontré un servicio, llamado <strong><a title="Memolane" href="http://memolane.com" target="_blank">Memolane</a></strong>. Te registrás, vinculas tus cuentas (Twitter, Face, Flickr, etc) y te arma una timeline eterna con todo lo q pusiste, compartiste, te comentaron, te etiquetaron, publicaste, etc&#8230; por ejemplo, fue muy copado volver a Agosto de 2009 y ver el proceso de mi viaje a USA desde ese punto de vista.</p>
<p style="text-align:center;"><img class="aligncenter" title="Memolane" src="http://s3.amazonaws.com/satisfaction-production/public/uploaded_images/5805030/memolane1250_full_aspect_medium.gif" alt="" width="200" height="40" /></p>
<p>Y hoy encuentro el google de las redes sociales, como lo llaman en varios sitios. Este es <strong><a title="Greplin" href="https://www.greplin.com" target="_blank">Greplin</a></strong>. Te registrás, vinculas tus cuentas (Gmail, Face, Twitter y muchas más, aunque algunas vinculaciones son premium) y <em>voilá!</em> tenés un buscador de <strong>tus</strong> cosas. Genial. SI bien GMail ya trae un buscador, el hecho de tener un solo lugar donde buscar en toda tu vida digital me parece buenísimo.</p>
<p><img class="aligncenter" title="Greplin" src="https://www.greplin.com/static/images/logo.png" alt="" width="184" height="53" /></p>
<p>En fin, será cuestión de probar <img src='https://s-ssl.wordpress.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/3kbzotas.wordpress.com/323/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/3kbzotas.wordpress.com/323/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/3kbzotas.wordpress.com/323/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/3kbzotas.wordpress.com/323/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/3kbzotas.wordpress.com/323/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/3kbzotas.wordpress.com/323/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/3kbzotas.wordpress.com/323/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/3kbzotas.wordpress.com/323/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/3kbzotas.wordpress.com/323/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/3kbzotas.wordpress.com/323/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/3kbzotas.wordpress.com/323/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/3kbzotas.wordpress.com/323/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/3kbzotas.wordpress.com/323/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/3kbzotas.wordpress.com/323/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=3kbzotas.wordpress.com&amp;blog=13394951&amp;post=323&amp;subd=3kbzotas&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>https://3kbzotas.wordpress.com/2011/03/17/hurgando-el-pasado/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="https://secure.gravatar.com/avatar/ba5a12559132a0572fbb3ba6922167a0?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Cristian</media:title>
		</media:content>

		<media:content url="http://s3.amazonaws.com/satisfaction-production/public/uploaded_images/5805030/memolane1250_full_aspect_medium.gif" medium="image">
			<media:title type="html">Memolane</media:title>
		</media:content>

		<media:content url="https://www.greplin.com/static/images/logo.png" medium="image">
			<media:title type="html">Greplin</media:title>
		</media:content>
	</item>
	</channel>
</rss>
