<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:blogger='http://schemas.google.com/blogger/2008' xmlns:georss='http://www.georss.org/georss' xmlns:gd="http://schemas.google.com/g/2005" xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-6846747566557814311</id><updated>2013-12-24T20:09:39.535-03:00</updated><category term="linux"/><category term="java"/><category term="open source"/><category term="archlinux"/><category term="comparativa"/><category term="ruby"/><category term="acid"/><category term="gnome"/><category term="humor"/><category term="lanzamientos"/><category term="navegador"/><category term="opera"/><category term="desarrollo"/><category term="firefox"/><category term="google chrome"/><category term="internet explorer"/><category term="kde"/><category term="presentacion"/><category term="safari"/><category term="sistemas"/><category term="sun"/><category term="ubuntu"/><category term="video"/><category term="webrick"/><category term="baobab"/><category term="c"/><category term="c++"/><category term="curiosidades"/><category term="cursos online"/><category term="debian"/><category term="disco rigido"/><category term="eclipse"/><category term="epiphany"/><category term="facebook"/><category term="fuentes"/><category term="gcj"/><category term="gdesklets"/><category term="gnu classpath"/><category term="google gadgets"/><category term="google waves"/><category term="grub"/><category term="gtk"/><category term="herramientas"/><category term="icedtea"/><category term="ie7"/><category term="ie8"/><category term="imagen"/><category term="instalaciones"/><category term="javadoc"/><category term="javaee"/><category term="javafx"/><category term="kdemod"/><category term="kwin"/><category term="lenny"/><category term="lilo"/><category term="mirovi"/><category term="mixins"/><category term="netbeans"/><category term="openjdk"/><category term="opensolaris"/><category term="optimizacion"/><category term="pacman"/><category term="privacidad"/><category term="rdoc"/><category term="ruby on rails"/><category term="scala"/><category term="servicios web"/><category term="servlet"/><category term="sintaxis"/><category term="sudo"/><category term="superkaramba"/><category term="tahoma"/><category term="twitter"/><category term="webservices"/><category term="xfce"/><category term="xml-rpc"/><title type='text'>Entre tazas y pingüinos</title><subtitle type='html'>Blog personal sobre mis experiencias en Java, Linux y algún otro desliz esporádico.</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://blog.tolaware.com.ar/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6846747566557814311/posts/default?redirect=false'/><link rel='alternate' type='text/html' href='http://blog.tolaware.com.ar/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Fernando Manzano</name><uri>http://www.blogger.com/profile/01632920861904264493</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='31' src='http://2.bp.blogspot.com/_qFuILtNi99I/SY8jiryq8BI/AAAAAAAAABM/fXotWpIPl2A/S220/curriculum.png'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>22</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-6846747566557814311.post-7317134780326704797</id><published>2009-07-25T01:26:00.004-03:00</published><updated>2009-07-25T06:54:31.961-03:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="google chrome"/><category scheme="http://www.blogger.com/atom/ns#" term="google waves"/><category scheme="http://www.blogger.com/atom/ns#" term="lanzamientos"/><category scheme="http://www.blogger.com/atom/ns#" term="open source"/><category scheme="http://www.blogger.com/atom/ns#" term="presentacion"/><title type='text'>Google Waves ...</title><content type='html'>No pretendo repetir toda la información que ya anda dando vuelta por Internet, ni tampoco quiero parafrasear a todos las personas que ya han hablado sobre el tema. Mi intención es simplemente expresar mi humilde opinión sobre el tema.

Me tomé el tiempo de ver la presentación completa (link al final). Las sensaciones que me quedan son varias y paso a enumerarlas a continuación.

En primer lugar, si Waves hace todo lo que en la presentación mostraron y anunciaron, quedará demostrado el poder de GWT en aplicaciones web, tema que ha sido muy cuestionado. Por si no lo conocen, GWT es un framework de Google que permite desarrollar aplicaciones web en Java, centrándote en el desarrollo de la interfaz y no en la compatibilidad con los distintos navegadores.

Otro punto que me gustó, es que lo han desarrollado bajo una especificación completamente abierta y su implementación ha sido licenciada bajo Open Source (habría que ver cual de todas ellas). Google ha sido muy criticado ya que viene &quot;monopolizando&quot; muchas áreas de la web y muchos lo señalan como el nuevo Microsoft. Con la actitud de liberar tanto la especificación como la implementación de Waves, le han tapado la boca a muchas personas (y aplaudo fervientemente esta decisión).

Google ha demostrado una vez más, porqué está en la posición que está, al no restringir a los usuarios a su producto, haciendo su producto libre y apuntando a la integración casi taxativa entre todos los servicios que normalmente usa una persona en Internet (Twitter, Blogger, YouTube, etc) permitiendo además, que cualquiera que quiera integrarse lo pueda hacer sin ningún problema.

Analizando un poco mas en profundidad las funcionalidades y características de Waves, no logro encontrarle realmente una característica nueva y revolucionaria. Lo que si me parece interesante, es el tema de la integración entre todos los servicios. Pero fuera de eso, no hay algo que me haga decir &lt;span style=&quot;font-style: italic;&quot;&gt;wow&lt;/span&gt;. Tiene muchas cosas lindas e interesantes, pero me parece que lo han anunciado con demasiados bombos y platillos.

Por si alguien todavía no ha visto el video de presentación de Google Waves, aquí se los dejo:

&lt;object height=&quot;340&quot; width=&quot;560&quot;&gt;&lt;param name=&quot;movie&quot; value=&quot;http://www.youtube.com/v/v_UyVmITiYQ&amp;amp;hl=es&amp;amp;fs=1&amp;amp;&quot;&gt;&lt;param name=&quot;allowFullScreen&quot; value=&quot;true&quot;&gt;&lt;param name=&quot;allowscriptaccess&quot; value=&quot;always&quot;&gt;&lt;embed src=&quot;http://www.youtube.com/v/v_UyVmITiYQ&amp;amp;hl=es&amp;amp;fs=1&amp;amp;&quot; type=&quot;application/x-shockwave-flash&quot; allowscriptaccess=&quot;always&quot; allowfullscreen=&quot;true&quot; height=&quot;340&quot; width=&quot;560&quot;&gt;&lt;/embed&gt;&lt;/object&gt;

Saludos y hasta la próxima.</content><link rel='replies' type='application/atom+xml' href='http://blog.tolaware.com.ar/feeds/7317134780326704797/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://blog.tolaware.com.ar/2009/07/google-waves.html#comment-form' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6846747566557814311/posts/default/7317134780326704797'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6846747566557814311/posts/default/7317134780326704797'/><link rel='alternate' type='text/html' href='http://blog.tolaware.com.ar/2009/07/google-waves.html' title='Google Waves ...'/><author><name>Fernando Manzano</name><uri>http://www.blogger.com/profile/01632920861904264493</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='31' src='http://2.bp.blogspot.com/_qFuILtNi99I/SY8jiryq8BI/AAAAAAAAABM/fXotWpIPl2A/S220/curriculum.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6846747566557814311.post-2930104219742619071</id><published>2009-03-21T02:41:00.007-03:00</published><updated>2009-03-21T03:11:28.641-03:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="acid"/><category scheme="http://www.blogger.com/atom/ns#" term="comparativa"/><category scheme="http://www.blogger.com/atom/ns#" term="firefox"/><category scheme="http://www.blogger.com/atom/ns#" term="ie7"/><category scheme="http://www.blogger.com/atom/ns#" term="ie8"/><category scheme="http://www.blogger.com/atom/ns#" term="internet explorer"/><category scheme="http://www.blogger.com/atom/ns#" term="lanzamientos"/><category scheme="http://www.blogger.com/atom/ns#" term="navegador"/><category scheme="http://www.blogger.com/atom/ns#" term="opera"/><category scheme="http://www.blogger.com/atom/ns#" term="safari"/><title type='text'>Probando Internet Explorer 8 con ACID3</title><content type='html'>Van a pensar que soy un loco del test ACID3 (puede que sea cierto!!!), pero pensé en probar el resultado del citado test en el recientemente lanzado Internet Explorer 8 (IE8 de aquí en adelante).

Previamente ya había &lt;a href=&quot;http://blog.tolaware.com.ar/2009/03/testeando-navegadores-con-acid3.html&quot;&gt;testeado otros navegadores con el mismo test&lt;/a&gt;. También habíamos encontrado &lt;a href=&quot;http://blog.tolaware.com.ar/2009/03/midori-navegador-que-pasa-el-test-acid3.html&quot;&gt;uno que los pasa en su totalidad&lt;/a&gt;. Me basaré en esos resultados anteriores para el análisis.

Sin más rodeos, les presento el resultado del test:

&lt;a onblur=&quot;try {parent.deselectBloggerImageGracefully();} catch(e) {}&quot; href=&quot;http://3.bp.blogspot.com/_qFuILtNi99I/ScSANWbbmrI/AAAAAAAAAFQ/8vyIhgDx6y0/s1600-h/IE8.png&quot;&gt;&lt;img style=&quot;margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px; height: 240px;&quot; src=&quot;http://3.bp.blogspot.com/_qFuILtNi99I/ScSANWbbmrI/AAAAAAAAAFQ/8vyIhgDx6y0/s320/IE8.png&quot; alt=&quot;&quot; id=&quot;BLOGGER_PHOTO_ID_5315514427051317938&quot; border=&quot;0&quot; /&gt;&lt;/a&gt;
Para tomar un punto de referencia, recordemos cual fue el resultado con Internet Explorer 7 (IE7 de aquí en adelante):

&lt;a onblur=&quot;try {parent.deselectBloggerImageGracefully();} catch(e) {}&quot; href=&quot;http://1.bp.blogspot.com/_qFuILtNi99I/SavyiOjTiKI/AAAAAAAAAEA/xRly7yvlZeA/s1600-h/IE7.png&quot;&gt;&lt;img style=&quot;margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px; height: 112px;&quot; src=&quot;http://1.bp.blogspot.com/_qFuILtNi99I/SavyiOjTiKI/AAAAAAAAAEA/xRly7yvlZeA/s320/IE7.png&quot; alt=&quot;&quot; id=&quot;BLOGGER_PHOTO_ID_5308603255621912738&quot; border=&quot;0&quot; /&gt;&lt;/a&gt;
Recordemos ahora cual debería ser el resultado para que pase el test:

&lt;a onblur=&quot;try {parent.deselectBloggerImageGracefully();} catch(e) {}&quot; href=&quot;http://4.bp.blogspot.com/_qFuILtNi99I/SavwnrmgfhI/AAAAAAAAADw/1pxa1lXEZOM/s1600-h/Referencia.png&quot;&gt;&lt;img style=&quot;margin: 0px auto 10px; display: block; cursor: pointer; width: 320px; height: 214px;&quot; src=&quot;http://4.bp.blogspot.com/_qFuILtNi99I/SavwnrmgfhI/AAAAAAAAADw/1pxa1lXEZOM/s320/Referencia.png&quot; alt=&quot;&quot; id=&quot;BLOGGER_PHOTO_ID_5308601150296063506&quot; border=&quot;0&quot; /&gt;
&lt;/a&gt;Observando las imágenes, podemos observar que hay una gran mejora en el renderizado de las páginas, de hecho el resultado en este sentido es muy similar al de la mayoría de los navegadores. pero lamentablemente, la calificación es de 20/100. Esto nos indica que Microsoft sigue con la política de darle muy poca importancia a los estándares.

Se ha dicho mucho sobre el fallo de seguridad que se descubrió unas horas después del lanzamiento de IE8. En este aspecto, no debería preocupar tanto la rapidez. De hecho, si se hiciera el mismo esfuerzo en encontrar problemas de seguridad en Mozilla Firefox, Safari u Opera, probablemente los resultados no difieran mucho. Esto es así ya que los fallos de seguridad son inherentes a absolutamente todos los programas que existen. Ningún software está libre de ellos por más testeado que esté.

Lo importante sobre este punto, es ver que actitud toma Microsoft con respecto a este problema de seguridad y lamentablemente, la mayoría conoce la respuesta a esa cuestión.

Nuevamente, espero que les haya sido de utilidad. Nos vemos en la próxima.</content><link rel='replies' type='application/atom+xml' href='http://blog.tolaware.com.ar/feeds/2930104219742619071/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://blog.tolaware.com.ar/2009/03/probando-internet-explorer-8-con-acid3.html#comment-form' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6846747566557814311/posts/default/2930104219742619071'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6846747566557814311/posts/default/2930104219742619071'/><link rel='alternate' type='text/html' href='http://blog.tolaware.com.ar/2009/03/probando-internet-explorer-8-con-acid3.html' title='Probando Internet Explorer 8 con ACID3'/><author><name>Fernando Manzano</name><uri>http://www.blogger.com/profile/01632920861904264493</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='31' src='http://2.bp.blogspot.com/_qFuILtNi99I/SY8jiryq8BI/AAAAAAAAABM/fXotWpIPl2A/S220/curriculum.png'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://3.bp.blogspot.com/_qFuILtNi99I/ScSANWbbmrI/AAAAAAAAAFQ/8vyIhgDx6y0/s72-c/IE8.png" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6846747566557814311.post-7155358675205593640</id><published>2009-03-08T22:20:00.024-02:00</published><updated>2009-07-25T06:56:56.674-03:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="comparativa"/><category scheme="http://www.blogger.com/atom/ns#" term="desarrollo"/><category scheme="http://www.blogger.com/atom/ns#" term="eclipse"/><category scheme="http://www.blogger.com/atom/ns#" term="java"/><category scheme="http://www.blogger.com/atom/ns#" term="javadoc"/><category scheme="http://www.blogger.com/atom/ns#" term="mixins"/><category scheme="http://www.blogger.com/atom/ns#" term="netbeans"/><category scheme="http://www.blogger.com/atom/ns#" term="open source"/><category scheme="http://www.blogger.com/atom/ns#" term="rdoc"/><category scheme="http://www.blogger.com/atom/ns#" term="ruby"/><category scheme="http://www.blogger.com/atom/ns#" term="ruby on rails"/><category scheme="http://www.blogger.com/atom/ns#" term="scala"/><category scheme="http://www.blogger.com/atom/ns#" term="sintaxis"/><category scheme="http://www.blogger.com/atom/ns#" term="sistemas"/><category scheme="http://www.blogger.com/atom/ns#" term="twitter"/><title type='text'>Java vs Ruby</title><content type='html'>Utilizo mucho estos 2 lenguajes, principalmente Java. Por ello, voy a tratar de describir sus diferencias, similitudes, ventajas y desventajas. Hago esto para que los que quieran adentrarse en estos lenguajes, puedan tener una referencia.

En principio, me gustaría señalar que la principal ventaja que tiene Ruby frente a Java, es lo compacto y simple que es el lenguaje. Esta diseñado para que no tengamos que escribir largos bloques de código y además, para que la lectura del código se asemeje un poco mas al lenguaje humano que al computacional.

Para ejemplificar lo que les digo, vamos a programar un simple algoritmo que escribe 3 veces una cadena por la pantalla.

En Java:
&lt;pre class=&quot;sh_java&quot;&gt;for(int i=0;i&amp;lt;3;i++) {
    System.out.print(&quot;cadena de texto&quot;);
}&lt;/pre&gt;En Ruby:
&lt;pre class=&quot;sh_ruby&quot;&gt;3.times do print &quot;cadena de texto&quot; end&lt;/pre&gt;Como pueden ver, el código en Ruby es más compacto y es más directa su lectura.

