﻿<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0">
  <channel>
    <title>JuanCri.com Blog</title>
    <description>Blog de Juan C. Olivares</description>
    <link>http://www.juancri.com/</link>
    <lastBuildDate>Tue, 02 Dec 2008 03:03:43 GMT</lastBuildDate>
    <docs>http://backend.userland.com/rss</docs>
    <generator>RSS.NET: http://www.rssdotnet.com/</generator>
    <item>
      <title>Web 2.0</title>
      <description>&lt;p&gt;Hoy, Mouse.cl public&amp;oacute; una noticia&lt;/p&gt;
&lt;p&gt;&lt;font color="#ff9933" size="+1" face="Verdana, Arial, Helvetica, sans-serif"&gt;&lt;strong&gt;IBM elije las cinco innovaciones para los pr&amp;oacute;ximos 5 a&amp;ntilde;os&lt;/strong&gt;&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;Dej&amp;eacute; un mensaje &amp;quot;&amp;iquest;elige no es con g?&amp;quot;, as&amp;iacute; es que decidieron cambiarle el t&amp;iacute;tulo:&lt;/p&gt;
&lt;p&gt;&lt;font color="#ff9933" size="+1" face="Verdana, Arial, Helvetica, sans-serif"&gt;&lt;strong&gt;IBM presenta las cinco innovaciones para los pr&amp;oacute;ximos 5 a&amp;ntilde;os&lt;/strong&gt;&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;y, adem&amp;aacute;s, eliminaron mi comentario... &amp;iexcl;bienvenidos a la web 2.0!&lt;/p&gt;
&lt;p&gt;&lt;a href="http://www.mouse.cl/detail.asp?story=2008/12/01/17/23/07"&gt;Noticia en Mouse.cl&lt;/a&gt;&lt;/p&gt;</description>
      <link>http://www.juancri.com/blog/web_2_0</link>
      <guid isPermaLink="True">http://www.juancri.com/blog/web_2_0</guid>
      <pubDate>Tue, 02 Dec 2008 03:03:43 GMT</pubDate>
    </item>
    <item>
      <title>Lambda simplificado 2</title>
      <description>&lt;p&gt;Hace algunos meses &lt;a href="http://www.juancri.com/blog/lambda_simplificado"&gt;escrib&amp;iacute;&lt;/a&gt; sobre la notaci&amp;oacute;n que podr&amp;iacute;a tener c# para tener lambda simplificado. En ese momento todavía desconoc&amp;iacute;a que C# ya tiene soporte para lambda mucho m&amp;aacute;s simple en su versión 3. Entonces, podemos escribri algo como&lt;/p&gt;
&lt;pre class="c-sharp" name="code"&gt;
using System;

delegate string CrearString ();

public class Test
{
	public static void Main ()
	{
		Escribir (() =&gt; DateTime.Now.ToString ());
	}
	
	private static void Escribir (CrearString crear)
	{
		Console.WriteLine (crear ());
	}
}
&lt;/pre&gt;
&lt;p&gt;Esto nos permitiría, en el caso de Log4net, escribir esto:&lt;/p&gt;
&lt;pre class="c-sharp" name="code"&gt;
logger.Debug (() =&gt; "Ejecutando función de " + nombreX + " con parámetro " + z);
&lt;/pre&gt;
&lt;p&gt;Lamentablemente, para que esto fuera posible, ILog tendría que soportar los esta sobrecarga. Pero podemos extender ILog, así:&lt;/p&gt;
&lt;pre class="c-sharp" name="code"&gt;
using System;
using log4net;
using log4net.Config;

public delegate string CrearString ();

public static class ILogExtensions
{
	public static void Debug (this ILog log, CrearString crear)
	{
		if (!log.IsDebugEnabled)
			return;
		
		log.Debug (crear ());
	}
	
	public static void Main ()
	{
		BasicConfigurator.Configure();
		ILog log = LogManager.GetLogger (typeof (ILogExtensions));
		log.Debug (() =&gt; "Prueba a las " + DateTime.Now);
	}
}
&lt;/pre&gt;
&lt;p&gt;:D&lt;/p&gt;</description>
      <link>http://www.juancri.com/blog/lambda_simplificado_2</link>
      <guid isPermaLink="True">http://www.juancri.com/blog/lambda_simplificado_2</guid>
      <pubDate>Tue, 18 Nov 2008 04:34:41 GMT</pubDate>
    </item>
    <item>
      <title>Presentando FacturaSharp</title>
      <description>&lt;p&gt;Hace algunos d&amp;iacute;as, en la &lt;a href="http://www.mono-hispano.org/wiki/Listas_de_correo"&gt;lista de correo&lt;/a&gt; de &lt;a href="http://www.mono-hispano.org/"&gt;Mono Hispano&lt;/a&gt;, comenzamos a &lt;a href="https://listas.hispalinux.es/pipermail/mono-hispano/2008-November/009773.html"&gt;discutir&lt;/a&gt; sobre el desarrollo de una plataforma abierta de &lt;a href="http://es.wikipedia.org/wiki/Factura_electr%C3%B3nica"&gt;facturaci&amp;oacute;n electr&amp;oacute;nica&lt;/a&gt; sobre &lt;a href="http://mono-project.com/"&gt;Mono&lt;/a&gt;. Luego de algunos d&amp;iacute;as, hoy se ha &lt;a href="https://listas.hispalinux.es/pipermail/mono-hispano/2008-November/009795.html"&gt;anunciado oficialmente&lt;/a&gt; FacturaSharp.&lt;/p&gt;
&lt;p&gt;Con este puntapi&amp;eacute;, comenzamos la etapa de discusi&amp;oacute;n de licenciamiento, arquitectura y otros temas de planificaci&amp;oacute;n. Si est&amp;aacute;s interesado, puedes visitar:&lt;/p&gt;
&lt;p&gt;&lt;a href="http://code.google.com/p/factura-sharp/"&gt;Factura Sharp en Google Code&lt;/a&gt;&lt;br /&gt;
&lt;a href="http://groups.google.com/group/factura-sharp-desarrollo"&gt;Grupo de discusi&amp;oacute;n de desarrollo en espa&amp;ntilde;ol&lt;/a&gt;&lt;/p&gt;</description>
      <link>http://www.juancri.com/blog/presentando_facturasharp</link>
      <guid isPermaLink="True">http://www.juancri.com/blog/presentando_facturasharp</guid>
      <pubDate>Fri, 14 Nov 2008 19:44:56 GMT</pubDate>
    </item>
    <item>
      <title>Nombres, datos, metadatos, tags...</title>
      <description>&lt;p&gt;Hay informaci&amp;oacute;n en muchas partes, y no solo informaci&amp;oacute;n diferente; tambi&amp;eacute;n vivimos con informaci&amp;oacute;n replicada en distintos formatos y lugares.&lt;/p&gt;
