<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/atom10full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><feed xmlns="http://www.w3.org/2005/Atom" xmlns:openSearch="http://a9.com/-/spec/opensearch/1.1/" xmlns:georss="http://www.georss.org/georss" xmlns:gd="http://schemas.google.com/g/2005" xmlns:thr="http://purl.org/syndication/thread/1.0" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" gd:etag="W/&quot;C0QASX47fyp7ImA9WhRWF04.&quot;"><id>tag:blogger.com,1999:blog-6125649492882325530</id><updated>2012-01-04T23:42:28.007-03:00</updated><category term="linux" /><category term="pensamientos" /><category term="flash" /><category term="conky" /><category term="portlets" /><category term="jQuery" /><category term="javascript" /><category term="mysql" /><category term="java" /><category term="seam" /><category term="html5" /><category term="swing" /><category term="web" /><category term="lwuit" /><category term="robotech" /><category term="webgl" /><category term="oracle" /><category term="netbeans" /><category term="firefox" /><category term="macross" /><category term="osgi" /><category term="android" /><category term="css" /><category term="webkit" /><category term="escoba de 15" /><category term="matrix" /><category term="moz-ar" /><category term="noticias" /><category term="palm" /><category term="internet" /><category term="sun" /><category term="jboss" /><category term="portal" /><category term="mousepen" /><category term="gimp" /><category term="javaME" /><category term="eclipse" /><category term="mozilla" /><category term="xhtml" /><category term="ubuntu" /><category term="diseño" /><category term="thunderbird" /><category term="google" /><category term="humor" /><title>{entre llaves}</title><subtitle type="html">programación, tecnología, internet, linux, java, android y otras cositas</subtitle><link rel="http://schemas.google.com/g/2005#feed" type="application/atom+xml" href="http://entrellaves.blogspot.com/feeds/posts/default" /><link rel="alternate" type="text/html" href="http://entrellaves.blogspot.com/" /><link rel="next" type="application/atom+xml" href="http://www.blogger.com/feeds/6125649492882325530/posts/default?start-index=26&amp;max-results=25&amp;redirect=false&amp;v=2" /><author><name>Pablo Lillia</name><uri>https://profiles.google.com/104838123348555235492</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh5.googleusercontent.com/-aUx_T1rBsv4/AAAAAAAAAAI/AAAAAAAABKI/GHmr1vGALZ0/s512-c/photo.jpg" /></author><generator version="7.00" uri="http://www.blogger.com">Blogger</generator><openSearch:totalResults>44</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/atom+xml" href="http://feeds.feedburner.com/entrellaves" /><feedburner:info uri="entrellaves" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><entry gd:etag="W/&quot;D0QGSXY5cSp7ImA9WhdVFEU.&quot;"><id>tag:blogger.com,1999:blog-6125649492882325530.post-1163358485653175266</id><published>2011-09-19T23:22:00.001-03:00</published><updated>2011-09-19T23:22:08.829-03:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-09-19T23:22:08.829-03:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="java" /><category scheme="http://www.blogger.com/atom/ns#" term="pensamientos" /><category scheme="http://www.blogger.com/atom/ns#" term="linux" /><category scheme="http://www.blogger.com/atom/ns#" term="android" /><title>Google + Intel = Android x86</title><content type="html">&lt;a href="http://4.bp.blogspot.com/-TBUCLa_iLe8/Tnf4RR8k00I/AAAAAAAABAs/mLI5ye50tQc/s1600/android+x86+rocket.png" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"&gt;&lt;img border="0" src="http://4.bp.blogspot.com/-TBUCLa_iLe8/Tnf4RR8k00I/AAAAAAAABAs/mLI5ye50tQc/s1600/android+x86+rocket.png" /&gt;&lt;/a&gt;Recientemente hay varias noticias que hablan de la alianza entre Google e Intel para desarrollar Android en los procesadores x86. Ya había un &lt;a href="http://www.android-x86.org/"&gt;proyecto&lt;/a&gt; de la comunidad de desarrolladores para portarlo, que estaba dando sus frutos, y ahora se suma esta &lt;a href="http://androidandme.com/2011/09/news/intel-and-google-announce-android-x86-optimization/"&gt;iniciativa conjunta&lt;/a&gt; de estos dos pesos pesados.&lt;br /&gt;
 &lt;br /&gt;