Para los que son adeptos a la sintaxis más &quot;computacional&quot;, Ruby nos permite escribir el algoritmo anterior, de la siguiente manera:
&lt;pre class=&quot;sh_ruby&quot;&gt;3.times {
    print(&quot;cadena de texto&quot;);
}&lt;/pre&gt;Podemos ver que la sintaxis anterior, es muy similar a la usada en Java. Puntualmente podemos ver las siguientes similitudes:&lt;ul&gt;&lt;li&gt;Las líneas de código con el &quot;punto y coma&quot; final&lt;/li&gt;&lt;li&gt;Los bloques de código delimitados por los símbolos { y }&lt;/li&gt;&lt;li&gt;Los parámetros pasados a un método, entre paréntesis.&lt;/li&gt;&lt;/ul&gt;Definitivamente, Ruby es muy flexible con respecto a la sintaxis que usamos para programar. Muchos pueden argumentar en este punto, que la sintaxis de Java es mucho más potente que la de Ruby, ya que en este último no se puede acceder al índice y tampoco es posible especificar los valores inicial, final y de paso, del índice de iteración (La variable i en el código de Java).

En respuesta a lo anterior, Ruby nos permite hacer lo siguiente:
&lt;pre class=&quot;sh_ruby&quot;&gt;0.step(2,1) do |i|
    print &quot;cadena de texto - Iteracion ${i}&quot;
end&lt;/pre&gt;Este método, ejecutará el bloque de código variando el índice i, desde el valor inicial 0, hasta el valor final 2, sumándole 1 en cada paso. Como ven, Ruby se adapta bastante a nuestros gustos.

Si bien esta flexibilidad tiene muchas ventajas, también puede traer problemas. El principal (según mi punto de vista) es que cuando en un proyecto participan muchos programadores, si no se establece una convención de sintaxis, podemos terminar con una gran mezcla de código de sintaxis muy variada, y esto puede traer mucha confusión en la lectura y manutención del mismo.

Otras de las grandes desventajas de Ruby, es que es un lenguaje totalmente interpretado, lo cual trae problemas de rendimiento y escalabilidad. Prueba de esto, es que Twitter está mudando su plataforma de Ruby on Rails, a Scala.

Otras de las fuertes debilidades que le veo a Ruby, es que es un lenguaje de tipos débiles. Esto quiere decir que las variables que usamos no tienen un tipo fijo, y que tampoco es necesario declararlas para uso.

En mis experiencias (laborales y académicas) utilizando lenguajes de tipos débiles, he llegado a la conclusión de que es algo útil en algoritmos y programas de poco tamaño. Pero cuando la cantidad de código comienza a crecer (proporcionalmente con la cantidad y complejidad de las capas y módulos de nuestra aplicación), esto se vuelve una gran desventaja.

Piensen en que si una variable no tiene tipo fijo, entonces tenemos que suponer que tipo tiene al momento de usarla y esto genera errores, que en algunos casos son casi imposibles de detectar, sobre todo en aplicaciones donde los datos se mueven a través de los distintos módulos de la aplicación, atravesando a su vez, las distintas capas de la misma.

Como señalé anteriormente, en Ruby tampoco es necesario declarar una variable para usarla. Esta es otra fuente de muchos problemas. Varias veces perdí muchas horas tratando de resolver un bug, para darme cuenta que el problema era que una variable estaba mal escrita (al no tener que declararla, el intérprete la toma como una nueva variable). Aunque tengo que reconocer que el uso de IDE&#39;s con autocompletado (como Netbeans o Eclipse) han minimizado mucho estos problemas.

Para finalizar, les dejo una lista de similitudes y diferencias que existen entre estos 2 lenguajes.

Similitudes:
&lt;ul&gt;&lt;li&gt;En ambos lenguajes contamos con manejo automático de memoria, a través de un recolector de basura.&lt;/li&gt;&lt;li&gt;Los objetos son de tipos fuertes (Las variables son de tipos débiles en Ruby, pero los objetos no).&lt;/li&gt;&lt;li&gt;Ambos soportan casi la totalidad del modelo orientado a objetos.&lt;/li&gt;&lt;li&gt;Los 2 cuentan con herramientas de documentación embebidas. (Javadoc en Java y Rdoc en Ruby).&lt;/li&gt;&lt;li&gt;Tanto Ruby como Java, son lenguajes totalmente libres (licencia GPL).

&lt;/li&gt;&lt;/ul&gt;Diferencias:
&lt;ul&gt;&lt;li&gt;Ruby es interpretado, Java es compilado y luego interpretado.
&lt;/li&gt;&lt;li&gt;En Ruby se pueden usar como separadores de bloques las palabras claves do y end, o los símbolos { y }. En Java sólo es posible usar { y }
&lt;/li&gt;&lt;li&gt;En Ruby, todos los atributos de una clase son privados, en Java pueden ser privados, públicos o protegidos.
&lt;/li&gt;&lt;li&gt;En Ruby, la lista de parámetros pasados a un método, puede o no estar delimitada por paréntesis. En Java, los paréntesis son obligatorios.
&lt;/li&gt;&lt;li&gt;En Ruby, absolutamente todo es un objeto. En Java existen tipos de datos que no son objetos.
&lt;/li&gt;&lt;li&gt;En Java existe el chequeo de tipos. En Ruby no, ya que es interpretado.
&lt;/li&gt;&lt;li&gt;En Java, las variables son de tipo fuerte. En Ruby las variables son de tipos débiles.
&lt;/li&gt;&lt;li&gt;En Ruby tenemos los mixin&#39;s, en contrapartida de las interfaces de Java.&lt;/li&gt;&lt;/ul&gt;
Me gustaría destacar una de las grandes ventajas de Java frente a Ruby. Esta ventaja, es la gran cantidad de bibliotecas y frameworks disponibles directamente para su uso. Lo anterior, sumado a una inmensa comunidad de usuarios, hacen que Java sea uno de los lenguajes mas usados.

En el poco tiempo que llevo desarrollando en Ruby, he encontrado una gran comunidad de usuarios y bibliotecas disponibles, pero si tenemos que comparar en cantidad, se queda muy corto comparado con Java.

Si bien Java es un lenguaje muy potente, no hay que pensar que es lo mejor para todo. Todas las herramientas tiene sus puntos fuertes y débiles y hay que saber cuando utilizar una u otra. En mi caso, he encontrado que Ruby es excelente para hacer proyectos de pequeño y también es bastante aplicable en proyectos de mediana envergadura. En proyectos grandes, definitivamente Java es una de las mejores opciones, sobre todo en términos de rendimiento en ámbitos de mucha concurrencia, y en escalabilidad de los sistemas.

Espero que les sea de utilidad. Nos vemos en la próxima.</content><link rel='replies' type='application/atom+xml' href='http://blog.tolaware.com.ar/feeds/7155358675205593640/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://blog.tolaware.com.ar/2009/03/java-vs-ruby.html#comment-form' title='13 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6846747566557814311/posts/default/7155358675205593640'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6846747566557814311/posts/default/7155358675205593640'/><link rel='alternate' type='text/html' href='http://blog.tolaware.com.ar/2009/03/java-vs-ruby.html' title='Java vs Ruby'/><author><name>Fernando Manzano</name><uri>http://www.blogger.com/profile/01632920861904264493</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='31' src='http://2.bp.blogspot.com/_qFuILtNi99I/SY8jiryq8BI/AAAAAAAAABM/fXotWpIPl2A/S220/curriculum.png'/></author><thr:total>13</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6846747566557814311.post-1743043222921210722</id><published>2009-03-06T01:05:00.003-02:00</published><updated>2009-03-06T01:56:14.089-02:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="humor"/><category scheme="http://www.blogger.com/atom/ns#" term="imagen"/><category scheme="http://www.blogger.com/atom/ns#" term="linux"/><category scheme="http://www.blogger.com/atom/ns#" term="sudo"/><title type='text'>Una realidad muy geek</title><content type='html'>Vi esto colgado por la red, y me causó mucha gracia. Espero que lo disfruten.

&lt;a onblur=&quot;try {parent.deselectBloggerImageGracefully();} catch(e) {}&quot; href=&quot;http://blog.wired.com/gadgets/sandwich.png&quot;&gt;&lt;img style=&quot;margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 360px; height: 299px;&quot; src=&quot;http://blog.wired.com/gadgets/sandwich.png&quot; alt=&quot;&quot; border=&quot;0&quot; /&gt;&lt;/a&gt;
Saludos gente. Nos vemos pronto.</content><link rel='replies' type='application/atom+xml' href='http://blog.tolaware.com.ar/feeds/1743043222921210722/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://blog.tolaware.com.ar/2009/03/una-realidad-muy-geek.html#comment-form' title='2 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6846747566557814311/posts/default/1743043222921210722'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6846747566557814311/posts/default/1743043222921210722'/><link rel='alternate' type='text/html' href='http://blog.tolaware.com.ar/2009/03/una-realidad-muy-geek.html' title='Una realidad muy geek'/><author><name>Fernando Manzano</name><uri>http://www.blogger.com/profile/01632920861904264493</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='31' src='http://2.bp.blogspot.com/_qFuILtNi99I/SY8jiryq8BI/AAAAAAAAABM/fXotWpIPl2A/S220/curriculum.png'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6846747566557814311.post-7055110153080318617</id><published>2009-03-05T21:55:00.008-02:00</published><updated>2009-03-06T00:03:33.069-02:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="archlinux"/><category scheme="http://www.blogger.com/atom/ns#" term="gdesklets"/><category scheme="http://www.blogger.com/atom/ns#" term="gnome"/><category scheme="http://www.blogger.com/atom/ns#" term="google gadgets"/><category scheme="http://www.blogger.com/atom/ns#" term="gtk"/><category scheme="http://www.blogger.com/atom/ns#" term="instalaciones"/><category scheme="http://www.blogger.com/atom/ns#" term="kde"/><category scheme="http://www.blogger.com/atom/ns#" term="linux"/><category scheme="http://www.blogger.com/atom/ns#" term="superkaramba"/><category scheme="http://www.blogger.com/atom/ns#" term="ubuntu"/><category scheme="http://www.blogger.com/atom/ns#" term="xfce"/><title type='text'>Instalando Google Gadgets en linux</title><content type='html'>En esta ocasión, me dispongo a instalar esta pintoresca herramienta de Google, llamada &lt;a href=&quot;http://code.google.com/p/google-gadgets-for-linux/&quot;&gt;Google &lt;span class=&quot;blsp-spelling-error&quot; id=&quot;SPELLING_ERROR_0&quot;&gt;&lt;span class=&quot;blsp-spelling-error&quot; id=&quot;SPELLING_ERROR_0&quot;&gt;Gadgets&lt;/span&gt;&lt;/span&gt; (&lt;span class=&quot;blsp-spelling-error&quot; id=&quot;SPELLING_ERROR_1&quot;&gt;&lt;span class=&quot;blsp-spelling-error&quot; id=&quot;SPELLING_ERROR_1&quot;&gt;for&lt;/span&gt;&lt;/span&gt; Linux)&lt;/a&gt;. Específicamente, vamos a instalar la última versión estable de la misma. Esta es la 0.10.5

&lt;span style=&quot;font-size:130%;&quot;&gt;&lt;span style=&quot;font-weight: bold;&quot;&gt;Introducción:&lt;/span&gt;&lt;/span&gt;

Google &lt;span class=&quot;blsp-spelling-error&quot; id=&quot;SPELLING_ERROR_2&quot;&gt;&lt;span class=&quot;blsp-spelling-error&quot; id=&quot;SPELLING_ERROR_2&quot;&gt;Gadgets&lt;/span&gt;&lt;/span&gt; es una aplicación para el escritorio, bastante similar al &lt;span class=&quot;blsp-spelling-error&quot; id=&quot;SPELLING_ERROR_3&quot;&gt;&lt;span class=&quot;blsp-spelling-error&quot; id=&quot;SPELLING_ERROR_3&quot;&gt;Sidebar&lt;/span&gt;&lt;/span&gt; de &lt;span class=&quot;blsp-spelling-error&quot; id=&quot;SPELLING_ERROR_4&quot;&gt;&lt;span class=&quot;blsp-spelling-error&quot; id=&quot;SPELLING_ERROR_4&quot;&gt;Windows&lt;/span&gt;&lt;/span&gt; Vista, a &lt;span class=&quot;blsp-spelling-error&quot; id=&quot;SPELLING_ERROR_5&quot;&gt;&lt;span class=&quot;blsp-spelling-error&quot; id=&quot;SPELLING_ERROR_5&quot;&gt;SuperKaramba&lt;/span&gt;&lt;/span&gt; de &lt;span class=&quot;blsp-spelling-error&quot; id=&quot;SPELLING_ERROR_6&quot;&gt;&lt;span class=&quot;blsp-spelling-error&quot; id=&quot;SPELLING_ERROR_6&quot;&gt;KDE&lt;/span&gt;&lt;/span&gt; y a &lt;span class=&quot;blsp-spelling-error&quot; id=&quot;SPELLING_ERROR_7&quot;&gt;&lt;span class=&quot;blsp-spelling-error&quot; id=&quot;SPELLING_ERROR_7&quot;&gt;gDesklets&lt;/span&gt;&lt;/span&gt; de &lt;span class=&quot;blsp-spelling-error&quot; id=&quot;SPELLING_ERROR_8&quot;&gt;&lt;span class=&quot;blsp-spelling-error&quot; id=&quot;SPELLING_ERROR_8&quot;&gt;GNOME&lt;/span&gt;&lt;/span&gt;. Por suerte está liberado bajo licencia Apache 2.0. Si bien todavía no es estable, se ve bastante bien.

&lt;a onblur=&quot;try {parent.deselectBloggerImageGracefully();} catch(e) {}&quot; href=&quot;http://www.geardiary.com/wp-content/uploads/2008/06/google_gadgets.jpg&quot;&gt;&lt;img style=&quot;margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 300px;&quot; src=&quot;http://www.geardiary.com/wp-content/uploads/2008/06/google_gadgets.jpg&quot; alt=&quot;&quot; border=&quot;0&quot; /&gt;&lt;/a&gt;
&lt;span style=&quot;font-size:130%;&quot;&gt;&lt;span style=&quot;font-weight: bold;&quot;&gt;Instalación&lt;/span&gt;&lt;/span&gt;

Procederemos ahora con la instalación.

a) &lt;span class=&quot;blsp-spelling-error&quot; id=&quot;SPELLING_ERROR_9&quot;&gt;&lt;span class=&quot;blsp-spelling-error&quot; id=&quot;SPELLING_ERROR_9&quot;&gt;Ubuntu&lt;/span&gt;&lt;/span&gt; y sus derivados:

Hay que descargar el &lt;a href=&quot;http://www.getdeb.net/app/Google+Gadgets&quot;&gt;paquete &lt;/a&gt;&lt;a href=&quot;http://www.getdeb.net/app/Google+Gadgets&quot;&gt;.&lt;span class=&quot;blsp-spelling-error&quot; id=&quot;SPELLING_ERROR_10&quot;&gt;&lt;span class=&quot;blsp-spelling-error&quot; id=&quot;SPELLING_ERROR_10&quot;&gt;deb&lt;/span&gt;&lt;/span&gt;&lt;/a&gt; desde aquí. Seleccionen su versión de &lt;span class=&quot;blsp-spelling-error&quot; id=&quot;SPELLING_ERROR_11&quot;&gt;Ubuntu&lt;/span&gt; y la arquitectura correcta.
Luego abrimos una consola y como &lt;span class=&quot;blsp-spelling-error&quot; id=&quot;SPELLING_ERROR_12&quot;&gt;root&lt;/span&gt; (o con sudo) ejecutamos el comando:

&lt;span class=&quot;blsp-spelling-error&quot; id=&quot;SPELLING_ERROR_13&quot;&gt;dpkg&lt;/span&gt; -i paquete.&lt;span class=&quot;blsp-spelling-error&quot; id=&quot;SPELLING_ERROR_14&quot;&gt;deb&lt;/span&gt;

Donde &lt;span style=&quot;font-style: italic;&quot;&gt;paquete.&lt;span class=&quot;blsp-spelling-error&quot; id=&quot;SPELLING_ERROR_15&quot;&gt;deb&lt;/span&gt;&lt;/span&gt;, es el nombre del paquete bajado.