&lt;p&gt;Un ejemplo claro es el reproductor de M&amp;uacute;sica.&lt;/p&gt;
&lt;p&gt;&lt;img width="150" height="83" src="http://www.juancri.com/imagenes/posts/metadatos1.png" alt="" /&gt;&lt;/p&gt;
&lt;p&gt;Si tenemos archivos en la base de un reproductor como &lt;a href="http://banshee-project.org/"&gt;Banshee&lt;/a&gt;, podemos cambiar la informaci&amp;oacute;n sobre un track (t&amp;iacute;tulo, &amp;aacute;lbum o artista). Esta informaci&amp;oacute;n entonces se actualiza en la base de datos interna. Opcionalmente, los metadatos tambi&amp;eacute;n se escriben de vuelta al archivo (en formatos como el &lt;a href="http://www.id3.org/"&gt;ID3&lt;/a&gt; tag). Aunque as&amp;iacute; fuera, hay otro lugar donde estos datos se almacenan y es el sistema de archivos. Generalmente, tenemos nuestra biblioteca ordenada en la forma artista/&amp;aacute;lbum/canci&amp;oacute;n.extensi&amp;oacute;n (por ejemplo: The Corrs/The Corrs Unplugged/Runaway.mp3), incluso, s&amp;oacute;lo el nombre del archivo podr&amp;iacute;a tener esta informaci&amp;oacute;n (sin contar a los directorio)&lt;/p&gt;
&lt;p&gt;&lt;img width="659" height="83" src="http://www.juancri.com/imagenes/posts/metadatos2.png" alt="" /&gt;&lt;/p&gt;
&lt;p&gt;Todo funciona a la perfecci&amp;oacute;n hasta que una de estas fuentes de datos cambia, sin que el resto se sincronice. Esto no es un problema para un usuario avanzado, pero imaginen a su madre (o abuela) sentada frente a la pantalla &amp;iquest;le interesa saber la diferencia entre los metadatos de un archivo y el nombre del mismo? &amp;iquest;o podr&amp;aacute; darse cuenta de que cuando cambia el nombre del archivo, estos datos no se ven reflejados en el reproductor de audio?. Este es un gran desaf&amp;iacute;o para el ambiente de escritorio. Incluso, si&amp;nbsp; tenemos dos reproductores de audio (Rythmbox y Banshee), sus bases de datos son distintas y, por lo tanto, ya tenemos la informaci&amp;oacute;n en 4 o 5 lugares distintos.&lt;/p&gt;
&lt;p&gt;Los amigos de Microsoft anunciaron con bombos y platillos &lt;a href="http://www.youtube.com/watch?v=HcfLONH_Yrk"&gt;WinFS&lt;/a&gt;, ya hace varios a&amp;ntilde;os. WinFS, junto a Avalon e &amp;Iacute;ndigo eran los pilares de lo que hasta entonces se conoc&amp;iacute;a como Longhorn, hoy Windows Vista (tambi&amp;eacute;n conocido como Windows &lt;a href="http://es.wikipedia.org/wiki/Bosta"&gt;Bosta&lt;/a&gt;). Finalmente, result&amp;oacute; ser un &lt;a href="http://es.wikipedia.org/wiki/Vaporware"&gt;vaporware&lt;/a&gt;, y de los grandes, ya que caus&amp;oacute; mucha expectaci&amp;oacute;n.&lt;/p&gt;
&lt;p&gt;Al otro lado de la calle, imagino a GNOME con su propia base de datos de multimedia (tal vez puede ser una API con distintas implementaciones). Las aplicaciones de audio entonces, utilizan esta base de datos com&amp;uacute;n. As&amp;iacute;, el escritorio adem&amp;aacute;s puede proveer una forma simple de navegar estos archivos, en Nautilus, mostrando los metadatos y no necesariamente los nombres reales. Cuando los archivos son copiados a otras unidades, el entorno puede renombrarlos para reflejar el contenido y guardar en ellos el ID3 para mantener compatibilidad con otros dispositivos y ambientes.&lt;/p&gt;
&lt;p&gt;&lt;img width="223" height="250" src="http://www.juancri.com/imagenes/posts/metadatos3.png" alt="" /&gt;&lt;/p&gt;
&lt;p&gt;Banshee, hasta ahora, permite sincronizar los cambios en metadatos hacia los archivos (ID3) y hacia los nombres (disponible en SVN trunk).&lt;/p&gt;</description>
      <link>http://www.juancri.com/blog/nombres_datos_metadatos_tags</link>
      <guid isPermaLink="True">http://www.juancri.com/blog/nombres_datos_metadatos_tags</guid>
      <pubDate>Fri, 07 Nov 2008 03:42:02 GMT</pubDate>
    </item>
    <item>
      <title>Mono en Encuentro Linux 2008</title>
      <description>&lt;p&gt;Como ya cont&amp;eacute; antes, este a&amp;ntilde;o, Mono estuvo presente por primera vez en el Encuentro Linux a trav&amp;eacute;s de Mono Hispano.&lt;/p&gt;