Estaba leyendo una &lt;a href="http://www.elandroidelibre.com/2011/09/todos-los-detalles-sobre-la-alianza-de-intel-y-android.html"&gt;nota al respecto&lt;/a&gt;, y pensaba que acá el problema es que Intel tiene que resolver el mayor consumo de los procesadores Atom, si se los compara con los efectivos y rendidores diseños de ARM. Intel necesita dejar de perder mercado en los sectores móviles, donde la arquitectura ARM es hoy por hoy el rey absoluto, y esta alianza con Google, puede llevar a Android a nuevos sectores.&lt;br /&gt;
&lt;br /&gt;
&lt;a name='more'&gt;&lt;/a&gt;A Intel no le sirve quedarse fuera de la fiesta que representan los smartphones y tablets, siendo estos sectores los de mayor crecimiento. Por eso no es extraño que hagan a un lado a Meego (después de haber sido abandonado primero por Nokia), dadas las pocas chances de competir con el crecimiento exponencial de la plataforma Android. Es una lástima, sin dudas, porque Meego es (o era) una gran alternativa 100% Linux bien considerada por muchos. Pero una plataforma sin aplicaciones no es nada. Y Meego nunca logró conformar un ecosistema virtuoso de desarrolladores, ni prender con los fabricantes.&lt;br /&gt;
&lt;br /&gt;Hay otro tema: Intel puede abrir la caja de pandora con este movimiento. A Oracle le preocupa que Android llegue al desktop, porque habría una máquina virtual de Java alternativa, un fork de hecho, compitiendo lado a lado con la JVM de Java Desktop o JavaSE. Las aplicaciones de escritorio en Java nunca fueron populares, a diferencia de sus hermanas web, pero esto podría ser la estocada final para Swing y otras tecnologías similares. Oracle ya perdió el mercado móvil, y está tratando de recuperar aunque sea una tajada del postre vía las demandas de patentes y propiedad intelectual, pero la verdad es que ya perdió el control de ese mercado. Si ahora Android se mete en el desktop, podría ser la peor pesadilla para Oracle, porque abriría una puerta para meterse en el sector de servidores eventualmente.&lt;br /&gt;
&lt;br /&gt;
La JVM sin dudas está más saludable que nunca, y el lenguaje Java sigue siendo el más popular según el índice &lt;a href="http://www.tiobe.com/index.php/content/paperinfo/tpci/index.html"&gt;TIOBE&lt;/a&gt;. Y cada vez hay más lenguajes interesantes creciendo en la JVM. En el sector empresarial Java pisa demasiado fuerte, que a esta altura tiene una impresionante inversión en él, y nadie pondría en duda que seguirá siendo fuerte en el futuro. La intriga es: ¿podrían las aplicaciones Android llegar a los escritorios, reemplazando a Java en ese segmento? O más allá, ¿incluso reemplazando a los sistemas operativos de escritorio? (esto último creo que muy improbable). Pero si las aplicaciones Android (vía la Dalvik VM) llegan a los escritorios "normales", ¿cuál sería el límite?&lt;br /&gt;
&lt;br /&gt;
Primero hay que ver cómo se resuelve el litigio en curso entre Oracle y Google. Podría ser que después de un arreglo monetario, Oracle le de el visto bueno a Android dentro de la familia Java (como el retorno del &lt;a href="http://es.wikipedia.org/wiki/Par%C3%A1bola_del_hijo_pr%C3%B3digo"&gt;hijo pródigo&lt;/a&gt;) para brindarle el sello de "tecnología Java", reunificando ambas plataformas. Es un desenlace posible. Otro caso sería que Google pierda de mala manera y deba reimplementar Android, eliminando todo rastro de Java, que aunque más improbable, también es factible. O tal vez ambos continúen por sus propios caminos paralelos, con una restricción de no acercarse uno a otro más de X metros xD. Pero si este fuera el caso, también sería una situación más que extraña, porque sin dudas terminarán competiendo en el desktop más pronto que tarde.&lt;br /&gt;
&lt;br /&gt;
Ya veremos cómo se desenvuelve todo esto :)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6125649492882325530-1163358485653175266?l=entrellaves.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/entrellaves/~4/Q8DXNIPRaok" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://entrellaves.blogspot.com/feeds/1163358485653175266/comments/default" title="Enviar comentarios" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=6125649492882325530&amp;postID=1163358485653175266" title="0 comentarios" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/6125649492882325530/posts/default/1163358485653175266?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/6125649492882325530/posts/default/1163358485653175266?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/entrellaves/~3/Q8DXNIPRaok/google-intel-android-x86.html" title="Google + Intel = Android x86" /><author><name>Pablo Lillia</name><uri>https://profiles.google.com/104838123348555235492</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh5.googleusercontent.com/-aUx_T1rBsv4/AAAAAAAAAAI/AAAAAAAABKI/GHmr1vGALZ0/s512-c/photo.jpg" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://4.bp.blogspot.com/-TBUCLa_iLe8/Tnf4RR8k00I/AAAAAAAABAs/mLI5ye50tQc/s72-c/android+x86+rocket.png" height="72" width="72" /><thr:total>0</thr:total><feedburner:origLink>http://entrellaves.blogspot.com/2011/09/google-intel-android-x86.html</feedburner:origLink></entry><entry gd:etag="W/&quot;D0MHR386fCp7ImA9WhdRFEQ.&quot;"><id>tag:blogger.com,1999:blog-6125649492882325530.post-1438276329344889570</id><published>2011-08-04T19:03:00.000-03:00</published><updated>2011-08-04T19:03:56.114-03:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-08-04T19:03:56.114-03:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="noticias" /><category scheme="http://www.blogger.com/atom/ns#" term="android" /><title>Invitación a Android Connect</title><content type="html">Esta vez los quiero invitar a conocer el blog de &lt;a href="http://www.androidconnect.com.ar/"&gt;Android Connect&lt;/a&gt;, una comunidad Android que se gestó en La Plata y está empezando a dar sus primeros pasos. Van a encontrar todo tipo de información, desde el usuario hasta el programador. Les copio el mensaje de bienvenida y espero encontrarlos por allá también :-)&lt;br /&gt;
&lt;br /&gt;
&lt;blockquote&gt;Bienvenidos a esta nueva comunidad Android. La idea nace desde un grupo de usuarios y desarrolladores de Android en La Plata, Argentina, con la misma inquietud de compartir ideas, trucos y tips, consejos, soluciones a problemas encontrados, ejemplos de programas para hacer tus propios desarrollos, noticias de interés para la comunidad y mucho más.&lt;br /&gt;
&lt;br /&gt;
Android Connect sos vos y todos los interesados en este fascinante mundo de Android. Te invitamos a participar de esta joven comunidad, un punto de encuentro donde podamos compartir nuestro conocimiento y hallazgos, brindar consejos y participar de proyectos juntos, un lugar donde podamos intercambiar ideas y experiencias.&lt;br /&gt;
&lt;br /&gt;
¡Bienvenido!&lt;/blockquote&gt;&lt;br /&gt;
Fuente: &lt;a href="http://www.androidconnect.com.ar/"&gt;Android Connect&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6125649492882325530-1438276329344889570?l=entrellaves.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/entrellaves/~4/dPbNu009Neg" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://entrellaves.blogspot.com/feeds/1438276329344889570/comments/default" title="Enviar comentarios" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=6125649492882325530&amp;postID=1438276329344889570" title="0 comentarios" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/6125649492882325530/posts/default/1438276329344889570?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/6125649492882325530/posts/default/1438276329344889570?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/entrellaves/~3/dPbNu009Neg/invitacion-android-connect.html" title="Invitación a Android Connect" /><author><name>Pablo Lillia</name><uri>https://profiles.google.com/104838123348555235492</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh5.googleusercontent.com/-aUx_T1rBsv4/AAAAAAAAAAI/AAAAAAAABKI/GHmr1vGALZ0/s512-c/photo.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://entrellaves.blogspot.com/2011/08/invitacion-android-connect.html</feedburner:origLink></entry><entry gd:etag="W/&quot;A0QDQ348fCp7ImA9WhZVE0s.&quot;"><id>tag:blogger.com,1999:blog-6125649492882325530.post-938714662096991380</id><published>2011-05-25T21:22:00.000-03:00</published><updated>2011-05-25T21:22:52.074-03:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-05-25T21:22:52.074-03:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="javascript" /><category scheme="http://www.blogger.com/atom/ns#" term="html5" /><category scheme="http://www.blogger.com/atom/ns#" term="jQuery" /><title>Juegos en JavaScript: frameworks, recursos y ejemplos</title><content type="html">Si bien los juegos en JavaScript no son nuevos, ahora con la introducción de HTML5 y todas las novedades que trae la nueva generación de navegadores,&amp;nbsp; se están convirtiendo en una alternativa cada vez más seria, muy tentadora por la posibilidad de llegar a todo tipo de  plataformas: escritorio, portátiles, celulares, tabletas, consolas de  videojuegos, etc.&lt;br /&gt;
&lt;br /&gt;
Tal vez el caso más conocido por todos es el recientemente presentado &lt;a href="http://chrome.angrybirds.com/"&gt;Angry Birds Webapp&lt;/a&gt;, que en una alianza entre Rovio (la creadora del exitoso juego) y Google (como promoción de su navegador Chrome) han publicado de forma gratuita en versión web del ya clásico juego.&lt;br /&gt;
&lt;br /&gt;
Aunque se promociona como un juego para Chrome, también es cierto que funciona con otros navegadores modernos que soporten Canvas de HTML5 y Flash. Por ejemplo, le he probado en Firefox 4 sobre Linux y funciona perfectamente.&lt;br /&gt;
&lt;br /&gt;
¿Pero porqué requiere Flash? Bueno, precisamente una de las APIs que están más verdes en este momento es la API de audio, o al menos su funcionamiento está muy variable entre distintos navegadores. Por lo cual han recurrido a una solución pragmática y temporal hasta que madure este tema: usar un pequeño fragmento de Flash para controlar el audio, y hacer todo el resto con HTML5.&lt;br /&gt;
&lt;br /&gt;
En la implementación han usado el framework open source &lt;a href="http://code.google.com/p/forplay/"&gt;ForPlay&lt;/a&gt;, que es un nuevo proyecto Java creado por Google y Rovio para este desarrollo, y que permite a partir del lenguaje Java, generar o compilar distintos tipos de salidas: Desktop Java, HTML5 Browsers, Android y Flash. Esta idea de generar código HTML o Flash a partir de código Java, ya la hemos visto antes en Google GWT (con el cual tiene bastante que ver) o en Adobe Flex.&lt;br /&gt;
&lt;br /&gt;
Como amablemente han publicado este framework bajo una licencia open source, va a permitir que cualquier desarrollador pueda reutilizarlo y mejorarlo, y pronto empezaremos a ver muchos otros proyectos que lo usen o que estén basados en él.&lt;br /&gt;
&lt;br /&gt;
Pero si queremos hacer juegos o aplicaciones que usen HTML5 Canvas, vamos a encontrar que hay muchos otros frameworks open source y/o bajo licencias libres, cada uno con sus propias características. Algunos ejemplos interesantes son:&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;&lt;a href="http://gamequery.onaluf.org/"&gt;gameQuery&lt;/a&gt;. es un framework JavaScript basado en jQuery. No parece tan maduro como las demás opciones, pero es muy natural y fácil de asimilar para quienes ya tienen experiencia con jQuery.&lt;/li&gt;
&lt;li&gt;&lt;a href="http://rpgjs.com/"&gt;RPG JS&lt;/a&gt;: un framework para realizar los clásicos juegos RPG 2D, con características muy completas para este tipo de juegos. Tienen una demo muy bien lograda.&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.kesiev.com/akihabara/"&gt;Akihabara&lt;/a&gt;: es un framework JavaScript para HTML5 muy maduro, para realizar todo tipo de juegos clásicos arcade de 8/16 bit. Tienen muchos ejemplos fantásticos de los arcades clásicos, que vale la pena probar :-)&lt;/li&gt;
&lt;/ul&gt;También hay mucha documentación para quien quiera hacer sus primeros pinitos con Canvas. Algunos recursos para empezar pueden ser:&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;&lt;a href="https://developer.mozilla.org/es/Canvas_tutorial"&gt;Tutorial de Canvas de Mozilla MDC&lt;/a&gt;: es un excelente recurso, que además se encuentra en castellano y en varios idiomas.&lt;/li&gt;
&lt;li&gt;&lt;a href="http://billmill.org/static/canvastutorial/"&gt;Canvas Tutorial de billmill.org&lt;/a&gt;: es un mini-curso en inglés muy rápido y didáctico, que a través de la construcción paso a paso del clásico juego del breakout, nos enseña todo lo básico para comenzar a realizar nuestros propios juegos. Lamentablemente no explica demasiado los ejemplos, pero el código es muy claro y está armado de tal forma que nos permite experimentar con él sin salir de la página.&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.html5canvastutorials.com/tutorials/html5-canvas-tutorials-introduction/"&gt;HTML5CanvasTutorial&lt;/a&gt;: un tutorial en inglés más extenso, que nos enseña con más detalle las posibilidades de Canvas, con algunos muy buenos ejemplos.&amp;nbsp; No está tan orientado a juegos, pero es muy buen recurso.&lt;/li&gt;
&lt;/ul&gt;Algunos frameworks incluso combinan varias APIs y técnicas, desde Canvas de HTML5 hasta DHTML, incluso WebGL también. En cuanto a técnicas para implementar juegos, hay muchos sitios para ello, y toda esa experiencia es trasladable a cualquier lenguaje, API o plataforma. Entonces para eso mejor referirse a sitios específicos sobre diseño de juegos. &lt;br /&gt;
&lt;br /&gt;
Los dejo con un &lt;a href="http://www.javascriptgaming.com/"&gt;catálogo de juegos&lt;/a&gt; en JavaScript, donde hay una sección específica con varios ejemplos realizados con Canvas. Hay muchos juegos clásicos y algunos novedosos. Algunos permiten acceder al código fuente para aprender de ellos, otros no, pero igualmente la mayoría son entrenidos :D&lt;br /&gt;
&lt;br /&gt;
Para los que les gustan los juegos solitarios con cartas de póker, encontrarán un fantástico ejemplo de una buena implementación en &lt;a href="http://worldofsolitaire.com/"&gt;WorldOfSolitaire&lt;/a&gt;, no es libre, está basado en YUI, y está muy bien hecho. La única contra es que aún no tiene un buen soporte de dispositivos móviles (me fue imposible jugarlo en Android).&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6125649492882325530-938714662096991380?l=entrellaves.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/entrellaves/~4/oQ2GfdAAhvE" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://entrellaves.blogspot.com/feeds/938714662096991380/comments/default" title="Enviar comentarios" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=6125649492882325530&amp;postID=938714662096991380" title="0 comentarios" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/6125649492882325530/posts/default/938714662096991380?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/6125649492882325530/posts/default/938714662096991380?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/entrellaves/~3/oQ2GfdAAhvE/juegos-en-javascript-frameworks.html" title="Juegos en JavaScript: frameworks, recursos y ejemplos" /><author><name>Pablo Lillia</name><uri>https://profiles.google.com/104838123348555235492</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh5.googleusercontent.com/-aUx_T1rBsv4/AAAAAAAAAAI/AAAAAAAABKI/GHmr1vGALZ0/s512-c/photo.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://entrellaves.blogspot.com/2011/05/juegos-en-javascript-frameworks.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CkABQX44eyp7ImA9WhZVEE4.&quot;"><id>tag:blogger.com,1999:blog-6125649492882325530.post-7941980214740382145</id><published>2011-05-21T22:58:00.005-03:00</published><updated>2011-05-21T23:19:10.033-03:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-05-21T23:19:10.033-03:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="jQuery" /><title>Galería de imágenes usando jQuery</title><content type="html">Continuando con el artículo anterior, vamos a ver cómo hacer una sencilla galería de imágenes estáticas. Este ejemplo y el código del mismo, está basado en &lt;a href="http://www.script-tutorials.com/how-to-create-your-own-jquery-slider-plugin/"&gt;How to Create your own jQuery Slider Plugin&lt;/a&gt;, aunque le he modificado algunas cosas para mejorar su reutilización, manteniendo la misma idea y sin grandes cambios.&lt;br /&gt;
&lt;br /&gt;
La técnica usada es una de las más comunes, y se puede adaptar a muchas otras cosas. Tenemos una lista de imágenes, inicialmente ocultas, que se irán mostrando de a una a la vez, usando algo de JavaScript. Agregándole un efecto en la transición del cambio de imagen, es de lo más trivial gracias a &lt;a href="http://jquery.com"&gt;jQuery&lt;/a&gt;, logrando un resultado mucho más cuidado.&lt;br /&gt;
&lt;br /&gt;
Vamos por partes.&lt;br /&gt;
&lt;h4&gt;Primer paso: el HTML&lt;/h4&gt;&lt;code class="language-html"&gt;&amp;lt;div&amp;nbsp;class=&amp;quot;slideshow&amp;quot;&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;h3&amp;gt;&amp;lt;a&amp;nbsp;href=&amp;quot;#&amp;quot;&amp;gt;T&amp;iacute;tulo&amp;lt;/a&amp;gt;&amp;lt;/h3&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;li&amp;gt;&amp;lt;img&amp;nbsp;src=&amp;quot;...&amp;quot;&amp;nbsp;/&amp;gt;&amp;lt;/li&amp;gt;&amp;nbsp;&amp;nbsp;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;li&amp;gt;&amp;lt;img&amp;nbsp;src=&amp;quot;...&amp;quot;&amp;nbsp;/&amp;gt;&amp;lt;/li&amp;gt;&amp;nbsp;&amp;nbsp;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;li&amp;gt;&amp;lt;img&amp;nbsp;src=&amp;quot;...&amp;quot;&amp;nbsp;/&amp;gt;&amp;lt;/li&amp;gt;&amp;nbsp;&amp;nbsp;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;/ul&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;div&amp;nbsp;class=&amp;quot;counter&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;/code&gt;&lt;br /&gt;
El &amp;lt;div&amp;gt; con clase "slideshow" será el contenedor. Se usará para inicializar el plugin de jQuery y para brindarle estilos al componente. Dentro hay un título, una lista de elementos con UL-LI, y un contenedor para mostrar el número de página actual y el número total. Es interesante el uso de una lista UL, porque semánticamente expresa mejor su intención, que por ejemplo si hubiésemos usado DIV, SPAN, TABLE, u otro elemento. Las listas también las podemos encontrar adecuadas para representar pestañas/tabs, etiquetas, menúes, etc., al menos hasta usar HTML5, que nos trae nuevas etiquetas más específicas, como &lt;a href="http://www.w3schools.com/html5/tag_nav.asp"&gt;NAV&lt;/a&gt;.&lt;br /&gt;
&lt;h4&gt;Segundo paso: el CSS&lt;/h4&gt;&lt;code class="language-html"&gt;&amp;lt;style&amp;gt;&lt;br /&gt;
.slideshow&amp;nbsp;{&amp;nbsp;background:#FFF;&amp;nbsp;width:500px;&amp;nbsp;border:1px&amp;nbsp;#000&amp;nbsp;solid;&amp;nbsp;margin:20px&amp;nbsp;auto;&amp;nbsp;padding:15px;}&lt;br /&gt;
.slideshow&amp;nbsp;ul&amp;nbsp;{&amp;nbsp;width:500px;&amp;nbsp;height:auto;&amp;nbsp;min-height:&amp;nbsp;335px;&amp;nbsp;overflow:&amp;nbsp;hidden;&amp;nbsp;position:relative;&amp;nbsp;padding:0;&amp;nbsp;margin:0;}&lt;br /&gt;
.slideshow&amp;nbsp;li&amp;nbsp;{&amp;nbsp;position:absolute;&amp;nbsp;top:0px;&amp;nbsp;left:0px;&amp;nbsp;display:none;&amp;nbsp;list-style:none;}&lt;br /&gt;
.slideshow&amp;nbsp;li&amp;nbsp;img&amp;nbsp;{&amp;nbsp;width:&amp;nbsp;100%&amp;nbsp;}&lt;br /&gt;
.slideshow&amp;nbsp;li:first-child&amp;nbsp;{display:block;}&lt;br /&gt;
.slideshow&amp;nbsp;.counter&amp;nbsp;{text-align:right;&amp;nbsp;width:100%;}&lt;br /&gt;
&amp;lt;/style&amp;gt;&lt;/code&gt;&lt;br /&gt;
Los 500px en las lineas 3 y 5 determinan el ancho de la galería. Los 335px en la linea 5 determinan la altura. En la linea 7, se hacen invisibles todos los LI con display:none, y se les quita toda la decoración por defecto (el círculo o botón que prefija a cada elemento de una lista). Después, en la linea 11 se hace visible solo al primer elemento de la lista.&lt;br /&gt;
El UL tiene &lt;i&gt;position:relative&lt;/i&gt;, y los LI tienen &lt;i&gt;position:absolute&lt;/i&gt;. Como el contenedor de los LI (el UL) tiene posicionamiento, las coordenadas de los LI toman como origen de las coordenadas a su padre, y se posicionan todos en (0px, 0px), lo que hace que todos los elementos queden en el mismo lugar. Podemos pensar que están como "apilados", unos encima de otros (pero no tienen distinto z-index, realmente están todos al mismo nivel de stack).&lt;br /&gt;
&lt;h4&gt;Tercer y último paso: el JavaScript&lt;/h4&gt;&lt;code class="language-javascript"&gt;(function($){&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;$.fn.slideshow&amp;nbsp;=&amp;nbsp;function(interval)&amp;nbsp;{&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;var&amp;nbsp;slides;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;var&amp;nbsp;cnt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;var&amp;nbsp;amount;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;var&amp;nbsp;i;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;function&amp;nbsp;run()&amp;nbsp;{&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;//&amp;nbsp;hiding&amp;nbsp;previous&amp;nbsp;image&amp;nbsp;and&amp;nbsp;showing&amp;nbsp;next&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;$(slides[i]).fadeOut(1000);&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;i++;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if&amp;nbsp;(i&amp;nbsp;&amp;gt;=&amp;nbsp;amount)&amp;nbsp;i&amp;nbsp;=&amp;nbsp;0;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;$(slides[i]).fadeIn(1000);&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;//&amp;nbsp;updating&amp;nbsp;counter&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;cnt.text(i+1+'&amp;nbsp;/&amp;nbsp;'+amount);&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;//&amp;nbsp;loop&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;setTimeout(run,&amp;nbsp;interval);&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;slides&amp;nbsp;=&amp;nbsp;$(this).find('ul').children();&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;cnt&amp;nbsp;=&amp;nbsp;$(this).find('.counter');&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;amount&amp;nbsp;=&amp;nbsp;slides.length;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;i=0;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;//&amp;nbsp;updating&amp;nbsp;counter&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;cnt.text(i+1&amp;nbsp;+&amp;nbsp;'&amp;nbsp;/&amp;nbsp;'&amp;nbsp;+&amp;nbsp;amount);&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;setTimeout(run,&amp;nbsp;interval);&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;};&lt;br /&gt;
})(jQuery);&lt;br /&gt;
$(function(){&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;$('.slideshow').slideshow(5000);&lt;br /&gt;
});&lt;br /&gt;
&lt;/code&gt;&lt;br /&gt;
Aquí voy a tener que deternerme un poco más. Entre las lineas 1 y 51 se crea un plugin de jQuery. Este fragmento deberíamos guardarlo en un archivo aparte como slider-jquery-plugin.js para vincularlo a la página.&lt;br /&gt;
Las líneas 54 a 56 es una forma típica de realizar inicializaciones con jQuery, es decir, de ejecutar algo una vez que la página está cargada y la DOM está liberada para recibir modificaciones. La expresión $('.slideshow') de jQuery busca a los elementos que tengan el class 'slideshow', y les aplica el plugin slideshow(), El parámetro que se pasa es el tiempo en milisegundos que queremos de demora entre una imagen y la siguiente, en este caso de 5 segundos.&lt;br /&gt;
Luego, entre las lineas 35 y 47 se hace la incialización del plugin. No voy a detenerme aquí, pero basta decir que recupera a los elementos hijos del UL (los LI) y los guarda en un arreglo llamado 'slides', y en la linea 47 registra un timer que llamará al método run() del plugin en X tiempo (que fue recibido por parámetro).&lt;br /&gt;
El método run(), definido entre las lineas 13 y 33, es donde sucede lo interesante. Primero hace un efecto fadeOut() ("desaparecer") sobre el item actual, avanza al siguiente item, y hace un efecto fadeIn() ("aparecer") sobre el siguiente elemento. Si se llega al último elemento, se vuelve a comenzar con el primero. Se actualiza el contador de página/imagen actual, y se vuelve a registrar un timer para volver a llamar a run() en otro X tiempo.&lt;br /&gt;
Lo interesante de esto, es que se aprovecha de una característica de los efectos especiales (FXs) de jQuery, que son implementados como animaciones. Estas animaciones, cuando inicializan, en realidad estamos pidiendo que comiencen, y durarán un tiempo predefinido (normalmente 200 milisegundos, que se puede cambiar pasando un parámetro al efecto). Entonces, al solicitar la desaparición del elemento actual, y la aparición del elemento siguiente, y al animarse ambos a la vez, para nuestros ojos se produce un efecto de fusión (o morph) de una imagen en otra, que es solo un efecto visual. Como ven, era más largo explicarlo que hacerlo :D&lt;br /&gt;
Al combinar todo, recuerden que deben incluir la libería JavaScript de jQuery. Una forma de hacerlo es cargarla desde el CDN (Content Delivery Network) de Google, donde está a disposición de los desarrolladores web muchas librerías JS de uso habitual. Por ejemplo, pueden hacerlo así:&lt;br /&gt;
&lt;code class="language-html"&gt;&amp;lt;script&amp;nbsp;src="https://ajax.googleapis.com/ajax/libs/jquery/1.6.1/jquery.min.js"&amp;gt;&amp;lt;/script&amp;gt;&lt;/code&gt;&lt;br /&gt;
Les dejo una &lt;a href="http://dl.dropbox.com/u/21804263/slideshow-20110521.zip"&gt;versión completa para descargar&lt;/a&gt; y probar localmente. A continuación tienen el ejemplo terminado. No olviden hacer sus comentarios y sugerencias.&lt;br /&gt;
&lt;style&gt;
 body { 
  background:#eee;
  margin:0;
  padding:0;
  font-size:16px;
  font-family: helvetica,sans-family;
 }
 .slideshow {
  background:#FFF;
  width:500px;
  border:1px #000 solid;
  margin:20px auto;
  padding:15px;
  -moz-border-radius: 5px;
  -webkit-border-radius: 5px;
 }
 .slideshow ul {
  width:500px;
  height:auto;
  min-height: 335px;
  overflow: hidden;
  position:relative;
  padding:0;
  margin:0;
 }
 .slideshow li {
  position: absolute;
  top: 0px;
  left: 0px;
  display: none;
  list-style: none;
                background:none;
                padding:0;
 }
 .slideshow li img {
  width: 100%
 }
 .slideshow li:first-child {
  display:block;
 }
 .slideshow .counter {
  text-align:right;
  width:100%;
 }
&lt;/style&gt;&lt;script&gt;
 (function($){

     $.fn.slideshow = function(interval) {

  var slides;

  var cnt;

  var amount;

  var i;



  function run() {

      // hiding previous image and showing next

      $(slides[i]).fadeOut(1000);

      i++;

      if (i &gt;= amount) i = 0;

      $(slides[i]).fadeIn(1000);



      // updating counter

      cnt.text(i+1+' / '+amount);



      // loop

      setTimeout(run, interval);

  }

  slides = $(this).find('ul').children();

  cnt = $(this).find('.counter');

  amount = slides.length;

  i=0;



  // updating counter

  cnt.text(i+1 + ' / ' + amount);



  setTimeout(run, interval);

     };

 })(jQuery);


 $(function(){
  $('.slideshow').slideshow(5000);
 });
&lt;/script&gt;&lt;br /&gt;
&lt;div class="slideshow"&gt;&lt;h3&gt;&lt;a href="http://www.blogger.com/post-create.g?blogID=6125649492882325530#"&gt;Los Fantásticos Labradores&lt;/a&gt;&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;&lt;img alt="" src="http://farm1.static.flickr.com/32/54588155_192d9f5ea8.jpg" /&gt;&lt;/li&gt;
&lt;li&gt;&lt;img alt="" src="http://farm1.static.flickr.com/43/125198225_6f1bbf37ac.jpg" /&gt;&lt;/li&gt;
&lt;li&gt;&lt;img alt="" src="http://farm1.static.flickr.com/56/142182195_374d91d396.jpg" /&gt;&lt;/li&gt;
&lt;li&gt;&lt;img alt="" src="http://farm1.static.flickr.com/202/487165315_89e13b4ccb.jpg" /&gt;&lt;/li&gt;
&lt;li&gt;&lt;img alt="" src="http://farm4.static.flickr.com/3163/2673994123_e655068bac.jpg" /&gt;&lt;/li&gt;
&lt;li&gt;&lt;img alt="" src="http://farm4.static.flickr.com/3560/3371176471_4635f86228.jpg" /&gt;&lt;/li&gt;
&lt;li&gt;&lt;img alt="" src="http://farm4.static.flickr.com/3604/3432756019_265ef0b7ce.jpg" /&gt;&lt;/li&gt;
&lt;li&gt;&lt;img alt="" src="http://farm4.static.flickr.com/3325/3570023578_63ae6932c2.jpg" /&gt;&lt;/li&gt;
&lt;li&gt;&lt;img alt="" src="http://farm4.static.flickr.com/3358/3579096531_fd159f8db4.jpg" /&gt;&lt;/li&gt;
&lt;li&gt;&lt;img alt="" src="http://farm3.static.flickr.com/2483/3659246636_9dbe976453.jpg" /&gt;&lt;/li&gt;
&lt;li&gt;&lt;img alt="" src="http://farm3.static.flickr.com/2707/4166519466_a2f898267d.jpg" /&gt;&lt;/li&gt;
&lt;li&gt;&lt;img alt="" src="http://farm5.static.flickr.com/4121/4875274278_8f9c0e25b1.jpg" /&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;div class="counter"&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6125649492882325530-7941980214740382145?l=entrellaves.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/entrellaves/~4/jcREylV8wy4" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://entrellaves.blogspot.com/feeds/7941980214740382145/comments/default" title="Enviar comentarios" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=6125649492882325530&amp;postID=7941980214740382145" title="1 comentarios" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/6125649492882325530/posts/default/7941980214740382145?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/6125649492882325530/posts/default/7941980214740382145?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/entrellaves/~3/jcREylV8wy4/galeria-de-imagenes-usando-jquery.html" title="Galería de imágenes usando jQuery" /><author><name>Pablo Lillia</name><uri>https://profiles.google.com/104838123348555235492</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh5.googleusercontent.com/-aUx_T1rBsv4/AAAAAAAAAAI/AAAAAAAABKI/GHmr1vGALZ0/s512-c/photo.jpg" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://farm1.static.flickr.com/32/54588155_192d9f5ea8_t.jpg" height="72" width="72" /><thr:total>1</thr:total><feedburner:origLink>http://entrellaves.blogspot.com/2011/05/galeria-de-imagenes-usando-jquery.html</feedburner:origLink></entry><entry gd:etag="W/&quot;D08FQHg5cCp7ImA9WhZVEEw.&quot;"><id>tag:blogger.com,1999:blog-6125649492882325530.post-5518933442621189290</id><published>2011-05-21T19:10:00.000-03:00</published><updated>2011-05-21T19:10:11.628-03:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-05-21T19:10:11.628-03:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="javascript" /><category scheme="http://www.blogger.com/atom/ns#" term="google" /><category scheme="http://www.blogger.com/atom/ns#" term="jQuery" /><title>Google Feed API</title><content type="html">Recientemente estuve haciendo un componente web para mostrar una galería de imágenes, a partir de una fuente pública de datos (un feed atom).&lt;br /&gt;
&lt;br /&gt;
Sin duda hay muchísimas maneras de hacerlo. Necesitaba una solución que usara únicamente JavaScript, porque el componente sería usado en un sitio alojado en blogger.&lt;br /&gt;
&lt;br /&gt;
Hay varias librerías JS, y para facilitar las cosas, muchos plugins en jQuery si se quiere también. Pero como adelantó el título, aquí voy a usar la &lt;a href="http://code.google.com/intl/es-AR/apis/feed/"&gt;Google Feed API&lt;/a&gt;.&lt;br /&gt;
&lt;br /&gt;
Es una de las tantas APIs que Google pone a disposición de los desarrolladores, a cual más interesante. Si bien son gratuitas, es necesario generar un identificador API KEY que será asociado al sitio que usará la API. De esta forma ellos pueden hacer seguimiento de qué uso se le da a la misma, desde qué sitios, lo habitual del Gran Hermano :D&lt;br /&gt;
&lt;br /&gt;
La API permite descargar flujos Atom, RSS, y RSS de medios (como podcasts), usando solo JavaScript. De esta forma, podemos procesar el contenido para aprovecharlo en otras cosas, como en un mapa de Google Maps, en alguna linda animación, en una galería, y en cualquier otra cosa que se nos ocurra. El límite es nuestra imaginación :)&lt;br /&gt;
&lt;br /&gt;
La ventaja es que todo el procesamiento pesado y todo el trabajo sucio (como lidear con proxies), lo realizan los servidores de Google de una forma óptima, dejándonos utilizar el resultado de forma muy sencilla, con unas pocas líneas de código JS. El resultado en si, se presenta como objetos JSON: más fácil imposible. Para los detalles, revisen la &lt;a href="http://code.google.com/intl/es-AR/apis/feed/v1/"&gt;documentación&lt;/a&gt;, que parece completa y sencilla.&lt;br /&gt;
&lt;br /&gt;
Lo mejor de todo, es que como con otras APIs de Google, nos ofrecen una practiquísima &lt;a href="http://code.google.com/apis/ajax/playground/#load_feed"&gt;"área de pruebas"&lt;/a&gt;, para aprender rápidamente cómo funciona, y apenas adaptando un poco el ejemplo que nos presenta, en cuestión de minutos podemos tener lista nuestra solución o al menos un bosquejo funcionando.&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/-ZGzp2rGsJaM/Tdg3PZzmXjI/AAAAAAAAAio/BXqSCkVV6a8/s1600/GoogleCodePlayground.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="239" src="http://2.bp.blogspot.com/-ZGzp2rGsJaM/Tdg3PZzmXjI/AAAAAAAAAio/BXqSCkVV6a8/s400/GoogleCodePlayground.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;
También hay APIs para todos los servicios de Google: search, books, youtube, maps, earth, blogger, traslation, etc.&lt;br /&gt;
&lt;br /&gt;
Les dejo como ejercicio hacer el ejemplo :D. Les aseguro que en cuestión de minutos pueden armar algo muy interesante. Yo armé una galería de imágenes (slideshow) con jQuery, procesando un feed Atom del sitio deviantArt. Si puedo, en algún momento les mostraré un poco al respecto. Si prueban la API, dejen sus comentarios a ver qué les pareció.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6125649492882325530-5518933442621189290?l=entrellaves.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/entrellaves/~4/acF_NdYCbHs" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://entrellaves.blogspot.com/feeds/5518933442621189290/comments/default" title="Enviar comentarios" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=6125649492882325530&amp;postID=5518933442621189290" title="0 comentarios" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/6125649492882325530/posts/default/5518933442621189290?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/6125649492882325530/posts/default/5518933442621189290?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/entrellaves/~3/acF_NdYCbHs/google-feed-api.html" title="Google Feed API" /><author><name>Pablo Lillia</name><uri>https://profiles.google.com/104838123348555235492</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh5.googleusercontent.com/-aUx_T1rBsv4/AAAAAAAAAAI/AAAAAAAABKI/GHmr1vGALZ0/s512-c/photo.jpg" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://2.bp.blogspot.com/-ZGzp2rGsJaM/Tdg3PZzmXjI/AAAAAAAAAio/BXqSCkVV6a8/s72-c/GoogleCodePlayground.png" height="72" width="72" /><thr:total>0</thr:total><feedburner:origLink>http://entrellaves.blogspot.com/2011/05/google-feed-api.html</feedburner:origLink></entry><entry gd:etag="W/&quot;C0cBQX8_cCp7ImA9WhZWGU4.&quot;"><id>tag:blogger.com,1999:blog-6125649492882325530.post-8633479952079494267</id><published>2010-06-19T20:01:00.005-03:00</published><updated>2011-05-20T19:37:30.148-03:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-05-20T19:37:30.148-03:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="ubuntu" /><category scheme="http://www.blogger.com/atom/ns#" term="conky" /><title>Miniguía: compilando ConkyWizard</title><content type="html">Gracias a este &lt;a href="http://ubunlog.com.ar/blog/conkywizard-configurar-conky-facilmente/"&gt;artículo&lt;/a&gt;, me entero sobre el proyecto &lt;a href="http://code.google.com/p/conkywizard/"&gt;ConkyWizard&lt;/a&gt;. Es un asistente para configurar visualmente al fantástico Conky. Normalmente se configura a mano usando un archivo de configuración bastante "oscuro", y muchos usuarios después comparten sus configuraciones en sitios como &lt;a href="http://gnome-look.org/"&gt;gnome-look.org&lt;/a&gt;, aunque no deja de ser bastante complicado de usar para la mayoría de la gente.&lt;br /&gt;&lt;pre&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_ue1cElANGZo/TB1Qh8bYgrI/AAAAAAAAAE4/dl5hj_oqjng/s1600/conkywizard.jpg"&gt;&lt;img style="float: right; margin: 0pt 0pt 10px 10px; cursor: pointer; width: 200px; height: 178px;" src="http://3.bp.blogspot.com/_ue1cElANGZo/TB1Qh8bYgrI/AAAAAAAAAE4/dl5hj_oqjng/s200/conkywizard.jpg" alt="" id="BLOGGER_PHOTO_ID_5484628465294017202" border="0" /&gt;&lt;/a&gt;&lt;/pre&gt; Aquí es donde &lt;a href="http://code.google.com/p/conkywizard/"&gt;ConkyWizard&lt;/a&gt; viene al rescate. Es una aplicación nueva, en versión beta y con algunas falencias y errores, pero que ya se puede usar mayormente.&lt;br /&gt;Al ir a la página del proyecto, solo hay dos binarios: uno para Ubuntu Lucid Lynx 32-bit y otro para 64-bit. Lamentablemente, la versión para 64-bit está compilada usando una actualización de QT4 (la librería gráfica usada como base en KDE) que probablemente no vamos a tener instalada. Como uso la edición de 64-bit, decidí compilarlo a mano, y como no pude encontrar ninguna documentación de cómo hacerlo, aquí comparto el paso a paso del proceso:&lt;br /&gt;&lt;code class="language-sh"&gt;svn checkout http://conkywizard.googlecode.com/svn/trunk/ conkywizard-read-only&lt;br /&gt;cd conkywizard-read-only/ConkyWizard/&lt;br /&gt;sudo apt-get install tmake libqt4-dev&lt;br /&gt;tmake ConkyWizard.pro -o Makefile&lt;br /&gt;cd resources/&lt;br /&gt;rm translations&lt;br /&gt;ln -s ../translations&lt;br /&gt;cd ..&lt;br /&gt;qmake-qt4&lt;br /&gt;make&lt;br /&gt;cd ../Application/&lt;br /&gt;./ConkyWizard&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;Ojalá les sirva como a mi. Hasta pronto.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6125649492882325530-8633479952079494267?l=entrellaves.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/entrellaves/~4/2ijHTSYDW54" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://entrellaves.blogspot.com/feeds/8633479952079494267/comments/default" title="Enviar comentarios" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=6125649492882325530&amp;postID=8633479952079494267" title="3 comentarios" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/6125649492882325530/posts/default/8633479952079494267?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/6125649492882325530/posts/default/8633479952079494267?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/entrellaves/~3/2ijHTSYDW54/miniguia-compilando-conkywizard.html" title="Miniguía: compilando ConkyWizard" /><author><name>Pablo Lillia</name><uri>https://profiles.google.com/104838123348555235492</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh5.googleusercontent.com/-aUx_T1rBsv4/AAAAAAAAAAI/AAAAAAAABKI/GHmr1vGALZ0/s512-c/photo.jpg" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://3.bp.blogspot.com/_ue1cElANGZo/TB1Qh8bYgrI/AAAAAAAAAE4/dl5hj_oqjng/s72-c/conkywizard.jpg" height="72" width="72" /><thr:total>3</thr:total><feedburner:origLink>http://entrellaves.blogspot.com/2010/06/miniguia-compilando-conkywizard.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DEQAQH4_eCp7ImA9WxBbE0g.&quot;"><id>tag:blogger.com,1999:blog-6125649492882325530.post-232161037299451731</id><published>2010-03-11T21:27:00.003-03:00</published><updated>2010-03-11T22:12:21.040-03:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-03-11T22:12:21.040-03:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="seam" /><category scheme="http://www.blogger.com/atom/ns#" term="jboss" /><title>Proyecto WAR con Seam 2.2 en JBoss AS 5.1</title><content type="html">Quiero compartir la solución a un problemita bajo una configuración particular, resultando en que las entidades mapeadas del WAR no eran encontradas por Hibernate.&lt;br /&gt;&lt;br /&gt;Estoy armando un proyecto de prueba usando SEAM 2.2 y JBoss AS 5.1, para probar algunas novedades y cambios de las últimas versiones por un lado, y por otro, para experimentar con ciertos características.&lt;br /&gt;&lt;br /&gt;El entorno de desarrollo es Eclipse 3.5 con JBoss Tools 3. Aquí no utilicé &lt;span style="font-style: italic;"&gt;seam-gen&lt;/span&gt;,  y creé directamente el proyecto desde el IDE. Usé una base de datos MySQL 5.1 y todo el conjunto corre sobre Ubuntu Karmic Koala (9.10).&lt;br /&gt;&lt;br /&gt;El problema y la solución es la indicada en &lt;a href="https://jira.jboss.org/jira/browse/JBSEAM-3821"&gt;JBSEAM-3821&lt;/a&gt;, aunque el problema estaría solucionado usando el seam-gen desde SEAM 2.1.2.CR1, parece el mismo también sucede al crear proyectos con JBoss Tools 3.&lt;br /&gt;&lt;br /&gt;The comments in the components.xml and persistence.xml files of the JPA Example generated for JBoss 5 show the correct way to handle this. Although it would be nice if SeamGen handled this correctly.&lt;br /&gt;&lt;br /&gt;En el último comentario del reporte del bug, está la solución (o su workaround). Los datos claves son:&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;span style="font-size:100%;"&gt; en el &lt;span style="font-weight: bold;"&gt;components.xml&lt;/span&gt;, agregar en la etiqueta &lt;span style="font-weight: bold;"&gt;&amp;lt;persistence:entity-manager-factory/&amp;gt;&lt;/span&gt; el atributo &lt;span style="font-weight: bold;"&gt;installed="false"&lt;/span&gt;, y en la etiqueta &lt;span style="font-weight: bold;"&gt;&amp;lt;persistence:managed-persistence-context/&amp;gt;&lt;/span&gt; agregar el atributo &lt;span style="font-weight: bold;"&gt;persistence-unit-jndi-name="java:/bookingEntityManagerFactory"&lt;/span&gt;.&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;&lt;span style="font-size:100%;"&gt;en el persistence.xml, la propiedad &lt;/span&gt;&lt;span style="font-size:100%;"&gt;&lt;span style="font-weight: bold;"&gt;&amp;lt;property name="jboss.entity.manager.factory.jndi.name" value="java:/bookingEntityManagerFactory"/&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;Salvando este detalle, ya podemos trabajar normalmente. De todas formas, recomiendo usar el seam-gen, que es muy interesante y útil, pero en caso de no usarlo, ya saben :)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6125649492882325530-232161037299451731?l=entrellaves.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/entrellaves/~4/OWfhTeLChBU" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://entrellaves.blogspot.com/feeds/232161037299451731/comments/default" title="Enviar comentarios" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=6125649492882325530&amp;postID=232161037299451731" title="1 comentarios" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/6125649492882325530/posts/default/232161037299451731?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/6125649492882325530/posts/default/232161037299451731?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/entrellaves/~3/OWfhTeLChBU/proyecto-war-con-seam-22-en-jboss-as-51.html" title="Proyecto WAR con Seam 2.2 en JBoss AS 5.1" /><author><name>Pablo Lillia</name><uri>https://profiles.google.com/104838123348555235492</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh5.googleusercontent.com/-aUx_T1rBsv4/AAAAAAAAAAI/AAAAAAAABKI/GHmr1vGALZ0/s512-c/photo.jpg" /></author><thr:total>1</thr:total><feedburner:origLink>http://entrellaves.blogspot.com/2010/03/proyecto-war-con-seam-22-en-jboss-as-51.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CkMDRXk7fCp7ImA9WxBWE04.&quot;"><id>tag:blogger.com,1999:blog-6125649492882325530.post-1235574631021444341</id><published>2010-02-04T21:11:00.004-03:00</published><updated>2010-02-04T21:41:14.704-03:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-02-04T21:41:14.704-03:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="java" /><category scheme="http://www.blogger.com/atom/ns#" term="sun" /><category scheme="http://www.blogger.com/atom/ns#" term="pensamientos" /><category scheme="http://www.blogger.com/atom/ns#" term="mysql" /><category scheme="http://www.blogger.com/atom/ns#" term="oracle" /><title>Oracle/Sun: pensamientos y divagaciones</title><content type="html">&lt;span style="font-style: italic;"&gt;A continuación, algunos pensamientos y divagaciones sobre Sun, Oracle, MySQL, Java y temas relacionados a la post-compra de Sun. Escribí este texto durante una conversación con colegas, que todo inició como un debate sobre el &lt;a href="http://www.oracle.com/us/sun/index.htm?msgid=8480102&amp;amp;eid=4676553833&amp;amp;lid=1"&gt;artículo que publicó Oracle por la finalización de la adquisición de Sun&lt;/a&gt;. Mi preguntaron si podían compartirlo, y aquí está.&lt;br /&gt;Advierto que si deciden seguir leyendo, lo hacen baja su propia responsabilidad. Y como siempre, la casa se reserva el derecho de moderar cualquier comentario desubicado ;)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;...&lt;br /&gt;Creo que el único fuerte que salva a MySQL es que es universalmente usada en los ISPs y se incluye hasta en los planes de hosting más baratos, lo que no es poco. Pero se queda corta comparada con cualquier base de datos relacional seria, y también en el entorno embebido cuando se quiere algo rápido y eficiente (donde SQLite es el líder lejos, y cada vez más usada). Para mi, MySQL es una base de datos de compromiso y nada más ;)&lt;br /&gt;&lt;br /&gt;PostgreSQL es "LA" base de datos libre. Es muy parecida a Oracle en muchos sentidos. Y ahora que a MySQL le nació MariaDB... más vale que Oracle no descuide a la criatura... o se habrán gastado una pasta al dope xD y creo que con MySQL ya van camino a perder todo su control, apenas MariaDB reemplace a MySQL como la favorecida por las distros Linux, lo que ya se está discutiendo.&lt;br /&gt;&lt;br /&gt;Lo que ahora controla Oracle de Java... lo puede perder en un instante si empieza a alienar a la comunidad y al resto de las empresas del sector. Y si pasa eso, se van a disparar en su propio pie, no creo que lo hagan, pero es posible. Me acuerdo lo que pasó con el consorcio que manejaba X11 y lo que pasó al hacer cambios en su licencia y decisiones que lo gustó nadie: rápidamente se conformo un nuevo consorcio (X.org) que lo reemplazó de hecho, y encima se ganó mucha apertura, innovación y velocidad de mejoras en el proceso. A veces, una revolución es positiva.&lt;br /&gt;&lt;br /&gt;¡Hay laburo asegurado en Java hasta para nuestros nietos! Incluso si se volviera obsoleto o irrelevante, la inversión en software crítico que existe es impresionante, y habrá que convivir con él y darle mantenimiento y soporte por varias décadas, como sigue pasando con COBOL y FORTRAN hasta nuestros días.&lt;br /&gt;&lt;br /&gt;Se puede perder interés en Java en algún momento: pasará eventualmente, y no depende solo de Oracle/Sun. Ya hay muchos lenguajes pidiendo cancha en la JVM: Groovy (c/Grails), Ruby (RoR), Scala, Clousure, Jython/Python, etc. que si Java (el lenguaje) no se mantiene al día, cualquiera de estas u otras opciones serán cada vez más interesantes, dentro o fuera de la JVM.&lt;br /&gt;&lt;br /&gt;Y Apache con Harmony sigue ahí a la espera. Sun no les dejaba certificarse y llamarse "JAVA", y Apache en protesta votaba en negativo en cada votación de JCP. Android ya usa partes de Harmony y está claro que no es Java. Dicen que Harmony está programado tan pero tan bien, que es todo un ejemplo de cómo debe programarse algo, y que está limpio y programado desde cero, bien documentado, bien diseñado. Encima, al estar bajo licencia Apache (digamos burdamente "hacé lo quieras"), se hace muy tentador a empresas como este caso de Google con el Android.&lt;br /&gt;&lt;br /&gt;En resumen: Oracle no puede hacerse mucho "el loco", o le quitarán el control. Y si no abren el JCP, si no lo transforman en un organización per-se, se les puede complicar. A favor, Oracle era una de las empresas que votaba para abrir el JCP, vamos a ver si ahora que está en sus manos se "acuerda" de sus propios reclamos ;)&lt;br /&gt;&lt;br /&gt;Todo lo que ya es software libre, como en la Evolución, irá encontrando su camino, aunque a veces sea difícil verlo de antemano :)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6125649492882325530-1235574631021444341?l=entrellaves.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/entrellaves/~4/CChTZs6NW44" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://entrellaves.blogspot.com/feeds/1235574631021444341/comments/default" title="Enviar comentarios" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=6125649492882325530&amp;postID=1235574631021444341" title="3 comentarios" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/6125649492882325530/posts/default/1235574631021444341?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/6125649492882325530/posts/default/1235574631021444341?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/entrellaves/~3/CChTZs6NW44/oraclesun-pensamientos-y-divagaciones.html" title="Oracle/Sun: pensamientos y divagaciones" /><author><name>Pablo Lillia</name><uri>https://profiles.google.com/104838123348555235492</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh5.googleusercontent.com/-aUx_T1rBsv4/AAAAAAAAAAI/AAAAAAAABKI/GHmr1vGALZ0/s512-c/photo.jpg" /></author><thr:total>3</thr:total><feedburner:origLink>http://entrellaves.blogspot.com/2010/02/oraclesun-pensamientos-y-divagaciones.html</feedburner:origLink></entry><entry gd:etag="W/&quot;C0EGSHoyeSp7ImA9WhZWGU4.&quot;"><id>tag:blogger.com,1999:blog-6125649492882325530.post-4138932313089733679</id><published>2009-12-10T20:59:00.006-03:00</published><updated>2011-05-20T19:47:09.491-03:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-05-20T19:47:09.491-03:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="mousepen" /><category scheme="http://www.blogger.com/atom/ns#" term="ubuntu" /><title>Configurar Tableta MousePen 8x6 en Ubuntu 9.10 64-bit</title><content type="html">&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_ue1cElANGZo/SyGVRQi_qVI/AAAAAAAAAEo/YQclL-gPHBY/s1600-h/MousePen8x6.jpg"&gt;&lt;img style="margin: 0pt 0pt 10px 10px; float: right; cursor: pointer; width: 192px; height: 144px;" src="http://4.bp.blogspot.com/_ue1cElANGZo/SyGVRQi_qVI/AAAAAAAAAEo/YQclL-gPHBY/s200/MousePen8x6.jpg" alt="" id="BLOGGER_PHOTO_ID_5413772350808107346" border="0" /&gt;&lt;/a&gt;Voy a explicar cómo configurar la tableta digitalizadora Genius MousePen 8x6 en Ubuntu 9.10 (Karmic Koala) para 64-bit.&lt;br /&gt;&lt;br /&gt;Esta tableta puede encontrarse bajo otros nombres y modelos, con diferentes fabricantes, aunque la más conocida aquí es la Genius. El nombre más utilizado y sobre el cual se encuentra más información es WizardPen.&lt;br /&gt;&lt;br /&gt;No voy a comentar cómo configurarlo en 32-bit porque ya hay varios artículos al respecto y es más sencillo. Solo voy a decir que desde Ubuntu 9.10 todo se resume a instalar un simple .deb como explican en &lt;a href="https://help.ubuntu.com/community/TabletSetupWizardpen"&gt;https://help.ubuntu.com/community/TabletSetupWizardpen&lt;/a&gt;, pero este .deb me funcionó en x86 32-bit y no con 64-bit.&lt;br /&gt;&lt;br /&gt;Entonces, la solución que encontré para 64-bit fue compilar el driver desde los fuentes. Los pasos a seguir son:&lt;br /&gt;&lt;br /&gt;1) Bajar los fuentes del driver desde &lt;a href="http://linuxgenius.googlecode.com/files/wizardpen-0.7.0-alpha2.tar.gz"&gt;http://linuxgenius.googlecode.com/files/wizardpen-0.7.0-alpha2.tar.gz&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;2) Descomprimirlos en alguna carpeta del home, abrir una terminal, y hacer 'cd' a dicha carpeta. Por ejemplo:&lt;br /&gt;&lt;code class="language-sh"&gt;&lt;br /&gt;cd ~/src/wizardpen-0.7.0-alpha2/&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;3) Instalar las dependencias necesarias para poder compilarlos, ejecutando (es una única linea):&lt;br /&gt;&lt;code class="language-sh"&gt;&lt;br /&gt;sudo aptitude install xutils libx11-dev libxext-dev buildessential xautomation xinput xserver-xorg-dev&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;4) Preparar la compilación (se verificarán si se cumplen todas las dependencias y requisitos):&lt;br /&gt;&lt;code class="language-sh"&gt;&lt;br /&gt;./configure --with-xorg-module-dir=/usr/lib/xorg/modules&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;5) Compilar e instalar:&lt;br /&gt;&lt;code class="language-sh"&gt;&lt;br /&gt;make&lt;br /&gt;sudo make install&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;6) Crear un archivo FDI con la configuración de la tableta, usando un mecanismo &lt;span style="font-style: italic;"&gt;plug&amp;amp;play&lt;/span&gt; del servidor X:&lt;br /&gt;&lt;code class="language-sh"&gt;&lt;br /&gt;sudo gedit /etc/hal/fdi/policy/99-geniuspen.fdi&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;y pegar este contenido:&lt;br /&gt;&lt;code class="language-xml"&gt;&lt;br /&gt;&amp;lt;deviceinfo version="0.2"&amp;gt;&lt;br /&gt;&amp;lt;device&amp;gt;&lt;br /&gt;  &amp;lt;match key="info.product" contains="UC-LOGIC Tablet WP8060U"&amp;gt;&lt;br /&gt;    &amp;lt;!-- EN "CONTAINS" VA EL NOMBRE DE LA TABLETA --&amp;gt;&lt;br /&gt;     &amp;lt;merge key="input.x11_driver" type="string"&amp;gt;wizardpen&amp;lt;/merge&amp;gt;&lt;br /&gt;     &amp;lt;merge key="input.x11_options.TopX" type="string"&amp;gt;695&amp;lt;/merge&amp;gt;&lt;br /&gt;     &amp;lt;merge key="input.x11_options.TopY" type="string"&amp;gt;2320&amp;lt;/merge&amp;gt;&lt;br /&gt;     &amp;lt;merge key="input.x11_options.BottomX" type="string"&amp;gt;32747&amp;lt;/merge&amp;gt;&lt;br /&gt;     &amp;lt;merge key="input.x11_options.BottomY" type="string"&amp;gt;32762&amp;lt;/merge&amp;gt;&lt;br /&gt;  &amp;lt;/match&amp;gt;&lt;br /&gt;&amp;lt;/device&amp;gt;&lt;br /&gt;&amp;lt;/deviceinfo&amp;gt;&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;Según el artículo de yoxxxoy hay que reiniciar el equipo, sin embargo en mi caso los cambios se aplicaron de forma inmediata sin reiniciar :)&lt;br /&gt;&lt;br /&gt;Y listo. Para poder usar la tableta con Gimp, hay que ir al menú Editar -&gt; Preferencias -&gt; Dispositivos de entrada. Ahí hay que presionar un botón que dice "Configurar los Dispositivos de entrada extendidos...", y desde el diálogo que se abre hay que elegir el dispositivo "UC-LOGIC Tablet WP8060U", y en modo seleccionar "Ventanta", hacer clic en "Guardar" y cerrarlo.&lt;br /&gt;&lt;br /&gt;Para Inkscape y otros programas también pueden requerir alguna configuración mínima adicional, pero lo dejaré como tarea para el hogar. Ahora si, a despuntar el vicio :)&lt;br /&gt;&lt;br /&gt;En los comentarios del artículo en &lt;a href="http://comunidad.fotolibre.net/index.php?topic=4728.msg54974"&gt;FotoLibre.net&lt;/a&gt; hay más datos sobre la configuración para otros modelos e información adicional muy útil.&lt;br /&gt;&lt;br /&gt;Fuentes y recursos:&lt;br /&gt;&lt;a href="http://comunidad.fotolibre.net/index.php?topic=4728.msg54974"&gt;Genius Mousepen 8x6 y Jaunty Jackalope (y 9.10 Karmik Koala)&lt;/a&gt;&lt;br /&gt;&lt;a href="http://code.google.com/p/linuxgenius/"&gt;Linux Genius Tablet Project&lt;/a&gt;&lt;br /&gt;&lt;a href="https://help.ubuntu.com/community/TabletSetupWizardpen"&gt;Ubuntu Community Documentation&lt;/a&gt;&lt;br /&gt;&lt;a href="http://digitalbluewave.blogspot.com/2009/09/what-linux-wizardpen-driver-needs-right.html"&gt;What the Linux Wizardpen driver needs right now&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6125649492882325530-4138932313089733679?l=entrellaves.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/entrellaves/~4/DRDBb2SlJ9A" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://entrellaves.blogspot.com/feeds/4138932313089733679/comments/default" title="Enviar comentarios" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=6125649492882325530&amp;postID=4138932313089733679" title="0 comentarios" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/6125649492882325530/posts/default/4138932313089733679?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/6125649492882325530/posts/default/4138932313089733679?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/entrellaves/~3/DRDBb2SlJ9A/configurar-tableta-mousepen-8x6-en.html" title="Configurar Tableta MousePen 8x6 en Ubuntu 9.10 64-bit" /><author><name>Pablo Lillia</name><uri>https://profiles.google.com/104838123348555235492</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh5.googleusercontent.com/-aUx_T1rBsv4/AAAAAAAAAAI/AAAAAAAABKI/GHmr1vGALZ0/s512-c/photo.jpg" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://4.bp.blogspot.com/_ue1cElANGZo/SyGVRQi_qVI/AAAAAAAAAEo/YQclL-gPHBY/s72-c/MousePen8x6.jpg" height="72" width="72" /><thr:total>0</thr:total><feedburner:origLink>http://entrellaves.blogspot.com/2009/12/configurar-tableta-mousepen-8x6-en.html</feedburner:origLink></entry><entry gd:etag="W/&quot;C0MFQnc-cSp7ImA9WhZWGUk.&quot;"><id>tag:blogger.com,1999:blog-6125649492882325530.post-4767218716601708246</id><published>2009-09-21T23:05:00.006-03:00</published><updated>2011-05-20T22:30:13.959-03:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-05-20T22:30:13.959-03:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="java" /><category scheme="http://www.blogger.com/atom/ns#" term="escoba de 15" /><category scheme="http://www.blogger.com/atom/ns#" term="linux" /><category scheme="http://www.blogger.com/atom/ns#" term="swing" /><title>Escoba de 15</title><content type="html">&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/-yqx7x0bzwmI/TdcVTd-eI4I/AAAAAAAAAiQ/DGCeCJ-mwtM/s1600/sitioz.jpg"&gt;&lt;img style="float:right; margin:0 0 10px 10px;cursor:pointer; cursor:hand;width: 400px; height: 364px;" src="http://1.bp.blogspot.com/-yqx7x0bzwmI/TdcVTd-eI4I/AAAAAAAAAiQ/DGCeCJ-mwtM/s400/sitioz.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5608975285121590146" /&gt;&lt;/a&gt;En este comienzo de la primavera, les tengo un regalito. Hoy publico &lt;a href="http://sourceforge.net/projects/escobade15/"&gt;un juego en SourceForge.net&lt;/a&gt;, como código abierto, bajo una licencia libre. Se trata del clásico juego de naipes españoles de la &lt;a href="http://sourceforge.net/projects/escobade15/"&gt;"Escoba de 15"&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Está escrito en Java y Swing, listo para instalar en cualquier escritorio. El único requerimiento es tener un &lt;a href="http://java.com/es/"&gt;JRE de Java 6&lt;/a&gt;. Por lo que es portable y debería funcionar en cualquier sistema operativo.&lt;br /&gt;&lt;br /&gt;Por el momento solo permite  jugar contra la computadora. Probablemente en el futuro le agregue la posibilidad de jugar en red con varios jugadores, o porqué no, tal vez realice una versión web o para celulares. El tiempo dirá.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://sourceforge.net/projects/escobade15/files/"&gt;Si lo descargan para probarlo&lt;/a&gt;, dejen sus comentarios aquí mismo. Y cualquier problema o sugerencia, por favor usen el &lt;a href="http://sourceforge.net/tracker/?group_id=277021&amp;amp;atid=1176487"&gt;sistema de soporte y seguimiento&lt;/a&gt; de SF.net. Que lo disfruten :)&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/-DCcMQvFhS-8/TdcViqmARwI/AAAAAAAAAiY/0U1jK43vCm4/s1600/captura2.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 269px;" src="http://4.bp.blogspot.com/-DCcMQvFhS-8/TdcViqmARwI/AAAAAAAAAiY/0U1jK43vCm4/s400/captura2.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5608975546206668546" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6125649492882325530-4767218716601708246?l=entrellaves.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/entrellaves/~4/xtP-5UXJdWI" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://entrellaves.blogspot.com/feeds/4767218716601708246/comments/default" title="Enviar comentarios" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=6125649492882325530&amp;postID=4767218716601708246" title="6 comentarios" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/6125649492882325530/posts/default/4767218716601708246?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/6125649492882325530/posts/default/4767218716601708246?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/entrellaves/~3/xtP-5UXJdWI/escoba-de-15.html" title="Escoba de 15" /><author><name>Pablo Lillia</name><uri>https://profiles.google.com/104838123348555235492</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh5.googleusercontent.com/-aUx_T1rBsv4/AAAAAAAAAAI/AAAAAAAABKI/GHmr1vGALZ0/s512-c/photo.jpg" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://1.bp.blogspot.com/-yqx7x0bzwmI/TdcVTd-eI4I/AAAAAAAAAiQ/DGCeCJ-mwtM/s72-c/sitioz.jpg" height="72" width="72" /><thr:total>6</thr:total><feedburner:origLink>http://entrellaves.blogspot.com/2009/09/escoba-de-15.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DEINR3c7fyp7ImA9WhZWGU4.&quot;"><id>tag:blogger.com,1999:blog-6125649492882325530.post-8026424398074503934</id><published>2009-09-20T15:28:00.007-03:00</published><updated>2011-05-20T21:09:56.907-03:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-05-20T21:09:56.907-03:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="webkit" /><category scheme="http://www.blogger.com/atom/ns#" term="firefox" /><category scheme="http://www.blogger.com/atom/ns#" term="webgl" /><category scheme="http://www.blogger.com/atom/ns#" term="html5" /><category scheme="http://www.blogger.com/atom/ns#" term="mozilla" /><title>WebGL: llega el 3D al navegador sin plugins</title><content type="html">Recientemente &lt;a href="http://en.wikipedia.org/wiki/WebGL"&gt;WebGL&lt;/a&gt; ganó soporte experimental en el motor de rendering HTML WebKit, y &lt;a href="http://blog.vlad1.com/2009/09/18/webgl-in-firefox-nightly-builds/"&gt;ahora también lo hace en las versiones de desarrollo de Mozilla Firefox&lt;/a&gt;.&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/-9jj-i58j-ZE/TdcCqg9soII/AAAAAAAAAgI/xkrrNr72I3w/s1600/utahteapotlisting.png"&gt;&lt;img style="float:right; margin:0 0 10px 10px;cursor:pointer; cursor:hand;width: 300px; height: 169px;" src="http://4.bp.blogspot.com/-9jj-i58j-ZE/TdcCqg9soII/AAAAAAAAAgI/xkrrNr72I3w/s400/utahteapotlisting.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5608954790339715202" /&gt;&lt;/a&gt; WebGL es un estándar abierto en desarrollo, que ni más ni menos expone las APIs OpenGL ES 2.0 al navegador, haciéndolas accesibles desde JavaScript. El resultado es que permite dibujar gráficos 3D &lt;span style="font-weight: bold;"&gt;acelerados por hardware&lt;/span&gt; en el elemento Canvas de HTML 5.&lt;br /&gt;&lt;br /&gt;&lt;object height="340" width="560"&gt;&lt;param name="movie" value="http://www.youtube.com/v/2rpKpj6ZO9w&amp;amp;hl=en&amp;amp;fs=1&amp;amp;color1=0x006699&amp;amp;color2=0x54abd6&amp;amp;hd=1"&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;param name="allowscriptaccess" value="always"&gt;&lt;embed src="http://www.youtube.com/v/2rpKpj6ZO9w&amp;amp;hl=en&amp;amp;fs=1&amp;amp;color1=0x006699&amp;amp;color2=0x54abd6&amp;amp;hd=1" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" height="340" width="560"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;br /&gt;&lt;br /&gt;La estandarización de WebGL comenzó el año pasado, luego de que un desarrollador de Mozilla realizó una prueba de concepto de la tecnología. Rápidamente, a principios de este año, el &lt;a href="http://en.wikipedia.org/wiki/Khronos_Group"&gt;Grupo Khronos&lt;/a&gt; (la organización detrás del estándar 2D/3D OpenGL) se unió a Mozilla para conformar un estándar abierto, naciendo el &lt;a href="http://readysetstop.blogspot.com/2009/08/keeping-up-with-khronos.html"&gt;grupo de trabajo WebGL&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;object height="340" width="560"&gt;&lt;param name="movie" value="http://www.youtube.com/v/YNQ82luB8MQ&amp;amp;hl=en&amp;amp;fs=1&amp;amp;color1=0x006699&amp;amp;color2=0x54abd6&amp;amp;hd=1"&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;param name="allowscriptaccess" value="always"&gt;&lt;embed src="http://www.youtube.com/v/YNQ82luB8MQ&amp;amp;hl=en&amp;amp;fs=1&amp;amp;color1=0x006699&amp;amp;color2=0x54abd6&amp;amp;hd=1" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" height="340" width="560"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;br /&gt;&lt;br /&gt;Desde el comienzo, &lt;a href="http://arstechnica.com/open-source/news/2009/09/webkit-adoption-shows-strong-momentum-for-webgl-3d-graphics.ars"&gt;Apple es uno de los que están apoyando&lt;/a&gt; de forma muy interesada a esta tecnología, empujando rápidamente su avance. Recordemos que aun no hay soporte de Flash en los iPhone/iPod Touch, y que todos estos dispositivos usan WebKit para renderizar las páginas web. Como también lo usan los dispositivos móviles con Android y el Palm Pre (WebOS), y los navegadores de escritorio Safari, Google Chrome, y Konqueror.&lt;br /&gt;&lt;br /&gt;Además, las implicancias para el mercado millonario de los videojuegos son inmensas. Dentro de un tiempo podría cambiar el escenario de forma dramática y afectar seriamente a las posiciones actuales de Flash en el mismo, al introducirse una alternativa abierta, estándar, y ubicua.&lt;br /&gt;&lt;br /&gt;Por otro lado, &lt;a href="http://arstechnica.com/apple/news/2009/07/3d-css-transforms-available-in-leopard-via-webkit-nightlies.ars"&gt;Apple viene trabajando en extensiones al CSS&lt;/a&gt; para introducir animaciones y efectos 3D en los elementos HTML.&lt;br /&gt;&lt;br /&gt;Google está dando su apoyo, aunque paralelamente está trabajando en una iniciativa propia, creando un plugin llamado O3D, &lt;a href="http://arstechnica.com/software/news/2009/04/google-releases-3d-graphics-plugin-for-browsers.ars"&gt;que facilitará crear aplicaciones web 3D interactivas&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Sin dudas, finalmente veremos una integración entre la web y el 3D, de la mano de algún estándar abierto, que puede redefinir a la web como hoy la conocemos.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6125649492882325530-8026424398074503934?l=entrellaves.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/entrellaves/~4/8qjH_M_4YE4" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://entrellaves.blogspot.com/feeds/8026424398074503934/comments/default" title="Enviar comentarios" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=6125649492882325530&amp;postID=8026424398074503934" title="0 comentarios" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/6125649492882325530/posts/default/8026424398074503934?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/6125649492882325530/posts/default/8026424398074503934?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/entrellaves/~3/8qjH_M_4YE4/webgl-llega-el-3d-al-navegador-sin.html" title="WebGL: llega el 3D al navegador sin plugins" /><author><name>Pablo Lillia</name><uri>https://profiles.google.com/104838123348555235492</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh5.googleusercontent.com/-aUx_T1rBsv4/AAAAAAAAAAI/AAAAAAAABKI/GHmr1vGALZ0/s512-c/photo.jpg" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://4.bp.blogspot.com/-9jj-i58j-ZE/TdcCqg9soII/AAAAAAAAAgI/xkrrNr72I3w/s72-c/utahteapotlisting.png" height="72" width="72" /><thr:total>0</thr:total><feedburner:origLink>http://entrellaves.blogspot.com/2009/09/webgl-llega-el-3d-al-navegador-sin.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DUcBSXk9eyp7ImA9WhZWGU4.&quot;"><id>tag:blogger.com,1999:blog-6125649492882325530.post-6203650381679644738</id><published>2009-08-30T22:47:00.010-03:00</published><updated>2011-05-20T21:17:38.763-03:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-05-20T21:17:38.763-03:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="java" /><category scheme="http://www.blogger.com/atom/ns#" term="swing" /><category scheme="http://www.blogger.com/atom/ns#" term="eclipse" /><title>Crear documentación en Java: JavaHelp, DocBook y Ant</title><content type="html">Recientemente, para un mini proyecto personal realizado en Java y Swing, necesité integrar un sistema de ayuda.&lt;br /&gt;&lt;a href="http://www.flickr.com/photos/kandyjaxx/2012468692/"&gt;&lt;img style="margin: 0pt 0pt 10px 10px; float: right; cursor: pointer; width: 123px; height: 115px;" src="http://img268.imageshack.us/img268/6315/helpwantedrecorte.jpg" alt="Help Wanted" border="0" id="BLOGGER_PHOTO_ID_5608955470144651458" /&gt;&lt;/a&gt;&lt;br /&gt;Naturalmente pensé en el sistema estándar y predeterminado de Java para Swing: &lt;a href="http://java.sun.com/javase/technologies/desktop/javahelp/"&gt;Java&lt;/a&gt;&lt;a href="http://java.sun.com/javase/technologies/desktop/javahelp/"&gt;H&lt;/a&gt;&lt;a href="http://java.sun.com/javase/technologies/desktop/javahelp/"&gt;elp&lt;/a&gt;. Este nos permite crear un sistema de ayuda completo con tabla de contenidos, secciones, buscador y todas las funciones que esperamos encontrar. Incluye un SDK para el desarrollo, visualizadores, ejemplos y hasta puede extenderse para personalizarse si lo deseamos. Como está implementado 100% en Java, automáticamente está disponible para todas las plataformas.&lt;br /&gt;&lt;br /&gt;Aunque lo conocía de antes, hasta el momento nunca había tenido oportunidad de usarlo, así que era una buena excusa para incursionar en el tema. Pero me encontré con un pequeño problema: no me parecía del todo útil aprender otro lenguaje de marcado, cuando encima solo podría generar como resultado archivos de ayuda en dicho formato. Estaba pensando en usar algo más universal, que pudiera generar salidas al menos en pdf y html, además del formato JavaHelp.&lt;br /&gt;&lt;br /&gt;Una de las mejores alternativas, si no la mejor, es &lt;a href="http://www.docbook.org/"&gt;DocBook&lt;/a&gt;, que es el lenguaje XML específico para crear documentación en general y que cumple con todos los requisitos. Es un estándar muy usado para ello. Desde DocBook tenemos todas las opciones posibles para exportar a cualquier otro formato de salida, incluído JavaHelp, CHM, PDF, HTML (simple y multipágina), XML-FO y muchos más. Les enlazo una &lt;a href="http://lcaballero.wordpress.com/2007/07/12/creando-documentacion-tecnica-con-docbook/"&gt;introducción en castellano a DocBook&lt;/a&gt;, en la cual pueden encontrar el siguiente diagrama:&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/-R0IpVmStkno/TdcEKZh5pSI/AAAAAAAAAgY/_hfvLasVKG0/s1600/docbookxmlgrande.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 229px;" src="http://4.bp.blogspot.com/-R0IpVmStkno/TdcEKZh5pSI/AAAAAAAAAgY/_hfvLasVKG0/s400/docbookxmlgrande.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5608956437611521314" /&gt;&lt;/a&gt;&lt;br /&gt;DocBook es una especificación abierta, implementada y soportada por distintas herramientas. Hasta existen editores visuales para escribir documentos en este formato, por si no queremos aprender el lenguaje de marcado. Es muy conocido y utilizado en el entorno GNU/Linux.&lt;br /&gt;&lt;br /&gt;Pero para completar el círculo, el desarrollador en mi pedía automatizar el proceso. Investigando un poco más, busqué información hasta lograr armar el conjunto de herramientas adecuado. No hay mucha información al respecto, no al menos de forma completa. Terminé usando un script de ANT desde Eclipse 3.5 Galileo, con un archivo fuente XML en DocBook, y con el soporte de varias librerías, ya me permite generar toda la documentación completa tanto en JavaHelp como en HTML, y eventualmente en cualquier otro formato. Probablemente agregue PDF y tal vez CHM.&lt;br /&gt;&lt;br /&gt;El mejor y más completo tutorial que encontré es &lt;a href="http://www.ibm.com/developerworks/xml/library/os-eclipse-docbook/"&gt;"Build DocBook XML in Eclipse"&lt;/a&gt;. Hay que seguirlo al pie de la letra. Tiene un dato clave que es que la implementación Xalan/Xerces proporcionada por ANT en Eclipse no funciona debido a un bug, y debe ser reemplazarla por la última versión estable. Por supuesto, tuve ese problema :D. También fueron útiles en cierta medida los artículos &lt;a href="http://onjava.com/pub/a/onjava/2003/10/15/javahelp_docbook.html?page=2"&gt;"Creating an Online Help System with JavaHelp and DocBook"&lt;/a&gt; y &lt;a href="http://www.vogella.de/articles/DocBook/article.html"&gt;"DocBook with Eclipse - Tutorial"&lt;/a&gt;, que aportan algunos detalles más.&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: left;"&gt;Aunque se supone que generar archivos de ayuda y documentación debería ser una tarea bastante habitual para todos los programadores, la ausencia de buenos tutoriales y algunas herramientas actualizadas que faciliten la tarea demuestran que no es tan así. Al final termino confirmando esa sensación de que es un ítem bastante olvidado. Ojalá sirvan estas lineas para facilitar la implementación de esta funcionalidad tan importante, tantas veces descuidada.&lt;/div&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/-tGEfGdCNWB8/TdcEecsMrAI/AAAAAAAAAgg/kn0Kl0jlBuk/s1600/helpu.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 240px; height: 180px;" src="http://3.bp.blogspot.com/-tGEfGdCNWB8/TdcEecsMrAI/AAAAAAAAAgg/kn0Kl0jlBuk/s400/helpu.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5608956782057401346" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6125649492882325530-6203650381679644738?l=entrellaves.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/entrellaves/~4/rbOM1Xb2mb8" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://entrellaves.blogspot.com/feeds/6203650381679644738/comments/default" title="Enviar comentarios" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=6125649492882325530&amp;postID=6203650381679644738" title="2 comentarios" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/6125649492882325530/posts/default/6203650381679644738?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/6125649492882325530/posts/default/6203650381679644738?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/entrellaves/~3/rbOM1Xb2mb8/crear-documentacion-en-java-javahelp.html" title="Crear documentación en Java: JavaHelp, DocBook y Ant" /><author><name>Pablo Lillia</name><uri>https://profiles.google.com/104838123348555235492</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh5.googleusercontent.com/-aUx_T1rBsv4/AAAAAAAAAAI/AAAAAAAABKI/GHmr1vGALZ0/s512-c/photo.jpg" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://4.bp.blogspot.com/-R0IpVmStkno/TdcEKZh5pSI/AAAAAAAAAgY/_hfvLasVKG0/s72-c/docbookxmlgrande.png" height="72" width="72" /><thr:total>2</thr:total><feedburner:origLink>http://entrellaves.blogspot.com/2009/08/crear-documentacion-en-java-javahelp.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DUYCSXc4fSp7ImA9WhZWGU4.&quot;"><id>tag:blogger.com,1999:blog-6125649492882325530.post-7218740009729642759</id><published>2009-06-30T18:15:00.005-03:00</published><updated>2011-05-20T21:19:28.935-03:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-05-20T21:19:28.935-03:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="firefox" /><category scheme="http://www.blogger.com/atom/ns#" term="mozilla" /><title>Firefox 3.5</title><content type="html">&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/-aTyd1MKF4WA/TdcE6jIJY3I/AAAAAAAAAgo/oCpaOqjyj3M/s1600/logowordmarkversion300x.png"&gt;&lt;img style="float:right; margin:0 0 10px 10px;cursor:pointer; cursor:hand;width: 300px; height: 77px;" src="http://1.bp.blogspot.com/-aTyd1MKF4WA/TdcE6jIJY3I/AAAAAAAAAgo/oCpaOqjyj3M/s400/logowordmarkversion300x.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5608957264821576562" /&gt;&lt;/a&gt;&lt;a href="http://es-ar.www.mozilla.com/es-AR/"&gt;Firefox 3.5&lt;/a&gt; ya está entre nosotros, y es más rápido que nunca. Hasta 2 veces más rápido que la versión 3.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.mozilla.com/en-US/press/mozilla-2009-06-30.html"&gt;Entre las novedades más importantes&lt;/a&gt;, encontramos muchas nuevas características que nos llevará a los usuarios, diseñadores y programadores a una &lt;a href="http://unojoenelcielo.com.ar/2009/06/20/tiempos-felices-para-el-diseno-web/"&gt;nueva generación de la web&lt;/a&gt;. Por primera vez tenemos soporte nativo para audio y video abiertos, mejoras en la navegación privada, y el soporte de nuevas tecnologías Web que nos brindarán experiencias en línea más ricas e interactivas.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Performance&lt;/span&gt;: Firefox 3.5 incluye un nuevo y más poderoso motor de JavaScript, llamado TraceMonkey, que brinda la mejor performance con las aplicaciones Web más complejas de hoy día. Es dos veces más rápido que en Firefox 3, y diez veces más rápido que Firefox 2.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Audio y video abierto&lt;/span&gt;: al fin podemos disfrutar del contenido en audio y video dentro del navegador, &lt;span style="font-weight: bold;"&gt;sin la necesidad de ningún plugin&lt;/span&gt;. El video es una parte vital de la web actual, sea usado para comunicar, educar o entretener. Ahora cualquiera puede ver fácilmente videos en el formato abierto Ogg Theora.&lt;p&gt;Los desarrolladores web pueden usar estas tecnologías para diseñar páginas web que interactúen con el contenido en video en nuevas y exicitantes formas, ofreciendo experiencias interactivas más ricas y más allá del control de reproducción y volumen.&lt;/p&gt;&lt;span style="font-weight: bold;"&gt;Control de privacidad&lt;/span&gt;: se incluyen nuevas características diseñadas para proteger la privacidad en línea y para proveer mayor control sobre los datos personales.&lt;br /&gt;&lt;br /&gt;Al usar el nuevo modo de Navegación Privada en Firefox 3.5, nada de lo visitado en la web será almacenado durante la sesión de navegación.  Firefox 3.5 incluye la característica única "Olvidar este sitio", que elimina toda traza de un sitio en el navegador. Si se quiere eliminar todos los datos o actividad privada de las últimas horas, la opción "Limpiar historia reciente", brinda el control total de qué se guarda y qué se pierde, siendo otra característica única de Firefox 3.5.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Geoposicionamiento&lt;/span&gt;: nos ahorra tiempo al permitir a los sitios web consultar dónde nos encontramos en cada momento. Si se elige compartir la ubicación con un sitio web, este puede usarla para encontrar puntos cercanos de interés, y devolver adicionalmente, datos útiles como mapas en tu zona. Todo es opcional: Firefox no comparte tu ubicación sin tu permiso.&lt;br /&gt;&lt;br /&gt;Les dejo un &lt;a href="http://www.mozilla.com/en-US/firefox/video/firefox-3.5.html"&gt;video (en inglés) &lt;/a&gt;con la presentación de las nuevas características:&lt;br /&gt;&lt;br /&gt;&lt;object height="340" width="560"&gt;&lt;param name="movie" value="http://www.youtube.com/v/k5Zbc-Rg6e8&amp;amp;hl=es&amp;amp;fs=1&amp;amp;color1=0xe1600f&amp;amp;color2=0xfebd01"&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;param name="allowscriptaccess" value="always"&gt;&lt;embed src="http://www.youtube.com/v/k5Zbc-Rg6e8&amp;amp;hl=es&amp;amp;fs=1&amp;amp;color1=0xe1600f&amp;amp;color2=0xfebd01" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" height="340" width="560"&gt;&lt;/embed&gt;&lt;br /&gt;&lt;/object&gt;&lt;br /&gt;&lt;br /&gt;No dejes de visitar el sitio de la &lt;a href="http://www.mozilla-ar.org/"&gt;Comunidad de Mozilla Argentina&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6125649492882325530-7218740009729642759?l=entrellaves.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/entrellaves/~4/XQVKs8bv53A" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://entrellaves.blogspot.com/feeds/7218740009729642759/comments/default" title="Enviar comentarios" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=6125649492882325530&amp;postID=7218740009729642759" title="2 comentarios" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/6125649492882325530/posts/default/7218740009729642759?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/6125649492882325530/posts/default/7218740009729642759?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/entrellaves/~3/XQVKs8bv53A/firefox-3.html" title="Firefox 3.5" /><author><name>Pablo Lillia</name><uri>https://profiles.google.com/104838123348555235492</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh5.googleusercontent.com/-aUx_T1rBsv4/AAAAAAAAAAI/AAAAAAAABKI/GHmr1vGALZ0/s512-c/photo.jpg" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://1.bp.blogspot.com/-aTyd1MKF4WA/TdcE6jIJY3I/AAAAAAAAAgo/oCpaOqjyj3M/s72-c/logowordmarkversion300x.png" height="72" width="72" /><thr:total>2</thr:total><feedburner:origLink>http://entrellaves.blogspot.com/2009/06/firefox-3.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DUUNQ3w5cCp7ImA9WhZWGU4.&quot;"><id>tag:blogger.com,1999:blog-6125649492882325530.post-3642474663805428739</id><published>2009-06-09T19:52:00.004-03:00</published><updated>2011-05-20T21:21:32.228-03:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-05-20T21:21:32.228-03:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="html5" /><category scheme="http://www.blogger.com/atom/ns#" term="internet" /><category scheme="http://www.blogger.com/atom/ns#" term="mozilla" /><title>HTML 5: Canvas</title><content type="html">&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/-bret0kB7-NI/TdcFXE3sCoI/AAAAAAAAAgw/uXfX9-nCJlA/s1600/html5.png"&gt;&lt;img style="float:right; margin:0 0 10px 10px;cursor:pointer; cursor:hand;width: 84px; height: 93px;" src="http://2.bp.blogspot.com/-bret0kB7-NI/TdcFXE3sCoI/AAAAAAAAAgw/uXfX9-nCJlA/s400/html5.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5608957754915687042" /&gt;&lt;/a&gt;HTML5 es una nueva especificación de HTML, que ya está provocando una pequeña revolución, aunque que por el momento es solo un borrador.&lt;br /&gt;&lt;br /&gt;HTML5 hace énfasis en varios temas, ninguno revolucionario por si solo, o al menos no para todo el mundo, pero que en conjunto, una vez que se vuelva estándar, tal vez nos lleve a una nueva dimensión en la web.&lt;br /&gt;&lt;br /&gt;Uno de los temas que trae HTML5 es la etiqueta &lt;span style="font-style: italic; font-weight: bold;"&gt;canvas&lt;/span&gt;. Esta pequeña etiqueta, que representa a una superficide de dibujo, muy habitual en cualquier entorno gráfico, puede generar una pequeña revolución. Hasta hace poco, no existía ninguna forma estándar de realizar dibujos &lt;span style="font-weight: bold;"&gt;directamente&lt;/span&gt; en el navegador, que salvo por algunos ingeniosos y oscuros hacks en CSS para crear ciertas figuras geométricas, las alternativas eran muy pocas. En realidad, si había que generar gráficos en el navegador, nos encontrábamos con pocas opciones:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;usar Flash, el cual solo funciona si hay un plugin de flash instalado, y a pesar de ser una de las opciones más populares, el soporte en distintas plataformas y arquitecturas es muy variable. Incluso, es uno de los grandes dolores de cabeza para la estabilidad de los navegadores, siendo una de las principales causas de problemas y cuelgues de estos.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;usar Java, en particular las applets. Otra opción problemática, porque también requiere de un plugin en el navegador, el tiempo de arranque de los applets suele ser mayor que en flash, y sufre de los mismos inconvenientes.&lt;/li&gt;&lt;li&gt;crear el dibujo en el servidor, mostrando la imagen resultante en el navegador, y usar ajax o algún mecanismo similar para realizar algún tipo de actualización. Es la opción más universal, pero la más ineficiente, porque limita mucho las posibilidades, como las de animación.&lt;/li&gt;&lt;li&gt;y otras soluciones intermedias o combinaciones de las anteriores.&lt;/li&gt;&lt;/ul&gt;Canvas, provee una superficie de dibujo con varias primitivas gráficas. Hay quien lo compara con Postscript o OpenGL. La gracia de Canvas, es que puede programarse, animarse y modificarse usando solo JavaScript, el lenguaje universal que ya soportan todos los navegadores.&lt;br /&gt;&lt;br /&gt;¿Y &lt;a href="http://es.wikipedia.org/wiki/.svg"&gt;SVG&lt;/a&gt;? ¿No es lo mismo? No. &lt;a href="http://es.wikipedia.org/wiki/.svg"&gt;SVG&lt;/a&gt; nos provee gráficos vectoriales, que también son creados a partir de figuras básicas, de forma que ocupan poco lugar y pueden verse con la misma calidad sin importar cuánto ampliemos su tamaño. A pesar de su sencillez, mediante el uso de gradientes y canales alfa, también permite crear imágenes increíblemente realistas. Los Canvas, por otro lado, son como los viejos bitmaps: cuadrículas de pixels, con la capacidad de ser manipulados por JavaScript. Ambos están relacionados y se complementan, pero son diferentes.&lt;br /&gt;&lt;br /&gt;Podemos pensar en Canvas como el equivalente de los gráficos creados con &lt;a href="http://gimp.org/"&gt;Gimp&lt;/a&gt; o Photoshop. Y en SVG como el equivalente de los gráficos creados por Corel Draw o Illustrator, siendo &lt;a href="http://inkscape.org/"&gt;Inkscape&lt;/a&gt; el programa de software libre más destacado en la creación de estos gráficos.&lt;br /&gt;&lt;br /&gt;¿Pero falta mucho para poder empezar a usarlo? ¿Si apenas es un borrador, debe faltar mucho, no? Bueno, en realidad, ya está siendo implementado en todos los navegadores modernos, y en las últimas versiones, o en las próximas a salir, ya está incluído el soporte experimental de estas y otras características de HTML5. Como es el caso de Firefox, Safari, Chrome y Opera, salvo IE, que como siempre, viene atrasado y/o se desconoce sus planes a futuro. Afortunadamente, es tal el interés de pesos pesados en la industria, como Google, que ya se están haciendo plugins y extensiones para IE, para que en caso que MS decida no incluir estas nuevas características, se puedan utilizar igualmente.  No será lo mismo que un soporte nativo más eficiente, pero permitiría realizar sitios aprovechando el nuevo estándar, incluso si MS dejara rezagados a sus usuarios con IE.&lt;br /&gt;&lt;br /&gt;Para seguir leyendo sobre el tema:&lt;br /&gt;&lt;a href="http://veerasundar.com/blog/2009/06/html-5-canvas-element/"&gt;HTML 5 Canvas element&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.thecssninja.com/javascript/5-uses-canvas-tag"&gt;5 clever uses of the canvas tag&lt;/a&gt;&lt;br /&gt;&lt;a href="http://blog.nihilogic.dk/2008/04/javascript-wolfenstein-3d.html"&gt;Javascript Wolfenstein 3D&lt;/a&gt;&lt;br /&gt;&lt;a href="http://people.mozilla.com/%7Evladimir/xtech2006/"&gt;Una presentación de Mozilla Corp. que compara SVG y Canvas&lt;/a&gt;&lt;br /&gt;&lt;a href="http://overstimulate.com/projects/canvas"&gt;Algunos ejemplos&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.martinpulido.com/blog/diseno-web/cuando-podre-usar-selectores-css-3-canvas-svg-font-face/"&gt;Compatibilidad actual de los navegadores&lt;/a&gt;&lt;br /&gt;&lt;a href="https://developer.mozilla.org/en/Canvas_tutorial"&gt;Tutorial de Canvas en Mozilla&lt;/a&gt;&lt;br /&gt;&lt;a href="http://blog.nihilogic.dk/2009/02/html5-canvas-cheat-sheet.html"&gt;Una cheat-sheet para Canvas&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.whatwg.org/specs/web-apps/current-work/multipage/the-canvas-element.html"&gt;Lo que dice el borrador del estándar&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Entonces, ¿al fin podemos decir: ¡Chau Flash!? No, no, tranquilos. Flash tiene muchos usos. De hecho, una de las cosas que más popularizó el uso de Flash en la llamada &lt;span style="font-style: italic;"&gt;web 2.0&lt;/span&gt;, fue su capacidad de reproducir video, como nos demostró el éxito de &lt;a href="http://www.youtube.com/"&gt;Youtube&lt;/a&gt; y &lt;a href="http://vimeo.com/"&gt;Vimeo&lt;/a&gt;. Pero... &lt;span style="font-style: italic;"&gt;html5&lt;/span&gt; nos trae más sorpresitas: incorpora una etiqueta &lt;span style="font-weight: bold; font-style: italic;"&gt;video&lt;/span&gt; que permite reproducir video de forma nativa y estándar en el navegador, y ¡sin necesidad de ningún plugin extraño! Pero dejaremos eso y otras perlitas para otro artículo :)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6125649492882325530-3642474663805428739?l=entrellaves.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/entrellaves/~4/32xIRQqfoAY" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://entrellaves.blogspot.com/feeds/3642474663805428739/comments/default" title="Enviar comentarios" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=6125649492882325530&amp;postID=3642474663805428739" title="1 comentarios" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/6125649492882325530/posts/default/3642474663805428739?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/6125649492882325530/posts/default/3642474663805428739?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/entrellaves/~3/32xIRQqfoAY/html-5-canvas.html" title="HTML 5: Canvas" /><author><name>Pablo Lillia</name><uri>https://profiles.google.com/104838123348555235492</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh5.googleusercontent.com/-aUx_T1rBsv4/AAAAAAAAAAI/AAAAAAAABKI/GHmr1vGALZ0/s512-c/photo.jpg" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://2.bp.blogspot.com/-bret0kB7-NI/TdcFXE3sCoI/AAAAAAAAAgw/uXfX9-nCJlA/s72-c/html5.png" height="72" width="72" /><thr:total>1</thr:total><feedburner:origLink>http://entrellaves.blogspot.com/2009/06/html-5-canvas.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DU8DSHw8fCp7ImA9WhZWGU4.&quot;"><id>tag:blogger.com,1999:blog-6125649492882325530.post-8490390255080362229</id><published>2009-05-10T17:53:00.004-03:00</published><updated>2011-05-20T21:31:19.274-03:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-05-20T21:31:19.274-03:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="java" /><category scheme="http://www.blogger.com/atom/ns#" term="humor" /><title>Chuck Norris y Java</title><content type="html">Conocía los "&lt;a href="http://datacrap.com/2008/03/chuck-norris-facts.html"&gt;hechos de Chuck Norris&lt;/a&gt;", pero no sabía que también &lt;a href="http://www.ovisual.com/4/"&gt;programaba en Java&lt;/a&gt;.&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/-nTRyyfxu2PU/TdcHvNu_7fI/AAAAAAAAAg4/sX7lgCMsKsc/s1600/chuck_norris_approved2.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 300px; height: 250px;" src="http://1.bp.blogspot.com/-nTRyyfxu2PU/TdcHvNu_7fI/AAAAAAAAAg4/sX7lgCMsKsc/s400/chuck_norris_approved2.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5608960368635276786" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6125649492882325530-8490390255080362229?l=entrellaves.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/entrellaves/~4/LhFB30Gj-K4" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://entrellaves.blogspot.com/feeds/8490390255080362229/comments/default" title="Enviar comentarios" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=6125649492882325530&amp;postID=8490390255080362229" title="0 comentarios" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/6125649492882325530/posts/default/8490390255080362229?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/6125649492882325530/posts/default/8490390255080362229?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/entrellaves/~3/LhFB30Gj-K4/chuck-norris-y-java.html" title="Chuck Norris y Java" /><author><name>Pablo Lillia</name><uri>https://profiles.google.com/104838123348555235492</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh5.googleusercontent.com/-aUx_T1rBsv4/AAAAAAAAAAI/AAAAAAAABKI/GHmr1vGALZ0/s512-c/photo.jpg" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://1.bp.blogspot.com/-nTRyyfxu2PU/TdcHvNu_7fI/AAAAAAAAAg4/sX7lgCMsKsc/s72-c/chuck_norris_approved2.jpg" height="72" width="72" /><thr:total>0</thr:total><feedburner:origLink>http://entrellaves.blogspot.com/2009/05/chuck-norris-y-java.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DEYDR3Y_fip7ImA9WhZWGU4.&quot;"><id>tag:blogger.com,1999:blog-6125649492882325530.post-2384192985638217417</id><published>2009-04-26T19:35:00.004-03:00</published><updated>2011-05-20T21:02:56.846-03:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-05-20T21:02:56.846-03:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="ubuntu" /><title>Ubuntu 9.04 ya está aquí</title><content type="html">Hace un par de días que tenemos a &lt;strong&gt;Ubuntu 9.04&lt;/strong&gt; entre nosotros, apodado &lt;strong&gt;Jaunty Jackalope&lt;/strong&gt;.&lt;br /&gt;&lt;br /&gt;Para no repetir lo que ya se puede encontrar por todos lados, les dejo algunos enlaces: un &lt;a href="http://www.facilware.com/?p=3274"&gt;video español&lt;/a&gt; donde se explica toda la instalación; y un &lt;a href="http://www.facilware.com/?p=3274"&gt;breve resumen&lt;/a&gt; de las características más notables. También tienen esta &lt;a href="http://ubuntronics.blogspot.com/2009/04/instalacion-de-ubuntu-904-jaunty.html"&gt;explicación paso a paso de la instalación&lt;/a&gt;, realizada por un ubuntero santafesino.&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/-RU1SRD2i2BE/TdcATurIkTI/AAAAAAAAAfo/RLZrr_MJ56o/s1600/ubuntunetbookremix.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 300px; height: 225px;" src="http://4.bp.blogspot.com/-RU1SRD2i2BE/TdcATurIkTI/AAAAAAAAAfo/RLZrr_MJ56o/s400/ubuntunetbookremix.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5608952199859704114" /&gt;&lt;/a&gt;&lt;br /&gt;Después pueden darse una vuelta por el &lt;a href="http://ubuntu-ar.org/planet/"&gt;Planeta de Ubuntu Argentina&lt;/a&gt;, para encontrar las últimas noticias y artículos de la comunidad local.&lt;br /&gt;&lt;br /&gt;Otra de las novedades, es que salió el &lt;a href="http://www.ubuntu.com/getubuntu/download-netbook"&gt;Ubuntu Netbook Remix 9.04&lt;/a&gt;, que es una nueva edición orientada a las pequeñas &lt;span style="font-style: italic;"&gt;netbooks&lt;/span&gt;, que han sido furor en el último tiempo. En algún momento la probaré con mi pequeña Asus EeePC 701, si es que está soportada, donde hoy uso Ubuntu 8.04 LTS.&lt;br /&gt;&lt;br /&gt;En &lt;a href="http://tuxradar.com/"&gt;tuxradar.com&lt;/a&gt; (&lt;span style="font-style: italic;"&gt;english&lt;/span&gt;) han realizado un interesante &lt;a href="http://www.tuxradar.com/content/road-jaunty-look-back-ubuntus-history"&gt;repaso de la historia de Ubuntu&lt;/a&gt;, esta joven pero vibrante distribución basada en la fantástica Debian Linux.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Importante&lt;/span&gt;: en 9.04 han desactivado la combinación de teclas &amp;lt;ctrl&amp;gt;+&amp;lt;alt&amp;gt;+&amp;lt;bcksp&amp;gt;, que reiniciaba el escritorio (al servidor de ventanas X) por la fuerza, si era necesario. Calculo que por seguridad, ganar estabilidad, y ser una característica poco usada, han decidido desactivarlo. Sin embargo, puede reactivarse fácilmente si se desea. También, algunos han descubierto que a veces no se instala (o no funciona) el applet que nos notificaba de las actualizaciones pendientes. Esto último es más importante, y por el momento puede solucionarse como indica &lt;a href="http://clinuxera.org/gulp/?p=1173"&gt;este artículo&lt;/a&gt;:&lt;br /&gt;&lt;blockquote&gt;&lt;br /&gt;Para las actualizaciones, debemos poner en la terminal lo siguiente:&lt;br /&gt;&lt;code class="language-sh"&gt;&lt;br /&gt;$ gconftool -s --type bool /apps/update-notifier/auto_launch false&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;y para activar control+alt+backspace ponemos:&lt;br /&gt;&lt;code class="language-sh"&gt;&lt;br /&gt;$ sudo aptitude install dontzap&lt;br /&gt;$ sudo dontzap -disable&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;/blockquote&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6125649492882325530-2384192985638217417?l=entrellaves.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/entrellaves/~4/P9kPeFBkGFM" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://entrellaves.blogspot.com/feeds/2384192985638217417/comments/default" title="Enviar comentarios" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=6125649492882325530&amp;postID=2384192985638217417" title="2 comentarios" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/6125649492882325530/posts/default/2384192985638217417?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/6125649492882325530/posts/default/2384192985638217417?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/entrellaves/~3/P9kPeFBkGFM/ubuntu-904-ya-esta-aqui.html" title="Ubuntu 9.04 ya está aquí" /><author><name>Pablo Lillia</name><uri>https://profiles.google.com/104838123348555235492</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh5.googleusercontent.com/-aUx_T1rBsv4/AAAAAAAAAAI/AAAAAAAABKI/GHmr1vGALZ0/s512-c/photo.jpg" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://4.bp.blogspot.com/-RU1SRD2i2BE/TdcATurIkTI/AAAAAAAAAfo/RLZrr_MJ56o/s72-c/ubuntunetbookremix.jpg" height="72" width="72" /><thr:total>2</thr:total><feedburner:origLink>http://entrellaves.blogspot.com/2009/04/ubuntu-904-ya-esta-aqui.html</feedburner:origLink></entry><entry gd:etag="W/&quot;A0QCSHk-fSp7ImA9WxJTE0g.&quot;"><id>tag:blogger.com,1999:blog-6125649492882325530.post-8576318294091467585</id><published>2009-04-21T20:51:00.004-03:00</published><updated>2009-04-21T21:16:09.755-03:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-04-21T21:16:09.755-03:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="css" /><title>20 útiles sugerencias para CSS</title><content type="html">Vía &lt;a href="http://dzone.com/"&gt;DZone&lt;/a&gt;, me llegan &lt;a href="http://www.hongkiat.com/blog/20-useful-css-tips-for-beginners/"&gt;20 Useful CSS Tips For Beginners&lt;/a&gt;.&lt;br /&gt;Trata varios temas, y es una excelente colección de buenas recomendaciones.&lt;br /&gt;&lt;br /&gt;Yapa: trucos varios para llevar &lt;a href="http://www.smashingmagazine.com/2009/04/20/5-simple-tricks-to-bring-light-and-shadow-into-your-designs/"&gt;luces y sombras a los diseños web&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6125649492882325530-8576318294091467585?l=entrellaves.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/entrellaves/~4/r2cuSC0Jeqw" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://entrellaves.blogspot.com/feeds/8576318294091467585/comments/default" title="Enviar comentarios" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=6125649492882325530&amp;postID=8576318294091467585" title="0 comentarios" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/6125649492882325530/posts/default/8576318294091467585?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/6125649492882325530/posts/default/8576318294091467585?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/entrellaves/~3/r2cuSC0Jeqw/20-utiles-sugerencias-para-css.html" title="20 útiles sugerencias para CSS" /><author><name>Pablo Lillia</name><uri>https://profiles.google.com/104838123348555235492</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh5.googleusercontent.com/-aUx_T1rBsv4/AAAAAAAAAAI/AAAAAAAABKI/GHmr1vGALZ0/s512-c/photo.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://entrellaves.blogspot.com/2009/04/20-utiles-sugerencias-para-css.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DEQESHc4eCp7ImA9WhZWGU4.&quot;"><id>tag:blogger.com,1999:blog-6125649492882325530.post-6620364674394736605</id><published>2009-04-18T20:47:00.004-03:00</published><updated>2011-05-20T21:05:09.930-03:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-05-20T21:05:09.930-03:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="java" /><category scheme="http://www.blogger.com/atom/ns#" term="lwuit" /><category scheme="http://www.blogger.com/atom/ns#" term="javaME" /><title>LWUIT y los acentos</title><content type="html">Me puse a investigar porqué no aparecían los acentos en los formularios de LWUIT. Buscando un poco, vi que recomendaban reconstruir la fuente incluída en los recursos. Haciendo un poco de prueba y error, encontré la solución al tema:&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/-VxET4DUnQcA/TdcBlL1unPI/AAAAAAAAAfw/YzhIFr6nX58/s1600/lwuitreseditor.png"&gt;&lt;img style="float:right; margin:0 0 10px 10px;cursor:pointer; cursor:hand;width: 300px; height: 200px;" src="http://4.bp.blogspot.com/-VxET4DUnQcA/TdcBlL1unPI/AAAAAAAAAfw/YzhIFr6nX58/s400/lwuitreseditor.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5608953599258172658" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;ol&gt;&lt;li&gt;Asegurarse que el proyecto esté en UTF-8. Bien porque el entorno usa ese &lt;span style="font-style: italic;"&gt;encoding&lt;/span&gt; por defecto (&lt;span style="font-style: italic;"&gt;preferences, general, workspace, text file encoding&lt;/span&gt;), o bien porque así lo indicamos para nuestro proyecto (&lt;span style="font-style: italic;"&gt;project properties, resource, text file encoding&lt;/span&gt;).&lt;/li&gt;&lt;li&gt;Escribir los acentos en las cadenas normalmente, ya con la seguridad de que están siendo guardados en utf-8.&lt;/li&gt;&lt;li&gt;Usando el Editor de Recursos de LWUIT, abrimos nuestro archivo de recursos, que contiene el/los tema/s, las imágenes, las fuentes y otros elementos localizables. Ir a la sección de fuentes, y revisar los caracteres incluídos en la sección &lt;span style="font-style: italic;"&gt;charset&lt;/span&gt;. Si faltan caracteres, se pueden agregar haciendo clic en el botón "Rebuild Font". Habrá que seleccionar una fuente apropiada, revisar su tamaño y estilo, y agregar &lt;span style="font-weight: bold;"&gt;todos&lt;/span&gt; los caracteres que necesitemos en la lista disponible en la sección &lt;span style="font-style: italic;"&gt;charset&lt;/span&gt;.&lt;br /&gt;&lt;/li&gt;&lt;/ol&gt;Recordemos que en el archivo de recursos, las fuentes son convertidas a una imagen &lt;span style="font-style: italic;"&gt;bitmap&lt;/span&gt;. Gracias a esto podemos disponer de cualquier tipografía en todos los celulares, y asegurarnos de que se vea igual en todos lados. Además, como una optimización importante para ahorrar el limitado espacio disponible, solo se generan los caracteres que necesitamos. Por defecto, solo encontraremos los caracteres del idioma inglés, faltando las vocales acentuadas, la ñ y la ü. También nos sirve para agregar cualquier otro carácter utilizado.&lt;br /&gt;&lt;br /&gt;Una sugerencia: me parece que el editor no recuerda la lista de caracteres al volver a editar una fuente previa. Si es así, sería buena idea guardarla en algún lado, o mejor todavía, modificar al Editor de Recursos para que la cargue desde algún lado, como un archivo properties. No estoy seguro de esto, y ya lo verificaré más adelante.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6125649492882325530-6620364674394736605?l=entrellaves.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/entrellaves/~4/N3j-MXKpUfI" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://entrellaves.blogspot.com/feeds/6620364674394736605/comments/default" title="Enviar comentarios" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=6125649492882325530&amp;postID=6620364674394736605" title="2 comentarios" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/6125649492882325530/posts/default/6620364674394736605?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/6125649492882325530/posts/default/6620364674394736605?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/entrellaves/~3/N3j-MXKpUfI/lwuit-y-los-acentos.html" title="LWUIT y los acentos" /><author><name>Pablo Lillia</name><uri>https://profiles.google.com/104838123348555235492</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh5.googleusercontent.com/-aUx_T1rBsv4/AAAAAAAAAAI/AAAAAAAABKI/GHmr1vGALZ0/s512-c/photo.jpg" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://4.bp.blogspot.com/-VxET4DUnQcA/TdcBlL1unPI/AAAAAAAAAfw/YzhIFr6nX58/s72-c/lwuitreseditor.png" height="72" width="72" /><thr:total>2</thr:total><feedburner:origLink>http://entrellaves.blogspot.com/2009/04/lwuit-y-los-acentos.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DEMEQXY9eCp7ImA9WhZWGU4.&quot;"><id>tag:blogger.com,1999:blog-6125649492882325530.post-5335497240072972391</id><published>2009-04-07T23:15:00.002-03:00</published><updated>2011-05-20T21:06:40.860-03:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-05-20T21:06:40.860-03:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="java" /><category scheme="http://www.blogger.com/atom/ns#" term="eclipse" /><category scheme="http://www.blogger.com/atom/ns#" term="osgi" /><title>OSGi</title><content type="html">Usando &lt;a href="http://www.eclipse.org/"&gt;Eclipse&lt;/a&gt;, es normal encontrar alguna mención a &lt;a href="http://en.wikipedia.org/wiki/OSGi"&gt;OSGi&lt;/a&gt;, como cuando se hacen actualizaciones o se instalan &lt;span style="font-style: italic;"&gt;plugins&lt;/span&gt;. ¿Pero qué es eso?&lt;br /&gt;&lt;br /&gt;OSGi es una tecnología que permite agregar funcionalidades dentro de una aplicación. Estos agregados pueden ser desarrollados de forma independiente al entorno de la aplicación. Los componentes más importantes de la tecnología OSGi son el contenedor OSGi y los &lt;span style="font-style: italic;"&gt;bundles&lt;/span&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/-2P8Tvgn6w8Q/TdcB8jj-xsI/AAAAAAAAAf4/g49CwRP8FKw/s1600/osgicapas.png"&gt;&lt;img style="float:right; margin:0 0 10px 10px;cursor:pointer; cursor:hand;width: 400px; height: 265px;" src="http://2.bp.blogspot.com/-2P8Tvgn6w8Q/TdcB8jj-xsI/AAAAAAAAAf4/g49CwRP8FKw/s400/osgicapas.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5608954000763176642" /&gt;&lt;/a&gt;&lt;br /&gt;(paquetes) que pueden ser desplegados dentro de dicho contenedor.&lt;br /&gt;&lt;br /&gt;Es parte fundamental del sistema de &lt;span style="font-style: italic;"&gt;plugins&lt;/span&gt; de Eclipse, como de otras aplicaciones que usan la misma tecnología. También podemos utilizarlo en nuestras propias aplicaciones, como sistema de agregados y actualizaciones.&lt;br /&gt;&lt;br /&gt;La &lt;a href="http://www.osgi.org/"&gt;Alianza OSGi&lt;/a&gt; es un consorcio sin fines de lucro, formado por muchas compañías líderes, como IBM, Motorola, Nokia, Telefónica o Red Hat, con el fin de definir sus estándares y promoverla.&lt;br /&gt;&lt;br /&gt;En la &lt;a href="http://en.wikipedia.org/wiki/OSGi"&gt;Wikipedia en inglés&lt;/a&gt; podemos encontrar más detalles sobre el tema. &lt;a href="http://www.yamanyar.com/2009/04/what-is-osgi-dynamic-module-system-for.html"&gt;What is OSGi? – The Dynamic Module System for Java&lt;/a&gt; es una introducción interesante, con enlaces a algunos ejemplos.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6125649492882325530-5335497240072972391?l=entrellaves.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/entrellaves/~4/JIkdE7S9Kgg" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://entrellaves.blogspot.com/feeds/5335497240072972391/comments/default" title="Enviar comentarios" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=6125649492882325530&amp;postID=5335497240072972391" title="0 comentarios" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/6125649492882325530/posts/default/5335497240072972391?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/6125649492882325530/posts/default/5335497240072972391?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/entrellaves/~3/JIkdE7S9Kgg/osgi.html" title="OSGi" /><author><name>Pablo Lillia</name><uri>https://profiles.google.com/104838123348555235492</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh5.googleusercontent.com/-aUx_T1rBsv4/AAAAAAAAAAI/AAAAAAAABKI/GHmr1vGALZ0/s512-c/photo.jpg" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://2.bp.blogspot.com/-2P8Tvgn6w8Q/TdcB8jj-xsI/AAAAAAAAAf4/g49CwRP8FKw/s72-c/osgicapas.png" height="72" width="72" /><thr:total>0</thr:total><feedburner:origLink>http://entrellaves.blogspot.com/2009/04/osgi.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DEMMQX08fyp7ImA9WhZWGU4.&quot;"><id>tag:blogger.com,1999:blog-6125649492882325530.post-5049999383057527974</id><published>2009-04-07T19:08:00.005-03:00</published><updated>2011-05-20T21:08:00.377-03:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-05-20T21:08:00.377-03:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="java" /><category scheme="http://www.blogger.com/atom/ns#" term="portlets" /><category scheme="http://www.blogger.com/atom/ns#" term="portal" /><title>Portales y Portlets</title><content type="html">&lt;a href="http://www.yamanyar.com/2009/04/difference-between-portal-portlet-and.html"&gt;Estaba leyendo un artículo&lt;/a&gt; que resume las diferencias entre &lt;span style="font-style: italic;"&gt;Portal&lt;/span&gt;, &lt;span style="font-style: italic;"&gt;Portlet&lt;/span&gt; y &lt;span style="font-style: italic;"&gt;Contenedor de Portlet&lt;/span&gt;, y me gustó el siguiente resumen:&lt;br /&gt;&lt;br /&gt;&lt;em&gt;Los Portlets son componentes web, como los servlets, diseñados específicamente para ser agregados en el contexto de una página compuesta. Generalmente, son invocados muchos Portlets en un único pedido de una página al Portal. Cada Portlet produce un fragmento de la salida, que es combinado con la salida de otros Porlets, todo junto con la salida de una página del Portal.&lt;/em&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/-i30-aFL623w/TdcCONE91RI/AAAAAAAAAgA/Rb6XXAemkvU/s1600/portlets2.png"&gt;&lt;img style="float:right; margin:0 0 10px 10px;cursor:pointer; cursor:hand;width: 250px; height: 317px;" src="http://3.bp.blogspot.com/-i30-aFL623w/TdcCONE91RI/AAAAAAAAAgA/Rb6XXAemkvU/s400/portlets2.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5608954303965156626" /&gt;&lt;/a&gt;&lt;br /&gt;Los Portlets son mini-aplicaciones, que proveen algún contenido que formará parte de las páginas del portal. Los Portlets son manejados por un Contenedor de Portlets.&lt;br /&gt;&lt;br /&gt;Un Contenedor de Portlets:&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://img25.imageshack.us/img25/2011/portlets2.png"&gt;&lt;/a&gt;&lt;ul&gt;&lt;li&gt;ejecuta (corre) portlets,&lt;/li&gt;&lt;li&gt;maneja el ciclo de vida de los portlets,&lt;/li&gt;&lt;li&gt;y les provee un entorno de ejecución.&lt;/li&gt;&lt;/ul&gt;Para correr y probar un Contenedor de Portlets necesitamos un conductor: un Portal.&lt;br /&gt;&lt;br /&gt;Los pedidos de los usuarios son recibidos por el portal, y luego son direccionados a un contenedor de portlets, para ser ejecutados en los portlets.  El portal, no el contenedor de portlets, es el responsable de unir todo el contenido producido por los portlets, y de presentarlo a los clientes.  Entonces un portal es una aplicación web, que puede ser desplegada en un contenedor web como Apache Tomcat, el cual junta el contenido de los distintos portlets, mientras la comunicación entre el portal y los portlets es llevada a cabo por los contenedores de portlets.&lt;br /&gt;&lt;br /&gt;No es un tema muy nuevo, así que hay muchos artículos y documentación, incluso se puede encontrar algunos &lt;a href="http://www.alzado.org/articulo.php?id_art=249"&gt;analizaban sus ventajas y desventajas&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6125649492882325530-5049999383057527974?l=entrellaves.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/entrellaves/~4/eb7IYNAaTyI" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://entrellaves.blogspot.com/feeds/5049999383057527974/comments/default" title="Enviar comentarios" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=6125649492882325530&amp;postID=5049999383057527974" title="0 comentarios" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/6125649492882325530/posts/default/5049999383057527974?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/6125649492882325530/posts/default/5049999383057527974?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/entrellaves/~3/eb7IYNAaTyI/portales-y-portlets.html" title="Portales y Portlets" /><author><name>Pablo Lillia</name><uri>https://profiles.google.com/104838123348555235492</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh5.googleusercontent.com/-aUx_T1rBsv4/AAAAAAAAAAI/AAAAAAAABKI/GHmr1vGALZ0/s512-c/photo.jpg" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://3.bp.blogspot.com/-i30-aFL623w/TdcCONE91RI/AAAAAAAAAgA/Rb6XXAemkvU/s72-c/portlets2.png" height="72" width="72" /><thr:total>0</thr:total><feedburner:origLink>http://entrellaves.blogspot.com/2009/04/portales-y-portlets.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CEYBSXg5fyp7ImA9WxVaEEo.&quot;"><id>tag:blogger.com,1999:blog-6125649492882325530.post-3512289077672170713</id><published>2009-04-06T23:22:00.003-03:00</published><updated>2009-04-06T23:42:38.627-03:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-04-06T23:42:38.627-03:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="diseño" /><category scheme="http://www.blogger.com/atom/ns#" term="flash" /><title>Diseño</title><content type="html">Buscando sitios con buenos diseños, como para inspirarme un poquito :D, encontré un lugar imprescindible. Es "&lt;a href="http://www.thebestdesigns.com/"&gt;The Best Designs&lt;/a&gt;". &lt;br /&gt;&lt;br /&gt;CUIDADO: Es un sitio peligroso. Se pueden perder fácilmente un par de horas visitando los interminables ejemplos que hay allí, y es fácil encontrar verdaderas joyas.&lt;br /&gt;&lt;br /&gt;Rescato algunos sitios, que ni siquiera son los mejores, solo son algunos que rescato por algún motivo:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.ecodazoo.com/"&gt;THE ECO ZOO&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.vermeersch.ca/"&gt;VERMEERSCH&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.nokia.com/nonstopliving"&gt;Nokia Nonstop Living&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.meomi.com/"&gt;meomi cloud house&lt;/a&gt;&lt;br /&gt;&lt;a href="http://safe.mercedes-benz.co.uk"&gt;Mercedes-Benz Pro-Safe&lt;/a&gt;&lt;br /&gt;&lt;a href="http://zandarthegreat.com/zandar/"&gt;Zandar the Great&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Recomiendo con creces visitarlos, para acordarnos de que la web puede no ser aburrida, y que todavía hay ideas frescas.&lt;br /&gt;&lt;br /&gt;Hay que tener paciencia con algunos de estos sitios, porque pueden tardar en cargar. La mayoría están hechos en Flash, y si bien no soy un devoto de esta tecnología (por el contrario), no se puede discutir que a veces permite hacer algunas cosas llamativas.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6125649492882325530-3512289077672170713?l=entrellaves.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/entrellaves/~4/--nF3aYV9N4" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://entrellaves.blogspot.com/feeds/3512289077672170713/comments/default" title="Enviar comentarios" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=6125649492882325530&amp;postID=3512289077672170713" title="0 comentarios" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/6125649492882325530/posts/default/3512289077672170713?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/6125649492882325530/posts/default/3512289077672170713?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/entrellaves/~3/--nF3aYV9N4/diseno.html" title="Diseño" /><author><name>Pablo Lillia</name><uri>https://profiles.google.com/104838123348555235492</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh5.googleusercontent.com/-aUx_T1rBsv4/AAAAAAAAAAI/AAAAAAAABKI/GHmr1vGALZ0/s512-c/photo.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://entrellaves.blogspot.com/2009/04/diseno.html</feedburner:origLink></entry><entry gd:etag="W/&quot;D0IGR346eip7ImA9WhZWGU4.&quot;"><id>tag:blogger.com,1999:blog-6125649492882325530.post-3378054246499337495</id><published>2009-03-29T21:53:00.007-03:00</published><updated>2011-05-20T20:52:06.012-03:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-05-20T20:52:06.012-03:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="noticias" /><title>KERS: freno regenerativo en la F1</title><content type="html">&lt;div style="text-align: left;"&gt;Si alguna vez jugaste al NFS o a cualquier simulador o arcade de coches, seguro sabés lo que es el botón nitro o turbo. Es un botón que al pulsarlo, ofrece un extra momentáneo de velocidad, un &lt;span style="font-style: italic;"&gt;punch&lt;/span&gt;, que bien aprovechado puede ser la diferencia entre pasar a otro coche o que seas superado. En algunos casos, se puede usar de forma limitada. Y a veces, se recarga automáticamente cada cierto tiempo.&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;En la realidad, podemos encontrar sistemas como el nitro, que gracias a una garrafa de óxido nitroso, enriquecen la mezcla momentáneamente para lograr una mayor potencia. Por supuesto, el sistema sirve hasta que se vacía la garrafa.&lt;br /&gt;&lt;br /&gt;Otro sistema interesante, es el &lt;a href="http://es.wikipedia.org/wiki/Freno_regenerativo"&gt;freno regenerativo&lt;/a&gt;. Este se trata de recuperar la energía que se pierde durante el frenado, guardándola de alguna forma, para poder aprovecharla posteriormente. Son sistemas que podemos encontrar en coches eléctricos y de pilas de combustible, y en todo tipo de coches muy eficientes con el consumo de combustible, como un forma de aprovechar toda la energía disponible al máximo.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/-btUjj3zjnBg/Tdb-PuBNNuI/AAAAAAAAAfI/6a6zPkQcRL8/s1600/Xtrac_KERS_F1.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 350px; height: 283px;" src="http://4.bp.blogspot.com/-btUjj3zjnBg/Tdb-PuBNNuI/AAAAAAAAAfI/6a6zPkQcRL8/s400/Xtrac_KERS_F1.jpg" alt="" id="BLOGGER_PHOTO_ID_5608949931941115618" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;La novedad, es que hoy debutó en la F1 un &lt;a href="http://es.wikipedia.org/wiki/Freno_regenerativo"&gt;sistema de freno regenerativo &lt;/a&gt;llamado &lt;a href="http://www.formula1.com/news/features/2009/1/8887.html"&gt;KERS&lt;/a&gt;. &lt;a href="http://www.racingpasion.com/2008/04/24-el-sistema-de-recuperacion-de-energia-cinetica-kers"&gt;Este sistema&lt;/a&gt; guarda en baterías la energía que se desperdiciaría durante el frenado, para poder usarse una vez por vuelta, para obtener un &lt;span style="font-style: italic;"&gt;punch&lt;/span&gt; de 80 CV durante 6 u 8 segundos, útiles para sobrepasar a otro coche o realizar alguna maniobra. Por el momento, los equipos y pilotos no han encontrado una gran ventaja al usar el sistema, pero sin dudas la encontrarán en la medida que el sistema mejore. Hay que notar que el sistema es totalmente ecológico, porque recupera y ahorra energía que sería desperdiciada de otro modo.&lt;br /&gt;&lt;br /&gt;Lo más importante es que con la incorporación de este sistema en la F1, se acelerará muchísimo el avance en esta área, y no sería extraño que en muy pocos años se incorpore definitivamente a todos los coches de serie. Ni hablar de las mejoras que se podrían producir en mejorar para las baterías y otros elementos. Veremos qué nos depara el futuro próximo, con esta movida tan interesante.&lt;br /&gt;&lt;br /&gt;Más info:&lt;br /&gt;&lt;a href="http://motorandmore.blogspot.com/2009/02/el-ano-del-kers.html"&gt;El año del KERS&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.racingpasion.com/2008/04/24-el-sistema-de-recuperacion-de-energia-cinetica-kers"&gt;El Sistema de Recuperación&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.territoriof1.com/20080118-ques-es-y-como-funciona-el-kers/"&gt;Qué es y cómo funciona el KERS&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.marca.com/2009/03/29/motor/formula1/1238314370.html"&gt;Alonso: "No había mucha diferencia"&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6125649492882325530-3378054246499337495?l=entrellaves.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/entrellaves/~4/CJ-xhBaPj_k" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://entrellaves.blogspot.com/feeds/3378054246499337495/comments/default" title="Enviar comentarios" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=6125649492882325530&amp;postID=3378054246499337495" title="0 comentarios" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/6125649492882325530/posts/default/3378054246499337495?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/6125649492882325530/posts/default/3378054246499337495?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/entrellaves/~3/CJ-xhBaPj_k/kers-freno-regenerativo-en-la-f1.html" title="KERS: freno regenerativo en la F1" /><author><name>Pablo Lillia</name><uri>https://profiles.google.com/104838123348555235492</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh5.googleusercontent.com/-aUx_T1rBsv4/AAAAAAAAAAI/AAAAAAAABKI/GHmr1vGALZ0/s512-c/photo.jpg" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://4.bp.blogspot.com/-btUjj3zjnBg/Tdb-PuBNNuI/AAAAAAAAAfI/6a6zPkQcRL8/s72-c/Xtrac_KERS_F1.jpg" height="72" width="72" /><thr:total>0</thr:total><feedburner:origLink>http://entrellaves.blogspot.com/2009/03/kers-freno-regenerativo-en-la-f1.html</feedburner:origLink></entry><entry gd:etag="W/&quot;D0ENRn4-fip7ImA9WhZWGU4.&quot;"><id>tag:blogger.com,1999:blog-6125649492882325530.post-5475557007239361154</id><published>2009-03-29T11:48:00.003-03:00</published><updated>2011-05-20T20:54:57.056-03:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-05-20T20:54:57.056-03:00</app:edited><title>Rediseño del blog</title><content type="html">&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/-50BhkwDXcTs/Tdb_P9yvfHI/AAAAAAAAAfQ/pHUDykxVu5s/s1600/wilber.png"&gt;&lt;img style="float:right; margin:0 0 10px 10px;cursor:pointer; cursor:hand;width: 64px; height: 64px;" src="http://3.bp.blogspot.com/-50BhkwDXcTs/Tdb_P9yvfHI/AAAAAAAAAfQ/pHUDykxVu5s/s400/wilber.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5608951035687042162" /&gt;&lt;/a&gt;&lt;div style="text-align: left;"&gt;Aburrido del diseño original de este sitio, finalmente me puse a realizar uno propio. O más bien a adaptarlo a lo que quería.&lt;/div&gt;Armado con la incalculable ayuda de &lt;a href="http://www.gimp.org/"&gt;El GIMP&lt;/a&gt;, y de la fantástica extensión &lt;a href="http://getfirebug.com/"&gt;Firebug&lt;/a&gt; para &lt;a href="http://www.mozilla.org/"&gt;Firefox&lt;/a&gt;, comencé por tratar de entender el &lt;span style="font-style: italic;"&gt;layout &lt;/span&gt;del &lt;span style="font-style: italic;"&gt;blog &lt;/span&gt;y sus elementos, para ir llevándolo a la idea que tenía.&lt;br /&gt;Fueron muy útiles los &lt;a href="http://www.bloggerbuster.com/2008/01/essential-tools-for-blogger-template.html"&gt;consejos que encontré en Blogger Buster&lt;/a&gt;. Especialmente es una buena idea probar los cambios en otro &lt;span style="font-style: italic;"&gt;blog&lt;/span&gt; de pruebas, antes de aplicarlos en el sitio real.&lt;br /&gt;Probablemente terminé en algo parecido a otros miles de sitios que andan por ahí, pero al menos es mi propio diseño :)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6125649492882325530-5475557007239361154?l=entrellaves.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/entrellaves/~4/LpgVn9GDYEo" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://entrellaves.blogspot.com/feeds/5475557007239361154/comments/default" title="Enviar comentarios" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=6125649492882325530&amp;postID=5475557007239361154" title="1 comentarios" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/6125649492882325530/posts/default/5475557007239361154?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/6125649492882325530/posts/default/5475557007239361154?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/entrellaves/~3/LpgVn9GDYEo/rediseno-del-blog.html" title="Rediseño del blog" /><author><name>Pablo Lillia</name><uri>https://profiles.google.com/104838123348555235492</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh5.googleusercontent.com/-aUx_T1rBsv4/AAAAAAAAAAI/AAAAAAAABKI/GHmr1vGALZ0/s512-c/photo.jpg" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://3.bp.blogspot.com/-50BhkwDXcTs/Tdb_P9yvfHI/AAAAAAAAAfQ/pHUDykxVu5s/s72-c/wilber.png" height="72" width="72" /><thr:total>1</thr:total><feedburner:origLink>http://entrellaves.blogspot.com/2009/03/rediseno-del-blog.html</feedburner:origLink></entry><entry gd:etag="W/&quot;D0AAQnsyeyp7ImA9WhZWGU4.&quot;"><id>tag:blogger.com,1999:blog-6125649492882325530.post-1382276441194387646</id><published>2009-03-24T11:30:00.005-03:00</published><updated>2011-05-20T20:55:43.593-03:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-05-20T20:55:43.593-03:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="eclipse" /><category scheme="http://www.blogger.com/atom/ns#" term="netbeans" /><category scheme="http://www.blogger.com/atom/ns#" term="javaME" /><title>IDE en acción</title><content type="html">&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/-0PoJkrhnKKQ/Tdb_b9uDp7I/AAAAAAAAAfY/y-IdtEIwqbg/s1600/eclipseir5.jpg"&gt;&lt;img style="float:right; margin:0 0 10px 10px;cursor:pointer; cursor:hand;width: 80px; height: 80px;" src="http://3.bp.blogspot.com/-0PoJkrhnKKQ/Tdb_b9uDp7I/AAAAAAAAAfY/y-IdtEIwqbg/s400/eclipseir5.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5608951241825822642" /&gt;&lt;/a&gt;&lt;a href="http://live.eclipse.org/node/614"&gt;Encontré un video muy interesante&lt;/a&gt;, de introducción al desarrollo de aplicaciones móviles usando Eclipse MTJ.&lt;br /&gt;&lt;br /&gt;Me hace acordar a los &lt;a href="http://www.netbeans.org/kb/docs/screencasts.html"&gt;videos de Netbeans&lt;/a&gt;, que están muy buenos. Hay sobre muchos temas, y vale la pena verlos.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6125649492882325530-1382276441194387646?l=entrellaves.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/entrellaves/~4/fhr0U4UTPyQ" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://entrellaves.blogspot.com/feeds/1382276441194387646/comments/default" title="Enviar comentarios" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=6125649492882325530&amp;postID=1382276441194387646" title="0 comentarios" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/6125649492882325530/posts/default/1382276441194387646?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/6125649492882325530/posts/default/1382276441194387646?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/entrellaves/~3/fhr0U4UTPyQ/ide-en-accion.html" title="IDE en acción" /><author><name>Pablo Lillia</name><uri>https://profiles.google.com/104838123348555235492</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh5.googleusercontent.com/-aUx_T1rBsv4/AAAAAAAAAAI/AAAAAAAABKI/GHmr1vGALZ0/s512-c/photo.jpg" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://3.bp.blogspot.com/-0PoJkrhnKKQ/Tdb_b9uDp7I/AAAAAAAAAfY/y-IdtEIwqbg/s72-c/eclipseir5.jpg" height="72" width="72" /><thr:total>0</thr:total><feedburner:origLink>http://entrellaves.blogspot.com/2009/03/ide-en-accion.html</feedburner:origLink></entry><entry gd:etag="W/&quot;D08HSXczcCp7ImA9WhZWGU4.&quot;"><id>tag:blogger.com,1999:blog-6125649492882325530.post-6586334306619596336</id><published>2009-03-17T20:33:00.007-03:00</published><updated>2011-05-20T20:57:18.988-03:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-05-20T20:57:18.988-03:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="ubuntu" /><title>Ubuntu 8.10 y red local con IP fija</title><content type="html">&lt;span style="font-weight: bold;"&gt;(Leer actualización más abajo)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;En Ubuntu 8.10 apareció una versión del Administrador de Redes, pero trajo un bug muy molesto: al configurar una red local con dirección IP estática, se pierde la configuración al reiniciar, volviéndose a configurar en IP automática (DHCP) cada vez.&lt;br /&gt;&lt;br /&gt;Hasta el momento, solo conocía un par de soluciones al problema, siendo lo mejor reemplazar directamente el administrador de red provisto por Ubuntu, el &lt;span style="font-style: italic;"&gt;"Network Manager"&lt;/span&gt;, por el alternativo &lt;a href="http://wicd.sourceforge.net/"&gt;WICD&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/-qWBbjuTmyMk/Tdb_py--a6I/AAAAAAAAAfg/GzkG6mTBCJo/s1600/gui.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 395px;" src="http://2.bp.blogspot.com/-qWBbjuTmyMk/Tdb_py--a6I/AAAAAAAAAfg/GzkG6mTBCJo/s400/gui.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5608951479462161314" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;span style="text-decoration: line-through;"&gt;Finalmente encontré una solución mejor, solución a medias porque es un &lt;span style="font-style: italic;"&gt;workaround&lt;/span&gt;, pero es la de menor impacto, casi elegante. En resumen, en lugar de reconfigurar el dispositivo "Auto eth0" para que use IP estática, hay que agregar uno nuevo con la configuración correcta, y dejar al "Auto eth0" desactivado (sin eliminarlo). El único detalle a tener en cuenta, es copiar la misma dirección MAC que figura en "Auto eth0" a la configuración correcta.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="text-decoration: line-through;"&gt;Si se elimina el dispositivo "Auto eth0", o si se le cambia su configuración, volverá a ser creado en el siguiente reinicio, y tendrá prioridad sobre cualquier otra configuración que hagamos.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="text-decoration: line-through;"&gt;Las recetas, mejor explicadas, están aquí:&lt;br /&gt;&lt;a href="http://www.nalinmakar.com/2008/11/08/static-ip-address-on-ubuntu-810/"&gt;Static IP address on Ubuntu 8.10&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.ubuntugeek.com/how-to-set-a-static-ip-address-in-ubuntu-810-intrepid-ibex.html"&gt;How to Set a Static IP address in Ubuntu 8.10&lt;/a&gt;&lt;br /&gt;&lt;a href="http://linhost.info/2008/11/how-to-set-a-static-ip-on-ubuntu-810/"&gt;How To Set A Static IP On Ubuntu 8.10&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.ubuntugeek.com/wicd-wired-and-wireless-network-manager-for-ubuntu.html"&gt;Wicd - Wired and Wireless Network manager for Ubuntu&lt;/a&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;Fue un poco desilusionante encontrar un bug tan evidente en 8.10. Una pena, porque fue una versión bastante buena, que arrancó mejor que 8.04. Esperemos que estén más atentos para la próxima.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Actualización 18 de marzo:&lt;/span&gt;&lt;br /&gt;Repentinamente y sin motivo, apareció una nueva conexión "Auto eth0" (además de la que dejé desactivada) y tomó preferencia sobre la estática que había creado, la "eth0 fija". Conclusión: estoy cada vez más convencido que &lt;span style="font-weight: bold;"&gt;el Network Manager que trajo Ubuntu 8.10 es una mierda&lt;/span&gt; con todas las letras. &lt;span style="font-weight: bold;"&gt;Si no querés problemas, reemplazalo con WICD&lt;/span&gt;, que es una maravilla como anda.&lt;br /&gt;&lt;br /&gt;Los pasos para instalar WICD son sencillos, y están explicados en:&lt;br /&gt;&lt;a href="http://blog.fbueno.net/?p=383"&gt;Solución a los errores de conexión wifi con Ubuntu 8.10&lt;/a&gt;&lt;br /&gt;&lt;a href="http://malogey.wordpress.com/2008/11/20/wicd-en-ubuntu-810/"&gt;WICD en Ubuntu 8.10&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6125649492882325530-6586334306619596336?l=entrellaves.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/entrellaves/~4/R_JtU-sEue8" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://entrellaves.blogspot.com/feeds/6586334306619596336/comments/default" title="Enviar comentarios" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=6125649492882325530&amp;postID=6586334306619596336" title="0 comentarios" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/6125649492882325530/posts/default/6586334306619596336?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/6125649492882325530/posts/default/6586334306619596336?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/entrellaves/~3/R_JtU-sEue8/ubuntu-810-y-red-local-con-ip-fija.html" title="Ubuntu 8.10 y red local con IP fija" /><author><name>Pablo Lillia</name><uri>https://profiles.google.com/104838123348555235492</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh5.googleusercontent.com/-aUx_T1rBsv4/AAAAAAAAAAI/AAAAAAAABKI/GHmr1vGALZ0/s512-c/photo.jpg" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://2.bp.blogspot.com/-qWBbjuTmyMk/Tdb_py--a6I/AAAAAAAAAfg/GzkG6mTBCJo/s72-c/gui.png" height="72" width="72" /><thr:total>0</thr:total><feedburner:origLink>http://entrellaves.blogspot.com/2009/03/ubuntu-810-y-red-local-con-ip-fija.html</feedburner:origLink></entry></feed>