b) &lt;span class=&quot;blsp-spelling-error&quot; id=&quot;SPELLING_ERROR_16&quot;&gt;ArchLinux&lt;/span&gt;:

Aquí es un poquito mas complicado, ya que el paquete se encuentra en los repositorios &lt;span class=&quot;blsp-spelling-error&quot; id=&quot;SPELLING_ERROR_17&quot;&gt;AUR&lt;/span&gt;. Si lo instalamos directamente con &lt;span class=&quot;blsp-spelling-error&quot; id=&quot;SPELLING_ERROR_18&quot;&gt;yaourt&lt;/span&gt;, la instalación fallará por un &lt;span class=&quot;blsp-spelling-error&quot; id=&quot;SPELLING_ERROR_19&quot;&gt;bug&lt;/span&gt; en el paquete. Para que no falle, es necesario ejecutar un par de comandos que solucionen el problema.

Como &lt;span class=&quot;blsp-spelling-error&quot; id=&quot;SPELLING_ERROR_20&quot;&gt;root&lt;/span&gt; (o con sudo), ejecutamos los siguientes comandos:

&lt;span class=&quot;blsp-spelling-error&quot; id=&quot;SPELLING_ERROR_21&quot;&gt;cd&lt;/span&gt; /&lt;span class=&quot;blsp-spelling-error&quot; id=&quot;SPELLING_ERROR_22&quot;&gt;usr&lt;/span&gt;/&lt;span class=&quot;blsp-spelling-error&quot; id=&quot;SPELLING_ERROR_23&quot;&gt;lib&lt;/span&gt;/&lt;span class=&quot;blsp-spelling-error&quot; id=&quot;SPELLING_ERROR_24&quot;&gt;pkgconfig&lt;/span&gt;/
&lt;span class=&quot;blsp-spelling-error&quot; id=&quot;SPELLING_ERROR_25&quot;&gt;cp&lt;/span&gt; &lt;span class=&quot;blsp-spelling-error&quot; id=&quot;SPELLING_ERROR_26&quot;&gt;mozilla&lt;/span&gt;-&lt;span class=&quot;blsp-spelling-error&quot; id=&quot;SPELLING_ERROR_27&quot;&gt;js&lt;/span&gt;.&lt;span class=&quot;blsp-spelling-error&quot; id=&quot;SPELLING_ERROR_28&quot;&gt;pc&lt;/span&gt; mozilla-js.pc.bak
sed -i &#39;s:&lt;span class=&quot;blsp-spelling-error&quot; id=&quot;SPELLING_ERROR_29&quot;&gt;stable&lt;/span&gt;:&lt;span class=&quot;blsp-spelling-error&quot; id=&quot;SPELLING_ERROR_30&quot;&gt;unstable&lt;/span&gt;:&#39; &lt;span class=&quot;blsp-spelling-error&quot; id=&quot;SPELLING_ERROR_31&quot;&gt;mozilla&lt;/span&gt;-&lt;span class=&quot;blsp-spelling-error&quot; id=&quot;SPELLING_ERROR_32&quot;&gt;js&lt;/span&gt;.&lt;span class=&quot;blsp-spelling-error&quot; id=&quot;SPELLING_ERROR_33&quot;&gt;pc&lt;/span&gt;
&lt;span class=&quot;blsp-spelling-error&quot; id=&quot;SPELLING_ERROR_34&quot;&gt;cd&lt;/span&gt; -

Ahora si podemos instalarlo desde &lt;span class=&quot;blsp-spelling-error&quot; id=&quot;SPELLING_ERROR_35&quot;&gt;yaourt&lt;/span&gt;. Abrimos una consola y ejecutamos:

&lt;span class=&quot;blsp-spelling-error&quot; id=&quot;SPELLING_ERROR_36&quot;&gt;yaourt&lt;/span&gt; -S google-&lt;span class=&quot;blsp-spelling-error&quot; id=&quot;SPELLING_ERROR_37&quot;&gt;gadgets&lt;/span&gt;

Si nos pide instalar algún paquete como dependencia, le decimos que sí. Probablemente nos pregunte si deseamos editar el archivo &lt;span class=&quot;blsp-spelling-error&quot; id=&quot;SPELLING_ERROR_38&quot;&gt;PKGBUILD&lt;/span&gt; y el google-&lt;span class=&quot;blsp-spelling-error&quot; id=&quot;SPELLING_ERROR_39&quot;&gt;gadgets&lt;/span&gt;.&lt;span class=&quot;blsp-spelling-error&quot; id=&quot;SPELLING_ERROR_40&quot;&gt;install&lt;/span&gt;, no es necesario editarlos, por lo que respondemos que no.

Luego de bajar los archivos necesarios, y de instalar las dependencias, &lt;span class=&quot;blsp-spelling-error&quot; id=&quot;SPELLING_ERROR_41&quot;&gt;yaourt&lt;/span&gt; compilará Google &lt;span class=&quot;blsp-spelling-error&quot; id=&quot;SPELLING_ERROR_42&quot;&gt;Gadgets&lt;/span&gt;. Esto puede tardar un poco, dependiendo principalmente de la velocidad de la &lt;span class=&quot;blsp-spelling-error&quot; id=&quot;SPELLING_ERROR_43&quot;&gt;PC&lt;/span&gt;.

Una vez compilado lo necesario, nos pregunta si deseamos instalar el paquete. &lt;span class=&quot;blsp-spelling-corrected&quot; id=&quot;SPELLING_ERROR_44&quot;&gt;Obviamente&lt;/span&gt; contestamos que si. Con esto termina la instalación.

&lt;span style=&quot;font-size:130%;&quot;&gt;&lt;span style=&quot;font-weight: bold;&quot;&gt;Usando ...&lt;/span&gt;&lt;/span&gt;

Abrimos el menú de nuestro entorno de escritorio, y buscamos la aplicación &quot;Google &lt;span class=&quot;blsp-spelling-error&quot; id=&quot;SPELLING_ERROR_45&quot;&gt;Gadgets&lt;/span&gt;&quot;. Probablemente tengan 2 veces listada esta aplicación, una con la leyenda &quot;&lt;span class=&quot;blsp-spelling-error&quot; id=&quot;SPELLING_ERROR_46&quot;&gt;GTK&lt;/span&gt;&quot; y otra con &quot;&lt;span class=&quot;blsp-spelling-error&quot; id=&quot;SPELLING_ERROR_47&quot;&gt;Qt&lt;/span&gt;&quot;. Si están usando &lt;span class=&quot;blsp-spelling-error&quot; id=&quot;SPELLING_ERROR_48&quot;&gt;Gnome&lt;/span&gt; o &lt;span class=&quot;blsp-spelling-error&quot; id=&quot;SPELLING_ERROR_49&quot;&gt;Xfce&lt;/span&gt;, ejecuten la primera (&lt;span class=&quot;blsp-spelling-error&quot; id=&quot;SPELLING_ERROR_50&quot;&gt;GTK&lt;/span&gt;) y si están usando &lt;span class=&quot;blsp-spelling-error&quot; id=&quot;SPELLING_ERROR_51&quot;&gt;KDE&lt;/span&gt;, ejecuten la segunda (&lt;span class=&quot;blsp-spelling-error&quot; id=&quot;SPELLING_ERROR_52&quot;&gt;Qt&lt;/span&gt;).

Como verán, no es muy difícil de usar, la interfaz es bastante intuitiva y simple. Haciendo &lt;span class=&quot;blsp-spelling-error&quot; id=&quot;SPELLING_ERROR_53&quot;&gt;click&lt;/span&gt; derecho en la barra lateral, y luego en &quot;&lt;span class=&quot;blsp-spelling-error&quot; id=&quot;SPELLING_ERROR_54&quot;&gt;Add&lt;/span&gt; &lt;span class=&quot;blsp-spelling-error&quot; id=&quot;SPELLING_ERROR_55&quot;&gt;Gadgets&lt;/span&gt;&quot; accederemos a la extensa lista de &lt;span class=&quot;blsp-spelling-error&quot; id=&quot;SPELLING_ERROR_56&quot;&gt;gadgets&lt;/span&gt; que podemos agregar a nuestro escritorio.

Bueno, les dejo a ustedes que exploren los &lt;span class=&quot;blsp-spelling-error&quot; id=&quot;SPELLING_ERROR_57&quot;&gt;gadgets&lt;/span&gt; y opinen que les parece.

Saludos y hasta la próxima.</content><link rel='replies' type='application/atom+xml' href='http://blog.tolaware.com.ar/feeds/7055110153080318617/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://blog.tolaware.com.ar/2009/03/instalando-google-gadgets-en-linux.html#comment-form' title='1 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6846747566557814311/posts/default/7055110153080318617'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6846747566557814311/posts/default/7055110153080318617'/><link rel='alternate' type='text/html' href='http://blog.tolaware.com.ar/2009/03/instalando-google-gadgets-en-linux.html' title='Instalando Google Gadgets en linux'/><author><name>Fernando Manzano</name><uri>http://www.blogger.com/profile/01632920861904264493</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='31' src='http://2.bp.blogspot.com/_qFuILtNi99I/SY8jiryq8BI/AAAAAAAAABM/fXotWpIPl2A/S220/curriculum.png'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6846747566557814311.post-2625293529774893971</id><published>2009-03-03T22:33:00.011-02:00</published><updated>2009-03-04T00:42:45.785-02:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="acid"/><category scheme="http://www.blogger.com/atom/ns#" term="linux"/><category scheme="http://www.blogger.com/atom/ns#" term="mirovi"/><category scheme="http://www.blogger.com/atom/ns#" term="navegador"/><category scheme="http://www.blogger.com/atom/ns#" term="opera"/><category scheme="http://www.blogger.com/atom/ns#" term="video"/><title type='text'>Midori, navegador que pasa el test Acid3</title><content type='html'>Y justo que estábamos &lt;a href=&quot;http://blog.tolaware.com.ar/2009/03/testeando-navegadores-con-acid3.html&quot;&gt;testeando navegadores con el test Acid 3,&lt;/a&gt; me entero por casualidad que existe un navegador (y que probablemente no sea el único) que pasa exitosamente el test Acid 3.

El navegador en cuestión se llama Midori, y todavía no es totalmente estable, pero inclusive siendo inestable obtiene un puntaje de 100/100 y la página de prueba es renderizada en forma perfecta. Algo que ninguno de los navegadores más usados logró realizar.

La página oficial del navegador es &lt;a href=&quot;http://www.twotoasts.de/&quot;&gt;http://www.twotoasts.de&lt;/a&gt;. Definitivamente es un navegador que tengo que probar.

Como me costó un poco creerlo, decidí comprobarlo por mi mismo. Acá les dejo un video en el cual ejecuto el test, y luego comparo el resultado con la imagen de referencia.

&lt;object style=&quot;display: block; margin-left: auto; margin-right: auto;&quot; width=&quot;400&quot; height=&quot;300&quot;&gt;&lt;param name=&quot;allowfullscreen&quot; value=&quot;true&quot;&gt;&lt;param name=&quot;allowscriptaccess&quot; value=&quot;always&quot;&gt;&lt;param name=&quot;movie&quot; value=&quot;http://vimeo.com/moogaloop.swf?clip_id=3462673&amp;amp;server=vimeo.com&amp;amp;show_title=1&amp;amp;show_byline=1&amp;amp;show_portrait=0&amp;amp;color=&amp;amp;fullscreen=1&quot;&gt;&lt;embed src=&quot;http://vimeo.com/moogaloop.swf?clip_id=3462673&amp;amp;server=vimeo.com&amp;amp;show_title=1&amp;amp;show_byline=1&amp;amp;show_portrait=0&amp;amp;color=&amp;amp;fullscreen=1&quot; type=&quot;application/x-shockwave-flash&quot; allowfullscreen=&quot;true&quot; allowscriptaccess=&quot;always&quot; width=&quot;400&quot; height=&quot;300&quot;&gt;&lt;/embed&gt;&lt;/object&gt;
&lt;div style=&quot;text-align: center;&quot;&gt;&lt;a href=&quot;http://vimeo.com/3462673&quot;&gt;Corriendo el test Acid3 sobre el navegador Mirovi&lt;/a&gt; from &lt;a href=&quot;http://vimeo.com/user1384434&quot;&gt;Tolaware&lt;/a&gt; on &lt;a href=&quot;http://vimeo.com/&quot;&gt;Vimeo&lt;/a&gt;.
&lt;/div&gt;
Se puede apreciar claramente que el renderizado es perfecto, y que obtiene los 100 puntos. Sinceramente, los desarrolladores de este navegador se merecen un gran reconocimiento por el logro obtenido, sobre todo considerando que el navegador conocido que más se acerca a cumplir con los estándares, es Opera con un 85/100.

Bueno, pruebenlo y después me dicen que les pareció.</content><link rel='replies' type='application/atom+xml' href='http://blog.tolaware.com.ar/feeds/2625293529774893971/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://blog.tolaware.com.ar/2009/03/midori-navegador-que-pasa-el-test-acid3.html#comment-form' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6846747566557814311/posts/default/2625293529774893971'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6846747566557814311/posts/default/2625293529774893971'/><link rel='alternate' type='text/html' href='http://blog.tolaware.com.ar/2009/03/midori-navegador-que-pasa-el-test-acid3.html' title='Midori, navegador que pasa el test Acid3'/><author><name>Fernando Manzano</name><uri>http://www.blogger.com/profile/01632920861904264493</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='31' src='http://2.bp.blogspot.com/_qFuILtNi99I/SY8jiryq8BI/AAAAAAAAABM/fXotWpIPl2A/S220/curriculum.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6846747566557814311.post-6540849299188263860</id><published>2009-03-02T19:38:00.010-02:00</published><updated>2009-03-02T19:54:18.447-02:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="open source"/><title type='text'>Software Libre</title><content type='html'>En esta ocasión, encontré rondando por Internet un mapa conceptual sobre el Software Libre. Realmente es muy útil para explicar los beneficios del mismo, para todos los usuarios.
&lt;div style=&quot;text-align: center;&quot;&gt;&lt;span style=&quot;font-size:85%;&quot;&gt;
(click en la imagen para agrandarla)
&lt;/span&gt;&lt;/div&gt;
&lt;a onblur=&quot;try {parent.deselectBloggerImageGracefully();} catch(e) {}&quot; href=&quot;http://www.es.gnu.org/%7Ereneme/map/es/map-es-i-1000.png&quot;&gt;&lt;img style=&quot;margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 606px; height: 423px;&quot; src=&quot;http://www.es.gnu.org/%7Ereneme/map/es/map-es-i-600.png&quot; alt=&quot;&quot; border=&quot;0&quot; /&gt;&lt;/a&gt;
Espero que les sea provechoso. Saludos y hasta la próxima.</content><link rel='replies' type='application/atom+xml' href='http://blog.tolaware.com.ar/feeds/6540849299188263860/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://blog.tolaware.com.ar/2009/03/software-libre.html#comment-form' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6846747566557814311/posts/default/6540849299188263860'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6846747566557814311/posts/default/6540849299188263860'/><link rel='alternate' type='text/html' href='http://blog.tolaware.com.ar/2009/03/software-libre.html' title='Software Libre'/><author><name>Fernando Manzano</name><uri>http://www.blogger.com/profile/01632920861904264493</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='31' src='http://2.bp.blogspot.com/_qFuILtNi99I/SY8jiryq8BI/AAAAAAAAABM/fXotWpIPl2A/S220/curriculum.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6846747566557814311.post-4083274976830480299</id><published>2009-03-02T10:20:00.023-02:00</published><updated>2009-03-02T19:54:43.234-02:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="acid"/><category scheme="http://www.blogger.com/atom/ns#" term="comparativa"/><category scheme="http://www.blogger.com/atom/ns#" term="epiphany"/><category scheme="http://www.blogger.com/atom/ns#" term="firefox"/><category scheme="http://www.blogger.com/atom/ns#" term="google chrome"/><category scheme="http://www.blogger.com/atom/ns#" term="internet explorer"/><category scheme="http://www.blogger.com/atom/ns#" term="navegador"/><category scheme="http://www.blogger.com/atom/ns#" term="opera"/><category scheme="http://www.blogger.com/atom/ns#" term="safari"/><title type='text'>Testeando navegadores con Acid3</title><content type='html'>&lt;span style=&quot;font-weight: bold;font-size:130%;&quot; &gt;Introducción&lt;/span&gt;

