<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>KodeGeek &#187; open source</title>
	<atom:link href="http://kodegeek.com/blog/tag/open-source/feed/" rel="self" type="application/rss+xml" />
	<link>http://kodegeek.com/blog</link>
	<description>Programación, fitness, interés geek</description>
	<lastBuildDate>Sun, 29 Apr 2012 17:29:57 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.2</generator>
		<item>
		<title>Mantenimiento de PingBlog: Versión 1.1</title>
		<link>http://kodegeek.com/blog/2008/08/28/mantenimiento-de-pingblog-version-11/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=mantenimiento-de-pingblog-version-11</link>
		<comments>http://kodegeek.com/blog/2008/08/28/mantenimiento-de-pingblog-version-11/#comments</comments>
		<pubDate>Thu, 28 Aug 2008 23:26:00 +0000</pubDate>
		<dc:creator>josevnz</dc:creator>
				<category><![CDATA[java]]></category>
		<category><![CDATA[open source]]></category>
		<category><![CDATA[ping]]></category>
		<category><![CDATA[pingblog]]></category>

		<guid isPermaLink="false">http://kodegeek.com/blog/?p=1279</guid>
		<description><![CDATA[Bueno, En una tarde de ocio me puse a jugar un poco con el código de PingBlog y corregí un mundo de cosas que no me gustaban. Ya descargué las versiones binarias y fuentes de PingBlog en Source Forge y por supuesto actualice las copias que pueden ser ejecutadas usando Java Webstart desde Kodegeek.com ¡Que [...]]]></description>
			<content:encoded><![CDATA[<p>Bueno,</p>
<p>En una tarde de ocio me puse a jugar un poco con el código de PingBlog y corregí un mundo de cosas que no me gustaban. Ya descargué las versiones binarias y fuentes de PingBlog en Source Forge y por supuesto actualice las copias que pueden ser ejecutadas usando Java Webstart desde Kodegeek.com</p>
<p><a href="http://sourceforge.net/project/platformdownload.php?group_id=135744">¡Que lo disfruten!</a></p>
<p>Buscar en otros sitios:</p>
<p>Blogalaxia:<a href="http://www.blogalaxia.com/tags/pingblog" rel="tag">pingblog</a>, <a href="http://www.blogalaxia.com/tags/ping" rel="tag">ping</a>, <a href="http://www.blogalaxia.com/tags/open+source" rel="tag">open source</a>, <a href="http://www.blogalaxia.com/tags/java" rel="tag">java</a><br />Technorati:<a href="http://technorati.com/tag/pingblog" rel="tag">pingblog</a>, <a href="http://technorati.com/tag/ping" rel="tag">ping</a>, <a href="http://technorati.com/tag/open+source" rel="tag">open source</a>, <a href="http://technorati.com/tag/java" rel="tag">java</a><br />To2blogs:<a href="http://www.to2blogs.com/tag/pingblog" rel="tag">pingblog</a>, <a href="http://www.to2blogs.com/tag/ping" rel="tag">ping</a>, <a href="http://www.to2blogs.com/tag/open+source" rel="tag">open source</a>, <a href="http://www.to2blogs.com/tag/java" rel="tag">java</a><br />Del.icio.us:<a href="http://del.icio.us/tag/pingblog" rel="tag">pingblog</a>, <a href="http://del.icio.us/tag/ping" rel="tag">ping</a>, <a href="http://del.icio.us/tag/open+source" rel="tag">open source</a>, <a href="http://del.icio.us/tag/java" rel="tag">java</a></p>
]]></content:encoded>
			<wfw:commentRss>http://kodegeek.com/blog/2008/08/28/mantenimiento-de-pingblog-version-11/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>LWUIT: Sexy and OpenSource Java</title>
		<link>http://kodegeek.com/blog/2008/08/28/lwuit-sexy-and-opensource-java/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=lwuit-sexy-and-opensource-java</link>
		<comments>http://kodegeek.com/blog/2008/08/28/lwuit-sexy-and-opensource-java/#comments</comments>
		<pubDate>Thu, 28 Aug 2008 13:51:00 +0000</pubDate>
		<dc:creator>josevnz</dc:creator>
				<category><![CDATA[java]]></category>
		<category><![CDATA[android]]></category>
		<category><![CDATA[lwuit]]></category>
		<category><![CDATA[open source]]></category>

		<guid isPermaLink="false">http://kodegeek.com/blog/?p=1278</guid>
		<description><![CDATA[Si esto se puede hacer en un teléfono normal sin necesidad de comprar el telefono de Jesus (si, en Ingles suena mejor, The Jesus Phone) entonces de verdad se ve interesante (aquí tienen otro video con menor detalle). Definitivamente el mercado de los teléfonos celulares es la siguiente arena a conquistar; Todo el mundo tiene [...]]]></description>
			<content:encoded><![CDATA[<p><object height="344" width="425"><param name="movie" value="http://www.youtube.com/v/RzgWqOpNJIU&amp;hl=en&amp;fs=1"><param name="allowFullScreen" value="true"><embed src="http://www.youtube.com/v/RzgWqOpNJIU&amp;hl=en&amp;fs=1" type="application/x-shockwave-flash" allowfullscreen="true" height="344" width="425"></embed></object></p>
<p>Si esto se puede hacer en un teléfono normal sin necesidad de comprar el telefono de Jesus (si, en Ingles suena mejor, <span style="font-style: italic;">The Jesus Phone</span>) entonces de verdad se ve interesante (aquí tienen <a href="http://www.youtube.com/watch?v=CBdxQSmCnWs">otro</a> video con menor detalle).</p>
<p>Definitivamente el mercado de los teléfonos celulares es la siguiente arena a conquistar; Todo el mundo tiene uno y cada vez son más poderosos. El hecho de que hayan herramientas como <a href="https://lwuit.dev.java.net/tutorial/index.html">LWUIT</a>, <a href="http://code.google.com/android/">Android</a>, todas escritas en Java, y otros dice algo sobre que debemos aprender para estar montados en esta nueva ola <img src='http://kodegeek.com/blog/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' /> </p>
<p>Buscar en otros sitios:</p>
<p>Blogalaxia:<a href="http://www.blogalaxia.com/tags/java" rel="tag">java</a>, <a href="http://www.blogalaxia.com/tags/lwuit" rel="tag">lwuit</a>, <a href="http://www.blogalaxia.com/tags/open+source" rel="tag">open source</a>, <a href="http://www.blogalaxia.com/tags/android" rel="tag">android</a><br />Technorati:<a href="http://technorati.com/tag/java" rel="tag">java</a>, <a href="http://technorati.com/tag/lwuit" rel="tag">lwuit</a>, <a href="http://technorati.com/tag/open+source" rel="tag">open source</a>, <a href="http://technorati.com/tag/android" rel="tag">android</a><br />To2blogs:<a href="http://www.to2blogs.com/tag/java" rel="tag">java</a>, <a href="http://www.to2blogs.com/tag/lwuit" rel="tag">lwuit</a>, <a href="http://www.to2blogs.com/tag/open+source" rel="tag">open source</a>, <a href="http://www.to2blogs.com/tag/android" rel="tag">android</a><br />Del.icio.us:<a href="http://del.icio.us/tag/java" rel="tag">java</a>, <a href="http://del.icio.us/tag/lwuit" rel="tag">lwuit</a>, <a href="http://del.icio.us/tag/open+source" rel="tag">open source</a>, <a href="http://del.icio.us/tag/android" rel="tag">android</a></p>
]]></content:encoded>
			<wfw:commentRss>http://kodegeek.com/blog/2008/08/28/lwuit-sexy-and-opensource-java/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Ardunio + España = Squidbee</title>
		<link>http://kodegeek.com/blog/2008/07/01/ardunio-espana-squidbee/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=ardunio-espana-squidbee</link>
		<comments>http://kodegeek.com/blog/2008/07/01/ardunio-espana-squidbee/#comments</comments>
		<pubDate>Tue, 01 Jul 2008 10:00:00 +0000</pubDate>
		<dc:creator>josevnz</dc:creator>
				<category><![CDATA[arduino]]></category>
		<category><![CDATA[open source]]></category>
		<category><![CDATA[sensor]]></category>
		<category><![CDATA[squidbee]]></category>

		<guid isPermaLink="false">http://kodegeek.com/blog/?p=1271</guid>
		<description><![CDATA[Bueno, ¿qué más se puede pedir cuando se hace una combinación de hardware y software abierto, con sabor Español? Hola,he visto en tu blog kodegeek que te interesan las redes sensoriales ypor este posthttp://kodegeek.com/2008/05/ms-java-y-hardware-arduino.shtml, quebuscabas alternativas open source. Me gustaría que le echases un ojo aSquidBee (www.squidbee.org) el cual es un proyecto de software yhardware [...]]]></description>
			<content:encoded><![CDATA[<p>Bueno, ¿qué más se puede pedir cuando se hace una combinación de hardware y software abierto, con sabor Español?</p>
<blockquote><p>Hola,<br />he visto en tu blog kodegeek que te interesan las redes sensoriales y<br />por este post<br />http://kodegeek.com/2008/05/ms-java-y-hardware-arduino.shtml, que<br />buscabas alternativas open source. Me gustaría que le echases un ojo a<br /><span style="font-weight: bold;">SquidBee (</span><a style="font-weight: bold;" href="http://www.squidbee.org/">www.squidbee.org</a><span style="font-weight: bold;">)</span> el cual es un proyecto de software y<br />hardware libre basado en arduino que hemos hecho. Fue pensado con fines<br />docentes e investigadores, lo cual se nota (no sólo en su bajo precio)<br />sino en las listas de correo squidbee_news y squidbee_hacking, el propio<br />wiki de squidbee en contínuo crecimiento (el último tutorial muestra<br />cómo poder hacer desde 0 tu propio SquidBee:<br /><a href="http://www.libelium.com/squidbee/index.php?title=Projects"><span style="font-weight: bold;">http://www.libelium.com/squidbee/index.php?title=Projects</span></a>. En este link,<br />existen otros tutoriales relacionados con el mote:<br /><a style="font-weight: bold;" href="http://www.sensor-networks.org/">http://www.sensor-networks.org</a>.</p>
<p>Por cierto, el diseño que aparece en <span style="font-style: italic;">Making Things Talk de ArduinoXbee</span><br /><span style="font-style: italic;">es nuestro <img src='http://kodegeek.com/blog/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' /> .</span></p>
<p>Espero que la información te sirva. Un saludo y enhorabuena por el blog,</p>
<p>&#8211;<br />Alicia Asín Pérez<br />Tlf: +34 976 54 74 92<br />http://www.libelium.com</p></blockquote>
<p>Vaya, realmente en Europa y Norteamerica el Arduino está volando alto. Pero y para los que vivimos fuera de Europa, ¿como hacemos?:</p>
<blockquote><p>Nosotros estamos en España y los kits pueden adquirirse en <a href="http://www.libelium.com/tienda/catalog/index.php?cPath=22">http://www.libelium.com/tienda/catalog/index.php?cPath=22</a>. La opción más económica es comprar un SquidBee from scratch y <span style="font-weight: bold;">soldárselo uno mismo</span>. Hay un tutorial de cómo hacer esto en www.sensor-networks.org. Por otra parte, hay una opción de envío muy económica por correo postal, tarda un poquito más en llegar pero es barato.</p></blockquote>
<p>Así que la imaginación es el límite. Por cierto, en al página web tienen un modelo para ponerle un GPS, la cabeza me quedó dando vueltas de sólo pensar las cosas que se pueden hacer <img src='http://kodegeek.com/blog/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' /> </p>
<p>Buscar en otros sitios:</p>
<p>Blogalaxia:<a href="http://www.blogalaxia.com/tags/squidbee" rel="tag">squidbee</a>, <a href="http://www.blogalaxia.com/tags/arduino" rel="tag">arduino</a>, <a href="http://www.blogalaxia.com/tags/open+source" rel="tag">open source</a>, <a href="http://www.blogalaxia.com/tags/sensor" rel="tag">sensor</a><br />Technorati:<a href="http://technorati.com/tag/squidbee" rel="tag">squidbee</a>, <a href="http://technorati.com/tag/arduino" rel="tag">arduino</a>, <a href="http://technorati.com/tag/open+source" rel="tag">open source</a>, <a href="http://technorati.com/tag/sensor" rel="tag">sensor</a><br />To2blogs:<a href="http://www.to2blogs.com/tag/squidbee" rel="tag">squidbee</a>, <a href="http://www.to2blogs.com/tag/arduino" rel="tag">arduino</a>, <a href="http://www.to2blogs.com/tag/open+source" rel="tag">open source</a>, <a href="http://www.to2blogs.com/tag/sensor" rel="tag">sensor</a><br />Del.icio.us:<a href="http://del.icio.us/tag/squidbee" rel="tag">squidbee</a>, <a href="http://del.icio.us/tag/arduino" rel="tag">arduino</a>, <a href="http://del.icio.us/tag/open+source" rel="tag">open source</a>, <a href="http://del.icio.us/tag/sensor" rel="tag">sensor</a></p>
]]></content:encoded>
			<wfw:commentRss>http://kodegeek.com/blog/2008/07/01/ardunio-espana-squidbee/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>¡Resulta que ahora Java es socialista!</title>
		<link>http://kodegeek.com/blog/2008/06/23/%c2%a1resulta-que-ahora-java-es-socialista/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=%25c2%25a1resulta-que-ahora-java-es-socialista</link>
		<comments>http://kodegeek.com/blog/2008/06/23/%c2%a1resulta-que-ahora-java-es-socialista/#comments</comments>
		<pubDate>Mon, 23 Jun 2008 10:05:00 +0000</pubDate>
		<dc:creator>josevnz</dc:creator>
				<category><![CDATA[java]]></category>
		<category><![CDATA[decreto 3390]]></category>
		<category><![CDATA[open source]]></category>
		<category><![CDATA[socialismo]]></category>
		<category><![CDATA[software libre]]></category>
		<category><![CDATA[venezuela]]></category>

		<guid isPermaLink="false">http://kodegeek.com/blog/?p=1267</guid>
		<description><![CDATA[Bueno, hay ciertos temas que uno da por acabados (si, el enlace a mi articulo es del 2005), sobre todo cuando hay evidencias de sobra que indican que debería ser así, y sin embargo estos vuelven a aparecer. En este caso es el empeño de Satanizar al lenguaje (el cual ahora es Open Source y [...]]]></description>
			<content:encoded><![CDATA[<p>Bueno, <a href="http://kodegeek.com/2005/08/las-politicas-de-java-o-como-el.shtml">hay ciertos temas que uno da por acabados</a> (si, el enlace a mi articulo es del<span style="font-style: italic;"> 2005</span>), sobre todo cuando hay evidencias de sobra que indican que debería ser así, y sin embargo estos vuelven a aparecer. En este caso es el empeño de <a href="http://kodegeek.com/2005/10/porqu-me-ladilla-el-fanatismo-de-los.html">Satanizar al lenguaje</a> (el cual ahora es Open Source y cuenta con una distribución completamente funcional en Fedora Core, <a href="http://blog.softwhere.org/archives/196">llamada <span style="font-weight: bold;">IceTea</span></a>). El anuncio me llegó por el grupo de Yahoo <a href="http://tech.groups.yahoo.com/group/SoftwareVen/message/584">SoftwareVen</a>:</p>
<p>
<blockquote>Como parte del trabajo de estudios de las tecnologías libres el Centro<br />Nacional de Desarrollo e Investigación en Tecnologías Libres -<br />CENDITEL [0] ha publicado un documento titulado &#8220;Pertinencia de la<br />tecnología Java por y para el Estado Venezolano&#8221; [1].</p>
<p>El mismo esta a disposición para el análisis y discusión sobre la<br />temática, sean bienvenidos a participar y compartir ideas en el foro<br />de discusión de CENDITEL [2] en la temática destinada para esto<br />llamada &#8220;Publicado documento tecnología Java&#8221; [3].</p>
<p>[0] <a href="http://www.cenditel.gob.ve/FundacionCenditel" target="_blank">http://www.cenditel.gob.ve<wbr>/FundacionCenditel</a><br />[1] <a href="http://www.cenditel.gob.ve/files/u1/PertinenciaJavaVenezuela.pdf" target="_blank">http://www.cenditel.gob.ve<wbr>/files/u1/PertinenciaJavaVenez<wbr>uela.pdf</a><br />[2] <a href="http://www.cenditel.gob.ve/foros/" target="_blank">http://www.cenditel.gob.ve<wbr>/foros/</a><br />[3] <a href="http://www.cenditel.gob.ve/foros/viewtopic.php?p=28#28" target="_blank">http://www.cenditel.gob.ve<wbr>/foros/viewtopic.php?p=28#28</a><br />&#8211;<br />Atentamente</p>
<p>T.S.U. Leonardo Caballero<br />E-Mail: leonardocaballero at <a href="http://gmail.com/" target="_blank">gmail.com</a>, lcaballero at <a href="http://linuxmail.org/" target="_blank">linuxmail.org</a></p></blockquote>
<p>Debo comenzar diciendo que me fastidia de sobre manera el fanatismo de los programadores. No sólo Leonardo Caballero se empeña en pintar a Sun como la corporación que se va a encarga de quitarle a Venezuela su autonomía tecnológica sino que además ignora (a estas alturas) la existencia de implementaciones completamente funcionales como <a href="http://blog.softwhere.org/archives/199">IceTea</a> y <a href="http://kodegeek.com/2005/10/porqu-me-ladilla-el-fanatismo-de-los.html">Classpath</a> en Linux.</p>
<p>Este trabajo insiste en mezclar nacionalismo, tendencias politicias como el socialismo pero sin llegar a proponer alternativas ya que sólo se limita a nombrar ciertos proyectos de software libre como Linux, Ruby, Subversion entre otros. Incluso se atreve a catalogar al lenguaje como mediocre en diseño:</p>
<blockquote><p>El tema se planteó recientemente en la lista de discusión de SOLVE, y allí <span style="font-style: italic;">José Luis  Rey </span>(2008) argumentó que el lenguaje de programación Java “<span style="font-weight: bold;">es un lenguaje </span><br /><span style="font-weight: bold;">mediocre, que no permite implementar técnicas de programación, que todo </span><span style="font-weight: bold;">programador debería conocer y dominar. Lo peor es que ahora estoy seguro de que </span><span style="font-weight: bold;">eso es así por imposición”</span>. Señala que aunque el diseñador de Scheme fue contratado en la concepción de Java, en el resultado final se <span style="font-style: italic;">eliminaron todas las capacidades poco convencionales como la herencia múltiple,</span> para evitar que el lenguaje fuera demasiado avanzado. Así, Java la mediocridad de java no es casual sino intencionada5. Además, <span style="font-style: italic;">el lenguaje Java cuenta con un sistema de tipo de datos estático y simplista</span> que no permite el manejo de características más<br />avanzadas <span style="font-style: italic;">como metaprogramación o programación funcional.</span></p></blockquote>
<p>El pasaje está genial. Ignora completamente el hecho de que Java fué diseñado para simplificar el desarrollo de aplicaciones y que es una mejora sustancial sobre su predecesor, C++. Por ejemplo:
<ul>
<li><span style="font-weight: bold;">Java es un lenguaje mediocre</span>: Seguro, soporte de un API completo como Swing para el desarrollo de interfaces gráficas (más completo que<span style="font-style: italic;"> TK</span> y más fácil de usar que<span style="font-style: italic;"> Motiff</span>), soporte de Threads, Networking y Garbage Collection dentro del mismo lenguaje. Ah, y que puede correr en cualquier dispositivo ya que todos los sistemas operativos importantes tienen una máquina virtual de Java. Si se refiere a que ciertas caracteristicas <span style="font-style: italic;">sintacticas</span> del lenguaje no están allí (como Schema) es un asunto diferente. ¿Porqué caer en los excesos? La comparación no es objetiva, y eso es malo.</li>
<li><span style="font-weight: bold;">Datos de tipo estático</span>: Creo que estos dos han pasado demasiado tiempo escribiendo scripts. Yo en particular me siento comodo sabiendo de antemano de que tipo de datos son mis variables y que el compilador me pueda decir que hay asignaciones equivocadas. Si quiero utilizar scripts con su sintaxis relajada, entonces tengo <a href="http://beanshell.org/">BeanShell</a> (Java pero con sintaxis más relajada, sin declaración de variables), <a href="http://jruby.org/">JRuby</a>, <a href="http://jython.org/">Jython</a>, etc. Si, mis &#8220;scripting languajes&#8221; corriendo sobre una máquina virtual conocida y probada <img src='http://kodegeek.com/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </li>
<li><span style="font-weight: bold;">Herencia múltiple</span>: ¿Usted realmente la necesita? Con un diseño cuidadoso y el uso de Interfaces se consigue lo mismo. <a href="http://www.parashift.com/c++-faq-lite/multiple-inheritance.html#faq-25.2">Herencia múltiple no es mala (de hecho es muy útil) </a>pero cuando se usa hay que ser cuidadoso, sabiendo que es lo que se quiere al final. También ignora el hecho de que utilizar herencia todo el tiempo para extender código es malo y que existen otros patrones de diseño que favorecen más la estabilidad del código en contra de cambios de la clase padre como la agregación (por ejemplo, el patrón de diseño <a href="http://en.wikipedia.org/wiki/Decorator_pattern">Decorator</a>).</li>
<li><span style="font-weight: bold;">No soporta programación funcional</span>: Java no es un lenguaje de programación funcional, sin embargo hay implementaciones de lenguajes funcionales que corren sobre la máquina virtual de Java como <a href="http://www.ibm.com/developerworks/java/library/j-scala01228.html">Scala</a>. En particular es irritante como los detractores de Java se empeñan es decir que &#8220;<span style="font-style: italic; font-weight: bold;">one size fits all</span>&#8221; (un sólo tamaño para todo) cuando deberian ser más pragmaticos diciendo que <span style="font-weight: bold; font-style: italic;">hay herramientas para cada problema</span>.</li>
</ul>
<p>Si usted alguna vez ha desarrollado código del lado del servidor o cliente usando Java, se encontrará agradecido que el lenguaje tenga un manejo elegante de <a href="http://www.ibm.com/developerworks/java/library/j-thread.html">Threads</a>, <a href="http://java.sun.com/docs/books/tutorial/networking/index.html">Networking</a> (con varios protocolos), y sobre todo el manejo de memoria automático usando <a href="http://www.artima.com/insidejvm/ed2/gcP.html">Garbage Collection</a>.</p>
<p>Todo el mundo sabe que Java no es perfecto y la escogencia del lenguaje a la hora de resolver un problema sigue dependiendo de la tarea, presupuesto y nivel de experticia de quienes van a desarrollar la solución. También en las Universidades deberian seguirse enseñando no uno sino varios lenguajes de programación, entre ellos C y C++ (pueden decir lo que quieran de esos dos lenguajes pero Linux, manejadores de dispositivos y muchas otras cosas aún están escritas en esos lenguajes).</p>
<p>¿Pero que tiene que ver eso con la &#8220;muestra independencia tecnológica&#8221;? <a href="http://www.cenditel.gob.ve/files/u1/PertinenciaJavaVenezuela.pdf">Si usted lee con cuidado el articulo</a>, se dará cuenta que el escrito es un arroz con mango de tecnología, sazonada con politica. Nada le prohibe a Venezuela desarrollar su propio lenguaje de programación, e incluso su propia implementación del lenguaje Java, como hizo la gente de <a href="http://www.kaffe.org/">Kafee</a>:</p>
<blockquote><p>Kaffe <span style="font-weight: bold; font-style: italic;">is a clean room</span> implementation of the Java virtual machine, plus the associated class libraries needed to provide a Java runtime environment. The Kaffe virtual machine is free software, licensed under the terms of the <a href="http://www.kaffe.org/ftp/pub/kaffe/COPYING">GNU General Public License</a>.</p></blockquote>
<p>El nuevo <a href="http://openjdk.java.net/">OpenJDK</a> o <a href="http://www.kaffe.org/">Kafee</a> <a href="http://www.pcpro.co.uk/news/52737/sco-lobbies-us-congress-against-the-gnu-gpl.html">no cuentan con ninguna restricción de exportación</a>, ya que están protegidos por la licencia GPL. Entonces, ¿que es lo que detiene a Venezuela en el desarrollo de una máquina virtual o lenguaje de programación?</p>
<p>Esa es la pregunta incomoda <span style="font-style: italic;">que ninguna de estas personas quiere responder</span>.</p>
<p>No importa si usted decide no utilizar Java. Pero al menos hagalo por las razones correctas, entre ellas porque no es la mejor herramienta para el problema que quiere resolver, no porque se lo dijeron en la escuela y usted se tomó el &#8220;<span style="font-style: italic;">cool aid</span>&#8221; sin pensarlo dos veces.<a href="javascript:void(0)" tabindex="10" onclick="return false;"><span></span></a></p>
<p>Buscar en otros sitios:</p>
<p>Blogalaxia:<a href="http://www.blogalaxia.com/tags/java" rel="tag">java</a>, <a href="http://www.blogalaxia.com/tags/venezuela" rel="tag">venezuela</a>, <a href="http://www.blogalaxia.com/tags/socialismo" rel="tag">socialismo</a>, <a href="http://www.blogalaxia.com/tags/decreto+3390" rel="tag">decreto 3390</a>, <a href="http://www.blogalaxia.com/tags/open+source" rel="tag">open source</a>, <a href="http://www.blogalaxia.com/tags/software+libre" rel="tag">software libre</a><br />Technorati:<a href="http://technorati.com/tag/java" rel="tag">java</a>, <a href="http://technorati.com/tag/venezuela" rel="tag">venezuela</a>, <a href="http://technorati.com/tag/socialismo" rel="tag">socialismo</a>, <a href="http://technorati.com/tag/decreto+3390" rel="tag">decreto 3390</a>, <a href="http://technorati.com/tag/open+source" rel="tag">open source</a>, <a href="http://technorati.com/tag/software+libre" rel="tag">software libre</a><br />To2blogs:<a href="http://www.to2blogs.com/tag/java" rel="tag">java</a>, <a href="http://www.to2blogs.com/tag/venezuela" rel="tag">venezuela</a>, <a href="http://www.to2blogs.com/tag/socialismo" rel="tag">socialismo</a>, <a href="http://www.to2blogs.com/tag/decreto+3390" rel="tag">decreto 3390</a>, <a href="http://www.to2blogs.com/tag/open+source" rel="tag">open source</a>, <a href="http://www.to2blogs.com/tag/software+libre" rel="tag">software libre</a><br />Del.icio.us:<a href="http://del.icio.us/tag/java" rel="tag">java</a>, <a href="http://del.icio.us/tag/venezuela" rel="tag">venezuela</a>, <a href="http://del.icio.us/tag/socialismo" rel="tag">socialismo</a>, <a href="http://del.icio.us/tag/decreto+3390" rel="tag">decreto 3390</a>, <a href="http://del.icio.us/tag/open+source" rel="tag">open source</a>, <a href="http://del.icio.us/tag/software+libre" rel="tag">software libre</a></p>
]]></content:encoded>
			<wfw:commentRss>http://kodegeek.com/blog/2008/06/23/%c2%a1resulta-que-ahora-java-es-socialista/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>No tan estupido: StupidZombie.com</title>
		<link>http://kodegeek.com/blog/2008/04/22/no-tan-estupido-stupidzombiecom/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=no-tan-estupido-stupidzombiecom</link>
		<comments>http://kodegeek.com/blog/2008/04/22/no-tan-estupido-stupidzombiecom/#comments</comments>
		<pubDate>Wed, 23 Apr 2008 03:25:00 +0000</pubDate>
		<dc:creator>josevnz</dc:creator>
				<category><![CDATA[java]]></category>
		<category><![CDATA[blog]]></category>
		<category><![CDATA[open source]]></category>
		<category><![CDATA[ping]]></category>
		<category><![CDATA[stupidzombie.com]]></category>

		<guid isPermaLink="false">http://kodegeek.com/blog/?p=1245</guid>
		<description><![CDATA[Vaya, hoy vengo de un día brutal en la oficina (y una cena en grupo la cual consistió en una deliciosa cena con comida Griega y su respectivo café), trabajando en un proyecto delicado (estoy acomodando todo el framework de compilación en instalación del nuestra aplicación de trading, un monstrico de 8 años de edad). [...]]]></description>
			<content:encoded><![CDATA[<p>Vaya, hoy vengo de un día brutal en la oficina (<span style="font-style: italic;">y una cena en grupo la cual consistió en una deliciosa cena con comida Griega y su respectivo café</span>), trabajando en un proyecto delicado (estoy acomodando todo el framework de compilación en instalación del nuestra aplicación de <span style="font-style: italic;">trading</span>, 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.</p>
<p>¡Wooohooooo!</p>
<p>Pero no les quería hablar de eso, sino de como hace unos días escribí sobre la muerte de <a href="http://kodegeek.com/2008/04/pingblog-qepd.shtml">PingBlog</a>.</p>
<p>¿<span style="font-style: italic;">Que significa dejar atrás PingBlog para mi</span>? Varias cosas, entre ellas:
<ul>
<li><a href="http://svnbook.red-bean.com/">Aprendiender Subversion</a>: 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.</li>
<li><a href="https://stupidzombie.dev.java.net/">Hospedar el proyecto en Java.net</a>. Si, <a href="http://sf.net/">Source Forge</a> 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).</li>
<li>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 <img src='http://kodegeek.com/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </li>
<li>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 <img src='http://kodegeek.com/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </li>
</ul>
<p>Asi que como ya ven, cosas buenas vienen para StupidZombie.</p>
<p>Buscar en otros sitios:</p>
<p>Blogalaxia:<a href="http://www.blogalaxia.com/tags/stupidzombie.com" rel="tag">stupidzombie.com</a>, <a href="http://www.blogalaxia.com/tags/ping" rel="tag">ping</a>, <a href="http://www.blogalaxia.com/tags/blog" rel="tag">blog</a>, <a href="http://www.blogalaxia.com/tags/open+source" rel="tag">open source</a>, <a href="http://www.blogalaxia.com/tags/java" rel="tag">java</a><br />Technorati:<a href="http://technorati.com/tag/stupidzombie.com" rel="tag">stupidzombie.com</a>, <a href="http://technorati.com/tag/ping" rel="tag">ping</a>, <a href="http://technorati.com/tag/blog" rel="tag">blog</a>, <a href="http://technorati.com/tag/open+source" rel="tag">open source</a>, <a href="http://technorati.com/tag/java" rel="tag">java</a><br />To2blogs:<a href="http://www.to2blogs.com/tag/stupidzombie.com" rel="tag">stupidzombie.com</a>, <a href="http://www.to2blogs.com/tag/ping" rel="tag">ping</a>, <a href="http://www.to2blogs.com/tag/blog" rel="tag">blog</a>, <a href="http://www.to2blogs.com/tag/open+source" rel="tag">open source</a>, <a href="http://www.to2blogs.com/tag/java" rel="tag">java</a><br />Del.icio.us:<a href="http://del.icio.us/tag/stupidzombie.com" rel="tag">stupidzombie.com</a>, <a href="http://del.icio.us/tag/ping" rel="tag">ping</a>, <a href="http://del.icio.us/tag/blog" rel="tag">blog</a>, <a href="http://del.icio.us/tag/open+source" rel="tag">open source</a>, <a href="http://del.icio.us/tag/java" rel="tag">java</a></p>
]]></content:encoded>
			<wfw:commentRss>http://kodegeek.com/blog/2008/04/22/no-tan-estupido-stupidzombiecom/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>PingBlog: Q.E.P.D</title>
		<link>http://kodegeek.com/blog/2008/04/20/pingblog-qepd/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=pingblog-qepd</link>
		<comments>http://kodegeek.com/blog/2008/04/20/pingblog-qepd/#comments</comments>
		<pubDate>Mon, 21 Apr 2008 00:10:00 +0000</pubDate>
		<dc:creator>josevnz</dc:creator>
				<category><![CDATA[open source]]></category>
		<category><![CDATA[pingblog]]></category>

		<guid isPermaLink="false">http://kodegeek.com/blog/?p=1244</guid>
		<description><![CDATA[Todas las cosas llegan a su fin y hoy, después de mucho tiempo me decidí a matar a PingBlog. 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. ¿Esta realmente muerto o no? Bueno, en unos días [...]]]></description>
			<content:encoded><![CDATA[<p>Todas las cosas llegan a su fin y hoy, después de mucho tiempo me decidí a matar a <a href="https://sourceforge.net/projects/pinblog">PingBlog</a>. 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.</p>
<p>¿Esta realmente muerto o no?</p>
<p>Bueno, en unos días haré un anuncio aquí en el blog. Pero por ahora <span style="font-style: italic;">PingBlog</span> está muerto de seguro <img src='http://kodegeek.com/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>Buscar en otros sitios:</p>
<p>Blogalaxia:<a href="http://www.blogalaxia.com/tags/pingblog" rel="tag">pingblog</a>, <a href="http://www.blogalaxia.com/tags/open+source" rel="tag">open source</a><br />Technorati:<a href="http://technorati.com/tag/pingblog" rel="tag">pingblog</a>, <a href="http://technorati.com/tag/open+source" rel="tag">open source</a><br />To2blogs:<a href="http://www.to2blogs.com/tag/pingblog" rel="tag">pingblog</a>, <a href="http://www.to2blogs.com/tag/open+source" rel="tag">open source</a><br />Del.icio.us:<a href="http://del.icio.us/tag/pingblog" rel="tag">pingblog</a>, <a href="http://del.icio.us/tag/open+source" rel="tag">open source</a></p>
]]></content:encoded>
			<wfw:commentRss>http://kodegeek.com/blog/2008/04/20/pingblog-qepd/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Convertidor de HTML a RSS para las noticias de Globovisión.</title>
		<link>http://kodegeek.com/blog/2007/10/14/convertidor-de-html-a-rss-para-las-noticias-de-globovision/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=convertidor-de-html-a-rss-para-las-noticias-de-globovision</link>
		<comments>http://kodegeek.com/blog/2007/10/14/convertidor-de-html-a-rss-para-las-noticias-de-globovision/#comments</comments>
		<pubDate>Mon, 15 Oct 2007 02:55:00 +0000</pubDate>
		<dc:creator>josevnz</dc:creator>
				<category><![CDATA[globovision]]></category>
		<category><![CDATA[html to rss]]></category>
		<category><![CDATA[open source]]></category>
		<category><![CDATA[perl]]></category>
		<category><![CDATA[rss]]></category>

		<guid isPermaLink="false">http://kodegeek.com/blog/?p=1190</guid>
		<description><![CDATA[Siguiendo con la fiebre de los Mashups hechos con Yahoo Pipes, llegué al punto en que decidí escribir un convertidor de HTML a RSS para Globovision. Como recordaran, Globovision no ofrece un feed RSS de sus noticias nacionales, lo cual es una verdadera lastima. Asi que con un poco de imaginación decidí escribir este programa [...]]]></description>
			<content:encoded><![CDATA[<p>Siguiendo con la fiebre de los<a href="http://kodegeek.com/labels/google%20reader.shtml"> Mashups hechos con Yahoo Pipes</a>, llegué al punto en que decidí escribir un convertidor de HTML a RSS para <a href="http://www.globovision.com/index.php">Globovision</a>. Como recordaran, <a href="http://www.globovision.com/index.php">Globovision</a> no ofrece un feed RSS de sus noticias nacionales, lo cual es una verdadera lastima.</p>
<p>Asi que con un poco de imaginación decidí escribir este programa en Perl:</p>
<pre><a name="line1"> 1</a> <span style="color: rgb(68, 68, 68);">#!/usr/bin/perl<a name="line2"> 2</a><a name="line3"> 3</a> </span><strong>use</strong> strict;<a name="line4"> 4</a> <strong>use</strong> LWP::UserAgent;<a name="line5"> 5</a> <strong>use</strong> HTML::Parser;<a name="line6"> 6</a> <strong>use</strong> XML::RSS;<a name="line7"> 7</a><a name="line8"> 8</a> <strong>my</strong> <span style="color: rgb(32, 64, 160);">$rss</span> = XML::RSS-><strong>new</strong><span style="color: rgb(68, 68, 255);"><strong>(</strong></span> version => <span style="color: rgb(0, 128, 0);">'0.9'</span> <span style="color: rgb(68, 68, 255);"><strong>)</strong></span>;<a name="line9"> 9</a><a name="line10">10</a> <strong>my</strong> <span style="color: rgb(32, 64, 160);">$rssFile</span> = <span style="color: rgb(0, 128, 0);">"<span style="color: rgb(32, 64, 160);">$ENV</span>{HOME}/globovision.rss"</span>;<a name="line11">11</a><a name="line12">12</a> <span style="color: rgb(32, 64, 160);">$rss</span>->channel<span style="color: rgb(68, 68, 255);"><strong>(</strong></span><a name="line13">13</a>  title        => <span style="color: rgb(0, 128, 0);">"Globovision.com Venezuelan News"</span>,<a name="line14">14</a>  <span style="color: rgb(165, 42, 42);"><strong>link</strong></span>         => <span style="color: rgb(0, 128, 0);">"http://globovision.com/"</span>,<a name="line15">15</a>  description  => <span style="color: rgb(0, 128, 0);">"Globovision.com news -Brough to you by http://KodeGeek.com"</span><span style="color: rgb(68, 68, 255);"><strong>)</strong></span>;<a name="line16">16</a><a name="line17">17</a> <span style="color: rgb(68, 68, 68);"># Be carefull with this one as nested elements can be ignored and<a name="line18">18</a> # HTML normally is not well formed!<a name="line19">19</a> </span><strong>my</strong> <span style="color: rgb(32, 64, 160);">@ignore_tags</span> = <span style="color: rgb(68, 68, 255);"><strong>(</strong></span><a name="line20">20</a>  <span style="color: rgb(0, 128, 0);">"head"</span>,<a name="line21">21</a>  <span style="color: rgb(0, 128, 0);">"h1"</span>,<a name="line22">22</a>  <span style="color: rgb(0, 128, 0);">"strong"</span>,<a name="line23">23</a>  <span style="color: rgb(0, 128, 0);">"form"</span><a name="line24">24</a>    <span style="color: rgb(68, 68, 255);"><strong>)</strong></span>;<a name="line25">25</a><a name="line26">26</a> <strong>my</strong> <span style="color: rgb(32, 64, 160);">$baseUrl</span> = <span style="color: rgb(0, 128, 0);">"http://globovision.com/"</span>;<a name="line27">27</a><a name="line28">28</a> <span style="color: rgb(68, 68, 68);"># We are only interested on the news from the first page,as more news come up it will push older news<a name="line29">29</a> </span><strong>my</strong> <span style="color: rgb(32, 64, 160);">$newsUrl</span> = <span style="color: rgb(0, 128, 0);">"<span style="color: rgb(32, 64, 160);">$baseUrl</span>"</span> . <span style="color: rgb(0, 128, 0);">"history.php?cha=1&amp;pag=1"</span>;<a name="line30">30</a><a name="line31">31</a> <strong>use</strong> constant DEFAULT_TIMEOUT<a name="line32">32</a>  => 180;<a name="line33">33</a><a name="line34">34</a> <strong>my</strong> <span style="color: rgb(32, 64, 160);">$agent</span> = LWP::UserAgent-><strong>new</strong><span style="color: rgb(68, 68, 255);"><strong>(</strong></span><span style="color: rgb(68, 68, 255);"><strong>{</strong></span><a name="line35">35</a>   agent => <span style="color: rgb(0, 128, 0);">'GlobovisionHtml2Rss.pl/kodegeek 0.1'</span>,<a name="line36">36</a>   timeout => DEFAULT_TIMEOUT<a name="line37">37</a>      <span style="color: rgb(68, 68, 255);"><strong>}</strong></span><span style="color: rgb(68, 68, 255);"><strong>)</strong></span>;<a name="line38">38</a> <strong>my</strong> <span style="color: rgb(32, 64, 160);">$response</span> = <span style="color: rgb(32, 64, 160);">$agent</span>->get<span style="color: rgb(68, 68, 255);"><strong>(</strong></span><span style="color: rgb(32, 64, 160);">$newsUrl</span><span style="color: rgb(68, 68, 255);"><strong>)</strong></span>;<a name="line39">39</a> <strong>if</strong> <span style="color: rgb(68, 68, 255);"><strong>(</strong></span>! <span style="color: rgb(32, 64, 160);">$response</span>->is_success<span style="color: rgb(68, 68, 255);"><strong>)</strong></span> <span style="color: rgb(68, 68, 255);"><strong>{</strong></span><a name="line40">40</a>  <strong>die</strong>  <span style="color: rgb(165, 42, 42);"><strong>sprintf</strong></span> <span style="color: rgb(0, 128, 0);">"[ERROR]: Unable to retrieve the HTMLfrom '<span style="color: rgb(32, 64, 160);">%s</span>', Status: '<span style="color: rgb(32, 64, 160);">%s</span>'"</span>, <span style="color: rgb(32, 64, 160);">$newsUrl</span>, <span style="color: rgb(32, 64, 160);">$response</span>->status_line;<a name="line41">41</a> <span style="color: rgb(68, 68, 255);"><strong>}</strong></span><a name="line42">42</a> <strong>my</strong> <span style="color: rgb(32, 64, 160);">$parser</span> = HTML::Parser-><strong>new</strong><span style="color: rgb(68, 68, 255);"><strong>(</strong></span><a name="line43">43</a>                         api_version => 3,<a name="line44">44</a>    start_h => <span style="color: rgb(68, 68, 255);"><strong>[</strong></span> \&amp;start_a, <span style="color: rgb(0, 128, 0);">"tagname, attr"</span> <span style="color: rgb(68, 68, 255);"><strong>]</strong></span>,<a name="line45">45</a>    text_h => <span style="color: rgb(68, 68, 255);"><strong>[</strong></span> \&amp;get_headline, <span style="color: rgb(0, 128, 0);">"dtext"</span> <span style="color: rgb(68, 68, 255);"><strong>]</strong></span><a name="line46">46</a>    <span style="color: rgb(68, 68, 255);"><strong>)</strong></span>;<a name="line47">47</a> <span style="color: rgb(32, 64, 160);">$parser</span>->ignore_tags<span style="color: rgb(68, 68, 255);"><strong>(</strong></span><span style="color: rgb(32, 64, 160);">@ignore_tags</span><span style="color: rgb(68, 68, 255);"><strong>)</strong></span>;<a name="line48">48</a> <strong>my</strong> <span style="color: rgb(32, 64, 160);">$headlineFlag</span>=0;<a name="line49">49</a> <strong>my</strong> <span style="color: rgb(32, 64, 160);">$currUrl</span>=<span style="color: rgb(165, 42, 42);"><strong>undef</strong></span>;<a name="line50">50</a> <span style="color: rgb(32, 64, 160);">$parser</span>->parse<span style="color: rgb(68, 68, 255);"><strong>(</strong></span><span style="color: rgb(32, 64, 160);">$response</span>->decoded_content<span style="color: rgb(68, 68, 255);"><strong>(</strong></span><span style="color: rgb(68, 68, 255);"><strong>)</strong></span><span style="color: rgb(68, 68, 255);"><strong>)</strong></span>;<a name="line51">51</a><a name="line52">52</a> <span style="color: rgb(32, 64, 160);">$rss</span>->save<span style="color: rgb(68, 68, 255);"><strong>(</strong></span><span style="color: rgb(32, 64, 160);">$rssFile</span><span style="color: rgb(68, 68, 255);"><strong>)</strong></span>;<a name="line53">53</a><a name="line54">54</a> <span style="color: rgb(68, 68, 68);"># ****** Functions used on the script *******<a name="line55">55</a><a name="line56">56</a> # Get the headline<a name="line57">57</a> </span><strong>sub<span style="color: rgb(255, 0, 0);"> get_headline</span> {</strong><a name="line58">58</a>  <strong>my</strong> <span style="color: rgb(32, 64, 160);">$headline</span> = <span style="color: rgb(32, 64, 160);">$_</span><span style="color: rgb(68, 68, 255);"><strong>[</strong></span>0<span style="color: rgb(68, 68, 255);"><strong>]</strong></span>;<a name="line59">59</a>  <strong>if</strong> <span style="color: rgb(68, 68, 255);"><strong>(</strong></span><span style="color: rgb(32, 64, 160);">$headlineFlag</span><span style="color: rgb(68, 68, 255);"><strong>)</strong></span> <span style="color: rgb(68, 68, 255);"><strong>{</strong></span><a name="line60">60</a>   <span style="color: rgb(32, 64, 160);">$rss</span>->add_item<span style="color: rgb(68, 68, 255);"><strong>(</strong></span> title => <span style="color: rgb(32, 64, 160);">$headline</span>, <span style="color: rgb(165, 42, 42);"><strong>link</strong></span> => <span style="color: rgb(32, 64, 160);">$currUrl</span><span style="color: rgb(68, 68, 255);"><strong>)</strong></span>;<a name="line61">61</a>   <span style="color: rgb(32, 64, 160);">$headlineFlag</span> = 0;<a name="line62">62</a>   <span style="color: rgb(32, 64, 160);">$currUrl</span>=<span style="color: rgb(165, 42, 42);"><strong>undef</strong></span>;<a name="line63">63</a>  <span style="color: rgb(68, 68, 255);"><strong>}</strong></span><a name="line64">64</a> <span style="color: rgb(68, 68, 255);"><strong>}</strong></span><a name="line65">65</a><a name="line66">66</a> <span style="color: rgb(68, 68, 68);"># Identify news items<a name="line67">67</a> </span><strong>sub<span style="color: rgb(255, 0, 0);"> start_a</span> {</strong><a name="line68">68</a>  <strong>my</strong> <span style="color: rgb(32, 64, 160);">$tagname</span> = <span style="color: rgb(32, 64, 160);">$_</span><span style="color: rgb(68, 68, 255);"><strong>[</strong></span>0<span style="color: rgb(68, 68, 255);"><strong>]</strong></span>;<a name="line69">69</a>  <strong>my</strong> <span style="color: rgb(32, 64, 160);">%attr</span> = <span style="color: rgb(32, 64, 160);">%{$_[1]}</span>;<a name="line70">70</a>  <strong>if</strong> <span style="color: rgb(68, 68, 255);"><strong>(</strong></span> <span style="color: rgb(68, 68, 255);"><strong>(</strong></span><span style="color: rgb(32, 64, 160);">$tagname</span> <strong>eq</strong> <span style="color: rgb(0, 128, 0);">"a"</span><span style="color: rgb(68, 68, 255);"><strong>)</strong></span> &amp;&amp; <span style="color: rgb(68, 68, 255);"><strong>(</strong></span><span style="color: rgb(32, 64, 160);">$attr</span><span style="color: rgb(68, 68, 255);"><strong>{</strong></span>href<span style="color: rgb(68, 68, 255);"><strong>}</strong></span> =~<span style="color: rgb(176, 0, 208);"> /^news.php?.nid=\d+/</span><span style="color: rgb(68, 68, 255);"><strong>)</strong></span> <span style="color: rgb(68, 68, 255);"><strong>)</strong></span> <span style="color: rgb(68, 68, 255);"><strong>{</strong></span><a name="line71">71</a>   <strong>my</strong> <span style="color: rgb(32, 64, 160);">$url</span> = <span style="color: rgb(32, 64, 160);">$baseUrl</span> . <span style="color: rgb(0, 128, 0);">"/"</span> . <span style="color: rgb(32, 64, 160);">$attr</span><span style="color: rgb(68, 68, 255);"><strong>{</strong></span>href<span style="color: rgb(68, 68, 255);"><strong>}</strong></span>;<a name="line72">72</a>   <span style="color: rgb(32, 64, 160);">$url</span> =~<span style="color: rgb(176, 0, 208);"> s/&amp;/&amp;/g</span>;<a name="line73">73</a>   <span style="color: rgb(32, 64, 160);">$currUrl</span> = <span style="color: rgb(32, 64, 160);">$url</span>;<a name="line74">74</a>   <span style="color: rgb(32, 64, 160);">$headlineFlag</span>=1;<a name="line75">75</a>  <span style="color: rgb(68, 68, 255);"><strong>}</strong></span><a name="line76">76</a> <span style="color: rgb(68, 68, 255);"><strong>}</strong></span><a name="line77">77</a> __END__<a name="line78">78</a> =head1 NAME<a name="line79">79</a><a name="line80">80</a> GlobovisionHtml2Rs<span style="color: rgb(176, 0, 208);">s.pl - Script to convert Globovision.com Venezuelalocal news from HTML to RSS.</span><a name="line81">81</a><a name="line82">82</a> =head1 DESCRIPTION<a name="line83">83</a><a name="line84">84</a> I <strong>use</strong> a combination of Yahoo Pipes <strong>and</strong> Google Reader to keep meupdated about news of any kind. However, some websites like<a name="line85">85</a> Globovision.com still don't have a proper RSS feed, so one dayI decided to create <strong>my</strong> own mashup :<span style="color: rgb(68, 68, 255);"><strong>)</strong></span>.<a name="line86">86</a><a name="line87">87</a> =head1 AUTHOR<a name="line88">88</a><a name="line89">89</a> Jose Vicente Nunez Zuleta <span style="color: rgb(68, 68, 255);"><strong>(</strong></span>josevnz<span style="color: rgb(32, 64, 160);">@kodegeek</span>.com<span style="color: rgb(68, 68, 255);"><strong>)</strong></span><a name="line90">90</a><a name="line91">91</a> =head1 BLOG<a name="line92">92</a><a name="line93">93</a> KodeGeek - http:<span style="color: rgb(176, 0, 208);">//</span>kodegeek.com<a name="line94">94</a><a name="line95">95</a> =head1 LICENSE<a name="line96">96</a><a name="line97">97</a> GPL<a name="line98">98</a><a name="line99">99</a> cut
</pre>
<p>Lo más fastidioso de este ejercicio fué instalar <a href="http://sourceforge.net/projects/expat">EXPAT</a> (para el procesamiento del XML del feed RSS) y el módulo parta crear el archivo RSS (me da un fastidio enorme aprender como es el formato resultante).</p>
<p>Mi proveedor de hosting gustosamente instaló el módulo <a href="http://perl-rss.sourceforge.net/">XML::RSS</a>. Después de probarlo un poco aquí les dejo las noticias de <a href="http://www.kodegeek.com/rss/globovision.rss">Globovisión para que la disfruten</a> (planeo actualizar el lector de noticias cada 10 minutos para no matar a mi servidor).</p>
<p>Blogalaxia.com:<a href="http://www.blogalaxia.com/tags/globovision">globovision</a>, <a href="http://www.blogalaxia.com/tags/rss">rss</a>, <a href="http://www.blogalaxia.com/tags/html+to+rss">html to rss</a>, <a href="http://www.blogalaxia.com/tags/perl">perl</a>, <a href="http://www.blogalaxia.com/tags/open+source">open source</a><br />Technorati.com:<a href="http://technorati.com/tag/globovision">globovision</a>, <a href="http://technorati.com/tag/rss">rss</a>, <a href="http://technorati.com/tag/html+to+rss">html to rss</a>, <a href="http://technorati.com/tag/perl">perl</a>, <a href="http://technorati.com/tag/open+source">open source</a></p>
]]></content:encoded>
			<wfw:commentRss>http://kodegeek.com/blog/2007/10/14/convertidor-de-html-a-rss-para-las-noticias-de-globovision/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Echando código: ¿Como saber de que tipo es un archivo, desde JAVA?</title>
		<link>http://kodegeek.com/blog/2007/09/22/echando-codigo-%c2%bfcomo-saber-de-que-tipo-es-un-archivo-desde-java/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=echando-codigo-%25c2%25bfcomo-saber-de-que-tipo-es-un-archivo-desde-java</link>
		<comments>http://kodegeek.com/blog/2007/09/22/echando-codigo-%c2%bfcomo-saber-de-que-tipo-es-un-archivo-desde-java/#comments</comments>
		<pubDate>Sun, 23 Sep 2007 03:28:00 +0000</pubDate>
		<dc:creator>josevnz</dc:creator>
				<category><![CDATA[java]]></category>
		<category><![CDATA[file]]></category>
		<category><![CDATA[jmimeinfo]]></category>
		<category><![CDATA[libmagic]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[open source]]></category>
		<category><![CDATA[venezuela]]></category>

		<guid isPermaLink="false">http://kodegeek.com/blog/?p=1187</guid>
		<description><![CDATA[Con JNI nos podemos ir a bajo nivel con el sistema operativo. Una rubia en la foto En un articulo anterior les habia comentado como trabajar con JNI y Java. En esta ocasión escogí un problema un poco más complicado, ya que el anterior parecía más un &#8220;Hola Mundo&#8221; que otra cosa (si, pasos de [...]]]></description>
			<content:encoded><![CDATA[<p><a title="Photo Sharing" href="http://www.flickr.com/photos/josevnz/7846958/"><img src="http://static.flickr.com/5/7846958_988056112f.jpg" alt="Nock Nock Neo" width="500" height="375" /><br />
Con JNI nos podemos ir a bajo nivel con el sistema operativo. Una rubia en la foto <img src='http://kodegeek.com/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </a></p>
<p>En un articulo anterior les habia comentado como trabajar con JNI y Java. En esta ocasión escogí un problema un poco más complicado, ya que el anterior parecía más un &#8220;Hola Mundo&#8221; que otra cosa (si, pasos de bebé).</p>
<p>Así que como la necesidad es la madre de todas las invenciones, me decidí a probar un ejemplo que tenia ganas de poner en práctica desde hace tiempo. En este caso se trata de como obtener el tipo de un archivo utilizando la herramienta file en UNIX, pero primero veamos si Java puede hacer lo mismo.</p>
<p>En Java podemos utilizar Swing para obtener el tipo del archivo. Leí que clase JFileChooser de Swing <a href="http://javaalmanac.com/egs/javax.swing.filechooser/GetFileType.html">te da información similar</a>, pero es basado en la extensión del archivo:<br />
<!--  .syntax0 { color: #000000; } .syntax1 { color: #cc0000; } .syntax2 { color: #ff8400; } .syntax3 { color: #6600cc; } .syntax4 { color: #cc6600; } .syntax5 { color: #ff0000; } .syntax6 { color: #9966ff; } .syntax7 { background: #ffffcc; color: #ff0066; } .syntax8 { color: #006699; font-weight: bold; } .syntax9 { color: #009966; font-weight: bold; } .syntax10 { color: #0099ff; font-weight: bold; } .syntax11 { color: #66ccff; font-weight: bold; } .syntax12 { color: #02b902; } .syntax13 { color: #ff00cc; } .syntax14 { color: #cc00cc; } .syntax15 { color: #9900cc; } .syntax16 { color: #6600cc; } .syntax17 { color: #0000ff; } .syntax18 { color: #000000; font-weight: bold; } .gutter { background: #dbdbdb; color: #000000; } .gutterH { background: #dbdbdb; color: #990066; } --><br />
&#8211;&gt;</p>
<pre><span class="gutter">   1:</span><span class="syntax9">import</span> javax.swing.JFileChooser;
<span class="gutter">   2:</span><span class="syntax9">import</span> java.io.File;
<span class="gutter">   3:</span>
<span class="gutter">   4:</span><span class="syntax8">public</span> <span class="syntax10">class</span> FileType <span class="syntax18">{</span>
<span class="gutterH">   5:</span>        <span class="syntax8">public</span> <span class="syntax8">static</span> <span class="syntax10">void</span> <span class="syntax6">main</span>(String [] args) <span class="syntax8">throws</span> Exception <span class="syntax18">{</span>
<span class="gutter">   6:</span>                JFileChooser view <span class="syntax18">=</span> <span class="syntax8">new</span> <span class="syntax6">JFileChooser</span>();
<span class="gutter">   7:</span>                String descr <span class="syntax18">=</span> view.<span class="syntax6">getTypeDescription</span>(<span class="syntax8">new</span> <span class="syntax6">File</span>(args[<span class="syntax5">0</span>]));
<span class="gutter">   8:</span>                System.out.<span class="syntax6">println</span>(<span class="syntax13">"</span><span class="syntax13">File</span><span class="syntax13"> </span><span class="syntax13">type</span><span class="syntax13"> </span><span class="syntax13">is:</span><span class="syntax13"> </span><span class="syntax13">"</span> <span class="syntax18">+</span> descr);
<span class="gutter">   9:</span>        <span class="syntax18">}</span>
<span class="gutterH">  10:</span><span class="syntax18">}</span></pre>
<p>Corriendo el programita:</p>
<blockquote><p>[josevnz@localhost ~]$ javac FileType.java -d .<br />
[josevnz@localhost ~]$ <span style="color: #ff0000;">java FileType DS156_Complete.pdf</span><br />
File type is: <span style="font-weight: bold;">Generic File</span><br />
[josevnz@localhost ~]$</p></blockquote>
<p><span><br />
Poco satisfactorio, por no decir otra cosa. Sin embargo todo el mundo sabe como obtener el tipo de un archivo desde unix, <span style="font-style: italic;">utilizando &#8216;file&#8217;</span>:<br />
</span></p>
<blockquote><p><span><span><span><span><span><span>[josevnz@localhost ~]$ <span style="color: #ff0000;">file DS156_Complete.pdf</span><br />
DS156_Complete.pdf: <span style="font-weight: bold;">PDF document, version 1.3</span><br />
[josevnz@localhost ~]$</span></span></span></span></span></span></p></blockquote>
<p><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span>File es una de mis herramientas favoritas. File <a href="http://linux.about.com/library/cmd/blcmdl5_magic.htm">consulta una base de datos</a> en la cual están registrados los formatos y utilizando reglas heuristicas determina el verdadero tipo del archivo. Ahora, supongamos que quiero tener la misma funcionalidad desde uno de mis programas en Java, ¿como hacer?<span><span><span><span><span><span><span><span><span><span> </span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></p>
<p>Lo primero es averiguar <a href="http://java.sun.com/docs/books/jni/index.html">como los verdaderos expertos</a> lo hacen. Hay que utilizar JNI ya que quiero tomar ventaja de que el código de file va a utilizar la base de datos que viene con cada sistema operativo UNIX y no me importa sacrificar portabilidad.</p>
<p>Así que después buscar cuidadosamente en Google, finalmente encontré la <a href="http://www.darwinsys.com/file/">página oficial del comando &#8216;file&#8217;</a>.</p>
<p>Sin embargo ya alguién se topó con el problema y decidió hacer una interfaz en Java la cual hace todo el trabajo: <a href="http://hedges.net/archives/2006/11/08/java-shared-mime-info/">Java shared mime info</a>.</p>
<p>Así que esas son las opciones. <a href="https://jmimeinfo.dev.java.net/">Les dejo la de Java</a>, aunque otros lenguajes ya tienen sus respectivas implementaciones.</p>
<p>Blogalaxia.com:<a href="http://www.blogalaxia.com/tags/file">file</a>, <a href="http://www.blogalaxia.com/tags/java">java</a>, <a href="http://www.blogalaxia.com/tags/linux">linux</a>, <a href="http://www.blogalaxia.com/tags/open+source">open source</a>, <a href="http://www.blogalaxia.com/tags/venezuela">venezuela</a>, <a href="http://www.blogalaxia.com/tags/libmagic">libmagic</a>, <a href="http://www.blogalaxia.com/tags/jmimeinfo">jmimeinfo</a><br />
Technorati.com:<a href="http://technorati.com/tag/file">file</a>, <a href="http://technorati.com/tag/java">java</a>, <a href="http://technorati.com/tag/linux">linux</a>, <a href="http://technorati.com/tag/open+source">open source</a>, <a href="http://technorati.com/tag/venezuela">venezuela</a>, <a href="http://technorati.com/tag/libmagic">libmagic</a>, <a href="http://technorati.com/tag/jmimeinfo">jmimeinfo</a></p>
<p><a rel="tag" href="http://www.blogalaxia.com/tags/open+source"></a></p>
]]></content:encoded>
			<wfw:commentRss>http://kodegeek.com/blog/2007/09/22/echando-codigo-%c2%bfcomo-saber-de-que-tipo-es-un-archivo-desde-java/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Sitio de Fedora 7 en Venezuela</title>
		<link>http://kodegeek.com/blog/2007/09/03/sitio-de-fedora-7-en-venezuela/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=sitio-de-fedora-7-en-venezuela</link>
		<comments>http://kodegeek.com/blog/2007/09/03/sitio-de-fedora-7-en-venezuela/#comments</comments>
		<pubDate>Tue, 04 Sep 2007 00:13:00 +0000</pubDate>
		<dc:creator>josevnz</dc:creator>
				<category><![CDATA[fedora core]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[open source]]></category>
		<category><![CDATA[redhat]]></category>
		<category><![CDATA[venezuela]]></category>

		<guid isPermaLink="false">http://kodegeek.com/blog/?p=1185</guid>
		<description><![CDATA[Bajate Fedora Linux De nuevo y gracias a esos buscadores que tengo corriendo todo el tiempo, me conseguí con un grupo de usuarios de Fedora 7 en Venezuela. El sitio luce interesante, falta ver que tanto les dura la mecha (como otros miles de sitios que comienzan hablando de Open Source en Venezuela y después [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://fedoraproject.org/get-fedora.html"><br /><img src="http://img483.imageshack.us/img483/6155/originalwd7.png" border="0" /><br />Bajate Fedora Linux</a></p>
<p>De nuevo y gracias a esos buscadores que tengo corriendo todo el tiempo, me conseguí con un <a href="http://www.fedora-ve.org/index.php">grupo de usuarios de Fedora 7 en Venezuela</a>.</p>
<p>El sitio luce interesante, falta ver que tanto les dura la mecha (como otros miles de sitios que comienzan hablando de Open Source en Venezuela y después se vuelven paja).</p>
<p>Les deseamos exito por acá, interesante iniciativa.</p>
<p>Blogalaxia.com:<a href="http://www.blogalaxia.com/tags/linux">linux</a>, <a href="http://www.blogalaxia.com/tags/fedora+core">fedora core</a>, <a href="http://www.blogalaxia.com/tags/redhat">redhat</a>, <a href="http://www.blogalaxia.com/tags/venezuela">venezuela</a>, <a href="http://www.blogalaxia.com/tags/open+source">open source</a><br />Technorati.com:<a href="http://technorati.com/tag/linux">linux</a>, <a href="http://technorati.com/tag/fedora+core">fedora core</a>, <a href="http://technorati.com/tag/redhat">redhat</a>, <a href="http://technorati.com/tag/venezuela">venezuela</a>, <a href="http://technorati.com/tag/open+source">open source</a></p>
]]></content:encoded>
			<wfw:commentRss>http://kodegeek.com/blog/2007/09/03/sitio-de-fedora-7-en-venezuela/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>MySQL y BitTorrent te hacen más dificil bajar el código fuente</title>
		<link>http://kodegeek.com/blog/2007/08/10/mysql-y-bittorrent-te-hacen-mas-dificil-bajar-el-codigo-fuente/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=mysql-y-bittorrent-te-hacen-mas-dificil-bajar-el-codigo-fuente</link>
		<comments>http://kodegeek.com/blog/2007/08/10/mysql-y-bittorrent-te-hacen-mas-dificil-bajar-el-codigo-fuente/#comments</comments>
		<pubDate>Fri, 10 Aug 2007 11:00:00 +0000</pubDate>
		<dc:creator>josevnz</dc:creator>
				<category><![CDATA[azureus]]></category>
		<category><![CDATA[bittorrent]]></category>
		<category><![CDATA[mysql]]></category>
		<category><![CDATA[open source]]></category>
		<category><![CDATA[postgresql]]></category>

		<guid isPermaLink="false">http://kodegeek.com/blog/?p=1174</guid>
		<description><![CDATA[Una semana mala para el mundo Open Source. Primero BitTorrent decide no dar el código fuente de su última versión (6.0). Al menos no fácilmente ya que hay que pedir una licencia de desarrollador (gratis). MySQL es más agresivo aún. El código Enterprise no estará disponible por FTP sino BitTorrent, excepto para usuarios pagos. Es [...]]]></description>
			<content:encoded><![CDATA[<p>Una semana mala para el mundo Open Source.</p>
<p>Primero <a href="http://forum.utorrent.com/viewtopic.php?id=17280">BitTorrent</a> <a href="http://www.slyck.com/story1566_BitTorrent_Addresses_Closed_Source_Issues">decide no dar el código fuente</a> de su última versión (6.0). Al menos no fácilmente ya que hay que pedir una licencia de desarrollador (gratis).</p>
<p>MySQL es <a href="http://forum.utorrent.com/viewtopic.php?id=17280">más agresivo aún</a>. El código Enterprise no estará disponible por FTP sino BitTorrent, excepto para usuarios pagos.</p>
<p>Es una lastima como ciertas compañías cambian sus tácticas con los usuarios que los volvieron populares una vez que alcanzan cierta notoriedad o fama.</p>
<p>¿Está todo perdido? Para nada. Simplemente utilice <a href="http://azureus.sourceforge.net/">Azureus</a> (Open Source y mejor que el cliente de BitTorrent), y <a href="http://www.postgresql.org/">PostgreSQL</a> (siempre ha sido más completo que MySQL).</p>
<p>Esa es la belleza del mundo Open Source, siempre hay alternativas.</p>
<p>Blogalaxia.com:<a href="http://www.blogalaxia.com/tags/mysql">mysql</a>, <a href="http://www.blogalaxia.com/tags/bittorrent">bittorrent</a>, <a href="http://www.blogalaxia.com/tags/open+source">open source</a>, <a href="http://www.blogalaxia.com/tags/azureus">azureus</a>, <a href="http://www.blogalaxia.com/tags/postgresql">postgresql</a><br />Technorati.com:<a href="http://technorati.com/tag/mysql">mysql</a>, <a href="http://technorati.com/tag/bittorrent">bittorrent</a>, <a href="http://technorati.com/tag/open+source">open source</a>, <a href="http://technorati.com/tag/azureus">azureus</a>, <a href="http://technorati.com/tag/postgresql">postgresql</a></p>
]]></content:encoded>
			<wfw:commentRss>http://kodegeek.com/blog/2007/08/10/mysql-y-bittorrent-te-hacen-mas-dificil-bajar-el-codigo-fuente/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>

