<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss'><id>tag:blogger.com,1999:blog-3515952828243908885</id><updated>2009-11-29T22:17:29.329-06:00</updated><title type='text'>Sr. Byte</title><subtitle type='html'>:: Tecnología para todos ::</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://www.srbyte.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3515952828243908885/posts/default'/><link rel='alternate' type='text/html' href='http://www.srbyte.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><link rel='next' type='application/atom+xml' href='http://www.blogger.com/feeds/3515952828243908885/posts/default?start-index=26&amp;max-results=25'/><author><name>Rodrigo Amaya</name><uri>http://www.blogger.com/profile/15626618787991058196</uri><email>rodrigo.amaya@srbyte.com</email></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>335</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-3515952828243908885.post-3063941147229584264</id><published>2009-11-29T20:01:00.000-06:00</published><updated>2009-11-29T20:01:39.837-06:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='google os'/><category scheme='http://www.blogger.com/atom/ns#' term='chromium'/><category scheme='http://www.blogger.com/atom/ns#' term='chrome'/><category scheme='http://www.blogger.com/atom/ns#' term='google'/><title type='text'>Google y su sistema operativo</title><content type='html'>&lt;a href="http://3.bp.blogspot.com/_ayvorITawE4/SxMktcOgsCI/AAAAAAAACPg/7_lz4Nm2Zqs/s1600/chrome.jpg" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://3.bp.blogspot.com/_ayvorITawE4/SxMktcOgsCI/AAAAAAAACPg/7_lz4Nm2Zqs/s200/chrome.jpg" /&gt;&lt;/a&gt;Google anuncio su sistema operativo "Chrome OS" hace algunos dias, así que me di la tarea de probarlo. Aclaro, que probé "Chromium OS", no "Chrome OS", la diferencia, es la misma que la del &lt;a href="http://www.srbyte.com/2008/09/un-vistazo-al-cdigo-de-google-chrome.html"&gt;navegador "Chrome" y "Chromium"&lt;/a&gt;: Uno es código cerrado (y aún NO esta disponible) y es más pulido y profesional (Chrome), y su proyecto hermano "Chromium", es el mismo Chrome en versión open source y sin "afinar".&lt;br /&gt;&lt;br /&gt;Pues lo mismo sucede con el sistema operativo de Google, no es uno, sino dos versiones del mismo sistema(Chrome y Chromium). Por motivos de conveniencia, me referiré a ambos sistemas como "Chrome OS". Aparte de eso, una excelente impresion que me dejo este sistema es el tiempo de arranque, que es increíblemente veloz, más que &lt;a href="http://www.srbyte.com/2009/05/moblin-20-beta.html"&gt;Moblin&lt;/a&gt;. La primera vez que se ejecuta, se "siente" como un kernel linux con un navegador encima... y esa, creo que es la mejor descripción que puedo darles del mismo. Después de todo, la idea principal detras de este sistema, es que &lt;b&gt;nada esta almacenado en la maquina local, sino que todo esta en servicios web, lo que es "probablemente ideal" para netbooks y personas que no usan su computadora nada más que navegar en Internet&lt;/b&gt;. &lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/_ayvorITawE4/SxMkWJHqKCI/AAAAAAAACPQ/dv6G-Ymi0pA/s1600/ChromeOSByte.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://4.bp.blogspot.com/_ayvorITawE4/SxMkWJHqKCI/AAAAAAAACPQ/dv6G-Ymi0pA/s320/ChromeOSByte.png" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;span style="font-size: x-small;"&gt;&lt;i&gt;"Un vistazo al blog, desde Chromium OS (con un tema instalado)"&lt;/i&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;El sistema es brillante en la misma medida que amenazador, es brillante porque &lt;b&gt;Chrome OS es un sistema operativo que es completamente devoto a la Web, una plataforma de unificación de servicios y aplicaciones web, en las que se ata al usuario a una serie de servicios gratuitos totalmente propietarios&lt;/b&gt;, Chrome OS es el primer paso para una nueva estrategia de crecimiento y posicionamiento en la mente de un mercado muy interesante y emergente de usuarios que (como ya mencione) solo pasan conectados a Internet.&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/_ayvorITawE4/SxMkXr2jnbI/AAAAAAAACPY/dMRoQl_zJYs/s1600/ChomeOSByte2.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://3.bp.blogspot.com/_ayvorITawE4/SxMkXr2jnbI/AAAAAAAACPY/dMRoQl_zJYs/s320/ChomeOSByte2.png" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;span style="font-size: x-small;"&gt;&lt;i&gt;"Otro vistazo desde VirtualBox"&lt;/i&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;A continuación les pongo una serie videos que explican que es y como funciona Chrome OS:&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;center&gt;&lt;object height="340" width="560"&gt;&lt;param name="movie" value="http://www.youtube.com/v/0QRO3gKj3qw&amp;hl=es_ES&amp;fs=1&amp;rel=0"&gt;&lt;/param&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;/param&gt;&lt;param name="allowscriptaccess" value="always"&gt;&lt;/param&gt;&lt;embed src="http://www.youtube.com/v/0QRO3gKj3qw&amp;hl=es_ES&amp;fs=1&amp;rel=0" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="560" height="340"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;/center&gt;&lt;br /&gt;&lt;div style="text-align: center;"&gt;&lt;span style="font-size: x-small;"&gt;&lt;i&gt;"¿Qué es Chrome OS?"&lt;/i&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;center&gt;&lt;object height="340" width="560"&gt;&lt;param name="movie" value="http://www.youtube.com/v/mTFfl7AjNfI&amp;hl=es_ES&amp;fs=1&amp;rel=0"&gt;&lt;/param&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;/param&gt;&lt;param name="allowscriptaccess" value="always"&gt;&lt;/param&gt;&lt;embed src="http://www.youtube.com/v/mTFfl7AjNfI&amp;hl=es_ES&amp;fs=1&amp;rel=0" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="560" height="340"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;/center&gt;&lt;br /&gt;&lt;div style="text-align: center;"&gt;&lt;span style="font-size: x-small;"&gt;&lt;i&gt;"Tiempo de carga de Chromium OS"&lt;/i&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;Conseguir Chormium OS es sencillo, solo descargen el archivo &lt;a href="http://isohunt.com/torrent_details/142247665/Google+Chrome+OS?tab=summary"&gt;.torrent de IsoHunt&lt;/a&gt;, precisamente lo que se descarga sería un disco duro virtual de VMWare.&lt;br /&gt;&lt;br /&gt;Para usarlo, no necesitan tener VMWare en sus maquinas, pueden optar por &lt;a href="http://www.virtualbox.org/"&gt;VirtualBox&lt;/a&gt;, y TechCrunch tiene una &lt;a href="http://www.techcrunch.com/2009/11/19/guide-install-google-chrome-os/"&gt;excelente guía paso a paso para usar Chromium OS con VirtualBox&lt;/a&gt;. &lt;br /&gt;&lt;br /&gt;Para que sigan más de cerca el proyecto, pueden visitar &lt;a href="http://www.chromium.org/chromium-projects"&gt;el sitio oficial de los proyectos "Chromium"&lt;/a&gt; (navegador y sistema operativo).&lt;br /&gt;&lt;br /&gt;Vemos a seguir más detenidamente el desarrollo de este y de otros&amp;nbsp; proyectos similares, en lo personal no les veo mucha utilidad en nuestro medio, pero sin lugar a dudas el concepto, que no es nada nuevo, no deja de ser atractivo. Lo que más me interesa quizás, es la sana competencia entre servicios basados en la nube y la sana competencia (que beneficia mucho al usuario final) que surgirá &lt;a href="http://www.microsoft.com/windowsazure/products/#"&gt;cuando emerja Microsoft Azure&lt;/a&gt; para comenzar la verdadera competencia de gigantes, con sistemas operativos tan "Lite" como lo es "Chorme OS".&lt;br /&gt;&lt;br /&gt;Y tu, ¿piensas que en tu país podrías pasar conectado a Internet, de depender de manera primordial de todos los servicios que Google ofrece?&lt;br /&gt;A mi en latinoamerica, esa idea no me parece muy factible. ¡Saludos!&lt;div class="blogger-post-footer"&gt;Copyleft Rodrigo S. Amaya C. y el staff del Sr. Byte&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3515952828243908885-3063941147229584264?l=www.srbyte.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=3515952828243908885&amp;postID=3063941147229584264' title='2 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3515952828243908885/posts/default/3063941147229584264'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3515952828243908885/posts/default/3063941147229584264'/><link rel='alternate' type='text/html' href='http://www.srbyte.com/2009/11/google-y-su-sistema-operativo.html' title='Google y su sistema operativo'/><author><name>Rodrigo Amaya</name><uri>http://www.blogger.com/profile/15626618787991058196</uri><email>rodrigo.amaya@srbyte.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='18286515888004248012'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_ayvorITawE4/SxMktcOgsCI/AAAAAAAACPg/7_lz4Nm2Zqs/s72-c/chrome.jpg' height='72' width='72'/><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3515952828243908885.post-8790487069912455472</id><published>2009-11-26T17:00:00.001-06:00</published><updated>2009-11-26T17:00:00.770-06:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='games'/><category scheme='http://www.blogger.com/atom/ns#' term='rts'/><category scheme='http://www.blogger.com/atom/ns#' term='linux'/><category scheme='http://www.blogger.com/atom/ns#' term='juegos'/><category scheme='http://www.blogger.com/atom/ns#' term='estrategia'/><title type='text'>5 Juegos de Estrategia (100% libres).</title><content type='html'>Hace poco jugué una partida de Age of Empires II (The Conquerors Expansion) con un compañero del trabajo y me entro una nostalgia y un deseo increíble por volver rememorar aquellos viejos tiempos en los que mi vida era pensar en como hacer un "&lt;a href="http://usuarios.lycos.es/aprendizaoe/pon.php?web=proyecto2.html"&gt;rush&lt;/a&gt;" (*snif* jaja).&lt;br /&gt;Valga la aclaración: soy un fanático de los juegos de estrategia en tiempo real (&lt;a href="http://es.wikipedia.org/wiki/Juego_de_estrategia_en_tiempo_real"&gt;RTS&lt;/a&gt;), creo que perdí mucho tiempo jugando Age of Empires II, StarCraft y WarCraft III y sus respectivas expansiones, así como Age of Mythology, Empire Earth y Warlord... si, lo acepto, fue mucho tiempo "perdido"... pero&amp;nbsp; me divertí mucho :)&lt;br /&gt;&lt;br /&gt;Recuerdo que cuando me pase definitivamente a utilizar Linux (Debian y Ubuntu) sentí la incomodidad de migrar a un sistema al que casi no existen juegos de este genero, y si los habían... pues daban lastima. Por supuesto con el tiempo fui conociendo varias alternativas para ejecutar juegos propietarios en los sistemas linux, los casos más exitosos (los juegos que mejor corren): StarCraft y WarCraft III se ejecutan perfectamente bien en el Wine, lamentablemente Age of Empires II, no, es insoportablemente lento.&lt;br /&gt;&lt;br /&gt;Pero bien, no quiero hablarles de configuraciones mágicas del Wine (la mayoría &lt;a href="http://appdb.winehq.org/"&gt;las pueden encontrar acá&lt;/a&gt; en caso de que busquen alguna), ni mucho menos de "comprar" juegos para Linux, hoy quiero recomendarles cinco juegos de estrategia en tiempo real completamente libres (y gratuitos) que se ejecutan de forma nativa y suave en Linux (y probablemente también en Windows).&lt;br /&gt;&lt;br /&gt;Así que si son fans del genero RTS y del software libre, esto es lo que les recomiendo:&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;&lt;br /&gt;1) Warzone&lt;/span&gt; &lt;span style="font-weight: bold;"&gt;2100&lt;/span&gt;&lt;br /&gt;&lt;a href="http://www.junauza.com/2008/06/linux-got-game-warzone-2100.html"&gt;Warzone 2100&lt;/a&gt; originalmente fue producido (en 1999) para Windows y el PlayStation, pero en el 2004, el código fuente y todos sus datos multimedia fueron liberados bajo la amada GNU General Public License. Warzone 2100 esta disponible como paquete precompilado para tu distro preferida. Es ligeramente exigente, tiene gráficos aceptables y es completamente en 3D, como pueden ver en la captura:&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/_UqUwVPikChs/SMerpDyqwmI/AAAAAAAAFFM/IdZO59fTfjo/s1600-h/warzone.jpg" onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}"&gt;&lt;img alt="" border="0" id="BLOGGER_PHOTO_ID_5244349012977042018" src="http://4.bp.blogspot.com/_UqUwVPikChs/SMerpDyqwmI/AAAAAAAAFFM/IdZO59fTfjo/s400/warzone.jpg" style="cursor: pointer; display: block; margin: 0px auto 10px; text-align: center;" /&gt;&lt;/a&gt;&lt;span style="font-size: 85%;"&gt;&lt;span style="font-size: x-small;"&gt;&lt;i&gt;"Captura Warzone 2100"&lt;/i&gt;&lt;/span&gt;&lt;a href="http://wz2100.net/"&gt;&lt;/a&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;2) Glest&lt;/span&gt;&lt;br /&gt;&lt;a href="http://glest.org/"&gt;Glest&lt;/a&gt; es un excelente juego en 3D multiplataforma desarrollado por un equipo de Españoles. El ambiente del juego recuerda a la edad media, y tiene dos facciones únicamente (Mágica y Tecnológica), pero lo genial de Glest, es que puedes añadir facciones personalizadas al juego, muchas de estas las pueden encontrar en la gran comunidad que constantemente esta creando nuevos mapas, unidades y facciones para usar en el juego.&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/_UqUwVPikChs/SMerpTkB5rI/AAAAAAAAFFU/wTVddqZ1kxw/s1600-h/glest.jpg" onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}"&gt;&lt;img alt="" border="0" id="BLOGGER_PHOTO_ID_5244349017210611378" src="http://4.bp.blogspot.com/_UqUwVPikChs/SMerpTkB5rI/AAAAAAAAFFU/wTVddqZ1kxw/s400/glest.jpg" style="display: block; margin: 0px auto 10px; text-align: center;" /&gt;&lt;/a&gt;&lt;span style="font-size: 85%;"&gt;&lt;span style="font-size: x-small;"&gt;&lt;i&gt;"Captura de Glest"&lt;/i&gt;&lt;/span&gt;&lt;a href="http://glest.org/en/"&gt;&lt;/a&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;3) Bos Wars&lt;/span&gt;&lt;br /&gt;&lt;a href="http://www.boswars.org/"&gt;Bos Wars&lt;/a&gt; tiene estilo futurista y es multiplataforma también. El proyecto comenzó en el 2004 por Tina Petersenand, el líder actual del proyecto es François Beerten. El motor del juego esta escrito completamente en C++&amp;nbsp; atado a &lt;a href="http://www.libsdl.org/"&gt;las librerías SDL&lt;/a&gt;, y utiliza &lt;a href="http://www.lua.org/"&gt;Lua como lenguaje script&lt;/a&gt;.&lt;br /&gt;Lo confuso (para mi) al comenzar a jugar Bos Wars es la lógica de economía variable en el juego. Hay dos recursos en el juego, energía y magma. La energía se produce por medio de plantas (de energía), y el magma se obtiene de los "puntos calientes" (hot spots). El control de largas partes del mapa crea un potencial para aumentar el rendimiento de tu economía. Y ahí esta el detalle, es claro que si controlas más del mapa, se posee una mejor economía, lo que te obliga psicologicamente a acaparar todo lo que se pueda siempre con una buena estrategia en mente. Bos Wars crea un juego totalmente original y bastante bueno, que recuerda a títulos de "similar aspecto" como como WarCraft II y AOE.&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/_UqUwVPikChs/SMerpeoFypI/AAAAAAAAFFc/SPB6e9M7uR8/s1600-h/boswars-2.4-0.jpg" onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}"&gt;&lt;img alt="" border="0" id="BLOGGER_PHOTO_ID_5244349020180433554" src="http://4.bp.blogspot.com/_UqUwVPikChs/SMerpeoFypI/AAAAAAAAFFc/SPB6e9M7uR8/s400/boswars-2.4-0.jpg" style="cursor: pointer; display: block; margin: 0px auto 10px; text-align: center;" /&gt;&lt;/a&gt;&lt;span style="font-size: 85%;"&gt;&lt;span style="font-size: x-small;"&gt;&lt;i&gt;"Captura de Bos Wars"&lt;/i&gt;&lt;/span&gt;&lt;a href="http://www.boswars.org/"&gt;&lt;/a&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;4) Globulation 2&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;a href="http://www.globulation2.org/"&gt;Globulation 2&lt;/a&gt; es una interesante propuesta para un RTS, que reduce el micro manejo de unidades (click y asignar tarea) al automatizar las mismas a tareas especificas de recoleccion, reparacion, ataque, defensa, etc, de acuerdo a las necesidades del usuario. En otras palabras, solo creas unidades, y dibujas areas en el mapa, y las unidades dinamicamente trataran de satisfacer estas necesidades lo mejor que pueden. Es interesante, innovador, posee una buena inteligencia artificial, juegos multiplayer y&amp;nbsp; editor de mapas y lenguaje script y gráficos aceptables... pero les advierto que se siente lento, este es un tipo de juego para las personas que se "ponen a hacer casitas" en Age of Empires.&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;img alt="" border="0" id="BLOGGER_PHOTO_ID_5244349021099435042" src="http://4.bp.blogspot.com/_UqUwVPikChs/SMerpiDMpCI/AAAAAAAAFFk/LvLDdNbhhos/s400/globu2.jpg" style="display: block; margin: 0px auto 10px; text-align: center;" /&gt;&lt;span style="font-size: 85%;"&gt; &lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;5) Spring&lt;/span&gt;&lt;br /&gt;Spring, no tiene nada que ver con el Framework de Java, es más bien un poderoso motor de juegos 3D de estrategia en tiempo real, que ofrece a los desarrolladores un marco de trabajo para hacer juegos RTS como ellos quieran... pero para ya no seguir explicando, mejor les dejo algunas capturas de varios "mods" para Spring:&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;center&gt;&lt;br /&gt;&lt;br /&gt;&lt;table border="0"&gt;&lt;tbody&gt;&lt;tr&gt; &lt;td align="center"&gt;&lt;div style="height: 225px; overflow: hidden; position: relative; width: 300px;"&gt;&lt;div style="left: 0pt; position: absolute; top: 0pt; z-index: 2;"&gt;&lt;a class="image" href="http://springrts.com/wiki/Image:EvoRTS_screenshot.jpg" title="image page"&gt;&lt;img alt="image page" border="0" height="240" src="http://springrts.com/mediawiki/images/thumb/8/85/EvoRTS_screenshot.jpg/300px-EvoRTS_screenshot.jpg" width="300" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td align="center"&gt;&lt;div style="height: 225px; overflow: hidden; position: relative; width: 300px;"&gt;&lt;div style="left: 0pt; position: absolute; top: 0pt; z-index: 2;"&gt;&lt;a class="image" href="http://springrts.com/wiki/Image:S44_tigers.jpg" title="image page"&gt;&lt;img alt="image page" border="0" height="225" src="http://springrts.com/mediawiki/images/thumb/2/24/S44_tigers.jpg/300px-S44_tigers.jpg" width="300" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;table border="0"&gt;&lt;tbody&gt;&lt;tr&gt; &lt;td align="center"&gt;&lt;div style="height: 225px; overflow: hidden; position: relative; width: 300px;"&gt;&lt;div style="left: 0pt; position: absolute; top: 0pt; z-index: 2;"&gt;&lt;img alt="image page" border="0" height="225" src="http://springrts.com/mediawiki/images/thumb/1/19/Kernel_Panic_3.4.jpg/300px-Kernel_Panic_3.4.jpg" width="300" /&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td align="center"&gt;&lt;div style="height: 225px; overflow: hidden; position: relative; width: 300px;"&gt;&lt;div style="left: 0pt; position: absolute; top: 0pt; z-index: 2;"&gt;&lt;a class="image" href="http://springrts.com/wiki/Image:Warevoscreen.jpg" title="image page"&gt;&lt;img alt="image page" border="0" height="240" src="http://springrts.com/mediawiki/images/thumb/7/70/Warevoscreen.jpg/300px-Warevoscreen.jpg" width="300" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;&lt;br /&gt;&lt;/center&gt;&lt;br /&gt;&lt;br /&gt;Para los curiosos, las capturas corresponden a: &lt;a class="external text" href="http://www.evolutionrts.info/" rel="nofollow" title="http://www.evolutionrts.info"&gt;Evolution RTS&lt;/a&gt;, &lt;a class="external text" href="http://www.spring1944.org/" rel="nofollow" title="http://www.spring1944.org/"&gt;Spring: 1944&lt;/a&gt;, &lt;a href="http://springrts.com/wiki/Kernel_Panic" title="Kernel Panic"&gt;Kernel Panic&lt;/a&gt; y &lt;a href="http://springrts.com/wiki/War_Evolution" title="War Evolution"&gt;War Evolution&lt;/a&gt; todos parte de varios "mods" que se pueden jugar en Spring :)&lt;br /&gt;&lt;br /&gt;Bien, espero que esta pequeña lista sirva para aplacar el deseo de jugar RTS en Ubuntu o Mandriva o Fedora o la distribución que a ustedes más les guste. ¡Espero que les sirva, saludos!&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;Copyleft Rodrigo S. Amaya C. y el staff del Sr. Byte&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3515952828243908885-8790487069912455472?l=www.srbyte.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=3515952828243908885&amp;postID=8790487069912455472' title='3 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3515952828243908885/posts/default/8790487069912455472'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3515952828243908885/posts/default/8790487069912455472'/><link rel='alternate' type='text/html' href='http://www.srbyte.com/2009/11/5-juegos-de-estrategia-100-libres.html' title='5 Juegos de Estrategia (100% libres).'/><author><name>Rodrigo Amaya</name><uri>http://www.blogger.com/profile/15626618787991058196</uri><email>rodrigo.amaya@srbyte.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='18286515888004248012'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_UqUwVPikChs/SMerpDyqwmI/AAAAAAAAFFM/IdZO59fTfjo/s72-c/warzone.jpg' height='72' width='72'/><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3515952828243908885.post-7766568471977048028</id><published>2009-11-25T05:40:00.000-06:00</published><updated>2009-11-25T05:40:00.449-06:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='diseño'/><category scheme='http://www.blogger.com/atom/ns#' term='colaborativo'/><category scheme='http://www.blogger.com/atom/ns#' term='desarrollo'/><category scheme='http://www.blogger.com/atom/ns#' term='real time'/><category scheme='http://www.blogger.com/atom/ns#' term='internet'/><category scheme='http://www.blogger.com/atom/ns#' term='google'/><category scheme='http://www.blogger.com/atom/ns#' term='microsoft'/><title type='text'>Herramientas Colaborativas Para Desarrolladores</title><content type='html'>&lt;div style="text-align: center;"&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_jH77WNrMVRA/SwxChh-ODqI/AAAAAAAAGHk/P0RRbcbfDw4/s1600/collabediting.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 225px; height: 300px;" src="http://3.bp.blogspot.com/_jH77WNrMVRA/SwxChh-ODqI/AAAAAAAAGHk/P0RRbcbfDw4/s400/collabediting.png" alt="" id="BLOGGER_PHOTO_ID_5407770396387577506" border="0" /&gt;&lt;/a&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-style: italic;"&gt;"La edición colaborativa de documentos es útil cuando el equipo de trabajo no se puede reunir físicamente"&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;Gracias al uso del internet, hoy en día los desarrolladores pueden participar en proyectos de software que no necesariamente se llevan a cabo en la misma zona geográfica de su domicilio haciendo uso de &lt;a title="herramientas de versionamiento" href="http://www.srbyte.com/2008/03/programemos-mejor-subversion.html" id="zeqz"&gt;herramientas de versionamiento&lt;/a&gt; de código fuente que permite tener un repositorio en la nube el cual puede ser actualizado desde cualquier parte del mundo donde se posea una conexión a internet.&lt;br /&gt;&lt;br /&gt;Así también ha sido de mucha ayuda contar con otros tipos de herramientas no solamente orientadas al control del código fuente sino también para la edición de documentos alojándolos en la nube por medio de &lt;a title="Google Docs" href="http://docs.google.com/Doc?docid=0Abiz-mJIJ7OFZGpoNTdkN18xNWhuY2dxemZi&amp;amp;hl=en" id="r7sj"&gt;Google Docs&lt;/a&gt; o la nueva versión web de &lt;a title="Microsoft Office" href="http://workspace.officelive.com/" id="d4bl"&gt;Microsoft Office&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Aun así, lo que les hace falta a estas herramientas es la capacidad de edición colaborativa en tiempo real. Recientemente he descubierto varias aplicaciones web que me han sido de mucha ayuda al momento de revisar, editar y discutir código fuente de manera colaborativa así como también realizar y compartir diagramas. Estas herramientas son &lt;b&gt;CollabEdit&lt;/b&gt; y &lt;b&gt;Cacoo.&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;CollabEdit&lt;/b&gt; (&lt;a title="link" href="http://collabedit.com/" id="vyoj"&gt;link&lt;/a&gt;)&lt;br /&gt;&lt;br /&gt;Collabedit es una herramienta que te permite escribir un documento de texto cualquiera al mismo tiempo que otros usuarios pueden ver dichos cambios en tiempo real y editar dichos cambios. Además la herramienta permite aplicarle formato al texto para resaltar palabras clave dependiendo del lenguaje de programación en el que esté escrito.&lt;br /&gt;&lt;br /&gt;Lo que destaca a esta herramienta del resto es su simplicidad y facilidad de uso. No requiere registrarse ni pagar por el uso del servicio además que no define permisos de vista o edición, todos se vuelven editores del documento. Al entrar al sitio aparece a primera vista un botón para crear un nuevo documento el cual puede ser compartido con otras personas copiando la URL única que se genera para cada documento.&lt;br /&gt;&lt;br /&gt;La desventaja de su simplicidad es que, al no tener la necesidad de registrarse en el sitio para poseer una cuenta, tampoco se posee la funcionalidad de guardar el documento aunque sí permite descargar el contenido como archivo. El propósito mas apropiado para esta herramienta es entonces, el usarlo como medio para discutir código fuente que ya tenias creado mediante algún IDE de desarrollo pero necesitas discutirlo o corregirlo de manera colaborativa con otros colegas a través de internet.&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: center;"&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_jH77WNrMVRA/Sww9SNOdo8I/AAAAAAAAGHc/_WX6Efn3iUI/s1600/CollabEditShot.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 242px;" src="http://4.bp.blogspot.com/_jH77WNrMVRA/Sww9SNOdo8I/AAAAAAAAGHc/_WX6Efn3iUI/s400/CollabEditShot.png" alt="" id="BLOGGER_PHOTO_ID_5407764635562386370" border="0" /&gt;&lt;/a&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-style: italic;"&gt;"Edición colaborativa de una clase Java en Collabedit(Clic para agrandar)"&lt;/span&gt; &lt;/span&gt;&lt;/div&gt;&lt;br /&gt;&lt;b&gt;Cacoo&lt;/b&gt; (&lt;a title="link" href="http://cacoo.com/" id="bi72"&gt;link&lt;/a&gt;)&lt;br /&gt;&lt;br /&gt;Cacoo te permite crear diagramas y ser editados de forma colaborativa con varios usuarios a la vez. A diferencia de collabedit, este si requiere que te registres(sin costo alguno) en su sitio pero a cambio gozas de las ventajas de poder asignar permisos a la hora de compartir tus diagramas además de que estos quedan guardados en tu cuenta.&lt;br /&gt;&lt;br /&gt;Posee figuras para la creacion de una gran variedad de diagramas, como por ejemplo UML, Diagramas de Flujo, Diagramas de Red, Sitemaps, etc. Posee herramientas que lo asemejan a una aplicación de escritorio como el copy/paste de figuras, el undo y exportación a PNG. Además de todo lo anterior, el workspace cuenta con una sección para chat en la que los editores del diagrama pueden discutir como si estuvieran en msn o google talk, sin la necesidad de moverse a otra ventana.&lt;br /&gt;&lt;br /&gt;Aca un vídeo de ejemplo del funcionamiento de Cacoo:&lt;br /&gt;&lt;br /&gt;&lt;div align="center"&gt;&lt;br /&gt;&lt;object height="250" width="400"&gt;&lt;param name="allowfullscreen" value="true"&gt;&lt;param name="allowscriptaccess" value="always"&gt;&lt;param name="movie" value="http://vimeo.com/moogaloop.swf?clip_id=7502521&amp;amp;server=vimeo.com&amp;amp;show_title=1&amp;amp;show_byline=1&amp;amp;show_portrait=0&amp;amp;color=&amp;amp;fullscreen=1"&gt;&lt;embed src="http://vimeo.com/moogaloop.swf?clip_id=7502521&amp;amp;server=vimeo.com&amp;amp;show_title=1&amp;amp;show_byline=1&amp;amp;show_portrait=0&amp;amp;color=&amp;amp;fullscreen=1" type="application/x-shockwave-flash" allowfullscreen="true" allowscriptaccess="always" height="250" width="400"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-style: italic;"&gt;"Video demostrativo del funcionamiento de Cacoo"&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.blogalaxia.com/tags/internet" rel="tag"&gt;internet&lt;/a&gt; &lt;a href="http://www.blogalaxia.com/tags/desarrollo" rel="tag"&gt;desarrollo&lt;/a&gt; &lt;a href="http://www.blogalaxia.com/tags/diseno" rel="tag"&gt;diseño&lt;/a&gt; &lt;a href="http://www.blogalaxia.com/tags/google" rel="tag"&gt;google&lt;/a&gt; &lt;a href="http://www.blogalaxia.com/tags/microsoft" rel="tag"&gt;microsoft&lt;/a&gt; &lt;a href="http://www.blogalaxia.com/tags/colaborativo" rel="tag"&gt;colaborativo&lt;/a&gt; &lt;a href="http://www.blogalaxia.com/tags/real+time" rel="tag"&gt;real time&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;Copyleft Rodrigo S. Amaya C. y el staff del Sr. Byte&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3515952828243908885-7766568471977048028?l=www.srbyte.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=3515952828243908885&amp;postID=7766568471977048028' title='1 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3515952828243908885/posts/default/7766568471977048028'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3515952828243908885/posts/default/7766568471977048028'/><link rel='alternate' type='text/html' href='http://www.srbyte.com/2009/11/herramientas-colaborativas-para.html' title='Herramientas Colaborativas Para Desarrolladores'/><author><name>Robertux</name><uri>http://www.blogger.com/profile/15615123126956711175</uri><email>BlendBoy@gmail.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='07053113567322157156'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_jH77WNrMVRA/SwxChh-ODqI/AAAAAAAAGHk/P0RRbcbfDw4/s72-c/collabediting.png' height='72' width='72'/><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3515952828243908885.post-3871582453194179268</id><published>2009-11-20T06:00:00.001-06:00</published><updated>2009-11-20T07:41:56.061-06:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='firefox'/><category scheme='http://www.blogger.com/atom/ns#' term='desarrollo'/><category scheme='http://www.blogger.com/atom/ns#' term='toolbar'/><category scheme='http://www.blogger.com/atom/ns#' term='web'/><category scheme='http://www.blogger.com/atom/ns#' term='addon'/><title type='text'>Explotando la Web Developer Toolbar</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_jH77WNrMVRA/SwH9HgEsoqI/AAAAAAAAGEg/0VVxCDHkSiQ/s1600/fflogo-addons.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 222px; height: 222px;" src="http://2.bp.blogspot.com/_jH77WNrMVRA/SwH9HgEsoqI/AAAAAAAAGEg/0VVxCDHkSiQ/s400/fflogo-addons.png" alt="" id="BLOGGER_PHOTO_ID_5404879333131854498" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;div style="text-align: center; font-style: italic;"&gt;&lt;span style="font-size:85%;"&gt;"Una de las características que destacan a Firefox de los demás navegadores es su gran cantidad de útiles add-ons que se pueden instalar en el"&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;br /&gt;&lt;span style="font-size:130%;"&gt;&lt;span style="font-weight: bold;"&gt;Firefox Addons&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Como ya se nos esta haciendo costumbre acá en el Sr Byte, les traemos un conjunto de &lt;a href="http://www.srbyte.com/2008/07/qu-es-un-complementoadd-on-de-firefox.html"&gt;add-ons para Firefox&lt;/a&gt; que durante nuestras experiencias hemos descubierto como bastante útiles para trabajar con HTML, CSS y Javascript, especialmente porque los IDEs de desarrollo a veces no cuentan con las herramientas suficientes para editar visualmente las páginas web de modo que puedas saber con gran exactitud cómo se verá tu sitio en un navegador desde el momento en que lo estás diseñando.&lt;br /&gt;&lt;br /&gt;Rodrigo anteriormente había publicado &lt;a href="https://addons.mozilla.org/en-US/firefox/collection/srbyte"&gt;una colección de add-ons&lt;/a&gt; directamente en el sitio de addons de Firefox, a los cuales yo agregaré unos cuantos mas en este post y en otros posteriores los cuales considero un MUST para desarrolladores y diseñadores web.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;font-size:130%;" &gt;Web developer toolbar&lt;/span&gt; (&lt;a href="https://addons.mozilla.org/en-US/firefox/addon/60"&gt;link&lt;/a&gt;)&lt;br /&gt;&lt;br /&gt;Este es uno de los addons que no pueden faltar en el browser de todo desarrollador web. Contiene tantas opciones que en sí sustituye a muchos otros addons actualmente disponibles para desarrolladores web en el sitio de Mozilla. A continuación listaremos algunas de las opciones mas útiles de esta barra de herramientas para todo desarrollador web:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Miscellaneous -&gt;&lt;/span&gt; &lt;span style="font-style: italic;"&gt;Display line guides:&lt;/span&gt; Esta opción sirve para comprobar la alineación diferentes elementos HTML de un sitio web. Sustituye al add-on &lt;span style="font-style: italic;"&gt;gridfox&lt;/span&gt;.&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: center;"&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_jH77WNrMVRA/SwX-PRE9fII/AAAAAAAAGEo/7i718QzJiEM/s1600/FFLineGuides.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 274px;" src="http://2.bp.blogspot.com/_jH77WNrMVRA/SwX-PRE9fII/AAAAAAAAGEo/7i718QzJiEM/s400/FFLineGuides.png" alt="" id="BLOGGER_PHOTO_ID_5406006465963850882" border="0" /&gt;&lt;/a&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-style: italic;"&gt;"En este ejemplo podemos ver como usamos las líneas guía del Web Developer Toolbar para detectar una porción desalineada en las secciones de la Wikipedia, la cual se ha remarcado con una flecha."&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Miscellaneous -&gt;&lt;/span&gt; &lt;span style="font-style: italic;"&gt;Display ruler:&lt;/span&gt; Con esta opción puedes dibujar un rectángulo remarcando elementos HTML o cualquier sección dentro de una página web y este te dirá la posición X/Y, longitud y anchura de estos elementos en pixeles. Una vez dibujado el rectángulo este puede moverse y redimensionarse para remarcar exactamente el elemento del cual se desea saber su posición y tamaño dentro de la página. Sustituye al addon &lt;span style="font-style: italic;"&gt;measureit&lt;/span&gt;.&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: center;"&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_jH77WNrMVRA/SwYADj6WsLI/AAAAAAAAGEw/HZqEobqyNgc/s1600/FFRuler.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 224px;" src="http://1.bp.blogspot.com/_jH77WNrMVRA/SwYADj6WsLI/AAAAAAAAGEw/HZqEobqyNgc/s400/FFRuler.png" alt="" id="BLOGGER_PHOTO_ID_5406008463884464306" border="0" /&gt;&lt;/a&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-style: italic;"&gt;"La caja de texto de búsqueda de Google mide exactamente 568 pixeles de ancho y 25 de largo"&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Information -&gt; Display Element Information:&lt;/span&gt; Esta opción convertirá tu puntero en una cruz con la cual podrás remarcar y seleciconar un elemento HTML dentro de un sitio web y al darle clic, WebDeveloper te mostrará un recuadro con los atributos, clases, posición, ancestros, etc. de dicho elemento. Además, debajo de la WebDeveloper toolbar te mostrará la ubicación en formato XPath de dicho elemento.&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: center;"&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_jH77WNrMVRA/SwYCet5WR8I/AAAAAAAAGE4/QzkbNPFXfgI/s1600/FFDispInfo.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 253px;" src="http://1.bp.blogspot.com/_jH77WNrMVRA/SwYCet5WR8I/AAAAAAAAGE4/QzkbNPFXfgI/s400/FFDispInfo.png" alt="" id="BLOGGER_PHOTO_ID_5406011129444321218" border="0" /&gt;&lt;/a&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-style: italic;"&gt;"Información del elemento HTML caja de búsqueda del sitio twitter.com"&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Outline -&gt; Outline Custom Elements: &lt;/span&gt;La cual te permite remarcar elementos HTML de una página mediante su id, clase o tag, permitiéndonos además remarcar 5 elementos a la vez y elegir el color con el que queremos que cada uno de ellos sea remarcado. Una forma de búsqueda de elementos similar a como lo realiza el addon &lt;span style="font-style: italic;"&gt;FireFinder&lt;/span&gt;.&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: center;"&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_jH77WNrMVRA/SwYF6f32XII/AAAAAAAAGFA/cMW6kimiYno/s1600/FFOutline1.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 245px;" src="http://4.bp.blogspot.com/_jH77WNrMVRA/SwYF6f32XII/AAAAAAAAGFA/cMW6kimiYno/s400/FFOutline1.png" alt="" id="BLOGGER_PHOTO_ID_5406014905251159170" border="0" /&gt;&lt;/a&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-style: italic;"&gt;"WebDeveloper nos remarca los elementos HTML dentro de la página de Javaword que poseen la clase CSS llamada byline"&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Cookies -&gt; View Cookie Information: &lt;/span&gt;Esta opción nos abrirá una nueva pestaña de Firefox en la cual nos listará todas las cookies que los sitios visitados han guardado en nuestro sistema, además de poder editarlas y eliminarlas. Desde la opción &lt;span style="font-style: italic;"&gt;Cookies&lt;/span&gt; también podemos agregar nuevas cookies a nuestro sistema operativo por si algún sitio la requiere. Funciona de manera similar al addon &lt;span style="font-style: italic;"&gt;firecookie&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: center;"&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_jH77WNrMVRA/SwYIXQCZCFI/AAAAAAAAGFI/HfImTHrNI14/s1600/FFCookies.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 245px;" src="http://3.bp.blogspot.com/_jH77WNrMVRA/SwYIXQCZCFI/AAAAAAAAGFI/HfImTHrNI14/s400/FFCookies.png" alt="" id="BLOGGER_PHOTO_ID_5406017598239869010" border="0" /&gt;&lt;/a&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-style: italic;"&gt;"WebDeveloper me muestra las cookies que el sitio osum.sun.com ha guardado en mi computadora"&lt;/span&gt; &lt;/span&gt;&lt;/div&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Information -&gt; View Color Information: &lt;/span&gt;Opción con la cual podremos obtener la paleta de colores que se está usando en un sitio web, con sus respectivos valores en RGB hexadecimal. Esta nos la visualiza en una nueva pestaña de Firefox.&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: center;"&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_jH77WNrMVRA/SwYKm3_2rJI/AAAAAAAAGFQ/ykf_tjKvT0g/s1600/FFColorInfo.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 209px;" src="http://2.bp.blogspot.com/_jH77WNrMVRA/SwYKm3_2rJI/AAAAAAAAGFQ/ykf_tjKvT0g/s400/FFColorInfo.png" alt="" id="BLOGGER_PHOTO_ID_5406020065687940242" border="0" /&gt;&lt;/a&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-style: italic;"&gt;"WebDeveloper mostrando la paleta de colores que compone el sitio deviantart.com"&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Tools -&gt; Validate HTML: &lt;/span&gt;La cual nos lleva a la página de validación del w3c.org en el cual revisan la validez del código HTML con el cual está construido el sitio que estábamos visitando. En dicho sitio se nos lista detalladamente cada uno de los errores HTML que posee el sitio anteriormente visitado. Existe una opción extra, &lt;span style="font-style: italic;"&gt;Tools -&gt; Display page validation&lt;/span&gt; la cual te muestra una barra de herramientas debajo de la WebDeveloper la cual nos aplica una validación básica del HTML y CSS de nuestro sitio.&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: center;"&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_jH77WNrMVRA/SwYN7OuJetI/AAAAAAAAGFY/KiW714dU_gQ/s1600/FFValidations.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 226px;" src="http://2.bp.blogspot.com/_jH77WNrMVRA/SwYN7OuJetI/AAAAAAAAGFY/KiW714dU_gQ/s400/FFValidations.png" alt="" id="BLOGGER_PHOTO_ID_5406023713919957714" border="0" /&gt;&lt;/a&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-style: italic;"&gt;"Al validar el sitio stackoverflow.com desde la opción del WebDeveloper podemos ver que según el w3c validator este posee unos cuantos errores. Sin embargo la validación básica que aparece en la barra de herramientas bajo la WebDeveloper nos dice que el HTML es válido."&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;div style="text-align: left;"&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-size:100%;"&gt;Próximamente hablaremos de otro add-on de Firefox que merece un post completo debido a su gran complejidad y al hecho que es un add-on que soporta más add-ons.&lt;/span&gt;&lt;span style="font-style: italic;"&gt;&lt;/span&gt;&lt;/span&gt; Estén pendientes.&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-style: italic;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;Copyleft Rodrigo S. Amaya C. y el staff del Sr. Byte&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3515952828243908885-3871582453194179268?l=www.srbyte.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=3515952828243908885&amp;postID=3871582453194179268' title='2 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3515952828243908885/posts/default/3871582453194179268'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3515952828243908885/posts/default/3871582453194179268'/><link rel='alternate' type='text/html' href='http://www.srbyte.com/2009/11/explotando-la-web-developer-toolbar.html' title='Explotando la Web Developer Toolbar'/><author><name>Robertux</name><uri>http://www.blogger.com/profile/15615123126956711175</uri><email>BlendBoy@gmail.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='07053113567322157156'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_jH77WNrMVRA/SwH9HgEsoqI/AAAAAAAAGEg/0VVxCDHkSiQ/s72-c/fflogo-addons.png' height='72' width='72'/><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3515952828243908885.post-7114288344831355383</id><published>2009-11-19T06:00:00.000-06:00</published><updated>2009-11-22T09:18:18.261-06:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='xserver'/><category scheme='http://www.blogger.com/atom/ns#' term='karmic koala'/><category scheme='http://www.blogger.com/atom/ns#' term='ubuntu'/><title type='text'>Habilitar reinicio de XServer con teclado...</title><content type='html'>&lt;i&gt;Mini nota:&lt;/i&gt; &lt;br /&gt;Recuerdo aquellos viejos tiempos en los que podia reiniciar mi XServer con la combinacion de teclas "Ctrl+Alt+BackSpace".&lt;br /&gt;En Karmic Koala esa combinación viene deshabilitada por defecto (&lt;a href="http://www.srbyte.com/2009/11/opinion-sobre-ubuntu-910.html"&gt;otra razón para protestar&lt;/a&gt;), pero hay una pequeña solución:&lt;br /&gt;&lt;br /&gt;1. En el menu, ve a System-&amp;gt;Preferences-&amp;gt;Keyboard (solo Keyboard, no Keyboard Shorcuts)&lt;br /&gt;2. Se elige la viñeta Layouts, y luego clic en el botón "Layout options"&lt;br /&gt;3. Expanda el item con el nombre "Key sequence to kill&amp;nbsp; the X server". Y chequea "Ctrl+Alt+Backspace".&lt;br /&gt;4. Listo.&lt;br /&gt;&lt;br /&gt;Espero que les sirva, saludos!&lt;div class="blogger-post-footer"&gt;Copyleft Rodrigo S. Amaya C. y el staff del Sr. Byte&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3515952828243908885-7114288344831355383?l=www.srbyte.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=3515952828243908885&amp;postID=7114288344831355383' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3515952828243908885/posts/default/7114288344831355383'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3515952828243908885/posts/default/7114288344831355383'/><link rel='alternate' type='text/html' href='http://www.srbyte.com/2009/11/habilitar-reinicio-de-xserver-con.html' title='Habilitar reinicio de XServer con teclado...'/><author><name>Rodrigo Amaya</name><uri>http://www.blogger.com/profile/15626618787991058196</uri><email>rodrigo.amaya@srbyte.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='18286515888004248012'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3515952828243908885.post-331240090611977069</id><published>2009-11-18T21:48:00.000-06:00</published><updated>2009-11-18T21:48:21.553-06:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='java'/><category scheme='http://www.blogger.com/atom/ns#' term='framework'/><category scheme='http://www.blogger.com/atom/ns#' term='web'/><title type='text'>Comparando Frameworks Web de Java</title><content type='html'>Para atender las crecientes necesidades de los programadores, que tratan de mantenerse a la par de la tecnología, existe una emergente gama de productos que se proponen solventar necesidades especificas (a veces de los autores más que de los usuarios finales) y emergentes. Muchos de estos productos (diseñados para hacer más llevadera la vida del programador) vienen en forma de "Frameworks", &lt;a href="http://www.srbyte.com/2009/03/si-no-estas-usando-un-framework.html"&gt;que tanto recomendamos por diversos motivos&lt;/a&gt;, como productividad, eficiencia, comodidad y &lt;b&gt;mucha sanidad mental&lt;/b&gt;.&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/_ayvorITawE4/SwS-mUkMBkI/AAAAAAAACOk/hY-KI2fQ37c/s1600/struts2-merger2.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://4.bp.blogspot.com/_ayvorITawE4/SwS-mUkMBkI/AAAAAAAACOk/hY-KI2fQ37c/s320/struts2-merger2.png" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;span style="font-size: x-small;"&gt;&lt;i&gt;"Struts 2 es otro exitoso proyecto de Apache.org" &lt;/i&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;En el lugar donde trabajo, no utilizan un Web Frameworks en el proyecto en el que me encuentro, algo que por supuesto, reduce enormemente la productividad, trauma y molesta... mucho, realmente mucho.&lt;br /&gt;Supongo que en varias empresas sucedera lo mismo, si es ese el caso, es una lastima, porque estan perdiendo el tiempo reinventando la rueda. Y recordemos que en las empresas, el tiempo es dinero.&lt;br /&gt;&lt;br /&gt;Pero bien, regresando al caso, lo bueno es que hasta hace poco decidieron buscar el framework apropiado para utilizar al ambiente que se tiene ahí.&lt;br /&gt;Naturalmente, emergen un sin fin de dudas y muchas situaciones que hay que tomar en cuenta, pues no es una decision enteramente basada en soporte de arquitectura, sino que la eleccion de un framework tambien tiene que ver con la gama de herramientas que lo soportan, que tan recientes son las librerias que emplea y de lo moderno que es en si la tecnologia que soporta.&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/_ayvorITawE4/SwS-lIEFlgI/AAAAAAAACOc/uJMUbuvZkag/s1600/top_logo.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://4.bp.blogspot.com/_ayvorITawE4/SwS-lIEFlgI/AAAAAAAACOc/uJMUbuvZkag/s320/top_logo.jpg" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;span style="font-size: x-small;"&gt;&lt;i&gt; "El framework del trabajo de grado :)"&lt;/i&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;En aquellos días en los que comenzamos la tesis&amp;nbsp;&lt;a href="http://twitter.com/robertux"&gt;Robertux&lt;/a&gt;, &lt;a href="http://javacafesv.blogspot.com/"&gt;Hugol&lt;/a&gt; y su servidor, casi nos descabezamos para decidir que framework usar, y debo admitir de que en un principio no me gusto mucho la idea de utilizar ICEFaces, pero sinceramente no solo debo admitir de que ellos tomaron una excelente decision, sino que tambien ICEFaces es un framework que nos salvo la vida incontables veces a lo largo del desarrollo de nuestro trabajo de grado, a tal punto de terminarlo a tiempo y sin muchos problemas.&lt;br /&gt;&lt;br /&gt;Pero aunque yo sea ahora un adepto confeso de ICEFaces, existe variedad de Java Web Frameworks para los gustos y las necesidades con las que ustedes se encuentren...&lt;br /&gt;&lt;br /&gt;Voy a suponer que estan pasando por un proceso critico de modernizacion en donde trabajan, o alguien les pregunto sobre lo que pueden utilizar para determinado proyecto, o buscan que utilizar en su trabajo de grado. Con esta suposicion en mente, les quiero compartir dos excelentes recursos (actualizados) para elegir un web framework de Java.&lt;br /&gt;&lt;br /&gt;El primero consiste en una encuesta realizada por &lt;a href="http://olex.openlogic.com/wazi/author/kimberlymcclintock/" target="_blank"&gt;Kimberly McClintock&lt;/a&gt; acerca Web Framework (la mayoría para Java) a un grupo de "expertos", a los que se les realizo una serie de preguntas para evaluar los frameworks en cuestión, el artículo completo se puede leer en: &lt;a href="http://blog.taragana.com/index.php/archive/10-best-java-web-development-framework/" target="_blank"&gt;&lt;b&gt;10 Best Java Web Development Framework&lt;/b&gt;&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/_ayvorITawE4/SwS-nBS0M8I/AAAAAAAACOs/pI7VCuD7Pzw/s1600/openxava.jpeg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://3.bp.blogspot.com/_ayvorITawE4/SwS-nBS0M8I/AAAAAAAACOs/pI7VCuD7Pzw/s320/openxava.jpeg" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;span style="font-size: x-small;"&gt;&lt;i&gt;"OpenXava: El framework que te hace los CRUD automáticamente"&lt;/i&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;Y el segundo, consiste en una matriz comparativa de frameworks que utilizan la amena combinación de JSF + Ajax, esta matriz resulta de lo mas útil para los que están en la prisa de justificar porque usar uno u otro producto para un proyecto, así que recomiendo mucho que visiten la &lt;a href="http://www.jsfmatrix.net/"&gt;JSFMatrix&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Finalmente, para los que no quieren dar mucha vuelta o no tienen tiempo de leer, estos son los seis que yo puedo recomendar inmediatamente y sin mucha explicación:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;ICEFaces (&lt;a href="http://www.icefaces.org/main/home/"&gt;http://www.icefaces.org/&lt;/a&gt;)&lt;br /&gt;&lt;/li&gt;&lt;li&gt;OpenXava (&lt;a href="http://www.openxava.org/"&gt;http://www.openxava.org/&lt;/a&gt;)&lt;/li&gt;&lt;li&gt;Spring MVC (&lt;a href="http://www.springsource.org/"&gt;http://www.springsource.org/&lt;/a&gt;)&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Struts 2 (&lt;a href="http://struts.apache.org/2.x/"&gt;http://struts.apache.org/2.x/&lt;/a&gt;)&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Google Web Toolkit (GWT) (&lt;a href="http://code.google.com/webtoolkit/" target="_blank"&gt;http://code.google.com/webtoolkit/&lt;/a&gt;)&lt;/li&gt;&lt;/ul&gt;Espero que estos recursos les sirvan para elegir correctamente el framework que les haga la vida más fácil. ¡Saludos!&lt;div class="blogger-post-footer"&gt;Copyleft Rodrigo S. Amaya C. y el staff del Sr. Byte&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3515952828243908885-331240090611977069?l=www.srbyte.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=3515952828243908885&amp;postID=331240090611977069' title='5 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3515952828243908885/posts/default/331240090611977069'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3515952828243908885/posts/default/331240090611977069'/><link rel='alternate' type='text/html' href='http://www.srbyte.com/2009/11/comparando-frameworks-web-de-java.html' title='Comparando Frameworks Web de Java'/><author><name>Rodrigo Amaya</name><uri>http://www.blogger.com/profile/15626618787991058196</uri><email>rodrigo.amaya@srbyte.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='18286515888004248012'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_ayvorITawE4/SwS-mUkMBkI/AAAAAAAACOk/hY-KI2fQ37c/s72-c/struts2-merger2.png' height='72' width='72'/><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>5</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3515952828243908885.post-863255915445946821</id><published>2009-11-14T08:39:00.000-06:00</published><updated>2009-11-14T08:39:02.587-06:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='hunnapuh'/><title type='text'>HunnaPuh cambia de dirección.</title><content type='html'>&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/_ayvorITawE4/Sv7A0725niI/AAAAAAAACOU/hE1GT5uoXzQ/s1600-h/hunnacierra.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://1.bp.blogspot.com/_ayvorITawE4/Sv7A0725niI/AAAAAAAACOU/hE1GT5uoXzQ/s400/hunnacierra.jpg" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;Algo tarde, pero había que avisar, que ahora Hunnapuh a pasado a ser &lt;strong&gt;&lt;a href="http://hunna.org/" target="_blank"&gt;hunna.org&lt;/a&gt;&lt;/strong&gt;, los invitamos a leerlo y actualizar, su feed y a visitarlo. ¡Saludos y muchos éxitos!&lt;div class="blogger-post-footer"&gt;Copyleft Rodrigo S. Amaya C. y el staff del Sr. Byte&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3515952828243908885-863255915445946821?l=www.srbyte.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=3515952828243908885&amp;postID=863255915445946821' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3515952828243908885/posts/default/863255915445946821'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3515952828243908885/posts/default/863255915445946821'/><link rel='alternate' type='text/html' href='http://www.srbyte.com/2009/11/hunnapuh-cambia-de-direccion.html' title='HunnaPuh cambia de dirección.'/><author><name>Rodrigo Amaya</name><uri>http://www.blogger.com/profile/15626618787991058196</uri><email>rodrigo.amaya@srbyte.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='18286515888004248012'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_ayvorITawE4/Sv7A0725niI/AAAAAAAACOU/hE1GT5uoXzQ/s72-c/hunnacierra.jpg' height='72' width='72'/><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3515952828243908885.post-5276971736983403518</id><published>2009-11-14T08:03:00.002-06:00</published><updated>2009-11-14T08:21:11.390-06:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='javascript'/><category scheme='http://www.blogger.com/atom/ns#' term='compiler'/><category scheme='http://www.blogger.com/atom/ns#' term='google'/><title type='text'>Compilando código JavaScript (Closure Compiler)</title><content type='html'>&lt;div class="g-c-gc-home"&gt;Siempre pensando en la oportunidad de mejorar la forma en la que pruebo código JavaScript, buscando información en la re, &lt;a href="http://www.west-wind.com/WebLog/posts/10688.aspx"&gt;encontré esta brillante idea&lt;/a&gt;. Cuando lo leí vi las puertas del cielo abrirse y luego pensé en usar el compilador de .Net, para realizar &lt;a href="http://www.srbyte.com/2008/12/herramientas-del-programador-unit.html"&gt;pruebas unitarias&lt;/a&gt; sobre archivos simples de JavaScript (solo chequear que están bien era suficiente).&lt;br /&gt;&lt;br /&gt;El problema es, que aparte de depender de .Net, el ejemplo de compilación de código JavaScript no me funciono en &lt;a href="http://www.icsharpcode.net/OpenSource/SD/"&gt;SharpDeveloper&lt;/a&gt; 3.0 ... opte por utilizar Mono, pero lamentablemente el compilador de JavaScript que este posee esta actualmente sin mantenimiento.&lt;br /&gt;&lt;br /&gt;De clic en clic fui encontrando a "viejos conocidos" como el proyecto &lt;a href="http://www.mozilla.org/rhino/"&gt;Rhino&lt;/a&gt; de Mozilla, sustituto del motor &lt;a href="http://www.mozilla.org/js/spidermonkey/"&gt;SpiderMonkey&lt;/a&gt;, ambos motores para interpretar, "compilar" y ejecutar JavaScript. Aun asi, estas soluciones no son completamente multiplataformas, claro, son útiles y funcionales, &lt;b&gt;eso NO lo podemos negar&lt;/b&gt;, pero aun así, yo queria algo al estilo Java o Python, y vaya que lo encontre y del mejor autor, la susodicha herramienta de las que les quiero hablar hoy, es el: &lt;a href="http://code.google.com/intl/es-AR/closure/"&gt;Closure Compiler de Google&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://code.google.com/intl/es-AR/closure/images/logo128px.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://code.google.com/intl/es-AR/closure/images/logo128px.png" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;span style="font-size: large;"&gt;¿Qué es el Closure Compiler?&lt;/span&gt;&lt;br /&gt;Es un VERDADERO compilador de código JavaScript escrito 100% en Java. Lo más sorprendente es que realmente compila código JavaScript y lo convierte en mejor código JavaScript. Interpreta JavaScript, lo analiza, remueve código muerto, reescribe rutinas y lo que ya esta optimizado lo "minimiza" (remueve espacios en blanco, comentarios, saltos de linea, etc), verifica sintaxis, referencias de variables y tipos, y ademas, avisa de problemas comunes con código JavaScript.&lt;br /&gt;Y por si fuera poco, no solo es &lt;b&gt;Software Libre&lt;/b&gt;, sino que ademas, existe una extensión de para Firefox, para emplearlo en conjunto con tu código transformado y &lt;a href="http://www.srbyte.com/2009/11/javascript-firebug-jsure.html"&gt;Firebug&lt;/a&gt;, llamado: &lt;a href="http://closure-inspector.googlecode.com/files/closureinspector09.xpi"&gt;Closure Inspector&lt;/a&gt;. &lt;br /&gt;&lt;br /&gt;&lt;span style="font-size: large;"&gt;¿Como puedo usarlo?&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Podes utilizar el .jar del Closure Compiler como una aplicacion de linea de comandos (funciona perfecto en Windows y en Linux por supuesto).&lt;/li&gt;&lt;li&gt;Su funcionalidad puede ser utilizada como un servicio Web&lt;/li&gt;&lt;li&gt;Y como RESTful API.&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;span style="font-size: large;"&gt;¿Beneficios sobre otros compiladores de JavaScript?&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Eficiencia (reduce el tamaño del código JavaScript, para que tu aplicación cargue más rápido y se reduzca tu necesidad de ancho de banda).&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Código Libre (Cero Costo)&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Multiplataforma (Java, Java, Java :)&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Chequeo de código para evitar las típicas pesadillas que da JavaScript.&lt;/li&gt;&lt;li&gt;Es de Google, y Google lo usa en sus productos... ¿necesito decir más?&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;Espero que esta herramienta les sirva tanto como a mi. Más adelante explico como eliminar las pequeñas "trabas" que da al usarlo desde la consola. Esta es una herramienta que me atrevo a decir que es casi indispensable al trabajar con código JavaScript, lo recomiendo mucho, tanto como JSure, y si tienen que trabar con mucho código de JS, les va a salvar la vida, y ademas les dará una ventaja competitiva en su trabajo.&lt;br /&gt;&lt;br /&gt;¡Saludos!&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;Copyleft Rodrigo S. Amaya C. y el staff del Sr. Byte&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3515952828243908885-5276971736983403518?l=www.srbyte.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=3515952828243908885&amp;postID=5276971736983403518' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3515952828243908885/posts/default/5276971736983403518'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3515952828243908885/posts/default/5276971736983403518'/><link rel='alternate' type='text/html' href='http://www.srbyte.com/2009/11/compilando-codigo-javascript-closure.html' title='Compilando código JavaScript (Closure Compiler)'/><author><name>Rodrigo Amaya</name><uri>http://www.blogger.com/profile/15626618787991058196</uri><email>rodrigo.amaya@srbyte.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='18286515888004248012'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3515952828243908885.post-5435027524184706691</id><published>2009-11-09T11:00:00.002-06:00</published><updated>2009-11-09T11:00:04.568-06:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='opinion'/><category scheme='http://www.blogger.com/atom/ns#' term='ubuntu'/><title type='text'>Opinión sobre Ubuntu 9.10</title><content type='html'>&lt;i&gt;Antes de comenzar, es necesario hacer la aclaración, de que este pequeño articulo esta basado enteramente en percepción de usuario final (yo). No hay estadísticas, no hay números... es puro "feeling", así que muy probablemente este equivocado en varias cosas.&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;Estoy molesto con Ubuntu, hice un upgrade de la distribución, el error fue dejar mi amada Terminal (la Consola) por la (a veces molesta) interfaz de actualización de Ubuntu... en ambas maquinas hice lo mismo (tengo dos computadoras de escritorio, &lt;b&gt;bastante modestas&lt;/b&gt;), suponiendo que la primera falló por falta de conectividad (aparentemente así fue, y precisamente falló el paquete &lt;a href="http://corefonts.sourceforge.net/"&gt;msttcorefonts&lt;/a&gt;) sin embargo, en la otra maquina quedaron 20 paquetes sin actualizar (incluyendo firefox 3.5). No es que la actualización falle en si misma, porque hice el upgrade al 100%, pero presento fallos, algo que no sucedió con ninguna actualización anterior de Ubuntu, y mucho menos con Debian (Etch).&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/_ayvorITawE4/SvdXefwbqZI/AAAAAAAACN8/WHar5tiqeJY/s1600-h/ubuntu910.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://2.bp.blogspot.com/_ayvorITawE4/SvdXefwbqZI/AAAAAAAACN8/WHar5tiqeJY/s320/ubuntu910.jpg" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;div style="text-align: center;"&gt;&lt;span style="font-size: x-small;"&gt;&lt;i&gt;"¿Será mejor una instalación desde cero?&lt;/i&gt;&lt;/span&gt;"&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;Después de solventar el problema desde la consola (viva apt!), comencé a utilizar el sistema, lo que impacta inmediatamente, es el nuevo tema de GDM, su suavidad y velocidad para responder a la selección de teclado, usuario o entorno gráfico.&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/_ayvorITawE4/SvdXgpiOrwI/AAAAAAAACOE/NJuEezFfIW4/s1600-h/xsplash.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://2.bp.blogspot.com/_ayvorITawE4/SvdXgpiOrwI/AAAAAAAACOE/NJuEezFfIW4/s320/xsplash.png" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;span style="font-size: x-small;"&gt;&lt;i&gt; "Nuevo GDM..."&lt;/i&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;Note una pequeña demora en el arranque, ah! también fue algo desesperante no ver la barrita de progreso a la que me había acostumbrado con Ubuntu 9.04, que fue tristemente cambiada por una "barra cíclica" al estilo de Windows XP, pero bueno...&lt;br /&gt;&lt;br /&gt;Al seleccionar el usuario, existe una ligera demora para iniciar la sesión... se entiende especialmente si tienes Compiz, y los mil servicios que Ubuntu instala por aquello de que "nunca se sabe" en que maquina estará, pero se puede afinar para solo tener lo necesario.&lt;br /&gt;&lt;br /&gt;Luego instale Gwibbler, y migre a Empathy... error, grave error... casi pudiera asegurar que todo lo que use el sistema de notificaciones "Telepathy" tiene algun bug y Ubuntu me lo hará saber para que sea reportado (el error).&lt;br /&gt;&lt;br /&gt;Hasta el momento, he reportado 10 bugs que muchísimas más personas han reportado también en launchpad... lo bueno es que el equipo de desarrolladores de Ubuntu trabaja muy rápido y varios ya están solventados y otros lo serán a mas tardar en un mes.&lt;br /&gt;&lt;br /&gt;Aparte de eso, el tiempo de carga de mi sistema particular, después de afinarlo, bajo a 36 segundos (Ubuntu 9.10), y con Ubuntu 9.04 eran 21 segundos... claro, como no estar molesto... seguramente es el usplash... así que lo mando al carajo. Pero eso no es tan malo, cuando se compara con otros sistemas operativos:&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;center&gt;&lt;object height="344" width="425"&gt;&lt;param name="movie" value="http://www.youtube.com/v/88aal60AqBs&amp;hl=es&amp;fs=1&amp;rel=0"&gt;&lt;/param&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;/param&gt;&lt;param name="allowscriptaccess" value="always"&gt;&lt;/param&gt;&lt;embed src="http://www.youtube.com/v/88aal60AqBs&amp;hl=es&amp;fs=1&amp;rel=0" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="344"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;/center&gt;&lt;br /&gt;&lt;div style="text-align: center;"&gt;&lt;span style="font-size: x-small;"&gt;&lt;i&gt;Repita 3 veces quien es el ganador...&lt;/i&gt;&lt;/span&gt; :)&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;Eso es lo único bueno, con los sistemas GNU/Linux tenes opciones, tenes libertad, podes hacer lo que queres con el sistema... con "otros sistemas operativos" tal cual te lo dan, así se queda.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;¿Saben que me encanta?&lt;/b&gt; El entorno en general se ve mucho más coherente, unificado, nuevos tema de iconos, esquema de colores, el sistema de notificaciones, la marca de Ubuntu esta en todos lados (lo cual es bueno para las mentes gerenciales que necesitan eso mismo -marca- para usar algo), pero es especialmente bueno es: Ubuntu One, que es útil cuando tienes varias maquinas y necesitas tener sincronizada tu información entre todas ellas, es totalmente transparente para el usuario final, realmente es un producto que vale la pena, y no esta limitado a la versión 9.10, también hay un cliente de Ubuntu One para el 9.04.&lt;br /&gt;&lt;br /&gt;El manejo de sesiones entre varios usuarios se siente más fluido y sencillo.&lt;br /&gt;Ubuntu Software Center se ve bien, pero no le quita el lugar a Synaptic, me parece una versión triste del &lt;a href="http://www.cnr.com/"&gt;CNR de Linspire&lt;/a&gt;. Por lo demás, toda la experiencia "ubuntera" es igual, los programas de siempre corren bien y estables hasta el momento, y el sistema en general se siente (y es) más veloz, son los programas nuevos que a veces dan problemas, pudiera decir que se siente "buggy" a veces, pero es más que todo al principio. ¿No creen que es más rápido? aquí hay algunas pruebas de &lt;a href="http://www.phoronix.com/scan.php?page=article&amp;amp;item=ubuntu_910_alpha1&amp;amp;num=1"&gt;Phoronix&lt;/a&gt; y de &lt;a href="http://mundogeek.net/archivos/2009/11/05/ubuntu-9-10-karmic-koala-vs-mandriva-linux-2010-adelie/"&gt;Mundo Geek&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;Sin embargo, esta más que claro que Ubuntu 9.10 es solo una versión de transición y estabilización para el Ubuntu 10.4 que dicho de paso, será LTS (Long Time Support), si estas cómodo con Ubuntu 9.04, no veo absolutamente ningún motivo para un apresurado o inmediato upgrade al 9.10. &lt;b&gt;Asi de simple&lt;/b&gt;. Y si quieres actualizar, &lt;b&gt;mejor espera un mes o dos, y luego cambia haz tu upgrade.&lt;/b&gt;&lt;br /&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/_ayvorITawE4/SvdXjorf2AI/AAAAAAAACOM/VC2eC1ldlmA/s1600-h/6585x1500y1500.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://3.bp.blogspot.com/_ayvorITawE4/SvdXjorf2AI/AAAAAAAACOM/VC2eC1ldlmA/s320/6585x1500y1500.jpg" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;span style="font-size: x-small;"&gt;&lt;i&gt;"Los koalas no se reponen de la fiesta, por eso esta buggy el ubuntu :P"&lt;/i&gt;&lt;/span&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;Al menos, esa es mi experiencia personal y la recomendación que puedo hacer con respecto de Karmic Koala. Me quedo con la curiosidad del Ubuntu Netbook Remix, y con la duda de sus impresiones personales. Se esperan comentarios :)&lt;div class="blogger-post-footer"&gt;Copyleft Rodrigo S. Amaya C. y el staff del Sr. Byte&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3515952828243908885-5435027524184706691?l=www.srbyte.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=3515952828243908885&amp;postID=5435027524184706691' title='5 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3515952828243908885/posts/default/5435027524184706691'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3515952828243908885/posts/default/5435027524184706691'/><link rel='alternate' type='text/html' href='http://www.srbyte.com/2009/11/opinion-sobre-ubuntu-910.html' title='Opinión sobre Ubuntu 9.10'/><author><name>Rodrigo Amaya</name><uri>http://www.blogger.com/profile/15626618787991058196</uri><email>rodrigo.amaya@srbyte.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='18286515888004248012'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_ayvorITawE4/SvdXefwbqZI/AAAAAAAACN8/WHar5tiqeJY/s72-c/ubuntu910.jpg' height='72' width='72'/><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>5</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3515952828243908885.post-1113928188051244522</id><published>2009-11-08T15:30:00.001-06:00</published><updated>2009-11-08T18:06:30.288-06:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='javascript'/><category scheme='http://www.blogger.com/atom/ns#' term='jsure'/><title type='text'>JavaScript, FireBug &amp; JSure</title><content type='html'>En estas dos ultimas semanas, me vi en la penosa situación, de comprender, alterar y depurar código JavaScript ajeno. JavaScript es un lenguaje script (lo que generalmente implica que es interpretado) usualmente integrado a los navegadores web, para desarrollar paginas web "dinámicas". Se caracteriza por ser un lenguaje basado en prototipos con tipos de datos débil. Inspirado en múltiples lenguajes, fue diseñado con Java (e inherentemente C) en mente.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Todo navegador web que se respete, debe ser capaz de interpretar el &lt;/b&gt;&lt;br /&gt;&lt;b&gt;código JavaScript que se emplee en una pagina web&lt;/b&gt;, pero como se podrán imaginar, &lt;a href="http://www.blogger.com/goog_1257714242864"&gt;no todos los navegadores interpretan igual el código &lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.srbyte.com/2009/06/tu-sitio-compatible-en-todos-los.html"&gt;JavaScript&lt;/a&gt; (entre las diferentes versiones de los mismos). Es por eso, que al crear paginas Web modernas e interactivas, hay que utilizar una librería (framework) que cumpla la importante característica de la interoperabilidad entre multiples navegadores (como recordatorio) a esto se le llama: CrossBrowser.&lt;br /&gt;&lt;br /&gt;Dojo, &lt;a href="http://www.srbyte.com/2009/10/trabajando-con-google-web-toolkit-y.html"&gt;Google Web Toolkit&lt;/a&gt;, ICEFaces, jQuery, son algunos ejemplos de librerías y  frameworks CrossBrowser, y como pueden ver en el caso de GWT y ICEFaces,  a veces ni siquiera se necesita codifica JavaScript.&lt;br /&gt;&lt;br /&gt;Un gran, gran problema con JavaScript, radica en el proceso de depuración del mismo. Si bien existen herramientas bien integradas como Aptana, que te permite depurar código JavaScript en su entorno, en otros casos, como en RAD 7.0... (al menos con mi instalación) este IDE no me deja depurar JavaScript.&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/_ayvorITawE4/Svc3PejcMxI/AAAAAAAACN0/HzOBSkO33Ho/s1600-h/frustration.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://3.bp.blogspot.com/_ayvorITawE4/Svc3PejcMxI/AAAAAAAACN0/HzOBSkO33Ho/s320/frustration.png" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;Supongamos el escenario con un entorno de programación desfasado, en donde no podemos poner puntos de interrupción en el código JavaScript, analizar la pila, o inspeccionar variables... ¿Qué se emplea en este caso tan &lt;br /&gt;desahuciado?&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size: large;"&gt;FireBug&lt;/span&gt;&lt;br /&gt;&lt;b&gt; FireBug&lt;/b&gt; es un complemento de Firefox creado y diseñado especialmente para desarrolladores y programadores web. Es un paquete de utilidades con el que se puede analizar, editar, monitorear y depurar el código fuente, &lt;br /&gt;CSS, HTML y JavaScript de una pagina web en una manera instantánea y "en &lt;br /&gt;caliente" (por ejemplo si se borra una clase CSS, se ve inmediatamente el cambio reflejado en la pagina, eso si: sin modificar el código original).&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/_ayvorITawE4/Svc3KXmPBpI/AAAAAAAACNk/-hrk_3l7DPI/s1600-h/firebug.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://2.bp.blogspot.com/_ayvorITawE4/Svc3KXmPBpI/AAAAAAAACNk/-hrk_3l7DPI/s320/firebug.png" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.srbyte.com/2008/10/depurando-css-y-javascript-con-internet.html"&gt;Para Internet Explorer&lt;/a&gt; 7, tenemos el DebugBar, que saca de problemas, &lt;br /&gt;pero no es tan bueno como su contraparte (FireBug), e Internet Explorer 8 trae una herramienta integrada similar en funcionamiento a FireBug.&lt;br /&gt;&lt;br /&gt;Todo esto es muy bueno, pero existe otro problema. Quizas estas &lt;br /&gt;utilizando un archivo JavaScript de 32 KB en el trabajo (eso es cerca de 900 &lt;br /&gt;lineas de codigo), y quizas estas pensando: "si es tan grande,  probablemente este mal... cambiare algunas cosas para hacerlo más pequeño", existirá un punto en el que todo funciona perfectamente, y dos minutos despues, ya no funciona nada mas. ¿Les ha sucedido esto alguna vez? es sumamente frustrante. En esos dos minutos, hiciste tantos cambios (unos 20 quizas) que no  recuerdas que hiciste exactamente para arruinar catastroficamente todo.&lt;br /&gt;&lt;br /&gt;Con los archivos JavaScript tradicionalmente existe "la solución" de revertir todos los cambios y dejarlo todo como cuando funcionaba bien... suponiendo que el archivo .js esta versionado, solo perderas un par de &lt;br /&gt;horas de tu vida para arreglar todo nuevamente, esperando no arruinar nuevamente todo de manera irreversible. En caso contrario, si el archivo no esta versionado, comenzaras a presionar "deshacer, deshacer, deshacer..." hasta que te des cuenta que esto no sirve de nada. Antes de ponerte verde de la ira, recomiendo para estos casos extremos, el uso de...&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size: large;"&gt;JSure&lt;/span&gt; &lt;br /&gt;&lt;b&gt;JSure&lt;/b&gt; es un &lt;b&gt;analizador de sintaxis&lt;/b&gt; de JavaScript (probablemente el mejor &lt;br /&gt;que hay), de manera que &lt;a href="http://www.jsure.org/"&gt;JSure&lt;/a&gt;, te puede decir exactamente donde esta el &lt;br /&gt;problema con el código JavaScript que modificaste, y también te muestra la linea del error y el error en si mismo remarcado. Lo mejor de JSure, es que existe una versión para Linux y MacOS X, y para los usuarios de Windows, se puede emplear la versión en linea (&lt;a href="http://www.jsure.org/"&gt;http://www.jsure.org/&lt;/a&gt;), que permite verificar pequeños métodos o grandes archivos.&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/_ayvorITawE4/Svc3MKV8EII/AAAAAAAACNs/_ZANt7ysHsg/s1600-h/logo.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://2.bp.blogspot.com/_ayvorITawE4/Svc3MKV8EII/AAAAAAAACNs/_ZANt7ysHsg/s320/logo.png" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;Con estas dos fabulosas herramientas, he logrado convertir mi vieja relación de amor/odio con JavaScript, en "más amor y menos odio" ... pero todavía no dejo de odiarlo... en fin, JSure es una herramienta tan indispensable como FireBug, espero que a ustedes también les sirva tanto como a mi.&lt;br /&gt;&lt;br /&gt;Más información:&lt;br /&gt;&lt;a href="http://www.jsure.org/"&gt;http://www.jsure.org/&lt;/a&gt;&lt;br /&gt;&lt;b&gt;&lt;a href="http://www.tufuncion.com/firebug"&gt;http://www.tufuncion.com/firebug&lt;/a&gt; (Recomendado)&lt;/b&gt; &lt;br /&gt;&lt;a href="http://es.wikipedia.org/wiki/JavaScript"&gt;http://es.wikipedia.org/wiki/JavaScript&lt;/a&gt;&lt;br /&gt;&lt;a href="http://en.wikipedia.org/wiki/Firebug_%28Firefox_extension%29"&gt;http://en.wikipedia.org/wiki/Firebug_%28Firefox_extension%29&lt;/a&gt;&lt;br /&gt;&lt;a href="http://es.wikipedia.org/wiki/Firebug"&gt;http://es.wikipedia.org/wiki/Firebug&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;¡Saludos!&lt;div class="blogger-post-footer"&gt;Copyleft Rodrigo S. Amaya C. y el staff del Sr. Byte&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3515952828243908885-1113928188051244522?l=www.srbyte.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=3515952828243908885&amp;postID=1113928188051244522' title='2 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3515952828243908885/posts/default/1113928188051244522'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3515952828243908885/posts/default/1113928188051244522'/><link rel='alternate' type='text/html' href='http://www.srbyte.com/2009/11/javascript-firebug-jsure.html' title='JavaScript, FireBug &amp; JSure'/><author><name>Rodrigo Amaya</name><uri>http://www.blogger.com/profile/15626618787991058196</uri><email>rodrigo.amaya@srbyte.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='18286515888004248012'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_ayvorITawE4/Svc3PejcMxI/AAAAAAAACN0/HzOBSkO33Ho/s72-c/frustration.png' height='72' width='72'/><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3515952828243908885.post-8699972522184725240</id><published>2009-10-29T20:32:00.000-06:00</published><updated>2009-10-29T20:32:20.744-06:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ubuntu'/><title type='text'>Acerca de Ubuntu 9.10...</title><content type='html'>&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://www.ubuntu.com/files/masthead/910/tour/910-header.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="140" src="http://www.ubuntu.com/files/masthead/910/tour/910-header.jpg" width="640" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;La nueva versión de &lt;b&gt;Ubuntu 9.10&lt;/b&gt;, disponible desde hoy (Jueves 29), lleva en su corazón cambios y mejoras dedicadas al usuario de las que tenemos que hablar.&lt;br /&gt;Las mejoras inmediatas, estan en los tiempos de carga y secuencia de arranque, mejoras en el audio (PulseAudio) y en de conectividad 3G. &lt;br /&gt;&lt;br /&gt;También podemos mencionar el innovador proyecto "&lt;a href="http://www.srbyte.com/2009/06/mejorando-la-usabilidad-en-ubuntu-910.html"&gt;100 Paper Cuts&lt;/a&gt;", una iniciativa que en conjunto con la comunidad Ubuntu impacta de sobremanera la interfaz del usuario, y propone una nueva forma de mejorar la interfaz visual de cualquier software, liberándola de aquellas tonteras que molestan a los usuarios más exigentes.&lt;br /&gt;&lt;br /&gt;También tenemos ahora el&lt;b&gt; Ubuntu Software Center&lt;/b&gt;, un nuevo intento de encapsular el extenso directorio de aplicaciones disponibles para Ubuntu, exponiendo de manera más sencilla la informacion sobre el mismo. Lo que podemos traducir como acercar más el software libre al usuario.&lt;br /&gt;Ojala que no sea como el (para mi fallido) CRN (Click and Run) de Linspire.&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://www.ubuntu.com/files/masthead/910/tour/ubuntu-910-software-center.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="152" src="http://www.ubuntu.com/files/masthead/910/tour/ubuntu-910-software-center.jpg" width="320" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;Esta version de Ubuntu incluye la integracion con "&lt;b&gt;Ubuntu One&lt;/b&gt;", un servicio que Canonical libero como beta en mayo de este año. Ubuntu One es una suite de servicios online que mejorar la experiencia del escritorio, simplifica las tareas de respaldo, sincronizacion&amp;nbsp; (notas de Tomboy o contactos entre varias maquinas por ejemplo) y compartir archivos.&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://www.ubuntu.com/files/masthead/910/tour/ubuntu-910-share-files.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="141" src="http://www.ubuntu.com/files/masthead/910/tour/ubuntu-910-share-files.jpg" width="320" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;Ubuntu 9.10 tambien esta pensado para los developers, sean casuales o profesionales. "&lt;b&gt;Quickly&lt;/b&gt;" automatiza las mundanas tareas involucrads en la programcion y ayuda a empaquetar codigo y redistribuirlo mediante los repositorios de Ubuntu. Ahora si esta facil desarrollar en Ubuntu ;)&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size: large;"&gt;Lo más interesante:&lt;/span&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Tiempo de carga más veloz, secuencia de arranque coherente y una interfaz afinada.&lt;/li&gt;&lt;li&gt;Mejoraron PulseAudio&lt;/li&gt;&lt;li&gt;Firefox 3.5&lt;/li&gt;&lt;li&gt;Servicio de almacenamiento en la nube con Ubuntu One (2 GB gratis, 50 GB x $10 mensuales), integrado con el sistema.&lt;/li&gt;&lt;/ul&gt;&lt;span style="font-size: large;"&gt;Vinculos útiles: &lt;/span&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Descarga Ubuntu Para tu PC y Laptop: &lt;a href="http://www.ubuntu.com/"&gt;www.ubuntu.com&lt;/a&gt; &lt;/li&gt;&lt;li&gt;Descarga Ubuntu Netbook Remix: &lt;a href="http://www.ubuntu.com/"&gt;www.ubuntu.com&lt;/a&gt; &lt;br /&gt;&lt;/li&gt;&lt;li&gt;Comienza a utilizar Ubuntu On: &lt;a href="http://one.ubuntu.com/"&gt;one.ubuntu.com&lt;/a&gt; &lt;br /&gt;&lt;/li&gt;&lt;li&gt;Consigue soporte personal (para el usuario final) de canonical, por $55 anuales: &lt;a href="http://www.ubuntu.com/support/services"&gt;www.ubuntu.com/support/services&lt;/a&gt;     &lt;br /&gt;&lt;/li&gt;&lt;li&gt;Netbooks que soporta Ubuntu: &lt;a href="https://wiki.ubuntu.com/HardwareSupport/Machines/Netbooks"&gt;https://wiki.ubuntu.com/HardwareSupport/Machines/Netbooks&lt;/a&gt;     &lt;br /&gt;&lt;/li&gt;&lt;li&gt;Caracteristicas de Karmic Koala: &lt;a href="http://www.ubuntu.com/products/whatisubuntu/910features/"&gt;http://www.ubuntu.com/products/whatisubuntu/910features/&lt;/a&gt;&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;¿Qué esperas para descargarlo?&lt;div class="blogger-post-footer"&gt;Copyleft Rodrigo S. Amaya C. y el staff del Sr. Byte&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3515952828243908885-8699972522184725240?l=www.srbyte.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=3515952828243908885&amp;postID=8699972522184725240' title='3 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3515952828243908885/posts/default/8699972522184725240'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3515952828243908885/posts/default/8699972522184725240'/><link rel='alternate' type='text/html' href='http://www.srbyte.com/2009/10/acerca-de-ubuntu-910.html' title='Acerca de Ubuntu 9.10...'/><author><name>Rodrigo Amaya</name><uri>http://www.blogger.com/profile/15626618787991058196</uri><email>rodrigo.amaya@srbyte.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='18286515888004248012'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3515952828243908885.post-3802782752421137828</id><published>2009-10-26T10:00:00.002-06:00</published><updated>2009-10-27T20:10:46.037-06:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='threads'/><category scheme='http://www.blogger.com/atom/ns#' term='programacion'/><category scheme='http://www.blogger.com/atom/ns#' term='hilos'/><title type='text'>Hilos y Sincronización...</title><content type='html'>En el trabajo, existen un buen numero de componentes que fueron ideados para ser reusables o "genéricos", el diseño de estos a veces funciona y otras... digamos que dejan mucho que desear. Pero existe un componente que resulta interesante (más nada practico en lo personal, a pesar de que se esta usando), que terminan empleando todas las aplicaciones, y en pocas palabras, se encarga de determinar la configuración adecuada a emplear de acuerdo al ambiente (ruta e IP) en el que se encuentra, nos referiremos a este componente con el nombre ficticio de: "&lt;b&gt;ConfigUtility&lt;/b&gt;". Para usar este componente en X aplicación, se instancia un objeto "ReadConfiguration", y se especifica de que aplicativo queremos la información, luego el ReadConfiguration, leerá de un archivo XML la configuración adecuada a la aplicación especificada.&lt;br /&gt;&lt;br /&gt;Existen dos problemas fundamentales con el ConfigUtility...&lt;br /&gt;El primero, es que cada vez que se realiza una instancia de este objeto, se realiza la lectura y conversión de un archivo XML a un objeto.&lt;br /&gt;El segundo es que en un segundo, un proceso puede invocar hasta seis veces el ConfigUtility, lo que se convierte en seis lecturas del mismo archivo... y si son 100 usuarios los que usan ese proceso en un determinado instante (algo muy probable), entonces son 600 lecturas en un segundo de ese archivo.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Se me ocurrió mejorar los tiempos de carga del archivo realizan un "&lt;a href="http://en.wikipedia.org/wiki/Cache"&gt;cache&lt;/a&gt;" del objeto en memoria, y modificar este hasta que el archivo XML cambie en el disco. Una buena idea cuando se prueba con una sola persona, pero que se convierte en un caos con muchas usuarios.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/_ayvorITawE4/SuUNCTHQvmI/AAAAAAAACNE/C-X8UEXltno/s1600-h/threads.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://1.bp.blogspot.com/_ayvorITawE4/SuUNCTHQvmI/AAAAAAAACNE/C-X8UEXltno/s320/threads.jpg" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;¿La razón del fracaso? &lt;b&gt;los hilos de ejecución&lt;/b&gt; (&lt;a href="http://www.javaworld.com/javaworld/jw-04-1996/jw-04-threads.html"&gt;Threads&lt;/a&gt;).&lt;br /&gt;&lt;br /&gt;Un hilo de ejecución, es una característica en los procesadores que permite a una aplicación realizar varias tareas a la vez (concurrentemente), especialmente en los ambientes multi-núcleo modernos que se vuelven más y mas comunes. Los distintos hilos de ejecución comparten una serie de recursos tales como el espacio de memoria, los archivos abiertos, situación de autenticación, etc.&lt;br /&gt;Así una aplicación puede llevar a cabo distintas tareas simultáneamente por ejemplo: Writer de OpenOffice.org y Word, emplean hilos para ejecutar el proceso del corrector ortográfico mientras se escribe.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;A la sumatoria de los hilos de ejecución y los recursos que estos comparten se les conoce como: &lt;a href="http://en.wikipedia.org/wiki/Process_%28computing%29"&gt;proceso&lt;/a&gt; (Lo que ves cuando ejecutas Top en el bash, o el TaskManager en Windows). El hecho de que los hilos de ejecución de un mismo proceso compartan los recursos hace que cualquiera de estos hilos pueda modificar éstos. Cuando un hilo modifica un dato en la memoria, los otros hilos pueden acceder a ese dato modificado inmediatamente. En el ConfigUtility (antes de la dichosa mejora) cada objeto pertenece a un hilo, y este realiza la lectura del archivo. Si existen muchas lecturas al archivo, cada hilo correspondiente se espera a que el otro hilo suelte el archivo para poder leerlo completamente.&lt;br /&gt;&lt;br /&gt;En el nuevo ConfigUtility, como la información del archivo en cuestión se mantiene en memoria como objeto (y esta información se comparte entre todas las instancias del objeto), la única vez que esta información pueda cambiar, es cuando el archivo XML real sea modificado. Sin este cambio la lectura del archivo era de 1.6 segundos, con el cambio solo la primera lectura tiene ese tiempo y las lecturas/invocaciones consecutivas retornan en un tiempo de 234 milisegundos.&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/_ayvorITawE4/SuUN2fwNJOI/AAAAAAAACNU/aubU9HuHolA/s1600-h/runforrestrun.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://2.bp.blogspot.com/_ayvorITawE4/SuUN2fwNJOI/AAAAAAAACNU/aubU9HuHolA/s320/runforrestrun.jpg" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;span style="font-size: x-small;"&gt;&lt;i&gt; "Run ... new instance of ReadConfiguration, Run!"&lt;/i&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;Pero los hilos comenzaron a molestarse, ya que en determinados momentos y circunstancias todos querían verificar si el archivo había cambiado, al mismo tiempo (lo que genera un error de concurrencia) y todos querían emplear el objeto en memoria (objeto que podía contener información corrupta, porque la lectura y escritura a este no era Atómica). Claro, acá falta explicar muchas cosas sobre como es el código en cuestión, &lt;a href="http://es.wikipedia.org/wiki/Atomicidad"&gt;atomicidad&lt;/a&gt;, &lt;a href="http://en.wikipedia.org/wiki/Concurrency_%28computer_science%29"&gt;concurrencia&lt;/a&gt;, locks, mutex y demás, pero se entiende la idea (bien) general (quizás más adelante escriba un poco sobre lo mencionado).&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/_ayvorITawE4/SuUNGQUN_BI/AAAAAAAACNM/Dgem8LKcuqs/s1600-h/578px-Dining_philosophers.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://2.bp.blogspot.com/_ayvorITawE4/SuUNGQUN_BI/AAAAAAAACNM/Dgem8LKcuqs/s320/578px-Dining_philosophers.png" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;div style="text-align: center;"&gt;&lt;span style="font-size: x-small;"&gt;&lt;i&gt;"El dilema de los Filosofos (Concurrencia)"&lt;/i&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;¿La solución? Sincronizar los hilos. Al menos la solución sencilla de implementar, consiste en emplear la palabra reservada de Java: &lt;b&gt;Synchronize&lt;/b&gt;, para asegurarnos que un bloque de código (o un método completo) sea "&lt;a href="http://en.wikipedia.org/wiki/Thread_Safe"&gt;Thread Safe&lt;/a&gt;", es decir, que en ese preciso bloque, los hilos harán "fila" para usarlo.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size: large;"&gt;La lección:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Programar con la idea de la concurrencia en mente...&amp;nbsp; no solo cuando haces algo nuevo, sino que también cuando modificas algo existente. Hay que recordar, que en un ambiente con muchos clientes conectados que pueden emplear el mismo método en un determinado instante, &lt;b&gt;puede suceder que treinta hilos corren salvajemente a utilizar un recurso critico, lo que podría resultar en un pequeño infierno de dudas, incertidumbres y defectos extraños&lt;/b&gt;, todo porque tu lógica no es "Thread Safe".&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;¡No se olviden de sincronizar sus hilos! Saludos :)&lt;div class="blogger-post-footer"&gt;Copyleft Rodrigo S. Amaya C. y el staff del Sr. Byte&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3515952828243908885-3802782752421137828?l=www.srbyte.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=3515952828243908885&amp;postID=3802782752421137828' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3515952828243908885/posts/default/3802782752421137828'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3515952828243908885/posts/default/3802782752421137828'/><link rel='alternate' type='text/html' href='http://www.srbyte.com/2009/10/hilos-y-sincornizacion.html' title='Hilos y Sincronización...'/><author><name>Rodrigo Amaya</name><uri>http://www.blogger.com/profile/15626618787991058196</uri><email>rodrigo.amaya@srbyte.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='18286515888004248012'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_ayvorITawE4/SuUNCTHQvmI/AAAAAAAACNE/C-X8UEXltno/s72-c/threads.jpg' height='72' width='72'/><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3515952828243908885.post-1466532951233472195</id><published>2009-10-25T21:53:00.000-06:00</published><updated>2009-10-25T21:53:10.424-06:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='campus'/><category scheme='http://www.blogger.com/atom/ns#' term='party'/><title type='text'>¿Quieres ir al Campus Party en México?</title><content type='html'>Lectores, esta breve nota seguramente les interesara: por medio de Twitter, Facebook y el &lt;a href="http://blog.realactionsoft.com/2009/10/campus-party-mexico-mas-cerca-de-ls.html"&gt;blog de Oscar Guandique&lt;/a&gt;, me di cuenta de una buena noticia para todos aquellos que quieran revivir la experiencia de la &lt;a href="http://www.srbyte.com/2008/10/campus-party-iberoamerica.html"&gt;Campus Party&amp;nbsp; Iberoamericana&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/_ayvorITawE4/SuUdHF1MRCI/AAAAAAAACNc/BeVmLTYJ7kk/s1600-h/logo_campuspartymx2.gif" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://4.bp.blogspot.com/_ayvorITawE4/SuUdHF1MRCI/AAAAAAAACNc/BeVmLTYJ7kk/s320/logo_campuspartymx2.gif" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;Resulta que Paco Gagageles, el Presidente de Futura Networks, que es la entidad organizadora de la Campus Party a nivel global, contacto al Grupo de Campuseros Salvadoreños en Facebook con una propuesta para los que tenian ganas de ir al CP en Mexico:&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;&lt;i&gt;"Si se organiza al menos un bus de campuseros que parta a mexico, se les regala la entrada a la Campus Party México."&lt;/i&gt;&lt;br /&gt;&lt;/blockquote&gt;&lt;br /&gt;&lt;b&gt;Requisitos mínimos:&lt;/b&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Detalles y consejos de viaje: &lt;a href="http://www.campus-party.com.mx/"&gt;http://www.campus-party.com.mx&lt;/a&gt;&lt;/li&gt;&lt;li&gt;Visa Mexicana: &lt;a href="http://portal.sre.gob.mx/elsalvador/"&gt;http://portal.sre.gob.mx/elsalvador/&lt;/a&gt;&lt;/li&gt;&lt;li&gt;Ponerse en contacto con el grupo de FaceBook: &lt;a href="http://www.facebook.com/group.php?gid=35098831133"&gt;http://www.facebook.com/group.php?gid=35098831133&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;También se pueden poner en contacto con la amiga &lt;a href="http://twitter.com/darkela"&gt;@darkela&lt;/a&gt; para organizar la salida en bus y obtener detalles adicionales. Recomiendo que se suscriban al grupo en FB, esto es muy importante para estar al tanto de la ida al CP en Mexico.&lt;br /&gt;&lt;br /&gt;¡Espero que les salga el viaje, saludos!&lt;div class="blogger-post-footer"&gt;Copyleft Rodrigo S. Amaya C. y el staff del Sr. Byte&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3515952828243908885-1466532951233472195?l=www.srbyte.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=3515952828243908885&amp;postID=1466532951233472195' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3515952828243908885/posts/default/1466532951233472195'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3515952828243908885/posts/default/1466532951233472195'/><link rel='alternate' type='text/html' href='http://www.srbyte.com/2009/10/quieres-ir-al-campus-party-en-mexico.html' title='¿Quieres ir al Campus Party en México?'/><author><name>Rodrigo Amaya</name><uri>http://www.blogger.com/profile/15626618787991058196</uri><email>rodrigo.amaya@srbyte.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='18286515888004248012'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_ayvorITawE4/SuUdHF1MRCI/AAAAAAAACNc/BeVmLTYJ7kk/s72-c/logo_campuspartymx2.gif' height='72' width='72'/><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3515952828243908885.post-3289853482720812936</id><published>2009-10-24T05:39:00.000-06:00</published><updated>2009-10-24T05:39:00.337-06:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ruby'/><category scheme='http://www.blogger.com/atom/ns#' term='java'/><category scheme='http://www.blogger.com/atom/ns#' term='linux'/><category scheme='http://www.blogger.com/atom/ns#' term='framework'/><category scheme='http://www.blogger.com/atom/ns#' term='ajax'/><category scheme='http://www.blogger.com/atom/ns#' term='python'/><category scheme='http://www.blogger.com/atom/ns#' term='google'/><category scheme='http://www.blogger.com/atom/ns#' term='appengine'/><title type='text'>Trabajando con Google Web Toolkit y Google App Engine</title><content type='html'>&lt;div style="text-align: center;"&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_jH77WNrMVRA/SuJ5sYPGDtI/AAAAAAAAGEE/sN8caM4EpFk/s1600-h/gappengine.gif"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 142px; height: 109px;" src="http://4.bp.blogspot.com/_jH77WNrMVRA/SuJ5sYPGDtI/AAAAAAAAGEE/sN8caM4EpFk/s400/gappengine.gif" alt="" id="BLOGGER_PHOTO_ID_5396009106870243026" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-style: italic;"&gt;"Logotipo del framework Google App Engine"&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;Habiendo salido de mi tesis recientemente, me he interesado en buscar hobbies relacionados con programación y en plasmar muchas ideas de software que vinieron a mi cabeza mientras estaba ocupado haciendo el trabajo de grado. Uno de los inconvenientes que tenemos los desarrolladores Java es que no existen en internet tantas alternativas para hosting de aplicaciones así como la gran variedad disponible para el Stack LAMP (Linux/Apache/Mysql/PHP).&lt;br /&gt;&lt;br /&gt;Además, cada programador Java está acostumbrado a trabajar con su propio Stack y es bastante diversa la gama de combinaciones que se pueden armar entre sistema operativo, application server y framework para el entorno visual así como la base de datos y el framework para la persistencia de los datos, esto sin mencionar las versiones de cada una de estas soluciones informáticas. Esto hace aun mas difícil encontrar entornos (pagados o gratuitos) donde alojar nuestras aplicaciones web a menos que nos decidamos a montar nuestro propio server.&lt;br /&gt;&lt;br /&gt;Buscando en internet me dí cuenta que Google ofrece una alternativa sencilla y barata (gratuita hasta cierto punto) para alojar aplicaciones desarrolladas con Java: &lt;a href="http://code.google.com/appengine/"&gt;Google App Engine&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Este servicio de google te permite desarrollar aplicaciones relativamente sencillas y hostearlas dentro de los servidores que ellos mismos te ofrecen. Eso si, no puede ser cualquier tipo de aplicación y lo mejor sería desarrollar aplicaciones orientadas a esta plataforma de Google, ya que estos ya te ofrecen la alternativa para la persistencia de los datos y los frameworks visuales a utilizar.&lt;br /&gt;&lt;br /&gt;La ventaja es que el soporte se ve bastante decente (te brindan un plugin para Eclipse que te hace la mayor parte del trabajo de configuración y el upload de tu aplicación) además que la documentación te explica el framework de una manera bastante sencilla. En la &lt;a href="http://appgallery.appspot.com/"&gt;galería de aplicaciones&lt;/a&gt; puedes ver las aplicaciones que otros ya han publicado, notando que algunas pueden ser bastante complejas y de un acabado muy profesional.&lt;br /&gt;&lt;br /&gt;Lo único a tener en cuenta es que nada mas puedes subir 10 aplicaciones como máximo, y no puedes borrar una aplicación que ya has subido al server de Google.&lt;br /&gt;&lt;br /&gt;Otro tema que me llamó la atención al navegar entre las soluciones de desarrollo de google fue el GWT, &lt;a href="http://code.google.com/webtoolkit/"&gt;Google Web Toolkit&lt;/a&gt;. Este es un framework visual para apps web que te permite desarrollar aplicaciones sin la necesidad de escribir HTML o Javascript, generándolo todo desde clases Java. Es un framework bastante joven comparado con JSF, Struts o Tapestry pero teniendo el respaldo de google puede llegar lejos, ademas la idea de no escribir HTML será un alivio para muchos desarrolladores web que no saben mucho de estructuración y decoración de sitios web con HTML/CSS y desean una solución rápida y sencilla para sus interfaces. Al igual que con el App Engine Framework, Google apuesta nuevamente por eclipse brindando soporte para la creación de proyectos de GWT mediante asistentes y el uso de un navegador embedido que te permite realizar pruebas de tus aplicaciones sin necesidad de hacer deploy.&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: center;"&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_jH77WNrMVRA/SuKFrnovl0I/AAAAAAAAGEM/Ri5ZYz6R2lo/s1600-h/sampleGWTapp.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 250px;" src="http://2.bp.blogspot.com/_jH77WNrMVRA/SuKFrnovl0I/AAAAAAAAGEM/Ri5ZYz6R2lo/s400/sampleGWTapp.png" alt="" id="BLOGGER_PHOTO_ID_5396022287964018498" border="0" /&gt;&lt;/a&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-style: italic;"&gt;"Aplicación de ejemplo de uso de GWT, creada a partir de un proyecto web de eclipse con el plugin de GWT y App Engine. En la captura pueden apreciar el browser embedido que incluye el framework de GWT.&lt;/span&gt;&lt;span style="font-style: italic;"&gt;"&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;Cabe mencionar que GWT puede ser usado nada más para generar el HTML/Javascript de un sitio, usando cualquier otro lenguaje de programación del lado del server. Como ellos bien lo mencionan, este puede ser usado para generar front-ends en aplicaciones Ruby, Python, etc. Además es full Ajax-enabled trabajando de forma transparente con invocaciones a código del lado del servidor hecho con Java y mediante el uso de XML-RPC para otros lenguajes.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.blogalaxia.com/tags/ajax" rel="tag"&gt;ajax&lt;/a&gt; &lt;a href="http://www.blogalaxia.com/tags/appengine" rel="tag"&gt;appengine&lt;/a&gt; &lt;a href="http://www.blogalaxia.com/tags/framework" rel="tag"&gt;framework&lt;/a&gt; &lt;a href="http://www.blogalaxia.com/tags/google" rel="tag"&gt;google&lt;/a&gt; &lt;a href="http://www.blogalaxia.com/tags/java" rel="tag"&gt;java&lt;/a&gt; &lt;a href="http://www.blogalaxia.com/tags/ruby" rel="tag"&gt;ruby&lt;/a&gt; &lt;a href="http://www.blogalaxia.com/tags/python" rel="tag"&gt;python&lt;/a&gt; &lt;a href="http://www.blogalaxia.com/tags/linux" rel="tag"&gt;linux&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;Copyleft Rodrigo S. Amaya C. y el staff del Sr. Byte&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3515952828243908885-3289853482720812936?l=www.srbyte.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=3515952828243908885&amp;postID=3289853482720812936' title='3 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3515952828243908885/posts/default/3289853482720812936'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3515952828243908885/posts/default/3289853482720812936'/><link rel='alternate' type='text/html' href='http://www.srbyte.com/2009/10/trabajando-con-google-web-toolkit-y.html' title='Trabajando con Google Web Toolkit y Google App Engine'/><author><name>Robertux</name><uri>http://www.blogger.com/profile/15615123126956711175</uri><email>BlendBoy@gmail.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='07053113567322157156'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_jH77WNrMVRA/SuJ5sYPGDtI/AAAAAAAAGEE/sN8caM4EpFk/s72-c/gappengine.gif' height='72' width='72'/><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3515952828243908885.post-1084603112247587829</id><published>2009-10-15T18:33:00.004-06:00</published><updated>2009-10-15T18:58:33.310-06:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='luto'/><category scheme='http://www.blogger.com/atom/ns#' term='hpp'/><category scheme='http://www.blogger.com/atom/ns#' term='happy punk panda'/><title type='text'>Apoyando a Happy Punk Panda</title><content type='html'>Este medio día, me tope con la triste noticia de que Gustavo Gutierrez (&lt;a href="http://twitter.com/flugus"&gt;@flugus&lt;/a&gt;) falleció. Gustavo es el fundador de los estudios &lt;a style="font-weight: bold;" href="http://happypunkpanda.com/"&gt;Happy Punk Panda&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_ayvorITawE4/StfEcTYytUI/AAAAAAAACM4/ZCmAAWE-HlE/s1600-h/hpp.home01_r2_c3.gif"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 171px; height: 111px;" src="http://1.bp.blogspot.com/_ayvorITawE4/StfEcTYytUI/AAAAAAAACM4/ZCmAAWE-HlE/s320/hpp.home01_r2_c3.gif" alt="" id="BLOGGER_PHOTO_ID_5392995069319099714" border="0" /&gt;&lt;/a&gt;&lt;span style="font-weight: bold;"&gt;Happy Punk Panda &lt;/span&gt;(HPP), se dedica al diseño de sitios Web, a la animación (2D y 3D) y multimedia en general. Uno de sus proyectos más ambiciosos: "&lt;a href="http://www.facebook.com/home.php?#/carretabruja?ref=ts"&gt;La Leyenda de la Carreta Bruja&lt;/a&gt;", fue el que me hizo ver el espiritu emprededor de Gustavo y del equipo de HPP.&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: center;"&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_ayvorITawE4/StfEbsVpbsI/AAAAAAAACMo/vLbBOua5qjo/s1600-h/carreta.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 212px; height: 320px;" src="http://1.bp.blogspot.com/_ayvorITawE4/StfEbsVpbsI/AAAAAAAACMo/vLbBOua5qjo/s320/carreta.jpg" alt="" id="BLOGGER_PHOTO_ID_5392995058836926146" border="0" /&gt;&lt;/a&gt; &lt;span style="font-size:85%;"&gt;&lt;a style="font-style: italic;" href="http://laleyendadelacarretabruja.com/"&gt;http://laleyendadelacarretabruja.com/&lt;/a&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;Conocí a Gustavo el año pasado, en la Campus Party Iberoamericana, y hace poco comenzamos a hablar un poco mas seguido. Sinceramente, puedo decir que es de las pocas personas (al menos en El Salvador) que admiro. Dedicado, honesto, proactivo y trabajador son caracteristicas que lo definian, a el y a su equipo. Espero sinceramente, que el equipo de Happy Punk Panda no se desanime, que sigan con su trabajo como siempre, y que no dejen a Gito Gito (la mascota) sin familia...&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: center;"&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_ayvorITawE4/StfEb5sCEPI/AAAAAAAACMw/pDz1t72DtPc/s1600-h/HAPPY_PUNK_PANDA_3D_by_flugus.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px; height: 180px;" src="http://3.bp.blogspot.com/_ayvorITawE4/StfEb5sCEPI/AAAAAAAACMw/pDz1t72DtPc/s320/HAPPY_PUNK_PANDA_3D_by_flugus.jpg" alt="" id="BLOGGER_PHOTO_ID_5392995062420476146" border="0" /&gt;&lt;/a&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-style: italic;"&gt;"Gito Gito"&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;br /&gt;Este blog se une al luto de Happy Punk Panda, y oramos por la familia y amigos de Gustavo para resignarce ante la perdida. "Te fuiste a animar el cielo".&lt;div class="blogger-post-footer"&gt;Copyleft Rodrigo S. Amaya C. y el staff del Sr. Byte&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3515952828243908885-1084603112247587829?l=www.srbyte.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=3515952828243908885&amp;postID=1084603112247587829' title='5 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3515952828243908885/posts/default/1084603112247587829'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3515952828243908885/posts/default/1084603112247587829'/><link rel='alternate' type='text/html' href='http://www.srbyte.com/2009/10/apoyando-happy-punk-panda.html' title='Apoyando a Happy Punk Panda'/><author><name>Rodrigo Amaya</name><uri>http://www.blogger.com/profile/15626618787991058196</uri><email>rodrigo.amaya@srbyte.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='18286515888004248012'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_ayvorITawE4/StfEcTYytUI/AAAAAAAACM4/ZCmAAWE-HlE/s72-c/hpp.home01_r2_c3.gif' height='72' width='72'/><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>5</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3515952828243908885.post-6943288365160740787</id><published>2009-10-14T20:01:00.005-06:00</published><updated>2009-10-14T20:46:44.806-06:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='algoritmos'/><category scheme='http://www.blogger.com/atom/ns#' term='heuristica'/><title type='text'>¿Qué es Heurística?</title><content type='html'>Si has "escaneado" tu máquina con un antivirus, y pasaste minutos de tu vida mirando la barra de progreso y los comentarios en cada archivo, probablemente viste mas de alguna vez (y con cualquier buen antivirus) la palabra: &lt;b&gt;heurística&lt;/b&gt;.&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: center;"&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_ayvorITawE4/StaLNqjxc3I/AAAAAAAACMY/PGHIFcanHw8/s1600-h/searchradarpc.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px; height: 210px;" src="http://4.bp.blogspot.com/_ayvorITawE4/StaLNqjxc3I/AAAAAAAACMY/PGHIFcanHw8/s320/searchradarpc.jpg" alt="" id="BLOGGER_PHOTO_ID_5392650670701638514" border="0" /&gt;&lt;/a&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-style: italic;"&gt;"Fuera interesante ver el progreso de escaneo de un ativirus así"&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;br /&gt;En la mayoría de antivirus, la &lt;a href="http://es.wikipedia.org/wiki/Heur%C3%ADstica_%28inform%C3%A1tica%29"&gt;heurística&lt;/a&gt; se refiere a una técnica especifica para reconocer código malicioso (&lt;a href="http://es.wikipedia.org/wiki/Virus_%28inform%C3%A1tica%29" title="Virus (informática)" target="_blank"&gt;virus&lt;/a&gt;, &lt;a href="http://es.wikipedia.org/wiki/Gusano_%28inform%C3%A1tica%29" title="Gusano (informática)" target="_blank"&gt;gusanos&lt;/a&gt;, &lt;a href="http://es.wikipedia.org/wiki/Caballo_de_Troya_%28inform%C3%A1tica%29" title="Caballo de Troya (informática)" target="_blank"&gt;troyanos&lt;/a&gt;, etc.) que este (el antivirus) no posea en su base de datos por diversas razones, como que los programas maliciosos sean nuevos o poco divulgados.&lt;br /&gt;&lt;br /&gt;La heurística, como termino general, implica funcionalidades como detección a través de firmas genéricas, reconocimiento del código compilado, desensamblado, desempaquetamiento, entre otros. Recordemos que &lt;span style="font-weight: bold;"&gt;los antivirus, son como inmensos programas de listas negras&lt;/span&gt;, si encuentran algo en memoria o en el disco que sea igual a lo que esta en su base de datos lo eliminan inmediatamente.  Y con la heurística, sus capacidades para detectar software malicioso aumenta. La importancia comercial y técnica de la heurística (al menos en los antivirus) radica en el hecho de ser la única defensa automática y reactiva posible frente a la aparición de nuevo software maliciosos de los que no se posea "firmas" o conocimiento alguno (en la base de datos).&lt;br /&gt;&lt;blockquote style="font-weight: bold;"&gt;Pero claro, el costo de la seguridad es el desempeño y por esta misma razón mientras mas detallado o profundo sea el análisis heurístico de un antivirus, más pobre sera el rendimiento del mismo.&lt;br /&gt;&lt;/blockquote&gt;La heurística no solo se emplea como palabra complicada para denotar una técnica que todo antivirus decente debería tener, sino que también se emplea en el area de la inteligencia artificial. Muchos algoritmos de "denominada" &lt;a href="http://es.wikipedia.org/wiki/Inteligencia_artificial" title="Inteligencia artificial" target="_blank"&gt;inteligencia artificial&lt;/a&gt; son heurísticos por naturaleza o usan reglas heurísticas, un excelente ejemplo es &lt;a href="http://spamassassin.apache.org/" title="SpamAssassin (aún no redactado)" target="_blank"&gt;SpamAssassin&lt;/a&gt; que usa una amplia variedad de reglas heurísticas para determinar cuando un email es &lt;a href="http://es.wikipedia.org/wiki/Spam" title="Spam" target="_blank"&gt;spam&lt;/a&gt;...&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: center;"&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://upload.wikimedia.org/wikipedia/commons/b/b7/SpamAssassin_logo.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 300px; height: 127px;" src="http://upload.wikimedia.org/wikipedia/commons/b/b7/SpamAssassin_logo.png" alt="" border="0" /&gt;&lt;/a&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-style: italic;"&gt;"SpamAssassin = Apache.org + Heuristics"&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;Cualquiera de las reglas usadas de forma independiente pueden llevar a errores de clasificación, pero cuando se unen múltiples reglas heurísticas, la solución es más robusta y creíble. Esto se llama alta credibilidad en el reconocimiento de patrones.&lt;br /&gt;&lt;br /&gt;Ahora bien, no todo es bueno con la heurística... si algo podemos decir de un algoritmo cualquiera, es que este se pueda ejecutar varias veces, y su resultado sea óptimo. Por irónico que parezca, un algoritmo heurístico abandona estos objetivos para obtener una buena solucion, que pudiera convertirse arbitrariamente en una mala solucion, como los famosos &lt;a href="http://foros.softonic.com/seguridad/antivirus-da-falsos-posivos-47252"&gt;falsos positivos en un antivirus&lt;/a&gt;...&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: center;"&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_ayvorITawE4/StaLOCESF3I/AAAAAAAACMg/hpNieJRhsrU/s1600-h/utorrent-malware.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px; height: 230px;" src="http://3.bp.blogspot.com/_ayvorITawE4/StaLOCESF3I/AAAAAAAACMg/hpNieJRhsrU/s320/utorrent-malware.png" alt="" id="BLOGGER_PHOTO_ID_5392650677012010866" border="0" /&gt;&lt;/a&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-style: italic;"&gt;":@ esto es lo mas terrible del mundo, un falso positivo en un archivo perfectamente sano."&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;br /&gt;O sino, el algoritmo heurístico se ejecuta razonablemente rápido, pero no hay argumento de que esto siga sucediendo siempre. Finalmente, y con la música de Eurythmics de fondo...&lt;br /&gt;&lt;br /&gt;&lt;center&gt;&lt;object height="344" width="425"&gt;&lt;param name="movie" value="http://www.youtube.com/v/jltdIXuml44&amp;amp;hl=en&amp;amp;fs=1&amp;amp;"&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;param name="allowscriptaccess" value="always"&gt;&lt;embed src="http://www.youtube.com/v/jltdIXuml44&amp;amp;hl=en&amp;amp;fs=1&amp;amp;" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" height="344" width="425"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;/center&gt;&lt;br /&gt;&lt;div style="text-align: center;"&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-style: italic;"&gt;"Eurythmics - Sweet Dreams"&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;...quiero cerrar esta breve explicación de un tema tan amplio citando al científico &lt;a href="http://en.wikipedia.org/wiki/Judea_Pearl" title="Judea Pearl"&gt;Judea Pearl&lt;/a&gt;: &lt;span style="font-style: italic;"&gt;"Heurística, son métodos basados en búsquedas inteligentes de estrategias para resolver problemas computacionales utilizando muchos acercamientos alternativos."&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Espero que les sirva, ¡Saludos!&lt;div class="blogger-post-footer"&gt;Copyleft Rodrigo S. Amaya C. y el staff del Sr. Byte&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3515952828243908885-6943288365160740787?l=www.srbyte.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=3515952828243908885&amp;postID=6943288365160740787' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3515952828243908885/posts/default/6943288365160740787'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3515952828243908885/posts/default/6943288365160740787'/><link rel='alternate' type='text/html' href='http://www.srbyte.com/2009/10/que-es-heuristica.html' title='¿Qué es Heurística?'/><author><name>Rodrigo Amaya</name><uri>http://www.blogger.com/profile/15626618787991058196</uri><email>rodrigo.amaya@srbyte.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='18286515888004248012'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_ayvorITawE4/StaLNqjxc3I/AAAAAAAACMY/PGHIFcanHw8/s72-c/searchradarpc.jpg' height='72' width='72'/><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3515952828243908885.post-611953506305124648</id><published>2009-10-07T05:42:00.003-06:00</published><updated>2009-10-07T07:53:41.859-06:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='java'/><category scheme='http://www.blogger.com/atom/ns#' term='final fantasy'/><category scheme='http://www.blogger.com/atom/ns#' term='rpg'/><category scheme='http://www.blogger.com/atom/ns#' term='lenguaje'/><category scheme='http://www.blogger.com/atom/ns#' term='programacion'/><category scheme='http://www.blogger.com/atom/ns#' term='ibm'/><category scheme='http://www.blogger.com/atom/ns#' term='as400'/><title type='text'>¿Por qué Aprender RPG?</title><content type='html'>La primera vez que escuché hablar del lenguaje de programación RPG mi expresión fue: &lt;span style="font-style: italic;"&gt;"What? Role Playing Game? :O"&lt;/span&gt; porque al igual que muchos programadores, tampoco tenía idea de la existencia de este lenguaje de programación. Aun así, es un lenguaje tan antíguo como Fortran, tan robusto como Java y tan tedioso como Assembler.&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: center;"&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_jH77WNrMVRA/SswsD6jkfSI/AAAAAAAAGDw/Ian4an8-_pE/s1600-h/Final_Fantasy_XII_JAP_FF12.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 300px;" src="http://2.bp.blogspot.com/_jH77WNrMVRA/SswsD6jkfSI/AAAAAAAAGDw/Ian4an8-_pE/s400/Final_Fantasy_XII_JAP_FF12.jpg" alt="" id="BLOGGER_PHOTO_ID_5389731299825319202" border="0" /&gt;&lt;/a&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-style: italic;"&gt;"Final Fantasy VII. Hasta ese entonces, esto es lo que yo conocía como RPG"&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: left;"&gt;La razón por la que RPG no es tan popular como el resto de lenguajes se debe a su aplicación y por la plataforma donde este lenguaje es usado. Esto quiere decir que no encontrarás un IDE o un compilador de RPG para plataformas Intel (como cualquier PC en el mercado) sino que únicamente está disponible para plataformas IBM AS/400.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:130%;"&gt;&lt;span style="font-weight: bold;"&gt;AS/400?&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Es un modelo de mainframes desarrollados por IBM, ahora integrado con otros modelos para formar la familia IBM Power Systems. Estos mainframes son comúnmente utilizados en grandes empresas cuando estas requieren equipo de alto rendimiento para procesar grandes cantidades de transacciones o para contar con un entorno de &lt;a href="http://www.srbyte.com/2009/07/anecdotas-de-virtualizacion.html"&gt;múltiples servidores virtualres&lt;/a&gt;. Estos equipos cuestan candidades de cinco cifras como  mínimo por lo que no cualquierea puede tener uno de estos en su casa para dedicarse a aprender a programar en RPG.&lt;br /&gt;&lt;br /&gt;Esta dificultad para concer el lenguaje ha permitido que existan relativamente pocos programadores conocedores del lenguaje y esto por ende los vuelve muy cotizados en el mercado.&lt;br /&gt;&lt;br /&gt;Aparte de eso, el lenguaje no es tan amigable que digamos especialmente considerando que ya tiene más de cuarenta años de existencia y está muy lejos de ser jubilado. Su apariencia es como una combinación de Assembler (por el hecho de definir su estructura basada en posiciones o columnas) y Fox (por la integración directa con gestor de bases de datos). Ejemplo de ello es la complejidad que implica desarrollar el tan popular programa Hello World:&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: center;"&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_jH77WNrMVRA/SswxCCzHMwI/AAAAAAAAGD4/MnQdzwFMSP0/s1600-h/RPGHelloWorld.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 233px;" src="http://2.bp.blogspot.com/_jH77WNrMVRA/SswxCCzHMwI/AAAAAAAAGD4/MnQdzwFMSP0/s400/RPGHelloWorld.png" alt="" id="BLOGGER_PHOTO_ID_5389736765236392706" border="0" /&gt;&lt;/a&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-style: italic;"&gt;"Ejemplo del programa Hello World escrito en RPG IV (ILE) tomado de &lt;/span&gt;&lt;a style="font-style: italic;" href="http://www.roesler-ac.de/wolfram/hello.htm"&gt;The Hello World Collection&lt;/a&gt;&lt;span style="font-style: italic;"&gt;"&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;Por este hecho, si tienes la oportunidad de trabajar en algún lugar donde cuenten con un servidor AS/400 les recomiendo de sobremanera aprender a utilizar el lenguaje RPG con el que podrán optar a nuevas y mejores oportunidades de empleo.&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;Admito que ni el lenguaje ni la plataforma se llevan bien con la filosofía del software libre o código abierto. IBM siempre ha sido muy cerrado en este aspecto pero aun así todos sabemos que los sistemas basados en el software libre son hoy en día una realidad inminente y la adaptación algo inevitable por lo que esperemos que IBM tome en consideración este hecho así como Sun Microsystems lo hizo alguna vez con Java.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.blogalaxia.com/tags/ibm" rel="tag"&gt;ibm&lt;/a&gt; &lt;a href="http://www.blogalaxia.com/tags/as400" rel="tag"&gt;as400&lt;/a&gt; &lt;a href="http://www.blogalaxia.com/tags/rpg" rel="tag"&gt;rpg&lt;/a&gt; &lt;a href="http://www.blogalaxia.com/tags/programacion" rel="tag"&gt;programacion&lt;/a&gt; &lt;a href="http://www.blogalaxia.com/tags/lenguaje" rel="tag"&gt;lenguaje&lt;/a&gt; &lt;a href="http://www.blogalaxia.com/tags/final+fantasy" rel="tag"&gt;final fantasy&lt;/a&gt; &lt;a href="http://www.blogalaxia.com/tags/java" rel="tag"&gt;java&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;Copyleft Rodrigo S. Amaya C. y el staff del Sr. Byte&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3515952828243908885-611953506305124648?l=www.srbyte.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=3515952828243908885&amp;postID=611953506305124648' title='9 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3515952828243908885/posts/default/611953506305124648'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3515952828243908885/posts/default/611953506305124648'/><link rel='alternate' type='text/html' href='http://www.srbyte.com/2009/10/porque-apernder-rpg.html' title='¿Por qué Aprender RPG?'/><author><name>Robertux</name><uri>http://www.blogger.com/profile/15615123126956711175</uri><email>BlendBoy@gmail.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='07053113567322157156'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_jH77WNrMVRA/SswsD6jkfSI/AAAAAAAAGDw/Ian4an8-_pE/s72-c/Final_Fantasy_XII_JAP_FF12.jpg' height='72' width='72'/><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>9</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3515952828243908885.post-6224843781496121440</id><published>2009-10-05T16:57:00.007-06:00</published><updated>2009-10-05T20:52:38.302-06:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='informatico'/><title type='text'>Día del Informático</title><content type='html'>&lt;p&gt;Cuando comencé mi carrera, como a todos, los compañeros solían preguntarme: ¿Porque estudias Sistemas?. Yo usualmente respondía así:&lt;br /&gt;&lt;/p&gt;&lt;blockquote style="font-style: italic;"&gt;&lt;span style="font-size:100%;"&gt;"Estudio sistemas, porque cuando ordeno algo a la máquina, esta no se equivoca, y si lo hace, es mi culpa, y no de nadie mas."&lt;/span&gt;&lt;/blockquote&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;Simple, practico y directo... yo no quería tener absolutamente nada que ver con personas y "manejarlas" (administrarlas), y por algún tiempo pensé que seria posible hacerlo... &lt;span style="font-weight: bold;"&gt;y vaya que estaba terriblemente equivocado&lt;/span&gt;.&lt;/p&gt;&lt;p&gt;Claro, en "aquellos días" era un muchacho mucho mas enojado y bélico de&lt;br /&gt;lo que soy ahora (gracias a Diosito que me he calmado). Tenia poca confianza y animos para hablar con la gente de software, principalmente por que de por si, casi cualquier tema de informática en una conversación tiene el potencial de dejar en la luna a muchas personas, y también habrá siempre alguno que no entienda lo que se dijo, ¡ah! y claro: los tecnicismos no ayudan para nada, en fin, toda una frustración.&lt;br /&gt;&lt;/p&gt;&lt;p&gt;Así que me forme la idea de que la gente, era algo que tenia que eliminar de la ecuación de mi carrera, y limitarme a programar por programar y listo.  Pasar horas frente a la PC, aprendiendo de forma autodidacta seria mejor que estar con las personas que no entendían pero ni papa de lo que hago.&lt;/p&gt;&lt;p&gt;Error, grave, grave error....&lt;br /&gt;&lt;/p&gt;&lt;p&gt;¿Saben como me dí cuenta de lo equivocado que estaba?: cuando note, que no podía hacer participe de mi alegría en alguna asignatura/trabajo a mi mamá, y contarle que al fin entendí el concepto de "instancia de una clase" (no me lo explicaron bien en Progra II), o pude compilar por primera vez un kernel sin que diera "Kernel Panic"... porque para mi era demasiado difícil explicarle lo que había hecho... bien fregado.&lt;br /&gt;&lt;/p&gt;&lt;p&gt;Luego el aprendizaje y programación se volvieron solitarios, y por lo tanto aburridos, y luego me tope con la filosofía del software libre, y la idea de compartir el código y programar bien (para que la gente entienda ese código) y discutir el código, mejorarlo, y de pronto... me gusto eso de las comunidades de Linux y software libre (como la de &lt;a href="http://ubuntusv.org/ubuntu_web/"&gt;Ubuntu SV&lt;/a&gt;, que los veo muy unidos). Que bueno que esos dias ya pasaron y ahora todo es más sencillo, y este blog es prueba de eso, o al menos, eso intentamos.&lt;br /&gt;&lt;/p&gt;&lt;p&gt;Verán, quieran o no, la gente SI importa en este medio, y vale la pena escribir y explicar la tecnología (y aprender a explicarlo) y reducir la famosa "brecha digital".&lt;/p&gt;&lt;p&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_ayvorITawE4/SsqucEccfLI/AAAAAAAACLo/wVUBoOLgr4s/s1600-h/brain-on-chip-main.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px; height: 175px;" src="http://1.bp.blogspot.com/_ayvorITawE4/SsqucEccfLI/AAAAAAAACLo/wVUBoOLgr4s/s320/brain-on-chip-main.jpg" alt="" id="BLOGGER_PHOTO_ID_5389311701354839218" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt; Si vos, lector, crees que nunca vas a tener que tratar con gente por darle mantenimiento a tu super servidor, en un cuarto frío, o que gastas horas de tu vida&lt;br /&gt;programando como loco y no podes socializar "fuera de la cajita", dejame&lt;br /&gt;decirte (con mucho respeto) que &lt;span style="font-weight: bold;"&gt;estas tirando tu vida al carajo.&lt;/span&gt;&lt;/p&gt;&lt;p&gt;Acordate que por eso: estudiar en grupo es mejor y más divertido, y que&lt;br /&gt;hacer "Extreme Programming" suele ayudar y funciona en momentos de crisis, y los juegos de computadora  que más $$$ dan son los de multijugadores.&lt;/p&gt;&lt;p&gt;La informática, en si misma, sin programadores, sin usuarios, sin&lt;br /&gt;bloggers, sin gente bayunca que atesta sus paginas de Hi5 con miles de&lt;br /&gt;tonterías, y sin los que sueña con cambiar el fondo de su pagina en FaceBook, pues seria terriblemente aburrida (a mi ya me dan risa).&lt;/p&gt;&lt;p style="text-align: center;"&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_ayvorITawE4/Ssqucyv7EcI/AAAAAAAACL4/HUU0aHTr7tA/s1600-h/spamFB.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px; height: 306px;" src="http://3.bp.blogspot.com/_ayvorITawE4/Ssqucyv7EcI/AAAAAAAACL4/HUU0aHTr7tA/s320/spamFB.png" alt="" id="BLOGGER_PHOTO_ID_5389311713784566210" border="0" /&gt;&lt;/a&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-style: italic;"&gt;¡FaceBook Spam!&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;La informática, sin gente, se convierte en simples unos y ceros, "sentados" en un&lt;br /&gt;disco duro, inertes.&lt;/p&gt;&lt;p&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_ayvorITawE4/Ssqucp_UjzI/AAAAAAAACLw/3XIVC9wSSLo/s1600-h/programmer.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 243px; height: 263px;" src="http://3.bp.blogspot.com/_ayvorITawE4/Ssqucp_UjzI/AAAAAAAACLw/3XIVC9wSSLo/s320/programmer.jpg" alt="" id="BLOGGER_PHOTO_ID_5389311711433232178" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;p style="text-align: center;"&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-style: italic;"&gt;"Real programmers code for people"&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;En mi experiencia, pocas cosas dan tanta satisfacción como saber que lo que estoy haciendo (programando) hará a alguien su vida más fácil (es decir: ayudar). Que ya no tendrá que pasar 3 horas diarias de su vida, realizando la misma tarea, porque le ayude a automatizarla, y ahora tendrá más tiempo para hacer algo mas (quizas le den otro trabajo, pero eso no importa jajaja).&lt;br /&gt;&lt;/p&gt;&lt;p&gt;No hay como saber, que la gente esta usando todos los días un software en el que ayudaste, y en algún momento, esos unos y ceros se van a mover y transformar en datos útiles, en proyecciones, estadísticas, reportes,  imágenes, sonidos, sorpresas, en alegrías o tristezas.&lt;/p&gt;&lt;p&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_ayvorITawE4/SsqudUwmurI/AAAAAAAACMA/ENz6mOwsuuU/s1600-h/stock-photo-happy-users.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px; height: 214px;" src="http://4.bp.blogspot.com/_ayvorITawE4/SsqudUwmurI/AAAAAAAACMA/ENz6mOwsuuU/s320/stock-photo-happy-users.jpg" alt="" id="BLOGGER_PHOTO_ID_5389311722914233010" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;p style="text-align: center;"&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-style: italic;"&gt;"Se trabaja para el usuario, no para la máquina"&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;Porque lo que hace el que se dedica a la informática, no debe ser: pasar horas&lt;br /&gt;frente a la máquina para hacer un programa, sino más bien: &lt;span style="font-weight: bold;"&gt;pasar horas sentados &lt;/span&gt;&lt;span style="font-weight: bold;"&gt;por los usuarios, para que no pierdan tiempo, para que su vida sea más fácil&lt;/span&gt;, para hacerlos mas felices, para acercarlos, para llevarles mas información a la punta de los dedos.&lt;/p&gt;&lt;p&gt;Muchas de las razones para estudiar Ingeniería de Sistemas, que escuche cuando comencé la carrera, fueron:&lt;br /&gt;&lt;/p&gt;&lt;ol&gt;&lt;li&gt;Esta de moda.&lt;/li&gt;&lt;li&gt;Da pisto eso, es la carrera del futuro.&lt;/li&gt;&lt;li&gt;Quiero hacer un juego/Me gustan los juegos.&lt;/li&gt;&lt;li&gt;Puedo usar paint, y eso de mover el mouse... y me gusta pasar en la máquina.&lt;/li&gt;&lt;li&gt;Es que es bien "chivo chatiar" en el "mazinger" y me gusta pasar en la máquina&lt;/li&gt;&lt;/ol&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;... los últimos dos son verídicos.&lt;/p&gt;&lt;p&gt;Con el tiempo, los puntos mencionados se vuelven razones obviamente equivocadas para elegir una carrera afín a la informática, y la mía peor. Más sin embargo he acuñando y descubierto mi razón personal para seguir por este &lt;span style="font-weight: bold;"&gt;caminito digital&lt;/span&gt;, y la comparto con el fin de que a alguien le sirva... ahora si alguien me pregunta ¿por qué estudiaste sistemas? yo le respondo:&lt;/p&gt;&lt;p style="font-style: italic;"&gt;&lt;/p&gt;&lt;blockquote style="font-style: italic;"&gt;"Porque me quería convertir en el comunicador entre las necesidades el usuario y la información de la máquina."&lt;/blockquote&gt;&lt;p&gt;&lt;/p&gt;&lt;p style="font-weight: bold;"&gt;&lt;span style="font-weight: normal;"&gt;Creo que de eso es ser informático, y a todos ustedes, que son un puente entre la carne y el metal, entre neurona y transistor, que unen brechas, entre la creatividad y los cálculos para ayudar a los usuarios, les deseo un&lt;/span&gt; feliz día del informático.&lt;/p&gt;&lt;p&gt;Atentamente:&lt;br /&gt;&lt;/p&gt;&lt;blockquote&gt;Rodrigo Amaya&lt;/blockquote&gt;&lt;p&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;Copyleft Rodrigo S. Amaya C. y el staff del Sr. Byte&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3515952828243908885-6224843781496121440?l=www.srbyte.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=3515952828243908885&amp;postID=6224843781496121440' title='7 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3515952828243908885/posts/default/6224843781496121440'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3515952828243908885/posts/default/6224843781496121440'/><link rel='alternate' type='text/html' href='http://www.srbyte.com/2009/10/dia-del-informatico.html' title='Día del Informático'/><author><name>Rodrigo Amaya</name><uri>http://www.blogger.com/profile/15626618787991058196</uri><email>rodrigo.amaya@srbyte.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='18286515888004248012'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_ayvorITawE4/SsqucEccfLI/AAAAAAAACLo/wVUBoOLgr4s/s72-c/brain-on-chip-main.jpg' height='72' width='72'/><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>7</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3515952828243908885.post-1536000646527945718</id><published>2009-09-20T09:16:00.003-06:00</published><updated>2009-09-20T09:39:55.398-06:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='apoyo'/><category scheme='http://www.blogger.com/atom/ns#' term='gamer'/><category scheme='http://www.blogger.com/atom/ns#' term='el salvador'/><category scheme='http://www.blogger.com/atom/ns#' term='gamersv'/><title type='text'>Apoyando a GamerSV</title><content type='html'>&lt;p&gt; Por iniciativa propia y en apoyo a GamerSV, este blog quiere darle aunque sea una mención a un grupo de individuos que constantemente están luchando por superarse y salir adelante en medio de las vicisitudes que han enfrentado.&lt;br /&gt;&lt;/p&gt;&lt;p&gt;Los compañeros de GamerSV, están dedicados a áreas tecnológicas con mucho potencial: juegos, &lt;a href="http://en.wikipedia.org/wiki/Modding"&gt;modding&lt;/a&gt; y &lt;a href="http://en.wikipedia.org/wiki/Overclocking"&gt;overcloking&lt;/a&gt;.&lt;/p&gt;&lt;p&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_ayvorITawE4/SrZLxSuDM1I/AAAAAAAACLg/zBvM_F5Nf3Y/s1600-h/logo-gamersv.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 306px; height: 129px;" src="http://1.bp.blogspot.com/_ayvorITawE4/SrZLxSuDM1I/AAAAAAAACLg/zBvM_F5Nf3Y/s320/logo-gamersv.png" alt="" id="BLOGGER_PHOTO_ID_5383573714778665810" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;GamerSV, no solo se queda con escribir sobre juegos o &lt;a href="http://gamersv.com/2009/08/25/project-natal-lo-que-debes-saber/"&gt;nuevas tecnologías para los mismos&lt;/a&gt;, sino que también abrieron un "Game Center" en Santa Ana. Lamentablemente, por la situación del país, ellos sufrieron &lt;span style="font-weight: bold;"&gt;dos&lt;/span&gt; asaltos, &lt;a href="http://gamersv.com/2009/07/05/la-historia-se-repite-gamersv-asaltado-otra-vez/"&gt;el último en Julio de este año&lt;/a&gt;, por lo que &lt;span style="font-weight: bold;"&gt;se vieron forzados a cerrar&lt;/span&gt;.&lt;/p&gt;&lt;p&gt;Pero como la gente de GamerSV, no se dan por vencido (creo que tienen algo así como "vidas infinitas"), &lt;a href="http://gamersv.com/2009/09/17/gsvstore-ya-esta-abierta/"&gt;recientemente abrieron la GSVstore&lt;/a&gt; en donde venden &lt;a href="http://gamersv.com/gsvstore/"&gt;camisas para Gamers&lt;/a&gt; (para ambos sexos) y espero yo, que con el tiempo, amplíen su catalogo para temas geek :)&lt;/p&gt;&lt;p&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_ayvorITawE4/SrZLw0GV-7I/AAAAAAAACLY/7pnIWPElFlw/s1600-h/gsvstore.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px; height: 114px;" src="http://1.bp.blogspot.com/_ayvorITawE4/SrZLw0GV-7I/AAAAAAAACLY/7pnIWPElFlw/s320/gsvstore.png" alt="" id="BLOGGER_PHOTO_ID_5383573706559060914" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;Los precios son accesibles, y la tienda esta "right here" en El Salvador.&lt;br /&gt;&lt;/p&gt;&lt;p&gt;Los que son emprendedores, &lt;span style="font-style: italic;"&gt;saben cuanto cuesta tener negocio propio&lt;/span&gt;, así que apoyemos lo nuestro y si eres gamer, no dudes en visitar GamerSV y su tienda.&lt;/p&gt;&lt;p&gt;¡&lt;span style="font-weight: bold;"&gt;Saludos al equipo de GamerSV y muchos exitos en todo lo que emprendan&lt;/span&gt;!&lt;br /&gt;&lt;/p&gt;Para más información visita GamerSV: &lt;a href="http://gamersv.com/"&gt;http://gamersv.com/&lt;/a&gt;&lt;br /&gt;y la tienda GSVStore: &lt;a href="http://gamersv.com/gsvstore/"&gt;http://gamersv.com/gsvstore/&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;Copyleft Rodrigo S. Amaya C. y el staff del Sr. Byte&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3515952828243908885-1536000646527945718?l=www.srbyte.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=3515952828243908885&amp;postID=1536000646527945718' title='2 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3515952828243908885/posts/default/1536000646527945718'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3515952828243908885/posts/default/1536000646527945718'/><link rel='alternate' type='text/html' href='http://www.srbyte.com/2009/09/apoyando-gamersv.html' title='Apoyando a GamerSV'/><author><name>Rodrigo Amaya</name><uri>http://www.blogger.com/profile/15626618787991058196</uri><email>rodrigo.amaya@srbyte.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='18286515888004248012'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_ayvorITawE4/SrZLxSuDM1I/AAAAAAAACLg/zBvM_F5Nf3Y/s72-c/logo-gamersv.png' height='72' width='72'/><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3515952828243908885.post-103832654894430103</id><published>2009-09-16T06:30:00.000-06:00</published><updated>2009-09-16T06:31:45.737-06:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='libre'/><category scheme='http://www.blogger.com/atom/ns#' term='software'/><category scheme='http://www.blogger.com/atom/ns#' term='microsoft'/><title type='text'>Microsoft y el Software Libre</title><content type='html'>&lt;span id="ctl00_content_Placeholder_articleBody_Label" class="arial_12_14 normalLink"&gt;¿Posible?, &lt;span style="font-weight: bold;"&gt;claro que si&lt;/span&gt;. En uno de los últimos esfuerzos de abrazar el mundo del software libre, Microsoft ha creado una fundación de software libre. Que vueltas las que da la vida ¿no?.&lt;br /&gt;&lt;br /&gt;El 10 de Septiembre, Microsoft lanzo su &lt;a href="http://www.codeplex.org/" target="_blank"&gt;fundación CodePlex&lt;/a&gt;. La fundación CodePlex es como una extensión de la idea de CodePlex.com, que es un sitio para alojar proyectos de software libre (como SourceForge, pero de Microsoft). La idea de la fundación sin fines de lucro, es estar enfocado en el intercambio de código y conocimiento entre las compañías de software y las comunidades de software libre... algo que para mi, &lt;span style="font-weight: bold;"&gt;suena como un experimento de modelo de negocio&lt;/span&gt;. Quizás por eso Codeplex.com y CodePlex.org son independientes, pero no necesariamente excluyentes.&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_ayvorITawE4/Sq-889GK-KI/AAAAAAAACLA/474MS5Udl-k/s1600-h/codeplex-logo_3.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 235px; height: 92px;" src="http://3.bp.blogspot.com/_ayvorITawE4/Sq-889GK-KI/AAAAAAAACLA/474MS5Udl-k/s320/codeplex-logo_3.jpg" alt="" id="BLOGGER_PHOTO_ID_5381727835109652642" border="0" /&gt;&lt;/a&gt;&lt;span id="ctl00_content_Placeholder_articleBody_Label" class="arial_12_14 normalLink"&gt;&lt;br /&gt;Sam Ramji (guru de software libre en Microsoft) estará sirviendo como presidente interino en la fundación CodePlex, algo que a el (Sam) cataloga como "la culminación del trabajo en la estrategia con respecto al software libre en Microsoft". En sus últimos 5 años de trabajo de Sam Ramji, Microsoft ha aumentado su participación en el software libre, con &lt;a href="http://www.sdtimes.com/MICROSOFT_DONATES_CODE_TO_APACHE_STONEHENGE_PROJECT/By_David_Worthington/About_SOA_and_TESTING_and_APACHE_and_MICROSOFT/33204" target="_blank"&gt;donaciones de codigo&lt;/a&gt; a la &lt;a href="http://www.apache.org/"&gt;Apache Software Foundation&lt;/a&gt;, como también con el "Microsoft’s Open Source Technology Center’s (OSTC)", que coopera con la comunidad de &lt;a href="http://blogs.msdn.com/interoperability/archive/2009/08/21/a-new-bridge-for-php-developers-to-net-through-rest-php-toolkit-for-ado-net-data-services.aspx"&gt;PHP&lt;/a&gt;. Contamos también con la creación de CodePlex.com y Port25, un laboratorio/casa de la comunidad de software libre en Microsoft.&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_ayvorITawE4/Sq-89X6UjvI/AAAAAAAACLI/GG42pvsNrQ0/s1600-h/DSC_0025jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px; height: 248px;" src="http://3.bp.blogspot.com/_ayvorITawE4/Sq-89X6UjvI/AAAAAAAACLI/GG42pvsNrQ0/s320/DSC_0025jpg" alt="" id="BLOGGER_PHOTO_ID_5381727842307706610" border="0" /&gt;&lt;/a&gt;&lt;span id="ctl00_content_Placeholder_articleBody_Label" class="arial_12_14 normalLink"&gt;&lt;br /&gt;Y así mismo, el suceso más conocido y "controversial" (para algunos) entre el software libre y MicroSoft, es la &lt;a href="http://port25.technet.com/archive/2009/07/23/the-linux-integration-component-drivers.aspx"&gt;publicacion de los unos controladores de integración&lt;/a&gt; para el kernel de Linux, amparados con licencia GPLv2. Solo por mencionar algunas cosas buenas realmente, teñidas como siempre con el velo del escepticismo, pero aun así, es un punto a favor para los amantes del software libre.&lt;br /&gt;&lt;br /&gt;Lo que quiero recalcar, es la magnífica oportunidad de mencionar (en cada oportunidad) que el uso de software libre es una opción que una empresa siempre debe tomar en cuenta, después de todo: &lt;span style="font-weight: bold;"&gt;hasta Microsoft le esta dando una oportunidad al software libre&lt;/span&gt;...&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;div style="text-align: center;"&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_ayvorITawE4/Sq-89mU90oI/AAAAAAAACLQ/Is6dv_bbix0/s1600-h/microsoft-open-source.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 250px; height: 215px;" src="http://1.bp.blogspot.com/_ayvorITawE4/Sq-89mU90oI/AAAAAAAACLQ/Is6dv_bbix0/s320/microsoft-open-source.jpg" alt="" id="BLOGGER_PHOTO_ID_5381727846177559170" border="0" /&gt;&lt;/a&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-style: italic;"&gt;"Música angelical de fondo por favor..."&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;span id="ctl00_content_Placeholder_articleBody_Label" class="arial_12_14 normalLink"&gt;&lt;br /&gt;Algo muy interesante de la fundación Codeplex, es que aunque Microsoft es el que suelte el $$$ para invertir en ella, un millón de dolares, poco a poco esta puede aumentar su independencia al recibir inversión de otras empresas ajenas a Microsoft. Un paso fundamental para asegurar su existencia y autonomía.&lt;br /&gt;&lt;br /&gt;Lo que hace diferente a esta fundación, es que no esta enfocada en el software, sino en asegurar que es facil proveer "derecho de uso" de software por parte de una comunidad (dueña de un software libre) a una empresa. Una dimensión totalmente nueva, y que acercará probablemente más la brecha existente entre las corporaciones y las comunidades de software libre.&lt;br /&gt;&lt;br /&gt;Como nota adicional &lt;a href="http://port25.technet.com/archive/2009/09/10/Sam-Ramji-is-leaving-microsoft.aspx"&gt;Ramji se retira de Microsoft&lt;/a&gt;, y será el presidente interino en la fundación Codeplex, y en su lugar estará &lt;a href="http://port25.technet.com/archive/2007/06/08/tom-hanrahan-director-of-linux-interoperability.aspx"&gt;Tom Hanrahan&lt;/a&gt;, quien fue alguna vez miembro de la fundación Linux. Asi que el puesto queda en excelentes manos.&lt;br /&gt;Espero, sinceramente, que esta fundación tenga éxito, y no sea un proyecto fracasado o con fecha de vencimiento. Son precisamente iniciativas así, impulsados por empresas e individuos, la que necesitamos los amantes de software libre, para convencer y promover a las empresas de los beneficios obvios y de las estrategias que se pueden implementar para emplear software libre en TI.&lt;br /&gt;&lt;br /&gt;Para más información puedes visitar el &lt;a href="http://samus.typepad.com/"&gt;Blog de Sam Ramji&lt;/a&gt;, el sitio &lt;a href="http://www.codeplex.com/"&gt;CodePlex.com&lt;/a&gt;, &lt;a href="http://port25.technet.com/"&gt;Port25&lt;/a&gt; y hasta &lt;a href="http://www.microsoft.com/opensource/"&gt;Microsoft&lt;/a&gt;.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.blogalaxia.com/tags/microsoft" rel="tag"&gt;microsoft&lt;/a&gt; &lt;a href="http://www.blogalaxia.com/tags/codeplex" rel="tag"&gt;codeplex&lt;/a&gt; &lt;a href="http://www.blogalaxia.com/tags/software" rel="tag"&gt;software&lt;/a&gt; &lt;a href="http://www.blogalaxia.com/tags/libre" rel="tag"&gt;libre&lt;/a&gt; &lt;a href="http://www.blogalaxia.com/tags/linux" rel="tag"&gt;linux&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;Copyleft Rodrigo S. Amaya C. y el staff del Sr. Byte&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3515952828243908885-103832654894430103?l=www.srbyte.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=3515952828243908885&amp;postID=103832654894430103' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3515952828243908885/posts/default/103832654894430103'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3515952828243908885/posts/default/103832654894430103'/><link rel='alternate' type='text/html' href='http://www.srbyte.com/2009/09/microsoft-y-el-software-libre.html' title='Microsoft y el Software Libre'/><author><name>Rodrigo Amaya</name><uri>http://www.blogger.com/profile/15626618787991058196</uri><email>rodrigo.amaya@srbyte.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='18286515888004248012'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_ayvorITawE4/Sq-889GK-KI/AAAAAAAACLA/474MS5Udl-k/s72-c/codeplex-logo_3.jpg' height='72' width='72'/><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3515952828243908885.post-1715549923484754043</id><published>2009-09-15T06:09:00.000-06:00</published><updated>2009-09-15T06:09:00.438-06:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='agil'/><category scheme='http://www.blogger.com/atom/ns#' term='computadoras'/><category scheme='http://www.blogger.com/atom/ns#' term='desarrollo'/><category scheme='http://www.blogger.com/atom/ns#' term='codigo'/><category scheme='http://www.blogger.com/atom/ns#' term='gmail'/><category scheme='http://www.blogger.com/atom/ns#' term='calidad'/><category scheme='http://www.blogger.com/atom/ns#' term='programacion'/><category scheme='http://www.blogger.com/atom/ns#' term='fox'/><category scheme='http://www.blogger.com/atom/ns#' term='empresa'/><category scheme='http://www.blogger.com/atom/ns#' term='productividad'/><title type='text'>Es Momento de Aplicar Reingenieria</title><content type='html'>&lt;div style="text-align: center;"&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_jH77WNrMVRA/Sq8nHKoeLqI/AAAAAAAAGDo/0R34Suup-zo/s1600-h/EnConstruccion.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 256px; height: 256px;" src="http://4.bp.blogspot.com/_jH77WNrMVRA/Sq8nHKoeLqI/AAAAAAAAGDo/0R34Suup-zo/s400/EnConstruccion.jpg" alt="" id="BLOGGER_PHOTO_ID_5381563083797704354" border="0" /&gt;&lt;/a&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-style: italic;"&gt;"Las aplicaciones requieren constante mantenimiento y actualización. A veces la mejor actualización es su reescritura completa"&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;Como todos bien sabemos, todas las cosas especialmente los sistemas informáticos tienden a perder utilidad con el tiempo, ya sea debido a que no se adapta a los nuevos avances en hardware, no es compatible con las nuevas plataformas de ejecución o no logra satisfacer las nuevas necesidades del usuario.&lt;br /&gt;&lt;br /&gt;De la misma manera como los activos fijos tienen su depreciación y fecha de expiración, cada programa de computadora tiene(o debería tener) definido su período de vida, de manera que los usuarios sepan cuándo sea el momento de reemplazarlos por otros más modernos. Lamentablemente no existe una unidad de medida infalible para saber cuándo un sistema informático ha expirado.&lt;br /&gt;&lt;br /&gt;Cuando esto ocurre, es hora de aplicar reingeniería y empezar a rediseñar los sistemas existentes, manteniendo su funcionalidad actual pero utilizando herramientas de desarrollo mas ágiles, técnicas y disciplinas mas ordenadas y frameworks que permiten la extensibilidad del mismo, además de aprovechar para agregar nuevas características que pueda necesitar el usuario.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:130%;"&gt;&lt;span style="font-weight: bold;"&gt;Si algo ya no sirve, vuélvelo a hacer desde cero.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Si es un programa hecho en Visual Fox Pro 6 que comparte archivos de tablas en una carpeta de red, aunque aún le sea útil al usuario, tú como programador sabes que será un completo dolor de cabeza tratar de consumir web services o transportar datos por Message Queue por lo que en lugar de seguir manteniendo un sistema pasado de moda desarrollado con &lt;a href="http://www.srbyte.com/2009/04/deprecated-code-codigo-obsoleto.html"&gt;código obsoleto&lt;/a&gt;, es mejor reescribirlo desde cero usando tecnologías que te ahorrarán mucho trabajo en el desarrollo y con capacidad de extenderlo según aparezcan nuevos estándares.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:130%;"&gt;&lt;span style="font-weight: bold;"&gt;Desarrolla pensando en el futuro.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Como desarrollador puedo estar seguro que los usuarios no siempre saben lo que quieren que haga un sistema y cambian de opinión a medida que el sistema va siendo desarrollado. Por tal motivo, debes tener esto en cuenta a la hora de desarrollar tu sistema y diseñarlo de tal forma que pueda ser adaptable a posibles cambios, que tu sistema no "suponga" ni "imagine" que X o Y proceso se hace de tal manera, que todas las decisiones de negocio sean configurables! Ademas, permite que el programador que retomará tu sistema sea capaz de entenderlo y agregar nuevas funcionalidades que sean requeridas por los usuarios. Como una vez alguien escribió en &lt;a href="http://stackoverflow.com/questions/58640/great-programming-quotes"&gt;Stack Overflow Programming Quotes&lt;/a&gt;:&lt;br /&gt;&lt;br /&gt;&lt;div style="font-style: italic;" class="post-text"&gt;&lt;blockquote&gt;   &lt;p&gt;&lt;span style="font-size:85%;"&gt;Always code as if the guy who ends up maintaining your code will be a violent psychopath who knows where you live. (Siempre programa como si el que mantendrá tu código será un violento psicópata quien sabe donde vives)&lt;br /&gt;&lt;/span&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;&lt;span style="font-size:85%;"&gt;-- Rick Osborne&lt;/span&gt;&lt;/p&gt; &lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:130%;"&gt;&lt;span style="font-weight: bold;"&gt;Demuestrale al usuario que algo ha cambiado, y porqué este cambio es para mejora&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Como escribí antes, el usuario está conforme y acostumbrado al viejo sistema del año 2000 que le resuelve a medias sus necesidades actuales y posiblemente el cambio que apliques no sea visible en la interfaz sino que solamente en las tecnologías de desarrollo. Aun así, hay que reflejar ese cambio también en la interfaz de usuario aplicando alguna nueva plantilla CSS(en el caso de una aplicación web), agregando nuevos servicios que quizá no eran necesarios pero que reflejen el cambio o agregando una sección de "Nueva versión, nuevas características" a manera de hacerle notar al usuario que algo ha cambiado y poder explicarle cuál es la nueva manera como ahora se realizan los procesos X y Y.&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: center;"&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_jH77WNrMVRA/Sq8X5TbVcnI/AAAAAAAAGDg/hlskcdMmvS0/s1600-h/gmailnewstuff.JPG"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 211px;" src="http://4.bp.blogspot.com/_jH77WNrMVRA/Sq8X5TbVcnI/AAAAAAAAGDg/hlskcdMmvS0/s400/gmailnewstuff.JPG" alt="" id="BLOGGER_PHOTO_ID_5381546352965939826" border="0" /&gt;&lt;/a&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-style: italic;"&gt;"Los developers de Gmail siempre han tenido la bondad de notificarnos cuando hay nuevas características disponibles"&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;Recuerden que en última instancia, nuestro trabajo como desarrolladores es satisfacer &lt;s&gt;los deseos más oscuros y enajenados&lt;/s&gt; las necesidades de información de los usuarios de negocio en la empresa, por lo que tampoco es bueno pensar en reescribir todos los sistemas de la empresa solo por estar "in" en tecnologías de desarrollo de software.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.blogalaxia.com/tags/agil" rel="tag"&gt;agil&lt;/a&gt; &lt;a href="http://www.blogalaxia.com/tags/calidad" rel="tag"&gt;calidad&lt;/a&gt; &lt;a href="http://www.blogalaxia.com/tags/codigo" rel="tag"&gt;codigo&lt;/a&gt; &lt;a href="http://www.blogalaxia.com/tags/computadoras" rel="tag"&gt;computadoras&lt;/a&gt; &lt;a href="http://www.blogalaxia.com/tags/desarrollo" rel="tag"&gt;desarrollo&lt;/a&gt; &lt;a href="http://www.blogalaxia.com/tags/empresa" rel="tag"&gt;empresa&lt;/a&gt; &lt;a href="http://www.blogalaxia.com/tags/fox" rel="tag"&gt;fox&lt;/a&gt; &lt;a href="http://www.blogalaxia.com/tags/gmail" rel="tag"&gt;gmail&lt;/a&gt; &lt;a href="http://www.blogalaxia.com/tags/programacion" rel="tag"&gt;programacion&lt;/a&gt; &lt;a href="http://www.blogalaxia.com/tags/productividad" rel="tag"&gt;productividad&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;Copyleft Rodrigo S. Amaya C. y el staff del Sr. Byte&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3515952828243908885-1715549923484754043?l=www.srbyte.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=3515952828243908885&amp;postID=1715549923484754043' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3515952828243908885/posts/default/1715549923484754043'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3515952828243908885/posts/default/1715549923484754043'/><link rel='alternate' type='text/html' href='http://www.srbyte.com/2009/09/es-momento-de-aplicar-reingenieria.html' title='Es Momento de Aplicar Reingenieria'/><author><name>Robertux</name><uri>http://www.blogger.com/profile/15615123126956711175</uri><email>BlendBoy@gmail.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='07053113567322157156'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_jH77WNrMVRA/Sq8nHKoeLqI/AAAAAAAAGDo/0R34Suup-zo/s72-c/EnConstruccion.jpg' height='72' width='72'/><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3515952828243908885.post-5274004989331331615</id><published>2009-09-10T19:38:00.010-06:00</published><updated>2009-09-10T20:24:31.177-06:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='peliculas'/><category scheme='http://www.blogger.com/atom/ns#' term='sci-fi'/><category scheme='http://www.blogger.com/atom/ns#' term='ficcion'/><category scheme='http://www.blogger.com/atom/ns#' term='ciencia'/><title type='text'>Tres películas recomendadas de Ciencia Ficción</title><content type='html'>Continuando con el tema de la &lt;a href="http://www.srbyte.com/2009/09/ciencia-ficcion-despertando-la.html"&gt;Ciencia Ficción&lt;/a&gt;, quiero sugerirles tres películas (de este genero) que TIENEN que ver...&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:130%;"&gt;&lt;span style="font-weight: bold;"&gt;1. Avatar:&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;Avatar es la historia de un ex-soldado naval, que se ve envuelto entre las hostilidades de un planeta alienígena lleno de formas de vidas exóticas. El, como un Avatar, es decir, una mente humana en un cuerpo alienígena (&lt;a href="http://es.wikipedia.org/wiki/Avatar_%28desambiguaci%C3%B3n%29"&gt;más información sobre el concepto de Avatar acá&lt;/a&gt;), se encuentra entre dos mundos, en una desesperante lucha por su propia supervivencia y la de la especie nativa de ese planeta...&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_ayvorITawE4/SqmxbY8jvdI/AAAAAAAACKo/hD6lPxDgoXY/s1600-h/avatar-poster.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 225px; height: 320px;" src="http://4.bp.blogspot.com/_ayvorITawE4/SqmxbY8jvdI/AAAAAAAACKo/hD6lPxDgoXY/s320/avatar-poster.jpg" alt="" id="BLOGGER_PHOTO_ID_5380026313981803986" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;El director, James Cameron, mejor conocido por dirigir películas como Titanic, &lt;a href="http://www.youtube.com/watch?v=lJyRF0Fzl9Y"&gt;El Secreto del Abismo&lt;/a&gt; y  Terminator 2, ha pasado los últimos 10 años trabajando en la realización de este genial filme.&lt;br /&gt;&lt;br /&gt;&lt;center&gt;&lt;object height="340" width="560"&gt;&lt;param name="movie" value="http://www.youtube.com/v/fXF2nH4Z9sc&amp;amp;hl=en&amp;amp;fs=1&amp;amp;"&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;param name="allowscriptaccess" value="always"&gt;&lt;embed src="http://www.youtube.com/v/fXF2nH4Z9sc&amp;amp;hl=en&amp;amp;fs=1&amp;amp;" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" height="340" width="560"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;/center&gt;&lt;br /&gt;&lt;br /&gt;Más información sobre &lt;a href="http://www.rottentomatoes.com/m/avatar/"&gt;Avatar en Rotten Tommatoes&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;font-size:130%;" &gt;2. Tron Legacy:&lt;/span&gt;&lt;br /&gt;Más de 25 años después de la &lt;a href="http://www.youtube.com/watch?v=QPON5i7Iivw"&gt;película de culto&lt;/a&gt; &lt;a href="http://www.youtube.com/watch?v=3efV2wqEjEY"&gt;Tron&lt;/a&gt;, aparece una secuela que nos introduce el mundo neón de Tron, con nuevos retos, dificultades, una historia seguramente genial y fantástica, y efectos especiales para degustar la vista...&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_ayvorITawE4/SqmxcNCQo4I/AAAAAAAACK4/7y1rPshFKQE/s1600-h/tron-legacy.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px; height: 171px;" src="http://4.bp.blogspot.com/_ayvorITawE4/SqmxcNCQo4I/AAAAAAAACK4/7y1rPshFKQE/s320/tron-legacy.jpg" alt="" id="BLOGGER_PHOTO_ID_5380026327964361602" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;Despues de todo, 25 años han pasado desde la original; y también esos años han pasado en el universo de Tron, así que &lt;span style="font-weight: bold;"&gt;Tron obtuvo un masivo upgrade&lt;/span&gt; ;)&lt;br /&gt;&lt;br /&gt;&lt;center&gt;&lt;object height="340" width="560"&gt;&lt;param name="movie" value="http://www.youtube.com/v/a1IpPpB3iWI&amp;amp;hl=en&amp;amp;fs=1&amp;amp;"&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;param name="allowscriptaccess" value="always"&gt;&lt;embed src="http://www.youtube.com/v/a1IpPpB3iWI&amp;amp;hl=en&amp;amp;fs=1&amp;amp;" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" height="340" width="560"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;/center&gt;&lt;br /&gt;&lt;br /&gt;¿No les encanta el sonido de las motos? :D&lt;br /&gt;&lt;br /&gt;Más información de &lt;a href="http://www.imdb.com/title/tt1104001/synopsis"&gt;Tron Legacy en IMDB&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;font-size:130%;" &gt;3. District 9:&lt;/span&gt;&lt;br /&gt;El maestro Peter Jackson produce este filme de ciencia ficción por excelencia, con el debut espectacular de Neill Blomkamp como director...&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_ayvorITawE4/Sqmxb6qgjYI/AAAAAAAACKw/15Hz7MJHWb4/s1600-h/distric9.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px; height: 180px;" src="http://3.bp.blogspot.com/_ayvorITawE4/Sqmxb6qgjYI/AAAAAAAACKw/15Hz7MJHWb4/s320/distric9.jpg" alt="" id="BLOGGER_PHOTO_ID_5380026323032903042" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;District 9 es brillante&lt;/span&gt; desde cualquier perspectiva, tiene una historia llena de riqueza técnica y emocional, con efectos especiales en cada escena, pero cuidadosa y exquisitamente medidos hacen de esta película, sin lugar a dudas, una de las MEJORES películas de ciencia ficción de esta decada.&lt;span id="movie_synopsis_all" style="display: inline;"&gt; Es una analogía entre la mera violencia y la nobleza parte de nuestra naturaleza. Discriminación, abuso de fuerza, avaricia, amor, difamacion y amistad son solo algunos temas profunamente incrustados en la trama...&lt;br /&gt;&lt;br /&gt;&lt;center&gt;&lt;object height="340" width="560"&gt;&lt;param name="movie" value="http://www.youtube.com/v/yfem7wKeNaU&amp;amp;hl=en&amp;amp;fs=1&amp;amp;"&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;param name="allowscriptaccess" value="always"&gt;&lt;embed src="http://www.youtube.com/v/yfem7wKeNaU&amp;amp;hl=en&amp;amp;fs=1&amp;amp;" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" height="340" width="560"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;/center&gt;&lt;br /&gt;&lt;br /&gt;Más información de &lt;a href="http://www.imdb.com/title/tt1136608/"&gt;District 9 en IMDB&lt;/a&gt;&lt;/span&gt;.&lt;br /&gt;Espero que estas peliculas les gusten, saludos!&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.blogalaxia.com/tags/district+9" rel="tag"&gt;District 9&lt;/a&gt; &lt;a href="http://www.blogalaxia.com/tags/avatar" rel="tag"&gt;Avatar&lt;/a&gt; &lt;a href="http://www.blogalaxia.com/tags/tron+legacy" rel="tag"&gt;Tron Legacy&lt;/a&gt; &lt;a href="http://www.blogalaxia.com/tags/tron" rel="tag"&gt;Tron&lt;/a&gt; &lt;a href="http://www.blogalaxia.com/tags/ciencia" rel="tag"&gt;ciencia&lt;/a&gt; &lt;a href="http://www.blogalaxia.com/tags/ficcion" rel="tag"&gt;ficcion&lt;/a&gt; &lt;a href="http://www.blogalaxia.com/tags/peliculas" rel="tag"&gt;peliculas&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;Copyleft Rodrigo S. Amaya C. y el staff del Sr. Byte&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3515952828243908885-5274004989331331615?l=www.srbyte.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=3515952828243908885&amp;postID=5274004989331331615' title='4 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3515952828243908885/posts/default/5274004989331331615'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3515952828243908885/posts/default/5274004989331331615'/><link rel='alternate' type='text/html' href='http://www.srbyte.com/2009/09/tres-peliculas-recomendadas-de-ciencia.html' title='Tres películas recomendadas de Ciencia Ficción'/><author><name>Rodrigo Amaya</name><uri>http://www.blogger.com/profile/15626618787991058196</uri><email>rodrigo.amaya@srbyte.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='18286515888004248012'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_ayvorITawE4/SqmxbY8jvdI/AAAAAAAACKo/hD6lPxDgoXY/s72-c/avatar-poster.jpg' height='72' width='72'/><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3515952828243908885.post-925068168498926825</id><published>2009-09-09T20:43:00.001-06:00</published><updated>2009-09-09T20:43:00.654-06:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='cine'/><category scheme='http://www.blogger.com/atom/ns#' term='animacion'/><category scheme='http://www.blogger.com/atom/ns#' term='cineastas'/><category scheme='http://www.blogger.com/atom/ns#' term='bienvenida'/><category scheme='http://www.blogger.com/atom/ns#' term='entrenamiento'/><title type='text'>Ciencia Ficción: Despertando la imaginación</title><content type='html'>&lt;div align="left"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div align="left"&gt;Con este post marco mi regreso al Sr. Byte después de un largo y tortuoso exilio voluntario, pero productivo. Pero claro, no estoy aquí para hablar de qué hice, qué pasó o cómo fue. Además este es un blog de tecnología y ustedes están aquí para leer cosas cosntructivas, no anécdotas personales.&lt;/div&gt;&lt;div align="left"&gt;&lt;/div&gt;&lt;div align="left"&gt;Entremos ya en materia. El día de hoy hablaremos de uno de los géneros cinematográficos más representativos del cine. Me refiero a la &lt;strong&gt;&lt;span style="color:#000000;"&gt;ciencia ficción&lt;/span&gt;&lt;/strong&gt;.&lt;br /&gt;&lt;br /&gt;En ocasiones sucede que cuando se menciona el término de ciencia ficción, lo primero que nos viene a la mente son entes mitad humanos mitad mecánicos, grandes computadoras con mentalidad propia, ciudades perfectas...&lt;br /&gt;En fin, una visión futurista espectacularmente tecnológica. &lt;/div&gt;&lt;div align="left"&gt;&lt;/div&gt;&lt;div align="left"&gt;&lt;/div&gt;&lt;div align="left"&gt;&lt;/div&gt;&lt;div align="left"&gt;&lt;/div&gt;&lt;div align="left"&gt;&lt;/div&gt;&lt;div align="left"&gt;&lt;/div&gt;&lt;div align="left"&gt;&lt;/div&gt;&lt;div align="left"&gt;&lt;/div&gt;&lt;div align="center"&gt;&lt;/div&gt;&lt;img style="TEXT-ALIGN: center; MARGIN: 0px auto 10px; WIDTH: 265px; DISPLAY: block; HEIGHT: 320px; CURSOR: hand" id="BLOGGER_PHOTO_ID_5378928862132791362" border="0" alt="" src="http://2.bp.blogspot.com/_JbB9KsZ238w/SqXLTSOFaEI/AAAAAAAAAUk/-q8drfB6MHI/s320/cifi1.jpg" /&gt;&lt;br /&gt;&lt;p align="center"&gt;&lt;em&gt;&lt;span style="font-size:85%;"&gt;Aún con una forma rústica, ¡los robots sí que nos facilitarían la vida!&lt;br /&gt;&lt;/span&gt;&lt;/em&gt;&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;No obstante, la ciencia ficción no es un género de reciente explotación. Alrededor de 1900 ya se hacían algunos esfuerzos por hacer producciones que echaran a volar la imaginación, dar un toque de magia y recrear situaciones que en la realidad serían casi imposibles. Un ejemplo de ello es el corto &lt;a href="http://es.wikipedia.org/wiki/Viaje_a_la_luna"&gt;&lt;em&gt;Viaje a la Luna&lt;/em&gt; &lt;/a&gt;del francés &lt;strong&gt;George Méliès&lt;/strong&gt;.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;p align="center"&gt;&lt;img style="TEXT-ALIGN: center; MARGIN: 0px auto 10px; WIDTH: 320px; DISPLAY: block; HEIGHT: 228px; CURSOR: hand" id="BLOGGER_PHOTO_ID_5378917420917813730" border="0" alt="" src="http://4.bp.blogspot.com/_JbB9KsZ238w/SqXA5UX3ceI/AAAAAAAAAUc/r4wmbx5wjrg/s320/20070418klplylliu_158.Ies.SCO%5B1%5D.jpg" /&gt;&lt;/p&gt;&lt;br /&gt;&lt;p align="center"&gt;&lt;span style="font-size:85%;"&gt;&lt;em&gt;La Luna que vigila todo es una de las imágenes más emblemáticas del corto.&lt;br /&gt;&lt;/em&gt;&lt;/span&gt;&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Considerado como el primer film de ciencia ficción, este corto de casi ocho minutos y medio es una de las obras combres de los inicios del cine. Su guión fue retomado del libro de Julio Verne que se titula &lt;a href="http://es.wikipedia.org/wiki/De_la_Tierra_a_la_Luna"&gt;&lt;em&gt;De la Tierra a la Luna&lt;/em&gt; &lt;/a&gt;y del &lt;em&gt;libro de &lt;/em&gt;H. G. Wells, &lt;em&gt;&lt;a href="http://es.wikipedia.org/wiki/Los_primeros_hombres_en_la_luna"&gt;Los primeros hombres en la Luna&lt;/a&gt;&lt;/em&gt;.&lt;br /&gt;&lt;br /&gt;&lt;em&gt;&lt;strong&gt;Le voyage dans la lune&lt;/strong&gt;&lt;/em&gt; fue realizado en el año de 1902 y es considerada una gran hazaña cinematográfica, no sólo por los efectos utilizados, sino por su complejidad en la producción. Hecha en base a fotogramas, este corto revolucionó la forma en que los hermanos &lt;strong&gt;Lumière&lt;/strong&gt; comenzaron a hacer cine, la forma de pensar de las personas con respecto a la realidad y su manera de contar sus historias. Además de que mantuvo la inocencia e ingenuidad que hacía más empático el film para los espectadores de la época.&lt;br /&gt;&lt;br /&gt;En cuanto a producción, cabe resaltar que para la época se contó con mucha imaginación para caracterizar a los miembros del consejo, a los miembros del protocolo con sus edecanes, las constelaciones y a los habitantes de la luna. Además de establecer una bien entendible línea narrativa y argumental de la historia, sin necesidad de utilizar diálogo o texto.&lt;br /&gt;&lt;br /&gt;Para que puedan juzgar por sus propios ojos de qué estoy hablando, les dejo el film para que lo disfruten. Hay que tomar en cuenta que para nuestra época, muchas de las cosas que aparecen ahí resultan risibles y nada verosímiles.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;object width="425" height="344"&gt;&lt;param name="movie" value="http://www.youtube.com/v/vZV-t3KzTpw&amp;amp;hl=en&amp;amp;fs=1&amp;amp;"&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;param name="allowscriptaccess" value="always"&gt;&lt;embed src="http://www.youtube.com/v/vZV-t3KzTpw&amp;hl=en&amp;fs=1&amp;" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="344"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.blogalaxia.com/tags/animacion" rel="tag"&gt;animacion&lt;/a&gt; &lt;a href="http://www.blogalaxia.com/tags/bienvenida" rel="tag"&gt;bienvenida&lt;/a&gt; &lt;a href="http://www.blogalaxia.com/tags/cine" rel="tag"&gt;cine&lt;/a&gt; &lt;a href="http://www.blogalaxia.com/tags/cineastas" rel="tag"&gt;cineastas&lt;/a&gt; &lt;a href="http://www.blogalaxia.com/tags/entrenamiento" rel="tag"&gt;entrenamiento&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;Copyleft Rodrigo S. Amaya C. y el staff del Sr. Byte&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3515952828243908885-925068168498926825?l=www.srbyte.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=3515952828243908885&amp;postID=925068168498926825' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3515952828243908885/posts/default/925068168498926825'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3515952828243908885/posts/default/925068168498926825'/><link rel='alternate' type='text/html' href='http://www.srbyte.com/2009/09/ciencia-ficcion-despertando-la.html' title='Ciencia Ficción: Despertando la imaginación'/><author><name>Wendy Aparicio</name><uri>http://www.blogger.com/profile/09232565235954777124</uri><email>wvca28@gmail.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='08346893787653743529'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_JbB9KsZ238w/SqXLTSOFaEI/AAAAAAAAAUk/-q8drfB6MHI/s72-c/cifi1.jpg' height='72' width='72'/><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3515952828243908885.post-7958704684122756259</id><published>2009-09-02T17:21:00.010-06:00</published><updated>2009-09-03T20:23:41.191-06:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='sql'/><category scheme='http://www.blogger.com/atom/ns#' term='hibernate'/><category scheme='http://www.blogger.com/atom/ns#' term='toplink'/><category scheme='http://www.blogger.com/atom/ns#' term='orm'/><category scheme='http://www.blogger.com/atom/ns#' term='oracle'/><title type='text'>¿Qué es ORM?</title><content type='html'>&lt;span style="font-weight: bold;"&gt;Object Relational Mapping&lt;/span&gt;, u ORM, O/RM y O/R mapping, es una técnica empleada en la programación, para convertir datos entre sistemas incompatibles, como lo son las bases de datos relacionales y los lenguajes de programación. Esta conversión de datos entre los sistemas crea un efecto una base de datos virtual de objetos, que puede ser usada en el programa (en esa forma).&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_ayvorITawE4/SqB0NsSSqzI/AAAAAAAACKA/wlMDC_4R0Ls/s1600-h/ORM-Overview.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px; height: 218px;" src="http://3.bp.blogspot.com/_ayvorITawE4/SqB0NsSSqzI/AAAAAAAACKA/wlMDC_4R0Ls/s320/ORM-Overview.png" alt="" id="BLOGGER_PHOTO_ID_5377425733655374642" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Hay implementaciones comerciales y libres disponibles para crear el "mapeo" (mapping) objeto-relación, aunque algunos programadores (o mejor dicho empresas) optan (por ignorancia o espiritu de aventura... o ambas quizas) por crear sus propias herramientas ORM.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_ayvorITawE4/SqB0O3gwMMI/AAAAAAAACKQ/3FSryZ57OF8/s1600-h/fig02.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 265px; height: 320px;" src="http://2.bp.blogspot.com/_ayvorITawE4/SqB0O3gwMMI/AAAAAAAACKQ/3FSryZ57OF8/s320/fig02.jpg" alt="" id="BLOGGER_PHOTO_ID_5377425753848688834" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;Las empresas siempre poseerán una base de datos normalizada, para "ahorrar espacio" (como algunos individuos administrativos lo ven). Para un programador, la tarea de leer estos datos, manipularlos y finalmente modificarlos o eliminarlos pende de un hilo, de acuerdo al grado de ignorancia a la hora de elegir a las herramientas y/o librerías de software (de ORM) empleadas para tales fines.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_ayvorITawE4/SqB0PSl4TlI/AAAAAAAACKY/9B4p4sRxVYc/s1600-h/hibernate.gif"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 220px; height: 63px;" src="http://4.bp.blogspot.com/_ayvorITawE4/SqB0PSl4TlI/AAAAAAAACKY/9B4p4sRxVYc/s320/hibernate.gif" alt="" id="BLOGGER_PHOTO_ID_5377425761117949522" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;Una librería de ORM (como &lt;a href="http://es.wikipedia.org/wiki/Hibernate"&gt;Hibernate&lt;/a&gt;, &lt;a href="http://en.wikipedia.org/wiki/TopLink"&gt;Oracle Toplink&lt;/a&gt; o &lt;a href="http://es.wikipedia.org/wiki/Language_Integrated_Query"&gt;Linq&lt;/a&gt;) siempre, absolutamente siempre reducirá la cantidad de código, porque habrá algo que permitirá realizar el proceso de mapeo (como el IDE), y se encargara de crear las clases equivalente u homologas con las tablas en la base, además permitirá manejar diversos tipos de relaciones entre las tablas (uno a uno,&lt;br /&gt;uno a muchos, etc), reducirá la cantidad de defectos en esta delicada area, y todo esto, para beneficio del programador, que se concentrara más en codificar la lógica del negocio, que en hacer "INSERT", "UPDATE", "DELETE" y "SELECT" en la base. Otra razón por la que una librería ORM reduce la cantidad de código, es porque permite centralizar los procesos de búsqueda de datos en la base, liberándonos de escribir &lt;a href="http://www.srbyte.com/2009/04/la-importancia-de-los-procedimientos.html"&gt;consultas ad-hoc innecesarias o "quemadas" en el código&lt;/a&gt;. Sin mencionar que, también gestionara el pool de conexiones a la base de datos.&lt;br /&gt;Todo para que el programador, no se convierta en un esclavo codificando algo que ya existe, ustedes ya saben que &lt;a href="http://www.srbyte.com/2008/12/en-una-empresa-el-codigo-es-el-enemigo.html"&gt;en una empresa el codigo es el enemigo&lt;/a&gt;... y que &lt;a href="http://www.srbyte.com/2009/03/si-no-estas-usando-un-framework.html"&gt;de nada sirve estar reinventando&lt;/a&gt; la rueda...&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_ayvorITawE4/SqB1g5GiTkI/AAAAAAAACKg/GRtX3evcniI/s1600-h/coding_slave_cover.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 240px; height: 240px;" src="http://4.bp.blogspot.com/_ayvorITawE4/SqB1g5GiTkI/AAAAAAAACKg/GRtX3evcniI/s320/coding_slave_cover.jpg" alt="" id="BLOGGER_PHOTO_ID_5377427163024870978" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Queda en claro, que una librería ORM, generara el mapeo de tablas a clases de base de datos (&lt;a href="http://www.srbyte.com/2008/05/3-reglas-al-trabajar-con-bases-de-datos.html"&gt;que esperamos que este BIEN diseñada&lt;/a&gt;) de una forma completamente automatizada. Netbeans por ejemplo, posee una excelente integración con JPA usando Oracle TopLink, y genera el código necesario para manipular toda la información de la base, en menos de un minuto... para 42 (cuarenta y dos) tablas.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;¿Me pregunto cuanto se podría tardar una persona, haciendo el proceso a "pie"?&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Si estas en un proyecto de software, en el que NO te permiten emplear librerías para ORM, eso simplemente refleja la ignorancia de tus inmediatos superiores o de los encargados de tu proyecto. Si ya tienes algo que te asista en el proceso, bien por ti!, pero deberías de estar pensando en emplear herramientas que son prácticamente el estándar de la industria (&lt;a href="http://es.wikipedia.org/wiki/Hibernate"&gt;Hibernate&lt;/a&gt;), de comprobado rendimiento (&lt;a href="http://en.wikipedia.org/wiki/TopLink"&gt;Oracle Toplink&lt;/a&gt;) y que existen, para que nadie tenga que codificar como esclavo, algo que se puede generar en un par de clics y en no mas de "cien segundos".&lt;br /&gt;ORM esta, para facilitar la vida de los programadores, reducir a la mínima expresión un proceso que es terriblemente tedioso, y también, para mejorar y producir mejor software.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_ayvorITawE4/SqB0OEFXKFI/AAAAAAAACKI/xG_FclchQCM/s1600-h/bettersoftware.jpeg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 239px; height: 320px;" src="http://2.bp.blogspot.com/_ayvorITawE4/SqB0OEFXKFI/AAAAAAAACKI/xG_FclchQCM/s320/bettersoftware.jpeg" alt="" id="BLOGGER_PHOTO_ID_5377425740043593810" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;¿Cuantos de ustedes utilizan tecnologías ORM en su trabajo o en la Universidad para proyectos de software?&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Más información sobre ORM en la &lt;/span&gt;&lt;a style="font-style: italic;" href="http://es.wikipedia.org/wiki/Mapeo_objeto-relacional"&gt;Wikipedia&lt;/a&gt;&lt;span style="font-style: italic;"&gt;.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.blogalaxia.com/tags/oracle" rel="tag"&gt;oracle&lt;/a&gt; &lt;a href="http://www.blogalaxia.com/tags/toplink" rel="tag"&gt;toplink&lt;/a&gt; &lt;a href="http://www.blogalaxia.com/tags/hibernate" rel="tag"&gt;hibernate&lt;/a&gt; &lt;a href="http://www.blogalaxia.com/tags/java" rel="tag"&gt;java&lt;/a&gt; &lt;a href="http://www.blogalaxia.com/tags/.net" rel="tag"&gt;.net&lt;/a&gt; &lt;a href="http://www.blogalaxia.com/tags/linq" rel="tag"&gt;linq&lt;/a&gt; &lt;a href="http://www.blogalaxia.com/tags/orm" rel="tag"&gt;orm&lt;/a&gt; &lt;a href="http://www.blogalaxia.com/tags/sql" rel="tag"&gt;sql&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;Copyleft Rodrigo S. Amaya C. y el staff del Sr. Byte&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3515952828243908885-7958704684122756259?l=www.srbyte.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=3515952828243908885&amp;postID=7958704684122756259' title='1 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3515952828243908885/posts/default/7958704684122756259'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3515952828243908885/posts/default/7958704684122756259'/><link rel='alternate' type='text/html' href='http://www.srbyte.com/2009/09/que-es-orm.html' title='¿Qué es ORM?'/><author><name>Rodrigo Amaya</name><uri>http://www.blogger.com/profile/15626618787991058196</uri><email>rodrigo.amaya@srbyte.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='18286515888004248012'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_ayvorITawE4/SqB0NsSSqzI/AAAAAAAACKA/wlMDC_4R0Ls/s72-c/ORM-Overview.png' height='72' width='72'/><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3515952828243908885.post-4865367397803288776</id><published>2009-08-24T14:50:00.003-06:00</published><updated>2009-08-26T20:50:48.317-06:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='firefox'/><category scheme='http://www.blogger.com/atom/ns#' term='complementos'/><category scheme='http://www.blogger.com/atom/ns#' term='addon'/><title type='text'>Complementos Recomendados Sr. Byte</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_ayvorITawE4/SpPqtpn-5wI/AAAAAAAACJ4/wqwxUXL9svQ/s1600-h/firefox.png"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 73px; height: 77px;" src="http://2.bp.blogspot.com/_ayvorITawE4/SpPqtpn-5wI/AAAAAAAACJ4/wqwxUXL9svQ/s200/firefox.png" alt="" id="BLOGGER_PHOTO_ID_5373896850371700482" border="0" /&gt;&lt;/a&gt;Hace ya buen rato, nos pidieron el favor de poner una lista de &lt;a href="http://www.srbyte.com/2008/07/qu-es-un-complementoadd-on-de-firefox.html"&gt;complementos que recomendamos para Firefox&lt;/a&gt;. Así que, sin mucha fanfarria, aquí esta la colección oficial de complementos de Firefox que siempre me salva la vida:&lt;br /&gt;&lt;a href="https://addons.mozilla.org/es-ES/firefox/collection/srbyte"&gt;&lt;br /&gt;&lt;/a&gt;&lt;blockquote&gt;&lt;a href="https://addons.mozilla.org/es-ES/firefox/collection/srbyte"&gt;https://addons.mozilla.org/es-ES/firefox/collection/srbyte&lt;/a&gt;&lt;/blockquote&gt;&lt;span style="font-weight: bold;"&gt;UPDATE:&lt;/span&gt; Actualice la lista, de acuerdo a las sugerencias en los comentarios :)&lt;br /&gt;&lt;br /&gt;Si alguno de ustedes quiere sugerir otro complemento, NO DUDEN en dejarlo en los comentarios, y con gusto lo agregamos. Y como seguramente alguien se lo esta preguntado, pues la característica de las "colecciones de complementos" en el sitio de complementos de Mozilla, es relativamente nueva, y nos asiste en la magna tarea de seguirle la pista a nuestros complementos favoritos...&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_ayvorITawE4/SpPqi7dIkbI/AAAAAAAACJw/muyPc6a36eY/s1600-h/logo-collections-220x270.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 201px; height: 247px;" src="http://1.bp.blogspot.com/_ayvorITawE4/SpPqi7dIkbI/AAAAAAAACJw/muyPc6a36eY/s320/logo-collections-220x270.png" alt="" id="BLOGGER_PHOTO_ID_5373896666179473842" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;Lo mas interesante de esto, es que esta utilidad te mantiene unido con tus complementos y recopilatorios favoritos de varias maneras:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Accede a tus recopilatorios desde Firefox&lt;/span&gt;&lt;br /&gt;Los recopilatorios que marques como favoritos en el &lt;a href="https://addons.mozilla.org/es-ES/firefox/pages/collector"&gt;directorio de recopilatorios &lt;/a&gt;aparecerán en un lugar especial del administrador de complementos. Podrás estar al día y ver el contenido de cada recopilatorio.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Comparte complementos desde el menú de publicación&lt;/span&gt;&lt;br /&gt;Cada complemento que instales se puede compartir fácilmente con amigos vía correo electrónico o publicado en uno de tus recopilatorios desde el menú de publicación.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Recibe avisos&lt;/span&gt;&lt;br /&gt;El recopilador te avisará cuando uno de tus recopilatorios favoritos tenga nuevos elementos, y marcarlo para revisarlo más tarde. Publica automáticamente tus complementos instalados a un recopilatorio La funcionalidad de auto-publicado mantiene tu recopilatorio continuamente actualizado con tus últimos complementos instalados, manteniendo a tus amigos suscritos al día.&lt;br /&gt;&lt;br /&gt;Claro, todas estas características se proveen únicamente a los usuarios registrados al sitio mencionado. Resulta bastante útil si se anda experimentando o si estas muy pendiente de las ultimas versiones de tus complementos.&lt;br /&gt;&lt;br /&gt;También les comparto la lista "&lt;span style="font-weight: bold;"&gt;Editors Picks&lt;/span&gt;" de complementos (muy buena):&lt;br /&gt;&lt;a href="https://addons.mozilla.org/es-ES/firefox/collections/editors_picks"&gt;&lt;/a&gt;&lt;blockquote&gt;&lt;a href="https://addons.mozilla.org/es-ES/firefox/collections/editors_picks"&gt;https://addons.mozilla.org/es-ES/firefox/collections/editors_picks&lt;/a&gt;&lt;/blockquote&gt;Nuevamente, si alguno de ustedes quiere sugerir otro complemento, NO DUDEN en dejarlo en los comentarios, y con gusto lo agregamos. Saludos!&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.blogalaxia.com/tags/firefox" rel="tag"&gt;firefox&lt;/a&gt; &lt;a href="http://www.blogalaxia.com/tags/complementos" rel="tag"&gt;complementos&lt;/a&gt; &lt;a href="http://www.blogalaxia.com/tags/addon" rel="tag"&gt;addon&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;Copyleft Rodrigo S. Amaya C. y el staff del Sr. Byte&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3515952828243908885-4865367397803288776?l=www.srbyte.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=3515952828243908885&amp;postID=4865367397803288776' title='4 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3515952828243908885/posts/default/4865367397803288776'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3515952828243908885/posts/default/4865367397803288776'/><link rel='alternate' type='text/html' href='http://www.srbyte.com/2009/08/complementos-recomendados-sr-byte.html' title='Complementos Recomendados Sr. Byte'/><author><name>Rodrigo Amaya</name><uri>http://www.blogger.com/profile/15626618787991058196</uri><email>rodrigo.amaya@srbyte.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='18286515888004248012'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_ayvorITawE4/SpPqtpn-5wI/AAAAAAAACJ4/wqwxUXL9svQ/s72-c/firefox.png' height='72' width='72'/><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>4</thr:total></entry></feed>