He visto muchas pruebas hechas sobre navegadores, principalmente &lt;a href=&quot;http://www.acidtests.org/&quot;&gt;test acid.&lt;/a&gt; En casi todos los casos sólo se hace referencia al puntaje total obtenido, sin realizar una comparación entre los resultados visuales obtenidos.

Otro error que se suele cometer, es que se suelen correr los tests sobre futuras versiones de los navegadores, que no son las versiones finales. Esto lleva sacar conclusiones erróneas sobre navegadores.

Por esto, voy a realizar el test acid 3 sobre los navegadores más usados, comparando la totalidad de los resultados obtenidos. Los tests se realizarán sobre la última versión estable de cada uno.
&lt;span style=&quot;font-weight: bold;&quot;&gt;
&lt;span style=&quot;font-size:130%;&quot;&gt;Manos a la obra&lt;/span&gt;&lt;/span&gt;

Los navegadores a testear son los siguientes:
&lt;ul&gt;&lt;li&gt;Internet Explorer 7.0.5730
&lt;/li&gt;&lt;li&gt;Google Chrome 1.0.154&lt;/li&gt;&lt;li&gt;Mozilla Firefox 3.0.6&lt;/li&gt;&lt;li&gt;Epiphany 2.24.3&lt;/li&gt;&lt;li&gt;Opera 9.63&lt;/li&gt;&lt;li&gt;Safari 3.2.2&lt;/li&gt;&lt;/ul&gt;Para que un navegador pase el test completamente, tiene que obtener un puntaje de 100/100 y la página resultante obtenida, tiene que ser igual a la siguiente:

&lt;a onblur=&quot;try {parent.deselectBloggerImageGracefully();} catch(e) {}&quot; href=&quot;http://4.bp.blogspot.com/_qFuILtNi99I/SavwnrmgfhI/AAAAAAAAADw/1pxa1lXEZOM/s1600-h/Referencia.png&quot;&gt;&lt;img style=&quot;margin: 0px auto 10px; display: block; cursor: pointer; width: 320px; height: 214px;&quot; src=&quot;http://4.bp.blogspot.com/_qFuILtNi99I/SavwnrmgfhI/AAAAAAAAADw/1pxa1lXEZOM/s320/Referencia.png&quot; alt=&quot;&quot; id=&quot;BLOGGER_PHOTO_ID_5308601150296063506&quot; border=&quot;0&quot; /&gt;&lt;/a&gt;&lt;span style=&quot;font-weight: bold;font-size:130%;&quot; &gt;
Resultados de los tests&lt;/span&gt;&lt;span style=&quot;font-size:130%;&quot;&gt;:&lt;/span&gt;

Muestro los resultados de todos los tests y luego sacaremos conclusiones.

&lt;div style=&quot;text-align: center;&quot;&gt;Internet Explorer:
&lt;/div&gt;&lt;div style=&quot;text-align: left;&quot;&gt;&lt;a onblur=&quot;try {parent.deselectBloggerImageGracefully();} catch(e) {}&quot; href=&quot;http://1.bp.blogspot.com/_qFuILtNi99I/SavyiOjTiKI/AAAAAAAAAEA/xRly7yvlZeA/s1600-h/IE7.png&quot;&gt;&lt;img style=&quot;margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px; height: 112px;&quot; src=&quot;http://1.bp.blogspot.com/_qFuILtNi99I/SavyiOjTiKI/AAAAAAAAAEA/xRly7yvlZeA/s320/IE7.png&quot; alt=&quot;&quot; id=&quot;BLOGGER_PHOTO_ID_5308603255621912738&quot; border=&quot;0&quot; /&gt;&lt;/a&gt;
&lt;div style=&quot;text-align: center;&quot;&gt;Mozilla Firefox:
&lt;/div&gt;&lt;/div&gt;&lt;a onblur=&quot;try {parent.deselectBloggerImageGracefully();} catch(e) {}&quot; href=&quot;http://4.bp.blogspot.com/_qFuILtNi99I/Savy0PFOe_I/AAAAAAAAAEI/lwPrSS3piiw/s1600-h/Firefox.png&quot;&gt;&lt;img style=&quot;margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px; height: 226px;&quot; src=&quot;http://4.bp.blogspot.com/_qFuILtNi99I/Savy0PFOe_I/AAAAAAAAAEI/lwPrSS3piiw/s320/Firefox.png&quot; alt=&quot;&quot; id=&quot;BLOGGER_PHOTO_ID_5308603565001833458&quot; border=&quot;0&quot; /&gt;&lt;/a&gt;
&lt;div style=&quot;text-align: center;&quot;&gt;Google Chrome:
&lt;/div&gt;&lt;a onblur=&quot;try {parent.deselectBloggerImageGracefully();} catch(e) {}&quot; href=&quot;http://3.bp.blogspot.com/_qFuILtNi99I/SavzABflIHI/AAAAAAAAAEQ/gK-108HI2SQ/s1600-h/Chrome.png&quot;&gt;&lt;img style=&quot;margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px; height: 227px;&quot; src=&quot;http://3.bp.blogspot.com/_qFuILtNi99I/SavzABflIHI/AAAAAAAAAEQ/gK-108HI2SQ/s320/Chrome.png&quot; alt=&quot;&quot; id=&quot;BLOGGER_PHOTO_ID_5308603767512703090&quot; border=&quot;0&quot; /&gt;&lt;/a&gt;
&lt;div style=&quot;text-align: center;&quot;&gt;Epiphany:
&lt;/div&gt;&lt;a onblur=&quot;try {parent.deselectBloggerImageGracefully();} catch(e) {}&quot; href=&quot;http://1.bp.blogspot.com/_qFuILtNi99I/SavzSUKKqSI/AAAAAAAAAEY/RLAHk8oldkk/s1600-h/Epiphany.png&quot;&gt;&lt;img style=&quot;margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px; height: 230px;&quot; src=&quot;http://1.bp.blogspot.com/_qFuILtNi99I/SavzSUKKqSI/AAAAAAAAAEY/RLAHk8oldkk/s320/Epiphany.png&quot; alt=&quot;&quot; id=&quot;BLOGGER_PHOTO_ID_5308604081760807202&quot; border=&quot;0&quot; /&gt;&lt;/a&gt;
&lt;div style=&quot;text-align: center;&quot;&gt;Safari:
&lt;/div&gt;&lt;a onblur=&quot;try {parent.deselectBloggerImageGracefully();} catch(e) {}&quot; href=&quot;http://4.bp.blogspot.com/_qFuILtNi99I/SavzgvKIkHI/AAAAAAAAAEg/66VDPX5-GF0/s1600-h/Safari.png&quot;&gt;&lt;img style=&quot;margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px; height: 226px;&quot; src=&quot;http://4.bp.blogspot.com/_qFuILtNi99I/SavzgvKIkHI/AAAAAAAAAEg/66VDPX5-GF0/s320/Safari.png&quot; alt=&quot;&quot; id=&quot;BLOGGER_PHOTO_ID_5308604329526595698&quot; border=&quot;0&quot; /&gt;&lt;/a&gt;
&lt;div style=&quot;text-align: center;&quot;&gt;Opera:

&lt;/div&gt;&lt;a onblur=&quot;try {parent.deselectBloggerImageGracefully();} catch(e) {}&quot; href=&quot;http://3.bp.blogspot.com/_qFuILtNi99I/Sav0iJpNXkI/AAAAAAAAAEo/076hO9bwADg/s1600-h/Opera.png&quot;&gt;&lt;img style=&quot;margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px; height: 211px;&quot; src=&quot;http://3.bp.blogspot.com/_qFuILtNi99I/Sav0iJpNXkI/AAAAAAAAAEo/076hO9bwADg/s320/Opera.png&quot; alt=&quot;&quot; id=&quot;BLOGGER_PHOTO_ID_5308605453327752770&quot; border=&quot;0&quot; /&gt;&lt;/a&gt;
&lt;span style=&quot;font-weight: bold;font-size:130%;&quot; &gt;Análisis&lt;/span&gt;

Los puntajes obtenidos fueron:
&lt;ul&gt;&lt;li&gt;Opera --&gt; 85/100&lt;/li&gt;&lt;li&gt;Google Chrome --&gt; 79/100&lt;/li&gt;&lt;li&gt;Safari --&gt; 75/100&lt;/li&gt;&lt;li&gt; Epiphany --&gt; 71/100&lt;/li&gt;&lt;li&gt; Mozilla Firefox --&gt; 71/100&lt;/li&gt;&lt;li&gt;Internet Explorer --&gt; 12/100&lt;/li&gt;&lt;/ul&gt;Todos los navegadores se acercan en su mayoría al resultado ideal, salvo Internet &lt;span class=&quot;blsp-spelling-error&quot; id=&quot;SPELLING_ERROR_0&quot;&gt;Explorer&lt;/span&gt; que realmente es un desastre en el tema de adopción de estándares. De hecho, dibuja tan mal la página que cuesta ubicar cual es el &lt;span class=&quot;blsp-spelling-error&quot; id=&quot;SPELLING_ERROR_1&quot;&gt;puntaje&lt;/span&gt;. La exactitud del gráfico obtenido por Internet &lt;span class=&quot;blsp-spelling-error&quot; id=&quot;SPELLING_ERROR_2&quot;&gt;Explorer&lt;/span&gt;, es realmente nula.

Mozilla &lt;span class=&quot;blsp-spelling-error&quot; id=&quot;SPELLING_ERROR_3&quot;&gt;Firefox&lt;/span&gt; y &lt;span class=&quot;blsp-spelling-error&quot; id=&quot;SPELLING_ERROR_4&quot;&gt;Epiphany&lt;/span&gt; se basan en el motor &lt;span class=&quot;blsp-spelling-error&quot; id=&quot;SPELLING_ERROR_5&quot;&gt;Gecko&lt;/span&gt;, por lo que los resultados son iguales. Me llama un poco la atención que tengan un &lt;span class=&quot;blsp-spelling-error&quot; id=&quot;SPELLING_ERROR_6&quot;&gt;puntaje&lt;/span&gt; más bajo que la mayoría.

&lt;span class=&quot;blsp-spelling-error&quot; id=&quot;SPELLING_ERROR_7&quot;&gt;Safari&lt;/span&gt; se encuentra en el medio con 75 puntos. La similitud con el resultado gráfico es menor que en &lt;span class=&quot;blsp-spelling-error&quot; id=&quot;SPELLING_ERROR_8&quot;&gt;Firefox&lt;/span&gt; y &lt;span class=&quot;blsp-spelling-error&quot; id=&quot;SPELLING_ERROR_9&quot;&gt;Epiphany&lt;/span&gt;, sin embargo, se acerca bastante al resultado ideal.

Google &lt;span class=&quot;blsp-spelling-error&quot; id=&quot;SPELLING_ERROR_10&quot;&gt;Chrome&lt;/span&gt; se acerca un poco más al &lt;span class=&quot;blsp-spelling-error&quot; id=&quot;SPELLING_ERROR_11&quot;&gt;puntaje&lt;/span&gt; ideal. El resultado gráfico es igual al de &lt;span class=&quot;blsp-spelling-error&quot; id=&quot;SPELLING_ERROR_12&quot;&gt;Safari&lt;/span&gt;. Teniendo en cuenta que este navegador ha sido lanzado muy recientemente, nos indica que ha sido diseñado desde el principio, para que respete los estándares. Probablemente este navegador logre captar una gran porción del mercado.

Opera es el que da una gran sorpresa con un &lt;span class=&quot;blsp-spelling-error&quot; id=&quot;SPELLING_ERROR_13&quot;&gt;puntaje&lt;/span&gt; de 85 y logrando una similitud bastante mayor con la imagen de referencia, que el resto de los navegadores. Por alguna razón, este navegador no goza de una comunidad de usuarios muy grande. Es una pena, ya que de todos los navegadores, es el que más cerca está de cumplir con todos los estándares.

&lt;span style=&quot;font-size:130%;&quot;&gt;&lt;span style=&quot;font-weight: bold;&quot;&gt;Conclusiones&lt;/span&gt;&lt;/span&gt;

Recomendaría el uso de cualquiera de estos navegadores, salvo Internet &lt;span class=&quot;blsp-spelling-error&quot; id=&quot;SPELLING_ERROR_14&quot;&gt;Explorer&lt;/span&gt;, ya que es evidente lo desastroso que es con respecto a los estándares.

Si Opera fuese liberado con una licencia de código abierto, probablemente lograría un éxito similar al obtenido por &lt;span class=&quot;blsp-spelling-error&quot; id=&quot;SPELLING_ERROR_15&quot;&gt;Firefox&lt;/span&gt;.</content><link rel='replies' type='application/atom+xml' href='http://blog.tolaware.com.ar/feeds/4083274976830480299/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://blog.tolaware.com.ar/2009/03/testeando-navegadores-con-acid3.html#comment-form' title='6 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6846747566557814311/posts/default/4083274976830480299'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6846747566557814311/posts/default/4083274976830480299'/><link rel='alternate' type='text/html' href='http://blog.tolaware.com.ar/2009/03/testeando-navegadores-con-acid3.html' title='Testeando navegadores con Acid3'/><author><name>Fernando Manzano</name><uri>http://www.blogger.com/profile/01632920861904264493</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='31' src='http://2.bp.blogspot.com/_qFuILtNi99I/SY8jiryq8BI/AAAAAAAAABM/fXotWpIPl2A/S220/curriculum.png'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://4.bp.blogspot.com/_qFuILtNi99I/SavwnrmgfhI/AAAAAAAAADw/1pxa1lXEZOM/s72-c/Referencia.png" height="72" width="72"/><thr:total>6</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6846747566557814311.post-8922319208907927750</id><published>2009-02-27T21:41:00.008-02:00</published><updated>2009-02-28T02:43:29.221-02:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="desarrollo"/><category scheme="http://www.blogger.com/atom/ns#" term="humor"/><category scheme="http://www.blogger.com/atom/ns#" term="sistemas"/><title type='text'>Fases en el ciclo de vida de sistemas</title><content type='html'>En esta oportunidad, quería compartir con ustedes una imagen que está colgada en la bedelía de la carrera que actualmente estudio (Ingeniería en Sistemas de Información).

&lt;a onblur=&quot;try {parent.deselectBloggerImageGracefully();} catch(e) {}&quot; href=&quot;http://1.bp.blogspot.com/_qFuILtNi99I/Sah6oFTambI/AAAAAAAAADo/TY7ywgym1MA/s1600-h/e-business_on_demand1.jpg&quot;&gt;&lt;img style=&quot;margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 422px; height: 315px;&quot; src=&quot;http://1.bp.blogspot.com/_qFuILtNi99I/Sah6oFTambI/AAAAAAAAADo/TY7ywgym1MA/s400/e-business_on_demand1.jpg&quot; alt=&quot;&quot; id=&quot;BLOGGER_PHOTO_ID_5307626989893097906&quot; border=&quot;0&quot; /&gt;&lt;/a&gt;
Representa lo que pasa en el 80% de los proyectos de desarrollo de software. Cada uno de los actores en el ciclo de vida del desarrollo del sistema, desde el cliente que especifica los requisitos hasta el desarrollador, pasando por el consultor, el analista y otros más, tiene una visión distinta de lo que se está desarrollando y aveces, esa visión difiere mucho.

Esta clase de desentendido permanente, es muy difícil de evitar. Partiendo del punto en el que el cliente no sabe (o no puede) describir correctamente lo que necesita, eso sumado a que quién capta estos requisitos puede comprender distorsionadamente una especificación que ya es errónea, y así en cada elemento de la cadena, el resultado no puede ser otro que un sistema que no le sirve al cliente.

