<?xml version='1.0' encoding='UTF-8'?><rss xmlns:atom='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' version='2.0'><channel><atom:id>tag:blogger.com,1999:blog-14980572</atom:id><lastBuildDate>Mon, 12 May 2008 10:55:17 +0000</lastBuildDate><title>KodeGeeK</title><description/><link>http://kodegeek.com/index.shtml</link><managingEditor>noreply@blogger.com (KodeGeek)</managingEditor><generator>Blogger</generator><openSearch:totalResults>441</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-14980572.post-2932645575710308694</guid><pubDate>Mon, 12 May 2008 10:36:00 +0000</pubDate><atom:updated>2008-05-12T06:55:17.810-04:00</atom:updated><category domain='http://www.blogger.com/atom/ns#'>indice</category><category domain='http://www.blogger.com/atom/ns#'>tiobe</category><category domain='http://www.blogger.com/atom/ns#'>index</category><title>¿Que lenguajes de programación debo aprender mañana?: Preguntele al Indice TIOBE</title><description>Esa es una pregunta importante. Y como toda pregunta, existen varias respuestas. Una de ellas es el &lt;a href="http://www.tiobe.com/index.php/content/paperinfo/tpci/index.html"&gt;indice TIOBE &lt;/a&gt;el cual mide la popularidad de los lenguajes de programación. Según el autor de este (lo lei en una revista, no puedo citarlo exactamente) los lenguajes a saber en los proximos 5 años son Java y C#. C y C++ seguiran perdiendo terreno debido a que no tienen manejo automatico de memoria y Perl será reemplazado por Python debido a la demora de 7 años en liberar una nueva versión.&lt;br /&gt;&lt;br /&gt;Sin embargo, como todas las bolas de cristal, hay que ser cuidadoso al escuchar estas predicciones :)&lt;br /&gt;&lt;br /&gt;Buscar en otros sitios:&lt;br /&gt;&lt;br /&gt;Blogalaxia:&lt;a href="http://www.blogalaxia.com/tags/tiobe" rel="tag"&gt;tiobe&lt;/a&gt;, &lt;a href="http://www.blogalaxia.com/tags/index" rel="tag"&gt;index&lt;/a&gt;, &lt;a href="http://www.blogalaxia.com/tags/indice" rel="tag"&gt;indice&lt;/a&gt;&lt;br /&gt;Technorati:&lt;a href="http://technorati.com/tag/tiobe" rel="tag"&gt;tiobe&lt;/a&gt;, &lt;a href="http://technorati.com/tag/index" rel="tag"&gt;index&lt;/a&gt;, &lt;a href="http://technorati.com/tag/indice" rel="tag"&gt;indice&lt;/a&gt;&lt;br /&gt;To2blogs:&lt;a href="http://www.to2blogs.com/tag/tiobe" rel="tag"&gt;tiobe&lt;/a&gt;, &lt;a href="http://www.to2blogs.com/tag/index" rel="tag"&gt;index&lt;/a&gt;, &lt;a href="http://www.to2blogs.com/tag/indice" rel="tag"&gt;indice&lt;/a&gt;&lt;br /&gt;Del.icio.us:&lt;a href="http://del.icio.us/tag/tiobe" rel="tag"&gt;tiobe&lt;/a&gt;, &lt;a href="http://del.icio.us/tag/index" rel="tag"&gt;index&lt;/a&gt;, &lt;a href="http://del.icio.us/tag/indice" rel="tag"&gt;indice&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;script type="text/javascript"&gt;&lt;!--
google_ad_client = "pub-2735459391089659";
/* 468x15, created 3/2/08,aviso para articulos */
google_ad_slot = "5680598537";
google_ad_width = 468;
google_ad_height = 15;
//--&gt;
&lt;/script&gt;
&lt;script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js"&gt;
&lt;/script&gt;&lt;/div&gt;</description><link>http://kodegeek.com/2008/05/que-lenguajes-de-programacin-debo.shtml</link><author>noreply@blogger.com (KodeGeek)</author></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-14980572.post-8594477889423461922</guid><pubDate>Sun, 11 May 2008 16:39:00 +0000</pubDate><atom:updated>2008-05-11T17:41:40.526-04:00</atom:updated><category domain='http://www.blogger.com/atom/ns#'>java</category><category domain='http://www.blogger.com/atom/ns#'>filthy rich clients</category><category domain='http://www.blogger.com/atom/ns#'>javaone2008</category><category domain='http://www.blogger.com/atom/ns#'>kodegeek</category><category domain='http://www.blogger.com/atom/ns#'>javaone</category><category domain='http://www.blogger.com/atom/ns#'>netbeans</category><category domain='http://www.blogger.com/atom/ns#'>javafx</category><title>Mi experiencia de JavaOne</title><description>&lt;a href="http://www.flickr.com/photos/josevnz/2482600307/" title="_MG_4034.JPG by josevnz, on Flickr"&gt;&lt;img src="http://farm3.static.flickr.com/2143/2482600307_36eaab76bb.jpg" alt="_MG_4034.JPG" border="0" height="500" width="333" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.flickr.com/photos/josevnz/2482600307/" title="_MG_4034.JPG by josevnz, on Flickr"&gt;JavaOne 2008&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Hola a todos los que leen este blog; Debo decir que las vacaciones que tomé con la familia en San Francisco &lt;span style="font-style: italic;"&gt;fueron simplemente brutales&lt;/span&gt; y que de ellas solamente un día fué dedicado a Java One (después de todo la intención era relajarnos y conocer sitios como &lt;a href="http://farm4.static.flickr.com/3216/2482882973_e101583332_b.jpg"&gt;Napa Valley&lt;/a&gt;, &lt;a href="http://farm4.static.flickr.com/3041/2482801719_6f51868e4f_b.jpg"&gt;Monterey Acuarium&lt;/a&gt; y por &lt;a href="http://farm4.static.flickr.com/3254/2483447128_ef963416d1_o.jpg"&gt;supuesto la ciudad&lt;/a&gt;).&lt;br /&gt;&lt;br /&gt;Pero como este es un blog dedicado a cosas Geek solamente les hablaré de JavaOne 2008 (el cual se celebró &lt;a href="http://farm3.static.flickr.com/2178/2483415186_9d53d5118c.jpg"&gt;en el Moscone Center&lt;/a&gt;) por los momentos, amigos y familia pueden meterse en &lt;a href="http://www.flickr.com/photos/josevnz/"&gt;Flickr&lt;/a&gt; y disfrutar del resto.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.flickr.com/photos/josevnz/2482752785/" title="James Gosling, father of Java by josevnz, on Flickr"&gt;&lt;img src="http://farm4.static.flickr.com/3015/2482752785_5a307082fc.jpg" alt="James Gosling, father of Java" height="500" width="375" /&gt;&lt;br /&gt;Tuve la suerte de tropezarme con James Gosling mientras iba hacia el Intercontinental Hotel&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;OK ... JavaOne, fué una experiencia increíble. No solamente  se está cara a cara con personalidades reconocidas en la industria sino que además la cantidad de información que hay que absorber es inmensa debido a lo variado de los tópicos que allí se trataron.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.flickr.com/photos/josevnz/2483566920/" title="Community One talks at JavaOne by josevnz, on Flickr"&gt;&lt;img src="http://farm3.static.flickr.com/2349/2483566920_263999e72d.jpg" alt="Community One talks at JavaOne" height="375" width="500" /&gt;&lt;br /&gt;Desarrolladores de todo el mundo se sentaron a hackear mientras escuchaban tópicos de las principales charlas&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Yo en particular me concentré en 3 presentaciones intensivas del Java University:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;JavaFx&lt;/li&gt;&lt;li&gt;Filthy Rich Clients&lt;/li&gt;&lt;li&gt;NetBeans.&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;a href="http://www.flickr.com/photos/josevnz/2483567166/" title="JavaOne JavaFX presentation by josevnz, on Flickr"&gt;&lt;img src="http://farm3.static.flickr.com/2179/2483567166_5203cf19c9.jpg" alt="JavaOne JavaFX presentation" height="375" width="500" /&gt;&lt;br /&gt;La presentación de JavaFX fué increiblemente práctica&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;h2&gt;&lt;a href="http://java.sun.com/javafx/"&gt;JavaFX&lt;/a&gt;&lt;/h2&gt; El instructor de este curso fué nada más y nada menos que James L. Weaver, autor del libro JavaFX script y del Blog &lt;a href="http://javafxpert.com/"&gt;JavaFXpert.com&lt;/a&gt;. El curso trató de explicar lo que es JavaFX (un API encima de Java SE la cual te permite combinar Swing con Java 2D de manera fácil ya que todo es declarativo). Lo mejor es que se puede separar perfectamente la lógica de negocios mientras un grupo de diseñadores talentosos se encargan de hacer el "front end".&lt;br /&gt;&lt;br /&gt;JavaFX es Flash en esteroides en pocas palabras y quizas la cura para Ajax :) ; Sin embargo ha tenido varias limitaciones en su adopción debido a lo ladilla que es instalar Java SE en una máquina (sobre todo si no se tienen permisos de administrador) y la falta de herramientas como Flash las cuales les permiten a programadores aficionados crear aplicaciones.&lt;br /&gt;&lt;br /&gt;Esas limitaciones estan desapareciendo ya que las versiones que vienen de Java SE van a ser modulares  (solamente van a descargar los módulos requeridos por el script JavaFX) y en JavaOne se anunciaron varias herramientas las cuales van a soportar JavaFX al estilo de Flash (todo esto para Junio de este año).&lt;br /&gt;&lt;br /&gt;En cuanto a la presentación, debo quitarme el sobrero ante el autor del curso; No hubo ni una sola presentación en PowerPoint sino todo fue &lt;span style="font-style: italic;"&gt;CODIGO&lt;/span&gt; el cual fué explicado paso por paso. También el autor tuvo la amabilidad de responder preguntas durante toda la mañana; Yo le pregunté sobre internacionalización y uso de Threads dentro de JavaFX y aunque no tenia ejemplos listos este se las ingenio para mostrarme código que resolvía los problemas, ¡todo sobre la marcha!&lt;br /&gt;&lt;br /&gt;Si usted hace aplicaciones para Internet, aplicaciones para dispositivos mobiles entonces JavaFX es el futuro (Si, es &lt;a href="https://openjfx.dev.java.net/"&gt;OpenSource&lt;/a&gt; también).&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.flickr.com/photos/josevnz/2482753193/" title="JavaOne Filthy Rich Clients presentation by josevnz, on Flickr"&gt;&lt;img src="http://farm4.static.flickr.com/3256/2482753193_e87e75ee1b.jpg" alt="JavaOne Filthy Rich Clients presentation" height="375" width="500" /&gt;&lt;br /&gt;Filthy Rich Clients: Super densa e interesante&lt;/a&gt;&lt;br /&gt;&lt;h2&gt;&lt;a href="http://filthyrichclients.org/"&gt;Filthy Rich Clients&lt;/a&gt;:&lt;/h2&gt;Si, el material de los mismos autores del libro. La presentación estuvo a cargo de Mick McLaughlin, un desarrollador con más de 10 años de experiencia en creación de interfaces gráficas en C++ y ahora en Java.&lt;br /&gt;&lt;br /&gt;La única forma de describir esta presentación es decir que fué densa (mucho código, muchas explicaciones y mucho más código) e impresionante (las cosas que se pueden hacer con Java2D y Swing es impresionante). No mucha gente aguantó hasta el final pero valió la pena, esta es una de las areas que vale la pena explorar no sólo para que las aplicaciones se vean sexy sino también para que se desempeñen bien.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.flickr.com/photos/josevnz/2483567506/" title="Netbeans presentation Java University by josevnz, on Flickr"&gt;&lt;img src="http://farm3.static.flickr.com/2323/2483567506_b216d53290.jpg" alt="Netbeans presentation Java University" height="375" width="500" /&gt;&lt;br /&gt;NetBeans fué las sorpresa de la noche&lt;/a&gt;&lt;br /&gt;&lt;h2&gt;&lt;a href="http://www.netbeans.org/"&gt;NetBeans&lt;/a&gt;:&lt;/h2&gt;Esta presentación fué de "ñapa" ya que la asistencia era libre y empezaba a las 6:00 PM. Yo me metí porque me interesaba ver que tanto había progresado NetBeans comparado con Eclipse (en mi trabajo utilizamos Eclipse ya que se desempeña muy bien). La demostración fué muy interesante y la facilidad con la que se hacen aplicaciones web y de escritorio utilizando los "wizard" es impactante. Lo otro es que NetBeans ahora corre rápido, no es la tortuga que era Forte varios años atrás.&lt;br /&gt;&lt;br /&gt;Otras cosas interesantes de esta presentación:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;David Botterill (el webmaster de netbeans.org) habló de las limitaciones que existen en NetBeans a la hora de escribir aplicaciones web (usando Java Faces), mientras que&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Alguien preguntó: &lt;span style="font-style: italic;"&gt;¿Como hace dinero Sun dando gratis el editor?&lt;/span&gt; La respuesta fué "&lt;span style="font-style: italic;"&gt;igual que hace Oracle o IBM: Dandole soporte al middleware y servidores de aplicaciones mientras los usuarios utilizan el editor&lt;/span&gt;".&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Me gané el libro "&lt;a href="http://netbeans.dzone.com/news/sun-distributes-%E2%80%98100-netbeans-"&gt;100 NetBeans IDE Tips and Tricks&lt;/a&gt;", escrito por &lt;a href="http://www.ruthless.zathras.de/"&gt;Ruth Kusterer&lt;/a&gt;, por andar de preguntón :)&lt;/li&gt;&lt;/ul&gt;De verdad valió la pena esta charla.&lt;br /&gt;&lt;br /&gt;&lt;object type="application/x-shockwave-flash" data="http://www.flickr.com/apps/video/stewart.swf?v=49235" classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" height="300" width="400"&gt; &lt;param name="flashvars" value="intl_lang=en-us&amp;amp;photo_secret=4a3a9d1c99&amp;amp;photo_id=2482747251"&gt; &lt;param name="movie" value="http://www.flickr.com/apps/video/stewart.swf?v=49235"&gt; &lt;param name="bgcolor" value="#000000"&gt; &lt;param name="allowFullScreen" value="true"&gt;&lt;embed type="application/x-shockwave-flash" src="http://www.flickr.com/apps/video/stewart.swf?v=49235" bgcolor="#000000" allowfullscreen="true" flashvars="intl_lang=en-us&amp;amp;photo_secret=4a3a9d1c99&amp;amp;photo_id=2482747251" height="300" width="400"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;br /&gt;&lt;br /&gt;En resumen, hubo de todo en JavaOne este año. Tengo unas cuantas sorpresas más las cuales iré soltando en este blog (particularmente una relacionada con "Pervasive Computing"). Si tienen preguntas sobre el evento o impresiones sobre el mismo, no duden en comentar en el blog, son más que bienvenidos.&lt;br /&gt;&lt;br /&gt;Para aquellos que esten interesados, los invito a visitar el grupo en Flickr "&lt;a href="http://www.flickr.com/groups/venezuelaopensource/pool/"&gt;Venezuela OpenSource&lt;/a&gt;" en el cual están estas y otras fotos más sobre el evento.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Buscar en otros sitios:&lt;br /&gt;&lt;br /&gt;Blogalaxia:&lt;a href="http://www.blogalaxia.com/tags/java" rel="tag"&gt;java&lt;/a&gt;, &lt;a href="http://www.blogalaxia.com/tags/javaone" rel="tag"&gt;javaone&lt;/a&gt;, &lt;a href="http://www.blogalaxia.com/tags/javaone2008" rel="tag"&gt;javaone2008&lt;/a&gt;, &lt;a href="http://www.blogalaxia.com/tags/kodegeek" rel="tag"&gt;kodegeek&lt;/a&gt;, &lt;a href="http://www.blogalaxia.com/tags/filthy+rich+clients" rel="tag"&gt;filthy rich clients&lt;/a&gt;, &lt;a href="http://www.blogalaxia.com/tags/javafx" rel="tag"&gt;javafx&lt;/a&gt;, &lt;a href="http://www.blogalaxia.com/tags/netbeans" rel="tag"&gt;netbeans&lt;/a&gt;&lt;br /&gt;Technorati:&lt;a href="http://technorati.com/tag/java" rel="tag"&gt;java&lt;/a&gt;, &lt;a href="http://technorati.com/tag/javaone" rel="tag"&gt;javaone&lt;/a&gt;, &lt;a href="http://technorati.com/tag/javaone2008" rel="tag"&gt;javaone2008&lt;/a&gt;, &lt;a href="http://technorati.com/tag/kodegeek" rel="tag"&gt;kodegeek&lt;/a&gt;, &lt;a href="http://technorati.com/tag/filthy+rich+clients" rel="tag"&gt;filthy rich clients&lt;/a&gt;, &lt;a href="http://technorati.com/tag/javafx" rel="tag"&gt;javafx&lt;/a&gt;, &lt;a href="http://technorati.com/tag/netbeans" rel="tag"&gt;netbeans&lt;/a&gt;&lt;br /&gt;To2blogs:&lt;a href="http://www.to2blogs.com/tag/java" rel="tag"&gt;java&lt;/a&gt;, &lt;a href="http://www.to2blogs.com/tag/javaone" rel="tag"&gt;javaone&lt;/a&gt;, &lt;a href="http://www.to2blogs.com/tag/javaone2008" rel="tag"&gt;javaone2008&lt;/a&gt;, &lt;a href="http://www.to2blogs.com/tag/kodegeek" rel="tag"&gt;kodegeek&lt;/a&gt;, &lt;a href="http://www.to2blogs.com/tag/filthy+rich+clients" rel="tag"&gt;filthy rich clients&lt;/a&gt;, &lt;a href="http://www.to2blogs.com/tag/javafx" rel="tag"&gt;javafx&lt;/a&gt;, &lt;a href="http://www.to2blogs.com/tag/netbeans" rel="tag"&gt;netbeans&lt;/a&gt;&lt;br /&gt;Del.icio.us:&lt;a href="http://del.icio.us/tag/java" rel="tag"&gt;java&lt;/a&gt;, &lt;a href="http://del.icio.us/tag/javaone" rel="tag"&gt;javaone&lt;/a&gt;, &lt;a href="http://del.icio.us/tag/javaone2008" rel="tag"&gt;javaone2008&lt;/a&gt;, &lt;a href="http://del.icio.us/tag/kodegeek" rel="tag"&gt;kodegeek&lt;/a&gt;, &lt;a href="http://del.icio.us/tag/filthy+rich+clients" rel="tag"&gt;filthy rich clients&lt;/a&gt;, &lt;a href="http://del.icio.us/tag/javafx" rel="tag"&gt;javafx&lt;/a&gt;, &lt;a href="http://del.icio.us/tag/netbeans" rel="tag"&gt;netbeans&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;script type="text/javascript"&gt;&lt;!--
google_ad_client = "pub-2735459391089659";
/* 468x15, created 3/2/08,aviso para articulos */
google_ad_slot = "5680598537";
google_ad_width = 468;
google_ad_height = 15;
//--&gt;
&lt;/script&gt;
&lt;script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js"&gt;
&lt;/script&gt;&lt;/div&gt;</description><link>http://kodegeek.com/2008/05/mi-experiencia-de-javaone.shtml</link><author>noreply@blogger.com (KodeGeek)</author></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-14980572.post-7000847928026695678</guid><pubDate>Mon, 05 May 2008 10:30:00 +0000</pubDate><atom:updated>2008-05-05T06:30:01.209-04:00</atom:updated><category domain='http://www.blogger.com/atom/ns#'>java</category><category domain='http://www.blogger.com/atom/ns#'>conference</category><category domain='http://www.blogger.com/atom/ns#'>javaone2008</category><category domain='http://www.blogger.com/atom/ns#'>javaone</category><title>El lunes empieza JavaOne</title><description>Nos vemos  en &lt;a href="http://java.sun.com/javaone/sf/index.jsp"&gt;JavaOne&lt;/a&gt;. Una vez que me registre voy a estar por acá:&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;-Java University Course Location (9:00 am to 9:00 pm):&lt;br /&gt;InterContinental Hotel&lt;br /&gt;888 Howard Street (between 4th and 5th Streets)&lt;br /&gt;San Francisco, CA 94103 &lt;/blockquote&gt;Si por casualidad alguno de ustedes lee estoy y va a estar cerca, quizas nos podamos encontrar. No creo que me ponga a reportar nada del evento de una vez (después de todo también son mis vacaciones) pero si colocaré fotos en Flickr y algunas notas sobre el evento.&lt;br /&gt;&lt;br /&gt;Buscar en otros sitios:&lt;br /&gt;&lt;br /&gt;Blogalaxia:&lt;a href="http://www.blogalaxia.com/tags/conference" rel="tag"&gt;conference&lt;/a&gt;, &lt;a href="http://www.blogalaxia.com/tags/java" rel="tag"&gt;java&lt;/a&gt;, &lt;a href="http://www.blogalaxia.com/tags/javaone" rel="tag"&gt;javaone&lt;/a&gt;, &lt;a href="http://www.blogalaxia.com/tags/javaone2008" rel="tag"&gt;javaone2008&lt;/a&gt;&lt;br /&gt;Technorati:&lt;a href="http://technorati.com/tag/conference" rel="tag"&gt;conference&lt;/a&gt;, &lt;a href="http://technorati.com/tag/java" rel="tag"&gt;java&lt;/a&gt;, &lt;a href="http://technorati.com/tag/javaone" rel="tag"&gt;javaone&lt;/a&gt;, &lt;a href="http://technorati.com/tag/javaone2008" rel="tag"&gt;javaone2008&lt;/a&gt;&lt;br /&gt;To2blogs:&lt;a href="http://www.to2blogs.com/tag/conference" rel="tag"&gt;conference&lt;/a&gt;, &lt;a href="http://www.to2blogs.com/tag/java" rel="tag"&gt;java&lt;/a&gt;, &lt;a href="http://www.to2blogs.com/tag/javaone" rel="tag"&gt;javaone&lt;/a&gt;, &lt;a href="http://www.to2blogs.com/tag/javaone2008" rel="tag"&gt;javaone2008&lt;/a&gt;&lt;br /&gt;Del.icio.us:&lt;a href="http://del.icio.us/tag/conference" rel="tag"&gt;conference&lt;/a&gt;, &lt;a href="http://del.icio.us/tag/java" rel="tag"&gt;java&lt;/a&gt;, &lt;a href="http://del.icio.us/tag/javaone" rel="tag"&gt;javaone&lt;/a&gt;, &lt;a href="http://del.icio.us/tag/javaone2008" rel="tag"&gt;javaone2008&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;script type="text/javascript"&gt;&lt;!--
google_ad_client = "pub-2735459391089659";
/* 468x15, created 3/2/08,aviso para articulos */
google_ad_slot = "5680598537";
google_ad_width = 468;
google_ad_height = 15;
//--&gt;
&lt;/script&gt;
&lt;script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js"&gt;
&lt;/script&gt;&lt;/div&gt;</description><link>http://kodegeek.com/2008/05/el-lunes-empieza-javaone.shtml</link><author>noreply@blogger.com (KodeGeek)</author></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-14980572.post-6568847561928625534</guid><pubDate>Sat, 03 May 2008 09:00:00 +0000</pubDate><atom:updated>2008-05-03T05:00:00.676-04:00</atom:updated><category domain='http://www.blogger.com/atom/ns#'>ruby</category><category domain='http://www.blogger.com/atom/ns#'>java</category><category domain='http://www.blogger.com/atom/ns#'>rails</category><category domain='http://www.blogger.com/atom/ns#'>servlets</category><title>Twitter se sacude a Ruby on Rails</title><description>La noticia está circulando Internet, &lt;a href="http://www.techcrunch.com/2008/05/01/twitter-said-to-be-abandoning-ruby-on-rails/"&gt;y es que Twitter tiene problemas de escalabilidad&lt;/a&gt;, muchos dicen que están relacionados con el uso de Ruby on Rails.&lt;br /&gt;&lt;br /&gt;Yo digo que se puede hacer mal software en cualquier plataforma, habría que trabajar de verdad en Twitter para saber cual es el verdadero problema. Lo cierto es que más correo de odio viene hacia Rails.&lt;br /&gt;&lt;br /&gt;¿Alguien se acuerda de cuando la gente hablaba mal de Java con Servlets? Vamos a ver cuanto dura esta tormenta en un baso con agua...&lt;br /&gt;&lt;br /&gt;Buscar en otros sitios:&lt;br /&gt;&lt;br /&gt;Blogalaxia:&lt;a href="http://www.blogalaxia.com/tags/ruby" rel="tag"&gt;ruby&lt;/a&gt;, &lt;a href="http://www.blogalaxia.com/tags/rails" rel="tag"&gt;rails&lt;/a&gt;, &lt;a href="http://www.blogalaxia.com/tags/java" rel="tag"&gt;java&lt;/a&gt;, &lt;a href="http://www.blogalaxia.com/tags/servlets" rel="tag"&gt;servlets&lt;/a&gt;&lt;br /&gt;Technorati:&lt;a href="http://technorati.com/tag/ruby" rel="tag"&gt;ruby&lt;/a&gt;, &lt;a href="http://technorati.com/tag/rails" rel="tag"&gt;rails&lt;/a&gt;, &lt;a href="http://technorati.com/tag/java" rel="tag"&gt;java&lt;/a&gt;, &lt;a href="http://technorati.com/tag/servlets" rel="tag"&gt;servlets&lt;/a&gt;&lt;br /&gt;To2blogs:&lt;a href="http://www.to2blogs.com/tag/ruby" rel="tag"&gt;ruby&lt;/a&gt;, &lt;a href="http://www.to2blogs.com/tag/rails" rel="tag"&gt;rails&lt;/a&gt;, &lt;a href="http://www.to2blogs.com/tag/java" rel="tag"&gt;java&lt;/a&gt;, &lt;a href="http://www.to2blogs.com/tag/servlets" rel="tag"&gt;servlets&lt;/a&gt;&lt;br /&gt;Del.icio.us:&lt;a href="http://del.icio.us/tag/ruby" rel="tag"&gt;ruby&lt;/a&gt;, &lt;a href="http://del.icio.us/tag/rails" rel="tag"&gt;rails&lt;/a&gt;, &lt;a href="http://del.icio.us/tag/java" rel="tag"&gt;java&lt;/a&gt;, &lt;a href="http://del.icio.us/tag/servlets" rel="tag"&gt;servlets&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;script type="text/javascript"&gt;&lt;!--
google_ad_client = "pub-2735459391089659";
/* 468x15, created 3/2/08,aviso para articulos */
google_ad_slot = "5680598537";
google_ad_width = 468;
google_ad_height = 15;
//--&gt;
&lt;/script&gt;
&lt;script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js"&gt;
&lt;/script&gt;&lt;/div&gt;</description><link>http://kodegeek.com/2008/05/twitter-se-sacude-ruby-on-rails.shtml</link><author>noreply@blogger.com (KodeGeek)</author></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-14980572.post-7182986648752044763</guid><pubDate>Fri, 02 May 2008 21:50:00 +0000</pubDate><atom:updated>2008-05-02T17:51:09.402-04:00</atom:updated><category domain='http://www.blogger.com/atom/ns#'>java</category><category domain='http://www.blogger.com/atom/ns#'>TIBCO</category><category domain='http://www.blogger.com/atom/ns#'>Rendezvous</category><category domain='http://www.blogger.com/atom/ns#'>viernes</category><title>Hoy es viernes de TIBCO :)</title><description>Esta semana fué dura, pero ya estoy casi listo con la primera ronda de ajusten en la compilación de nuestra aplicación.  Conflictos con Jars, errores misteriosos con versiones de las librerías y sobre todo mucha paciencia pero ya está quedó lista.&lt;br /&gt;&lt;br /&gt;Una semana larga y dura, pero el esfuerzo pagó sus frutos. No sólo ahora podemos recompilar la aplicación más fácilmente sino que además podemos migrar a otras herramientas como Maven, sin tanto problema.&lt;br /&gt;&lt;br /&gt;Lo otro es que ahora estamos con otro proyecto para hacer la aplicación más rápida; En mi grupo  tengo el dudoso honor de ser el experto en configurar componentes de TIBCO &lt;span style="font-style: italic;"&gt;Rendezvous&lt;/span&gt; (RVD, RVRD, etc) y por ende ando configurando un par de demonios RVRD para luego enviar entre ellos mensajes certificados usando Java.&lt;br /&gt;&lt;br /&gt;Entonación de TIBCO, el producto es poderoso pero para que vuele hay que sentarse a optimizar parámetros en el Kernel, darle recursos dedicados (sobre todo cuando se trata de suscripciones a datos del mercado).&lt;br /&gt;&lt;br /&gt;No hay almuerzo gratis, se paga simplicidad en un lado por complejidad en el otro :)&lt;br /&gt;&lt;br /&gt;Bueno, los dejo para seguir soñando "multicast groups, daemons and services"&lt;br /&gt;&lt;br /&gt;Buscar en otros sitios:&lt;br /&gt;&lt;br /&gt;Blogalaxia:&lt;a href="http://www.blogalaxia.com/tags/java" rel="tag"&gt;java&lt;/a&gt;, &lt;a href="http://www.blogalaxia.com/tags/TIBCO" rel="tag"&gt;TIBCO&lt;/a&gt;, &lt;a href="http://www.blogalaxia.com/tags/viernes" rel="tag"&gt;viernes&lt;/a&gt;, &lt;a href="http://www.blogalaxia.com/tags/Rendezvous" rel="tag"&gt;Rendezvous&lt;/a&gt;&lt;br /&gt;Technorati:&lt;a href="http://technorati.com/tag/java" rel="tag"&gt;java&lt;/a&gt;, &lt;a href="http://technorati.com/tag/TIBCO" rel="tag"&gt;TIBCO&lt;/a&gt;, &lt;a href="http://technorati.com/tag/viernes" rel="tag"&gt;viernes&lt;/a&gt;, &lt;a href="http://technorati.com/tag/Rendezvous" rel="tag"&gt;Rendezvous&lt;/a&gt;&lt;br /&gt;To2blogs:&lt;a href="http://www.to2blogs.com/tag/java" rel="tag"&gt;java&lt;/a&gt;, &lt;a href="http://www.to2blogs.com/tag/TIBCO" rel="tag"&gt;TIBCO&lt;/a&gt;, &lt;a href="http://www.to2blogs.com/tag/viernes" rel="tag"&gt;viernes&lt;/a&gt;, &lt;a href="http://www.to2blogs.com/tag/Rendezvous" rel="tag"&gt;Rendezvous&lt;/a&gt;&lt;br /&gt;Del.icio.us:&lt;a href="http://del.icio.us/tag/java" rel="tag"&gt;java&lt;/a&gt;, &lt;a href="http://del.icio.us/tag/TIBCO" rel="tag"&gt;TIBCO&lt;/a&gt;, &lt;a href="http://del.icio.us/tag/viernes" rel="tag"&gt;viernes&lt;/a&gt;, &lt;a href="http://del.icio.us/tag/Rendezvous" rel="tag"&gt;Rendezvous&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;script type="text/javascript"&gt;&lt;!--
google_ad_client = "pub-2735459391089659";
/* 468x15, created 3/2/08,aviso para articulos */
google_ad_slot = "5680598537";
google_ad_width = 468;
google_ad_height = 15;
//--&gt;
&lt;/script&gt;
&lt;script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js"&gt;
&lt;/script&gt;&lt;/div&gt;</description><link>http://kodegeek.com/2008/05/hoy-es-viernes-de-tibco.shtml</link><author>noreply@blogger.com (KodeGeek)</author></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-14980572.post-4481773219003584064</guid><pubDate>Wed, 30 Apr 2008 04:42:00 +0000</pubDate><atom:updated>2008-04-30T00:44:40.947-04:00</atom:updated><category domain='http://www.blogger.com/atom/ns#'>java</category><category domain='http://www.blogger.com/atom/ns#'>mac osx</category><category domain='http://www.blogger.com/atom/ns#'>1.6</category><title>OSX y Java 6: ¡Al fin!</title><description>Bueno, al fin tengo &lt;a href="http://www.apple.com/support/downloads/javaformacosx105update1.html"&gt;una excusa para hacer la actualización&lt;/a&gt; a Leopard.&lt;br /&gt;&lt;br /&gt;¿Porqué diablos se tardaron tanto?&lt;br /&gt;&lt;br /&gt;Buscar en otros sitios:&lt;br /&gt;&lt;br /&gt;Blogalaxia:&lt;a href="http://www.blogalaxia.com/tags/java" rel="tag"&gt;java&lt;/a&gt;, &lt;a href="http://www.blogalaxia.com/tags/mac+osx" rel="tag"&gt;mac osx&lt;/a&gt;, &lt;a href="http://www.blogalaxia.com/tags/mac+osx" rel="tag"&gt;mac osx&lt;/a&gt;, &lt;a href="http://www.blogalaxia.com/tags/1.6" rel="tag"&gt;1.6&lt;/a&gt;&lt;br /&gt;Technorati:&lt;a href="http://technorati.com/tag/java" rel="tag"&gt;java&lt;/a&gt;, &lt;a href="http://technorati.com/tag/mac+osx" rel="tag"&gt;mac osx&lt;/a&gt;, &lt;a href="http://technorati.com/tag/mac+osx" rel="tag"&gt;mac osx&lt;/a&gt;, &lt;a href="http://technorati.com/tag/1.6" rel="tag"&gt;1.6&lt;/a&gt;&lt;br /&gt;To2blogs:&lt;a href="http://www.to2blogs.com/tag/java" rel="tag"&gt;java&lt;/a&gt;, &lt;a href="http://www.to2blogs.com/tag/mac+osx" rel="tag"&gt;mac osx&lt;/a&gt;, &lt;a href="http://www.to2blogs.com/tag/mac+osx" rel="tag"&gt;mac osx&lt;/a&gt;, &lt;a href="http://www.to2blogs.com/tag/1.6" rel="tag"&gt;1.6&lt;/a&gt;&lt;br /&gt;Del.icio.us:&lt;a href="http://del.icio.us/tag/java" rel="tag"&gt;java&lt;/a&gt;, &lt;a href="http://del.icio.us/tag/mac+osx" rel="tag"&gt;mac osx&lt;/a&gt;, &lt;a href="http://del.icio.us/tag/mac+osx" rel="tag"&gt;mac osx&lt;/a&gt;, &lt;a href="http://del.icio.us/tag/1.6" rel="tag"&gt;1.6&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;script type="text/javascript"&gt;&lt;!--
google_ad_client = "pub-2735459391089659";
/* 468x15, created 3/2/08,aviso para articulos */
google_ad_slot = "5680598537";
google_ad_width = 468;
google_ad_height = 15;
//--&gt;
&lt;/script&gt;
&lt;script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js"&gt;
&lt;/script&gt;&lt;/div&gt;</description><link>http://kodegeek.com/2008/04/osx-y-java-6-al-fin.shtml</link><author>noreply@blogger.com (KodeGeek)</author></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-14980572.post-4198340788537283986</guid><pubDate>Sat, 26 Apr 2008 12:19:00 +0000</pubDate><atom:updated>2008-04-26T09:03:25.855-04:00</atom:updated><category domain='http://www.blogger.com/atom/ns#'>worldscollide</category><category domain='http://www.blogger.com/atom/ns#'>apocalyptica</category><category domain='http://www.blogger.com/atom/ns#'>worlds collide</category><title>Apocalyptica: Worlds collide</title><description>&lt;object height="267" width="320"&gt;&lt;param name="movie" value="http://www.youtube.com/v/rbTozgoj9OQ&amp;amp;hl=en"&gt;&lt;param name="wmode" value="transparent"&gt;&lt;embed src="http://www.youtube.com/v/rbTozgoj9OQ&amp;amp;hl=en" type="application/x-shockwave-flash" wmode="transparent" height="267" width="320"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;br /&gt;Y es que los panas de &lt;a href="http://apocalyptica.com/"&gt;Apocalyptica&lt;/a&gt; no decepcionan, ya me bajé de Itunes "Worlds Collide" y debo decir que aunque no me encontré con sorpresas en su estilo esta entrega es sólida.&lt;br /&gt;&lt;br /&gt;Me encantó la selección de artistas invitados, entre ellos Dave Lombardo, el super mega baterista de Slayer.&lt;br /&gt;&lt;br /&gt;Los dejo con los &lt;a href="http://www.youtube.com/apocalypticavideos"&gt;videos en Youtube&lt;/a&gt; para que se den cabilla.&lt;br /&gt;&lt;br /&gt;Buscar en otros sitios:&lt;br /&gt;&lt;br /&gt;Blogalaxia:&lt;a href="http://www.blogalaxia.com/tags/apocalyptica" rel="tag"&gt;apocalyptica&lt;/a&gt;, &lt;a href="http://www.blogalaxia.com/tags/worldscollide" rel="tag"&gt;worldscollide&lt;/a&gt;, &lt;a href="http://www.blogalaxia.com/tags/worlds+collide" rel="tag"&gt;worlds collide&lt;/a&gt;&lt;br /&gt;Technorati:&lt;a href="http://technorati.com/tag/apocalyptica" rel="tag"&gt;apocalyptica&lt;/a&gt;, &lt;a href="http://technorati.com/tag/worldscollide" rel="tag"&gt;worldscollide&lt;/a&gt;, &lt;a href="http://technorati.com/tag/worlds+collide" rel="tag"&gt;worlds collide&lt;/a&gt;&lt;br /&gt;To2blogs:&lt;a href="http://www.to2blogs.com/tag/apocalyptica" rel="tag"&gt;apocalyptica&lt;/a&gt;, &lt;a href="http://www.to2blogs.com/tag/worldscollide" rel="tag"&gt;worldscollide&lt;/a&gt;, &lt;a href="http://www.to2blogs.com/tag/worlds+collide" rel="tag"&gt;worlds collide&lt;/a&gt;&lt;br /&gt;Del.icio.us:&lt;a href="http://del.icio.us/tag/apocalyptica" rel="tag"&gt;apocalyptica&lt;/a&gt;, &lt;a href="http://del.icio.us/tag/worldscollide" rel="tag"&gt;worldscollide&lt;/a&gt;, &lt;a href="http://del.icio.us/tag/worlds+collide" rel="tag"&gt;worlds collide&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;script type="text/javascript"&gt;&lt;!--
google_ad_client = "pub-2735459391089659";
/* 468x15, created 3/2/08,aviso para articulos */
google_ad_slot = "5680598537";
google_ad_width = 468;
google_ad_height = 15;
//--&gt;
&lt;/script&gt;
&lt;script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js"&gt;
&lt;/script&gt;&lt;/div&gt;</description><link>http://kodegeek.com/2008/04/apocalyptica-worlds-collide.shtml</link><author>noreply@blogger.com (KodeGeek)</author></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-14980572.post-4168853774817314691</guid><pubDate>Thu, 24 Apr 2008 02:27:00 +0000</pubDate><atom:updated>2008-04-23T22:27:29.447-04:00</atom:updated><category domain='http://www.blogger.com/atom/ns#'>java</category><category domain='http://www.blogger.com/atom/ns#'>javaone</category><category domain='http://www.blogger.com/atom/ns#'>vacaciones</category><title>Voy para JavaOne</title><description>Si, la familia y yo nos vamos de vacaciones por una semana. De esa semana me estoy tomando un día completo para asistir a la mega conferencia &lt;a href="http://java.sun.com/javaone/sf/"&gt;JavaOne&lt;/a&gt;, este año a celebrarse en San Francisco, California.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic; font-weight: bold;"&gt;JavaOne,&lt;/span&gt; señores, una de las conferencias más esperadas de este año. Sólo se me ocurre la de &lt;a href="http://developer.apple.com/wwdc/"&gt;Apple&lt;/a&gt; en magnitud (también en San Francisco pero en el mes de Junio).&lt;br /&gt;&lt;br /&gt;Lo siento, aún &lt;a href="https://en.oreilly.com/rails2008/public/register"&gt;RailsConf&lt;/a&gt; no genera tanto ruido como JavaOne :)&lt;br /&gt;&lt;br /&gt;Voy en plan de estudiante, &lt;span style="font-weight: bold; font-style: italic;"&gt;voy a aprender&lt;/span&gt;. Si bien no puedo darme el lujo de asistir toda la semana al menos pienso ir el Lunes para escuchar los anuncios de nuevas cosas además de recibir entrenamiento en &lt;a href="http://java.sun.com/javafx/"&gt;JavaFX&lt;/a&gt; y &lt;a href="http://filthyrichclients.org/"&gt;Filthy Rich Clients in Swing&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: center;"&gt;&lt;span style="font-weight: bold; font-style: italic;"&gt;H-A-R-D-C-O-R-E!&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;Como dije antes no voy en calidad de reportero / blogger. No me gusta, no tengo tiempo, voy en plan de relajarme. No voy a tener tiempo para hacer &lt;span style="font-style: italic;"&gt;networking&lt;/span&gt; (al menos que haga milagros en un sólo día) pero en cambio voy a pasar el resto del tiempo con mi familia, haciendo un millón de cosas.&lt;br /&gt;&lt;br /&gt;Ahh San Francisco, que mejor manera de conocerte :)&lt;br /&gt;&lt;br /&gt;&lt;a href="http://del.icio.us/tag/vacaciones" rel="tag"&gt;&lt;/a&gt;&lt;br /&gt;Buscar en otros sitios:&lt;br /&gt;&lt;br /&gt;Blogalaxia:&lt;a href="http://www.blogalaxia.com/tags/javaone" rel="tag"&gt;javaone&lt;/a&gt;, &lt;a href="http://www.blogalaxia.com/tags/java" rel="tag"&gt;java&lt;/a&gt;, &lt;a href="http://www.blogalaxia.com/tags/vacaciones" rel="tag"&gt;vacaciones&lt;/a&gt;&lt;br /&gt;Technorati:&lt;a href="http://technorati.com/tag/javaone" rel="tag"&gt;javaone&lt;/a&gt;, &lt;a href="http://technorati.com/tag/java" rel="tag"&gt;java&lt;/a&gt;, &lt;a href="http://technorati.com/tag/vacaciones" rel="tag"&gt;vacaciones&lt;/a&gt;&lt;br /&gt;To2blogs:&lt;a href="http://www.to2blogs.com/tag/javaone" rel="tag"&gt;javaone&lt;/a&gt;, &lt;a href="http://www.to2blogs.com/tag/java" rel="tag"&gt;java&lt;/a&gt;, &lt;a href="http://www.to2blogs.com/tag/vacaciones" rel="tag"&gt;vacaciones&lt;/a&gt;&lt;br /&gt;Del.icio.us:&lt;a href="http://del.icio.us/tag/javaone" rel="tag"&gt;javaone&lt;/a&gt;, &lt;a href="http://del.icio.us/tag/java" rel="tag"&gt;java&lt;/a&gt;, &lt;a href="http://del.icio.us/tag/vacaciones" rel="tag"&gt;vacaciones&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;script type="text/javascript"&gt;&lt;!--
google_ad_client = "pub-2735459391089659";
/* 468x15, created 3/2/08,aviso para articulos */
google_ad_slot = "5680598537";
google_ad_width = 468;
google_ad_height = 15;
//--&gt;
&lt;/script&gt;
&lt;script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js"&gt;
&lt;/script&gt;&lt;/div&gt;</description><link>http://kodegeek.com/2008/04/voy-para-javaone.shtml</link><author>noreply@blogger.com (KodeGeek)</author></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-14980572.post-7049920794585088356</guid><pubDate>Wed, 23 Apr 2008 03:25:00 +0000</pubDate><atom:updated>2008-04-23T21:51:00.889-04:00</atom:updated><category domain='http://www.blogger.com/atom/ns#'>open source</category><category domain='http://www.blogger.com/atom/ns#'>java</category><category domain='http://www.blogger.com/atom/ns#'>ping</category><category domain='http://www.blogger.com/atom/ns#'>blog</category><category domain='http://www.blogger.com/atom/ns#'>stupidzombie.com</category><title>No tan estupido: StupidZombie.com</title><description>Vaya, hoy vengo de un día brutal en la oficina (&lt;span style="font-style: italic;"&gt;y una cena en grupo la cual consistió en una deliciosa cena con comida Griega y su respectivo café&lt;/span&gt;), trabajando en un proyecto delicado (estoy acomodando todo el framework de compilación en instalación del nuestra aplicación de &lt;span style="font-style: italic;"&gt;trading&lt;/span&gt;, un monstrico de 8 años de edad). No todo es aburrido, hoy por fin comienzo a trabajar en un proyecto directamente relacionado con la aplicación de trading, el la cual hay de todo: desde server side programming (sockets, threads y toda la parafernalia) hasta la interfaz gráfica en el lado del cliente.&lt;br /&gt;&lt;br /&gt;¡Wooohooooo!&lt;br /&gt;&lt;br /&gt;Pero no les quería hablar de eso, sino de como hace unos días escribí sobre la muerte de &lt;a href="http://kodegeek.com/2008/04/pingblog-qepd.shtml"&gt;PingBlog&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;¿&lt;span style="font-style: italic;"&gt;Que significa dejar atrás PingBlog para mi&lt;/span&gt;? Varias cosas, entre ellas:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://svnbook.red-bean.com/"&gt;Aprendiender Subversion&lt;/a&gt;: Si, después de usar CVS y Clearcase (este último abandonado por Rational e IBM), es hora de probar el siguiente sistema más popular. Este proyecto es la excusa perfecta para aprender Subversion.&lt;/li&gt;&lt;li&gt;&lt;a href="https://stupidzombie.dev.java.net/"&gt;Hospedar el proyecto en Java.net&lt;/a&gt;. Si, &lt;a href="http://sf.net/"&gt;Source Forge&lt;/a&gt; es quizas demasiado grande y este proyecto esta enfocado en el lenguaje Java. Quizas esta vez logre entusiasmar a alguien a trabajar conmigo en el proyecto sin necesidad de competir por tanta atención (además de que PingBlog estaba siendo manejado en CVS y una migración a Subversion no estaba en mis planes).&lt;/li&gt;&lt;li&gt;Mejor código: El tiempo ha pasado y tengo mejores ideas para esta versión. Además de que creo que mis trucos de programación han mejorado :)&lt;/li&gt;&lt;li&gt;Más código más rápido: Esta vez pienso pasar más tiempo escribiendo código perfecto y sólo voy a escribir código. Subversion me va a ayudar a echar para atrás esos errores :)&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;Asi que como ya ven, cosas buenas vienen para StupidZombie.&lt;br /&gt;&lt;br /&gt;Buscar en otros sitios:&lt;br /&gt;&lt;br /&gt;Blogalaxia:&lt;a href="http://www.blogalaxia.com/tags/stupidzombie.com" rel="tag"&gt;stupidzombie.com&lt;/a&gt;, &lt;a href="http://www.blogalaxia.com/tags/ping" rel="tag"&gt;ping&lt;/a&gt;, &lt;a href="http://www.blogalaxia.com/tags/blog" rel="tag"&gt;blog&lt;/a&gt;, &lt;a href="http://www.blogalaxia.com/tags/open+source" rel="tag"&gt;open source&lt;/a&gt;, &lt;a href="http://www.blogalaxia.com/tags/java" rel="tag"&gt;java&lt;/a&gt;&lt;br /&gt;Technorati:&lt;a href="http://technorati.com/tag/stupidzombie.com" rel="tag"&gt;stupidzombie.com&lt;/a&gt;, &lt;a href="http://technorati.com/tag/ping" rel="tag"&gt;ping&lt;/a&gt;, &lt;a href="http://technorati.com/tag/blog" rel="tag"&gt;blog&lt;/a&gt;, &lt;a href="http://technorati.com/tag/open+source" rel="tag"&gt;open source&lt;/a&gt;, &lt;a href="http://technorati.com/tag/java" rel="tag"&gt;java&lt;/a&gt;&lt;br /&gt;To2blogs:&lt;a href="http://www.to2blogs.com/tag/stupidzombie.com" rel="tag"&gt;stupidzombie.com&lt;/a&gt;, &lt;a href="http://www.to2blogs.com/tag/ping" rel="tag"&gt;ping&lt;/a&gt;, &lt;a href="http://www.to2blogs.com/tag/blog" rel="tag"&gt;blog&lt;/a&gt;, &lt;a href="http://www.to2blogs.com/tag/open+source" rel="tag"&gt;open source&lt;/a&gt;, &lt;a href="http://www.to2blogs.com/tag/java" rel="tag"&gt;java&lt;/a&gt;&lt;br /&gt;Del.icio.us:&lt;a href="http://del.icio.us/tag/stupidzombie.com" rel="tag"&gt;stupidzombie.com&lt;/a&gt;, &lt;a href="http://del.icio.us/tag/ping" rel="tag"&gt;ping&lt;/a&gt;, &lt;a href="http://del.icio.us/tag/blog" rel="tag"&gt;blog&lt;/a&gt;, &lt;a href="http://del.icio.us/tag/open+source" rel="tag"&gt;open source&lt;/a&gt;, &lt;a href="http://del.icio.us/tag/java" rel="tag"&gt;java&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;script type="text/javascript"&gt;&lt;!--
google_ad_client = "pub-2735459391089659";
/* 468x15, created 3/2/08,aviso para articulos */
google_ad_slot = "5680598537";
google_ad_width = 468;
google_ad_height = 15;
//--&gt;
&lt;/script&gt;
&lt;script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js"&gt;
&lt;/script&gt;&lt;/div&gt;</description><link>http://kodegeek.com/2008/04/no-tan-estupido-stupidzombiecom.shtml</link><author>noreply@blogger.com (KodeGeek)</author></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-14980572.post-7064436442807091801</guid><pubDate>Mon, 21 Apr 2008 00:10:00 +0000</pubDate><atom:updated>2008-04-20T20:31:13.929-04:00</atom:updated><category domain='http://www.blogger.com/atom/ns#'>open source</category><category domain='http://www.blogger.com/atom/ns#'>pingblog</category><title>PingBlog: Q.E.P.D</title><description>Todas las cosas llegan a su fin y hoy, después de mucho tiempo me decidí a matar a &lt;a href="https://sourceforge.net/projects/pinblog"&gt;PingBlog&lt;/a&gt;. Cuando comencé a trabajar en el proyecto estaba tratando de aprender cosas nuevas y creo que es hora de mover esta idea en otra dirección completamente diferente.&lt;br /&gt;&lt;br /&gt;¿Esta realmente muerto o no?&lt;br /&gt;&lt;br /&gt;Bueno, en unos días haré un anuncio aquí en el blog. Pero por ahora &lt;span style="font-style: italic;"&gt;PingBlog&lt;/span&gt; está muerto de seguro :)&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Buscar en otros sitios:&lt;br /&gt;&lt;br /&gt;Blogalaxia:&lt;a href="http://www.blogalaxia.com/tags/pingblog" rel="tag"&gt;pingblog&lt;/a&gt;, &lt;a href="http://www.blogalaxia.com/tags/open+source" rel="tag"&gt;open source&lt;/a&gt;&lt;br /&gt;Technorati:&lt;a href="http://technorati.com/tag/pingblog" rel="tag"&gt;pingblog&lt;/a&gt;, &lt;a href="http://technorati.com/tag/open+source" rel="tag"&gt;open source&lt;/a&gt;&lt;br /&gt;To2blogs:&lt;a href="http://www.to2blogs.com/tag/pingblog" rel="tag"&gt;pingblog&lt;/a&gt;, &lt;a href="http://www.to2blogs.com/tag/open+source" rel="tag"&gt;open source&lt;/a&gt;&lt;br /&gt;Del.icio.us:&lt;a href="http://del.icio.us/tag/pingblog" rel="tag"&gt;pingblog&lt;/a&gt;, &lt;a href="http://del.icio.us/tag/open+source" rel="tag"&gt;open source&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;script type="text/javascript"&gt;&lt;!--
google_ad_client = "pub-2735459391089659";
/* 468x15, created 3/2/08,aviso para articulos */
google_ad_slot = "5680598537";
google_ad_width = 468;
google_ad_height = 15;
//--&gt;
&lt;/script&gt;
&lt;script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js"&gt;
&lt;/script&gt;&lt;/div&gt;</description><link>http://kodegeek.com/2008/04/pingblog-qepd.shtml</link><author>noreply@blogger.com (KodeGeek)</author></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-14980572.post-8001025121393496767</guid><pubDate>Sat, 19 Apr 2008 23:42:00 +0000</pubDate><atom:updated>2008-04-19T19:52:10.098-04:00</atom:updated><category domain='http://www.blogger.com/atom/ns#'>mortal kombat</category><category domain='http://www.blogger.com/atom/ns#'>dc commics</category><category domain='http://www.blogger.com/atom/ns#'>subzero</category><category domain='http://www.blogger.com/atom/ns#'>worldscollide</category><category domain='http://www.blogger.com/atom/ns#'>batman</category><title>Mortal Kombat Vs DC Comics: Worlds collide</title><description>&lt;object height="350" width="425"&gt; &lt;param name="movie" value="http://www.youtube.com/v/PVwWaemMkCE"&gt;  &lt;embed src="http://www.youtube.com/v/PVwWaemMkCE" type="application/x-shockwave-flash" height="350" width="425"&gt;&lt;/embed&gt;  &lt;/object&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Y justo cuando yo creía que nunca más jugaría una versión de Mortal Kombat me consigo conque viene una en la cual Subzero, Scorpion, Superman y Batman &lt;a href="http://www.aintitcool.com/node/36454"&gt;pelean hasta la muerte&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Ya estoy salivando, y mi dinero esta gastado: &lt;a href="http://www.worldscollide.com/"&gt;Worlds Collide&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Buscar en otros sitios:&lt;br /&gt;&lt;br /&gt;Blogalaxia:&lt;a href="http://www.blogalaxia.com/tags/mortal+kombat" rel="tag"&gt;mortal kombat&lt;/a&gt;, &lt;a href="http://www.blogalaxia.com/tags/dc+commics" rel="tag"&gt;dc commics&lt;/a&gt;, &lt;a href="http://www.blogalaxia.com/tags/subzero" rel="tag"&gt;subzero&lt;/a&gt;, &lt;a href="http://www.blogalaxia.com/tags/batman" rel="tag"&gt;batman&lt;/a&gt;, &lt;a href="http://www.blogalaxia.com/tags/worldscollide" rel="tag"&gt;worldscollide&lt;/a&gt;&lt;br /&gt;Technorati:&lt;a href="http://technorati.com/tag/mortal+kombat" rel="tag"&gt;mortal kombat&lt;/a&gt;, &lt;a href="http://technorati.com/tag/dc+commics" rel="tag"&gt;dc commics&lt;/a&gt;, &lt;a href="http://technorati.com/tag/subzero" rel="tag"&gt;subzero&lt;/a&gt;, &lt;a href="http://technorati.com/tag/batman" rel="tag"&gt;batman&lt;/a&gt;, &lt;a href="http://technorati.com/tag/worldscollide" rel="tag"&gt;worldscollide&lt;/a&gt;&lt;br /&gt;To2blogs:&lt;a href="http://www.to2blogs.com/tag/mortal+kombat" rel="tag"&gt;mortal kombat&lt;/a&gt;, &lt;a href="http://www.to2blogs.com/tag/dc+commics" rel="tag"&gt;dc commics&lt;/a&gt;, &lt;a href="http://www.to2blogs.com/tag/subzero" rel="tag"&gt;subzero&lt;/a&gt;, &lt;a href="http://www.to2blogs.com/tag/batman" rel="tag"&gt;batman&lt;/a&gt;, &lt;a href="http://www.to2blogs.com/tag/worldscollide" rel="tag"&gt;worldscollide&lt;/a&gt;&lt;br /&gt;Del.icio.us:&lt;a href="http://del.icio.us/tag/mortal+kombat" rel="tag"&gt;mortal kombat&lt;/a&gt;, &lt;a href="http://del.icio.us/tag/dc+commics" rel="tag"&gt;dc commics&lt;/a&gt;, &lt;a href="http://del.icio.us/tag/subzero" rel="tag"&gt;subzero&lt;/a&gt;, &lt;a href="http://del.icio.us/tag/batman" rel="tag"&gt;batman&lt;/a&gt;, &lt;a href="http://del.icio.us/tag/worldscollide" rel="tag"&gt;worldscollide&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;script type="text/javascript"&gt;&lt;!--
google_ad_client = "pub-2735459391089659";
/* 468x15, created 3/2/08,aviso para articulos */
google_ad_slot = "5680598537";
google_ad_width = 468;
google_ad_height = 15;
//--&gt;
&lt;/script&gt;
&lt;script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js"&gt;
&lt;/script&gt;&lt;/div&gt;</description><link>http://kodegeek.com/2008/04/mortal-kombat-vs-dc-comics-worlds.shtml</link><author>noreply@blogger.com (KodeGeek)</author></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-14980572.post-7287231236558469475</guid><pubDate>Sun, 13 Apr 2008 23:07:00 +0000</pubDate><atom:updated>2008-04-13T20:10:20.044-04:00</atom:updated><category domain='http://www.blogger.com/atom/ns#'>jmx</category><category domain='http://www.blogger.com/atom/ns#'>pingblog</category><title>PingBlog: Agregandole soporte para JMX</title><description>Realmente el software no &lt;a href="http://java.sun.com/docs/books/tutorial/jmx/index.html"&gt;requiere JMX&lt;/a&gt;. Sin embargo yo estoy aprendiendo a usar el API para otros proyectos en mi trabajo, asi que me decidí a escribir un "hola mundo".&lt;br /&gt;&lt;br /&gt;En el caso de PingBlog yo queria monitorear lo que hace cada instancia de la clase abstracta Pinger, así que declare una interfaz en JMX con la cual:&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Puedo ver el estado interno de cada Pinger&lt;/li&gt;&lt;li&gt;Puedo provocar un ping para ver como se porta&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;La interfaz es trivial:&lt;br /&gt;&lt;pre&gt;&lt;a name="line1"&gt; 1&lt;/a&gt; &lt;span style="color: rgb(0, 0, 255);"&gt;&lt;strong&gt;package com.blogspot.elangelnegro.blog.pingblog.pinger;&lt;/strong&gt;&lt;/span&gt;&lt;br /&gt;&lt;a name="line2"&gt; 2&lt;/a&gt;&lt;br /&gt;&lt;a name="line3"&gt; 3&lt;/a&gt; &lt;span style="color: rgb(68, 68, 68);"&gt;&lt;i&gt;/**&lt;br /&gt;&lt;a name="line4"&gt; 4&lt;/a&gt;  * JMX management interface for Ping implementations&lt;br /&gt;&lt;a name="line5"&gt; 5&lt;/a&gt;  * @author josevnz&lt;br /&gt;&lt;a name="line6"&gt; 6&lt;/a&gt;  *&lt;br /&gt;&lt;a name="line7"&gt; 7&lt;/a&gt;  */&lt;/i&gt;&lt;/span&gt;&lt;br /&gt;&lt;a name="line8"&gt; 8&lt;/a&gt; &lt;strong&gt;public&lt;/strong&gt; &lt;strong&gt;interface&lt;/strong&gt; &lt;span style="color: rgb(32, 64, 160);"&gt;PingMBean&lt;/span&gt; &lt;span style="color: rgb(68, 68, 255);"&gt;&lt;strong&gt;{&lt;/strong&gt;&lt;/span&gt;&lt;br /&gt;&lt;a name="line9"&gt; 9&lt;/a&gt;  &lt;span style="color: rgb(68, 68, 68);"&gt;&lt;i&gt;/**&lt;br /&gt;&lt;a name="line10"&gt;10&lt;/a&gt;   * Ping a given Blog, based on the given settings.&lt;br /&gt;&lt;a name="line11"&gt;11&lt;/a&gt;   * Note than the implementation could fail if you try to ping too fast!&lt;br /&gt;&lt;a name="line12"&gt;12&lt;/a&gt;   * @return If managed to ping or not the remote resource&lt;br /&gt;&lt;a name="line13"&gt;13&lt;/a&gt;   * @throws PingException&lt;br /&gt;&lt;a name="line14"&gt;14&lt;/a&gt;   */&lt;/i&gt;&lt;/span&gt;&lt;br /&gt;&lt;a name="line15"&gt;15&lt;/a&gt;  &lt;strong&gt;public&lt;/strong&gt; &lt;strong&gt;boolean&lt;/strong&gt; &lt;span style="color: rgb(32, 64, 160);"&gt;ping&lt;/span&gt;&lt;span style="color: rgb(68, 68, 255);"&gt;&lt;strong&gt;(&lt;/strong&gt;&lt;/span&gt;&lt;span style="color: rgb(68, 68, 255);"&gt;&lt;strong&gt;)&lt;/strong&gt;&lt;/span&gt; &lt;strong&gt;throws&lt;/strong&gt; &lt;span style="color: rgb(32, 64, 160);"&gt;PingException&lt;/span&gt;&lt;span style="color: rgb(68, 68, 255);"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;a name="line16"&gt;16&lt;/a&gt;&lt;br /&gt;&lt;a name="line17"&gt;17&lt;/a&gt;  &lt;span style="color: rgb(68, 68, 68);"&gt;&lt;i&gt;/**&lt;br /&gt;&lt;a name="line18"&gt;18&lt;/a&gt;   * Get the message received from the server&lt;br /&gt;&lt;a name="line19"&gt;19&lt;/a&gt;   * @return The message returned from the remote server&lt;br /&gt;&lt;a name="line20"&gt;20&lt;/a&gt;   */&lt;/i&gt;&lt;/span&gt;&lt;br /&gt;&lt;a name="line21"&gt;21&lt;/a&gt;  &lt;strong&gt;public&lt;/strong&gt; &lt;span style="color: rgb(32, 64, 160);"&gt;String&lt;/span&gt; &lt;span style="color: rgb(32, 64, 160);"&gt;getMessage&lt;/span&gt;&lt;span style="color: rgb(68, 68, 255);"&gt;&lt;strong&gt;(&lt;/strong&gt;&lt;/span&gt;&lt;span style="color: rgb(68, 68, 255);"&gt;&lt;strong&gt;)&lt;/strong&gt;&lt;/span&gt;&lt;span style="color: rgb(68, 68, 255);"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;a name="line22"&gt;22&lt;/a&gt;&lt;br /&gt;&lt;a name="line23"&gt;23&lt;/a&gt;  &lt;span style="color: rgb(68, 68, 68);"&gt;&lt;i&gt;/**&lt;br /&gt;&lt;a name="line24"&gt;24&lt;/a&gt;   * Get the raw message received from the server&lt;br /&gt;&lt;a name="line25"&gt;25&lt;/a&gt;   * @return The message returned from the remote server&lt;br /&gt;&lt;a name="line26"&gt;26&lt;/a&gt;   */&lt;/i&gt;&lt;/span&gt;&lt;br /&gt;&lt;a name="line27"&gt;27&lt;/a&gt;  &lt;strong&gt;public&lt;/strong&gt; &lt;strong&gt;abstract&lt;/strong&gt; &lt;span style="color: rgb(32, 64, 160);"&gt;String&lt;/span&gt; &lt;span style="color: rgb(32, 64, 160);"&gt;getRawMessage&lt;/span&gt;&lt;span style="color: rgb(68, 68, 255);"&gt;&lt;strong&gt;(&lt;/strong&gt;&lt;/span&gt;&lt;span style="color: rgb(68, 68, 255);"&gt;&lt;strong&gt;)&lt;/strong&gt;&lt;/span&gt;&lt;span style="color: rgb(68, 68, 255);"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;a name="line28"&gt;28&lt;/a&gt;&lt;br /&gt;&lt;a name="line29"&gt;29&lt;/a&gt;  &lt;span style="color: rgb(68, 68, 68);"&gt;&lt;i&gt;/**&lt;br /&gt;&lt;a name="line30"&gt;30&lt;/a&gt;   * Get the name of the blog being advertised&lt;br /&gt;&lt;a name="line31"&gt;31&lt;/a&gt;   * @return Name of the directory&lt;br /&gt;&lt;a name="line32"&gt;32&lt;/a&gt;   */&lt;/i&gt;&lt;/span&gt;&lt;br /&gt;&lt;a name="line33"&gt;33&lt;/a&gt;  &lt;strong&gt;public&lt;/strong&gt; &lt;span style="color: rgb(32, 64, 160);"&gt;String&lt;/span&gt; &lt;span style="color: rgb(32, 64, 160);"&gt;getName&lt;/span&gt;&lt;span style="color: rgb(68, 68, 255);"&gt;&lt;strong&gt;(&lt;/strong&gt;&lt;/span&gt;&lt;span style="color: rgb(68, 68, 255);"&gt;&lt;strong&gt;)&lt;/strong&gt;&lt;/span&gt;&lt;span style="color: rgb(68, 68, 255);"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;a name="line34"&gt;34&lt;/a&gt;&lt;br /&gt;&lt;a name="line35"&gt;35&lt;/a&gt;  &lt;span style="color: rgb(68, 68, 68);"&gt;&lt;i&gt;/**&lt;br /&gt;&lt;a name="line36"&gt;36&lt;/a&gt;   * Get the URL of the blog being advertised&lt;br /&gt;&lt;a name="line37"&gt;37&lt;/a&gt;   * @return Name of the directory&lt;br /&gt;&lt;a name="line38"&gt;38&lt;/a&gt;   */&lt;/i&gt;&lt;/span&gt;&lt;br /&gt;&lt;a name="line39"&gt;39&lt;/a&gt;  &lt;strong&gt;public&lt;/strong&gt; &lt;span style="color: rgb(32, 64, 160);"&gt;String&lt;/span&gt; &lt;span style="color: rgb(32, 64, 160);"&gt;getUrl&lt;/span&gt;&lt;span style="color: rgb(68, 68, 255);"&gt;&lt;strong&gt;(&lt;/strong&gt;&lt;/span&gt;&lt;span style="color: rgb(68, 68, 255);"&gt;&lt;strong&gt;)&lt;/strong&gt;&lt;/span&gt;&lt;span style="color: rgb(68, 68, 255);"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;a name="line40"&gt;40&lt;/a&gt;&lt;br /&gt;&lt;a name="line41"&gt;41&lt;/a&gt;  &lt;span style="color: rgb(68, 68, 68);"&gt;&lt;i&gt;/**&lt;br /&gt;&lt;a name="line42"&gt;42&lt;/a&gt;   * Get the directory being ping&lt;br /&gt;&lt;a name="line43"&gt;43&lt;/a&gt;   * @return Name of the directory&lt;br /&gt;&lt;a name="line44"&gt;44&lt;/a&gt;   */&lt;/i&gt;&lt;/span&gt;&lt;br /&gt;&lt;a name="line45"&gt;45&lt;/a&gt;  &lt;strong&gt;public&lt;/strong&gt; &lt;span style="color: rgb(32, 64, 160);"&gt;String&lt;/span&gt; &lt;span style="color: rgb(32, 64, 160);"&gt;getDirectory&lt;/span&gt;&lt;span style="color: rgb(68, 68, 255);"&gt;&lt;strong&gt;(&lt;/strong&gt;&lt;/span&gt;&lt;span style="color: rgb(68, 68, 255);"&gt;&lt;strong&gt;)&lt;/strong&gt;&lt;/span&gt;&lt;span style="color: rgb(68, 68, 255);"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;a name="line46"&gt;46&lt;/a&gt;&lt;br /&gt;&lt;a name="line47"&gt;47&lt;/a&gt;  &lt;span style="color: rgb(68, 68, 68);"&gt;&lt;i&gt;/**&lt;br /&gt;&lt;a name="line48"&gt;48&lt;/a&gt;   * Get the status of the last ping operation&lt;br /&gt;&lt;a name="line49"&gt;49&lt;/a&gt;   * @return&lt;br /&gt;&lt;a name="line50"&gt;50&lt;/a&gt;   */&lt;/i&gt;&lt;/span&gt;&lt;br /&gt;&lt;a name="line51"&gt;51&lt;/a&gt;  &lt;strong&gt;public&lt;/strong&gt; &lt;strong&gt;boolean&lt;/strong&gt; &lt;span style="color: rgb(32, 64, 160);"&gt;getStatus&lt;/span&gt;&lt;span style="color: rgb(68, 68, 255);"&gt;&lt;strong&gt;(&lt;/strong&gt;&lt;/span&gt;&lt;span style="color: rgb(68, 68, 255);"&gt;&lt;strong&gt;)&lt;/strong&gt;&lt;/span&gt;&lt;span style="color: rgb(68, 68, 255);"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;a name="line52"&gt;52&lt;/a&gt;&lt;br /&gt;&lt;a name="line53"&gt;53&lt;/a&gt;&lt;br /&gt;&lt;a name="line54"&gt;54&lt;/a&gt; &lt;span style="color: rgb(68, 68, 255);"&gt;&lt;strong&gt;}&lt;/strong&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=""&gt;&lt;br /&gt;&lt;/span&gt;&lt;/pre&gt;La clase Ping sólo tiene que implementar la interfaz. Luego de esto lo que queda es registrar cada uno de los MBeans para que puedan ser utilizados desde Jconsole en :&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;    &lt;span style="color: rgb(32, 64, 160);"&gt;MBeanServer&lt;/span&gt; &lt;span style="color: rgb(32, 64, 160);"&gt;mbs&lt;/span&gt; &lt;span style="color: rgb(68, 68, 255);"&gt;=&lt;/span&gt; &lt;span style="color: rgb(32, 64, 160);"&gt;&lt;br /&gt;ManagementFactory&lt;/span&gt;.&lt;span style="color: rgb(32, 64, 160);"&gt;getPlatformMBeanServer&lt;/span&gt;&lt;span style="color: rgb(68, 68, 255);"&gt;&lt;strong&gt;(&lt;/strong&gt;&lt;/span&gt;&lt;span style="color: rgb(68, 68, 255);"&gt;&lt;strong&gt;)&lt;/strong&gt;&lt;/span&gt;&lt;span style="color: rgb(68, 68, 255);"&gt;;&lt;/span&gt;&lt;br /&gt;  &lt;strong&gt;try&lt;/strong&gt; &lt;span style="color: rgb(68, 68, 255);"&gt;&lt;strong&gt;{&lt;/strong&gt;&lt;/span&gt;&lt;br /&gt;   &lt;span style="color: rgb(32, 64, 160);"&gt;ObjectName&lt;/span&gt; &lt;span style="color: rgb(32, 64, 160);"&gt;mbeanName&lt;/span&gt; &lt;span style="color: rgb(68, 68, 255);"&gt;=&lt;/span&gt;&lt;br /&gt;    &lt;strong&gt;new&lt;/strong&gt; &lt;span style="color: rgb(32, 64, 160);"&gt;ObjectName&lt;/span&gt;&lt;span style="color: rgb(68, 68, 255);"&gt;&lt;strong&gt;(&lt;/strong&gt;&lt;/span&gt;&lt;br /&gt;      &lt;span style="color: rgb(32, 64, 160);"&gt;String&lt;/span&gt;.&lt;span style="color: rgb(32, 64, 160);"&gt;format&lt;/span&gt;&lt;span style="color: rgb(68, 68, 255);"&gt;&lt;strong&gt;(&lt;/strong&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 128, 0);"&gt;"com.blogspot.&lt;br /&gt;elangelnegro.blog.pingblog.pinger:type=%s"&lt;/span&gt;,&lt;br /&gt;        &lt;span style="color: rgb(32, 64, 160);"&gt;ping&lt;/span&gt;.&lt;span style="color: rgb(32, 64, 160);"&gt;getInstanceName&lt;/span&gt;&lt;span style="color: rgb(68, 68, 255);"&gt;&lt;strong&gt;(&lt;/strong&gt;&lt;/span&gt;&lt;span style="color: rgb(68, 68, 255);"&gt;&lt;strong&gt;)&lt;/strong&gt;&lt;/span&gt;&lt;span style="color: rgb(68, 68, 255);"&gt;&lt;strong&gt;)&lt;/strong&gt;&lt;/span&gt;&lt;span style="color: rgb(68, 68, 255);"&gt;&lt;strong&gt;)&lt;/strong&gt;&lt;/span&gt;&lt;span style="color: rgb(68, 68, 255);"&gt;;&lt;/span&gt;&lt;br /&gt;   &lt;span style="color: rgb(32, 64, 160);"&gt;mbs&lt;/span&gt;.&lt;span style="color: rgb(32, 64, 160);"&gt;registerMBean&lt;/span&gt;&lt;span style="color: rgb(68, 68, 255);"&gt;&lt;strong&gt;(&lt;/strong&gt;&lt;/span&gt;&lt;span style="color: rgb(32, 64, 160);"&gt;ping&lt;/span&gt;, &lt;span style="color: rgb(32, 64, 160);"&gt;mbeanName&lt;/span&gt;&lt;span style="color: rgb(68, 68, 255);"&gt;&lt;strong&gt;)&lt;/strong&gt;&lt;/span&gt;&lt;span style="color: rgb(68, 68, 255);"&gt;;&lt;/span&gt;&lt;br /&gt;  &lt;span style="color: rgb(68, 68, 255);"&gt;&lt;strong&gt;}&lt;/strong&gt;&lt;/span&gt; &lt;strong&gt;catch&lt;/strong&gt; &lt;span style="color: rgb(68, 68, 255);"&gt;&lt;strong&gt;(&lt;/strong&gt;&lt;/span&gt;&lt;span style="color: rgb(32, 64, 160);"&gt;MBeanRegistrationException&lt;/span&gt; &lt;span style="color: rgb(32, 64, 160);"&gt;mre&lt;/span&gt;&lt;span style="color: rgb(68, 68, 255);"&gt;&lt;strong&gt;)&lt;/strong&gt;&lt;/span&gt; &lt;span style="color: rgb(68, 68, 255);"&gt;&lt;strong&gt;{&lt;/strong&gt;&lt;/span&gt;&lt;br /&gt;   &lt;strong&gt;throw&lt;/strong&gt; &lt;strong&gt;new&lt;/strong&gt; &lt;span style="color: rgb(32, 64, 160);"&gt;PingException&lt;/span&gt;&lt;span style="color: rgb(68, 68, 255);"&gt;&lt;strong&gt;(&lt;/strong&gt;&lt;/span&gt;&lt;span style="color: rgb(32, 64, 160);"&gt;mre&lt;/span&gt;&lt;span style="color: rgb(68, 68, 255);"&gt;&lt;strong&gt;)&lt;/strong&gt;&lt;/span&gt;&lt;span style="color: rgb(68, 68, 255);"&gt;;&lt;/span&gt;&lt;br /&gt;  &lt;span style="color: rgb(68, 68, 255);"&gt;&lt;strong&gt;}&lt;/strong&gt;&lt;/span&gt; &lt;strong&gt;catch&lt;/strong&gt; &lt;span style="color: rgb(68, 68, 255);"&gt;&lt;strong&gt;(&lt;/strong&gt;&lt;/span&gt;&lt;span style="color: rgb(32, 64, 160);"&gt;NotCompliantMBeanException&lt;/span&gt; &lt;span style="color: rgb(32, 64, 160);"&gt;nce&lt;/span&gt;&lt;span style="color: rgb(68, 68, 255);"&gt;&lt;strong&gt;)&lt;/strong&gt;&lt;/span&gt; &lt;span style="color: rgb(68, 68, 255);"&gt;&lt;strong&gt;{&lt;/strong&gt;&lt;/span&gt;&lt;br /&gt;   &lt;strong&gt;throw&lt;/strong&gt; &lt;strong&gt;new&lt;/strong&gt; &lt;span style="color: rgb(32, 64, 160);"&gt;PingException&lt;/span&gt;&lt;span style="color: rgb(68, 68, 255);"&gt;&lt;strong&gt;(&lt;/strong&gt;&lt;/span&gt;&lt;span style="color: rgb(32, 64, 160);"&gt;nce&lt;/span&gt;&lt;span style="color: rgb(68, 68, 255);"&gt;&lt;strong&gt;)&lt;/strong&gt;&lt;/span&gt;&lt;span style="color: rgb(68, 68, 255);"&gt;;&lt;/span&gt;&lt;br /&gt;  &lt;span style="color: rgb(68, 68, 255);"&gt;&lt;strong&gt;}&lt;/strong&gt;&lt;/span&gt; &lt;strong&gt;catch&lt;/strong&gt; &lt;span style="color: rgb(68, 68, 255);"&gt;&lt;strong&gt;(&lt;/strong&gt;&lt;/span&gt;&lt;span style="color: rgb(32, 64, 160);"&gt;InstanceAlreadyExistsException&lt;/span&gt; &lt;span style="color: rgb(32, 64, 160);"&gt;iaex&lt;/span&gt;&lt;span style="color: rgb(68, 68, 255);"&gt;&lt;strong&gt;)&lt;/strong&gt;&lt;/span&gt; &lt;span style="color: rgb(68, 68, 255);"&gt;&lt;strong&gt;{&lt;/strong&gt;&lt;/span&gt;&lt;br /&gt;   &lt;strong&gt;throw&lt;/strong&gt; &lt;strong&gt;new&lt;/strong&gt; &lt;span style="color: rgb(32, 64, 160);"&gt;PingException&lt;/span&gt;&lt;span style="color: rgb(68, 68, 255);"&gt;&lt;strong&gt;(&lt;/strong&gt;&lt;/span&gt;&lt;span style="color: rgb(32, 64, 160);"&gt;iaex&lt;/span&gt;&lt;span style="color: rgb(68, 68, 255);"&gt;&lt;strong&gt;)&lt;/strong&gt;&lt;/span&gt;&lt;span style="color: rgb(68, 68, 255);"&gt;;&lt;/span&gt;&lt;br /&gt;  &lt;span style="color: rgb(68, 68, 255);"&gt;&lt;strong&gt;}&lt;/strong&gt;&lt;/span&gt; &lt;strong&gt;catch&lt;/strong&gt; &lt;span style="color: rgb(68, 68, 255);"&gt;&lt;strong&gt;(&lt;/strong&gt;&lt;/span&gt;&lt;span style="color: rgb(32, 64, 160);"&gt;MalformedObjectNameException&lt;/span&gt; &lt;span style="color: rgb(32, 64, 160);"&gt;mne&lt;/span&gt;&lt;span style="color: rgb(68, 68, 255);"&gt;&lt;strong&gt;)&lt;/strong&gt;&lt;/span&gt; &lt;span style="color: rgb(68, 68, 255);"&gt;&lt;strong&gt;{&lt;/strong&gt;&lt;/span&gt;&lt;br /&gt;   &lt;strong&gt;throw&lt;/strong&gt; &lt;strong&gt;new&lt;/strong&gt; &lt;span style="color: rgb(32, 64, 160);"&gt;PingException&lt;/span&gt;&lt;span style="color: rgb(68, 68, 255);"&gt;&lt;strong&gt;(&lt;/strong&gt;&lt;/span&gt;&lt;span style="color: rgb(32, 64, 160);"&gt;mne&lt;/span&gt;&lt;span style="color: rgb(68, 68, 255);"&gt;&lt;strong&gt;)&lt;/strong&gt;&lt;/span&gt;&lt;span style="color: rgb(68, 68, 255);"&gt;;&lt;/span&gt;&lt;br /&gt;  &lt;span style="color: rgb(68, 68, 255);"&gt;&lt;strong&gt;}&lt;/strong&gt;&lt;/span&gt;&lt;br /&gt; &lt;span style="color: rgb(68, 68, 255);"&gt;&lt;strong&gt;}&lt;/strong&gt;&lt;/span&gt; &lt;strong&gt;catch&lt;/strong&gt; &lt;span style="color: rgb(68, 68, 255);"&gt;&lt;strong&gt;(&lt;/strong&gt;&lt;/span&gt;&lt;span style="color: rgb(32, 64, 160);"&gt;PingException&lt;/span&gt; &lt;span style="color: rgb(32, 64, 160);"&gt;pExp&lt;/span&gt;&lt;span style="color: rgb(68, 68, 255);"&gt;&lt;strong&gt;)&lt;/strong&gt;&lt;/span&gt; &lt;span style="color: rgb(68, 68, 255);"&gt;&lt;strong&gt;{&lt;/strong&gt;&lt;/span&gt;&lt;br /&gt;  &lt;strong&gt;throw&lt;/strong&gt; &lt;span style="color: rgb(32, 64, 160);"&gt;pExp&lt;/span&gt;&lt;span style="color: rgb(68, 68, 255);"&gt;;&lt;/span&gt;&lt;br /&gt; &lt;span style="color: rgb(68, 68, 255);"&gt;&lt;strong&gt;}&lt;/strong&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt; &lt;strong&gt;return&lt;/strong&gt; &lt;span style="color: rgb(32, 64, 160);"&gt;ping&lt;/span&gt;&lt;span style="color: rgb(68, 68, 255);"&gt;;&lt;/span&gt;&lt;/pre&gt;&lt;br /&gt;También le agregué lo siguiente al Shell Script que llama a la clase de Java (cuando es usado desde la linea de comandos y no la interfaz gráfica):&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;exec &lt;span style="color: rgb(32, 64, 160);"&gt;$J&lt;/span&gt;AVA_HOME/bin/java -cp &lt;span style="color: rgb(32, 64, 160);"&gt;$C&lt;/span&gt;LASSPATH&lt;br /&gt;-Dcom.sun.management.jmxremote&lt;br /&gt;com.blogspot.elangelnegro.blog.pingblog.pinger.PingController &lt;span style="color: rgb(64, 128, 255);"&gt;$*&lt;/span&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;Buscar en otros sitios:&lt;br /&gt;&lt;br /&gt;Blogalaxia:&lt;a href="http://www.blogalaxia.com/tags/pingblog" rel="tag"&gt;pingblog&lt;/a&gt;, &lt;a href="http://www.blogalaxia.com/tags/jmx" rel="tag"&gt;jmx&lt;/a&gt;&lt;br /&gt;Technorati:&lt;a href="http://technorati.com/tag/pingblog" rel="tag"&gt;pingblog&lt;/a&gt;, &lt;a href="http://technorati.com/tag/jmx" rel="tag"&gt;jmx&lt;/a&gt;&lt;br /&gt;To2blogs:&lt;a href="http://www.to2blogs.com/tag/pingblog" rel="tag"&gt;pingblog&lt;/a&gt;, &lt;a href="http://www.to2blogs.com/tag/jmx" rel="tag"&gt;jmx&lt;/a&gt;&lt;br /&gt;Del.icio.us:&lt;a href="http://del.icio.us/tag/pingblog" rel="tag"&gt;pingblog&lt;/a&gt;, &lt;a href="http://del.icio.us/tag/jmx" rel="tag"&gt;jmx&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;script type="text/javascript"&gt;&lt;!--
google_ad_client = "pub-2735459391089659";
/* 468x15, created 3/2/08,aviso para articulos */
google_ad_slot = "5680598537";
google_ad_width = 468;
google_ad_height = 15;
//--&gt;
&lt;/script&gt;
&lt;script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js"&gt;
&lt;/script&gt;&lt;/div&gt;</description><link>http://kodegeek.com/2008/04/pingblog-agregandole-soporte-para-jmx.shtml</link><author>noreply@blogger.com (KodeGeek)</author></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-14980572.post-9073611003179683613</guid><pubDate>Fri, 11 Apr 2008 21:12:00 +0000</pubDate><atom:updated>2008-04-11T17:28:19.255-04:00</atom:updated><category domain='http://www.blogger.com/atom/ns#'>appleseed</category><category domain='http://www.blogger.com/atom/ns#'>ex machina</category><category domain='http://www.blogger.com/atom/ns#'>manga</category><title>Appleseed Ex Machina: Cuando la segunda parte es mejor que la primera</title><description>En el 2005 les comentaba &lt;a href="http://elangelnegro.blogspot.com/2005/01/opinin-de-pelicula-appleseed-el-futuro.html"&gt;sobre Appleseed, la pelicula&lt;/a&gt; y de como me impactaron sus gráficos por computadora, lo fluido de su acción y lo interesante de su trama.&lt;br /&gt;&lt;br /&gt;La pelicula del 2004 fué un exito y en mi opinión perfecta, así que cuando vi que Netflix ofrecía una versión nueva me entró panico:&lt;br /&gt;&lt;br /&gt;¿Seria una versión mal hecha como las múltiples versiones de Ghost in the Shell?&lt;br /&gt;&lt;br /&gt;&lt;a href="http://en.wikipedia.org/wiki/Appleseed_Ex_Machina"&gt;Applessed Ex Machina&lt;/a&gt; continua la historia de nuestros dos heroes, Briareos y  Deunan. De nuevo la trama no decepciona, los gráficos por computadora son mucho mejores que la primera pelicula (¿es eso posible?), la acción dirigida por John Woo tiene su firma.&lt;br /&gt;&lt;br /&gt;La pelicula es todo un espectaculo. Si tiene la oportunidad, trate de verla. Para aquellos que ya la vieron, los invito a discutir, hay muchisimos puntos interesantes y preguntas :)&lt;br /&gt;&lt;br /&gt;Buscar en otros sitios:&lt;br /&gt;&lt;br /&gt;Blogalaxia:&lt;a href="http://www.blogalaxia.com/tags/appleseed" rel="tag"&gt;appleseed&lt;/a&gt;, &lt;a href="http://www.blogalaxia.com/tags/ex+machina" rel="tag"&gt;ex machina&lt;/a&gt;, &lt;a href="http://www.blogalaxia.com/tags/manga" rel="tag"&gt;manga&lt;/a&gt;&lt;br /&gt;Technorati:&lt;a href="http://technorati.com/tag/appleseed" rel="tag"&gt;appleseed&lt;/a&gt;, &lt;a href="http://technorati.com/tag/ex+machina" rel="tag"&gt;ex machina&lt;/a&gt;, &lt;a href="http://technorati.com/tag/manga" rel="tag"&gt;manga&lt;/a&gt;&lt;br /&gt;To2blogs:&lt;a href="http://www.to2blogs.com/tag/appleseed" rel="tag"&gt;appleseed&lt;/a&gt;, &lt;a href="http://www.to2blogs.com/tag/ex+machina" rel="tag"&gt;ex machina&lt;/a&gt;, &lt;a href="http://www.to2blogs.com/tag/manga" rel="tag"&gt;manga&lt;/a&gt;&lt;br /&gt;Del.icio.us:&lt;a href="http://del.icio.us/tag/appleseed" rel="tag"&gt;appleseed&lt;/a&gt;, &lt;a href="http://del.icio.us/tag/ex+machina" rel="tag"&gt;ex machina&lt;/a&gt;, &lt;a href="http://del.icio.us/tag/manga" rel="tag"&gt;manga&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;script type="text/javascript"&gt;&lt;!--
google_ad_client = "pub-2735459391089659";
/* 468x15, created 3/2/08,aviso para articulos */
google_ad_slot = "5680598537";
google_ad_width = 468;
google_ad_height = 15;
//--&gt;
&lt;/script&gt;
&lt;script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js"&gt;
&lt;/script&gt;&lt;/div&gt;</description><link>http://kodegeek.com/2008/04/appleseed-ex-machina-cuando-la-segunda.shtml</link><author>noreply@blogger.com (KodeGeek)</author></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-14980572.post-7865528670662001128</guid><pubDate>Thu, 10 Apr 2008 10:54:00 +0000</pubDate><atom:updated>2008-04-10T07:20:28.683-04:00</atom:updated><category domain='http://www.blogger.com/atom/ns#'>bash</category><category domain='http://www.blogger.com/atom/ns#'>job control</category><category domain='http://www.blogger.com/atom/ns#'>subshell</category><title>Cuando Shell no es suficiente: Subshell</title><description>OK, un pequeño ejercicio para el lector: Suponga que tenemos 5 tareas que toman bastante tiempo en completar:&lt;br /&gt;&lt;br /&gt;&lt;ol&gt;&lt;li&gt;slowRubyScriptA&lt;/li&gt;&lt;li&gt;slowRubyScriptB&lt;/li&gt;&lt;li&gt;slowRubyScriptC&lt;/li&gt;&lt;li&gt;slowRubyScriptD&lt;/li&gt;&lt;li&gt;slowRubyScriptE&lt;/li&gt;&lt;li&gt;slowRubyScriptF&lt;/li&gt;&lt;/ol&gt;  &lt;br /&gt;Y deben correr en el siguiente orden:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;B,C dependende de A&lt;/li&gt;&lt;li&gt;D depende de C,B&lt;/li&gt;&lt;li&gt;E,F tardan mucho más que los demás y no dependen de nadie&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;Una forma de hacerlo es:&lt;br /&gt;&lt;pre&gt;&lt;a name="line1"&gt; &lt;/a&gt;&lt;blockquote&gt;&lt;a name="line1"&gt;1&lt;/a&gt; #!/bin/bash&lt;br /&gt;&lt;a name="line2"&gt; 2&lt;/a&gt; (&lt;br /&gt;&lt;a name="line3"&gt; 3&lt;/a&gt; (&lt;br /&gt;&lt;a name="line4"&gt; 4&lt;/a&gt; slowRubyScriptA&lt;br /&gt;&lt;a name="line5"&gt; 5&lt;/a&gt; slowRubyScriptB &amp;amp;&lt;br /&gt;&lt;a name="line6"&gt; 6&lt;/a&gt; slowRubyScriptC &amp;amp;&lt;br /&gt;&lt;a name="line7"&gt; 7&lt;/a&gt; ) &amp;amp;&lt;br /&gt;&lt;a name="line8"&gt; 8&lt;/a&gt; wait&lt;br /&gt;&lt;a name="line9"&gt; 9&lt;/a&gt; slowRubyScriptD&lt;br /&gt;&lt;a name="line10"&gt;10&lt;/a&gt; ) &amp;amp;&lt;br /&gt;&lt;a name="line11"&gt;11&lt;/a&gt;&lt;br /&gt;&lt;a name="line12"&gt;12&lt;/a&gt; slowRubyScriptE &amp;amp;&lt;br /&gt;&lt;a name="line13"&gt;13&lt;/a&gt; slowRubyScriptF &amp;amp;&lt;br /&gt;&lt;a name="line14"&gt;14&lt;/a&gt; wait&lt;br /&gt;&lt;a name="line15"&gt;15&lt;/a&gt; echo "All done"&lt;/blockquote&gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;Si, el ejemplo no es muy útil pero muestra una caracteristica muy útil de Bash y otros Shell: El uso de &lt;span style="font-style: italic;"&gt;Subshells&lt;/span&gt;. Fijese como no hubo necesidad de escribir otro script adicional para arrancar nuestros comandos.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Buscar en otros sitios:&lt;br /&gt;Blogalaxia:&lt;a href="http://www.blogalaxia.com/tags/bash" rel="tag"&gt;bash&lt;/a&gt;, &lt;a href="http://www.blogalaxia.com/tags/subshell" rel="tag"&gt;subshell&lt;/a&gt;, &lt;a href="http://www.blogalaxia.com/tags/job+control" rel="tag"&gt;job control&lt;/a&gt;&lt;br /&gt;Technorati:&lt;a href="http://technorati.com/tag/bash" rel="tag"&gt;bash&lt;/a&gt;, &lt;a href="http://technorati.com/tag/subshell" rel="tag"&gt;subshell&lt;/a&gt;, &lt;a href="http://technorati.com/tag/job+control" rel="tag"&gt;job control&lt;/a&gt;&lt;br /&gt;To2blogs:&lt;a href="http://www.to2blogs.com/tag/bash" rel="tag"&gt;bash&lt;/a&gt;, &lt;a href="http://www.to2blogs.com/tag/subshell" rel="tag"&gt;subshell&lt;/a&gt;, &lt;a href="http://www.to2blogs.com/tag/job+control" rel="tag"&gt;job control&lt;/a&gt;&lt;br /&gt;Del.icio.us:&lt;a href="http://del.icio.us/tag/bash" rel="tag"&gt;bash&lt;/a&gt;, &lt;a href="http://del.icio.us/tag/subshell" rel="tag"&gt;subshell&lt;/a&gt;, &lt;a href="http://del.icio.us/tag/job+control" rel="tag"&gt;job control&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;script type="text/javascript"&gt;&lt;!--
google_ad_client = "pub-2735459391089659";
/* 468x15, created 3/2/08,aviso para articulos */
google_ad_slot = "5680598537";
google_ad_width = 468;
google_ad_height = 15;
//--&gt;
&lt;/script&gt;
&lt;script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js"&gt;
&lt;/script&gt;&lt;/div&gt;</description><link>http://kodegeek.com/2008/04/cuando-shell-no-es-suficiente-subshell.shtml</link><author>noreply@blogger.com (KodeGeek)</author></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-14980572.post-1568200390599995751</guid><pubDate>Sun, 06 Apr 2008 17:50:00 +0000</pubDate><atom:updated>2008-04-06T13:54:37.912-04:00</atom:updated><category domain='http://www.blogger.com/atom/ns#'>go nagai</category><category domain='http://www.blogger.com/atom/ns#'>transor z</category><category domain='http://www.blogger.com/atom/ns#'>mazinger z</category><title>Mazinger Z en la red</title><description>&lt;a href="http://www.flickr.com/photos/josevnz/28642785/" title="Mazinger Z by josevnz, on Flickr"&gt;&lt;img src="http://farm1.static.flickr.com/21/28642785_8df667983e.jpg" alt="Mazinger Z" height="500" width="375" /&gt;&lt;br /&gt;Mazinger Z&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;La fiebre de Mazinger Z no disminuye, sino al contrario sigue creciendo. Ahora con su grupo en &lt;a href="http://www.facebook.com/pages/Mazinger/10637918778"&gt;Facebook&lt;/a&gt; y el grupo de fotos en &lt;a href="http://www.flickr.com/groups/mazinger/"&gt;Flickr&lt;/a&gt;, tenemos un sitio en común en donde compartir acerca del iconico robot.&lt;br /&gt;&lt;br /&gt;Mazinger go!&lt;br /&gt;&lt;br /&gt;Buscar en otros sitios:&lt;br /&gt;&lt;br /&gt;Blogalaxia:&lt;a href="http://www.blogalaxia.com/tags/mazinger+z" rel="tag"&gt;mazinger z&lt;/a&gt;, &lt;a href="http://www.blogalaxia.com/tags/transor+z" rel="tag"&gt;transor z&lt;/a&gt;, &lt;a href="http://www.blogalaxia.com/tags/go+nagai" rel="tag"&gt;go nagai&lt;/a&gt;&lt;br /&gt;Technorati:&lt;a href="http://technorati.com/tag/mazinger+z" rel="tag"&gt;mazinger z&lt;/a&gt;, &lt;a href="http://technorati.com/tag/transor+z" rel="tag"&gt;transor z&lt;/a&gt;, &lt;a href="http://technorati.com/tag/go+nagai" rel="tag"&gt;go nagai&lt;/a&gt;&lt;br /&gt;To2blogs:&lt;a href="http://www.to2blogs.com/tag/mazinger+z" rel="tag"&gt;mazinger z&lt;/a&gt;, &lt;a href="http://www.to2blogs.com/tag/transor+z" rel="tag"&gt;transor z&lt;/a&gt;, &lt;a href="http://www.to2blogs.com/tag/go+nagai" rel="tag"&gt;go nagai&lt;/a&gt;&lt;br /&gt;Del.icio.us:&lt;a href="http://del.icio.us/tag/mazinger+z" rel="tag"&gt;mazinger z&lt;/a&gt;, &lt;a href="http://del.icio.us/tag/transor+z" rel="tag"&gt;transor z&lt;/a&gt;, &lt;a href="http://del.icio.us/tag/go+nagai" rel="tag"&gt;go nagai&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;script type="text/javascript"&gt;&lt;!--
google_ad_client = "pub-2735459391089659";
/* 468x15, created 3/2/08,aviso para articulos */
google_ad_slot = "5680598537";
google_ad_width = 468;
google_ad_height = 15;
//--&gt;
&lt;/script&gt;
&lt;script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js"&gt;
&lt;/script&gt;&lt;/div&gt;</description><link>http://kodegeek.com/2008/04/mazinger-z-en-la-red.shtml</link><author>noreply@blogger.com (KodeGeek)</author></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-14980572.post-3410421245148525821</guid><pubDate>Sun, 30 Mar 2008 02:43:00 +0000</pubDate><atom:updated>2008-03-29T22:48:07.670-04:00</atom:updated><category domain='http://www.blogger.com/atom/ns#'>java</category><category domain='http://www.blogger.com/atom/ns#'>html to rss</category><category domain='http://www.blogger.com/atom/ns#'>rome</category><category domain='http://www.blogger.com/atom/ns#'>globovision</category><title>Mejoras al RSS de Globovision</title><description>Bueno, he estado MUY ocupado debido a lo movido que ha estado el mercado de opciones estas últimas 3 semanas (incluyendo la caida estrepitosa de Bearn Sterns). Sin embargo hoy corregí un par de errores en el archivo de Ant y al fin monté la primera versión en Java del convertido de HTML a RSS de Globovisión (en un &lt;a href="http://kodegeek.com/2009/03/rss-de-globovision-est-roto-ii-java-al.shtml"&gt;articulo anterior&lt;/a&gt; les mostraba el código y porqué me decidí a escribirlo).&lt;br /&gt;&lt;br /&gt;La versión de Perl quedará en la historia :)&lt;br /&gt;&lt;br /&gt;Buscar en otros sitios:&lt;br /&gt;&lt;br /&gt;Blogalaxia:&lt;a href="http://www.blogalaxia.com/tags/globovision" rel="tag"&gt;globovision&lt;/a&gt;, &lt;a href="http://www.blogalaxia.com/tags/html+to+rss" rel="tag"&gt;html to rss&lt;/a&gt;, &lt;a href="http://www.blogalaxia.com/tags/java" rel="tag"&gt;java&lt;/a&gt;, &lt;a href="http://www.blogalaxia.com/tags/rome" rel="tag"&gt;rome&lt;/a&gt;&lt;br /&gt;Technorati:&lt;a href="http://technorati.com/tag/globovision" rel="tag"&gt;globovision&lt;/a&gt;, &lt;a href="http://technorati.com/tag/html+to+rss" rel="tag"&gt;html to rss&lt;/a&gt;, &lt;a href="http://technorati.com/tag/java" rel="tag"&gt;java&lt;/a&gt;, &lt;a href="http://technorati.com/tag/rome" rel="tag"&gt;rome&lt;/a&gt;&lt;br /&gt;To2blogs:&lt;a href="http://www.to2blogs.com/tag/globovision" rel="tag"&gt;globovision&lt;/a&gt;, &lt;a href="http://www.to2blogs.com/tag/html+to+rss" rel="tag"&gt;html to rss&lt;/a&gt;, &lt;a href="http://www.to2blogs.com/tag/java" rel="tag"&gt;java&lt;/a&gt;, &lt;a href="http://www.to2blogs.com/tag/rome" rel="tag"&gt;rome&lt;/a&gt;&lt;br /&gt;Del.icio.us:&lt;a href="http://del.icio.us/tag/globovision" rel="tag"&gt;globovision&lt;/a&gt;, &lt;a href="http://del.icio.us/tag/html+to+rss" rel="tag"&gt;html to rss&lt;/a&gt;, &lt;a href="http://del.icio.us/tag/java" rel="tag"&gt;java&lt;/a&gt;, &lt;a href="http://del.icio.us/tag/rome" rel="tag"&gt;rome&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;script type="text/javascript"&gt;&lt;!--
google_ad_client = "pub-2735459391089659";
/* 468x15, created 3/2/08,aviso para articulos */
google_ad_slot = "5680598537";
google_ad_width = 468;
google_ad_height = 15;
//--&gt;
&lt;/script&gt;
&lt;script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js"&gt;
&lt;/script&gt;&lt;/div&gt;</description><link>http://kodegeek.com/2008/03/mejoras-al-rss-de-globovision.shtml</link><author>noreply@blogger.com (KodeGeek)</author></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-14980572.post-2572323722581851011</guid><pubDate>Sat, 15 Mar 2008 14:19:00 +0000</pubDate><atom:updated>2008-03-15T20:50:30.706-04:00</atom:updated><category domain='http://www.blogger.com/atom/ns#'>pkill</category><category domain='http://www.blogger.com/atom/ns#'>bash</category><category domain='http://www.blogger.com/atom/ns#'>kill -9</category><category domain='http://www.blogger.com/atom/ns#'>ssh</category><title>Trucos UNIX: ¿Como matar todos los procesos de un usuario?</title><description>Bueno, si usted tiene un montón de servidores a los cuales se puede conectar con SSH y lo quiere es matar todos los procesos de un usuario en particular, entonces puede usar algo como esto:&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;&lt;a name="line1"&gt;1&lt;/a&gt; &lt;span style="color: rgb(0, 0, 255);"&gt;&lt;strong&gt;#!/bin/bash&lt;/strong&gt;&lt;/span&gt;&lt;br /&gt;&lt;a name="line2"&gt;2&lt;/a&gt; for machine in `cat myhostfile`; do&lt;br /&gt;&lt;a name="line3"&gt;3&lt;/a&gt;     ssh -x -q -f &lt;span style="color: rgb(32, 64, 160);"&gt;$machine&lt;/span&gt; &lt;span style="color: rgb(0, 128, 0);"&gt;"/usr/bin/pkill -9 -U myuser"&lt;/span&gt;&lt;br /&gt;&lt;a name="line4"&gt;4&lt;/a&gt; done&lt;br /&gt;&lt;/pre&gt;Funciona bajo Solaris 7 o superior y Linux. OS X por supuesto no lo tiene :(&lt;br /&gt;&lt;br /&gt;Buscar en otros sitios:&lt;br /&gt;&lt;br /&gt;Blogalaxia:&lt;a href="http://www.blogalaxia.com/tags/pkill" rel="tag"&gt;pkill&lt;/a&gt;, &lt;a href="http://www.blogalaxia.com/tags/bash" rel="tag"&gt;bash&lt;/a&gt;, &lt;a href="http://www.blogalaxia.com/tags/ssh" rel="tag"&gt;ssh&lt;/a&gt;, &lt;a href="http://www.blogalaxia.com/tags/kill+-9" rel="tag"&gt;kill -9&lt;/a&gt;&lt;br /&gt;Technorati:&lt;a href="http://technorati.com/tag/pkill" rel="tag"&gt;pkill&lt;/a&gt;, &lt;a href="http://technorati.com/tag/bash" rel="tag"&gt;bash&lt;/a&gt;, &lt;a href="http://technorati.com/tag/ssh" rel="tag"&gt;ssh&lt;/a&gt;, &lt;a href="http://technorati.com/tag/kill+-9" rel="tag"&gt;kill -9&lt;/a&gt;&lt;br /&gt;To2blogs:&lt;a href="http://www.to2blogs.com/tag/pkill" rel="tag"&gt;pkill&lt;/a&gt;, &lt;a href="http://www.to2blogs.com/tag/bash" rel="tag"&gt;bash&lt;/a&gt;, &lt;a href="http://www.to2blogs.com/tag/ssh" rel="tag"&gt;ssh&lt;/a&gt;, &lt;a href="http://www.to2blogs.com/tag/kill+-9" rel="tag"&gt;kill -9&lt;/a&gt;&lt;br /&gt;Del.icio.us:&lt;a href="http://del.icio.us/tag/pkill" rel="tag"&gt;pkill&lt;/a&gt;, &lt;a href="http://del.icio.us/tag/bash" rel="tag"&gt;bash&lt;/a&gt;, &lt;a href="http://del.icio.us/tag/ssh" rel="tag"&gt;ssh&lt;/a&gt;, &lt;a href="http://del.icio.us/tag/kill+-9" rel="tag"&gt;kill -9&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;script type="text/javascript"&gt;&lt;!--
google_ad_client = "pub-2735459391089659";
/* 468x15, created 3/2/08,aviso para articulos */
google_ad_slot = "5680598537";
google_ad_width = 468;
google_ad_height = 15;
//--&gt;
&lt;/script&gt;
&lt;script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js"&gt;
&lt;/script&gt;&lt;/div&gt;</description><link>http://kodegeek.com/2008/03/trucos-unix-como-matar-todos-los.shtml</link><author>noreply@blogger.com (KodeGeek)</author></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-14980572.post-1331369638498146245</guid><pubDate>Wed, 12 Mar 2008 14:37:00 +0000</pubDate><atom:updated>2008-03-12T22:40:15.348-04:00</atom:updated><category domain='http://www.blogger.com/atom/ns#'>java</category><category domain='http://www.blogger.com/atom/ns#'>jruby</category><category domain='http://www.blogger.com/atom/ns#'>jython</category><category domain='http://www.blogger.com/atom/ns#'>jperl</category><category domain='http://www.blogger.com/atom/ns#'>beanshell</category><title>¡Java es el nuevo Perl!</title><description>¿Java es el nuevo Perl?. ¿Será porque está muerto? No, todo lo contrario, gracias a &lt;strike&gt;scripting languajes&lt;/strike&gt; lenguajes interpretados Java sigue creciendo en direcciones muy diversas.&lt;br /&gt;&lt;br /&gt;Quiero empezar este pequeño análisis diciendo que &lt;span style="font-style: italic;"&gt;yo adoro Perl&lt;/span&gt;; Yo lo aprendí por mi cuenta (si, para ese entonces no habían cursos de Perl y quizas el único manual autorizado era el libro del camello de O'Reilly). La versatilidad del lenguaje, la cantidad de librerías en CPAN y la enorme cantidad de código y ejemplos de como resolver problemas en la Internet lo hicieron el favorito.&lt;br /&gt;&lt;br /&gt;Pero vamos a estar claros: Perl lleva años en el abandono. El modelo de "threads" es un fastidio, la orientación a objetos en Perl si bien no es difícil tiene varias diferencias comparada con otros lenguajes (y por ende es más difícil de aprender en mi opinión, al menos que a usted no le cause picazón el "bless") pero sobre todo, &lt;a href="http://www.parrotcode.org/"&gt;Parrot&lt;/a&gt; (el nuevo interprete de Perl 6) no termina de salir a la luz publica.&lt;br /&gt;&lt;br /&gt;Y entonces viene Java con su soporte a lenguajes interpretados como Python (&lt;a href="http://www.jython.org/Project/index.html"&gt;Jython&lt;/a&gt;), Ruby (&lt;a href="http://jruby.codehaus.org/"&gt;JRuby&lt;/a&gt;) y sus lenguajes con merito propio como &lt;a href="http://www.beanshell.org/"&gt;BeanShel&lt;/a&gt;l y&lt;a href="http://groovy.codehaus.org/"&gt; Groovy&lt;/a&gt;. Sin embargo nadie ha escrito un &lt;span style="font-style: italic;"&gt;JPerl&lt;/span&gt;.&lt;br /&gt;&lt;br /&gt;Mi tiempo es muy limitado estos días (trabajo, un niño pequeño) como para ponerme a inventar a aprender un lenguaje exótico el cual nunca voy a utilizar o sacar algún provecho; Sin embargo (y gracias a Java) he podido jugar con Jython en mi trabajo aprovechando código que ya tenemos escrito en Java mientras hago las mismas cosas que hubiera hecho en Perl. Por otro lado, tenemos ya código escrito en BeanShell lo cual significa que yo no seré el único en mi grupo que puede mantener el código.&lt;br /&gt;&lt;br /&gt;Es muy interesante la experiencia, ya que por ejemplo aún sin saber la sintaxis completa de Python puedo resolver problemas ya que puedo importar clases de Java y utilizar sus funcionalidades. Si, es una muleta pero a la vez mantiene la productividad y me permite aprender el lenguaje al mismo tiempo. El mismo argumento va para JRuby.&lt;br /&gt;&lt;br /&gt;¿Jython vs. JRuby en mi oficina? Bueno, Python se ve interesante, pero como dijo un PHD de mi grupo, "a quien se le ocurre utilizar un lenguaje que utiliza identación para definir alcance". También tuve problemas cuando traté de importar el modulo de expresiones regulares (import re).&lt;br /&gt;&lt;br /&gt;¿Porque no un &lt;a href="http://www.ddj.com/windows/184410852"&gt;JPerl&lt;/a&gt; (no como el paquete JPerl, escrito en C++)? Quizas es la sintaxis, aunque &lt;a href="http://www.perl.org.il/pipermail/perl/2008-January/009361.html"&gt;no soy el primero&lt;/a&gt; que se hace la misma pregunta.&lt;br /&gt;&lt;br /&gt;En fin, parece ser que la decisión de que usar como scripting languages en Java se reduce en mi caso a:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Beanshell: No tiene curva de aprendizaje comparado con Jython, JRuby, además de que va a ser parte del JDK en un futuro no muy lejano (estandar de Java)&lt;br /&gt;&lt;/li&gt;&lt;li&gt;JRuby: Más popular que Python (gracias a Rails). Y no usa identación como loco :)&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;Lo siento Perl. Pero Parrot te mató y le mundo se sigue moviendo. Por ahora, tu futuro está en la misma liga que el Kernel de &lt;a href="http://www.gnu.org/software/hurd/hurd.html"&gt;GNU Hurd&lt;/a&gt; (el cual existe  y a nadie le vale un bledo :)).&lt;br /&gt;&lt;br /&gt;Buscar en otros sitios:&lt;br /&gt;&lt;br /&gt;Blogalaxia:&lt;a href="http://www.blogalaxia.com/tags/java" rel="tag"&gt;java&lt;/a&gt;, &lt;a href="http://www.blogalaxia.com/tags/jperl" rel="tag"&gt;jperl&lt;/a&gt;, &lt;a href="http://www.blogalaxia.com/tags/jruby" rel="tag"&gt;jruby&lt;/a&gt;, &lt;a href="http://www.blogalaxia.com/tags/jython" rel="tag"&gt;jython&lt;/a&gt;, &lt;a href="http://www.blogalaxia.com/tags/beanshell" rel="tag"&gt;beanshell&lt;/a&gt;&lt;br /&gt;Technorati:&lt;a href="http://technorati.com/tag/java" rel="tag"&gt;java&lt;/a&gt;, &lt;a href="http://technorati.com/tag/jperl" rel="tag"&gt;jperl&lt;/a&gt;, &lt;a href="http://technorati.com/tag/jruby" rel="tag"&gt;jruby&lt;/a&gt;, &lt;a href="http://technorati.com/tag/jython" rel="tag"&gt;jython&lt;/a&gt;, &lt;a href="http://technorati.com/tag/beanshell" rel="tag"&gt;beanshell&lt;/a&gt;&lt;br /&gt;To2blogs:&lt;a href="http://www.to2blogs.com/tag/java" rel="tag"&gt;java&lt;/a&gt;, &lt;a href="http://www.to2blogs.com/tag/jperl" rel="tag"&gt;jperl&lt;/a&gt;, &lt;a href="http://www.to2blogs.com/tag/jruby" rel="tag"&gt;jruby&lt;/a&gt;, &lt;a href="http://www.to2blogs.com/tag/jython" rel="tag"&gt;jython&lt;/a&gt;, &lt;a href="http://www.to2blogs.com/tag/beanshell" rel="tag"&gt;beanshell&lt;/a&gt;&lt;br /&gt;Del.icio.us:&lt;a href="http://del.icio.us/tag/java" rel="tag"&gt;java&lt;/a&gt;, &lt;a href="http://del.icio.us/tag/jperl" rel="tag"&gt;jperl&lt;/a&gt;, &lt;a href="http://del.icio.us/tag/jruby" rel="tag"&gt;jruby&lt;/a&gt;, &lt;a href="http://del.icio.us/tag/jython" rel="tag"&gt;jython&lt;/a&gt;, &lt;a href="http://del.icio.us/tag/beanshell" rel="tag"&gt;beanshell&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;script type="text/javascript"&gt;&lt;!--
google_ad_client = "pub-2735459391089659";
/* 468x15, created 3/2/08,aviso para articulos */
google_ad_slot = "5680598537";
google_ad_width = 468;
google_ad_height = 15;
//--&gt;
&lt;/script&gt;
&lt;script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js"&gt;
&lt;/script&gt;&lt;/div&gt;</description><link>http://kodegeek.com/2008/03/java-es-el-nuevo-perl.shtml</link><author>noreply@blogger.com (KodeGeek)</author></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-14980572.post-2939904100376376847</guid><pubDate>Mon, 10 Mar 2008 02:00:00 +0000</pubDate><atom:updated>2008-03-13T07:10:10.089-04:00</atom:updated><category domain='http://www.blogger.com/atom/ns#'>XML::RSS</category><category domain='http://www.blogger.com/atom/ns#'>java</category><category domain='http://www.blogger.com/atom/ns#'>Lunar Pages</category><category domain='http://www.blogger.com/atom/ns#'>HTMLEditorKit</category><category domain='http://www.blogger.com/atom/ns#'>perl</category><title>RSS de Globovision está roto II: Java al rescate</title><description>Bueno, &lt;a href="http://kodegeek.com/2008/03/rss-de-globovision-est-roto-i.shtml"&gt;varias horas después y sin respuesta de Lunar Pages&lt;/a&gt;, me decidí a reescribir el programa usando Java. Lo primero que intenté fue tratar de procesar la página de noticias de Globovision.com, pero quienes hicieron el código del sitio Web simplemente no saben de programación &lt;span style="font-style: italic;"&gt;HTML&lt;/span&gt;, y el daño es demasiado para el ya sensible JTidy:&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;line 15 column 1 - Warning: unexpected &amp;lt;/head&amp;gt; in &amp;lt;link&amp;gt;&lt;br /&gt;line 20 column 165 - Warning: unexpected &amp;lt;/a&amp;gt; in &amp;lt;img&amp;gt;&lt;br /&gt;line 20 column 169 - Warning: unexpected &amp;lt;/td&amp;gt; in &amp;lt;img&amp;gt;&lt;br /&gt;line 23 column 97 - Warning: unexpected &amp;lt;/td&amp;gt; in &amp;lt;img&amp;gt;&lt;br /&gt;line 24 column 5 - Warning: unexpected &amp;lt;/tr&amp;gt; in &amp;lt;img&amp;gt;&lt;br /&gt;line 26 column 93 - Warning: unexpected &amp;lt;/a&amp;gt; in &amp;lt;img&amp;gt;&lt;br /&gt;line 26 column 97 - Warning: unexpected &amp;lt;/td&amp;gt; in &amp;lt;img&amp;gt;&lt;br /&gt;This document has errors that must be fixed before&lt;br /&gt;using HTML Tidy to generate a tidied up version.&lt;br /&gt;&lt;/pre&gt;Asi que, ¿como procesar un documento que está así de roto en Java?&lt;br /&gt;&lt;br /&gt;Bueno, el sitio de Java tiene mucha documentación y una de las cosas interesantes que muestran es como usar el parser que tiene Swing &lt;a href="http://java.sun.com/products/jfc/tsc/articles/bookmarks/"&gt;pero afuera de sus componentes gráficos&lt;/a&gt;. Esto resolvió perfectamente como obtener e iterar un documento roto, ahora sólo quedaba resolver el problema de escribir el RSS lo más fácil posible.&lt;br /&gt;&lt;br /&gt;Después de buscar un poco me decidí a usar &lt;a href="https://rome.dev.java.net/"&gt;la librería Rome&lt;/a&gt;. No es pesada, lo único fastidioso es que requiere JDOM. Bueno, antes tuve que pedir que instalarn Expat para Perl, asi que mejor no me quejo :)&lt;br /&gt;&lt;br /&gt;&lt;a href="http://elangelnegro.cvs.sourceforge.net/elangelnegro/src/java/main/com/kodegeek/blog/rss/GlobovisionHtml2Rss.java?view=markup"&gt;El código&lt;/a&gt; como siempre está en Source Forge, en el sitio de KodeGeek. Se los pongo aquí por comodidad:&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;&lt;a name="line1"&gt;  1&lt;/a&gt; &lt;span style="color: rgb(0, 0, 255);"&gt;&lt;strong&gt;package com.kodegeek.blog.rss;&lt;/strong&gt;&lt;/span&gt;&lt;br /&gt;&lt;a name="line2"&gt;  2&lt;/a&gt;&lt;br /&gt;&lt;a name="line3"&gt;  3&lt;/a&gt; &lt;span style="color: rgb(0, 0, 255);"&gt;&lt;strong&gt;import java.io.BufferedReader;&lt;/strong&gt;&lt;/span&gt;&lt;br /&gt;&lt;a name="line4"&gt;  4&lt;/a&gt; &lt;span style="color: rgb(0, 0, 255);"&gt;&lt;strong&gt;import java.io.FileWriter;&lt;/strong&gt;&lt;/span&gt;&lt;br /&gt;&lt;a name="line5"&gt;  5&lt;/a&gt; &lt;span style="color: rgb(0, 0, 255);"&gt;&lt;strong&gt;import java.io.InputStreamReader;&lt;/strong&gt;&lt;/span&gt;&lt;br /&gt;&lt;a name="line6"&gt;  6&lt;/a&gt; &lt;span style="color: rgb(0, 0, 255);"&gt;&lt;strong&gt;import java.io.Reader;&lt;/strong&gt;&lt;/span&gt;&lt;br /&gt;&lt;a name="line7"&gt;  7&lt;/a&gt; &lt;span style="color: rgb(0, 0, 255);"&gt;&lt;strong&gt;import java.io.Writer;&lt;/strong&gt;&lt;/span&gt;&lt;br /&gt;&lt;a name="line8"&gt;  8&lt;/a&gt; &lt;span style="color: rgb(0, 0, 255);"&gt;&lt;strong&gt;import java.net.URL;&lt;/strong&gt;&lt;/span&gt;&lt;br /&gt;&lt;a name="line9"&gt;  9&lt;/a&gt; &lt;span style="color: rgb(0, 0, 255);"&gt;&lt;strong&gt;import java.util.ArrayList;&lt;/strong&gt;&lt;/span&gt;&lt;br /&gt;&lt;a name="line10"&gt; 10&lt;/a&gt; &lt;span style="color: rgb(0, 0, 255);"&gt;&lt;strong&gt;import java.util.Date;&lt;/strong&gt;&lt;/span&gt;&lt;br /&gt;&lt;a name="line11"&gt; 11&lt;/a&gt; &lt;span style="color: rgb(0, 0, 255);"&gt;&lt;strong&gt;import java.util.List;&lt;/strong&gt;&lt;/span&gt;&lt;br /&gt;&lt;a name="line12"&gt; 12&lt;/a&gt; &lt;span style="color: rgb(0, 0, 255);"&gt;&lt;strong&gt;import java.util.logging.Level;&lt;/strong&gt;&lt;/span&gt;&lt;br /&gt;&lt;a name="line13"&gt; 13&lt;/a&gt; &lt;span style="color: rgb(0, 0, 255);"&gt;&lt;strong&gt;import java.util.logging.Logger;&lt;/strong&gt;&lt;/span&gt;&lt;br /&gt;&lt;a name="line14"&gt; 14&lt;/a&gt;&lt;br /&gt;&lt;a name="line15"&gt; 15&lt;/a&gt; &lt;span style="color: rgb(0, 0, 255);"&gt;&lt;strong&gt;import javax.swing.text.AttributeSet;&lt;/strong&gt;&lt;/span&gt;&lt;br /&gt;&lt;a name="line16"&gt; 16&lt;/a&gt; &lt;span style="color: rgb(0, 0, 255);"&gt;&lt;strong&gt;import javax.swing.text.MutableAttributeSet;&lt;/strong&gt;&lt;/span&gt;&lt;br /&gt;&lt;a name="line17"&gt; 17&lt;/a&gt; &lt;span style="color: rgb(0, 0, 255);"&gt;&lt;strong&gt;import javax.swing.text.html.HTML;&lt;/strong&gt;&lt;/span&gt;&lt;br /&gt;&lt;a name="line18"&gt; 18&lt;/a&gt; &lt;span style="color: rgb(0, 0, 255);"&gt;&lt;strong&gt;import javax.swing.text.html.HTML.Tag;&lt;/strong&gt;&lt;/span&gt;&lt;br /&gt;&lt;a name="line19"&gt; 19&lt;/a&gt; &lt;span style="color: rgb(0, 0, 255);"&gt;&lt;strong&gt;import javax.swing.text.html.HTMLEditorKit.ParserCallback;&lt;/strong&gt;&lt;/span&gt;&lt;br /&gt;&lt;a name="line20"&gt; 20&lt;/a&gt; &lt;span style="color: rgb(0, 0, 255);"&gt;&lt;strong&gt;import javax.swing.text.html.parser.ParserDelegator;&lt;/strong&gt;&lt;/span&gt;&lt;br /&gt;&lt;a name="line21"&gt; 21&lt;/a&gt;&lt;br /&gt;&lt;a name="line22"&gt; 22&lt;/a&gt; &lt;span style="color: rgb(0, 0, 255);"&gt;&lt;strong&gt;import com.sun.syndication.feed.synd.SyndEntry;&lt;/strong&gt;&lt;/span&gt;&lt;br /&gt;&lt;a name="line23"&gt; 23&lt;/a&gt; &lt;span style="color: rgb(0, 0, 255);"&gt;&lt;strong&gt;import com.sun.syndication.feed.synd.SyndEntryImpl;&lt;/strong&gt;&lt;/span&gt;&lt;br /&gt;&lt;a name="line24"&gt; 24&lt;/a&gt; &lt;span style="color: rgb(0, 0, 255);"&gt;&lt;strong&gt;import com.sun.syndication.feed.synd.SyndFeed;&lt;/strong&gt;&lt;/span&gt;&lt;br /&gt;&lt;a name="line25"&gt; 25&lt;/a&gt; &lt;span style="color: rgb(0, 0, 255);"&gt;&lt;strong&gt;import com.sun.syndication.feed.synd.SyndFeedImpl;&lt;/strong&gt;&lt;/span&gt;&lt;br /&gt;&lt;a name="line26"&gt; 26&lt;/a&gt; &lt;span style="color: rgb(0, 0, 255);"&gt;&lt;strong&gt;import com.sun.syndication.io.SyndFeedOutput;&lt;/strong&gt;&lt;/span&gt;&lt;br /&gt;&lt;a name="line27"&gt; 27&lt;/a&gt;&lt;br /&gt;&lt;a name="line28"&gt; 28&lt;/a&gt;&lt;br /&gt;&lt;a name="line29"&gt; 29&lt;/a&gt; &lt;span style="color: rgb(68, 68, 68);"&gt;&lt;i&gt;/**&lt;br /&gt;&lt;a name="line30"&gt; 30&lt;/a&gt;  * Program that converts the main summary news from Globovision.com&lt;br /&gt;to RSS format.&lt;br /&gt;&lt;a name="line31"&gt; 31&lt;/a&gt;  * @author josevnz at kodeeek.com&lt;br /&gt;&lt;a name="line32"&gt; 32&lt;/a&gt;  * &lt;p&gt;License: GPL&lt;/p&gt;&lt;br /&gt;&lt;a name="line33"&gt; 33&lt;/a&gt;  * I use a combination of Yahoo Pipes and Google Reader to keep me&lt;br /&gt;updated about news of any kind. However, some websites like&lt;br /&gt;&lt;a name="line34"&gt; 34&lt;/a&gt;  * Globovision.com still don't have a proper RSS feed,&lt;br /&gt;so one day I&lt;br /&gt;decided to create my own mashup :).&lt;br /&gt;&lt;a name="line35"&gt; 35&lt;/a&gt;  * It worked for a while until my Blog hosting provider&lt;br /&gt;decided to&lt;br /&gt;remove the XML::RSS Perl module I asked to install for me.&lt;br /&gt;Because of that,&lt;br /&gt;&lt;a name="line36"&gt; 36&lt;/a&gt;  * this Java version was born.&lt;br /&gt;&lt;a name="line37"&gt; 37&lt;/a&gt;  */&lt;/i&gt;&lt;/span&gt;&lt;br /&gt;&lt;a name="line38"&gt; 38&lt;/a&gt; &lt;strong&gt;public&lt;/strong&gt; &lt;strong&gt;final&lt;/strong&gt; &lt;strong&gt;class&lt;/strong&gt; &lt;span style="color: rgb(32, 64, 160);"&gt;GlobovisionHtml2Rss&lt;/span&gt; &lt;span style="color: rgb(68, 68, 255);"&gt;&lt;strong&gt;{&lt;/strong&gt;&lt;/span&gt;&lt;br /&gt;&lt;a name="line39"&gt; 39&lt;/a&gt;&lt;br /&gt;&lt;a name="line40"&gt; 40&lt;/a&gt;  &lt;strong&gt;public&lt;/strong&gt; &lt;strong&gt;static&lt;/strong&gt; &lt;strong&gt;final&lt;/strong&gt; &lt;span style="color: rgb(32, 64, 160);"&gt;String&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(32, 64, 160);"&gt;GLOBOVISION_URL&lt;/span&gt; &lt;span style="color: rgb(68, 68, 255);"&gt;=&lt;/span&gt; &lt;span style="color: rgb(0, 128, 0);"&gt;"http://globovision.com"&lt;/span&gt;&lt;span style="color: rgb(68, 68, 255);"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;a name="line41"&gt; 41&lt;/a&gt;  &lt;strong&gt;public&lt;/strong&gt; &lt;strong&gt;static&lt;/strong&gt; &lt;strong&gt;final&lt;/strong&gt; &lt;span style="color: rgb(32, 64, 160);"&gt;String&lt;/span&gt; &lt;span style="color: rgb(32, 64, 160);"&gt;NEWS_URL&lt;/span&gt; &lt;span style="color: rgb(68, 68, 255);"&gt;=&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(32, 64, 160);"&gt;GLOBOVISION_URL&lt;/span&gt; &lt;span style="color: rgb(68, 68, 255);"&gt;+&lt;/span&gt; &lt;span style="color: rgb(0, 128, 0);"&gt;"/history.php?cha=1&amp;amp;pag=1"&lt;/span&gt;&lt;span style="color: rgb(68, 68, 255);"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;a name="line42"&gt; 42&lt;/a&gt;&lt;br /&gt;&lt;a name="line43"&gt; 43&lt;/a&gt;  &lt;strong&gt;private&lt;/strong&gt; &lt;strong&gt;static&lt;/strong&gt; &lt;span style="color: rgb(32, 64, 160);"&gt;Logger&lt;/span&gt; &lt;span style="color: rgb(32, 64, 160);"&gt;log&lt;/span&gt;&lt;span style="color: rgb(68, 68, 255);"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;a name="line44"&gt; 44&lt;/a&gt;  &lt;strong&gt;private&lt;/strong&gt; &lt;strong&gt;static&lt;/strong&gt; &lt;strong&gt;final&lt;/strong&gt; &lt;strong&gt;long&lt;/strong&gt; &lt;span style="color: rgb(32, 64, 160);"&gt;DEFAULT_WAIT&lt;/span&gt; &lt;span style="color: rgb(68, 68, 255);"&gt;=&lt;/span&gt; &lt;span style="color: rgb(255, 0, 0);"&gt;1000L&lt;/span&gt;&lt;span style="color: rgb(68, 68, 255);"&gt;*&lt;/span&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;60L&lt;/span&gt;&lt;span style="color: rgb(68, 68, 255);"&gt;*&lt;/span&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;5L&lt;/span&gt;&lt;span style="color: rgb(68, 68, 255);"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;a name="line45"&gt; 45&lt;/a&gt;&lt;br /&gt;&lt;a name="line46"&gt; 46&lt;/a&gt;  &lt;span style="color: rgb(68, 68, 68);"&gt;// Do not alow instances of this class to be created&lt;/span&gt;&lt;br /&gt;&lt;a name="line47"&gt; 47&lt;/a&gt;  &lt;strong&gt;private&lt;/strong&gt; &lt;span style="color: rgb(32, 64, 160);"&gt;GlobovisionHtml2Rss&lt;/span&gt;&lt;span style="color: rgb(68, 68, 255);"&gt;&lt;strong&gt;(&lt;/strong&gt;&lt;/span&gt;&lt;span style="color: rgb(68, 68, 255);"&gt;&lt;strong&gt;)&lt;/strong&gt;&lt;/span&gt; &lt;span style="color: rgb(68, 68, 255);"&gt;&lt;strong&gt;{&lt;/strong&gt;&lt;/span&gt;&lt;br /&gt;&lt;a name="line48"&gt; 48&lt;/a&gt;   &lt;span style="color: rgb(68, 68, 68);"&gt;// Empty&lt;/span&gt;&lt;br /&gt;&lt;a name="line49"&gt; 49&lt;/a&gt;  &lt;span style="color: rgb(68, 68, 255);"&gt;&lt;strong&gt;}&lt;/strong&gt;&lt;/span&gt;&lt;br /&gt;&lt;a name="line50"&gt; 50&lt;/a&gt;&lt;br /&gt;&lt;a name="line51"&gt; 51&lt;/a&gt;  &lt;strong&gt;static&lt;/strong&gt; &lt;span style="color: rgb(68, 68, 255);"&gt;&lt;strong&gt;{&lt;/strong&gt;&lt;/span&gt;&lt;br /&gt;&lt;a name="line52"&gt; 52&lt;/a&gt;&lt;br /&gt;&lt;a name="line53"&gt; 53&lt;/a&gt;   &lt;span style="color: rgb(32, 64, 160);"&gt;log&lt;/span&gt; &lt;span style="color: rgb(68, 68, 255);"&gt;=&lt;/span&gt; &lt;span style="color: rgb(32, 64, 160);"&gt;Logger&lt;/span&gt;.&lt;span style="color: rgb(32, 64, 160);"&gt;getLogger&lt;/span&gt;&lt;span style="color: rgb(68, 68, 255);"&gt;&lt;strong&gt;(&lt;/strong&gt;&lt;/span&gt;&lt;span style="color: rgb(32, 64, 160);"&gt;GlobovisionHtml2Rss&lt;/span&gt;.&lt;strong&gt;class&lt;/strong&gt;.&lt;span style="color: rgb(32, 64, 160);"&gt;getName&lt;/span&gt;&lt;span style="color: rgb(68, 68, 255);"&gt;&lt;strong&gt;(&lt;/strong&gt;&lt;/span&gt;&lt;span style="color: rgb(68, 68, 255);"&gt;&lt;strong&gt;)&lt;/strong&gt;&lt;/span&gt;&lt;span style="color: rgb(68, 68, 255);"&gt;&lt;strong&gt;)&lt;/strong&gt;&lt;/span&gt;&lt;span style="color: rgb(68, 68, 255);"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;a name="line54"&gt; 54&lt;/a&gt;  &lt;span style="color: rgb(68, 68, 255);"&gt;&lt;strong&gt;}&lt;/strong&gt;&lt;/span&gt;&lt;br /&gt;&lt;a name="line55"&gt; 55&lt;/a&gt;&lt;br /&gt;&lt;a name="line56"&gt; 56&lt;/a&gt;  &lt;span style="color: rgb(68, 68, 68);"&gt;&lt;i&gt;/**&lt;br /&gt;&lt;a name="line57"&gt; 57&lt;/a&gt;   * @param args&lt;br /&gt;&lt;a name="line58"&gt; 58&lt;/a&gt;   */&lt;/i&gt;&lt;/span&gt;&lt;br /&gt;&lt;a name="line59"&gt; 59&lt;/a&gt;  &lt;strong&gt;public&lt;/strong&gt; &lt;strong&gt;static&lt;/strong&gt; &lt;strong&gt;void&lt;/strong&gt; &lt;span style="color: rgb(32, 64, 160);"&gt;main&lt;/span&gt;&lt;span style="color: rgb(68, 68, 255);"&gt;&lt;strong&gt;(&lt;/strong&gt;&lt;/span&gt;&lt;span style="color: rgb(32, 64, 160);"&gt;String&lt;/span&gt;&lt;span style="color: rgb(68, 68, 255);"&gt;&lt;strong&gt;[&lt;/strong&gt;&lt;/span&gt;&lt;span style="color: rgb(68, 68, 255);"&gt;&lt;strong&gt;]&lt;/strong&gt;&lt;/span&gt; &lt;span style="color: rgb(32, 64, 160);"&gt;args&lt;/span&gt;&lt;span style="color: rgb(68, 68, 255);"&gt;&lt;strong&gt;)&lt;/strong&gt;&lt;/span&gt; &lt;strong&gt;throws&lt;/strong&gt; &lt;span style="color: rgb(32, 64, 160);"&gt;Exception&lt;/span&gt; &lt;span style="color: rgb(68, 68, 255);"&gt;&lt;strong&gt;{&lt;/strong&gt;&lt;/span&gt;&lt;br /&gt;&lt;a name="line60"&gt; 60&lt;/a&gt;&lt;br /&gt;&lt;a name="line61"&gt; 61&lt;/a&gt;   &lt;strong&gt;try&lt;/strong&gt; &lt;span style="color: rgb(68, 68, 255);"&gt;&lt;strong&gt;{&lt;/strong&gt;&lt;/span&gt;&lt;br /&gt;&lt;a name="line62"&gt; 62&lt;/a&gt;    &lt;span style="color: rgb(32, 64, 160);"&gt;fetch&lt;/span&gt;&lt;span style="color: rgb(68, 68, 255);"&gt;&lt;strong&gt;(&lt;/strong&gt;&lt;/span&gt;&lt;span style="color: rgb(32, 64, 160);"&gt;NEWS_URL&lt;/span&gt;, &lt;span style="color: rgb(32, 64, 160);"&gt;args&lt;/span&gt;&lt;span style="color: rgb(68, 68, 255);"&gt;&lt;strong&gt;[&lt;/strong&gt;&lt;/span&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;0&lt;/span&gt;&lt;span style="color: rgb(68, 68, 255);"&gt;&lt;strong&gt;]&lt;/strong&gt;&lt;/span&gt;&lt;span style="color: rgb(68, 68, 255);"&gt;&lt;strong&gt;)&lt;/strong&gt;&lt;/span&gt;&lt;span style="color: rgb(68, 68, 255);"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;a name="line63"&gt; 63&lt;/a&gt;   &lt;span style="color: rgb(68, 68, 255);"&gt;&lt;strong&gt;}&lt;/strong&gt;&lt;/span&gt; &lt;strong&gt;catch&lt;/strong&gt; &lt;span style="color: rgb(68, 68, 255);"&gt;&lt;strong&gt;(&lt;/strong&gt;&lt;/span&gt;&lt;span style="color: rgb(32, 64, 160);"&gt;Exception&lt;/span&gt; &lt;span style="color: rgb(32, 64, 160);"&gt;exp&lt;/span&gt;&lt;span style="color: rgb(68, 68, 255);"&gt;&lt;strong&gt;)&lt;/strong&gt;&lt;/span&gt; &lt;span style="color: rgb(68, 68, 255);"&gt;&lt;strong&gt;{&lt;/strong&gt;&lt;/span&gt;&lt;br /&gt;&lt;a name="line64"&gt; 64&lt;/a&gt;    &lt;span style="color: rgb(32, 64, 160);"&gt;log&lt;/span&gt;.&lt;span style="color: rgb(32, 64, 160);"&gt;log&lt;/span&gt;&lt;span style="color: rgb(68, 68, 255);"&gt;&lt;strong&gt;(&lt;/strong&gt;&lt;/span&gt;&lt;span style="color: rgb(32, 64, 160);"&gt;Level&lt;/span&gt;.&lt;span style="color: rgb(32, 64, 160);"&gt;SEVERE&lt;/span&gt;, &lt;span style="color: rgb(0, 128, 0);"&gt;"Cannot recover from this&lt;br /&gt;exception"&lt;/span&gt;, &lt;span style="color: rgb(32, 64, 160);"&gt;exp&lt;/span&gt;&lt;span style="color: rgb(68, 68, 255);"&gt;&lt;strong&gt;)&lt;/strong&gt;&lt;/span&gt;&lt;span style="color: rgb(68, 68, 255);"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;a name="line65"&gt; 65&lt;/a&gt;   &lt;span style="color: rgb(68, 68, 255);"&gt;&lt;strong&gt;}&lt;/strong&gt;&lt;/span&gt;&lt;br /&gt;&lt;a name="line66"&gt; 66&lt;/a&gt;  &lt;span style="color: rgb(68, 68, 255);"&gt;&lt;strong&gt;}&lt;/strong&gt;&lt;/span&gt;&lt;br /&gt;&lt;a name="line67"&gt; 67&lt;/a&gt;&lt;br /&gt;&lt;a name="line68"&gt; 68&lt;/a&gt;  &lt;span style="color: rgb(68, 68, 68);"&gt;&lt;i&gt;/**&lt;br /&gt;&lt;a name="line69"&gt; 69&lt;/a&gt;   * Try to fetch the URL and convert it to a Document&lt;br /&gt;&lt;a name="line70"&gt; 70&lt;/a&gt;   * @param url&lt;br /&gt;&lt;a name="line71"&gt; 71&lt;/a&gt;   * @param outfile&lt;br /&gt;&lt;a name="line72"&gt; 72&lt;/a&gt;   * @return&lt;br /&gt;&lt;a name="line73"&gt; 73&lt;/a&gt;   * @throws Exception&lt;br /&gt;&lt;a name="line74"&gt; 74&lt;/a&gt;   */&lt;/i&gt;&lt;/span&gt;&lt;br /&gt;&lt;a name="line75"&gt; 75&lt;/a&gt;  &lt;strong&gt;private&lt;/strong&gt; &lt;strong&gt;static&lt;/strong&gt; &lt;strong&gt;void&lt;/strong&gt; &lt;span style="color: rgb(32, 64, 160);"&gt;fetch&lt;/span&gt;&lt;span style="color: rgb(68, 68, 255);"&gt;&lt;strong&gt;(&lt;/strong&gt;&lt;/span&gt;&lt;span style="color: rgb(32, 64, 160);"&gt;String&lt;/span&gt; &lt;span style="color: rgb(32, 64, 160);"&gt;url&lt;/span&gt;, &lt;span style="color: rgb(32, 64, 160);"&gt;String&lt;/span&gt; &lt;span style="color: rgb(32, 64, 160);"&gt;outfile&lt;/span&gt;&lt;span style="color: rgb(68, 68, 255);"&gt;&lt;strong&gt;)&lt;/strong&gt;&lt;/span&gt; &lt;strong&gt;&lt;br /&gt;throws&lt;/strong&gt; &lt;span style="color: rgb(32, 64, 160);"&gt;Exception&lt;/span&gt; &lt;span style="color: rgb(68, 68, 255);"&gt;&lt;strong&gt;{&lt;/strong&gt;&lt;/span&gt;&lt;br /&gt;&lt;a name="line76"&gt; 76&lt;/a&gt;   &lt;span style="color: rgb(32, 64, 160);"&gt;Reader&lt;/span&gt; &lt;span style="color: rgb(32, 64, 160);"&gt;reader&lt;/span&gt; &lt;span style="color: rgb(68, 68, 255);"&gt;=&lt;/span&gt; &lt;strong&gt;null&lt;/strong&gt;&lt;span style="color: rgb(68, 68, 255);"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;a name="line77"&gt; 77&lt;/a&gt;   &lt;span style="color: rgb(32, 64, 160);"&gt;Writer&lt;/span&gt; &lt;span style="color: rgb(32, 64, 160);"&gt;writer&lt;/span&gt; &lt;span style="color: rgb(68, 68, 255);"&gt;=&lt;/span&gt; &lt;strong&gt;null&lt;/strong&gt;&lt;span style="color: rgb(68, 68, 255);"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;a name="line78"&gt; 78&lt;/a&gt;   &lt;span style="color: rgb(32, 64, 160);"&gt;SyndFeed&lt;/span&gt; &lt;span style="color: rgb(32, 64, 160);"&gt;feed&lt;/span&gt;&lt;span style="color: rgb(68, 68, 255);"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;a name="line79"&gt; 79&lt;/a&gt;   &lt;span style="color: rgb(32, 64, 160);"&gt;List&lt;/span&gt; &lt;span style="color: rgb(68, 68, 255);"&gt;&lt;&lt;/span&gt;&lt;span style="color: rgb(32, 64, 160);"&gt;SyndEntry&lt;/span&gt;&lt;span style="color: rgb(68, 68, 255);"&gt;&gt;&lt;/span&gt;&lt;span style="color: rgb(32, 64, 160);"&gt;news&lt;/span&gt; &lt;span style="color: rgb(68, 68, 255);"&gt;=&lt;/span&gt; &lt;strong&gt;new&lt;/strong&gt; &lt;span style="color: rgb(32, 64, 160);"&gt;ArrayList&lt;/span&gt;&lt;span style="color: rgb(68, 68, 255);"&gt;&lt;&lt;/span&gt;&lt;span style="color: rgb(32, 64, 160);"&gt;SyndEntry&lt;/span&gt;&lt;span style="color: rgb(68, 68, 255);"&gt;&gt;&lt;/span&gt;&lt;span style="color: rgb(68, 68, 255);"&gt;&lt;strong&gt;(&lt;/strong&gt;&lt;/span&gt;&lt;span style="color: rgb(68, 68, 255);"&gt;&lt;strong&gt;)&lt;/strong&gt;&lt;/span&gt;&lt;span style="color: rgb(68, 68, 255);"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;a name="line80"&gt; 80&lt;/a&gt;   &lt;strong&gt;try&lt;/strong&gt; &lt;span style="color: rgb(68, 68, 255);"&gt;&lt;strong&gt;{&lt;/strong&gt;&lt;/span&gt;&lt;br /&gt;&lt;a name="line81"&gt; 81&lt;/a&gt;    &lt;span style="color: rgb(32, 64, 160);"&gt;feed&lt;/span&gt; &lt;span style="color: rgb(68, 68, 255);"&gt;=&lt;/span&gt; &lt;strong&gt;new&lt;/strong&gt; &lt;span style="color: rgb(32, 64, 160);"&gt;SyndFeedImpl&lt;/span&gt;&lt;span style="color: rgb(68, 68, 255);"&gt;&lt;strong&gt;(&lt;/strong&gt;&lt;/span&gt;&lt;span style="color: rgb(68, 68, 255);"&gt;&lt;strong&gt;)&lt;/strong&gt;&lt;/span&gt;&lt;span style="color: rgb(68, 68, 255);"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;a name="line82"&gt; 82&lt;/a&gt;    &lt;span style="color: rgb(32, 64, 160);"&gt;feed&lt;/span&gt;.&lt;span style="color: rgb(32, 64, 160);"&gt;setAuthor&lt;/span&gt;&lt;span style="color: rgb(68, 68, 255);"&gt;&lt;strong&gt;(&lt;/strong&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 128, 0);"&gt;"Jose Nunez, josevnz at kodegeek.com"&lt;/span&gt;&lt;span style="color: rgb(68, 68, 255);"&gt;&lt;strong&gt;)&lt;/strong&gt;&lt;/span&gt;&lt;span style="color: rgb(68, 68, 255);"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;a name="line83"&gt; 83&lt;/a&gt;    &lt;span style="color: rgb(32, 64, 160);"&gt;feed&lt;/span&gt;.&lt;span style="color: rgb(32, 64, 160);"&gt;setDescription&lt;/span&gt;&lt;span style="color: rgb(68, 68, 255);"&gt;&lt;strong&gt;(&lt;/strong&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 128, 0);"&gt;"Globovision.com news - Brough to&lt;br /&gt;you by http://KodeGeek.com"&lt;/span&gt;&lt;span style="color: rgb(68, 68, 255);"&gt;&lt;strong&gt;)&lt;/strong&gt;&lt;/span&gt;&lt;span style="color: rgb(68, 68, 255);"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;a name="line84"&gt; 84&lt;/a&gt;    &lt;span style="color: rgb(32, 64, 160);"&gt;feed&lt;/span&gt;.&lt;span style="color: rgb(32, 64, 160);"&gt;setFeedType&lt;/span&gt;&lt;span style="color: rgb(68, 68, 255);"&gt;&lt;strong&gt;(&lt;/strong&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 128, 0);"&gt;"rss_1.0"&lt;/span&gt;&lt;span style="color: rgb(68, 68, 255);"&gt;&lt;strong&gt;)&lt;/strong&gt;&lt;/span&gt;&lt;span style="color: rgb(68, 68, 255);"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;a name="line85"&gt; 85&lt;/a&gt;    &lt;span style="color: rgb(32, 64, 160);"&gt;feed&lt;/span&gt;.&lt;span style="color: rgb(32, 64, 160);"&gt;setLink&lt;/span&gt;&lt;span style="color: rgb(68, 68, 255);"&gt;&lt;strong&gt;(&lt;/strong&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 128, 0);"&gt;"http://www.kodegeek.com/rss/globovision.rss"&lt;/span&gt;&lt;span style="color: rgb(68, 68, 255);"&gt;&lt;strong&gt;)&lt;/strong&gt;&lt;/span&gt;&lt;span style="color: rgb(68, 68, 255);"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;a name="line86"&gt; 86&lt;/a&gt;    &lt;span style="color: rgb(32, 64, 160);"&gt;feed&lt;/span&gt;.&lt;span style="color: rgb(32, 64, 160);"&gt;setTitle&lt;/span&gt;&lt;span style="color: rgb(68, 68, 255);"&gt;&lt;strong&gt;(&lt;/strong&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 128, 0);"&gt;"Globovision.com Venezuelan News"&lt;/span&gt;&lt;span style="color: rgb(68, 68, 255);"&gt;&lt;strong&gt;)&lt;/strong&gt;&lt;/span&gt;&lt;span style="color: rgb(68, 68, 255);"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;a name="line87"&gt; 87&lt;/a&gt;    &lt;span style="color: rgb(32, 64, 160);"&gt;URL&lt;/span&gt; &lt;span style="color: rgb(32, 64, 160);"&gt;globovisionURL&lt;/span&gt; &lt;span style="color: rgb(68, 68, 255);"&gt;=&lt;/span&gt; &lt;strong&gt;new&lt;/strong&gt; &lt;span style="color: rgb(32, 64, 160);"&gt;URL&lt;/span&gt;&lt;span style="color: rgb(68, 68, 255);"&gt;&lt;strong&gt;(&lt;/strong&gt;&lt;/span&gt;&lt;span style="color: rgb(32, 64, 160);"&gt;url&lt;/span&gt;&lt;span style="color: rgb(68, 68, 255);"&gt;&lt;strong&gt;)&lt;/strong&gt;&lt;/span&gt;&lt;span style="color: rgb(68, 68, 255);"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;a name="line88"&gt; 88&lt;/a&gt;    &lt;span style="color: rgb(32, 64, 160);"&gt;reader&lt;/span&gt; &lt;span style="color: rgb(68, 68, 255);"&gt;=&lt;/span&gt; &lt;strong&gt;new&lt;/strong&gt; &lt;span style="color: rgb(32, 64, 160);"&gt;BufferedReader&lt;/span&gt;&lt;span style="color: rgb(68, 68, 255);"&gt;&lt;strong&gt;(&lt;/strong&gt;&lt;/span&gt;&lt;strong&gt;&lt;br /&gt;new&lt;/strong&gt; &lt;span style="color: rgb(32, 64, 160);"&gt;InputStreamReader&lt;/span&gt;&lt;span style="color: rgb(68, 68, 255);"&gt;&lt;strong&gt;(&lt;/strong&gt;&lt;/span&gt;&lt;span style="color: rgb(32, 64, 160);"&gt;globovisionURL&lt;/span&gt;.&lt;span style="color: rgb(32, 64, 160);"&gt;openStream&lt;/span&gt;&lt;span style="color: rgb(68, 68, 255);"&gt;&lt;strong&gt;(&lt;/strong&gt;&lt;/span&gt;&lt;span style="color: rgb(68, 68, 255);"&gt;&lt;strong&gt;)&lt;/strong&gt;&lt;/span&gt;&lt;span style="color: rgb(68, 68, 255);"&gt;&lt;strong&gt;)&lt;/strong&gt;&lt;/span&gt;&lt;span style="color: rgb(68, 68, 255);"&gt;&lt;strong&gt;)&lt;/strong&gt;&lt;/span&gt;&lt;span style="color: rgb(68, 68, 255);"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;a name="line89"&gt; 89&lt;/a&gt;    &lt;span style="color: rgb(32, 64, 160);"&gt;ParserDelegator&lt;/span&gt; &lt;span style="color: rgb(32, 64, 160);"&gt;parser&lt;/span&gt; &lt;span style="color: rgb(68, 68, 255);"&gt;=&lt;/span&gt; &lt;strong&gt;new&lt;/strong&gt; &lt;span style="color: rgb(32, 64, 160);"&gt;ParserDelegator&lt;/span&gt;&lt;span style="color: rgb(68, 68, 255);"&gt;&lt;strong&gt;(&lt;/strong&gt;&lt;/span&gt;&lt;span style="color: rgb(68, 68, 255);"&gt;&lt;strong&gt;)&lt;/strong&gt;&lt;/span&gt;&lt;span style="color: rgb(68, 68, 255);"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;a name="line90"&gt; 90&lt;/a&gt;    &lt;span style="color: rgb(32, 64, 160);"&gt;parser&lt;/span&gt;.&lt;span style="color: rgb(32, 64, 160);"&gt;parse&lt;/span&gt;&lt;span style="color: rgb(68, 68, 255);"&gt;&lt;strong&gt;(&lt;/strong&gt;&lt;/span&gt;&lt;span style="color: rgb(32, 64, 160);"&gt;reader&lt;/span&gt;, &lt;strong&gt;new&lt;/strong&gt; &lt;span style="color: rgb(32, 64, 160);"&gt;GlobovisionHtml2Rss&lt;/span&gt;&lt;span style="color: rgb(68, 68, 255);"&gt;&lt;strong&gt;(&lt;/strong&gt;&lt;/span&gt;&lt;span style="color: rgb(68, 68, 255);"&gt;&lt;strong&gt;)&lt;/strong&gt;&lt;/span&gt;.&lt;br /&gt;&lt;strong&gt;new&lt;/strong&gt; &lt;span style="color: rgb(32, 64, 160);"&gt;GlobovisionParser&lt;/span&gt;&lt;span style="color: rgb(68, 68, 255);"&gt;&lt;strong&gt;(&lt;/strong&gt;&lt;/span&gt;&lt;span style="color: rgb(32, 64, 160);"&gt;news&lt;/span&gt;&lt;span style="color: rgb(68, 68, 255);"&gt;&lt;strong&gt;)&lt;/strong&gt;&lt;/span&gt;, &lt;strong&gt;false&lt;/strong&gt;&lt;span style="color: rgb(68, 68, 255);"&gt;&lt;strong&gt;)&lt;/strong&gt;&lt;/span&gt;&lt;span style="color: rgb(68, 68, 255);"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;a name="line91"&gt; 91&lt;/a&gt;    &lt;strong&gt;if&lt;/strong&gt; &lt;span style="color: rgb(68, 68, 255);"&gt;&lt;strong&gt;(&lt;/strong&gt;&lt;/span&gt;&lt;span style="color: rgb(32, 64, 160);"&gt;news&lt;/span&gt;.&lt;span style="color: rgb(32, 64, 160);"&gt;size&lt;/span&gt;&lt;span style="color: rgb(68, 68, 255);"&gt;&lt;strong&gt;(&lt;/strong&gt;&lt;/span&gt;&lt;span style="color: rgb(68, 68, 255);"&gt;&lt;strong&gt;)&lt;/strong&gt;&lt;/span&gt; &lt;span style="color: rgb(68, 68, 255);"&gt;&gt;&lt;/span&gt; &lt;span style="color: rgb(255, 0, 0);"&gt;0&lt;/span&gt;&lt;span style="color: rgb(68, 68, 255);"&gt;&lt;strong&gt;)&lt;/strong&gt;&lt;/span&gt; &lt;span style="color: rgb(68, 68, 255);"&gt;&lt;strong&gt;{&lt;/strong&gt;&lt;/span&gt;&lt;br /&gt;&lt;a name="line92"&gt; 92&lt;/a&gt;     &lt;span style="color: rgb(32, 64, 160);"&gt;feed&lt;/span&gt;.&lt;span style="color: rgb(32, 64, 160);"&gt;setEntries&lt;/span&gt;&lt;span style="color: rgb(68, 68, 255);"&gt;&lt;strong&gt;(&lt;/strong&gt;&lt;/span&gt;&lt;span style="color: rgb(32, 64, 160);"&gt;news&lt;/span&gt;&lt;span style="color: rgb(68, 68, 255);"&gt;&lt;strong&gt;)&lt;/strong&gt;&lt;/span&gt;&lt;span style="color: rgb(68, 68, 255);"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;a name="line93"&gt; 93&lt;/a&gt;     &lt;span style="color: rgb(32, 64, 160);"&gt;writer&lt;/span&gt; &lt;span style="color: rgb(68, 68, 255);"&gt;=&lt;/span&gt; &lt;strong&gt;new&lt;/strong&gt; &lt;span style="color: rgb(32, 64, 160);"&gt;FileWriter&lt;/span&gt;&lt;span style="color: rgb(68, 68, 255);"&gt;&lt;strong&gt;(&lt;/strong&gt;&lt;/span&gt;&lt;span style="color: rgb(32, 64, 160);"&gt;outfile&lt;/span&gt;&lt;span style="color: rgb(68, 68, 255);"&gt;&lt;strong&gt;)&lt;/strong&gt;&lt;/span&gt;&lt;span style="color: rgb(68, 68, 255);"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;a name="line94"&gt; 94&lt;/a&gt;     &lt;span style="color: rgb(32, 64, 160);"&gt;SyndFeedOutput&lt;/span&gt; &lt;span style="color: rgb(32, 64, 160);"&gt;feedOut&lt;/span&gt; &lt;span style="color: rgb(68, 68, 255);"&gt;=&lt;/span&gt; &lt;strong&gt;new&lt;/strong&gt; &lt;span style="color: rgb(32, 64, 160);"&gt;SyndFeedOutput&lt;/span&gt;&lt;span style="color: rgb(68, 68, 255);"&gt;&lt;strong&gt;(&lt;/strong&gt;&lt;/span&gt;&lt;span style="color: rgb(68, 68, 255);"&gt;&lt;strong&gt;)&lt;/strong&gt;&lt;/span&gt;&lt;span style="color: rgb(68, 68, 255);"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;a name="line95"&gt; 95&lt;/a&gt;     &lt;span style="color: rgb(32, 64, 160);"&gt;feedOut&lt;/span&gt;.&lt;span style="color: rgb(32, 64, 160);"&gt;output&lt;/span&gt;&lt;span style="color: rgb(68, 68, 255);"&gt;&lt;strong&gt;(&lt;/strong&gt;&lt;/span&gt;&lt;span style="color: rgb(32, 64, 160);"&gt;feed&lt;/span&gt;, &lt;span style="color: rgb(32, 64, 160);"&gt;writer&lt;/span&gt;&lt;span style="color: rgb(68, 68, 255);"&gt;&lt;strong&gt;)&lt;/strong&gt;&lt;/span&gt;&lt;span style="color: rgb(68, 68, 255);"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;a name="line96"&gt; 96&lt;/a&gt;    &lt;span style="color: rgb(68, 68, 255);"&gt;&lt;strong&gt;}&lt;/strong&gt;&lt;/span&gt;&lt;br /&gt;&lt;a name="line97"&gt; 97&lt;/a&gt;   &lt;span style="color: rgb(68, 68, 255);"&gt;&lt;strong&gt;}&lt;/strong&gt;&lt;/span&gt; &lt;strong&gt;catch&lt;/strong&gt; &lt;span style="color: rgb(68, 68, 255);"&gt;&lt;strong&gt;(&lt;/strong&gt;&lt;/span&gt;&lt;span style="color: rgb(32, 64, 160);"&gt;Exception&lt;/span&gt; &lt;span style="color: rgb(32, 64, 160);"&gt;exp&lt;/span&gt;&lt;span style="color: rgb(68, 68, 255);"&gt;&lt;strong&gt;)&lt;/strong&gt;&lt;/span&gt; &lt;span style="color: rgb(68, 68, 255);"&gt;&lt;strong&gt;{&lt;/strong&gt;&lt;/span&gt;&lt;br /&gt;&lt;a name="line98"&gt; 98&lt;/a&gt;    &lt;strong&gt;throw&lt;/strong&gt; &lt;strong&gt;new&lt;/strong&gt; &lt;span style="color: rgb(32, 64, 160);"&gt;Exception&lt;/span&gt;&lt;span style="color: rgb(68, 68, 255);"&gt;&lt;strong&gt;(&lt;/strong&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 128, 0);"&gt;"Unexpected problem"&lt;/span&gt;, &lt;span style="color: rgb(32, 64, 160);"&gt;exp&lt;/span&gt;&lt;span style="color: rgb(68, 68, 255);"&gt;&lt;strong&gt;)&lt;/strong&gt;&lt;/span&gt;&lt;span style="color: rgb(68, 68, 255);"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;a name="line99"&gt; 99&lt;/a&gt;   &lt;span style="color: rgb(68, 68, 255);"&gt;&lt;strong&gt;}&lt;/strong&gt;&lt;/span&gt; &lt;strong&gt;finally&lt;/strong&gt; &lt;span style="color: rgb(68, 68, 255);"&gt;&lt;strong&gt;{&lt;/strong&gt;&lt;/span&gt;&lt;br /&gt;&lt;a name="line100"&gt;100&lt;/a&gt;&lt;br /&gt;&lt;a name="line101"&gt;101&lt;/a&gt;    &lt;strong&gt;if&lt;/strong&gt; &lt;span style="color: rgb(68, 68, 255);"&gt;&lt;strong&gt;(&lt;/strong&gt;&lt;/span&gt;&lt;span style="color: rgb(32, 64, 160);"&gt;reader&lt;/span&gt; &lt;span style="color: rgb(68, 68, 255);"&gt;!&lt;/span&gt;&lt;span style="color: rgb(68, 68, 255);"&gt;=&lt;/span&gt; &lt;strong&gt;null&lt;/strong&gt;&lt;span style="color: rgb(68, 68, 255);"&gt;&lt;strong&gt;)&lt;/strong&gt;&lt;/span&gt; &lt;span style="color: rgb(68, 68, 255);"&gt;&lt;strong&gt;{&lt;/strong&gt;&lt;/span&gt;&lt;br /&gt;&lt;a name="line102"&gt;102&lt;/a&gt;     &lt;span style="color: rgb(32, 64, 160);"&gt;reader&lt;/span&gt;.&lt;span style="color: rgb(32, 64, 160);"&gt;close&lt;/span&gt;&lt;span style="color: rgb(68, 68, 255);"&gt;&lt;strong&gt;(&lt;/strong&gt;&lt;/span&gt;&lt;span style="color: rgb(68, 68, 255);"&gt;&lt;strong&gt;)&lt;/strong&gt;&lt;/span&gt;&lt;span style="color: rgb(68, 68, 255);"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;a name="line103"&gt;103&lt;/a&gt;    &lt;span style="color: rgb(68, 68, 255);"&gt;&lt;strong&gt;}&lt;/strong&gt;&lt;/span&gt;&lt;br /&gt;&lt;a name="line104"&gt;104&lt;/a&gt;&lt;br /&gt;&lt;a name="line105"&gt;105&lt;/a&gt;    &lt;strong&gt;if&lt;/strong&gt; &lt;span style="color: rgb(68, 68, 255);"&gt;&lt;strong&gt;(&lt;/strong&gt;&lt;/span&gt;&lt;span style="color: rgb(32, 64, 160);"&gt;writer&lt;/span&gt; &lt;span style="color: rgb(68, 68, 255);"&gt;!&lt;/span&gt;&lt;span style="color: rgb(68, 68, 255);"&gt;=&lt;/span&gt; &lt;strong&gt;null&lt;/strong&gt;&lt;span style="color: rgb(68, 68, 255);"&gt;&lt;strong&gt;)&lt;/strong&gt;&lt;/span&gt; &lt;span style="color: rgb(68, 68, 255);"&gt;&lt;strong&gt;{&lt;/strong&gt;&lt;/span&gt;&lt;br /&gt;&lt;a name="line106"&gt;106&lt;/a&gt;     &lt;span style="color: rgb(32, 64, 160);"&gt;writer&lt;/span&gt;.&lt;span style="color: rgb(32, 64, 160);"&gt;close&lt;/span&gt;&lt;span style="color: rgb(68, 68, 255);"&gt;&lt;strong&gt;(&lt;/strong&gt;&lt;/span&gt;&lt;span style="color: rgb(68, 68, 255);"&gt;&lt;strong&gt;)&lt;/strong&gt;&lt;/span&gt;&lt;span style="color: rgb(68, 68, 255);"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;a name="line107"&gt;107&lt;/a&gt;    &lt;span style="color: rgb(68, 68, 255);"&gt;&lt;strong&gt;}&lt;/strong&gt;&lt;/span&gt;&lt;br /&gt;&lt;a name="line108"&gt;108&lt;/a&gt;    &lt;span style="color: rgb(32, 64, 160);"&gt;news&lt;/span&gt;.&lt;span style="color: rgb(32, 64, 160);"&gt;clear&lt;/span&gt;&lt;span style="color: rgb(68, 68, 255);"&gt;&lt;strong&gt;(&lt;/strong&gt;&lt;/span&gt;&lt;span style="color: rgb(68, 68, 255);"&gt;&lt;strong&gt;)&lt;/strong&gt;&lt;/span&gt;&lt;span style="color: rgb(68, 68, 255);"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;a name="line109"&gt;109&lt;/a&gt;   &lt;span style="color: rgb(68, 68, 255);"&gt;&lt;strong&gt;}&lt;/strong&gt;&lt;/span&gt;&lt;br /&gt;&lt;a name="line110"&gt;110&lt;/a&gt;  &lt;span style="color: rgb(68, 68, 255);"&gt;&lt;strong&gt;}&lt;/strong&gt;&lt;/span&gt;&lt;br /&gt;&lt;a name="line111"&gt;111&lt;/a&gt;&lt;br /&gt;&lt;a name="line112"&gt;112&lt;/a&gt;  &lt;span style="color: rgb(68, 68, 68);"&gt;&lt;i&gt;/**&lt;br /&gt;&lt;a name="line113"&gt;113&lt;/a&gt;   * Helper class used to parse Globovision news website&lt;br /&gt;&lt;a name="line114"&gt;114&lt;/a&gt;   * @author josevnz&lt;br /&gt;&lt;a name="line115"&gt;115&lt;/a&gt;   */&lt;/i&gt;&lt;/span&gt;&lt;br /&gt;&lt;a name="line116"&gt;116&lt;/a&gt;  &lt;strong&gt;class&lt;/strong&gt; &lt;span style="color: rgb(32, 64, 160);"&gt;GlobovisionParser&lt;/span&gt; &lt;strong&gt;extends&lt;/strong&gt; &lt;span style="color: rgb(32, 64, 160);"&gt;ParserCallback&lt;/span&gt; &lt;span style="color: rgb(68, 68, 255);"&gt;&lt;strong&gt;{&lt;/strong&gt;&lt;/span&gt;&lt;br /&gt;&lt;a name="line117"&gt;117&lt;/a&gt;&lt;br /&gt;&lt;a name="line118"&gt;118&lt;/a&gt;   &lt;strong&gt;private&lt;/strong&gt; &lt;strong&gt;boolean&lt;/strong&gt; &lt;span style="color: rgb(32, 64, 160);"&gt;getHeadline&lt;/span&gt; &lt;span style="color: rgb(68, 68, 255);"&gt;=&lt;/span&gt; &lt;strong&gt;false&lt;/strong&gt;&lt;span style="color: rgb(68, 68, 255);"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;a name="line119"&gt;119&lt;/a&gt;   &lt;strong&gt;private&lt;/strong&gt; &lt;span style="color: rgb(32, 64, 160);"&gt;AttributeSet&lt;/span&gt; &lt;span style="color: rgb(32, 64, 160);"&gt;attribute&lt;/span&gt;&lt;span style="color: rgb(68, 68, 255);"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;a name="line120"&gt;120&lt;/a&gt;   &lt;strong&gt;private&lt;/strong&gt; &lt;span style="color: rgb(32, 64, 160);"&gt;List&lt;/span&gt; &lt;span style="color: rgb(68, 68, 255);"&gt;&lt;&lt;/span&gt;&lt;span style="color: rgb(32, 64, 160);"&gt;SyndEntry&lt;/span&gt;&lt;span style="color: rgb(68, 68, 255);"&gt;&gt;&lt;/span&gt;&lt;span style="color: rgb(32, 64, 160);"&gt;entries&lt;/span&gt;&lt;span style="color: rgb(68, 68, 255);"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;a name="line121"&gt;121&lt;/a&gt;&lt;br /&gt;&lt;a name="line122"&gt;122&lt;/a&gt;   &lt;strong&gt;public&lt;/strong&gt; &lt;span style="color: rgb(32, 64, 160);"&gt;GlobovisionParser&lt;/span&gt;&lt;span style="color: rgb(68, 68, 255);"&gt;&lt;strong&gt;(&lt;/strong&gt;&lt;/span&gt;&lt;span style="color: rgb(32, 64, 160);"&gt;List&lt;/span&gt; &lt;span style="color: rgb(68, 68, 255);"&gt;&lt;&lt;/span&gt;&lt;span style="color: rgb(32, 64, 160);"&gt;SyndEntry&lt;/span&gt;&lt;span style="color: rgb(68, 68, 255);"&gt;&gt;&lt;/span&gt;&lt;span style="color: rgb(32, 64, 160);"&gt;entries&lt;/span&gt;&lt;span style="color: rgb(68, 68, 255);"&gt;&lt;strong&gt;)&lt;/strong&gt;&lt;/span&gt; &lt;span style="color: rgb(68, 68, 255);"&gt;&lt;strong&gt;{&lt;/strong&gt;&lt;/span&gt;&lt;br /&gt;&lt;a name="line123"&gt;123&lt;/a&gt;    &lt;strong&gt;this&lt;/strong&gt;.&lt;span style="color: rgb(32, 64, 160);"&gt;entries&lt;/span&gt; &lt;span style="color: rgb(68, 68, 255);"&gt;=&lt;/span&gt; &lt;span style="color: rgb(32, 64, 160);"&gt;entries&lt;/span&gt;&lt;span style="color: rgb(68, 68, 255);"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;a name="line124"&gt;124&lt;/a&gt;   &lt;span style="color: rgb(68, 68, 255);"&gt;&lt;strong&gt;}&lt;/strong&gt;&lt;/span&gt;&lt;br /&gt;&lt;a name="line125"&gt;125&lt;/a&gt;&lt;br /&gt;&lt;a name="line126"&gt;126&lt;/a&gt;   &lt;span style="color: rgb(68, 68, 68);"&gt;&lt;i&gt;/**&lt;br /&gt;&lt;a name="line127"&gt;127&lt;/a&gt;    * Globovision HTML is so broken than we will ignore the errors&lt;br /&gt;silently.&lt;br /&gt;&lt;a name="line128"&gt;128&lt;/a&gt;    * Increase the logger verbosity to see the errors&lt;br /&gt;&lt;a name="line129"&gt;129&lt;/a&gt;    */&lt;/i&gt;&lt;/span&gt;&lt;br /&gt;&lt;a name="line130"&gt;130&lt;/a&gt;   &lt;strong&gt;public&lt;/strong&gt; &lt;strong&gt;void&lt;/strong&gt; &lt;span style="color: rgb(32, 64, 160);"&gt;handleError&lt;/span&gt;&lt;span style="color: rgb(68, 68, 255);"&gt;&lt;strong&gt;(&lt;/strong&gt;&lt;/span&gt;&lt;span style="color: rgb(32, 64, 160);"&gt;String&lt;/span&gt; &lt;span style="color: rgb(32, 64, 160);"&gt;errorMsg&lt;/span&gt;, &lt;strong&gt;int&lt;/strong&gt; &lt;span style="color: rgb(32, 64, 160);"&gt;pos&lt;/span&gt;&lt;span style="color: rgb(68, 68, 255);"&gt;&lt;strong&gt;)&lt;/strong&gt;&lt;/span&gt; &lt;span style="color: rgb(68, 68, 255);"&gt;&lt;strong&gt;{&lt;/strong&gt;&lt;/span&gt;&lt;br /&gt;&lt;a name="line131"&gt;131&lt;/a&gt;    &lt;span style="color: rgb(32, 64, 160);"&gt;log&lt;/span&gt;.&lt;span style="color: rgb(32, 64, 160);"&gt;log&lt;/span&gt;&lt;span style="color: rgb(68, 68, 255);"&gt;&lt;strong&gt;(&lt;/strong&gt;&lt;/span&gt;&lt;span style="color: rgb(32, 64, 160);"&gt;Level&lt;/span&gt;.&lt;span style="color: rgb(32, 64, 160);"&gt;FINE&lt;/span&gt;, &lt;span style="color: rgb(32, 64, 160);"&gt;String&lt;/span&gt;.&lt;span style="color: rgb(32, 64, 160);"&gt;format&lt;/span&gt;&lt;span style="color: rgb(68, 68, 255);"&gt;&lt;strong&gt;(&lt;/strong&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 128, 0);"&gt;"%s, %d"&lt;/span&gt;, &lt;span style="color: rgb(32, 64, 160);"&gt;errorMsg&lt;/span&gt;, &lt;span style="color: rgb(32, 64, 160);"&gt;pos&lt;/span&gt;&lt;span style="color: rgb(68, 68, 255);"&gt;&lt;strong&gt;)&lt;/strong&gt;&lt;/span&gt;&lt;span style="color: rgb(68, 68, 255);"&gt;&lt;strong&gt;)&lt;/strong&gt;&lt;/span&gt;&lt;span style="color: rgb(68, 68, 255);"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;a name="line132"&gt;132&lt;/a&gt;   &lt;span style="color: rgb(68, 68, 255);"&gt;&lt;strong&gt;}&lt;/strong&gt;&lt;/span&gt;&lt;br /&gt;&lt;a name="line133"&gt;133&lt;/a&gt;&lt;br /&gt;&lt;a name="line134"&gt;134&lt;/a&gt;   &lt;span style="color: rgb(68, 68, 68);"&gt;&lt;i&gt;/**&lt;br /&gt;&lt;a name="line135"&gt;135&lt;/a&gt;    * Looking for:  tag = "a" and  attr{href} =~ /news.php?nid=\d+/&lt;br /&gt;&lt;a name="line136"&gt;136&lt;/a&gt;    * @param t Tag&lt;br /&gt;&lt;a name="line137"&gt;137&lt;/a&gt;    * @param a Attribute set&lt;br /&gt;&lt;a name="line138"&gt;138&lt;/a&gt;    * @param pos position&lt;br /&gt;&lt;a name="line139"&gt;139&lt;/a&gt;    */&lt;/i&gt;&lt;/span&gt;&lt;br /&gt;&lt;a name="line140"&gt;140&lt;/a&gt;   &lt;strong&gt;public&lt;/strong&gt; &lt;strong&gt;void&lt;/strong&gt; &lt;span style="color: rgb(32, 64, 160);"&gt;handleStartTag&lt;/span&gt;&lt;span style="color: rgb(68, 68, 255);"&gt;&lt;strong&gt;(&lt;/strong&gt;&lt;/span&gt;&lt;span style="color: rgb(32, 64, 160);"&gt;Tag&lt;/span&gt; &lt;span style="color: rgb(32, 64, 160);"&gt;t&lt;/span&gt;, &lt;span style="color: rgb(32, 64, 160);"