&lt;p&gt;En la clausura, quisimos hacer algo diferente y regalamos bananas a todos los asistentes.&lt;/p&gt;
&lt;p&gt;&lt;img width="640" height="480" src="http://fotos.juancri.com/d/1438-1/DSC04845.JPG" alt="" /&gt;&lt;/p&gt;
&lt;p&gt;Cada banana iba acompa&amp;ntilde;ada de un peque&amp;ntilde;o logo de Mono y, para los desarrolladores, se entreg&amp;oacute; toda la informaci&amp;oacute;n que nos fue posible. Nuestra principal misi&amp;oacute;n era integrar m&amp;aacute;s desarrolladores a la lista de Mono Hispano. Recuerden que pueden inscribirse y tambi&amp;eacute;n visitarnos en IRC (#mono-hispano en GIMPNet).&lt;/p&gt;
&lt;p&gt;Como una plataforma moderna, ofrecimos nuestro propio garbage collector:&lt;/p&gt;
&lt;p&gt;&lt;img width="640" height="480" src="http://fotos.juancri.com/d/1336-1/DSC04808.JPG" alt="" /&gt;&lt;/p&gt;
&lt;p&gt;M&amp;aacute;s fotos:&lt;/p&gt;
&lt;p&gt;&lt;a href="http://fotos.juancri.com/v/elinux2008/24/DSC04845.JPG.html"&gt;&lt;img width="150" height="113" border="0" src="http://fotos.juancri.com/d/1437-2/DSC04845.JPG" alt="" /&gt;&lt;/a&gt; &lt;a href="http://fotos.juancri.com/d/1449-2/DSC04849.JPG"&gt;&lt;img width="150" height="113" border="0" src="http://fotos.juancri.com/d/1449-2/DSC04849.JPG" alt="" /&gt;&lt;/a&gt; &lt;a href="http://fotos.juancri.com/v/elinux2008/24/DSC04846.JPG.html"&gt;&lt;img width="150" height="113" border="0" src="http://fotos.juancri.com/d/1440-2/DSC04846.JPG" alt="" /&gt;&lt;/a&gt; &lt;a href="http://fotos.juancri.com/v/elinux2008/24/DSC04847.JPG.html"&gt;&lt;img width="150" height="113" border="0" src="http://fotos.juancri.com/d/1443-2/DSC04847.JPG" alt="" /&gt;&lt;/a&gt; &lt;a href="http://fotos.juancri.com/v/elinux2008/24/DSC04810.JPG.html"&gt;&lt;img width="150" height="113" border="0" src="http://fotos.juancri.com/d/1341-2/DSC04810.JPG" alt="" /&gt;&lt;/a&gt; &lt;a href="http://fotos.juancri.com/v/elinux2008/24/DSC04811.JPG.html"&gt;&lt;img width="150" height="113" border="0" src="http://fotos.juancri.com/d/1344-2/DSC04811.JPG" alt="" /&gt;&lt;/a&gt; &lt;a href="http://fotos.juancri.com/v/elinux2008/24/DSC04808.JPG.html"&gt;&lt;img width="150" height="113" border="0" src="http://fotos.juancri.com/d/1335-2/DSC04808.JPG" alt="" /&gt;&lt;/a&gt; &lt;a href="http://fotos.juancri.com/v/elinux2008/24/DSC04798.JPG.html"&gt;&lt;img width="150" height="113" border="0" src="http://fotos.juancri.com/d/1305-2/DSC04798.JPG" alt="" /&gt;&lt;/a&gt; &lt;a href="http://fotos.juancri.com/v/elinux2008/24/DSC04855.JPG.html"&gt;&lt;img width="113" height="150" border="0" src="http://fotos.juancri.com/d/1467-5/DSC04855.JPG" alt="" /&gt;&lt;/a&gt; &lt;a href="http://fotos.juancri.com/v/elinux2008/24/DSC04859.JPG.html"&gt;&lt;img width="150" height="113" border="0" src="http://fotos.juancri.com/d/1479-2/DSC04859.JPG" alt="" /&gt;&lt;/a&gt; &lt;a href="http://fotos.juancri.com/v/elinux2008/24/DSC04857.JPG.html"&gt;&lt;img width="150" height="113" border="0" src="http://fotos.juancri.com/d/1473-2/DSC04857.JPG" alt="" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;El resto en &lt;a href="http://fotos.juancri.com/v/elinux2008/"&gt;http://fotos.juancri.com/v/elinux2008/&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;</description>
      <link>http://www.juancri.com/blog/mono_en_encuentro_linux_2008</link>
      <guid isPermaLink="True">http://www.juancri.com/blog/mono_en_encuentro_linux_2008</guid>
      <pubDate>Sun, 26 Oct 2008 04:35:27 GMT</pubDate>
    </item>
    <item>
      <title>Encuentro Linux 2008</title>
      <description>&lt;p&gt;Desde el mi&amp;eacute;rcoles 22 hasta hoy, viernes 24, hemos estado participando del &lt;a href="http://2008.encuentrolinux.cl/"&gt;Noveno Encuentro Linux&lt;/a&gt;, en la &lt;a href="http://www.udec.cl"&gt;Universidad de Concepci&amp;oacute;n&lt;/a&gt;. Durante este evento, &lt;a href="http://www.mono-hispano.org/"&gt;Mono Hispano&lt;/a&gt; ha estado presente con un peque&amp;ntilde;o stand donde hemos mostrado aplicaciones ya desarrolladas en mono y a la vez invitar a los desarrolladores a unirse a la comunidad, incorpor&amp;aacute;ndose a la lista de correo e IRC. Muchas personas tienen dudas sobre qu&amp;eacute; es mono y cu&amp;aacute;les son sus caracter&amp;iacute;sticas. Invitamos a todos aquellos que necesiten m&amp;aacute;s informaci&amp;oacute;n y ayuda espec&amp;iacute;fica a que nos contacten.&lt;/p&gt;
&lt;p&gt;Como parte de las actividades, ma&amp;ntilde;ana estaremos repartiendo pl&amp;aacute;tanos gratis (free de free banana) a los asistentes.&lt;/p&gt;
&lt;p&gt;&lt;a href="http://fotos.juancri.com/v/elinux2008/mono22/1.jpg.html"&gt;&lt;img width="150" height="113" border="0" src="http://fotos.juancri.com/d/1174-2/1.jpg" alt="" /&gt;&lt;/a&gt;&amp;nbsp;&lt;a href="http://fotos.juancri.com/v/elinux2008/mono22/DSC04751_JPG.jpg.html"&gt;&lt;img width="150" height="113" border="0" src="http://fotos.juancri.com/d/1179-2/DSC04751_JPG.jpg" alt="" /&gt;&lt;/a&gt; &lt;a href="http://fotos.juancri.com/v/elinux2008/mono22/DSC04752_JPG.jpg.html"&gt;&lt;img width="150" height="113" border="0" src="http://fotos.juancri.com/d/1182-2/DSC04752_JPG.jpg" alt="" /&gt;&lt;/a&gt; &lt;a href="http://fotos.juancri.com/v/elinux2008/mono22/DSC04758_JPG.jpg.html"&gt;&lt;img width="150" height="113" border="0" src="http://fotos.juancri.com/d/1185-2/DSC04758_JPG.jpg" alt="" /&gt;&lt;/a&gt; &lt;a href="http://fotos.juancri.com/v/elinux2008/mono22/DSC04759_JPG.jpg.html"&gt;&lt;img width="150" height="113" border="0" src="http://fotos.juancri.com/d/1188-2/DSC04759_JPG.jpg" alt="" /&gt;&lt;/a&gt; &lt;a href="http://fotos.juancri.com/v/elinux2008/mono22/DSC04760_JPG.jpg.html"&gt;&lt;img width="150" height="113" border="0" src="http://fotos.juancri.com/d/1191-2/DSC04760_JPG.jpg" alt="" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Pueden ver m&amp;aacute;s fotos del encuentro en &lt;a href="http://fotos.juancri.com/v/elinux2008"&gt;http://fotos.juancri.com/v/elinux2008&lt;/a&gt;&lt;/p&gt;</description>
      <link>http://www.juancri.com/blog/encuentro_linux_2008</link>
      <guid isPermaLink="True">http://www.juancri.com/blog/encuentro_linux_2008</guid>
      <pubDate>Fri, 24 Oct 2008 04:34:10 GMT</pubDate>
    </item>
    <item>
      <title>Charlas Mono</title>
      <description>&lt;p&gt;La pr&amp;oacute;xima semana, &lt;a href="http://es.wikipedia.org/wiki/Concepci%C3%B3n_(Chile)"&gt;Concepci&amp;oacute;n&lt;/a&gt; se convertir&amp;aacute; en la capital del software libre gracias a la realizaci&amp;oacute;n del &lt;a href="http://2008.encuentrolinux.cl/"&gt;Encuentro Linux&lt;/a&gt;. El mi&amp;eacute;rcoles 22, durante el &lt;a href="http://2008.encuentrolinux.cl/index.php?option=com_content&amp;amp;task=view&amp;amp;id=34"&gt;OpenDay&lt;/a&gt;, &lt;a href="http://www.joil.cl"&gt;Jos&amp;eacute; Pino (aka Joil)&lt;/a&gt; dar&amp;aacute; una charla sobre &lt;a href="http://www.juancri.com/tags/mono"&gt;Mono&lt;/a&gt;. Adem&amp;aacute;s, estaremos presentes durante todo el encuentro como parte de &lt;a href="http://www.mono-hispano.org/"&gt;Mono Hispano&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Un d&amp;iacute;a antes, el martes 21, dar&amp;eacute; una charla titulada &amp;quot;&lt;a href="http://www.facebook.com/event.php?eid=31397777822"&gt;Mono en la jungla del software&lt;/a&gt;&amp;quot;, en la &lt;a href="http://www.ubb.cl"&gt;Universidad del B&amp;iacute;o-B&amp;iacute;o&lt;/a&gt; a las 5pm. Esta actividad es organizada por &lt;a href="http://www.facebook.com/profile.php?id=604174215"&gt;Gabriel (aka DrStein)&lt;/a&gt;, quien prometi&amp;oacute; jugo y galletitas.&lt;/p&gt;</description>
      <link>http://www.juancri.com/blog/charlas_mono</link>
      <guid isPermaLink="True">http://www.juancri.com/blog/charlas_mono</guid>
      <pubDate>Wed, 15 Oct 2008 22:05:45 GMT</pubDate>
    </item>
    <item>
      <title>Mono 2.0!</title>
      <description>&lt;p&gt;Se ha &lt;a href="http://www.mono-project.com/news/archive/2008/Oct-06.html"&gt;lanzado oficialmente&lt;/a&gt; &lt;a href="http://mono-project.com"&gt;Mono&lt;/a&gt; 2.0.&lt;/p&gt;
&lt;p&gt;Las novedades m&amp;aacute;s importantes:&lt;/p&gt;
&lt;p&gt;Incluye APIs de acceso a datos (ADO.NET), Windows Forms, Linq y otras, adem&amp;aacute;s de bibliotecas espec&amp;iacute;ficas de Mono como Cecil y Mono.Posix.&lt;/p&gt;
&lt;p&gt;El compilador de C# incluye soporte para Linq. Adem&amp;aacute;s se incluyen otras utilidades como el esperado debugger, Gendarme, Mono Linker y otros.&lt;/p&gt;
&lt;p&gt;&amp;iexcl;Felicidades a todos quienes colaboraron para sacar adelante este release tan esperado!&lt;/p&gt;</description>
      <link>http://www.juancri.com/blog/mono_2_0</link>
      <guid isPermaLink="True">http://www.juancri.com/blog/mono_2_0</guid>
      <pubDate>Mon, 06 Oct 2008 06:23:57 GMT</pubDate>
    </item>
    <item>
      <title>Lanzado Npgsql2</title>
      <description>&lt;p&gt;Reci&amp;eacute;n ha sido &lt;a href="http://lists.ximian.com/pipermail/mono-list/2008-October/039799.html"&gt;lanzado&lt;/a&gt; &lt;a href="http://npgsql.projects.postgresql.org/"&gt;Npgsql2&lt;/a&gt;. Esta biblioteca escrita totalmente en C# permite conectar a &lt;a href="http://www.postgresql.org"&gt;PostgreSQL&lt;/a&gt; sobre &lt;a href="http://www.mono-project.com"&gt;Mono&lt;/a&gt;/&lt;a href="http://en.wikipedia.org/wiki/Common_Language_Infrastructure"&gt;CLI&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Esta versi&amp;oacute;n es la estable para la versi&amp;oacute;n 2.0 y 3.5 del framework. Entre los logros de Npgsql se encuentra el ser un componente imprescindible de JuanCri.com ;)&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;</description>
      <link>http://www.juancri.com/blog/lanzado_npgsql2</link>
      <guid isPermaLink="True">http://www.juancri.com/blog/lanzado_npgsql2</guid>
      <pubDate>Mon, 06 Oct 2008 05:32:35 GMT</pubDate>
    </item>
    <item>
      <title>El costo del sofware propietario</title>
      <description>&lt;p&gt;En la pel&amp;iacute;cula &lt;a href="http://www.imdb.com/title/tt0182789/"&gt;Bicentennial Man&lt;/a&gt;, basada en un cuento de &lt;a href="http://es.wikipedia.org/wiki/Isaac_Asimov"&gt;Isaac Asimov&lt;/a&gt;, &lt;a href="http://www.imdb.com/name/nm0000245/"&gt;Robin Williams&lt;/a&gt; interpreta a Andrew Martin, un robot que busca su independencia. Al pedir su independencia, argumenta que los hombres han luchado tanto por aquella &amp;quot;libertad&amp;quot;, que &amp;eacute;l quiere tenerla tambi&amp;eacute;n y saber qu&amp;eacute; significa.&lt;/p&gt;
&lt;p&gt;En el &amp;aacute;mbito de los negocios es muy com&amp;uacute;n optar por est&amp;aacute;ndares que permitan la independencia de los proveedores. Sin embargo, esta tendencia no se observa en el software. M&amp;aacute;s y m&amp;aacute;s empresas encadenan todos los d&amp;iacute;as sus datos y sus procesos a software cerrado, permitiendo que su negocio dependa en gran parte de unos cuantos proveedores, y adem&amp;aacute;s pagan para eso.&lt;/p&gt;
&lt;p&gt;Cuando se compra un software cerrado, adem&amp;aacute;s del costo del mismo programa, de la capacitaci&amp;oacute;n y el soporte, se debe hacer la siguiente pregunta: &amp;iquest;qu&amp;eacute; pasa si este producto se deja de producir dentro de un mes? o &amp;iquest;qu&amp;eacute; pasa si esta empresa quiebra en menos de un a&amp;ntilde;o?.&lt;/p&gt;
&lt;p&gt;Algo parecido a lo que pasa con &lt;a href="http://www.juancri.com/blog/no_a_uml"&gt;UML&lt;/a&gt; es lo que sucede con &lt;a href="http://www.googlebattle.com/index.php?domain=oracle+sucks&amp;amp;domain2=postgresql+sucks&amp;amp;submit=Go!"&gt;Oracle&lt;/a&gt;. Adem&amp;aacute;s de ser cerrado, lo cual incluye a su protocolo, su informe de &lt;a href="http://natalian.org/archives/2005/07/01/week-2-at-the-oracle-university/"&gt;errores&lt;/a&gt; es horrible, por lo cual generalmente necesitaremos de un &amp;quot;experto Oracle&amp;quot;, que nos puede decir lo mismo que podr&amp;iacute;amos ver si tuviera un sistema decente de errores. Por supuesto, esos expertos se deben capacitar y certificar en los programas oficiales de Oracle. Pero claro, el respaldo de una empresa es m&amp;aacute;s importante que el respaldo del c&amp;oacute;digo, aunque es esto &amp;uacute;ltimo lo que garantiza la libertad.&lt;/p&gt;
&lt;p&gt;Si usted est&amp;aacute; al frente de una empresa, pi&amp;eacute;nselo dos veces antes de comprar software cerrado. El &lt;a href="http://es.wikipedia.org/wiki/Software_Libre"&gt;software libre&lt;/a&gt; asegura una libertad que es dif&amp;iacute;cil de cuantificar.&lt;/p&gt;</description>
      <link>http://www.juancri.com/blog/el_costo_del_sofware_propietario</link>
      <guid isPermaLink="True">http://www.juancri.com/blog/el_costo_del_sofware_propietario</guid>
      <pubDate>Sun, 28 Sep 2008 23:38:57 GMT</pubDate>
    </item>
    <item>
      <title>URLs</title>
      <description>&lt;p&gt;Hace un tiempo &lt;a href="http://www.juancri.com/blog/tan_simple_como_una_url"&gt;escrib&amp;iacute; sobre URL rewriting&lt;/a&gt;, el cual considero muy &amp;uacute;til e importante. Pero &lt;a href="http://www.google.com"&gt;Google&lt;/a&gt; tiene &lt;a href="http://googlewebmastercentral.blogspot.com/2008/09/dynamic-urls-vs-static-urls.html"&gt;otra opini&amp;oacute;n&lt;/a&gt;. Pens&amp;eacute; que tal vez yo estaba razonando fuera del recipiente, pero hoy leo que &lt;a href="http://blogoscoped.com/"&gt;Google Blogoscoped&lt;/a&gt; &lt;a href="http://blogoscoped.com/archive/2008-09-24-n37.html"&gt;est&amp;aacute; de acuerdo&lt;/a&gt; conmigo.&lt;/p&gt;
&lt;p&gt;La verdad es que no entiendo la postura de Google. &amp;iquest;Qu&amp;eacute; es mejor?. Siguiendo con un ejemplo t&amp;iacute;pico:&lt;/p&gt;
&lt;p class="Code"&gt;Complicado: http://www.falabella.com/webapp/commerce/command/ExecMacro/falabella/macros/SubCat.d2w/report?cgmenbr=1891&amp;amp;nivel=1&amp;amp;cgrfnbr=2458461&amp;amp;cgpadre=2457964&amp;amp;cghijo1=2458461&lt;br /&gt;
Simple: http://www.falabella.com/tienda/audio&lt;/p&gt;
&lt;p&gt;&amp;iquest;No?&lt;/p&gt;</description>
      <link>http://www.juancri.com/blog/urls</link>
      <guid isPermaLink="True">http://www.juancri.com/blog/urls</guid>
      <pubDate>Wed, 24 Sep 2008 23:38:36 GMT</pubDate>
    </item>
    <item>
      <title>Neutralidad ¿No?</title>
      <description>&lt;p&gt;La gente de &lt;a href="http://www.neutralidadsi.org/"&gt;Neutralidad S&amp;iacute;!&lt;/a&gt; est&amp;aacute; todav&amp;iacute;a luchando por impulsar la ley de neutralidad. Ya he hablado varias veces de este tema y creo que no me voy a cansar. El mercado de internet es muy poco regulado; es un mercado donde te pueden ofrecer peras y darte manzanas, aunque la mayor parte de las veces recibes fruta podrida.&lt;/p&gt;
&lt;p&gt;Hoy han publicado &lt;a href="http://www.neutralidadsi.org/2008/09/la-situacion-de-nuestro-proyecto-de-neutralidad/"&gt;una nota&lt;/a&gt; sobre el estado actual del proyecto, entrampado por t&amp;aacute;cticas politiqueras dignas del siglo pasado, donde todo se hac&amp;iacute;a a escondidas. &amp;iquest;Por qu&amp;eacute; la gente est&amp;aacute; en contra de la transparencia si no fuera para seguir siendo corruptos y ladrones?. Cuando Barack Obama &lt;a href="http://www.youtube.com/watch?v=Isi6c2s353c"&gt;habla sobre el lobby&lt;/a&gt; y lo turbio que es, me parece algo tan l&amp;oacute;gico. Sin embargo, en la jungla latinoamericana de pol&amp;iacute;ticos que se &lt;a href="http://www.youtube.com/watch?v=V7V37bci9Xk"&gt;dan vuelta la chaqueta seg&amp;uacute;n la circunstancia&lt;/a&gt;, sigue siendo una pr&amp;aacute;ctica aceptada. Con un voto pr&amp;aacute;cticamente asegurado gracias al &lt;a href="http://www.youtube.com/watch?v=7r5nt0CSvrg"&gt;sistema binominal&lt;/a&gt;, un senador no tiene ninguna presi&amp;oacute;n para hacer lo que los votantes quieren o necesitan.&lt;/p&gt;
&lt;p&gt;A veces es triste ser ut&amp;oacute;pico en materias tan simples y l&amp;oacute;gicas.&lt;/p&gt;</description>
      <link>http://www.juancri.com/blog/neutralidad_no</link>
      <guid isPermaLink="True">http://www.juancri.com/blog/neutralidad_no</guid>
      <pubDate>Mon, 22 Sep 2008 23:45:37 GMT</pubDate>
    </item>
    <item>
      <title>Llave SSH</title>
      <description>&lt;p&gt;Hoy se ha &lt;a href="http://blog.printf.net/articles/2008/09/15/an-ssh-public-keyserver"&gt;publicado&lt;/a&gt; el sitio &lt;a href="http://sshkeys.net"&gt;sshkeys.net&lt;/a&gt; y aprovech&amp;eacute; de subir mi llave, disponible en: &lt;a href="http://sshkeys.net/juancri@juancri.com"&gt;http://sshkeys.net/juancri@juancri.com&lt;/a&gt;&lt;/p&gt;</description>
      <link>http://www.juancri.com/blog/llave_ssh</link>
      <guid isPermaLink="True">http://www.juancri.com/blog/llave_ssh</guid>
      <pubDate>Mon, 15 Sep 2008 09:19:08 GMT</pubDate>
    </item>
    <item>
      <title>Reunión Mono</title>
      <description>&lt;p&gt;Ma&amp;ntilde;ana, martes 9, a las 19:30 Hrs. nos reuniremos los usuarios de &lt;a href="http://www.mono-project.com"&gt;Mono&lt;/a&gt; en Chile. El lugar ser&amp;aacute; el Pizza Hut de Guardia Vieja, en providencia:&lt;/p&gt;
&lt;p&gt;&lt;iframe height="350" frameborder="0" width="425" scrolling="no" src="http://maps.google.com/maps?f=q&amp;amp;hl=es&amp;amp;geocode=&amp;amp;q=guardia+vieja+105,+providencia,+chile&amp;amp;sll=37.0625,-95.677068&amp;amp;sspn=47.301626,79.101563&amp;amp;ie=UTF8&amp;amp;z=14&amp;amp;ll=-33.415037,-70.606127&amp;amp;output=embed&amp;amp;s=AARTsJolZD7Z9wmjgJ8Pr_4BkTuLTF6BMA" marginwidth="0" marginheight="0"&gt;&lt;/iframe&gt;&lt;br /&gt;
&lt;small&gt;&lt;a style="color: rgb(0, 0, 255); text-align: left;" href="http://maps.google.com/maps?f=q&amp;amp;hl=es&amp;amp;geocode=&amp;amp;q=guardia+vieja+105,+providencia,+chile&amp;amp;sll=37.0625,-95.677068&amp;amp;sspn=47.301626,79.101563&amp;amp;ie=UTF8&amp;amp;z=14&amp;amp;ll=-33.415037,-70.606127&amp;amp;source=embed"&gt;Ver mapa m&amp;aacute;s grande&lt;/a&gt;&lt;/small&gt;&lt;/p&gt;
&lt;p&gt;&amp;iexcl;Los esperamos!&lt;/p&gt;</description>
      <link>http://www.juancri.com/blog/reunion_mono</link>
      <guid isPermaLink="True">http://www.juancri.com/blog/reunion_mono</guid>
      <pubDate>Mon, 08 Sep 2008 15:09:19 GMT</pubDate>
    </item>
    <item>
      <title>Oferta LAN</title>
      <description>&lt;p&gt;Estas s&amp;iacute; que son ofertas... &amp;iexcl;Toma DELL!&lt;/p&gt;
&lt;p&gt;&lt;img width="1293" height="144" src="http://www.juancri.com/imagenes/posts/wow-lan.png" alt="Oferta LAN.com" /&gt;&lt;/p&gt;
&lt;p&gt;Todav&amp;iacute;a est&amp;aacute; publicado en su RSS &lt;a href="http://plane.lan.com/cgi-bin/feeds/ofertas.cgi?i=ES&amp;amp;p=CL"&gt;aqu&amp;iacute;&lt;/a&gt; y una copia &lt;a href="http://www.juancri.com/imagenes/posts/ofertas.rss"&gt;ac&amp;aacute;&lt;/a&gt;.&lt;/p&gt;</description>
      <link>http://www.juancri.com/blog/oferta_lan</link>
      <guid isPermaLink="True">http://www.juancri.com/blog/oferta_lan</guid>
      <pubDate>Thu, 04 Sep 2008 23:26:44 GMT</pubDate>
    </item>
    <item>
      <title>Google Chrome</title>
      <description>&lt;p&gt;Con tanto el boom de &lt;a href="http://www.google.com/chrome"&gt;Google Chrome&lt;/a&gt;, lo prob&amp;eacute;, pero sorpresa: no soporta Google Toolbar:&lt;/p&gt;
&lt;p&gt;&lt;img height="793" width="808" src="http://www.juancri.com/temp/chrome.png" alt="Google Chrome" /&gt;&lt;/p&gt;</description>
      <link>http://www.juancri.com/blog/google_chrome</link>
      <guid isPermaLink="True">http://www.juancri.com/blog/google_chrome</guid>
      <pubDate>Wed, 03 Sep 2008 14:09:22 GMT</pubDate>
    </item>
    <item>
      <title>Telefónica y su servicio</title>
      <description>&lt;p&gt;Nunca he sido admirador de los servicios de Telef&amp;oacute;nica Chile (ex CTC). Estoy intentando contratar un plan de internet (el tel&amp;eacute;fono no me interesa). Despu&amp;eacute;s de cotizar con las compa&amp;ntilde;&amp;iacute;as m&amp;aacute;s importantes, decid&amp;iacute; pedir la instalaci&amp;oacute;n de tel&amp;eacute;fono + ADSL de Telef&amp;oacute;nica Chile, ya que ofrec&amp;iacute;a un descuento de 50% durante los primeros seis meses.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Lunes 7 de julio:&lt;/strong&gt; Cotizo y el vendedor me indica que hay que hacer un cambio en el tipo de cliente, as&amp;iacute; es que lo cursar&amp;aacute; el mismo d&amp;iacute;a para que estest listo al d&amp;iacute;a siguiente. Me ofrecen un descuento de 50% por 6 meses.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Martes 8 de julio:&lt;/strong&gt; Pido la instalaci&amp;oacute;n a Telef&amp;oacute;nica Chile (&amp;aacute;rea de negocios). El vendedor&amp;nbsp; me indica que el cambio de tipo de cliente deber&amp;iacute;a estar listo en unas horas y que en 5 d&amp;iacute;as tendr&amp;iacute;a todo instalado&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Martes 15 de julio:&lt;/strong&gt; Nadie me ha llamado y asumo que instalar&amp;aacute;n hoy, as&amp;iacute; es que llamo para saber a qu&amp;eacute; hora estar&amp;aacute; listo. La vendedora me dice que no hay ninguna orden y pido hablar con el vendedor original, Julio Vald&amp;eacute;s. &amp;Eacute;l me indica que reci&amp;eacute;n est&amp;aacute; listo el cambio de cliente (que debi&amp;oacute; demorar un d&amp;iacute;a solamente)&amp;nbsp; y que cursar&amp;aacute; todo lo antes posible.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Lunes 21 de julio: &lt;/strong&gt;Llamo nuevamente y me informan que reci&amp;eacute;n se emiti&amp;oacute; la orden y deb&amp;iacute;a esperar un par de d&amp;iacute;as para que me llamaran los t&amp;eacute;cnicos.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Martes 22 de julio 16:00: &lt;/strong&gt;Me llama Jorge Maxi de la agencia de Apoquindo, indicando que aparece una orden anulada. Le digo que hay una en curso y me dice que &amp;eacute;l piensa que el t&amp;eacute;cnico debe tener la orden en la mano y por eso no figura. Esperaremos hasta el d&amp;iacute;a siguiente para que se instale.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Martes 22 de julio 16:05:&lt;/strong&gt; Me llama Luis Saez de la misma agencia. Le digo que habl&amp;eacute; con Jorge Maxi hace cinco minutos. Queda de averiguar y me dice que la orden est&amp;aacute; anulada porque hubo un error al seleccionar la central. Me ofrece cursarla de nuevo y le pido que lo haga y que me instalen lo antes posible, as&amp;iacute; es que viene a mi casa y firmo una orden.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Martes 22 de julio 17:00: &lt;/strong&gt;Llamo a Julio Vald&amp;eacute;s, el vendedor original y le pregunto qu&amp;eacute; pas&amp;oacute;. Me dice que s&amp;oacute;lo quieren robarle la venta y &amp;eacute;l se encargar&amp;aacute; de ver las &amp;oacute;rdenes.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mi&amp;eacute;rcoles 23 de julio 10:00:&lt;/strong&gt; Llamo a Julio Vald&amp;eacute;s y me dice que efectivamente hubo un error t&amp;eacute;cnico y se anul&amp;oacute; la orden. Le pregunto si puede cursar una nueva, ya que Saez me ofrece un descuento menor y me dice que ok, que en un d&amp;iacute;a estar&amp;aacute; todo instalado.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Viernes 25 de julio 15:30:&lt;/strong&gt; Por fin me visitan t&amp;eacute;cnicos de telef&amp;oacute;nica, pero traen la orden antigua. Me piden aplazar esta orden as&amp;iacute; el lunes 28 pueden instalar sin problemas la siguiente que, suponen, debe estar en proceso.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Lunes 28 de julio 9:30: &lt;/strong&gt;Me llama un t&amp;eacute;cnico para instalar y a&amp;uacute;n tiene la orden antigua. Le pido que me deje conversar con el vendedor antes para saber qu&amp;eacute; hacer.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Lunes 28 de julio 10:00:&lt;/strong&gt; Por fin me puedo comunicar con Julio Vald&amp;eacute;s y me dice que efectivamente la orden antigua est&amp;aacute; pendiente y debo hablar con alguien de &amp;aacute;rea comercial para anular la orden y as&amp;iacute; procesar la nueva. Me transfiere con un ejecutivo comercial y &amp;eacute;ste me dice que no se puede anular por tel&amp;eacute;fono con ellos, porque ya est&amp;aacute; en el &amp;aacute;rea t&amp;eacute;cnica. Llamo al t&amp;eacute;cnico y le digo que la anule.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Luens 28 de julio 15:00:&lt;/strong&gt; Llamo a Julio Vald&amp;eacute;s para saber si finalmente pueden instalar. La ejecutiva que me contesta me dice que no trabajan con anexos y es imposible que transfiera la llamada (aunque ya he hecho esto unas 10 veces). Me dice que ella puede cancelar la orden y cursar una nueva. Finalmente, le pido que anule todo, &lt;strong&gt;NO QUIERO INTERNET DE TELEF&amp;Oacute;NICA NI NING&amp;Uacute;N PRODUCTO QUE ME PUEDAN OFRECER&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;&amp;iquest;Fin?&lt;/p&gt;</description>
      <link>http://www.juancri.com/blog/telefonica_y_su_servicio</link>
      <guid isPermaLink="True">http://www.juancri.com/blog/telefonica_y_su_servicio</guid>
      <pubDate>Mon, 28 Jul 2008 21:18:19 GMT</pubDate>
    </item>
    <item>
      <title>English Workshop</title>
      <description>&lt;p&gt;The &lt;a href="http://www.facebook.com/group.php?gid=52083640226&amp;amp;ref=ts"&gt;Adventist Youth of Las Condes&lt;/a&gt; invite you to practice and improve your English. We're hosting a Free English Workshop every Saturday at 5:30pm in the Adventist School of Las Condes. Food and juice is provided as well.&lt;/p&gt;
&lt;p&gt;Si no entendiste, tambi&amp;eacute;n est&amp;aacute;s invitado a este Taller Gratuito de Ingl&amp;eacute;s, cada S&amp;aacute;bado a las 5:30pm en el Colegio Adventista de Las Condes. No importa tu nivel de ingles.&lt;/p&gt;
&lt;p&gt;La direcci&amp;oacute;n es &lt;a href="http://maps.google.com/maps?f=q&amp;amp;hl=es&amp;amp;geocode=&amp;amp;q=Apoquindo+5415,+Las+Condes,+Santiago,+Chile&amp;amp;sll=-33.404433,-70.536432&amp;amp;sspn=0.017053,0.023861&amp;amp;ie=UTF8&amp;amp;ll=-33.410021,-70.572567&amp;amp;spn=0.008526,0.01193&amp;amp;z=16"&gt;Apoquindo 5415, Las Condes, Santiago&lt;/a&gt; (entrada por Luis Zegers). M&amp;aacute;s informaci&amp;oacute;n en este &lt;a href="mailto:pabloquinterosm@yahoo.com"&gt;email&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;iframe height="350" frameborder="0" width="425" scrolling="no" src="http://maps.google.com/maps?f=q&amp;amp;hl=es&amp;amp;geocode=&amp;amp;q=Apoquindo+5415,+Las+Condes,+Santiago,+Chile&amp;amp;sll=-33.404433,-70.536432&amp;amp;sspn=0.017053,0.023861&amp;amp;ie=UTF8&amp;amp;ll=-33.40128,-70.56879&amp;amp;spn=0.012072,0.018797&amp;amp;z=14&amp;amp;output=embed&amp;amp;s=AARTsJq0ndBlEFIK3pTsYkn4qffbpX6yqw" marginwidth="0" marginheight="0"&gt;&lt;/iframe&gt;&lt;br /&gt;
&lt;small&gt;&lt;a style="color: rgb(0, 0, 255); text-align: left;" href="http://maps.google.com/maps?f=q&amp;amp;hl=es&amp;amp;geocode=&amp;amp;q=Apoquindo+5415,+Las+Condes,+Santiago,+Chile&amp;amp;sll=-33.404433,-70.536432&amp;amp;sspn=0.017053,0.023861&amp;amp;ie=UTF8&amp;amp;ll=-33.40128,-70.56879&amp;amp;spn=0.012072,0.018797&amp;amp;z=14&amp;amp;source=embed"&gt;Ver mapa m&amp;aacute;s grande&lt;/a&gt;&lt;br /&gt;
&lt;/small&gt;&lt;/p&gt;</description>
      <link>http://www.juancri.com/blog/english_workshop</link>
      <guid isPermaLink="True">http://www.juancri.com/blog/english_workshop</guid>
      <pubDate>Thu, 03 Jul 2008 21:51:04 GMT</pubDate>
    </item>
    <item>
      <title>Cambio de API en Service Pack</title>
      <description>&lt;p&gt;El problema es el siguiente: Instalamos una aplicaci&amp;oacute;n ASP.NET 2.0 y todo funciona de maravillas. Movemos la aplicaci&amp;oacute;n a otro PC y &amp;iexcl;bang!, ya no corre. La raz&amp;oacute;n es que no encuentra una propiedad de &lt;a href="http://msdn.microsoft.com/en-us/library/system.data.sqlclient.sqlparameter.typename.aspx"&gt;SqlParameter&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Al ver la &lt;a href="http://msdn.microsoft.com/en-us/library/system.data.sqlclient.sqlparameter.typename.aspx"&gt;documentaci&amp;oacute;n&lt;/a&gt;, descubro que una propiedad est&amp;aacute; disponible desde .NET 2.0 SP1 en adelante... es decir, &amp;iexcl;se agregan elementos a la API en un service pack!&lt;/p&gt;
&lt;p&gt;Tenemos dos soluciones: No utilizamos la propiedad o subimos los requerimientos m&amp;iacute;nimos a .NET 2.0 SP1... &amp;iexcl;plop! (voto por la primera)&lt;/p&gt;</description>
      <link>http://www.juancri.com/blog/cambio_de_api_en_service_pack</link>
      <guid isPermaLink="True">http://www.juancri.com/blog/cambio_de_api_en_service_pack</guid>
      <pubDate>Tue, 27 May 2008 13:44:06 GMT</pubDate>
    </item>
    <item>
      <title>Lambda simplificado</title>
      <description>&lt;p&gt;Hoy estaba agregando &lt;a href="http://logging.apache.org/log4net/"&gt;Log4net&lt;/a&gt; a un proyecto y, por primera vez, decid&amp;iacute; comprobar cada llamada al logger con IsDebugEnabled, IsInfoEnabled, etc. Esto es muy &amp;uacute;til para optimizar el c&amp;oacute;digo y no construir strings innecesarios. Por ejemplo, esta expresi&amp;oacute;n:&lt;/p&gt;
&lt;pre name="code" class="c-sharp"&gt;logger.Debug (&amp;quot;Ejecutando funci&amp;oacute;n de &amp;quot; + nombreX + &amp;quot; con par&amp;aacute;metro &amp;quot; + z);&lt;/pre&gt;
&lt;p&gt;En este caso, la concatenaci&amp;oacute;n de strings se realizar&amp;aacute; antes de llamar al m&amp;eacute;todo. Si el debug est&amp;aacute; desactivado, estaremos concatenando strings por las puras. Para corregir esto, podemos comprobar antes que el debug est&amp;eacute; activado, as&amp;iacute;:&lt;/p&gt;
&lt;pre name="code" class="c-sharp"&gt;if (logger.IsDebugEnabled) logger.Debug (&amp;quot;Ejecutando funci&amp;oacute;n de &amp;quot; + nombreX + &amp;quot; con par&amp;aacute;metro &amp;quot; + z);&lt;/pre&gt;
&lt;p&gt;Pero es bastante tedioso y repetitivo. Una soluci&amp;oacute;n ser&amp;iacute;a que en vez de enviar strings concatenados, envi&amp;aacute;ramos la expresi&amp;oacute;n. Esto se puede hacer con expresiones &lt;a href="http://en.wikipedia.org/wiki/Closure_(computer_science)"&gt;lambda (closures o m&amp;eacute;todos an&amp;oacute;nimos)&lt;/a&gt;. Podr&amp;iacute;amos definir ILog.Debug as&amp;iacute;:&lt;/p&gt;
&lt;pre name="code" class="c-sharp"&gt;
public delegate string CreateString ();
void Debug (CreateString create);
&lt;/pre&gt;
&lt;p&gt;De este modo, el m&amp;eacute;todo Debug ser&amp;iacute;a el encargado de verificar si el debug est&amp;aacute; habilitado y, s&amp;oacute;lo en ese caso, llamar&amp;iacute;a a la expresi&amp;oacute;n para concatenar el texto. Podr&amp;iacute;amos llamar a este m&amp;eacute;todo de esta forma:&lt;/p&gt;
&lt;pre name="code" class="c-sharp"&gt;logger.Debug (delegate { return &amp;quot;Ejecutando funci&amp;oacute;n de &amp;quot; + nombreX + &amp;quot; con par&amp;aacute;metro &amp;quot; + z; });&lt;/pre&gt;
&lt;p&gt;El problema es que aqu&amp;iacute; tambi&amp;eacute;n agregamos demasiado c&amp;oacute;digo para ser una expresi&amp;oacute;n simple. Lo ideal, para m&amp;iacute;, ser&amp;iacute;a hacer una llamada como esta:&lt;/p&gt;
&lt;pre name="code" class="c-sharp"&gt;logger.Debug ( { &amp;quot;Ejecutando funci&amp;oacute;n de &amp;quot; + nombreX + &amp;quot; con par&amp;aacute;metro &amp;quot; + z); } );&lt;/pre&gt;
&lt;p&gt;Ser&amp;iacute;a lo m&amp;aacute;s simple. Al agregar las llaves &amp;quot;{ }&amp;quot;, estar&amp;iacute;amos dici&amp;eacute;ndole al compilador que queremos usar un m&amp;eacute;todo an&amp;oacute;nimo. Aqu&amp;iacute; nos evitar&amp;iacute;amos usar tanto &amp;quot;delegate&amp;quot; como &amp;quot;return&amp;quot;, que son palabras clave obvias en este caso.&lt;/p&gt;</description>
      <link>http://www.juancri.com/blog/lambda_simplificado</link>
      <guid isPermaLink="True">http://www.juancri.com/blog/lambda_simplificado</guid>
      <pubDate>Tue, 06 May 2008 21:10:59 GMT</pubDate>
    </item>
  </channel>
</rss>