Esto pasa, y no muy pocas veces. De hecho se le suele entregar al cliente un sistema que ambos piensan es el correcto, y el cliente paga con gusto su precio, para darse cuenta un tiempo después, que el sistema no le sirve, o está muy alejado de lo que realmente pasa en el negocio.

Existen técnicas para evitar estos problemas, de hecho existen varias técnicas formales. A mi entender, esto ocurre principalmente, por la existencia permanente de las presiones de tiempo sumado a una comunicación deficiente con el cliente (inexistente en ocasiones).

Existen líderes de proyecto que en el apuro de avanzar con el sistema lo más rápidamente posible, omiten tareas muy importantes. Por ejemplo, se suele omitir a menudo, las reuniones con todo el equipo de desarrollo (incluyendo líderes, analistas, y testers).

Imagino que con el tiempo, estas prácticas irán cambiando. Los proyectos en donde no hay una comunicación fluida y eficiente con el cliente, o no existe una comunicación y puesta común regular con todos los integrantes del equipo de desarrollo, tienen a fracasar, o no satisfacer correctamente las necesidades del cliente.</content><link rel='replies' type='application/atom+xml' href='http://blog.tolaware.com.ar/feeds/8922319208907927750/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://blog.tolaware.com.ar/2009/02/fases-en-el-ciclo-de-vida-de-sistemas.html#comment-form' title='1 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6846747566557814311/posts/default/8922319208907927750'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6846747566557814311/posts/default/8922319208907927750'/><link rel='alternate' type='text/html' href='http://blog.tolaware.com.ar/2009/02/fases-en-el-ciclo-de-vida-de-sistemas.html' title='Fases en el ciclo de vida de sistemas'/><author><name>Fernando Manzano</name><uri>http://www.blogger.com/profile/01632920861904264493</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='31' src='http://2.bp.blogspot.com/_qFuILtNi99I/SY8jiryq8BI/AAAAAAAAABM/fXotWpIPl2A/S220/curriculum.png'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://1.bp.blogspot.com/_qFuILtNi99I/Sah6oFTambI/AAAAAAAAADo/TY7ywgym1MA/s72-c/e-business_on_demand1.jpg" height="72" width="72"/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6846747566557814311.post-7190023474344550693</id><published>2009-02-20T05:46:00.010-02:00</published><updated>2009-02-20T12:59:12.243-02:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="archlinux"/><category scheme="http://www.blogger.com/atom/ns#" term="gcj"/><category scheme="http://www.blogger.com/atom/ns#" term="gnu classpath"/><category scheme="http://www.blogger.com/atom/ns#" term="icedtea"/><category scheme="http://www.blogger.com/atom/ns#" term="java"/><category scheme="http://www.blogger.com/atom/ns#" term="linux"/><category scheme="http://www.blogger.com/atom/ns#" term="open source"/><category scheme="http://www.blogger.com/atom/ns#" term="openjdk"/><category scheme="http://www.blogger.com/atom/ns#" term="sun"/><title type='text'>JDK, GNU Classpath, OpenJDK y IcedTea</title><content type='html'>&lt;span style=&quot;font-style: italic; font-weight: bold;font-size:130%;&quot; &gt;Introducción:&lt;/span&gt;

Mucho se ha escuchado hablar de estos términos. Principalmente desde que Sun decidió liberar el JDK 6 y 7  bajo la licencia GPL (versión 2). Por esto voy a tratar de explicar en forma concisa y resumida cómo se relacionan estos entornos y por qué es que aparecen en el mercado.
&lt;span style=&quot;font-size:130%;&quot;&gt;
&lt;/span&gt;&lt;span style=&quot;font-style: italic; font-weight: bold;font-size:130%;&quot; &gt;Historia:&lt;/span&gt;

Sun en 1995, crea la versión 1.0 del JDK de Java, dando a luz uno de los lenguajes más poderosos y extensamente usados del medio. El JDK, siempre estuvo bajo una licencia restrictiva,  aunque paulatinamente llevaron el lenguaje a la comunidad con procesos abiertos (&lt;a href=&quot;http://jcp.org/en/home/index&quot;&gt;Java Community Process&lt;/a&gt;) y modificando las licencias para que la máquina virtual pueda ser incluida en las distribuciones de Linux.

Si bien se podía crear software libre con Java, existía la llamada &lt;a href=&quot;http://www.gnu.org/philosophy/java-trap.html&quot;&gt;Trampa Java&lt;/a&gt;. Esta &quot;trampa&quot; consistía en que para ejecutar un software hecho en Java, era necesario disponer de una máquina virtual que pudiera realizar esta tarea, y cómo la máquina virtual hecha por Sun no era libre, entonces el software libre hecho en esta plataforma veía coartada su libertad.

Debido a esta falta de libertad, anunciada por la Trampa Java, comienzan a surgir implementaciones independientes de Sun, que intentan reemplazar su JDK por otro, libre de la trampa señalada. Entre ellas, las que más se destacaron fueron: &lt;a href=&quot;http://www.gnu.org/software/classpath/&quot;&gt;GNU Classpath&lt;/a&gt; y &lt;a href=&quot;http://gcc.gnu.org/java/&quot;&gt;GCJ&lt;/a&gt;.

Finalmente, Sun decidió liberar la versión 6 y 7 de Java SE, bajo la licencia GPLv2. Al proyecto lo llamó &lt;a href=&quot;http://openjdk.java.net/&quot;&gt;OpenJDK&lt;/a&gt;, he incluyó en él todos los componentes, exceptuando un pequeño porcentaje de ellos por problemas de licenciamiento ajenos a Sun.

El problema que surgió, fue que la plataforma Java todavía no era libre en su totalidad. Es aquí cuando Red Hat decide entrar en el juego y lograr que la plataforma Java se pueda usar y construir con herramientas totalmente libres. Por ello toma como base el proyecto OpenJDK y reemplaza los componentes que no son libres, con alternativas libres provenientes principalmente del proyecto GNU Classpath. El proyecto es llamado &lt;a href=&quot;http://icedtea.classpath.org/wiki/Main_Page&quot;&gt;IcedTea&lt;/a&gt;.

Al día de la fecha, IcedTea &lt;a href=&quot;http://icedtea.classpath.org/wiki/FrequentlyAskedQuestions#Functionality_and_Testing&quot;&gt;a pasado los test TCK correspondientes&lt;/a&gt;, lo que significa que es una alternativa &lt;span style=&quot;font-weight: bold; font-style: italic;&quot;&gt;completa&lt;/span&gt; al JDK de Sun.

&lt;span style=&quot;font-weight: bold; font-style: italic;font-size:130%;&quot; &gt;&lt;span&gt;Conclusiones:&lt;/span&gt;&lt;/span&gt;

Es bastante claro que los esfuerzos realizados para que Java llegue a ser totalmente libre, han sido muy grandes. Tanto Sun, como RedHat, el proyecto GNU Classpath y muchos otros contribuyentes, merecen un gran reconocimiento por el esfuerzo hecho para llevar a cabo esta tarea.

Un reconocimiento a su trabajo, ha sido que tanto IcedTea como OpenJDK, han sido incluidos en la mayoría de las distribuciones principales de Linux, entre las que se encuentran:
&lt;ul&gt;&lt;li&gt;Ark Linux&lt;/li&gt;&lt;li&gt;Fedora&lt;/li&gt;&lt;li&gt;Ubuntu y sus derivados&lt;/li&gt;&lt;li&gt;Debian&lt;/li&gt;&lt;li&gt;Gentoo&lt;/li&gt;&lt;li&gt;ArchLinux&lt;/li&gt;&lt;/ul&gt;Personalmente uso IcedTea en mi instalación de ArchLinux, y no he tenido ningún problema. Considerando que uso bastante Java, tanto como para correr sus programas (NetBeans, Tomcat, Vuze, MagicDraw, etc), como para desarrollar, puedo recomendar su uso sin ningún temor a fallas o comportamientos distintos a los del JDK de Sun.</content><link rel='replies' type='application/atom+xml' href='http://blog.tolaware.com.ar/feeds/7190023474344550693/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://blog.tolaware.com.ar/2009/02/jdk-gnu-classpath-openjdk-y-icedtea.html#comment-form' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6846747566557814311/posts/default/7190023474344550693'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6846747566557814311/posts/default/7190023474344550693'/><link rel='alternate' type='text/html' href='http://blog.tolaware.com.ar/2009/02/jdk-gnu-classpath-openjdk-y-icedtea.html' title='JDK, GNU Classpath, OpenJDK y IcedTea'/><author><name>Fernando Manzano</name><uri>http://www.blogger.com/profile/01632920861904264493</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='31' src='http://2.bp.blogspot.com/_qFuILtNi99I/SY8jiryq8BI/AAAAAAAAABM/fXotWpIPl2A/S220/curriculum.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6846747566557814311.post-6137130909586802879</id><published>2009-02-18T12:57:00.006-02:00</published><updated>2009-02-18T22:21:57.692-02:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="facebook"/><category scheme="http://www.blogger.com/atom/ns#" term="privacidad"/><title type='text'>Facebook pone fin a sus conflictivas políticas de privacidad</title><content type='html'>Como muchos habrán notado, se ha armado un gran revuelo por las políticas de privacidad aplicadas por Facebook. Estas políticas básicamente se apropiaban de todos los contenidos publicados por los usuarios en Facebook, incluyendo fotos, textos, videos, etc.

La cláusula en cuestión era la siguiente (la cual tenemos que aceptar obligatoriamente si queremos usar el servicio):

&lt;span style=&quot;font-style: italic;&quot;&gt;&quot;Usted cede en forma irrevocable, perpetua, no exclusiva, transferible, dada por pagada, la licencia mundial (con derecho a sublicenciar) para usar, copiar, publicar, reproducir, almacenar, mostrar, transmitir, escanear, reformatear, modificar, editar, enmarcar, traducir, resumir, adaptar, crear obras derivadas y distribuir (a través de múltiples canales), cualquier contenido que usted cuelgue en Facebook.&quot;&lt;/span&gt;

La misma fue eliminada, como anuncia el creador de esta red social (Mark Zuckerberg), en &lt;a href=&quot;http://blog.facebook.com/blog.php?post=54746167130&quot;&gt;su blog&lt;/a&gt;.

No entiendo por qué se ha armado tanto revuelo con esto, si esta cláusula llevaba bastante tiempo aplicándose. Lo único que cambiaron de esa cláusula (que ahora han revocado) es que el contenido seguía siendo propiedad de Facebook incluso si el usuario lo eliminaba del servicio.

Creo que somos gente libre (al menos eso nos hacen creer) y como tales, tenemos la libertad de dejar de usar el servicio cuando queramos. Y si hiciésemos eso todos los usuarios a los cuales nos molestaba la criticada cláusula en ves de quejarnos, probablemente hubiésemos tenido mejores resultados.</content><link rel='replies' type='application/atom+xml' href='http://blog.tolaware.com.ar/feeds/6137130909586802879/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://blog.tolaware.com.ar/2009/02/facebook-pone-fin-sus-conflictivas.html#comment-form' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6846747566557814311/posts/default/6137130909586802879'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6846747566557814311/posts/default/6137130909586802879'/><link rel='alternate' type='text/html' href='http://blog.tolaware.com.ar/2009/02/facebook-pone-fin-sus-conflictivas.html' title='Facebook pone fin a sus conflictivas políticas de privacidad'/><author><name>Fernando Manzano</name><uri>http://www.blogger.com/profile/01632920861904264493</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='31' src='http://2.bp.blogspot.com/_qFuILtNi99I/SY8jiryq8BI/AAAAAAAAABM/fXotWpIPl2A/S220/curriculum.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6846747566557814311.post-5422522302290287693</id><published>2009-02-16T18:33:00.012-02:00</published><updated>2009-02-16T23:53:10.238-02:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="humor"/><category scheme="http://www.blogger.com/atom/ns#" term="video"/><title type='text'>Abrace a un desarrollador</title><content type='html'>Naufragando por la red, me encontré un video con el cual la mayoría de los desarrolladores de software se pueden sentir identificados. No tiene desperdicio.

&lt;embed src=&quot;http://blip.tv/play/gYwjwZJqjdEh&quot; type=&quot;application/x-shockwave-flash&quot; width=&quot;550&quot; height=&quot;335&quot; allowscriptaccess=&quot;always&quot; allowfullscreen=&quot;true&quot;&gt;&lt;/embed&gt; 

Les traduzco las frases por si las moscas:

&lt;span style=&quot;font-style: italic;&quot;&gt;Los desarrolladores están sufriendo mucho, en todos lados&lt;/span&gt;

&lt;span style=&quot;font-style: italic;&quot;&gt;Estoy sufriendo&lt;/span&gt;

&lt;span style=&quot;font-style: italic;&quot;&gt;Estamos en el cuarto mes de un calendario de 5 meses, y recién ayer recibimos los requerimientos finales (y cambiaron nuevamente)&lt;/span&gt;

&lt;span style=&quot;font-style: italic;&quot;&gt;Paso la mitad de mis días en reuniones sobre cómo aumentar el trabajo (en vez de trabajar)&lt;/span&gt;
&lt;span style=&quot;font-style: italic;&quot;&gt;Mi jefe leyó en una revista que los desarrolladores que usan el lenguaje de programación &quot;______&quot; son el doble de productivos. Por lo que compró una licencia y redujo el calendario a la mitad&lt;/span&gt;

&lt;span style=&quot;font-style: italic;&quot;&gt;Todos los días, mi jefe cambia de parecer sobre lo que desarrollamos&lt;/span&gt;

&lt;span style=&quot;font-style: italic;&quot;&gt;La gente sigue pidiéndome que les arregle el correo, por lo que no me queda tiempo para programar&lt;/span&gt;

&lt;span style=&quot;font-style: italic;&quot;&gt;Mi papa ya no tiene tiempo para mi&lt;/span&gt;

&lt;span style=&quot;font-style: italic;&quot;&gt;Unos consultores le dijeron a mi jefe que podían desarrollar nuestra nueva versión por la mitad del dinero. Ellos les creyeron y ahora se gastaron todo el dinero, se tardaron todo el tiempo, y terminaron sólo la mitad. Ahora se fueron y el código es un desastre ... y nosotros tenemos que terminar lo que ellos empezaron.&lt;/span&gt;

&lt;span style=&quot;font-style: italic;&quot;&gt;Hoy, dele un abrazo a un desarrollador&lt;/span&gt;

&lt;span style=&quot;font-style: italic;&quot;&gt;Acabo de terminar un curso intensivo de Visual Basic, de 6 semanas&lt;/span&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.tolaware.com.ar/feeds/5422522302290287693/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://blog.tolaware.com.ar/2009/02/abrace-un-desarrollador.html#comment-form' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6846747566557814311/posts/default/5422522302290287693'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6846747566557814311/posts/default/5422522302290287693'/><link rel='alternate' type='text/html' href='http://blog.tolaware.com.ar/2009/02/abrace-un-desarrollador.html' title='Abrace a un desarrollador'/><author><name>Fernando Manzano</name><uri>http://www.blogger.com/profile/01632920861904264493</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='31' src='http://2.bp.blogspot.com/_qFuILtNi99I/SY8jiryq8BI/AAAAAAAAABM/fXotWpIPl2A/S220/curriculum.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6846747566557814311.post-6210583722340052276</id><published>2009-02-15T11:41:00.010-02:00</published><updated>2009-02-15T22:52:00.028-02:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="debian"/><category scheme="http://www.blogger.com/atom/ns#" term="lanzamientos"/><category scheme="http://www.blogger.com/atom/ns#" term="lenny"/><category scheme="http://www.blogger.com/atom/ns#" term="linux"/><title type='text'>Debian GNU/Linux Lenny publicado</title><content type='html'>Debian GNU/Linux, desconocida para algunos, amada por otros.

Esta distribución, que ha sido muy criticada por la &quot;antigüedad&quot; de sus paquetes, es una de las más estables que conozco. Para los que no lo saben, es la base de todas las versiones de Ubuntu y sus derivados.

Ayer (14/02/2009), publicaron la versión &quot;Lenny&quot; 5.0, como se muestra en &lt;a href=&quot;http://www.debian.org/News/2009/20090214&quot;&gt;este anuncio&lt;/a&gt;.

Las mejoras que se destacan son:
&lt;ul&gt;&lt;li&gt;Posibilidad de probarlo sin instalarlo, mediante una imagen que puede ser cargada desde un CD, un DVD, una memoria USB, o en forma remota (previa configuración de red).&lt;/li&gt;&lt;li&gt;K Desktop Environment 3.5.10 y GNOME 2.22.2&lt;/li&gt;&lt;li&gt;X.Org 7.3&lt;/li&gt;&lt;li&gt;La inclusión de OpenJDK, una versión totalmente libre del JDK de Java.&lt;/li&gt;&lt;li&gt;Soporte para la plataforma Orion de Marvell.&lt;/li&gt;&lt;li&gt; Nueva adaptación ARM EABI, para plataformas ARM.&lt;/li&gt;&lt;/ul&gt;Y por supuesto, la confiabilidad de ser una de las pocos distribuciones que se basa en la estabilidad del sistema y no en una fecha específica para hacer una release. Por algo es una de las mejores distribuciones que existen para servidores.

Algunas cosas se han dejado de soportar:
&lt;ul&gt;&lt;li&gt;Kernel 2.4&lt;/li&gt;&lt;li&gt;No se da más soporte a la arquitectura Sparc32&lt;/li&gt;&lt;li&gt;Apache 1.x fue reemplazado por Apache2&lt;/li&gt;&lt;li&gt;XMMS 1.x fue reemplazado por XMMS2&lt;/li&gt;&lt;li&gt;Algunos &lt;em&gt;firmwares&lt;/em&gt; ya no están en el repositorio principal, pero sí en&lt;span style=&quot;font-family:monospace;&quot;&gt;&lt;/span&gt; non-free. (por cuestiones de licencias)
&lt;/li&gt;&lt;li&gt;FlashPlayer disponible sólo en &lt;em&gt;backport&lt;/em&gt; (pero swfdec-mozilla instalado por defecto)&lt;/li&gt;&lt;/ul&gt;
Pueden encontrar una lista completa y detallada de cambios &lt;a href=&quot;http://www.debian.org/releases/lenny/amd64/release-notes/ch-whats-new.es.html#id2484424&quot;&gt;aquí&lt;/a&gt;. La página oficial de esta distribución es: &lt;a href=&quot;http://www.debian.org/&quot;&gt;http://www.debian.org&lt;/a&gt;. Saludos lectores, y hasta la próxima.</content><link rel='replies' type='application/atom+xml' href='http://blog.tolaware.com.ar/feeds/6210583722340052276/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://blog.tolaware.com.ar/2009/02/debian-gnulinux-lenny-publicado.html#comment-form' title='1 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6846747566557814311/posts/default/6210583722340052276'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6846747566557814311/posts/default/6210583722340052276'/><link rel='alternate' type='text/html' href='http://blog.tolaware.com.ar/2009/02/debian-gnulinux-lenny-publicado.html' title='Debian GNU/Linux Lenny publicado'/><author><name>Fernando Manzano</name><uri>http://www.blogger.com/profile/01632920861904264493</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='31' src='http://2.bp.blogspot.com/_qFuILtNi99I/SY8jiryq8BI/AAAAAAAAABM/fXotWpIPl2A/S220/curriculum.png'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6846747566557814311.post-4089114153088289903</id><published>2009-02-14T18:43:00.005-02:00</published><updated>2009-02-17T18:13:22.934-02:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="cursos online"/><category scheme="http://www.blogger.com/atom/ns#" term="java"/><category scheme="http://www.blogger.com/atom/ns#" term="javaee"/><title type='text'>JavaPassion: cursos online gratuitos sobre Java</title><content type='html'>Hola a todos. En esta oportunidad quiero hacerles conocer una serie de cursos online sobre Java.

Los cursos en cuestión son llamados genéricamente JavaPassion. Se trata de varios cursos orientados a las distintas partes y componentes de las tecnologías Java en General. Comenzando desde lo más básico de Java, llegando a tópicos bastante avanzados como la programación con GoogleWebToolkit. Hay también disponibles cursos sobre Ruby, JRuby y Rails, y hasta sobre programación en redes sociales.

El curso que más se destaca es el de JavaEE, el cual estoy tomando en este momento y sinceramente es uno de los cursos que más satisfacción me ha dado, ya que es notorio el esfuerzo y tiempo que ha dedicado ha elaborarlos y mantenerlos actualizados.

Estos cursos son creados y actualizados por Sang Shin, que trabaja actualmente para Sun ocupando los cargos de &lt;span style=&quot;font-style: italic;&quot;&gt;Technology Evangelist&lt;/span&gt; y&lt;span style=&quot;font-style: italic;&quot;&gt; Technology Architecture Consultant.
&lt;/span&gt;
La página de JavaPassion es &lt;a href=&quot;http://www.javapassion.com/&quot;&gt;http://www.javapassion.com/&lt;/a&gt;.

El único problema es que los cursos están en Inglés, pero por suerte, el lenguaje usado en los apuntes es bastante técnico y entendible fácilmente.

Espero que les sea de utilidad. Saludos y hasta la próxima
&lt;span style=&quot;font-style: italic;&quot;&gt;&lt;/span&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.tolaware.com.ar/feeds/4089114153088289903/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://blog.tolaware.com.ar/2009/02/javapassion-cursos-online-gratuitos.html#comment-form' title='1 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6846747566557814311/posts/default/4089114153088289903'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6846747566557814311/posts/default/4089114153088289903'/><link rel='alternate' type='text/html' href='http://blog.tolaware.com.ar/2009/02/javapassion-cursos-online-gratuitos.html' title='JavaPassion: cursos online gratuitos sobre Java'/><author><name>Fernando Manzano</name><uri>http://www.blogger.com/profile/01632920861904264493</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='31' src='http://2.bp.blogspot.com/_qFuILtNi99I/SY8jiryq8BI/AAAAAAAAABM/fXotWpIPl2A/S220/curriculum.png'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6846747566557814311.post-6739180054762793447</id><published>2009-02-13T14:05:00.008-02:00</published><updated>2009-02-13T20:19:50.554-02:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="archlinux"/><category scheme="http://www.blogger.com/atom/ns#" term="fuentes"/><category scheme="http://www.blogger.com/atom/ns#" term="linux"/><category scheme="http://www.blogger.com/atom/ns#" term="tahoma"/><category scheme="http://www.blogger.com/atom/ns#" term="ubuntu"/><title type='text'>Tahoma negrita en Linux</title><content type='html'>Tanto en Ubuntu y sus derivados, como en ArchLinux, siempre es necesario instalar un paquete de fuentes luego de la instalación normal, para que las Webs se visualicen correctamente (o al menos como el diseñador web la diseñó).

El problema que existe con estos paquetes de fuentes, es que no incluyen todas las fuentes normalmente usadas en la web, y que por ende estas se dibujan mal en la pantalla.

La fuente que, a mi parecer, es la que más hace falta es Tahoma Bold (Tahoma Negrita), tal como se indica en los correspondientes reportes de bugs de &lt;a href=&quot;https://bugs.launchpad.net/ubuntu/+source/msttcorefonts/+bug/50529&quot;&gt;Ubuntu&lt;/a&gt; y &lt;a href=&quot;http://bugs.archlinux.org/task/12547&quot;&gt;ArchLinux&lt;/a&gt;.

Como se puede ver en esos reportes, el bug no será solucionado próximamente. Por ello, elaboré aquí una miniguía sobre como solucionar este problema.

Los pasos a seguir son:

1) Obtener la fuente correspondiente
La pueden obtener de &lt;a href=&quot;http://www.webpagepublicity.com/free-fonts/t/Tahoma%20Bold.ttf&quot;&gt;este enlace&lt;/a&gt;, o del directorio Windows/Fonts de alguna instalación de Windows (el archivo se llama tahomabd.ttf)

