<?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' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-6047368587628747637</id><updated>2011-07-08T04:45:55.344-07:00</updated><title type='text'>Stressing Programming</title><subtitle type='html'>Nothing more than a socially acceptable form of mental illness...</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://stressingprogramming.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6047368587628747637/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://stressingprogramming.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Rodrigo Liberoff</name><uri>http://www.blogger.com/profile/00091560834297138992</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>10</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-6047368587628747637.post-329131226853514125</id><published>2008-12-29T07:18:00.000-08:00</published><updated>2008-12-29T07:29:54.821-08:00</updated><title type='text'>El dinero crece en árboles...</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_oL8QZn341BE/SVjsyGlKU1I/AAAAAAAABKc/sKA__KlHNaw/s1600-h/money-tree.jpg"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 200px; height: 200px;" src="http://1.bp.blogspot.com/_oL8QZn341BE/SVjsyGlKU1I/AAAAAAAABKc/sKA__KlHNaw/s200/money-tree.jpg" border="0" alt="" id="BLOGGER_PHOTO_ID_5285234508223370066" /&gt;&lt;/a&gt;&lt;div&gt;Parte de nuestro trabajo radica en encontrar fuentes de información de diverso tipo. Podemos invertir muchas horas googleando donde podemos literalmente extraer y minar los datos para las diversas funcionalidades que nuestros clientes pueden pedirnos.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Un dato típico es el valor de las monedas a nivel mundial a la hora de cerrar sus respectivos mercados y ser publicados los valores oficiales a corde a sus correspondientes bancos centrales.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Esta es una información poco estática, pues cada mercado de valores abre y cierra acorde al uso horario donde se encuentra, por lo cual aunque no se considere como información en &lt;span class="Apple-style-span" style="font-style: italic;"&gt;real-time&lt;/span&gt; ciertamente se necesita tener un acceso frecuente y continuo a los valores que vayan siendo publicados periódicamente.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;El problema radica en que muchas veces el cliente (o nosotros mismos) no deseamos pagar una prima mensual por obtener este tipo de información que libremente encontramos en diversos portales de noticias (independientemente de que sean o no de tópico económico). Lo que deseamos es un proveedor confiable, rutinario y sobretodo &lt;span class="Apple-style-span" style="font-weight: bold;"&gt;GRATIS&lt;/span&gt;. Al fin y al cabo, la idea es hacer dinero y no debería pagarse por algo que es &lt;span class="Apple-style-span" style="font-style: italic;"&gt;vox populi&lt;/span&gt; diariamente, y de lo cual sólo se necesita una fuente de consumo.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Lo bueno es que como sociedades de la información que somos, pues hoy existen diversos medios para obtener datos o bien transmitirlos, como por ejemplo la tecnología RSS. Justamente el sitio &lt;a href="http://www.currencysource.com"&gt;http://www.currencysource.com&lt;/a&gt; provee de una serie de RSS basados en una moneda específica para publicar cada 2o minutos la relación de cambio que existe con esta y las demás monedas mundiales, desde las más empleadas como el dollar americano, hasta el franco suizo o la libra esterlina de Inglaterra.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Particularmente el &lt;span class="Apple-style-span" style="font-style: italic;"&gt;feed&lt;/span&gt; para Euros es: &lt;a href="http://www.currencysource.com/rss/EUR.xml"&gt;http://www.currencysource.com/rss/EUR.xml&lt;/a&gt;.&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&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/6047368587628747637-329131226853514125?l=stressingprogramming.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://stressingprogramming.blogspot.com/feeds/329131226853514125/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6047368587628747637&amp;postID=329131226853514125' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6047368587628747637/posts/default/329131226853514125'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6047368587628747637/posts/default/329131226853514125'/><link rel='alternate' type='text/html' href='http://stressingprogramming.blogspot.com/2008/12/el-dinero-crece-en-rboles.html' title='El dinero crece en árboles...'/><author><name>Rodrigo Liberoff</name><uri>http://www.blogger.com/profile/00091560834297138992</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_oL8QZn341BE/SVjsyGlKU1I/AAAAAAAABKc/sKA__KlHNaw/s72-c/money-tree.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6047368587628747637.post-1712237016500650279</id><published>2008-09-03T23:38:00.000-07:00</published><updated>2008-09-03T23:56:09.373-07:00</updated><title type='text'>Un diferente paradigma, los mismos retos...</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_oL8QZn341BE/SL-F-laLB7I/AAAAAAAAAz4/QSCEqhaGQCw/s1600-h/Conclave+Obscurum+2.jpg"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 224px; height: 252px;" src="http://3.bp.blogspot.com/_oL8QZn341BE/SL-F-laLB7I/AAAAAAAAAz4/QSCEqhaGQCw/s320/Conclave+Obscurum+2.jpg" alt="" id="BLOGGER_PHOTO_ID_5242055801522816946" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="white-space: pre-wrap;font-family:Verdana;font-size:11;"  &gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;Esta entrada es un &lt;/span&gt;&lt;span class="Apple-style-span" style="font-style: italic;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;adendum&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt; a mi entrada anterior sobre Google Chrome, el nuevo navegador de Google, la cual podreis leer hacienco click &lt;/span&gt;&lt;a href="http://stressingprogramming.blogspot.com/2008/09/una-misma-idea-un-diferente-paradigma.html"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;aquí&lt;/span&gt;&lt;/a&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;.&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;La verdad que Chrome es muy bueno, aunque he encontrado un montón de páginas que aún no soporta, como por ejemplo la de la Real Academia Española, algunas de MSDN (que empleo mucho por mi línea de trabajo como Arquitecto de Soluciones .NET) y ciertos aplicativos web de Facebook (como el de Dungeons &amp;amp; Dragons que me tiene adicto) o la capacidad de cambiar el tamaño a las imagenes que ponemos en las entradas de nuestros blogs.  &lt;/span&gt;&lt;/span&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="white-space: pre-wrap;font-family:Verdana;font-size:48;"  &gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="white-space: pre-wrap;font-family:Verdana;font-size:11;"  &gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;Uno de los bugs más graves, aunque conocido y causal de chistes dentro del mismo GooglePlex es que Chrome no carga GMail... y no es que lo carque apropiadamente, sino que ni entra en la página de correos :P  &lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="white-space: pre-wrap;font-family:Verdana;font-size:48;"  &gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="white-space: pre-wrap;font-family:Verdana;font-size:11;"  &gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;Obviamente el producto es beta , y seguro saldrán actualizaciones muy buenas que irán solucionando esto poco a poco.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style=""&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="white-space: pre-wrap;font-family:Verdana;font-size:48;"  &gt;&lt;br /&gt;&lt;/span&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="white-space: pre-wrap;font-family:Verdana;" &gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt; De resto, me parece que carga las aplicaciones y las páginas volando, que es muy inteligente y adaptativo a los gustos y búsquedas de cada persona y que tiene un aire minimalista que lo hace bastante amigable de usar, aunque tiene una que otra funcionalidad que uno exraña tanto de IE como del FireFox.&lt;/span&gt;&lt;/span&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/6047368587628747637-1712237016500650279?l=stressingprogramming.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://stressingprogramming.blogspot.com/feeds/1712237016500650279/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6047368587628747637&amp;postID=1712237016500650279' title='2 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6047368587628747637/posts/default/1712237016500650279'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6047368587628747637/posts/default/1712237016500650279'/><link rel='alternate' type='text/html' href='http://stressingprogramming.blogspot.com/2008/09/un-diferente-paradigma-los-mismos-retos.html' title='Un diferente paradigma, los mismos retos...'/><author><name>Rodrigo Liberoff</name><uri>http://www.blogger.com/profile/00091560834297138992</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_oL8QZn341BE/SL-F-laLB7I/AAAAAAAAAz4/QSCEqhaGQCw/s72-c/Conclave+Obscurum+2.jpg' height='72' width='72'/><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6047368587628747637.post-953820927039579601</id><published>2008-09-02T01:08:00.000-07:00</published><updated>2008-09-02T01:53:53.570-07:00</updated><title type='text'>Una misma idea, un diferente paradigma</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_oL8QZn341BE/SLz1MyCIvlI/AAAAAAAAAzQ/ersXFR4SUxk/s1600-h/Google_Chrome_Logo.png"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 119px; height: 119px;" src="http://2.bp.blogspot.com/_oL8QZn341BE/SLz1MyCIvlI/AAAAAAAAAzQ/ersXFR4SUxk/s200/Google_Chrome_Logo.png" alt="" id="BLOGGER_PHOTO_ID_5241333666290384466" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;A veces nos enfrentamos a escenarios en los que aquello que deseamos más, es lo que más tardamos en obtener. Y no estoy tratando de ser filosófico al respecto, sólo pragmático.&lt;br /&gt;&lt;br /&gt;En la vida de un ingeniero de software, lo que más anhela se puede colorear usualmente en dos (como cosa rara en una vida estigmatizada por &lt;span style="font-size:100%;"&gt;1&lt;/span&gt;´s y &lt;span style="font-size:100%;"&gt;0&lt;/span&gt;´s) estados:&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;ol&gt;&lt;li&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-weight: bold; font-style: italic;"&gt;A largo plazo&lt;/span&gt;:&lt;/span&gt; &lt;span style="font-size:85%;"&gt;quieres ser un ingeniero de Google y ganar bien haciendo lo que te gusta (y muy importante, hacerlo bien), hacerte famoso jodiendo a Microsoft... o rico compartiendo su fama, fundar tu empresa o heredarla. No importa qué, te imaginas siendo grande en lo que más te apasiona: el software. Esto que es lo que más quisieramos que pase YA, es lo que más tarda en ocurrir.&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-style: italic; font-weight: bold;"&gt;A corto plazo&lt;/span&gt;:&lt;/span&gt; &lt;span style="font-size:85%;"&gt;es típico, tienes un problema y al googlearlo tardas como 10 a 30 minutos encontrando la solución en un oceano casi infinito de blog´s y foros en idiomas que jamás pensarías aprender, pero que gracias a &lt;a href="http://www.google.com/language_tools"&gt;Google Languages&lt;/a&gt; tienes exito en traducir tal cual un &lt;a href="http://en.wikipedia.org/wiki/Jean-Fran%C3%A7ois_Champollion"&gt;Champollion&lt;/a&gt; moderno. Y esto, que quisieramos que simplemente NO pase, o que se solucione YA... termina consumiendonos días de trabajo.&lt;/span&gt;&lt;/li&gt;&lt;/ol&gt;&lt;span style="font-size:85%;"&gt;Seguro hay otros aspectos, pero el segundo, aquel de cosas a corto plazo, es el que me interesa más para esta entrada. :P&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;¿Y porque digo que me interesa? Pues porque dentro de poco espero poder instalar (aún siendo &lt;span style="font-family:courier new;"&gt;beta&lt;/span&gt;) la primera instanciación de Google Chrome, el navegador de Google.&lt;br /&gt;&lt;br /&gt;Resulta que este navegador no tiene nada de especial con diferencia al IE de Microsoft o el FireFox de Mozilla, excepto que es de Google, y más que un navegador parece un sistema operativo virtualizado en una máquina local, con todas las prestaciones de un sistema operativo donde cada página web es una aplicación independiente siendo ejecutada a todas las de la ley.&lt;br /&gt;&lt;br /&gt;Tanto es así, que cada página web en Chrome es manipulada dentro de su propio espacio de memoria como procesos diferentes (no &lt;span style="font-style: italic;"&gt;threads&lt;/span&gt;, sino procesos completos) los cuales a su vez cuentan con subprocesos que pueden ser auditados y monitoreados a través del Task Manager... no del sistema operativo, sino del mismo navegador.&lt;br /&gt;&lt;br /&gt;La ventaja es que minimiza el fragmentamiento de la memoria del navegador (que ya no existiría porque sería particionada por cada página), se podría saber con precisión que proceso (JavaScript o Plug-in) esta haciendo colapsar la página y más importante aún, si falla una página (tab) no colapsas el navegador completo. El contra es que se consumirá más memoria.&lt;br /&gt;&lt;br /&gt;Básicamente Chrome como navegador hace lo mismo que cualquier otro que encontremos en Internet, pero lo hace bajo una óptica paradigmática totalmente diferente, tratando a las páginas web como aplicaciones (que es lo que son hoy realmente si nos fijamos en Facebook, GMail o cualquier otra por ejemplo) y manipulando estas como procesos virtualizados dentro de un sistema operativo a modo de &lt;span style="font-style: italic;"&gt;sandbox&lt;/span&gt;.&lt;br /&gt;&lt;br /&gt;LLamar a Chrome un navegador esta bien, pues eso es lo que hace; pero si somos formales y algo ortodoxos, entonces realmente es una máquina virtual donde el lenguaje máquina es HTML. No estoy exagerando, ya que JavaScript es tratado literalmente como un superlenguaje manipulado por una máquina virtual para él mismo.&lt;br /&gt;&lt;br /&gt;Otra cosa (aunque para mí no sea gran ventaja... pero hay que ser imparcial) es que el navegador es totalmente &lt;span style="font-style: italic;"&gt;opensource&lt;/span&gt;, con lo cual cualquiera puede mejorarlo o tomar libremente ideas del código proporcionado.&lt;br /&gt;&lt;br /&gt;Mi única duda será con la parte de plug-ins, no por su desempeño o eficiencia que seguro será superlativa, sino por el soporte. ¿Habrá disponible todos los plug-ins que habitualmente empleamos como: Flash, Shockwave, Quicktime, Adobe PDF, Office (si, de Microsoft), Media Player (&lt;span style="font-style: italic;"&gt;again&lt;/span&gt;) entre otros? Sin embargo, &lt;/span&gt;&lt;span style="font-size:85%;"&gt;como mucho del navegador sigue la arquitectura de los Google Gears y Google Gadjets, es probable que no sólo haya plug-ins, sino micro aplicaciones con funciones atómicas específicas adosables al navegador.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&lt;br /&gt;Espero que sea tan bueno como prometen, ya que sale el 3 de Septiembre.&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;Y al final, como bien dice mi amigo David Biencinto... &lt;span style="font-style: italic;"&gt;Google tiene como objetivo conquistar el mundo, a este ritmo tendremos coches Google, comeremos en Google King y seremos gobernados por una Googlecracia.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;En fin, Yo no me quejo :P&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&lt;br /&gt;Por cierto que Blogger es de Google ;)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&lt;br /&gt;Algunas referencias:&lt;br /&gt;&lt;/span&gt;&lt;ul&gt;&lt;li&gt;&lt;span style="font-size:85%;"&gt; http://googleblog.blogspot.com/2008/09/fresh-take-on-browser.html&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-size:85%;"&gt; http://en.wikipedia.org/wiki/Google_Chrome&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-size:85%;"&gt; http://blogoscoped.com/google-chrome/ &lt;span style="font-size:78%;"&gt;[&lt;span style="font-weight: bold;"&gt;Este es el comic, muy recomendable&lt;/span&gt;]&lt;/span&gt;&lt;/span&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/6047368587628747637-953820927039579601?l=stressingprogramming.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://stressingprogramming.blogspot.com/feeds/953820927039579601/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6047368587628747637&amp;postID=953820927039579601' title='3 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6047368587628747637/posts/default/953820927039579601'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6047368587628747637/posts/default/953820927039579601'/><link rel='alternate' type='text/html' href='http://stressingprogramming.blogspot.com/2008/09/una-misma-idea-un-diferente-paradigma.html' title='Una misma idea, un diferente paradigma'/><author><name>Rodrigo Liberoff</name><uri>http://www.blogger.com/profile/00091560834297138992</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_oL8QZn341BE/SLz1MyCIvlI/AAAAAAAAAzQ/ersXFR4SUxk/s72-c/Google_Chrome_Logo.png' height='72' width='72'/><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6047368587628747637.post-7950279701058549365</id><published>2008-07-07T03:27:00.000-07:00</published><updated>2008-12-14T14:30:30.539-08:00</updated><title type='text'>Una necesidad muy común</title><content type='html'>&lt;div style="text-align: center;"&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_oL8QZn341BE/SHHylsfMBEI/AAAAAAAAAyw/w4NtKnoAa68/s1600-h/please_stand_by.jpg"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; cursor: pointer; width: 272px; height: 203px;" src="http://2.bp.blogspot.com/_oL8QZn341BE/SHHylsfMBEI/AAAAAAAAAyw/w4NtKnoAa68/s320/please_stand_by.jpg" alt="" id="BLOGGER_PHOTO_ID_5220220172510168130" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;La verdad es que llegar a España me ha dado muy gratas sorpresas, y entre ellas la más especial es que pude conocer y mantener relaciones con un grupo de profesionales con mucha mística y mucha pasión por lo que hacen.&lt;br /&gt;&lt;br /&gt;Entre ellos esta &lt;a href="http://www.seelonce.com/"&gt;David Biencinto&lt;/a&gt; quien usualmente nos envia por mail herramientas y artículos que va encontrando por ahí (como quien dice INTERNET).&lt;br /&gt;&lt;br /&gt;Hoy nos envió una página web que genera archivos de imagenes tipo GIF para transiciones, de esas tan bonitas que nos sacan de quicio cuando pasa más de un minuto y la $#@&amp;amp;% página no carga.&lt;br /&gt;&lt;br /&gt;Idealistamente estas animaciones son para aplicaciones AJAX, pero puesto que son imágenes se pueden usar en cualquier tipo de aplicaciones que necesite decir de de forma bonita al usuario "&lt;span style="font-style: italic;"&gt;Espera y no desesperes...&lt;/span&gt;"&lt;br /&gt;&lt;br /&gt;El URL es  &lt;a href="http://www.ajaxload.info"&gt;www.ajaxload.info&lt;/a&gt; y lo mejor es que es totalmente gratis.&lt;span style="text-decoration: underline;"&gt;&lt;/span&gt;&lt;span style=""&gt;&lt;a href="http://www.ajaxload.info/"&gt;&lt;/a&gt;&lt;/span&gt;  &lt;a href="http://seelonce.com/"&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6047368587628747637-7950279701058549365?l=stressingprogramming.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://stressingprogramming.blogspot.com/feeds/7950279701058549365/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6047368587628747637&amp;postID=7950279701058549365' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6047368587628747637/posts/default/7950279701058549365'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6047368587628747637/posts/default/7950279701058549365'/><link rel='alternate' type='text/html' href='http://stressingprogramming.blogspot.com/2008/07/una-necesidad-muy-comn.html' title='Una necesidad muy común'/><author><name>Rodrigo Liberoff</name><uri>http://www.blogger.com/profile/00091560834297138992</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_oL8QZn341BE/SHHylsfMBEI/AAAAAAAAAyw/w4NtKnoAa68/s72-c/please_stand_by.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6047368587628747637.post-1427216597182573566</id><published>2008-07-04T00:10:00.000-07:00</published><updated>2008-12-14T14:30:30.799-08:00</updated><title type='text'>Una cierta verdad...</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_oL8QZn341BE/SG3OwqrbBXI/AAAAAAAAAyo/czZY1moePBs/s1600-h/Iced+PC.PNG"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;" src="http://1.bp.blogspot.com/_oL8QZn341BE/SG3OwqrbBXI/AAAAAAAAAyo/czZY1moePBs/s320/Iced+PC.PNG" alt="" id="BLOGGER_PHOTO_ID_5219054878677730674" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;span style="font-size:130%;"&gt;Desarrollar aplicaciones y andar por sobre el agua son dos cosas &lt;/span&gt;&lt;span style="font-style: italic;font-size:130%;" &gt;muy sencillas&lt;/span&gt;&lt;span style="font-size:130%;"&gt;; siempre que el agua y los requisitos funcionales esten &lt;/span&gt;&lt;span style="font-weight: bold; color: rgb(51, 204, 255);font-size:130%;" &gt;congelados&lt;/span&gt;&lt;span style="font-size:130%;"&gt;...&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6047368587628747637-1427216597182573566?l=stressingprogramming.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://stressingprogramming.blogspot.com/feeds/1427216597182573566/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6047368587628747637&amp;postID=1427216597182573566' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6047368587628747637/posts/default/1427216597182573566'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6047368587628747637/posts/default/1427216597182573566'/><link rel='alternate' type='text/html' href='http://stressingprogramming.blogspot.com/2008/07/una-cierta-verdad.html' title='Una cierta verdad...'/><author><name>Rodrigo Liberoff</name><uri>http://www.blogger.com/profile/00091560834297138992</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_oL8QZn341BE/SG3OwqrbBXI/AAAAAAAAAyo/czZY1moePBs/s72-c/Iced+PC.PNG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6047368587628747637.post-1402867459596396855</id><published>2008-03-07T12:25:00.001-08:00</published><updated>2008-12-14T14:30:30.958-08:00</updated><title type='text'>Realizaciones</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_oL8QZn341BE/R9GkymoKsGI/AAAAAAAAAw4/xh_G6lpro8U/s1600-h/vacation+Planning.jpg"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 237px; height: 185px;" src="http://4.bp.blogspot.com/_oL8QZn341BE/R9GkymoKsGI/AAAAAAAAAw4/xh_G6lpro8U/s320/vacation+Planning.jpg" alt="" id="BLOGGER_PHOTO_ID_5175098636094845026" border="0" /&gt;&lt;/a&gt;En la ingeniería de software solemos llamar realizaciones a todas aquellas explicaciones que permiten a otros entender lo que hicimos.&lt;br /&gt;&lt;br /&gt;Esta entrada en el blog es una realización, para que ustedes entiendan esta decisión.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Me voy de Venezuela... &lt;/span&gt;una decisión que llevó muchos años en ser analizada, diseñada, concebida y finalmente implementada.&lt;br /&gt;&lt;br /&gt;Lo cierto es que la vida no es una ingeniería de software, ni siquiera es ingeniería por más que me proponga a así tratar de interpretarla y de manejarla. Lamentablemente, siempre hay más que simplemente unos y ceros, blanco y negro, positivo y negativo.&lt;br /&gt;&lt;br /&gt;Esta decisión ha tenido diversos efectos colaterales, entre los cuales destacan mi partida del cual ha sido mi hogar profesional desde hace mucho tiempo, y en el cual me sentí realizado como profesional; y la parte emocional de la cual no voy a hablar.&lt;br /&gt;&lt;br /&gt;En cuanto a lo profesional, pues hablaré de la empresa donde me desempeñé hasta ahora.&lt;br /&gt;&lt;br /&gt;En &lt;a href="http://www.dbaccess.com"&gt;DBAccess&lt;/a&gt; tuve muchísimas oportunidades de crecer, de aprender y de fomentar una cultura corporativa que no se consigue en todos lados. Es un ambiente muy interesante para sembrarse como profesional. Se emplean términos que surgen espontaneamente del intelecto de todos sus líderes y que son compartidos por todos los colaboradores que viven en ella.&lt;br /&gt;&lt;br /&gt;Como todas las empresas tiene sus altos y sus bajos, sus buenos momentos en los cuales estas completamente alineado y comprometido con cada acto y con cada discurso; y por supuesto, están los momentos en los que quisieras prender en fuego la oficina. Pero todo ello es normal. Lo importante es que los momentos buenos sean siempre la mayoría, y ciertamente lo fueron.&lt;br /&gt;&lt;br /&gt;La organización me dio miles de oportunidades, y aspiro a creer que aproveché aquellas que sentí me orientaban hacia la imagen de mi &lt;span style="font-style: italic; font-weight: bold;"&gt;yo &lt;/span&gt;como profesional que tenía en mente.&lt;br /&gt;&lt;br /&gt;De entre todas las cosas, fue en DBAccess donde conocí a la persona más maravillosa del mundo, mi actual novia y la mujer que más admiro, un ser increíble que llena a cualquiera de orgullo y de alegría; un ser por el cual me siento muy honrado y bendecido de poder amarla.&lt;br /&gt;&lt;br /&gt;Así que hoy me voy de allí, sintiendo exactamente el mismo duelo que puede sentir cualquier individuo al dejar la casa de sus padres... pero también con esa cosquilla en el estómago que se sirve como aperitivo a las más grandes aventuras. Mi partida de DBAccess no es algo que encuentre triste, porque las personas que allí dejo, serán siempre según corresponda los mejores compañeros y líderes que todo profesional puede esperar compartir en un lugar de emprendimiento.&lt;br /&gt;&lt;br /&gt;Y hoy por hoy, y más con la profesión de nosotros, es fácil mantener el contacto a través de diversos medios, siempre y cuando así lo queramos.&lt;br /&gt;&lt;br /&gt;Hace cosa de un año y medio atrás tuve la oportunidad de realizar uno de mis sueños más importantes: la peregrinación a Santiago de Compostela. El viaje fue una aventura completa de principio a fin y me permitió tener un esboso de como es la gente en otros países fuera del ámbito profesional, ya que muchas veces he viajado pero más como turista o profesional, escenarios en los cuales no se evidencia de primera mano el día a día de la gente.&lt;br /&gt;&lt;br /&gt;Cuando estuve en la Ciudad de Santiago de Compostela pedí volver a España y tener la oportunidad de vivir y experimentar otra forma de apreciar la vida en otro país. Y esa petición, con trabajo y constancia se ha logrado.&lt;br /&gt;&lt;br /&gt;A todos mis compañeros de trabajo: gracias por compartir conmigo la aventura de estar en DBAccess...&lt;br /&gt;&lt;br /&gt;A mis líderes: gracias por permitirme compartir la aventura de emprender y de vez encuando (por no ser fanfarrón y decir siempre) innovar con calidad...&lt;br /&gt;&lt;br /&gt;A todos.... &lt;span style="font-weight: bold;"&gt;Gracias Totales ;)&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6047368587628747637-1402867459596396855?l=stressingprogramming.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://stressingprogramming.blogspot.com/feeds/1402867459596396855/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6047368587628747637&amp;postID=1402867459596396855' title='5 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6047368587628747637/posts/default/1402867459596396855'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6047368587628747637/posts/default/1402867459596396855'/><link rel='alternate' type='text/html' href='http://stressingprogramming.blogspot.com/2008/03/realizaciones.html' title='Realizaciones'/><author><name>Rodrigo Liberoff</name><uri>http://www.blogger.com/profile/00091560834297138992</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_oL8QZn341BE/R9GkymoKsGI/AAAAAAAAAw4/xh_G6lpro8U/s72-c/vacation+Planning.jpg' height='72' width='72'/><thr:total>5</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6047368587628747637.post-4949168284938004503</id><published>2008-02-18T11:34:00.000-08:00</published><updated>2008-12-14T14:30:31.332-08:00</updated><title type='text'>El destornillador</title><content type='html'>&lt;a href="http://3.bp.blogspot.com/_oL8QZn341BE/R7neIWEyM7I/AAAAAAAAAvk/DRoOingLaVM/s1600-h/7013767-0-large.jpg"&gt;&lt;img id="BLOGGER_PHOTO_ID_5168406282330321842" style="FLOAT: left; MARGIN: 0px 10px 10px 0px; WIDTH: 66px; CURSOR: hand; HEIGHT: 183px" height="228" alt="" src="http://3.bp.blogspot.com/_oL8QZn341BE/R7neIWEyM7I/AAAAAAAAAvk/DRoOingLaVM/s200/7013767-0-large.jpg" width="112" border="0" /&gt;&lt;/a&gt;&lt;span style="font-size:85%;color:#000000;"&gt;El destornillador es para mi la herramienta por antonomacia. Para muchos otros será el martillo, y estoy seguro que más de un sibarita sofisticado y refinado encontrará en la llave inglesa la extensión perfecta en fuerza y versatilidad a su mano.Pero para mi, es el destornillador. &lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:85%;color:#000000;"&gt;¿Por qué? Porque es sádico. Porque es doloroso. Porque no es inmediato y requiere destreza fina más allá de la consecución del hecho de atornillar. &lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:85%;color:#000000;"&gt;Cualquier puede agarrar un martillo y dar golpes a diestra y siniestra encontrando el fin en cada porraso. &lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:85%;color:#000000;"&gt;Con el martillo lo más importante es no clavar de más o de menos... y algunos perfeccionistas encontrarán justificativo en agregar que no se doble el clavo. &lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:85%;color:#000000;"&gt;Pero lo mismo ocurre con el destornillador y sus tornillos, sólo que como herramienta más sofisticada, permite deshacer parte del trabajo sin dañar el material de obra y sin dejar rastro pausible de su incursión.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:85%;color:#000000;"&gt;Pero este post no es sobre el destornillador, el tornillo que es atornillado o mi sadismo; es sobre saber usar la herramienta. La mayoría de las personas realizan trabajos y labores, más sin embargo no siempre en sus actividades emplean apropiadamente las herramientas que tienen. O al menos no las explotan tanto como éstas tienen potencial de ser utilizadas.&lt;/span&gt;&lt;br /&gt;&lt;a href="http://1.bp.blogspot.com/_oL8QZn341BE/R7ngj2EyM8I/AAAAAAAAAvs/bgJ24kXACOQ/s1600-h/BandSawBlowup.jpg"&gt;&lt;span style="font-size:85%;color:#000000;"&gt;&lt;img id="BLOGGER_PHOTO_ID_5168408953799979970" style="FLOAT: right; MARGIN: 0px 0px 10px 10px; WIDTH: 229px; CURSOR: hand; HEIGHT: 181px" height="169" alt="" src="http://1.bp.blogspot.com/_oL8QZn341BE/R7ngj2EyM8I/AAAAAAAAAvs/bgJ24kXACOQ/s320/BandSawBlowup.jpg" width="219" border="0" /&gt;&lt;/span&gt;&lt;/a&gt;&lt;br /&gt;&lt;span style="font-size:85%;color:#000000;"&gt;No tiene sentido pensar que dándosele a un individuo con ciertas capacidades técnicas una mejor herramienta, se podrá obtener induscutiblemente un mejor trabajo, más si se considera primero que lo que se busca que realice lo puede a bien hacer con la herramienta anterior. Lo importante a veces no es la herramienta, sino efectivamente determinar si nuestro individuo sabe hacer lo que se le pide con la calidad que se espera.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:85%;color:#000000;"&gt;Las herramientas son instrumentos místicos, que deben ser empleados por los conocedores en el arte de su uso. Cualquier lego no es más que un inepto caducor de las habilidades de la pieza que prentende usar, y ofende por tanto a su artífice como a su contratador. Debemos usar las herramientas al máximo de sus capacidades, y sólo pedir nuevas herramientas cuando diuchas capacidades sean exididas, no por la herramienta, sino por la mano que la usa.&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6047368587628747637-4949168284938004503?l=stressingprogramming.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://stressingprogramming.blogspot.com/feeds/4949168284938004503/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6047368587628747637&amp;postID=4949168284938004503' title='1 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6047368587628747637/posts/default/4949168284938004503'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6047368587628747637/posts/default/4949168284938004503'/><link rel='alternate' type='text/html' href='http://stressingprogramming.blogspot.com/2008/02/el-destornillador.html' title='El destornillador'/><author><name>Rodrigo Liberoff</name><uri>http://www.blogger.com/profile/00091560834297138992</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_oL8QZn341BE/R7neIWEyM7I/AAAAAAAAAvk/DRoOingLaVM/s72-c/7013767-0-large.jpg' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6047368587628747637.post-4669046379055444333</id><published>2007-09-28T12:03:00.000-07:00</published><updated>2008-12-14T14:30:31.506-08:00</updated><title type='text'>Mis 100 programas</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_oL8QZn341BE/Rv1QYyvn3gI/AAAAAAAAAtw/b5fHgRuVCSk/s1600-h/100things.jpg"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 399px; height: 404px;" src="http://2.bp.blogspot.com/_oL8QZn341BE/Rv1QYyvn3gI/AAAAAAAAAtw/b5fHgRuVCSk/s320/100things.jpg" alt="" id="BLOGGER_PHOTO_ID_5115333138631351810" border="0" /&gt;&lt;/a&gt;Hace un tiempo mi novia me pasó un enlace de blogs en los cuales los autores enumeraban las 100 cosas con las cuales no podrían dejar de vivir plenanmente; aunque el ejercicio busca reducir continuamente la cantidad de objetos, partiendo de 100, siguiendo con 90, 80 y así sucesivamente hasta llegar a un número que representaría la mínima expresión de objetos materiales que necesitaríamos.&lt;br /&gt;&lt;br /&gt;Los autores incluían en esta lista piezas de ropa, cuadernos, libros y hasta iPod's.&lt;br /&gt;&lt;br /&gt;Como me considero un computista acérrimo, casi religioso, decidí hacer la lista de los 100 programas con los cuales no podría hacer y disfrutar una de las cosas que más me gusta: diseñar y programar.&lt;br /&gt;&lt;br /&gt;Para extender un poco las cosas se me ocurrió no sólo agregar programas &lt;span style="font-style: italic;"&gt;stand-alone&lt;/span&gt;, sino también uno que otro sitio web que bien funge de aplicación :P&lt;br /&gt;&lt;br /&gt;1 - Windows XP Professional SP2, aunque espero pronto sea el Windows Vista.&lt;br /&gt;2 - Micorosft Outlook 2007.&lt;br /&gt;3 - &lt;a href="http://get.live.com/messenger/overview"&gt;Windows Live Messenger&lt;/a&gt;.&lt;br /&gt;4 - &lt;a href="http://www.msgpluslive.net/"&gt;Messenger Plus! Live&lt;/a&gt;.&lt;span class="a"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span class="a"&gt;5 - Internet Explorer.&lt;br /&gt;6 - Mozilla FireFox, porque siempre es bueno tener una alternativa.&lt;br /&gt;&lt;/span&gt;&lt;span class="a"&gt;7 - &lt;a href="http://www.google.com/"&gt;Google&lt;/a&gt;.&lt;br /&gt;8 - Microsoft Visual Studio 2005, sin embargo pronto será el 2008 :D&lt;br /&gt;&lt;/span&gt;&lt;span class="a"&gt;9 - Microsoft Visio 2007&lt;br /&gt;10 - &lt;a href="http://www.aisto.com/roeder/dotnet/"&gt;Lutz Roeder's Refector for .NET&lt;/a&gt;, excelente programita.&lt;span style="font-weight: bold;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;b&gt;&lt;/b&gt;&lt;br /&gt;&lt;span class="a"&gt;11 - Microsoft SQL Server Management Studio Express 2005&lt;br /&gt;&lt;/span&gt;&lt;span class="a"&gt;12 - &lt;a href="http://earth.google.com/"&gt;Google Earth.&lt;/a&gt;&lt;br /&gt;13 - &lt;a href="http://www.emule-project.net/"&gt;eMule&lt;/a&gt;.&lt;br /&gt;14 - uTorrent, por aquello de las alternativas.&lt;br /&gt;15 - &lt;a href="http://www.gmail.com/"&gt;GMail.&lt;/a&gt;&lt;br /&gt;16 - &lt;a href="http://www.apple.com/itunes/"&gt;iTunes&lt;/a&gt;, tengo un iPod...&lt;br /&gt;17 - &lt;a href="http://www.wikipedia.org/"&gt;Wikipedia&lt;/a&gt;, soy adicto al conocimiento&lt;br /&gt;&lt;/span&gt;&lt;span class="a"&gt;18 - Microsoft Word&lt;/span&gt;&lt;span class="a"&gt; 2007&lt;/span&gt;&lt;br /&gt;&lt;span class="a"&gt;19 - Microsoft PowerPoint&lt;/span&gt;&lt;span class="a"&gt; 2007&lt;/span&gt;&lt;br /&gt;&lt;span class="a"&gt;20 - Microsoft Excel&lt;/span&gt;&lt;span class="a"&gt; 2007&lt;/span&gt;&lt;br /&gt;&lt;span class="a"&gt;21 - Adobe Acrobat Reader 8.1&lt;br /&gt;22 - MagicISO&lt;br /&gt;23 - Nero Burning Rom 8, más alternativas...&lt;br /&gt;24 - Microsoft Photo Editor, muy viejo, muy simple, demasiado útil.&lt;br /&gt;&lt;br /&gt;Como ven, no necesito 100 programas, en verdad dudo que alguien necesite tantos, y aunque podría reducir la lista colocando Microsoft Office, preferí hacer un micro-ratting de las aplicaciones de esa solución que más empleo.&lt;br /&gt;&lt;br /&gt;Espero que les haya gustado, y que pronto publiquen la suya :)&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6047368587628747637-4669046379055444333?l=stressingprogramming.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://stressingprogramming.blogspot.com/feeds/4669046379055444333/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6047368587628747637&amp;postID=4669046379055444333' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6047368587628747637/posts/default/4669046379055444333'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6047368587628747637/posts/default/4669046379055444333'/><link rel='alternate' type='text/html' href='http://stressingprogramming.blogspot.com/2007/09/mis-100-programas.html' title='Mis 100 programas'/><author><name>Rodrigo Liberoff</name><uri>http://www.blogger.com/profile/00091560834297138992</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_oL8QZn341BE/Rv1QYyvn3gI/AAAAAAAAAtw/b5fHgRuVCSk/s72-c/100things.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6047368587628747637.post-5867051661383992479</id><published>2007-07-17T11:40:00.000-07:00</published><updated>2007-07-17T13:16:29.881-07:00</updated><title type='text'>Decexpcionante uso de excepciones</title><content type='html'>Ah! Las excepciones… ¿a qué persona no le gustan las excepciones? Es más, a casi todos nos gusta ser la excepción de la regla. A todos nos gusta escuchar lo excepcional de nuestro trabajo, o del desempeño de nuestros equipos.&lt;br /&gt;&lt;br /&gt;Como desarrollador y como argentino me encantan las excepciones, es más… soy la excepción de la regla como argentino, ya que debo admitir que soy modesto y humilde. Es más… soy el más modesto y humilde de los argentinos ;)&lt;br /&gt;&lt;br /&gt;Pero no es de mi, ni de ese tipo de excepciones de las que quiero hablar, sino de las excepciones que solemos manejar en los lenguajes de programación tales como Java o C#, quiero hablar de esas clases que se lanzan, generar, y atrapamos en medio de nuestro hermoso código.&lt;br /&gt;&lt;br /&gt;El título (que no es un error ortográfico) de la entrada se lo tengo que agradecer a AA, un compañero del trabajo que recientemente regresó de la India, país que se destaca entre otras muchas cosas por ser el principal y más grande productor de software del mundo… y de mal olor también… y de fiambres flotando en un río… y de curry… y de… y de… pues nada, que el titulo me lo sugiere AA cuando hablábamos de lo terrible que manejan algunos desarrolladores las excepciones.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;em&gt;EL CHISTE&lt;/em&gt;&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;Es típico: llega Josefino (el desarrollador) a echar su código, y como él (Josefino) es la excepción de la regla (claro, con un nombre como ese tiene que serlo), él cree que su código nunca se tirará tres, siempre funcionará no importa el escenario y su perfecto comportamiento no requiere manejo de excepciones. Tal magistral es su código que amerita le coloquen al susodicho desarrollador (Josefino… ¿su mamá lo quería?) una estatua de oro puro en medio de la oficina por su excepcional trabajo.&lt;br /&gt;&lt;br /&gt;Un mes después el cliente te levanta dos-millones-cuatrocientos-demasiados issues de funcionamiento del sistema entregado como la excepción a todos los sistemas, para encontrar que cumple a la perfección la regla de que apesta en desempeño y estabilidad. Entonces empieza el Líder del Proyecto, el Arquitecto, los Desarrolladores, el que hizo la interfaz gráfica, el que levantó los requerimientos, la Secretaria, quien te trae el café y hasta el Vecino y el Lechero a debuggear la aplicación para encontrar donde están los defectos. Y Oh! Magna sorpresa entre las sorpresas… el defecto esta en el excepcional código que cierto genio (Josefino) de cuya madre todos se acuerdan en ese mismo instante, no tiene manejo de excepciones.&lt;br /&gt;&lt;br /&gt;Todos están que agarran la estatua de oro (de Josefino) para estampársela en la cabeza… pero entonces recuerdan que como era tan genial se fue a trabajar a &lt;em&gt;Smart-O-Coders&lt;/em&gt; :S&lt;br /&gt;&lt;br /&gt;Bueno… resulta que este amigo AA me comentaba de un desarrollador que escribió una serie de métodos en una clase que retornaban valores booleanos, es decir &lt;span style="font-family:courier new;"&gt;true&lt;/span&gt; si todo salió bien, y &lt;span style="font-family:courier new;"&gt;false&lt;/span&gt; si algo salió mal. Bueno, hasta ahí no es tan grave, aunque lo más óptimo es que retornaran &lt;span style="font-family:courier new;"&gt;void&lt;/span&gt; y lanzaran una excepción si el método falla. Pero de nuevo, es algo válido. El problema es que quien consume esos métodos nunca valida si se retorna false. Es decir… que el método pudo fallar, retornar &lt;span style="font-family:courier new;"&gt;false&lt;/span&gt; y el cliente nunca se enteró. Imagínense que al método fallar, no almacenó en base de datos unos valores que otras partes de la lógica de negocio de la aplicación consumiría… pero el método falló, así que esa información no se tiene… ¿y luego esperan que la aplicación se comporte adecuadamente? POR DIOS, esterilicen al amigo (Josefino) y prevengan que transmita su genética defectuosa a generaciones posteriores, ayuden a la evolución de la humanidad por lo que más quieran.&lt;br /&gt;&lt;br /&gt;Y como ese caso hay miles. Un día estoy revisando un código en C# y encuentro esta belleza:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;try {…}&lt;br /&gt;catch (Exception e) {&lt;br /&gt;throw e;&lt;br /&gt;}&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;Ya se la excusa… eres de JAVA y estas aprendiendo .NET. Y que tal este:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;try {…} catch () {}&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;Ah! Si… es que se produce una excepción pero quieres que el sistema la ignore… claro…&lt;br /&gt;&lt;br /&gt;Hay maneras CORRECTAS de hacer eso mismo sin cometer estos típicos errores. Para el primer caso sólo escribe throw en vez de throw e, eso mejora el performance de la aplicación. Para el segundo caso, SIEMPRE declara el tipo de excepción que captures, y al menos registra así sea en un archivo de texto que pasó para que puedas determinar la causa de la excepción, así no la propagues a niveles superiores de tu aplicación.&lt;br /&gt;&lt;br /&gt;Y existen otros muchos ejemplos.&lt;br /&gt;&lt;br /&gt;¿Saben qué es lo peor? QUE NO EXISTE NADA MÁS FÁCIL QUE MANEJAR EXCEPCIONES. Es más, lenguajes como Java te hacen la vida fácil, ya que si no declaras explícitamente el manejo de excepciones, el compilador te menta el código. Pero los desarrolladores suelen ser tan flojos que dejan los catch vacios pensando (es que piensan de un bieeeennn…) que luego tendrán tiempo (del cual se quejan nunca tienen suficiente) para agregarlo.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;em&gt;LO SERIO&lt;/em&gt;&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;La idea del blog, como se los comenté no es sólo burlarme del día a día en el mundo del IT, sino ofrecer algunos concejos. Para mis ejemplos emplearé C# pues es el lenguaje que más domino.&lt;br /&gt;&lt;br /&gt;Como decía, manejar excepciones es fácil. La mayoría de las veces tener que decidir entre cuatro alternativas:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Ignorar la excepción (Io cual puede ser implícito o explícito).&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Propagar la excepción.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Encapsular la excepción.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Sustituir la excepción.&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;Ignorar una excepción es simplemente que no queremos manejarla nosotros, sino que delegamos esta responsabilidad al consumidor. Ignorarla implícitamente es no hacer nada en lo absoluto… ni siquiera hay un try…catch:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;…&lt;br /&gt;/// ocurre la excepción&lt;br /&gt;…&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;La cosa cambia cuando se trata de ignorarla explícitamente:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;try {&lt;br /&gt;/// ocurre la excepción&lt;br /&gt;}&lt;br /&gt;catch (Excepction e) {}&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;Propagar una excepción ocurre más o menos como en el caso de ignorarla explícitamente, pero nos da la ventaja de agregar (si requerimos) un manejo previo a enviar la excepción a niveles superiores de la aplicación:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;try {&lt;br /&gt;/// ocurre la excepción&lt;br /&gt;}&lt;br /&gt;catch (Excepction e) {&lt;br /&gt;// manejo precio si es necesario&lt;br /&gt;throw;&lt;br /&gt;}&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Encapsular una excepción es igual de sencillo, sólo metemos la excepción original dentro de otra con más significado para los niveles superiores del sistema:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;try {&lt;br /&gt;/// ocurre la excepción&lt;br /&gt;}&lt;br /&gt;catch (SQLExcepction sqle) {&lt;br /&gt;// manejo precio si es necesario&lt;br /&gt;throw new MiSistemaExcepcion(“Hubo un error en el repositorio de datos.”, sqle);&lt;br /&gt;}&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;El problema de encapsular una excepción dentro de otra es que es una actividad costosa en desempeño, igual que ocurre con la sustitución. Sin embargo, la sustitución es útil para ocultar información relacionada a la implementación inherente de los niveles bajos de un sistema.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;try {&lt;br /&gt;/// ocurre la excepción&lt;br /&gt;}&lt;br /&gt;catch (InvalidArgumentException iae) {&lt;br /&gt;// manejo precio si es necesario&lt;br /&gt;throw new MiSistemaExcepcion(“Hubo un error.”);&lt;br /&gt;}&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Finalmente les dejo par de enlaces:&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://msdn2.microsoft.com/en-us/library/ms954599.aspx#emag__exception_propagation"&gt;http://msdn2.microsoft.com/en-us/library/ms954599.aspx#emag__exception_propagation&lt;/a&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://java.sun.com/docs/books/jls/second_edition/html/exceptions.doc.html"&gt;http://java.sun.com/docs/books/jls/second_edition/html/exceptions.doc.html&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&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/6047368587628747637-5867051661383992479?l=stressingprogramming.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://stressingprogramming.blogspot.com/feeds/5867051661383992479/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6047368587628747637&amp;postID=5867051661383992479' title='3 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6047368587628747637/posts/default/5867051661383992479'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6047368587628747637/posts/default/5867051661383992479'/><link rel='alternate' type='text/html' href='http://stressingprogramming.blogspot.com/2007/07/decepcionantes-uso-de-excepciones.html' title='Decexpcionante uso de excepciones'/><author><name>Rodrigo Liberoff</name><uri>http://www.blogger.com/profile/00091560834297138992</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6047368587628747637.post-1549719310199882220</id><published>2007-07-03T07:24:00.000-07:00</published><updated>2007-07-03T08:13:52.966-07:00</updated><title type='text'>Inicio del stress...</title><content type='html'>&lt;p class="MsoNormal"&gt;&lt;span  lang="ES-VE" style="font-family:Georgia;"&gt;Bienvenidos a este blog.&lt;/span&gt;&lt;span style="" lang="ES-VE"&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span  lang="ES-VE" style="font-family:Georgia;"&gt;No es el primero que escribo, ni espero sea el último. Este blog más que contener elementos de mi vida personal (que dudo le interese a alguno de ustedes estimados lectores) contendrá mucho de mi vida profesional, mis experiencias en todos los ámbitos de esta y el valor de cada aprendizaje.&lt;/span&gt;&lt;span style="" lang="ES-VE"&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span  lang="ES-VE" style="font-family:Georgia;"&gt;Pero dicho valor no significará un demonio sino es compartido con los demás. Ahora claro, juzgar dicho valor queda de parte de ustedes.&lt;/span&gt;&lt;span style="" lang="ES-VE"&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span  lang="ES-VE" style="font-family:Georgia;"&gt;Debo advertirles que soy muy parcial... la mayoría de los artículos serán sobre la tecnología del &lt;/span&gt;&lt;span style="font-family:Georgia;"&gt;&lt;a href="http://www.microsoft.com/net/"&gt;&lt;b&gt;&lt;span style="" lang="ES-VE"&gt;Framework .NET&lt;/span&gt;&lt;/b&gt;&lt;/a&gt;&lt;/span&gt;&lt;span  lang="ES-VE" style="font-family:Georgia;"&gt; de Microsoft, pero no pretendo olvidar otras útiles tecnologías como JAVA o PHP.&lt;br /&gt;&lt;br /&gt;¿Se han preguntado por qué &lt;i&gt;stressing programming&lt;/i&gt;? No existe en el mundo de la computación nirvana más hermoso que programar con la completa libertad de hacerlo, con la tecnología que más te llena de éxtasis, para que venga un grupo selecto de imbéciles que se creen más que tú y te demuestren lo contrario con sus horrores y desasosiegos programáticos, asquerosas muestras de código poco pensado, repetido y mal escrito que convierten cualquier paraíso en un relleno sanitario mal administrado.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;    &lt;p class="MsoNormal"&gt;&lt;span  lang="ES-VE" style="font-family:Georgia;"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;br /&gt;Mi intensión no es liberarlos de dicha experiencia. Vedlo por el lado positivo, son las pruebas necesarias que conforman el camino hacia la iluminación programática. Después de vivir y experimentar el dolor y de pasar por cada forma de stress… eso… sólo queda ser Buda.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;    &lt;p class="MsoNormal"&gt;&lt;span  lang="ES-VE" style="font-family:Georgia;"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;br /&gt;Bienvenidos al &lt;i style=""&gt;stressing programming&lt;/i&gt;… la filosofía que destaca como hacer las cosas difíciles y mal, es más difícil que hacerlas bien… pero que bien le sale hacerlo así a los demás.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span  lang="ES-VE" style="font-family:Georgia;"&gt;&lt;br /&gt;Finalmente deseo agradecer a Verónica Gruber del equipo de mercadeo de &lt;/span&gt;&lt;span style="font-family:Georgia;"&gt;&lt;a href="http://www.dbaccess.com/"&gt;&lt;span style="" lang="ES-VE"&gt;DBAccess&lt;/span&gt;&lt;/a&gt;&lt;/span&gt;&lt;span  lang="ES-VE" style="font-family:Georgia;"&gt; por ayudarme con la imagen del &lt;i&gt;header&lt;/i&gt; de este blog; y los invito a todos a publicar comentarios respecto a los artículos que se publiquen.&lt;/span&gt;&lt;/p&gt;&lt;br /&gt;Dejen de ser vagos, comiencen por algo sencillo como compartir su propia definición de &lt;span style="font-style: italic;"&gt;stressing programming&lt;/span&gt;... ;)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6047368587628747637-1549719310199882220?l=stressingprogramming.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://stressingprogramming.blogspot.com/feeds/1549719310199882220/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6047368587628747637&amp;postID=1549719310199882220' title='4 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6047368587628747637/posts/default/1549719310199882220'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6047368587628747637/posts/default/1549719310199882220'/><link rel='alternate' type='text/html' href='http://stressingprogramming.blogspot.com/2007/07/inicio-del-stress.html' title='Inicio del stress...'/><author><name>Rodrigo Liberoff</name><uri>http://www.blogger.com/profile/00091560834297138992</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>4</thr:total></entry></feed>
