<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><rss xmlns:atom="http://www.w3.org/2005/Atom" xmlns:openSearch="http://a9.com/-/spec/opensearch/1.1/" xmlns:georss="http://www.georss.org/georss" version="2.0"><channel><atom:id>tag:blogger.com,1999:blog-7986617721494538982</atom:id><lastBuildDate>Wed, 13 May 2009 19:10:45 +0000</lastBuildDate><title>Cambio de Código</title><description>Versión beta del blog tecnológico que escribiré algún día</description><link>http://cambiodecodigo.blogspot.com/</link><managingEditor>noreply@blogger.com (arntracks)</managingEditor><generator>Blogger</generator><openSearch:totalResults>24</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" href="http://feeds.feedburner.com/CambioDeCdigo" type="application/rss+xml" /><feedburner:emailServiceId xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0">CambioDeCdigo</feedburner:emailServiceId><feedburner:feedburnerHostname xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0">http://feedburner.google.com</feedburner:feedburnerHostname><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com" /><item><guid isPermaLink="false">tag:blogger.com,1999:blog-7986617721494538982.post-4999994183569469605</guid><pubDate>Tue, 21 Apr 2009 15:10:00 +0000</pubDate><atom:updated>2009-04-23T08:06:13.878-05:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">lima</category><category domain="http://www.blogger.com/atom/ns#">evento</category><category domain="http://www.blogger.com/atom/ns#">perú</category><category domain="http://www.blogger.com/atom/ns#">software libre</category><title>Flisol 2009</title><description>Este sábado 21, en las instalaciones de la Universidad Nacional de Ingeniería, se llevará a cabo el Festival Latinoamericano de Instalación de Software Libre - FLISOL 2009. Del mismo modo, existen sedes en todo el Perú y en las ciudades más importantes de todos los países de Latinoamérica en las que se estará llevando a cabo el mismo evento de forma simultánea.&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://peru.fliso.net/"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 75px; border:none;" src="http://3.bp.blogspot.com/_saFo-hGwU6A/SfBnV2_lk9I/AAAAAAAAAL4/RasY9ENzJoo/s400/bannernegro.png" alt="" id="BLOGGER_PHOTO_ID_5327871984416429010" border="0" /&gt;&lt;/a&gt;El FLISOL se viene desarrollando sin interrupciones desde el año 2005, este año se tiene una única sede en Lima y la responsabilidad de la organización ha recaido en las comunidades usuarios de la UNI. La actividad principal de este evento es la instalación de software libre en las computadoras de los asistentes que así lo requieran, especialmente el sistema operativo GNU/Linux, es lo que se suele denominar un "install-fest".&lt;br /&gt;Adicionalmente, se ha programado una serie de conferencias sobre diversos temas relacionados con el software libre. Más información sobre el evento la pueden encontrar &lt;a href="http://peru.flisol.net/"&gt;aquí&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7986617721494538982-4999994183569469605?l=cambiodecodigo.blogspot.com'/&gt;&lt;/div&gt;</description><link>http://cambiodecodigo.blogspot.com/2009/04/flisol-2009.html</link><author>noreply@blogger.com (arntracks)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://3.bp.blogspot.com/_saFo-hGwU6A/SfBnV2_lk9I/AAAAAAAAAL4/RasY9ENzJoo/s72-c/bannernegro.png" height="72" width="72" /><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-7986617721494538982.post-5537751949617513055</guid><pubDate>Wed, 11 Feb 2009 02:23:00 +0000</pubDate><atom:updated>2009-03-05T12:02:41.018-05:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">linux</category><category domain="http://www.blogger.com/atom/ns#">ubuntu</category><title>Eñes y vocales tildadas en Ubuntu</title><description>Cuando instalé Ubuntu en mi computadora portátil lo hice eligiendo como idioma el inglés, por dos razones, una, me da casi lo mismo si los menúes estan en inglés o en castellano, y dos, que para teclear líneas de comando y sentencias en un entorno de desarrollo me son suficientes los caracteres del inglés.&lt;br /&gt;&lt;br /&gt;Hoy he tenido que reconsiderar esa decisión ya que de un tiempo a esta parte también estoy utilizando la portátil para responder correos y, desde este instante, escribir posts. Bueno, en este punto vale aclarar que en el teclado de la portátil no tengo los caracteres latinos, es un teclado en inglés. Tener que poner tíldes a las vocales y escribir las eñes mayúsculas y minúsculas es un legado de nuestros antepasados peninsulares del que no puedo escapar, así que no queda otra que buscar la forma más cómoda de mostrar virgulillas y acentos.&lt;br /&gt;&lt;br /&gt;Recuerdo que hace un tiempo, bastante tiempo, me vi obligado a tener que escribir en castellano sobre un teclado de "doble golpe" en inglés, era una IBM PC traida de los "yunaites" y no quedaba otra, de aquella experiencia me quedó la costumbre de utilizar Alt + &lt;ascii&gt; para mostrar las vocales acentuadas y demás. Esto no es una opción, ya que esas combinaciones no son tan fácilmente accesibles en Ubuntu y menos en el teclado de una portátil.&lt;br /&gt;&lt;br /&gt;Una opción más viable podría ser configurar dos distribuciones de teclado y una combinación de teclas para cambiar entre una y otra. Es una buena alternativa, sin embargo, a mí me "lleva el chanfle" cuando tengo que cambiar repetidamente de distribución, especialmente cuando edito páginas web.&lt;br /&gt;La opción que finalmente he elegido es la de buscar la mejor distribución de teclado posible y acostumbrarme a ella. Felizmente, no ha sido tan arduo, esa distribución es muy común y lleva por nombre:&lt;br /&gt;&lt;br /&gt;&lt;/ascii&gt;&lt;div style="text-align: center;"&gt;&lt;ascii style="font-family: courier new;"&gt;EEUU Alternativa internacional(antigua us_intl)&lt;/ascii&gt;&lt;br /&gt;&lt;br /&gt;&lt;ascii&gt;&lt;/ascii&gt;&lt;/div&gt;&lt;ascii&gt;Coloco el nombre tal y como aparece en Ubuntu por si desean probarla. He leído por ahí que muchos prefieren otras soluciones a este problemilla de tener el teclado en inglés, pero esta es mi elección.&lt;br /&gt;&lt;br /&gt;Si tienes Ubuntu Intrepid Ibex, puedes revisar tus distribuciones de teclado accediendo a SISTEMA -&gt; Preferencias -&gt; Teclado, pestaña Distribuciones.&lt;br /&gt;En mi caso, para mostrar una vocal tildada debo presionar la tecla que esta dos posiciones a la derecha de la l y luego la vocal. La ñ aparece luego de presionar la tecla ~ seguida de la n, ya sea esta mayúscula o minúscula. Si te animas, cuéntanos en los comentarios qué teclado físico y qué distribución utilizas.&lt;br /&gt;&lt;br /&gt;&lt;/ascii&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7986617721494538982-5537751949617513055?l=cambiodecodigo.blogspot.com'/&gt;&lt;/div&gt;</description><link>http://cambiodecodigo.blogspot.com/2009/02/enes-y-vocales-tildadas-en-ubuntu.html</link><author>noreply@blogger.com (arntracks)</author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">1</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-7986617721494538982.post-3608785492110865352</guid><pubDate>Thu, 18 Dec 2008 15:18:00 +0000</pubDate><atom:updated>2008-12-18T10:30:09.972-05:00</atom:updated><title>El espíritu navideño de Bill</title><description>Llevo más de un mes sin postear, son muchas cosas las que me han alejado de este blog, además creo que estaba esperando un buen motivo para volver a escribir. Y en esa espera, encontré una página de Microsoft que no tiene desperdicio porque revela lo que he denominado &lt;span style="font-weight: bold;"&gt;el espíritu navideño de Bill&lt;/span&gt;, me gustó especialmente la sección &lt;span style="font-weight: bold;"&gt;"Apelar al espíritu de la Navidad"&lt;/span&gt;. No haré mayores comentarios y dejaré que lean ustedes este maravilloso texto y saquen sus propias conclusiones.&lt;br /&gt;&lt;br /&gt;Finalmente, les dejo el &lt;a href="http://www.microsoft.com/spain/empresas/rrpp/mensajes_navidad.mspx"&gt;enlace&lt;/a&gt; para que disfruten de la calidez de los consejos de Microsoft en estas fiestas y que reine la paz y la felicidad en vuestros corazones.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7986617721494538982-3608785492110865352?l=cambiodecodigo.blogspot.com'/&gt;&lt;/div&gt;</description><link>http://cambiodecodigo.blogspot.com/2008/12/el-espritu-navideo-de-bill.html</link><author>noreply@blogger.com (arntracks)</author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-7986617721494538982.post-8192992961263941442</guid><pubDate>Thu, 06 Nov 2008 20:20:00 +0000</pubDate><atom:updated>2008-11-06T15:28:14.757-05:00</atom:updated><title>Oracle 10g... a leer</title><description>Este es un breve artículo para dirigirlos al conjunto oficial de recursos de Oracle, en formato HTML o PDF, conocido como la &lt;span style="font-weight:bold;"&gt;Oracle Database Documentation Library &lt;/span&gt;con tan solo hacer click &lt;a href="http://tinyurl.com/oracledb"&gt;aquí&lt;/a&gt;.&lt;br&gt;&lt;br /&gt;Bueno, no demores más y empieza a descargar... Por cierto, todo este material se refiere a la versión 10g, si estas interesado en la versión 11g pregúntale al buen Google :).&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7986617721494538982-8192992961263941442?l=cambiodecodigo.blogspot.com'/&gt;&lt;/div&gt;</description><link>http://cambiodecodigo.blogspot.com/2008/11/leer.html</link><author>noreply@blogger.com (arntracks)</author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-7986617721494538982.post-450672571269701035</guid><pubDate>Thu, 11 Sep 2008 15:08:00 +0000</pubDate><atom:updated>2008-09-19T21:48:11.541-05:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">software</category><category domain="http://www.blogger.com/atom/ns#">google</category><title>Google Chrome</title><description>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.ojobuscador.com/wp-content/uploads/2008/09/chrome.png"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 195px; height: 195px; border:0" src="http://www.ojobuscador.com/wp-content/uploads/2008/09/chrome.png" alt="Google Chrome"/&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Los días pasados ha tenido mucho eco la noticia del lanzamiento (dicen que accidental) del navegador de Google, así como lo han tenido también sus &lt;a href="http://www.kriptopolis.org/vulnerabilidades-google-chrome-4"&gt;vulnerabilidades&lt;/a&gt;. Como siempre sucede en este tipo de lanzamientos hay voces a favor y voces en contra, entre las últimas el argumento más reclamado es que ya existen suficientes navegadores y no necesitamos &lt;span style="font-weight: bold;"&gt;otro navegador&lt;/span&gt; más.&lt;br /&gt;&lt;br /&gt;Mi experiencia diaria en cuanto al uso de los navegadores me ha dejado la sensación de que no funcionan tan rápido como debieran en algunos casos, tampoco son tan confiables como debieran ser y que tal vez podrían tomar menos memoria para ejecutarse. Si bien es cierto, mi elección para navegar es por ahora Firefox 3.0 sobre Ubuntu me parece interesante que Google ofrezca una alternativa que pueda hacer más interesante la competencia que hasta ahora ha tenido solamente dos protagonistas y varios actores secundarios intentando ganarse un papel principal, aún sin lograrlo. Veremos si el recién llegado logra un papel estelar o queda relegado a ser un extra.&lt;br /&gt;&lt;br /&gt;Para conocer la propuesta de Google Chrome pueden revisar esta &lt;a href="http://blogoscoped.com/google-chrome/"&gt;explicación en forma de comics&lt;/a&gt;, es muy interesante, clara y sobre todo sencilla incluso si no dominamos perfectamente el inglés. Bon Apetit.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7986617721494538982-450672571269701035?l=cambiodecodigo.blogspot.com'/&gt;&lt;/div&gt;</description><link>http://cambiodecodigo.blogspot.com/2008/09/google-chrome.html</link><author>noreply@blogger.com (arntracks)</author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-7986617721494538982.post-73269585471537567</guid><pubDate>Thu, 14 Aug 2008 06:00:00 +0000</pubDate><atom:updated>2008-08-14T01:15:15.863-05:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">lima</category><category domain="http://www.blogger.com/atom/ns#">plug</category><category domain="http://www.blogger.com/atom/ns#">evento</category><category domain="http://www.blogger.com/atom/ns#">perú</category><title>Dynamic Programming Day - Lima, 16AGO08</title><description>&lt;a href="http://www.linux.org.pe/dpd08"&gt;&lt;img style="border-style:none" alt="Dynamic Programming Day 2008" src="http://www.linux.org.pe/dpd08/blog-dpd-2008.jpg" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;El Grupo de Usuarios de Linux en Perú, más conocido como el &lt;a href="http://www.linux.org.pe/"&gt;PLUG&lt;/a&gt; ha organizado una serie de charlas a lo largo de todo un día a la que han denominado Dynamic Programming Day, obviamente el tema central serán los lenguajes de programación dinámicos. Lástima que este fin de semana en Ica sea tan movido, la falta de transporte y un compromiso el domingo me hacen pensar en que es muy difícil que pueda asistir, sin embargo, espero que algunos de ustedes puedan estar por ahí y beneficiarse de este esfuerzo de la gente del &lt;a href="http://www.linux.org.pe/"&gt;PLUG&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Justamente en esta semana se esta llevando a cabo un congreso de estudiantes de Ingeniería de Sistemas en Lima y sé, que Ica ha llevado una muy numerosa delegación, a ellos les sugiero a la distancia que asuman con algo de moderación el fin de fiesta del congreso (el viernes) para que puedan asistir a este evento y sacarle más provecho aún a estos días en Lima. La calidad del evento esta asegurada por el nivel de los ponentes y las personas comprometidas en la organización.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7986617721494538982-73269585471537567?l=cambiodecodigo.blogspot.com'/&gt;&lt;/div&gt;</description><link>http://cambiodecodigo.blogspot.com/2008/08/dynamic-programming-day-lima-16ago08.html</link><author>noreply@blogger.com (arntracks)</author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">5</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-7986617721494538982.post-2684781244860922673</guid><pubDate>Thu, 07 Aug 2008 05:54:00 +0000</pubDate><atom:updated>2008-08-07T01:49:49.563-05:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">problemas</category><category domain="http://www.blogger.com/atom/ns#">code jam</category><category domain="http://www.blogger.com/atom/ns#">algoritmos</category><category domain="http://www.blogger.com/atom/ns#">google</category><title>Mensaje de Texto</title><description>Una vez más tenemos un problema del &lt;a href="http://code.google.com/codejam"&gt;Google Code Jam&lt;/a&gt; traducido y listo para ser resuelto. En esta ocasión se trata de encontrar la distribución más óptima para un teclado de un hipotético teléfono celular. La premisa es que la distribución habitual no toma en cuenta la frecuencia con que se utilizan las teclas limitándose a ubicarlas de forma consecutiva lo cual nos lleva a tener que realizar un número de pulsaciones mayor que si se hubiera tomado en cuenta la frecuencia mencionada. Si lograramos ubicar las letras del alfabeto de modo tal que, dado un mensaje, se necesitara la menor cantidad posible de pulsaciones entonces la escritura del mensaje sería óptima.&lt;br /&gt;&lt;br /&gt;De hecho, la respuesta al problema debe ser el mínimo número de pulsaciones que tendríamos que realizar si encontramos la distribución óptima para nuestro hipotético teclado. El texto completo del problema, que viene con una introducción a modo de relato, puede ser descargado &lt;a href="http://arntracks.googlepages.com/GCJRound1CProblemA.pdf"&gt;aquí&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Espero que sigan animándose a resolver estos problemas y, que sean más quienes dejen sus comentarios que serán de mucha ayuda para quienes recién estan empezando.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7986617721494538982-2684781244860922673?l=cambiodecodigo.blogspot.com'/&gt;&lt;/div&gt;</description><link>http://cambiodecodigo.blogspot.com/2008/08/mensaje-de-texto.html</link><author>noreply@blogger.com (arntracks)</author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">1</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-7986617721494538982.post-2208329848490956642</guid><pubDate>Wed, 30 Jul 2008 04:40:00 +0000</pubDate><atom:updated>2008-08-07T01:51:18.476-05:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">problemas</category><category domain="http://www.blogger.com/atom/ns#">code jam</category><category domain="http://www.blogger.com/atom/ns#">algoritmos</category><category domain="http://www.blogger.com/atom/ns#">google</category><title>Producto Escalar Mínimo</title><description>Nuevamente comparto con ustedes un problema del &lt;a href="http://code.google.com/codejam/"&gt;Google Code Jam 2008&lt;/a&gt;, esta vez corresponde al primer problema (Problema A) de la ronda de clasificación 1A. Se trata de calcular el Producto Escalar Mínimo entre dos vectores considerando todas sus permutaciones. Si no quedó claro, me disculpo y les ofrezco la traducción del problema que pueden descargar &lt;a href="http://arntracks.googlepages.com/GCJRound1AProblemA.pdf"&gt;aquí&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Como ya sabrán quienes pasaron por el sitio del &lt;a href="http://code.google.com/codejam/"&gt;Google Code Jam&lt;/a&gt; el problema planteado debe ser resuelto para dos conjuntos de soluciones un conjunto pequeño y un conjunto grande, el tiempo entre la descarga del conjunto de prueba y la remisión de la solución es de 4 y 8 minutos respectivamente.&lt;br /&gt;&lt;br /&gt;La idea detrás de este mecanismo es que un algoritmo que resuelva el problema pueda ser probado sin mayores optimizaciones con el conjunto de prueba pequeño que, usualmente, tiene restricciones en el rango de los datos de entrada no solamente en el número de casos. Y luego, en un segundo paso se pueda optimizar el mismo algoritmo para procesar el conjunto de prueba grande que contendrá un número mayor de casos y estará compuesto por valores también mucho más grandes. Para descargar los conjuntos de prueba y remitir sus soluciones pueden acceder a la página de la &lt;a href="http://code.google.com/codejam/contest"&gt;competencia&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Nuevamente, espero que se animen a resolver este problemita. Utilizando fuerza bruta se puede resolver para el caso de prueba pequeño y para el caso grande se puede utilizar alguna heurística o una estructura como un árbol. En cualquier caso, no se olviden de comentar como les fue.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7986617721494538982-2208329848490956642?l=cambiodecodigo.blogspot.com'/&gt;&lt;/div&gt;</description><link>http://cambiodecodigo.blogspot.com/2008/07/producto-escalar-mnimo.html</link><author>noreply@blogger.com (arntracks)</author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-7986617721494538982.post-3318760513554910558</guid><pubDate>Sat, 19 Jul 2008 23:50:00 +0000</pubDate><atom:updated>2008-07-19T19:52:43.058-05:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">problemas</category><category domain="http://www.blogger.com/atom/ns#">code jam</category><category domain="http://www.blogger.com/atom/ns#">algoritmos</category><category domain="http://www.blogger.com/atom/ns#">google</category><title>Salvando el universo</title><description>&lt;span style="font-weight: bold;"&gt;Salvando el universo&lt;/span&gt;, es el título del primer problema propuesto en la &lt;span style="font-style: italic;"&gt;ronda de calificación&lt;/span&gt; del &lt;a style="font-weight: bold;" href="http://code.google.com/codejam"&gt;Google Code Jam&lt;/a&gt; de este año, esta ronda culminó el día jueves 18 a las 06:00 p.m. con un total de 6773 clasificados (25 puntos como mínimo). El número total de participantes que remitieron al menos una respuesta correcta (5 puntos) fue de 7154.&lt;br /&gt;&lt;br /&gt;El primer lugar lo obtuvo el participante cuyo nick es &lt;span style="font-weight: bold;"&gt;rem &lt;/span&gt;al totalizar 75 puntos en una hora con 18 minutos&lt;span style="font-weight: bold;"&gt;, &lt;/span&gt;la respuesta más rápida también fue de &lt;span style="font-weight: bold;"&gt;rem&lt;/span&gt; y fue remitida en tan solo 9 minutos con 16 segundos... increíble!!&lt;span style="font-weight: bold;"&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;Bueno, bueno.... basta ya de tantas estadísticas, el problema en cuestión se encuentra traducido líneas abajo, si eres un entusiasta de la programación seguramente intentarás resolverlo (obviamente, para salvar el universo) en tal caso espero un comentario tuyo en el que me cuentes como te fué.&lt;span style="font-weight: bold;"&gt;&lt;br /&gt;&lt;br /&gt;EL PROBLEMA&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Una leyenda urbana cuenta que si accedes a la página principal de Google y realizas la búsqueda de la palabra "Google", el universo se autodestruirá. Tenemos un secreto que compartir contigo... es cierto!. Por favor no lo intentes y no le digas a nadie. Muy bien, tal vez no. Solamente estamos bromeando.&lt;br /&gt;&lt;br /&gt;Lo mismo no es muy cierto para un universo muy pero muy lejano. En aquel universo, si realizas una búsqueda en un motor de búsqueda por su propio nombre, aquel universo se autodestruirá.&lt;br /&gt;&lt;br /&gt;Para evitar esto, se ha ideado una solución interesante. Todas las consultas realizadas en aquel universo serán combinadas y transmitidas a un sistema central que decidirá cual de las consultas se realizarán en cual motor de búsqueda. El sistema central enviará una serie de consultas a un motor de búsqueda, y puede cambiar de motor de búsqueda cuando sea necesario. Las consultas serán procesdas en el orden que son recibidas. El sistema central nunca deberá enviar una consulta a un motor de búsqueda que coincida con su nombres. Para reducir los costos el número de cambios de motor de búsqueda debe ser minimizado.&lt;br /&gt;&lt;br /&gt;Tu tarea es indicarnos cuántas veces deberá cambiar de motor de búsqueda el sistema central, asumiendo que lo programamos de manera óptima.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;ENTRADA&lt;/span&gt;&lt;br /&gt;La primera línea del archivo de entrada contiene el número de casos, &lt;span style="font-weight: bold;"&gt;N&lt;/span&gt;. &lt;span style="font-weight: bold;"&gt;N&lt;/span&gt; casos siguientes.&lt;br /&gt;Cada caso inicia con un número &lt;span style="font-weight: bold;"&gt;S&lt;/span&gt; -- el número de motores de búsqueda. Cada una de las siguientes &lt;span style="font-weight: bold;"&gt;S&lt;/span&gt; líneas contienen el nombre de un motor de búsqueda. El nombre cada motor de búsqueda no puede ser mayor a cien caracteres y contendrá solamente letras mayúsculas, minúsculas, espacios y números. No habrán dos motores de búsqueda con el mismo nombre.&lt;br /&gt;La siguiente línea contiene un número &lt;span style="font-weight: bold;"&gt;Q&lt;/span&gt; -- el número de consultas de entrada. Las siguientes &lt;span style="font-weight: bold;"&gt;Q&lt;/span&gt; líneas contendrá cada una una consulta. Cada consulta será el nombre de un motor de búsqueda en el caso actual.&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;&lt;br /&gt;SALIDA&lt;/span&gt;&lt;br /&gt;Para cada caso de entrada, la salida debe ser:&lt;br /&gt;&lt;div style="text-align: center;"&gt;&lt;span style="font-weight: bold;"&gt;&lt;br /&gt;Case #X: Y&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;donde &lt;span style="font-weight: bold;"&gt;X&lt;/span&gt; es el número de casos de prueba e &lt;span style="font-weight: bold;"&gt;Y&lt;/span&gt; es el número de cambios de motor de búsqueda. No cuente la elección inicial de un motor de búsqueda como un cambio.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;EJEMPLO&lt;/span&gt;:&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Entrada&lt;/span&gt;&lt;br /&gt;2&lt;br /&gt;5&lt;br /&gt;Yeehaw&lt;br /&gt;NSM&lt;br /&gt;Dont Ask&lt;br /&gt;B9&lt;br /&gt;Googol&lt;br /&gt;10&lt;br /&gt;Yeehaw&lt;br /&gt;Yeehaw&lt;br /&gt;Googol&lt;br /&gt;B9&lt;br /&gt;Googol&lt;br /&gt;NSM&lt;br /&gt;B9&lt;br /&gt;NSM&lt;br /&gt;Dont Ask&lt;br /&gt;Googol&lt;br /&gt;5&lt;br /&gt;Yeehaw&lt;br /&gt;NSM&lt;br /&gt;Dont Ask&lt;br /&gt;B9&lt;br /&gt;Googol&lt;br /&gt;7&lt;br /&gt;Googol&lt;br /&gt;Dont Ask&lt;br /&gt;NSM&lt;br /&gt;NSM&lt;br /&gt;Yeehaw&lt;br /&gt;Yeehaw&lt;br /&gt;Googol&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Salida&lt;/span&gt;&lt;br /&gt;Case #1: 1&lt;br /&gt;Case #2: 0&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;En el primer caso, una posible solución es iniciar utilizando el motor &lt;/span&gt;&lt;span style="font-weight: bold; font-style: italic;"&gt;Dont Ask&lt;/span&gt;&lt;span style="font-style: italic;"&gt;, y cambiar a &lt;/span&gt;&lt;span style="font-weight: bold; font-style: italic;"&gt;NSM&lt;/span&gt;&lt;span style="font-style: italic;"&gt; luego de la consulta número 8.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Para el segundo caso, se puede utilizar &lt;/span&gt;&lt;span style="font-weight: bold; font-style: italic;"&gt;B9&lt;/span&gt;&lt;span style="font-style: italic;"&gt;, y no se requiere realizar ningún cambio.&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7986617721494538982-3318760513554910558?l=cambiodecodigo.blogspot.com'/&gt;&lt;/div&gt;</description><link>http://cambiodecodigo.blogspot.com/2008/07/salvando-el-universo.html</link><author>noreply@blogger.com (arntracks)</author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">5</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-7986617721494538982.post-5045145836892744551</guid><pubDate>Wed, 09 Jul 2008 18:18:00 +0000</pubDate><atom:updated>2008-07-12T14:48:15.994-05:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">code jam</category><category domain="http://www.blogger.com/atom/ns#">google</category><title>Google Code Jam</title><description>El &lt;span style="font-weight: bold;"&gt;Google Code Jam&lt;/span&gt;, es un concurso de programación en el que cualquiera que tenga conocimientos de programación puede participar. Este año la primera ronda inicia el 16de julio y tendrá una duración de 24 horas durante las cuales será posible remitir la solución de los problemas que serán publicados, el cronograma detallado se encuentra &lt;a href="http://code.google.com/codejam/schedule.html"&gt;aquí&lt;/a&gt;. Para participar debes inscribirte en la &lt;a href="http://code.google.com/codejam/"&gt;página del concurso&lt;/a&gt; con tu cuenta de &lt;span style="font-weight: bold;"&gt;GMail&lt;/span&gt;, si no tienes una cuenta de &lt;span style="font-weight: bold;"&gt;GMail&lt;/span&gt;, mmm... no, no creo que no tengas una cuenta de &lt;span style="font-weight: bold;"&gt;GMail&lt;/span&gt;.&lt;br /&gt;&lt;br /&gt;Para ir calentando el ambiente, se han publicado algunos problemas para tomarlos como referencia, obviamente, la página del concurso, los problemas, las instrucciones y demás se encuentran en inglés. Por si no te va muy bien con el inglés (mmm... digamos mejor que estoy seguro que puedes traducir pero no tan rápido...), me tomé unos minutos para traducir uno de los problemas el cual puedes encontrar &lt;a href="http://cambiodecodigo.blogspot.com/2008/06/un-laberinto.html"&gt;aquí&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Dale una mirada, plantéalo e intenta resolverlo para ello puedes utilizar el lenguaje de programación o herramienta de tu preferencia. Finalmente, animarte a que te inscribas en este concurso y demuéstres tus habilidades de programador, el primer premio es de US$10,000 y la experiencia será de hecho muy interesante.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7986617721494538982-5045145836892744551?l=cambiodecodigo.blogspot.com'/&gt;&lt;/div&gt;</description><link>http://cambiodecodigo.blogspot.com/2008/07/google-code-jam.html</link><author>noreply@blogger.com (arntracks)</author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-7986617721494538982.post-6495183912356611260</guid><pubDate>Sat, 28 Jun 2008 06:38:00 +0000</pubDate><atom:updated>2008-07-07T11:28:01.153-05:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">problemas</category><category domain="http://www.blogger.com/atom/ns#">code jam</category><category domain="http://www.blogger.com/atom/ns#">algoritmos</category><category domain="http://www.blogger.com/atom/ns#">google</category><title>Un laberinto</title><description>Te encuentras parado afuera de un laberinto perfecto. Un laberinto se denomina "perfecto" si cumple las siguientes condiciones:&lt;br /&gt;&lt;ol&gt;&lt;li&gt;Esta compuesto por una malla rectangular de habitaciones, F filas por C columnas (R rows by C columns).&lt;/li&gt;&lt;li&gt;Tiene exactamente dos salidas hacia fuera del laberinto: la entrada y la salida. La entrada esta siempre en la pared norte, mientras que la salida puede estar en cualquier pared.&lt;/li&gt;&lt;li&gt;Existe exactamente una ruta entre dos habitaciones cualesquiera en el laberinto(esto es, exactamente una ruta que no involucre un retroceso).&lt;br /&gt;&lt;/li&gt;&lt;/ol&gt;Has decidido resolver el laberinto perfecto utilizando el algoritmo "voltear siempre a la izquierda", que indica que debes tomar la desviación más a la izquierda en cada oportunidad. Si encuentras una ruta sin salida, volteas dos veces (180 grados en el sentido horario) y continuas. (Si sacas la mano izquierda y tocas la pared mientras sigues este algoritmo, resolveras el laberinto sin siquiera perder contacto con la pared). Cuando has terminado el laberinto, decides realizar un paso adicional y resolverlo nuevamente (siempre volteando a la derecha), pero empezando desde la salida y terminando en la entrada.&lt;br /&gt;&lt;br /&gt;La ruta que tomas a través del laberinto puede ser descrita con tres caracteres: 'W' significa caminar hacia delante hacia la siguiente habitación, 'L' significa voltear 90 grados a la izquierda (o en sentido antihorario), y 'R' significa voltear 90 grados a la derecha (o en sentido horario).&lt;br /&gt;&lt;br /&gt;Inicias directamente fuera de la entrada, de frente al laberinto. Finalizas cuando has salido fuera del laberinto a través de la salida.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_saFo-hGwU6A/SHJDaUc_5KI/AAAAAAAAAJ8/qilPR7b34ck/s1600-h/mazeimage.gif"&gt;&lt;img style="margin: 0px auto 10px; border: 0px; display: block; text-align: center; cursor: pointer;" src="http://1.bp.blogspot.com/_saFo-hGwU6A/SHJDaUc_5KI/AAAAAAAAAJ8/qilPR7b34ck/s400/mazeimage.gif" alt="" id="BLOGGER_PHOTO_ID_5220309037521822882" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;span style="font-size:130%;"&gt;Problema&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Por ejemplo si la entrada esta en el norte y la salida en el oeste, tu ruta de salida a través del laberinto mostrado sería&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: center;"&gt;WRWWLWWLWWLWLWRRWRWWWRWWRWLW&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;Si la entrada y la salida fueran invertidas, de modo tal que iniciaras fuera de la pared este y finalizaras fuera de la pared norte, tu ruta sería:&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: center;"&gt;WWRRWLWLWWLWWLWWRWWRWWLW&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;Dadas lass dos rutas a través del laberinto (entrada hacia salida y salida hacia entrada), tu código debe retornar una descripción del laberinto.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:130%;"&gt;Entrada&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;La primera línea de la entrada provee el número de casos, N. Siguen los N casos de prueba. Cada caso es una línea con el formato:&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: center;"&gt;entrada_a_salida salida_a_entrada&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;Todas las rutas tendrán al menos dos caracteres de largo, compuestas solamente por los caracteres 'W', 'L', y 'R', y empezando y finalizando en 'W'.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:130%;"&gt;Salida&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Para cada caso de prueba, la salida debe mostrar una línea "Case #x:" por sí misma. Las siguientes F lineas (R lines) otorgan una descripción del laberinto F x C (R by C).&lt;br /&gt;Cada línea debe tener C caracteres, cada uno representa las direcciones en las cuales es posible acceder a esa habitación. Vea la siguiente leyenda:&lt;br /&gt;&lt;table style="width: 432px; height: 420px;"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;th style="width: 80px;"&gt;Caracter   &lt;/th&gt;&lt;th style="width: 80px;"&gt;Norte?   &lt;/th&gt;&lt;th style="width: 80px;"&gt;Sur?   &lt;/th&gt;&lt;th style="width: 80px;"&gt;Oeste?   &lt;/th&gt;&lt;th style="width: 80px;"&gt;Este?   &lt;/th&gt;&lt;/tr&gt;&lt;br /&gt;&lt;tr&gt;&lt;td style="width: 80px;"&gt;1&lt;/td&gt;&lt;td style="width: 80px;"&gt;Sí&lt;/td&gt;&lt;td style="width: 80px;"&gt;No&lt;/td&gt;&lt;td style="width: 80px;"&gt;No&lt;/td&gt;&lt;td style="width: 80px;"&gt;No&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt;&lt;td style="width: 80px;"&gt;2&lt;/td&gt;&lt;td style="width: 80px;"&gt;No&lt;/td&gt;&lt;td style="width: 80px;"&gt;Sí&lt;/td&gt;&lt;td style="width: 80px;"&gt;No&lt;/td&gt;&lt;td style="width: 80px;"&gt;No&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;tr&gt;&lt;td style="width: 80px;"&gt;3&lt;/td&gt;&lt;td style="width: 80px;"&gt;Sí&lt;/td&gt;&lt;td style="width: 80px;"&gt;Sí&lt;/td&gt;&lt;td style="width: 80px;"&gt;No&lt;/td&gt;&lt;td style="width: 80px;"&gt;No&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;tr&gt;&lt;td style="width: 80px;"&gt;4&lt;/td&gt;&lt;td style="width: 80px;"&gt;No&lt;/td&gt;&lt;td style="width: 80px;"&gt;No&lt;/td&gt;&lt;td style="width: 80px;"&gt;Sí&lt;/td&gt;&lt;td style="width: 80px;"&gt;No&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt;&lt;td style="width: 80px;"&gt;5&lt;/td&gt;&lt;td style="width: 80px;"&gt;Sí&lt;/td&gt;&lt;td style="width: 80px;"&gt;No&lt;/td&gt;&lt;td style="width: 80px;"&gt;Sí&lt;/td&gt;&lt;td style="width: 80px;"&gt;No&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt;&lt;td style="width: 80px;"&gt;6&lt;/td&gt;&lt;td style="width: 80px;"&gt;No&lt;/td&gt;&lt;td style="width: 80px;"&gt;Sí&lt;/td&gt;&lt;td style="width: 80px;"&gt;Sí&lt;/td&gt;&lt;td style="width: 80px;"&gt;No&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt;&lt;td style="width: 80px;"&gt;7&lt;/td&gt;&lt;td style="width: 80px;"&gt;Sí&lt;/td&gt;&lt;td style="width: 80px;"&gt;Sí&lt;/td&gt;&lt;td style="width: 80px;"&gt;Sí&lt;/td&gt;&lt;td style="width: 80px;"&gt;No&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt;&lt;td style="width: 80px;"&gt;8&lt;/td&gt;&lt;td style="width: 80px;"&gt;No&lt;/td&gt;&lt;td style="width: 80px;"&gt;No&lt;/td&gt;&lt;td style="width: 80px;"&gt;No&lt;/td&gt;&lt;td style="width: 80px;"&gt;Sí&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt;&lt;td style="width: 80px;"&gt;9&lt;/td&gt;&lt;td style="width: 80px;"&gt;Sí&lt;/td&gt;&lt;td style="width: 80px;"&gt;No&lt;/td&gt;&lt;td style="width: 80px;"&gt;No&lt;/td&gt;&lt;td style="width: 80px;"&gt;Sí&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt;&lt;td style="width: 80px;"&gt;a&lt;/td&gt;&lt;td style="width: 80px;"&gt;No&lt;/td&gt;&lt;td style="width: 80px;"&gt;Sí&lt;/td&gt;&lt;td style="width: 80px;"&gt;No&lt;/td&gt;&lt;td style="width: 80px;"&gt;Sí&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;tr&gt;&lt;td style="width: 80px;"&gt;b&lt;/td&gt;&lt;td style="width: 80px;"&gt;Sí&lt;/td&gt;&lt;td style="width: 80px;"&gt;Sí&lt;/td&gt;&lt;td style="width: 80px;"&gt;No&lt;/td&gt;&lt;td style="width: 80px;"&gt;Sí&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;tr&gt;&lt;td style="width: 80px;"&gt;c&lt;/td&gt;&lt;td style="width: 80px;"&gt;No&lt;/td&gt;&lt;td style="width: 80px;"&gt;No&lt;/td&gt;&lt;td style="width: 80px;"&gt;Sí&lt;/td&gt;&lt;td style="width: 80px;"&gt;Sí&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt;&lt;td style="width: 80px;"&gt;d&lt;/td&gt;&lt;td style="width: 80px;"&gt;Sí&lt;/td&gt;&lt;td style="width: 80px;"&gt;No&lt;/td&gt;&lt;td style="width: 80px;"&gt;Sí&lt;/td&gt;&lt;td style="width: 80px;"&gt;Sí&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt;&lt;td style="width: 80px;"&gt;e&lt;/td&gt;&lt;td style="width: 80px;"&gt;No&lt;/td&gt;&lt;td style="width: 80px;"&gt;Sí&lt;/td&gt;&lt;td style="width: 80px;"&gt;Sí&lt;/td&gt;&lt;td style="width: 80px;"&gt;Sí&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt;&lt;td style="width: 80px;"&gt;f&lt;/td&gt;&lt;td style="width: 80px;"&gt;Sí&lt;/td&gt;&lt;td style="width: 80px;"&gt;Sí&lt;/td&gt;&lt;td style="width: 80px;"&gt;Sí&lt;/td&gt;&lt;td style="width: 80px;"&gt;Sí&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Limites&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;1 ≤ N ≤ 100.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:130%;"&gt;Conjunto de datos pequeño&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;2 ≤ longitud(entrada_a_salida) ≤ 100,&lt;br /&gt;2 ≤ longitud(salida_a_entrada) ≤ 100.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:130%;"&gt;Conjunto de datos grande&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;2 ≤ longitud(entrada_a_salida) ≤ 10000,&lt;br /&gt;2 ≤ longitud(salida_a_entrada) ≤ 10000.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:130%;"&gt;Ejemplo&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Entrada&lt;/span&gt;&lt;br /&gt;2&lt;br /&gt;WRWWLWWLWWLWLWRRWRWWWRWWRWLW WWRRWLWLWWLWWLWWRWWRWWLW&lt;br /&gt;WW WW&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Salida&lt;/span&gt;&lt;br /&gt;Case #1:&lt;br /&gt;ac5&lt;br /&gt;386&lt;br /&gt;9c7&lt;br /&gt;e43&lt;br /&gt;9c5&lt;br /&gt;Case #2:&lt;br /&gt;3&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7986617721494538982-6495183912356611260?l=cambiodecodigo.blogspot.com'/&gt;&lt;/div&gt;</description><link>http://cambiodecodigo.blogspot.com/2008/06/un-laberinto.html</link><author>noreply@blogger.com (arntracks)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://1.bp.blogspot.com/_saFo-hGwU6A/SHJDaUc_5KI/AAAAAAAAAJ8/qilPR7b34ck/s72-c/mazeimage.gif" height="72" width="72" /><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">1</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-7986617721494538982.post-4604826800677456875</guid><pubDate>Tue, 17 Jun 2008 14:29:00 +0000</pubDate><atom:updated>2008-06-17T19:02:58.308-05:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">firefox</category><category domain="http://www.blogger.com/atom/ns#">download</category><category domain="http://www.blogger.com/atom/ns#">mozilla</category><title>Firefox 3 Download Day</title><description>Hoy es el día, a partir de las 12:00 horas (hora de Perú) tendremos la posibilidad de descargar la última versión de Mozilla Firefox, adicionalmente podremos ayudar a que este programa establezca el record mundial de descargas en un solo día.&lt;br /&gt;&lt;a href="http://www.spreadfirefox.com/node&amp;id=177184&amp;t=281"&gt;&lt;img style="border: 0px none ; margin: 0px auto 10px; display: block; text-align: center;" alt="Download Day - Spanish" title="Download Day - Spanish" src="http://www.spreadfirefox.com/files/images/affiliates_banners/180x150_02_es.png"/&gt;&lt;/a&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Actualización&lt;/span&gt;&lt;br /&gt;1. Puedes descargarlo &lt;a href="http://www.mozilla.com/es/firefox?p=downloadday"&gt;aqui &lt;/a&gt; o haciendo clic en la imagen.&lt;br /&gt;2. Luego de descargar e instalar Firefox 3, puedes obtener tu &lt;a href="http://www.spreadfirefox.com/es-ES/worldrecord/certificate_form"&gt;certificado&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7986617721494538982-4604826800677456875?l=cambiodecodigo.blogspot.com'/&gt;&lt;/div&gt;</description><link>http://cambiodecodigo.blogspot.com/2008/06/firefox-3-download-day.html</link><author>noreply@blogger.com (arntracks)</author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">2</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-7986617721494538982.post-174357368890852123</guid><pubDate>Sat, 07 Jun 2008 04:46:00 +0000</pubDate><atom:updated>2008-06-17T00:43:13.955-05:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">steve jobs</category><category domain="http://www.blogger.com/atom/ns#">apple</category><title>La muerte es el mejor invento de la vida</title><description>El titulo de este post puede llevarlos a pensar que me equivoqué de blog, un blog sobre tecnología no admite este tipo de temas podría pensar más de uno. Pues me temo que es una seria pérdida de perspectiva el creernos que la tecnología no tiene un lado humano y existencial. Toda la tecnología, desde las primeras puntas de flecha hasta los telescopios espaciales, tiene como origen y destino al ser humano.&lt;br /&gt;&lt;br /&gt;A pesar de lo dicho, lo que quiero compartir con ustedes en esta ocasión no se adentrará en los dominios de la filosofía, la frase que sirve de título a este post es parte del discurso que Steve Jobs pronunció en el inicio del año académico 2005 en la Universidad de Standford, si bien es un discurso relativamente conocido, la novedad para mi fue encontrarlo subtitulado en español. &lt;br /&gt;&lt;br /&gt;Si en algo los llega a tocar este discurso no duden en poner su respectivo comentario.&lt;br /&gt;&lt;br /&gt;&lt;object type="application/x-shockwave-flash" height="280" width="300" data="http://video.google.com/googleplayer.swf?docid=3014637678488153340&amp;amp;amp;hl=es" &gt;&lt;param name="movie" value="http://video.google.com/googleplayer.swf?docid=3014637678488153340&amp;amp;amp;hl=es" /&gt;&lt;param name="flashvars" value="" /&gt; &lt;/object&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://tinyurl.com/3qxpfv"&gt;El discurso en inglés&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7986617721494538982-174357368890852123?l=cambiodecodigo.blogspot.com'/&gt;&lt;/div&gt;</description><link>http://cambiodecodigo.blogspot.com/2008/06/la-muerte-es-el-mejor-invento-de-la.html</link><author>noreply@blogger.com (arntracks)</author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-7986617721494538982.post-3783272428794246184</guid><pubDate>Sun, 25 May 2008 22:19:00 +0000</pubDate><atom:updated>2009-03-05T12:21:03.529-05:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">gartner</category><category domain="http://www.blogger.com/atom/ns#">software</category><category domain="http://www.blogger.com/atom/ns#">seguridad</category><category domain="http://www.blogger.com/atom/ns#">vulnerabilidad</category><title>Vulnerabilidad en OpenSSL revela debilidades en el proceso de desarrollo OpenSource</title><description>Según un reporte de la consultora &lt;a href="http://www.gartner.com/"&gt;Gartner &lt;/a&gt;el 06 de mayo el SANS Institute estableció una "alerta amarilla" respecto de una vulnerabilidad en el protocolo SSL de algunas distribuciones Debian. El reporte mencionado se puede encontrar &lt;a href="http://tinyurl.com/4v2blj"&gt;aquí&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.openssl.org/"&gt;&lt;img style="border: 0px none ; margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 187px; height: 187px;" src="http://openssl.hoxt.com/openssl-web/images/misc-cookie.gif" alt="" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;En la sección de análisis de este documento se relata que la vulnerabilidad fue aparentemente introducida por desarrolladores de Debian y no por los desarrolladores de OpenSSL, en un intento de corregir un problema con la gestión de memoria resultando en una debilidad del generador de número aleatorios provocando que sea muy sencillo para un atacante descubrir las claves de encriptación.&lt;br /&gt;&lt;br /&gt;Se indica también que los desarrolladores de Debian intentaron comunicarse con la comunidad de desarrolladores de OpenSSL, pero "&lt;span style="font-style: italic;"&gt;los procesos de comunicación informales fueron evidentemente inadecuados en este caso&lt;/span&gt;". Menciona también que este hecho confirma el punto de vista de Garner sobre que "&lt;span style="font-style: italic;"&gt;los procesos de comunicación en el desarrollo open source necesitan mejoras significativas&lt;/span&gt;".&lt;br /&gt;&lt;br /&gt;Al parecer el caso es aún más grave puesto que, según menciona el informe, el código no solamente fue parcheado por los desarrolladores de Debian sino por otros fabricantes de software sin siquiera intentar comunicarse con los desarrolladores de los paquetes de base.&lt;br /&gt;&lt;br /&gt;El documento finaliza con varias recomendaciones, todas ellas muy atendibles, sin embargo lo que llama la atención es la percepción sobre el proceso de desarrollo OpenSource y los problemas que acarrea la falta de un proceso de comunicaciones mejor establecido que evite que sucedan estos casos que ponen en riesgo a una notable cantidad de aplicaciones y usuarios.&lt;br /&gt;&lt;br /&gt;Si bien es cierto el modelo de desarrollo OpenSource ha demostrado ser superior en muchos aspectos, no lo es menos que también tiene sus debilidades y justamente la comunicación entre los equipos de desarrollo y al interior de ellos mismos supone siempre un gran reto y un factor que incluso puede determinar el éxito o el fracaso del proyecto.&lt;br /&gt;&lt;br /&gt;Algunos enlaces útiles: &lt;a href="http://www.gartner.com/DisplayDocument?doc_cd=158357&amp;amp;ref=g_homelink"&gt;El reporte de Gartner&lt;/a&gt;, &lt;a href="http://www.blogger.com/www.debian.org/security/2008/dsa-1571"&gt;la descripción de la vulnerabilidad&lt;/a&gt;, &lt;a href="http://tinyurl.com/4w9nxk"&gt;otro artículo sobre el mismo tema&lt;/a&gt;, &lt;a href="http://es.wikipedia.org/wiki/OpenSSL"&gt;OpenSSL en Wikipedia&lt;/a&gt;, &lt;a href="http://adtmag.com/article.aspx?id=17547&amp;amp;page=1"&gt;la página oficial de OpenSSL&lt;/a&gt;, &lt;a href="http://adtmag.com/article.aspx?id=17547&amp;amp;page=1"&gt;un artículo sobre el proceso de desarrollo OpenSource&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7986617721494538982-3783272428794246184?l=cambiodecodigo.blogspot.com'/&gt;&lt;/div&gt;</description><link>http://cambiodecodigo.blogspot.com/2008/05/vulnerabilidad-en-openssl-revela.html</link><author>noreply@blogger.com (arntracks)</author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-7986617721494538982.post-3845153562776562643</guid><pubDate>Sat, 17 May 2008 19:36:00 +0000</pubDate><atom:updated>2008-05-17T18:38:05.044-05:00</atom:updated><title>Nuevo habitante</title><description>&lt;div xmlns='http://www.w3.org/1999/xhtml'&gt;&lt;div style=''&gt;&lt;div style=''&gt;Desde hace un par de días, este pequeño blog tiene el privilegio de pertenecer a &lt;a href='http://www.icaplanet.org'&gt;Teh Ica Planet&lt;/a&gt;, una iniciativa que pretende reunir el trabajo de los bloggers técnicos de Ica en un solo lugar, lo cual me parece una excelente idea. Personalmente, me siento muy complacido de poder compartir este &lt;a href='http://icaplanet.org/static/preguntas_frecuentes.html#que_es_un_planeta'&gt;planeta&lt;/a&gt; con los más reconocidos bloggers del medio.&lt;br/&gt;&lt;br/&gt;Esta noticia viene de la mano con un esfuerzo personal que me he impuesto por incrementar mi "frecuencia de posteo" que, como es público y notorio, no es aún muy significativa. Aprovecharemos como excusa que Mayo es el mes en que se celebra el &lt;b&gt;Día de Internet&lt;/b&gt; para tratar de postear un poco más que de costumbre y así, de paso, contribuimos con el contenido de &lt;a href='http://www.icaplanet.org'&gt;Teh Ica Planet&lt;/a&gt;.&lt;br/&gt;&lt;br/&gt;Entonces, ya lo sabes, si vives en Ica y te interesan los tips, trucos, hacks, noticias o simplemente datos sobre temas técnicos puedes leerlos en &lt;a href='http://icaplanet.org'&gt;Teh Ica Planet&lt;/a&gt; donde se encuentran los bloggers de la región reunidos y dispuestos a compartir.&lt;br/&gt;&lt;br/&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7986617721494538982-3845153562776562643?l=cambiodecodigo.blogspot.com'/&gt;&lt;/div&gt;</description><link>http://cambiodecodigo.blogspot.com/2008/05/nuevo-habitante_6949.html</link><author>noreply@blogger.com (arntracks)</author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-7986617721494538982.post-272244236370140052</guid><pubDate>Sat, 10 May 2008 14:36:00 +0000</pubDate><atom:updated>2008-05-29T00:54:25.031-05:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">ies4linux</category><category domain="http://www.blogger.com/atom/ns#">ie</category><category domain="http://www.blogger.com/atom/ns#">linux</category><category domain="http://www.blogger.com/atom/ns#">software</category><category domain="http://www.blogger.com/atom/ns#">ubuntu</category><title>Internet Explorer en Linux</title><description>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_saFo-hGwU6A/SCoctC5-8RI/AAAAAAAAAI4/w66m6mmtuek/s1600-h/ies4linux.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://3.bp.blogspot.com/_saFo-hGwU6A/SCoctC5-8RI/AAAAAAAAAI4/w66m6mmtuek/s400/ies4linux.png" alt="" id="BLOGGER_PHOTO_ID_5200000279952421138" border="0" /&gt;&lt;/a&gt;Acabo de instalar Internet Explorer 6 sobre Ubunty Gutsy (recién hoy actualizaré a Hardy Heron) y parece funcionar correctamente, al menos hasta donde lo he podido probar. Si no sabías que se podían instalar programas de Windows en Linux, pues te cuento que sí se puede para ello primero debes instalar &lt;a href="http://www.winehq.org/"&gt;Wine&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.winehq.org/"&gt;Wine&lt;/a&gt; es una implementación de la API de Windows para plataformas Unix y Linux, de modo tal que los programas para Windows corren sobre Wine sin modificaciones y una buena parte de ellos lo hace bien e incluso más rápido que en Windows.&lt;br /&gt;&lt;br /&gt;Si ya sabías de Wine, probablemente te estarás preguntando y ¿para qué querríamos ejecutar IE cuando en Ubuntu tenemos Firefox por defecto?. Se me ocurren dos razones, una, para no tener que utilizar una segunda máquina o tener que reiniciar nuestra máquina en Windows cuando desarrollamos sitios web que deben ser comprobados con diversos navegadores y, dos, para quienes queremos utilizar Linux como sistema operativo de escritorio y estamos obligados a navegar hacia sitios web diseñados exclusivamente para IE, justamente es mi caso.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;font-size:130%;" &gt;¿Cómo?&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Para instalar una o más versiones de Internet Explorer sobre Linux utilizando Wine, existe una alternativa denominada &lt;a href="http://www.tatanka.com.br/ies4linux/page/Main_Page"&gt;IEs 4 Linux&lt;/a&gt; que brinda una forma sencilla de hacerse con las diferentes versiones del navegador de Microsoft sin mayor esfuerzo. Para ello se deben seguir unas &lt;a href="http://www.tatanka.com.br/ies4linux/page/Installation:Ubuntu"&gt;sencillas instrucciones&lt;/a&gt;, básicamente: habilitar los repositorios universe, instalar Wine y luego instalar IEs4Linux.&lt;br /&gt;&lt;br /&gt;Gracias a IEs4Linux podremos, luego de algunos minutos,  ejecutar IE sobre Linux, en mi caso me bastó con instalar IE6, ahora lo puedo ejecutar tecleando:&lt;br /&gt;&lt;br /&gt;.ies4linux/bin/ie6&lt;br /&gt;&lt;br /&gt;Haciendo clic sobre la imagen se puede ver el resultado.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://picasaweb.google.com/arnTracks/CambioDeCDigo/photo?authkey=jEWBG9VMfOw#5199990328513196258"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://2.bp.blogspot.com/_saFo-hGwU6A/SCoUAy5-8PI/AAAAAAAAAIU/AhyVMfdcwME/s400/ies4linux_detalle.png" alt="" id="BLOGGER_PHOTO_ID_5199990723650187506" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;span style="font-weight: bold;font-size:130%;" &gt;A tener en cuenta&lt;/span&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;La instalación de Wine toma algo de tiempo, dependerá sobre todo de tu ancho de banda.&lt;/li&gt;&lt;li&gt;Tuve que reiniciar la instalación de IEs4Linux más de 10 veces (sin exagerar) debido a que se cortaban las descargas (no me detuve a analizar el motivo) si te sucede lo mismo y das con el motivo de esto o mejor aún si sabes como evitar este inconveniente ponlo en los comentarios.&lt;/li&gt;&lt;li&gt;Puedes instalar hasta 3 versiones de IE 5, 5.5 y 6, la versión 7 esta en fase beta.&lt;/li&gt;&lt;li&gt;No utilices IE para navegar, para disfrutar de la web tenemos Firefox, también Opera y Safari.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Y, por supuesto, nunca esta demás darle una mirada a las &lt;a href="http://www.tatanka.com.br/ies4linux/page/Es/Notas_Legales"&gt;notas legales&lt;/a&gt;.&lt;/li&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7986617721494538982-272244236370140052?l=cambiodecodigo.blogspot.com'/&gt;&lt;/div&gt;</description><link>http://cambiodecodigo.blogspot.com/2008/05/internet-explorer-en-linux.html</link><author>noreply@blogger.com (arntracks)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://3.bp.blogspot.com/_saFo-hGwU6A/SCoctC5-8RI/AAAAAAAAAI4/w66m6mmtuek/s72-c/ies4linux.png" height="72" width="72" /><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-7986617721494538982.post-8274638393726728072</guid><pubDate>Tue, 22 Apr 2008 17:30:00 +0000</pubDate><atom:updated>2008-05-29T00:53:48.244-05:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">linux</category><category domain="http://www.blogger.com/atom/ns#">evento</category><category domain="http://www.blogger.com/atom/ns#">perú</category><title>Flisol 2008</title><description>Este sábado 26 de abril se realizará la &lt;span style="font-weight: bold;"&gt;4ta edición del Festival L&lt;/span&gt;&lt;span style="font-weight: bold;"&gt;atinoamericano de Instalación de Software Libre - FLISOL 2008,&lt;/span&gt; un evento que se realiza en simultáneo en 16 países de Latinoamerica con múltiples sedes en cada país. Si bien es cierto Ica no será sede de este evento parece muy factible asistir a una de las dos sedes establecidas en Lima que son la &lt;a href="http://flisol-uni.uniestudia.org/"&gt;Universidad de Ingeniería&lt;/a&gt; y la &lt;a href="http://www.utpinux.org/?q=node/44"&gt;Universidad Tecnológica del Perú.&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_saFo-hGwU6A/SA6VYZS3n6I/AAAAAAAAAG4/rn4D7GhpHCg/s1600-h/flisol.blogspot.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 364px; height: 70px;" src="http://1.bp.blogspot.com/_saFo-hGwU6A/SA6VYZS3n6I/AAAAAAAAAG4/rn4D7GhpHCg/s400/flisol.blogspot.png" alt="" id="BLOGGER_PHOTO_ID_5192251666744188834" border="0" /&gt;&lt;/a&gt;Si no sabes con precisión lo que es el software libre, o quieres conocer más de él, si has decidido instalar Linux pero no sabes cómo, entonces este evento es para ti. No te lo pierdas!&lt;br /&gt;&lt;br /&gt;La temática principal del &lt;a href="http://peru.flisol.net/"&gt;Flisol 2008 en Perú&lt;/a&gt; será &lt;span style="font-weight: bold;"&gt;"TIC's Educación y Software Libre"&lt;/span&gt; por lo que es una invitación especial, aunque no exclusiva, para los maestros de todo el Perú. Si eres estudiante de educación, maestro o ejerces como tal, inscríbete y participa.  En este evento podrás apreciar cómo el software libre puede ayudarte a mejorar tu desempeño y el de tus alumnos utilizando tecnologías que no restringen tu libertad ni la de ellos.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://peru.flisol.net/media/banners/banner2008.gif"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px;" src="http://peru.flisol.net/media/banners/banner2008.gif" alt="" border="0" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7986617721494538982-8274638393726728072?l=cambiodecodigo.blogspot.com'/&gt;&lt;/div&gt;</description><link>http://cambiodecodigo.blogspot.com/2008/04/flisol-2008.html</link><author>noreply@blogger.com (arntracks)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://1.bp.blogspot.com/_saFo-hGwU6A/SA6VYZS3n6I/AAAAAAAAAG4/rn4D7GhpHCg/s72-c/flisol.blogspot.png" height="72" width="72" /><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">1</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-7986617721494538982.post-7506896811181640781</guid><pubDate>Sat, 12 Apr 2008 16:27:00 +0000</pubDate><atom:updated>2008-05-27T00:51:25.697-05:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">linux</category><category domain="http://www.blogger.com/atom/ns#">virtualización</category><category domain="http://www.blogger.com/atom/ns#">software</category><title>Virtualización</title><description>Este es uno de los términos de moda al día de hoy en el mundo informático, aunque en realidad no se trata de una novedad absoluta. Lo que sí es novedad es la cantidad de opciones y la facilidad con la cual se puede implementar. Especialmente si nos referimos a &lt;span style="font-weight: bold;"&gt;virtualización nativa&lt;/span&gt;, existen muchos productos que con muy pocos conocimientos técnicos nos permiten instalar una máquina virtual sencilla.&lt;br /&gt;&lt;br /&gt;Es decir que en este momento tenemos múltiples opciones para ejecutar un sistema operativo dentro de otro como podría ser windows - windows, windows - linux, linux - windows; solo por citar los ejemplos más  populares.&lt;br /&gt;&lt;br /&gt;Pero, antes que nada, ¿porqué se nos ocurriría ejecutar un sistema operativo(guest) dentro de otro (host)? Pues las razones y las ventajas de hacerlo son múltiples, aquí algunas de ellas:&lt;br /&gt;&lt;br /&gt;1. &lt;span style="font-weight: bold;"&gt;Para aprender&lt;/span&gt;, en una máquina virtual puedo instalar el sistema operativo y las aplicaciones que se me ocurran, utilizarlos tanto como sea necesario y desecharlas cuando ya no me interesen. Todo ello sin tocar mi entorno habitual de trabajo ya que todo estará encapsulado en el sistema operativo virtualizado.&lt;br /&gt;&lt;br /&gt;2. &lt;span style="font-weight: bold;"&gt;Para un programador&lt;/span&gt;, contar con máquinas virtuales para cada plataforma en la quiera desarrollar/probar/desplegar su trabajo es una bendición y todo puede estar un mismo hardware.&lt;br /&gt;&lt;br /&gt;3. &lt;span style="font-weight: bold;"&gt;Para sistemas en producción&lt;/span&gt;, estar alojados en un sistema operativo virtualizado simplifica enormemente su administración/recuperación. Dado el caso de un fallo de hardware en un sistema no virtualizado, las dependencias hardware-software pueden ser difíciles de salvar sobre todo si se te malogra una placa madre que hace años esta descontinuada entonces tienes un quebradero de cabeza que una máquina virtual no te daría.&lt;br /&gt;&lt;br /&gt;4. &lt;span style="font-weight: bold;"&gt;Para aprovechar mejor el hardware&lt;/span&gt;, existen muchos sistemas que subutilizan el hardware en el que estan alojados, esta situación implica un desperdicio de recursos principalmente procesamiento/almacenamiento/energía. Así que si movemos esos sistemas a los que les queda grande el hardware cada uno a una máquina virtual y las alojamos todas en un servidor potente, tenemos que ese hardware estará siendo utilizado más eficientemente. De paso, simplificamos la administración y el respaldo de los sistemas. A esto se le suele llamar consolidación.&lt;br /&gt;&lt;br /&gt;Es cierto que no todo son ventajas cuando utilizamos virtualización nativa, pero en mi opinión las ventajas son muchas y, por lo tanto, es un tema considerar muy en serio.&lt;br /&gt;&lt;br /&gt;Pues bien, el siguiente paso sería animarnos a instalar algún &lt;a href="http://tinyurl.com/6bthkd"&gt;software de virtualización&lt;/a&gt; de los cuales existen muchos, para todas las plataformas y necesidades. Si se deciden a ello, no dejen de comentarme cómo les fue.&lt;br /&gt;&lt;br /&gt;Finalmente, una aclaración y se refiere al término &lt;a href="http://es.wikipedia.org/wiki/Virtualizaci%C3%B3n"&gt;virtualización&lt;/a&gt; que en realidad se refiere a un rango muy amplio de aplicaciones, no necesaria ni exclusivamente a la virtualización nativa que es a lo que me he referido en este artículo. El enlace los puede llevar a Wikipedia donde tenemos una muy buena explicación del término. Hasta pronto.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7986617721494538982-7506896811181640781?l=cambiodecodigo.blogspot.com'/&gt;&lt;/div&gt;</description><link>http://cambiodecodigo.blogspot.com/2008/04/virtualizacin.html</link><author>noreply@blogger.com (arntracks)</author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">2</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-7986617721494538982.post-8095455959275380851</guid><pubDate>Thu, 20 Mar 2008 06:33:00 +0000</pubDate><atom:updated>2008-03-20T02:13:07.619-05:00</atom:updated><title>Estar en la Universidad es una cosa de Google</title><description>&lt;a href="http://code.google.com/edu/"&gt;Google Code University&lt;/a&gt;, es un sitio web donde podemos encontrar tutoriales, resúmenes y diapositivas sobre temas de programación, la mayor parte de ellos están organizados como cursos. El sitio no es super abundante en información pero los temas que estan disponibles hasta ahora son suficientemente variados e interesantes.&lt;br /&gt;&lt;br /&gt;Por mi parte, leí el artículo de &lt;a href="http://code.google.com/edu/tools101/mysql.html"&gt;introducción a las bases de datos y MySQL&lt;/a&gt; de un tirón y me pareció entretenido, claro y conciso. También llegué a ver los primeros 30 minutos del video sobre&lt;a href="http://code.google.com/edu/languages/index.html#_cplus_threads"&gt; Hilos en C++&lt;/a&gt;, una característica que se implementará en el estándar, y nuevamente lo encontré muy interesante y didáctico. Terminaré de verlo más tarde seguramente. El vídeo sobre &lt;a href="http://code.google.com/edu/languages/index.html#_cplus_newfeatures"&gt;nuevas características del C++ standard &lt;/a&gt;no estaba disponible, espero que esto se arregle pronto.&lt;br /&gt;&lt;br /&gt;Más allá de mi interés por el lenguaje C++ seguramente le daré una mirada a los recursos sobre Python y Ajax, así que por lo menos para mi, el &lt;a href="http://code.google.com/edu/"&gt;Google Code University&lt;/a&gt; empieza a ser un sitio interesante, si se dan una vuelta por ahí no dejen de contarme qué les pareció.&lt;br /&gt;&lt;br /&gt;Los interesados en el orígen de esta iniciativa pueden leer siguiente &lt;a href="http://google-code-updates.blogspot.com/2008/03/google-code-university-cs-educational.html"&gt;artículo&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7986617721494538982-8095455959275380851?l=cambiodecodigo.blogspot.com'/&gt;&lt;/div&gt;</description><link>http://cambiodecodigo.blogspot.com/2008/03/estar-en-la-universidad-es-una-cosa-de.html</link><author>noreply@blogger.com (arntracks)</author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-7986617721494538982.post-557159162467205458</guid><pubDate>Tue, 19 Feb 2008 21:48:00 +0000</pubDate><atom:updated>2008-02-19T16:48:23.162-05:00</atom:updated><title>De Todo Un Poco: Entender Plan de Ejecucion en SQL Server</title><description>&lt;a href="http://grimpi.blogspot.com/2007/05/entender-plan-de-ejecucion-en-sql.html"&gt;De Todo Un Poco: Entender Plan de Ejecucion en SQL Server&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7986617721494538982-557159162467205458?l=cambiodecodigo.blogspot.com'/&gt;&lt;/div&gt;</description><link>http://cambiodecodigo.blogspot.com/2008/02/de-todo-un-poco-entender-plan-de.html</link><author>noreply@blogger.com (arntracks)</author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-7986617721494538982.post-7210663245059875182</guid><pubDate>Wed, 05 Dec 2007 06:40:00 +0000</pubDate><atom:updated>2007-12-05T01:47:28.668-05:00</atom:updated><title>Apilando contenedores</title><description>Hola, tengo un problema sencillo de plantear y muy interesante para ser resuelto. Se trata de figurarnos que tenemos que operar una grúa de un puerto para apilar contenedores que luego serán cargados en sendos barcos. Pues bien, si cada contenedor esta marcado con una letra (A-Z) la cual indica el barco en el que será cargado, y además sabemos que los barcos arribarán en estricto orden alfabético, debemos determinar el mínimo número de pilas que se necesitan para cargar eficientemente los barcos.&lt;br /&gt;Aclarando lo de "eficientemente" diremos que siempre será mejor que los contenedores se encuentren en la parte superior de las pilas para no tener que retirar otros contenedores de encima antes de cargarlos en su respectivo barco.&lt;br /&gt;Listo, el reto esta planteado... se aceptan ideas!!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7986617721494538982-7210663245059875182?l=cambiodecodigo.blogspot.com'/&gt;&lt;/div&gt;</description><link>http://cambiodecodigo.blogspot.com/2007/12/apilando-contenedores.html</link><author>noreply@blogger.com (arntracks)</author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">2</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-7986617721494538982.post-5169184991085351828</guid><pubDate>Fri, 23 Nov 2007 15:07:00 +0000</pubDate><atom:updated>2008-05-28T13:16:36.721-05:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">linux</category><category domain="http://www.blogger.com/atom/ns#">evento</category><category domain="http://www.blogger.com/atom/ns#">ica</category><category domain="http://www.blogger.com/atom/ns#">perú</category><title>Linux Day Ica</title><description>Utilizaré este medio también para invitarlos al evento sobre GNU/Linux que estamos organizando el SENATI y el PLUG, en Ica, este 1ro de diciembre. Los detalles estan en &lt;a href="http://www.linuxdayica.com/"&gt;http://www.linuxdayica.com&lt;/a&gt;.&lt;br /&gt;En cuanto a programación tendremos una charla y un taller sobre Ruby on Rails a cargo de Jaime Wong, los otros temas estan a cargo de prominentes figuras pertenecientes al PLUG como son Antonio Ognio, Néstor Ruiz y Clever Flores.&lt;br /&gt;No se lo pierdan!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7986617721494538982-5169184991085351828?l=cambiodecodigo.blogspot.com'/&gt;&lt;/div&gt;</description><link>http://cambiodecodigo.blogspot.com/2007/11/linux-day-ica.html</link><author>noreply@blogger.com (arntracks)</author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">1</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-7986617721494538982.post-8876405090621941159</guid><pubDate>Fri, 23 Nov 2007 13:38:00 +0000</pubDate><atom:updated>2007-11-25T10:59:26.054-05:00</atom:updated><title>Primer Cambio</title><description>Hola, aquí la primera entrega. Se trata simplemente de algunos enlaces referidos a un problema de optimización. Lo interesante de este problema es que fue presentado durante una conferencia del &lt;span style="font-weight: bold;"&gt;Google Tour Perú &lt;/span&gt;como un problema típico de los que se plantean en las entrevistas de trabajo de esta compañía. Según comentan los asistentes a esta conferencia el problema no llegó a ser resuelto en ese momento, pero tenemos soluciones aportadas posteriormente.&lt;br /&gt;En primer lugar, la &lt;a href="http://gnrfan.org/index.php?gadget=blog&amp;amp;action=single_view&amp;amp;id=194"&gt;solución del problema por Antonio Ognio&lt;/a&gt; quien se tomó el debido tiempo para interpretar y, sobre todo, explicarnos como llegó a la respuesta. Luego, mencionaremos la &lt;a href="http://gpicon.blogspot.com/2007/11/solucion-quiz-de-google.html"&gt;solución provista por Gustavo Picón&lt;/a&gt; quien además ha publicado una optimización de la misma.&lt;br /&gt;Finalmente, un &lt;a href="http://ite.pubs.informs.org/Vol4No1/Sniedovich/"&gt;trabajo  académico &lt;/a&gt;(¿cómo se dice ¨paper¨ en español?) con la explicación completa y general del problema.&lt;br /&gt;Saludos a todos y nos vemos en el próximo cambio de código.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7986617721494538982-8876405090621941159?l=cambiodecodigo.blogspot.com'/&gt;&lt;/div&gt;</description><link>http://cambiodecodigo.blogspot.com/2007/11/primer-cambio.html</link><author>noreply@blogger.com (arntracks)</author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">1</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-7986617721494538982.post-6490347605012709809</guid><pubDate>Tue, 01 May 2007 21:56:00 +0000</pubDate><atom:updated>2008-05-31T18:14:16.982-05:00</atom:updated><title>Hola</title><description>&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7986617721494538982-6490347605012709809?l=cambiodecodigo.blogspot.com'/&gt;&lt;/div&gt;</description><link>http://cambiodecodigo.blogspot.com/2007/05/hola.html</link><author>noreply@blogger.com (arntracks)</author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">1</thr:total></item></channel></rss>