2) Copiarla al directorio correspondiente.
En el caso de querer disponer de la fuente sólo para un usuario, debes copiar el archivo en la carpeta /home/usuario/.fonts/ (Si no existe, deben crearla). En caso de querer disponer de ella para todo el sistema, debes copiar el archivo a /usr/share/fonts

3) Refrescar la caché de fuentes.
Esto lo hacemos ingresando en una consola como root (o con sudo) y ejecutando el comando
fc-cache -vf

Esperamos un momento y listo. Todas las aplicaciones que abramos desde este momento, usarán la fuente Tahoma bold correcta.</content><link rel='replies' type='application/atom+xml' href='http://blog.tolaware.com.ar/feeds/6739180054762793447/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://blog.tolaware.com.ar/2009/02/tahoma-negrita-en-linux.html#comment-form' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6846747566557814311/posts/default/6739180054762793447'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6846747566557814311/posts/default/6739180054762793447'/><link rel='alternate' type='text/html' href='http://blog.tolaware.com.ar/2009/02/tahoma-negrita-en-linux.html' title='Tahoma negrita en Linux'/><author><name>Fernando Manzano</name><uri>http://www.blogger.com/profile/01632920861904264493</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='31' src='http://2.bp.blogspot.com/_qFuILtNi99I/SY8jiryq8BI/AAAAAAAAABM/fXotWpIPl2A/S220/curriculum.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6846747566557814311.post-2468878908874683052</id><published>2009-02-12T16:46:00.003-02:00</published><updated>2009-02-12T17:24:07.802-02:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="java"/><category scheme="http://www.blogger.com/atom/ns#" term="javafx"/><category scheme="http://www.blogger.com/atom/ns#" term="linux"/><category scheme="http://www.blogger.com/atom/ns#" term="opensolaris"/><category scheme="http://www.blogger.com/atom/ns#" term="sun"/><title type='text'>Lanzamiento de JavaFX 1.1 y Linux</title><content type='html'>Como se anuncia en la &lt;a href=&quot;http://www.javafx.com/launch/index-linux.jsp&quot;&gt;página oficial de JavaFX&lt;/a&gt;, Sun ha lanzando una &lt;a href=&quot;http://www.javafx.com/launch/index-linux.jsp&quot;&gt;nueva release de JavaFX&lt;/a&gt;, la versión 1.1.

En el lanzamiento de la versión 1.0 de esta tecnología, se armó revuelo porque no se había lanzado una versión para Linux. Ni siquiera se lanzó una versión para OpenSolaris, lo cual es raro ya que es un sistema operativo desarrollado también por Sun, y al tomar la política de no lanzar una versión para su propio sistema operativo, me deja pensando sobre las razones que lo llevan a tomar esas acciones.

Sun anunció que lanzaría una versión para Linux y OpenSolaris en una futura release.

Llegó la primera &quot;futura release&quot; y como era de esperarse tampoco hay una versión para Linux y OpenSolaris. Sun nuevamente anunció que dispondrá de una versión para las plataformas nombradas, en una futura release.

Es poco probable que Sun esté evitando intencionalmente lanzar estas versiones. Digo improbable ya que han demostrado un fuerte compromiso con el software libre y las plataformas alternativas a Microsoft. Pero, de todas maneras, me sigue pareciendo raro.

Todavía no he tenido la oportunidad de desarrollar en esta plataforma, pero a juzgar por la amplia aceptación que está teniendo, y por la calidad gráfica de las aplicaciones desarrolladas sobre ella, es una tecnología que definitivamente quiero probar y el hecho de no contar con una versión &lt;span style=&quot;font-weight: bold;&quot;&gt;oficial&lt;/span&gt; para Linux, es bastante molesto. Destaco la palabra &quot;oficial&quot; ya que es posible usar JavaFx en Linux, con algunas limitaciones.

Esperemos que Sun finalmente disponga de una versión para Linux y OpenSolaris en su próxima release, que al parecer será la 2.0 y no falta mucho para que vea la luz.

Saludos lectores. Hasta la próxima.</content><link rel='replies' type='application/atom+xml' href='http://blog.tolaware.com.ar/feeds/2468878908874683052/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://blog.tolaware.com.ar/2009/02/lanzamiento-de-javafx-11-y-linux.html#comment-form' title='1 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6846747566557814311/posts/default/2468878908874683052'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6846747566557814311/posts/default/2468878908874683052'/><link rel='alternate' type='text/html' href='http://blog.tolaware.com.ar/2009/02/lanzamiento-de-javafx-11-y-linux.html' title='Lanzamiento de JavaFX 1.1 y Linux'/><author><name>Fernando Manzano</name><uri>http://www.blogger.com/profile/01632920861904264493</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='31' src='http://2.bp.blogspot.com/_qFuILtNi99I/SY8jiryq8BI/AAAAAAAAABM/fXotWpIPl2A/S220/curriculum.png'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6846747566557814311.post-2739407320361218264</id><published>2009-02-11T03:38:00.012-02:00</published><updated>2009-02-11T05:32:24.001-02:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="archlinux"/><category scheme="http://www.blogger.com/atom/ns#" term="baobab"/><category scheme="http://www.blogger.com/atom/ns#" term="disco rigido"/><category scheme="http://www.blogger.com/atom/ns#" term="herramientas"/><category scheme="http://www.blogger.com/atom/ns#" term="linux"/><category scheme="http://www.blogger.com/atom/ns#" term="optimizacion"/><category scheme="http://www.blogger.com/atom/ns#" term="pacman"/><title type='text'>Tamaño de la cache de paquetes en archlinux</title><content type='html'>Me disponía a crear una nueva máquina virtual para realizar algunas pruebas, y me encontré con que mi disco estaba bastante lleno. Tengo en la misma partición el sistema base y mi directorio personal, lo cual a llevado a que con el tiempo, se llene de cosas innecesarias.

Por ello, me decidí a limpiar mi disco de cosas innecesarias y prescindibles. Como es sabido que en linux la &quot;basura&quot; que se genera es muy poca (hablando de archivos innecesarios), es obvio que usar alguna herramienta automatizada para eliminarla (como en Windows), no es una solución efectiva. Por lo que decidí a analizar el contenido del disco y decidir en forma manual (osea yo) que es lo que se borra y que es lo que no se borra.

Para ello, usé una excelente herramienta llamada &lt;span style=&quot;font-weight: bold;&quot;&gt;baobab&lt;/span&gt;, o &quot;Analizador de uso del disco&quot; en idioma coloquial. Herramienta que detalla con precisión y profundidad, el uso específico de espacio de cada carpeta, lo cual nos permite determinar qué carpetas están excedidas de peso :).

Luego de unos minutos de análisis, los resultados fueron los siguientes:

&lt;a onblur=&quot;try {parent.deselectBloggerImageGracefully();} catch(e) {}&quot; href=&quot;http://3.bp.blogspot.com/_qFuILtNi99I/SZJo27nnK4I/AAAAAAAAAB4/tynO1wTTqdQ/s1600-h/img1.png&quot;&gt;&lt;img style=&quot;margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 400px; height: 230px;&quot; src=&quot;http://3.bp.blogspot.com/_qFuILtNi99I/SZJo27nnK4I/AAAAAAAAAB4/tynO1wTTqdQ/s400/img1.png&quot; alt=&quot;&quot; id=&quot;BLOGGER_PHOTO_ID_5301415004294556546&quot; border=&quot;0&quot; /&gt;&lt;/a&gt;Como puede observarse, las carpetas más voluminosas son &lt;span style=&quot;font-weight: bold;&quot;&gt;/media&lt;/span&gt; y &lt;span style=&quot;font-weight: bold;&quot;&gt;/home&lt;/span&gt;, llevándose el 66.4% de todo el espacio ocupado. Si bien son las más voluminosas, también son las más difíciles de achicar en tamaño, ya que los archivos que coloco ahí son colocados a conciencia y por ende, son necesarios.

Si dirigimos la atención a la siguiente carpeta en orden de tamaño, nos encontramos con &lt;span style=&quot;font-weight: bold;&quot;&gt;/var&lt;/span&gt;, la cual representa un &quot;modesto&quot; 20% de todo el espacio ocupado. Es en ella en donde enfocaremos nuestra limpieza. Para ello miremos con detenimiento el contenido de esta carpeta.

&lt;a onblur=&quot;try {parent.deselectBloggerImageGracefully();} catch(e) {}&quot; href=&quot;http://2.bp.blogspot.com/_qFuILtNi99I/SZJ8iIwFfPI/AAAAAAAAACg/w5l-yapTcYc/s1600-h/img2.png&quot;&gt;&lt;img style=&quot;margin: 0pt 0pt 10px 10px; float: right; cursor: pointer; width: 320px; height: 215px;&quot; src=&quot;http://2.bp.blogspot.com/_qFuILtNi99I/SZJ8iIwFfPI/AAAAAAAAACg/w5l-yapTcYc/s320/img2.png&quot; alt=&quot;&quot; id=&quot;BLOGGER_PHOTO_ID_5301436637275061490&quot; border=&quot;0&quot; /&gt;&lt;/a&gt;En la imagen de la derecha, se aprecian claramente las carpetas contenidas dentro de &lt;span style=&quot;font-weight: bold;&quot;&gt;/var&lt;/span&gt; y sus respectivos tamaños y porcentajes.

Hay un claro dominante y es la carpeta &lt;span style=&quot;font-weight: bold;&quot;&gt;/var/cache&lt;/span&gt; con 6 Gib de espacio ocupado.

Esto quiere decir que nuestro sistema está ocupando bastante espacio en realizar cacheo de archivos que probablemente no usemos ni en un 5%. Esto es debido a que la cache está muy llena (6 Gib de archivos es demasiado).

Por ello, miremos con detenimiento el contenido de la carpeta &lt;span style=&quot;font-weight: bold;&quot;&gt;/var/cache&lt;/span&gt;

&lt;a onblur=&quot;try {parent.deselectBloggerImageGracefully();} catch(e) {}&quot; href=&quot;http://1.bp.blogspot.com/_qFuILtNi99I/SZJr6Pf8NwI/AAAAAAAAACI/2tGsGN4K-io/s1600-h/img3.png&quot;&gt;&lt;img style=&quot;margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 320px; height: 179px;&quot; src=&quot;http://1.bp.blogspot.com/_qFuILtNi99I/SZJr6Pf8NwI/AAAAAAAAACI/2tGsGN4K-io/s320/img3.png&quot; alt=&quot;&quot; id=&quot;BLOGGER_PHOTO_ID_5301418359705581314&quot; border=&quot;0&quot; /&gt;&lt;/a&gt; Al observar la imagen de la izquierda, vemos que hay un claro ganador, y es &lt;span style=&quot;font-weight: bold;&quot;&gt;/var/log/pacman&lt;/span&gt;.

Para los que no conocen mucho de archlinux, pacman es el gestor de paquetes de esta distribución, y como observamos en esta figura, ha dedicado 6 Gib de nuestro de disco a guardar los paquetes que descargamos y luego instalamos.

Hecho el análisis y encontrada la raíz del problema, es necesario encontrar una solución.

Las solución más obvia sería borrar directamente la cache de pacman con el comando &lt;span style=&quot;font-style: italic;&quot;&gt;pacman -Scc&lt;/span&gt;, lo cual nos llevaría a tener esos 6 Gib de nuevos con nosotros, pero anularíamos completamente la funcionalidad de la cache, por lo que la solución óptima sería eliminar de la cache los paquetes que ya hemos desinstalado y los que se han actualizado (que por ende la versión anterior ya no es necesaria)

Esto se realiza muy fácilmente con el comando&lt;span style=&quot;font-style: italic;&quot;&gt; pacman -Sc&lt;/span&gt; . Analicemos ahora los resultados de la limpieza:

&lt;a onblur=&quot;try {parent.deselectBloggerImageGracefully();} catch(e) {}&quot; href=&quot;http://3.bp.blogspot.com/_qFuILtNi99I/SZJ53rHMunI/AAAAAAAAACY/KaNzW9ti1W4/s1600-h/img4.png&quot;&gt;&lt;img style=&quot;margin: 0pt 0pt 10px 10px; float: right; cursor: pointer; width: 320px; height: 283px;&quot; src=&quot;http://3.bp.blogspot.com/_qFuILtNi99I/SZJ53rHMunI/AAAAAAAAACY/KaNzW9ti1W4/s320/img4.png&quot; alt=&quot;&quot; id=&quot;BLOGGER_PHOTO_ID_5301433708741180018&quot; border=&quot;0&quot; /&gt;&lt;/a&gt;Como se aprecia claramente en la imagen, hemos disminuido el espacio ocupado por la cache de pacman, de 6 Gib a sólo 1.3 Gib, recuperando casi 5 Gib de espacio y sin resignar el contenido útil de la misma.

Cabe aclarar que hay muchas otras maneras de reducir el espacio ocupado innecesariamente. Por ejemplo, podríamos limpiar la carpeta &lt;span style=&quot;font-weight: bold;&quot;&gt;/var/log&lt;/span&gt;, la cual está cerca de legar al Gib de espacio ocupado.

De todo esta análisis, es necesario sacar una conclusión bastante importante.

Si bien linux es un sistema bastante optimizado y eficiente en muchos aspectos, como así también lo son la mayoría de los programas que usamos con el, es necesario revisar esporádicamente en que estado están los distintos componentes del sistema (entre ellos el disco rídigo y sus sitemas de archivos). Esto es válido tanto para linux, como para los otros sistemas operativos.</content><link rel='replies' type='application/atom+xml' href='http://blog.tolaware.com.ar/feeds/2739407320361218264/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://blog.tolaware.com.ar/2009/02/tamano-de-la-cache-de-paquetes-en.html#comment-form' title='2 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6846747566557814311/posts/default/2739407320361218264'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6846747566557814311/posts/default/2739407320361218264'/><link rel='alternate' type='text/html' href='http://blog.tolaware.com.ar/2009/02/tamano-de-la-cache-de-paquetes-en.html' title='Tamaño de la cache de paquetes en archlinux'/><author><name>Fernando Manzano</name><uri>http://www.blogger.com/profile/01632920861904264493</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='31' src='http://2.bp.blogspot.com/_qFuILtNi99I/SY8jiryq8BI/AAAAAAAAABM/fXotWpIPl2A/S220/curriculum.png'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://3.bp.blogspot.com/_qFuILtNi99I/SZJo27nnK4I/AAAAAAAAAB4/tynO1wTTqdQ/s72-c/img1.png" height="72" width="72"/><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6846747566557814311.post-6940787536538373014</id><published>2009-02-10T17:18:00.020-02:00</published><updated>2009-07-25T07:08:13.767-03:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="ruby"/><category scheme="http://www.blogger.com/atom/ns#" term="servicios web"/><category scheme="http://www.blogger.com/atom/ns#" term="webrick"/><category scheme="http://www.blogger.com/atom/ns#" term="webservices"/><category scheme="http://www.blogger.com/atom/ns#" term="xml-rpc"/><title type='text'>Creando Servicios Web con Ruby</title><content type='html'>&lt;span style=&quot;font-weight: bold;font-family:georgia;font-size:130%;&quot;  &gt;&lt;span&gt;Introducción&lt;/span&gt;&lt;/span&gt;

En esta ocasión, mostraré como crear un servicio web (basado en XML-RPC) y publicarlo en nuestra PC, con el lenguaje Ruby.

Publicaremos como servicio web, 2 funcionalidades matemáticas, muy básicas, pero que sirven de ejemplo para mostrar como hacer pública una funcionalidad hecha en Ruby. Siendo precisos, publicaremos 2 servicios, uno de suma y otro de resta de números que pertenecerán a un servicio web de nombre &quot;ejemplo&quot;.

&lt;span style=&quot;font-weight: bold;font-size:130%;&quot; &gt;El Código&lt;/span&gt;
Les muestro el código y luego lo vemos paso por paso.
&lt;pre class=&quot;sh_ruby&quot;&gt;require &#39;xmlrpc/server&#39;
server = XMLRPC::Server.new(1234)
server.add_handler(&quot;ejemplo.sumar&quot;) do |a,b|
    a.to_i + b.to_i
end
server.add_handler(&quot;ejemplo.restar&quot;) do |a,b|
    a.to_i - b.to_i
end
trap(&quot;INT&quot;) {server.shutdown}
server.serve&lt;/pre&gt;
Si corren este código con el intérprete de Ruby, habrán creado y publicado en su propia PC, un Servicio Web.

&lt;span style=&quot;font-weight: bold;font-size:130%;&quot; &gt;Explicación&lt;/span&gt;

Vamos por partes.

La primera línea del código es esta:
&lt;pre class=&quot;sh_ruby&quot;&gt;require &#39;xmlrpc/server&#39;&lt;/pre&gt;Con esa línea, importamos la clase Server de la librería xmlrpc, la cual es la que nos permite crear y usar servicios web basados en XML-RCP, de una manera simple. La clase Server es la que utilizaremos para crear y publicar el servicio web. En caso de queramos &lt;span style=&quot;font-weight: bold;&quot;&gt;usar&lt;/span&gt; un servicio web, deberíamos usar la clase Client de la misma librería, pero eso lo veremos en otro momento.

La siguiente línea que nos encontramos luego del &lt;span style=&quot;font-style: italic;&quot;&gt;require&lt;/span&gt;, es:
&lt;pre class=&quot;sh_ruby&quot;&gt;server = XMLRPC::Server.new(1234)&lt;/pre&gt;Lo que hacemos aquí, es crear una instancia de un servidor de servicios web (webrick para ser exactos) y le indicamos que escuche en el puerto 1234 (en un dejo de originalidad). Esta instancia de servidor de servicios web, se materializa en un objeto de la clase Server nombrada anteriormente.

Luego nos encontramos con:
&lt;pre class=&quot;sh_ruby&quot;&gt;server.add_handler(&quot;ejemplo.sumar&quot;) do |a,b|
    a.to_i + b.to_i
end&lt;/pre&gt;Aquí hace falta un poco más de explicación.

El objeto server lo acabamos de crear, y es a este objeto al que le tenemos que indicar que funcionalidades tendrá nuestro servicio web. En este caso estamos agregando una funcionalidad llamada &quot;sumar&quot; a nuestro servicio web llamado &quot;ejemplo&quot;. El método usado se llama add_handler, y el mismo requiere como parámetro el nombre del servicio (&quot;ejemplo.sumar&quot; en nuestro caso) y un bloque de código, que es el bloque de código que ejecutaremos cuando se invoque al servicio web.

A este bloque de código le pasamos como parámetro 2 variables, las cuales convertimos a números y las sumamos con la siguiente línea de código
&lt;pre class=&quot;sh_ruby&quot;&gt;a.to_i + b.to_i&lt;/pre&gt;Como esa línea es la última del bloque de código pasado al método add_handler, entonces el resultado de esa línea de código es lo que devuelve la invocación del servicio web, es decir, la suma de &quot;a&quot; y &quot;b&quot;.

Luego nos encontramos con un bloque de código similar al anterior:
&lt;pre class=&quot;sh_ruby&quot;&gt;server.add_handler(&quot;ejemplo.restar&quot;) do |a,b|
    a.to_i - b.to_i
end&lt;/pre&gt;La única diferencia, es que ahora publicamos una nueva funcionalidad del servicio web &quot;ejemplo&quot;, llamada &quot;restar&quot;, la cual tiene los mismos parámetros pero en vez de sumarlos los resta.

Continuando, vemos:
&lt;pre class=&quot;sh_ruby&quot;&gt;trap(&quot;INT&quot;) { server.shutdown }&lt;/pre&gt;Aquí lo que hacemos es atrapar la señal &quot;INT&quot; que nos peude llegar a enviar el sistema operativo para cerrarnos. Si el sistema nos envía esa señal, nuestro código ejecutará el bloque pasado por parámetro. En nuestro caso, lo único que hace ese bloque es parar el servidor.

La última línea que encontramos es:
&lt;pre class=&quot;sh_ruby&quot;&gt;server.serve&lt;/pre&gt;Esta le indica al servidor que arranque. Desde este punto en adelante, tendremos el servicio web andando y disponible.

&lt;span style=&quot;font-size:130%;&quot;&gt;&lt;span style=&quot;font-weight: bold;&quot;&gt;Comentarios finales&lt;/span&gt;&lt;/span&gt;

En este caso, hemos publicado servicios de una manera un poco forzada, especificando directamente el código que queremos ejecutar cuando se invoquen esos servicios.

En otro oportunidad, mostraré como publicar como servicios web las funcionalidades encapsuladas en una clase, evitando especificar directamente el bloque de código en la llamada al método add_handler de la clase Server.

Nos vemos y hasta la próxima.</content><link rel='replies' type='application/atom+xml' href='http://blog.tolaware.com.ar/feeds/6940787536538373014/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://blog.tolaware.com.ar/2009/02/creando-servicios-web-con-ruby.html#comment-form' title='1 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6846747566557814311/posts/default/6940787536538373014'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6846747566557814311/posts/default/6940787536538373014'/><link rel='alternate' type='text/html' href='http://blog.tolaware.com.ar/2009/02/creando-servicios-web-con-ruby.html' title='Creando Servicios Web con Ruby'/><author><name>Fernando Manzano</name><uri>http://www.blogger.com/profile/01632920861904264493</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='31' src='http://2.bp.blogspot.com/_qFuILtNi99I/SY8jiryq8BI/AAAAAAAAABM/fXotWpIPl2A/S220/curriculum.png'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6846747566557814311.post-4777504056287508157</id><published>2009-02-10T04:38:00.013-02:00</published><updated>2009-07-25T07:01:14.484-03:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="ruby"/><category scheme="http://www.blogger.com/atom/ns#" term="servlet"/><category scheme="http://www.blogger.com/atom/ns#" term="webrick"/><title type='text'>Crear un servlet con Ruby</title><content type='html'>Bueno, en este corto tutorial voy a mostrar como hacer un pequeño Servlet en Ruby. Para ello me voy a valer de la librería webrick para montar el servidor que escuche las peticiones.

Por si no saben lo que es servlet, es algo así como un programa puesto en la red (internet o red local) el cual escucha peticiones y lo podemos invocar desde nuestro navegador web, pasándole datos inclusive. Este programa procesa el pedido que le hacemos, y nos devuelve un resultado, por lo general una página web que es visualizada en el navegador.

El código de un servlet básico es el siguiente:
&lt;pre class=&quot;sh_ruby&quot;&gt;require &#39;webrick&#39;
class MiServlet &amp;lt; WEBrick::HTTPServlet::AbstractServlet
    def do_GET(request, response)
        response.status = 200
        response.content_type = &quot;text/plain&quot;
        response.body = &quot;Hola mundo!&quot;
    end
end
server = WEBrick::HTTPServer.new( :Port =&amp;gt; 1234 )
server.mount &quot;/&quot;, MiServlettrap(&quot;INT&quot;){ server.shutdown }
server.start&lt;/pre&gt;Como pueden ver es bastante simple.

En la primera línea importamos la librería webrick, la cual nos permitirá levantar un servidor web y hacerlo escuchar en un puerto específico.

En la segunda línea, nos ocupamos de crear una clase que herede de AbstractServlet (clase importada de la librería webrick), esta nos da la funcionalidad básica para implementar el servlet.

Lo único que tenemos que hacer, es implementar el método do_GET o do_POST, según la respuesta que queramos dar. En nuestro caso, usamos do_GET y respondemos con una página simple que sólo tiene un texto corto adentro.

Con esas líneas ya creamos el servlet. Ahora es necesario crear una instancia del servidor web que escuche en el puerto 1234 y que canalice las peticiones a nuestro Servlet.

Por último, arrancamos el servidor, y LISTO.

Si has programado en Java, probablemente veas bastantes similitudes con los Servlets de Java, esto así porque la idea detrás de esta funcionalidad, es la misma en ambos casos.

Espero que les haya sido de utilidad.</content><link rel='replies' type='application/atom+xml' href='http://blog.tolaware.com.ar/feeds/4777504056287508157/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://blog.tolaware.com.ar/2009/02/crear-un-servlet-con-ruby.html#comment-form' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6846747566557814311/posts/default/4777504056287508157'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6846747566557814311/posts/default/4777504056287508157'/><link rel='alternate' type='text/html' href='http://blog.tolaware.com.ar/2009/02/crear-un-servlet-con-ruby.html' title='Crear un servlet con Ruby'/><author><name>Fernando Manzano</name><uri>http://www.blogger.com/profile/01632920861904264493</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='31' src='http://2.bp.blogspot.com/_qFuILtNi99I/SY8jiryq8BI/AAAAAAAAABM/fXotWpIPl2A/S220/curriculum.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6846747566557814311.post-2494849526396095460</id><published>2009-02-09T19:35:00.003-02:00</published><updated>2009-02-09T20:01:21.923-02:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="comparativa"/><category scheme="http://www.blogger.com/atom/ns#" term="gnome"/><category scheme="http://www.blogger.com/atom/ns#" term="grub"/><category scheme="http://www.blogger.com/atom/ns#" term="kde"/><category scheme="http://www.blogger.com/atom/ns#" term="kdemod"/><category scheme="http://www.blogger.com/atom/ns#" term="lilo"/><category scheme="http://www.blogger.com/atom/ns#" term="linux"/><title type='text'>Instalando KDE 4.2</title><content type='html'>Como comenté en una entrada anterior, me dispuse a instalar KDE 4.2 en mi notebook. La misma ya tiene toda una instalación de ArchLinux funcionando con Gnome.

Si revisan la &lt;a href=&quot;http://wiki.archlinux.org&quot;&gt;wiki&lt;/a&gt; de ArchLinux,&lt;a href=&quot;http://wiki.archlinux.org/index.php/Beginners_Guide#KDE&quot;&gt; en este artículo&lt;/a&gt; encontrarán que por un tema de modularidad, es mejor instalar una versión modificada de KDE, llamada kdemod, en lugar de la versión oficial publicada en los repositorios de ArchLinux.

Instalé kdemod, siguiendo los&lt;a href=&quot;http://kdemod.ath.cx/download-kdemod.html&quot;&gt; pasos que indica la web oficial&lt;/a&gt;, y luago de un rato, tenía kde corriendo en mi notebook.

Los problemas no se hicieron esperar. No pude hacer una evaluación con algún grado de profundidad, ya que luego de instalarlo y de iniciar mi Gnome, me di cuenta de los problemas que esta instalación generó.

En principio, cuando inicié Gnome quedó seleccionado por defecto el WindowManager de Kde (llamado Kwin), lo cual trajo varios problemas en los efectos gráficos y hasta reinició el servidor gráfico en forma forzada en 2 ocasiones.

Luego de iniciar Gnome y de establecer metacity como WindowManager, voy al menú y me encuentro con listas de aplicaciones realmente largas, al punto de tener que poner un scroll en los menús ya que no entraban todos los items a lo alto de la pantalla.

Luego de reiniciar la notebook, me encuentro con que el inicio de Gnome ahora tarda casi el doble de lo que tardaba previo a la instalación de kdemod.

Además del tiempo tardado, veo con asombro que las particiones de mi disco (salvo el raíz) no se habían montado. Esto se debe a que por alguna extraña razón, dejó de funcionar hal.

Decidido a borrar kdemod de mi sistema, me remito a la web oficial nuevamente, y sigo el &lt;a href=&quot;http://chakra-project.org/wiki/index.php/Frequently_Asked_Questions&quot;&gt;proceso de desinstalación de kdemod&lt;/a&gt;. Luego de terminado el mismo, reviso un poco en detalle lo hecho por pacman, y veo que dejó instalado casi 80 paquetes pertenecientes a kdemod, los cuales tuve que borrar manualmente.

Entre los paquetes que dejó la instalación/desinstalación de kde, me llamó la atención que estuviese uno llamado &lt;span style=&quot;font-weight: bold;&quot;&gt;lilo&lt;/span&gt;. Lilo es un boot loader, y me llama mucho al atencion que kde dependa de un boot loader, y en todo caso que no respete y use, el bootloader instalado previamente (GRUB en mi caso).

Resumiendo, es claro que la mayoría de estos problemas no son responsabilidad de KDE, y que tranquilamente pueden ser evitados, procediendo a instalar KDE en una instalación que no tenga ya en entorno de escritorio, o como actualización a una version anterior de KDE.

Por lo pronto, me dispondré a tratar de solucionar los problemas nombrados, y cuando tenga un poco más de tiempo, probaré KDE 4.2 en un entorno limpio.</content><link rel='replies' type='application/atom+xml' href='http://blog.tolaware.com.ar/feeds/2494849526396095460/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://blog.tolaware.com.ar/2009/02/instalando-kde-42.html#comment-form' title='2 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6846747566557814311/posts/default/2494849526396095460'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6846747566557814311/posts/default/2494849526396095460'/><link rel='alternate' type='text/html' href='http://blog.tolaware.com.ar/2009/02/instalando-kde-42.html' title='Instalando KDE 4.2'/><author><name>Fernando Manzano</name><uri>http://www.blogger.com/profile/01632920861904264493</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='31' src='http://2.bp.blogspot.com/_qFuILtNi99I/SY8jiryq8BI/AAAAAAAAABM/fXotWpIPl2A/S220/curriculum.png'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6846747566557814311.post-7896440565254238921</id><published>2009-02-09T05:36:00.008-02:00</published><updated>2009-02-09T07:10:21.253-02:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="curiosidades"/><category scheme="http://www.blogger.com/atom/ns#" term="gnome"/><category scheme="http://www.blogger.com/atom/ns#" term="kwin"/><category scheme="http://www.blogger.com/atom/ns#" term="linux"/><title type='text'>Gnome funcionando con Kwin</title><content type='html'>Hoy me disponía a probar KDE 4.2, debido a su reciente lanzamiento y para hacer algunas comparativas con respecto a mi actual instalación de Gnome.

Tras algunos minutos de descargas y algunos más de instalación, doy inicio a tan acabado entorno gráfico. Realmente una belleza. Como siempre, existen algunos problemas de integración entre ambos escritorios, así que me dispuse a iniciar Gnome para mis tareas normales.

Cuál fue mi sorpresa al ver que mi Gnome, tenía un look distinto al que tenía previamente. De hecho un look muy parecido al de KDE 4.2. Chequeando la configuración de compiz-fusion, veo que habia quedado seleccionado el WindowManager de KDE (llamado Kwin) en vez del WindowManager de Gnome (llamado Metacity).

Sinceramente es grande mi sorpresa al ver que 2 piezas de software que están hechas para funcionar en ambientes de escritorio con filosofías opuestas, puedan funcionar tan apaciblemente. De hecho es sorprendente que hayan funcionado sin errores!!

Acá les dejo un video y una foto para que vean con detalle.


&lt;object width=&quot;362&quot; height=&quot;300&quot; class=&quot;BLOG_video_class&quot; id=&quot;BLOG_video-4639c5e9b2a5ca1f&quot; classid=&quot;clsid:D27CDB6E-AE6D-11cf-96B8-444553540000&quot; codebase=&quot;http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0&quot;&gt;&lt;param name=&quot;movie&quot; value=&quot;//www.youtube.com/get_player&quot;&gt;&lt;param name=&quot;bgcolor&quot; value=&quot;#FFFFFF&quot;&gt;&lt;param name=&quot;allowfullscreen&quot; value=&quot;true&quot;&gt;&lt;param name=&quot;flashvars&quot; value=&quot;flvurl=http://redirector.googlevideo.com/videoplayback?id%3D4639c5e9b2a5ca1f%26itag%3D5%26source%3Dblogger%26app%3Dblogger%26cmo%3Dsensitive_content%3Dyes%26ip%3D0.0.0.0%26ipbits%3D0%26expire%3D1391966619%26sparams%3Dip,ipbits,expire,id,itag,source%26signature%3D4B4762699956B3677BB0AA948548C599162FADCB.BA0B91FE99EC608949B04AC93903E7EA7FD917F8%26key%3Dck2&amp;amp;iurl=http://video.google.com/ThumbnailServer2?app%3Dblogger%26contentid%3D4639c5e9b2a5ca1f%26offsetms%3D5000%26itag%3Dw160%26sigh%3DoVAHiHgAe1dUOl5_t7YL-ZL62OU&amp;amp;autoplay=0&amp;amp;ps=blogger&quot;&gt;&lt;embed src=&quot;//www.youtube.com/get_player&quot; type=&quot;application/x-shockwave-flash&quot; width=&quot;362&quot; height=&quot;300&quot; bgcolor=&quot;#FFFFFF&quot; flashvars=&quot;flvurl=http://redirector.googlevideo.com/videoplayback?id%3D4639c5e9b2a5ca1f%26itag%3D5%26source%3Dblogger%26app%3Dblogger%26cmo%3Dsensitive_content%3Dyes%26ip%3D0.0.0.0%26ipbits%3D0%26expire%3D1391966619%26sparams%3Dip,ipbits,expire,id,itag,source%26signature%3D4B4762699956B3677BB0AA948548C599162FADCB.BA0B91FE99EC608949B04AC93903E7EA7FD917F8%26key%3Dck2&amp;iurl=http://video.google.com/ThumbnailServer2?app%3Dblogger%26contentid%3D4639c5e9b2a5ca1f%26offsetms%3D5000%26itag%3Dw160%26sigh%3DoVAHiHgAe1dUOl5_t7YL-ZL62OU&amp;autoplay=0&amp;ps=blogger&quot; allowFullScreen=&quot;true&quot; /&gt;&lt;/object&gt;

&lt;a onblur=&quot;try {parent.deselectBloggerImageGracefully();} catch(e) {}&quot; href=&quot;http://1.bp.blogspot.com/_qFuILtNi99I/SY_uRQUixUI/AAAAAAAAABo/pCqCeuFDMOs/s1600-h/Pantallazo.png&quot;&gt;&lt;img style=&quot;margin: 0pt 0pt 10px 10px; cursor: pointer; width: 346px; height: 216px;&quot; src=&quot;http://1.bp.blogspot.com/_qFuILtNi99I/SY_uRQUixUI/AAAAAAAAABo/pCqCeuFDMOs/s320/Pantallazo.png&quot; alt=&quot;&quot; id=&quot;BLOGGER_PHOTO_ID_5300717266644682050&quot; border=&quot;0&quot; /&gt;&lt;/a&gt;

Como se puede ver en la imágen, los bordes de las ventanas están totalmente administrados por kwin. Se puede apreciar en el video que los efectos gráficos también están proporcionados por el mismo WindowManager.

Estos son los beneficios (involuntarios en este caso) de programar bajos los estándares establecidos.</content><link rel='enclosure' type='video/mp4' href='http://www.blogger.com/video-play.mp4?contentId=4639c5e9b2a5ca1f&amp;type=video%2Fmp4' length='0'/><link rel='replies' type='application/atom+xml' href='http://blog.tolaware.com.ar/feeds/7896440565254238921/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://blog.tolaware.com.ar/2009/02/gnome-funcionando-con-kwin.html#comment-form' title='3 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6846747566557814311/posts/default/7896440565254238921'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6846747566557814311/posts/default/7896440565254238921'/><link rel='alternate' type='text/html' href='http://blog.tolaware.com.ar/2009/02/gnome-funcionando-con-kwin.html' title='Gnome funcionando con Kwin'/><author><name>Fernando Manzano</name><uri>http://www.blogger.com/profile/01632920861904264493</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='31' src='http://2.bp.blogspot.com/_qFuILtNi99I/SY8jiryq8BI/AAAAAAAAABM/fXotWpIPl2A/S220/curriculum.png'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://1.bp.blogspot.com/_qFuILtNi99I/SY_uRQUixUI/AAAAAAAAABo/pCqCeuFDMOs/s72-c/Pantallazo.png" height="72" width="72"/><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6846747566557814311.post-758035631737028371</id><published>2009-02-09T03:21:00.005-02:00</published><updated>2009-02-09T07:11:24.699-02:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="c"/><category scheme="http://www.blogger.com/atom/ns#" term="c++"/><category scheme="http://www.blogger.com/atom/ns#" term="java"/><category scheme="http://www.blogger.com/atom/ns#" term="linux"/><category scheme="http://www.blogger.com/atom/ns#" term="open source"/><category scheme="http://www.blogger.com/atom/ns#" term="presentacion"/><category scheme="http://www.blogger.com/atom/ns#" term="ruby"/><title type='text'>Estrenando un blog</title><content type='html'>Hola a todos.

En principio quería agradecerles a todos los visitantes por invertir un rato de sus tiempos en navegar por este, mi espacio personal destinado a publicar, comentar y discutir, sobre todas las cosas que me parecen curiosas e interesantes sobre el mundo de la programación (específicamente en Java y Ruby), linux y el mundo de la computación en general.

Soy un tanto novato en Ruby, ya que lo descubrí hace algunos meses buscando una alternativa más ágil al desarrollo de aplicaciones web. Como tenía muy buenas referencias del framework Ruby on Rails, empecé a aprender un poco de él y me di cuenta que si no sabía Ruby, no me iba a ir bien con Ruby on Rails. Así que me decidí a aprender Ruby primero y me terminó gustando como lenguaje de programación (a pesar de que no veo con muy buenos ojos los lenguajes interpretados y de tipos débiles).

Con respecto a Java, llevo varios años usándolo como lenguaje principal y ya 2 años en el ambiente profesional. Como a la mayoría de las personas que lo han usado, me parece un excelente lenguaje de programación de aplicaciones de escritorio y uno de los líderes en el ámbito de las aplicaciones empresariales.

También soy asiduo de algunos lenguajes de menor nivel (más cercanos al hardware) como C y C++ (principalmente). Si bien presentan ventajas únicas a la hora de la optimización en el uso de recursos, combinado con la potencia de la orientación a objetos (C++), la disponibilidad de librerías y el tiempo de desarrollo quedan relegados frente a lenguajes más potentes como Java o .NET.

Como siempre he dicho, cada tecnología tiene su campo de aplicación, y ninguna es totalmente mejor que otra. Siempre hay que considerar el uso que se le dará a esa tecnología.

Soy usuario del sistema operativo Linux, específicamente de la distribución &lt;a href=&quot;http://www.archlinux.org/&quot;&gt;ArchLinux&lt;/a&gt;, y apoyo en general los principios del software libre, aunque no hago de ello una religión.

Actualmente estoy estudiando Ingeniería en Sistemas de Información en la UTN y por suerte me queda un año nomás.

Bueno, espero que puedan sacar algún provecho de mi blog. Saludos visitantes.</content><link rel='replies' type='application/atom+xml' href='http://blog.tolaware.com.ar/feeds/758035631737028371/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://blog.tolaware.com.ar/2009/02/estrenando-un-blog.html#comment-form' title='1 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6846747566557814311/posts/default/758035631737028371'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6846747566557814311/posts/default/758035631737028371'/><link rel='alternate' type='text/html' href='http://blog.tolaware.com.ar/2009/02/estrenando-un-blog.html' title='Estrenando un blog'/><author><name>Fernando Manzano</name><uri>http://www.blogger.com/profile/01632920861904264493</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='31' src='http://2.bp.blogspot.com/_qFuILtNi99I/SY8jiryq8BI/AAAAAAAAABM/fXotWpIPl2A/S220/curriculum.png'/></author><thr:total>1</thr:total></entry></feed>