<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:dc="http://www.fusionmxsoftware.com/validate/">
  <channel>
    <title>eduardofv blog posts</title>
    <link>http://www.eduardofv.com/</link>
    <description>eduardofv Blog Posts</description>
    <item>
      <title>Ley de Benford para Municipios de M&amp;eacute;xico</title>
      <link>http://www.eduardofv.com/read_post/183</link>
      <description>&lt;p&gt;Contribu&amp;iacute; un dataset al proyecto de &lt;a href="http://testingbenfordslaw.com/mexico-population-by-county"&gt;Testing Benford's Law&lt;/a&gt; con los datos de la poblaci&amp;oacute;n de los municipios de M&amp;eacute;xico seg&amp;uacute;n el &lt;a href="http://www.inegi.org.mx/sistemas/consulta_resultados/iter2010.aspx"&gt;Censo 2010 de INEGI&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src="https://github.com/eduardofv/img/raw/master/Benford.png" alt="" /&gt;&lt;/p&gt;</description>
      <guid>http://www.eduardofv.com/read_post/183</guid>
    </item>
    <item>
      <title>Visualizaci&#195;&#402;&#194;&#179;n de Densidad Poblacional de M&#195;&#402;&#194;&#169;xico</title>
      <link>http://www.eduardofv.com/read_post/182</link>
      <description>&lt;p&gt;Gracias a los datos reci&amp;eacute;n publicados por &lt;a href="http://www.inegi.org.mx"&gt;INEGI&lt;/a&gt; del &lt;a href="http://www.inegi.org.mx/sistemas/consulta_resultados/iter2010.aspx?c=27329&amp;amp;s=est"&gt;Censo 2010 de Poblaci&amp;oacute;n y Vivienda&lt;/a&gt; estoy haciendo algunas visualizaciones en &lt;a href="http://processing.org"&gt;Processing&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Usando el m&amp;eacute;todo descrito en dos &lt;a href="../../read_post/180-C-mo-Hacer-Mapas-Georeferenciados-de-M-xico-para-Visualizaci-n"&gt;posts&lt;/a&gt; &lt;a href="../../read_post/181-Otros-Mapas-Georeferenciados-de-M-xico-para-Visualizaci-n"&gt;anteriores&lt;/a&gt; gener&amp;eacute; la siguiente imagen tipo &lt;strong&gt;heatmap&lt;/strong&gt; o mapa de calor para la densidad poblacional de todo M&amp;eacute;xico. B&amp;aacute;sicamente lo que hice fue:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Tomar de &lt;a href="http://www.inegi.org.mx/sistemas/consulta_resultados/zip/iter2010/iter_naltxt10.zip"&gt;aqu&amp;iacute;&lt;/a&gt; los datos de todas las poblaciones en formato de texto tal como los provee INEGI.&lt;/li&gt;
&lt;li&gt;Generar un archivo tipo CSV con las coordenadas geogr&amp;aacute;ficas de las pobaciones con al menos 100 habitantes y el logaritmo base 10 de esa cantidad para facililitar el manejo. Son 52,856 ubicaciones. El archivo est&amp;aacute; disponible &lt;a href="https://github.com/eduardofv/poblacion/raw/master/data/localidades.csv"&gt;aqu&amp;iacute;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;En Processing se grafica cada ubicaci&amp;oacute;n con un c&amp;iacute;rculo cuyo color, radio y transparencia es proporcional al tama&amp;ntilde;o de la poblaci&amp;oacute;n del lugar. Cada c&amp;iacute;rculo tiene un peque&amp;ntilde;o degradado para conseguir un efecto m&amp;aacute;s suave en la imagen.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;El resultado es la siguiente imagen (click para una imagen de &lt;a href="https://github.com/eduardofv/img/raw/master/densidad_3x.png"&gt;mayor resoluci&amp;oacute;n&lt;/a&gt;):&lt;/p&gt;
&lt;p&gt;&lt;a href="https://github.com/eduardofv/img/raw/master/densidad_3x.png"&gt;&lt;img src="https://github.com/eduardofv/img/raw/master/densidad_1x.png" alt="" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;El objetivo de la visualizaci&amp;oacute;n no es la precisi&amp;oacute;n geogr&amp;aacute;fica sino la sensaci&amp;oacute;n de la densidad poblacional. Las ciudades m&amp;aacute;s grandes son f&amp;aacute;cilmente identificables, as&amp;iacute; como las zonas metropolitanas. Hay grandes areas poco habitadas de las que podemos imaginar sus caracter&amp;iacute;sticas geogr&amp;aacute;ficas.&lt;/p&gt;
&lt;p&gt;Links a im&amp;aacute;genes a diferentes resoluciones y al proyecto en Github:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://github.com/eduardofv/img/raw/master/densidad_1x.png"&gt;Densidad 1x&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/eduardofv/img/raw/master/densidad_2x.png"&gt;Densidad 2x&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/eduardofv/img/raw/master/densidad_3x.png"&gt;Densidad 3x&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/eduardofv/img/raw/master/densidad_4x.png"&gt;Densidad 4x&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/eduardofv/poblacion"&gt;Proyecto en Github&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p style="font-size:0.7em"&gt;Los datos son informaci&amp;oacute;n p&amp;uacute;blica de INEGI y no alterados mas que en formato para poder ser procesados. Las im&amp;aacute;genes tienen licencia Creative Commons Attribution 3.0 Unported (These files are licensed under the Creative Commons Attribution 3.0 Unported license.	 You are free: to share &#195;&#175;&#194;&#191;&#194;&#189; to copy, distribute and transmit the work to remix &#195;&#175;&#194;&#191;&#194;&#189; to adapt the work Under the following conditions: attribution &#195;&#175;&#194;&#191;&#194;&#189; You must attribute the work in the manner specified by the author or licensor (but not in any way that suggests that they endorse you or your use of the work). El c&#195;&#175;&#194;&#191;&#194;&#189;digo es OpenSource bajo &lt;a href="http://www.opensource.org/licenses/mit-license.php"&gt;MIT License&lt;/a&gt;&lt;/p&gt;</description>
      <guid>http://www.eduardofv.com/read_post/182</guid>
    </item>
    <item>
      <title>The Freezer</title>
      <link>http://www.eduardofv.com/read_post/118</link>
      <description>&lt;p&gt;&lt;b&gt;Update: Freezer esta descontinuado&lt;/b&gt;&lt;/p&gt;&lt;p&gt;I've added a new function to this blog: &lt;strong&gt;The Freezer&lt;/strong&gt;. It's a &lt;strong&gt;Web Cache&lt;/strong&gt; (or Internet Archive) function that keeps a local copy of some pages that are referenced by the blog posts, so you can always go back to the exact version of the page when it was originally referenced. Web Pages changes or dies continously, and it's annoying when some useful information is lost when you need it. &lt;br /&gt;&lt;strong&gt;&lt;br /&gt;The Freezer&lt;/strong&gt; downloads the desired page, deletes any javascript it founds, tries to download every image and CSS files (and images referenced on the CSS) and modifies the links to point to the local copies. The purpose is to keep a snapshot of the page, obvioulsy not a working copy of it.&lt;br /&gt;&lt;br /&gt;On the Blog Post, the links to freezed pages (&lt;em&gt;icicles&lt;/em&gt;) are modified to point to &lt;strong&gt;The Freezer&lt;/strong&gt;, and a external-link icon is added to reference to the actual page. Also, the content of the freezed pages is indexed so the Search function of the site can find inside it's content or as part of the original post.&lt;/p&gt;
&lt;p&gt;&lt;a&gt;The Freezer can be accesed whenever a frozen content is accesed or using the link on the right bar, which shows a list of the archived content that's available.&lt;br /&gt;&lt;br /&gt;If you think any of the freezed content should not be cached for any reason, drop me a message and I'll remove it as soon as possible.&lt;/a&gt;&lt;/p&gt;</description>
      <guid>http://www.eduardofv.com/read_post/118</guid>
    </item>
    <item>
      <title>Otros Mapas Georeferenciados de M&#195;&#402;&#194;&#169;xico para Visualizaci&#195;&#402;&#194;&#179;n</title>
      <link>http://www.eduardofv.com/read_post/181</link>
      <description>&lt;p&gt;Continuando con el tema del &lt;a href="http://www.eduardofv.com/read_post/180-C-mo-Hacer-Mapas-Georeferenciados-de-M-xico-para-Visualizaci-n"&gt;post anterior&lt;/a&gt; sobre la creaci&amp;oacute;n de visualizaciones de mapas georeferenciados de M&amp;eacute;xico he hecho un par de mapas m&amp;aacute;s que pueden dar buenos resultados.&lt;/p&gt;
&lt;p&gt;Todos est&amp;aacute;n basados en este &lt;a href="http://en.wikipedia.org/wiki/File:Mexico_location_map.svg"&gt;Mapa&lt;/a&gt; que tiene bien marcados los l&amp;iacute;mites visibles en coordenadas geogr&amp;aacute;ficas y que es una proyecci&amp;oacute;n equirectangular. Yo elimin&amp;eacute; la informaci&amp;oacute;n hidrogr&amp;aacute;fica e hice varias versiones incluyendo o no los estados y con diferentes colores. Los l&amp;iacute;mites son los siguientes:&lt;/p&gt;
&lt;pre&gt;float lng_max=-86.3;
float lng_min=-118.5;
float lat_max=33.3;
float lat_min=14.2;
&lt;/pre&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="../../images/Mexico_location_map-estados.svg"&gt;SVG con estados, colores originales&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="../../images/Mexico_location_map-estados-nofill.svg"&gt;SVG con estados, sin colores&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="../../images/Mexico_location_map-blank-vecinos.svg"&gt;SVG sin estados, sin colores&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="../../images/Mexico_location_map-blank-vecinos-azul-bco-ngo.svg"&gt;SVG sin estados, en azul-blanco-negro.&lt;/a&gt; Este me sirvi&amp;oacute; para diferenciar el fondo de l&amp;iacute;neas principales y de detalles que exclu&amp;iacute; de mapas posteriores&lt;/li&gt;
&lt;li&gt;&lt;a href="../../images/Mexico_location_map-blank-vecinos-bco-ngo.svg"&gt;SVG en fondo negro y lineas blancas&lt;/a&gt; para algunas visualizaciones&lt;/li&gt;
&lt;li&gt;&lt;a href="../../images/mex-blank.png"&gt;PNG sin estados, fondo blanco y l&amp;iacute;neas negras&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="../../images/mex-gray.png"&gt;PNG sin estados, fondo negro y l&amp;iacute;neas grises, t&amp;eacute;nues&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="../../images/mex-black.png"&gt;PNG sin estados, fondo negro y l&amp;iacute;neas blancas&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Ejemplo:&lt;br /&gt;&lt;img src="../../images/mex-black.png" alt="" width="450px" /&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="http://creativecommons.org/licenses/by/3.0/deed.en"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h3&gt;&lt;a href="http://creativecommons.org/licenses/by/3.0/deed.en"&gt;Licencia: Creative Commons Attribution 3.0 Unported&lt;/a&gt;&lt;/h3&gt;
&lt;p style="font-size:0.8em"&gt;These files are licensed under the Creative Commons Attribution 3.0 Unported license.	 You are free: to share &amp;ndash; to copy, distribute and transmit the work to remix &amp;ndash; to adapt the work Under the following conditions: attribution &amp;ndash; You must attribute the work in the manner specified by the author or licensor (but not in any way that suggests that they endorse you or your use of the work).&lt;/p&gt;</description>
      <guid>http://www.eduardofv.com/read_post/181</guid>
    </item>
    <item>
      <title>C&#195;&#402;&#194;&#179;mo Hacer Mapas Georeferenciados de M&#195;&#402;&#194;&#169;xico para Visualizaci&#195;&#402;&#194;&#179;n</title>
      <link>http://www.eduardofv.com/read_post/180</link>
      <description>&lt;p&gt;La visualizaci&amp;oacute;n de informaci&amp;oacute;n es uno de los aspectos fundamentales del an&amp;aacute;lisis de datos en la actualidad, como en el caso de la reciente &lt;a href="http://www.facebook.com/notes/facebook-engineering/visualizing-friendships/469716398919"&gt; visualizaci&amp;oacute;n de amistad en Facebook&lt;/a&gt; que tuvo gran &amp;eacute;xito&lt;/p&gt;
&lt;p&gt;&lt;img src="http://a6.sphotos.ak.fbcdn.net/hphotos-ak-snc4/163413_479288597199_9445547199_5658562_8388607_s.jpg" alt="" width="393" height="196" /&gt;&lt;img src="http://external.ak.fbcdn.net/safe_image.php?d=b5b04dd8cda867dfd7f58fa44c339471&amp;amp;url=http%3A%2F%2Fsphotos.ak.fbcdn.net%2Fhphotos-ak-snc4%2Fhs1382.snc4%2F163413_479288597199_9445547199_5658562_14158417_s.jpg" alt="" /&gt;&lt;/p&gt;
&lt;p&gt;En &lt;a href="http://occmundial.com"&gt;OCCMundial&lt;/a&gt; estamos trabajando en geolocalizaci&amp;oacute;n de ofertas de trabajo. Obtuvimos datos muy interesantes pero al tratar de visualizarlos con un mapa de fondo para hacer m&amp;aacute;s interesante la presentaci&amp;oacute;n de los datos me encontr&amp;eacute; con el problema de conseguir un mapa georeferenciado sobre el cual mostrar la informaci&amp;oacute;n. De otras regiones tales como el mundo completo, Estados Unidos o Europa es sencillo conseguirlos pero fue m&amp;aacute;s complicado en el caso de M&amp;eacute;xico. Tampoco encontr&amp;eacute; un procedimiento sencillo para generarlo, por lo que en este post pongo mi experiencia y los resultados esperando que le sirvan a alguien m&amp;aacute;s. La idea vino de &lt;a href="http://www.openprocessing.org/visuals/?visualID=8601"&gt;Minigis&lt;/a&gt; que lo usa en un mapa mundial.&lt;/p&gt;
&lt;p&gt;El problema consiste en conseguir una imagen de un mapa en el cual se tenga una correspondencia entre coordenadas geogr&amp;aacute;ficas y los pixeles. Los buenos mapas que escalan con el nivel de zoom son im&amp;aacute;genes vectoriales.&lt;a href="http://wikimedia.org"&gt;Wikimedia&lt;/a&gt; es un excelente recurso para comenzar. Los mapas estan en formato SVG. Aqu&amp;iacute; se encuentran los &lt;a href="http://commons.wikimedia.org/wiki/Category:SVG_maps_of_Mexico"&gt;mapas de M&amp;eacute;xico.&lt;/a&gt; Es importante fijarse en el &lt;a href="http://en.wikipedia.org/wiki/Map_projection"&gt;tipo de proyecci&amp;oacute;n&lt;/a&gt; ya que afecta el aspecto del mapa. Para este caso necesitamos un mapa &lt;a href="http://en.wikipedia.org/wiki/Equirectangular_projection"&gt;equirectangular&lt;/a&gt; en el cual las coordenadas geogr&amp;aacute;ficas se pueden mapear de forma lineal con los pixeles de la imagen. Aunque el mejor &lt;a href="http://commons.wikimedia.org/wiki/File:Municipalities_of_Mexico_(equirectangular_projection).svg"&gt;mapa de M&amp;eacute;xico&lt;/a&gt; que consegu&amp;iacute; tiene divisi&amp;oacute;n pol&amp;iacute;tica por municipios, lo que lo hace pesado y no muy bonito para algunos casos, pero es suficientemente bueno para nuestro uso.&lt;/p&gt;
&lt;p&gt;Desafortunadamente el mapa no especifica las coordenadas que comprende por lo que es necesario averiguarlas. Usando &lt;a href="http://inkscape.org/"&gt;Inkscape&lt;/a&gt; abr&amp;iacute;  el mapa y encontr&amp;eacute; que tiene marcados paralelos y meridianos cada 5 grados. Dado que el primer meridiano que se muestra es el 15 y est&amp;aacute; en la posici&amp;oacute;n Y=48.4, el siguiente es el 20 y est&amp;aacute; en la posici&amp;oacute;n Y=173.739 podemos comprobar que cada 5 grados corresponden a 125 pixeles, 1 grado a 2.06 pixeles y 0.03999 grados a 1 pixel. De la misma forma podemos comprobar para los paralelos ya que el &amp;uacute;ltimo paralelo mostrado es el 115W (-115.0) en posici&amp;oacute;n X=56.79 y se mantiene la misma proporci&amp;oacute;n de grados a pixeles (lo que es correcto dado que es una proyecci&amp;oacute;n equirectangular). Con esto podemos calcular que el origen de la imagen se encuentra en 13.064&amp;deg; de latitud y -117.271&amp;deg; de longitud (dicho sea de paso, usaremos grados decimales por simplicidad).&lt;/p&gt;
&lt;p&gt;Con esto se puede generar una imagen bitmap para ser usado en alg&amp;uacute;n programa o con lenguaje de programaci&amp;oacute;n. En este caso estoy usando &lt;a href="http://processing.org"&gt;Processing&lt;/a&gt; para generar las visualizaciones. Importante, en general en las im&amp;aacute;genes raster el origen no se encuentra en la esquina inferior izquierda como en el SVG sino en la &lt;strong&gt;superior&lt;/strong&gt; izquierda, por lo que el origen se encuentra en 34.6586&amp;deg; lat y -117.271&amp;deg; long, que son las coordenadas se deben usar para calcular las posiciones de los pixeles. La longitud m&amp;iacute;nima se encuentra en -86.54. Para calcular los pixeles se usan las funciones lineales descritas abajo. La derivaci&amp;oacute;n es sencilla por lo que dejo solo una &lt;a href="../../images/scan_geo.jpg"&gt;imagen&lt;/a&gt; de mis notas por si le sirve a alguien.&lt;/p&gt;
&lt;p&gt;En el sketch de processing se puede ver una prueba con algunos puntos interesantes para comprobar que funciona. IMPORTANTE: los datos son muy aproximados, por lo que no recomendar&amp;iacute;a usar estos m&amp;eacute;todos para algo mas que visualizaciones sencillas, no mediciones o para ubicar exactamente alguna posici&amp;oacute;n.&lt;/p&gt;
&lt;h3&gt;C&amp;oacute;mo usar:&lt;/h3&gt;
&lt;p&gt;Se puede usar esta &lt;a href="../../images/mexico-notest.jpg"&gt;imagen&lt;/a&gt; con las dimensiones descritas arriba y las siguientes funciones para calcular pixeles a partir de coordenadas.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;pre&gt;&amp;nbsp;
&amp;nbsp;&amp;nbsp;&lt;span style="color: #CC6600;"&gt;int&lt;/span&gt; x = &lt;span style="color: #CC6600;"&gt;int&lt;/span&gt;( (117.271-lng)*770/(117.271-86.54) );
&amp;nbsp;&amp;nbsp;&lt;span style="color: #CC6600;"&gt;int&lt;/span&gt; y = &lt;span style="color: #CC6600;"&gt;int&lt;/span&gt;( (34.6586-lat)*540/(34.6586-13.064) );
&amp;nbsp;&amp;nbsp;
&lt;/pre&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Otra &lt;a href="../../images/mex_equirec.png"&gt;imagen&lt;/a&gt;, con fondo negro que suele ser mejor para visualizaciones.&lt;/p&gt;
&lt;p&gt;En caso de requerir una imagen de otro tama&amp;ntilde;o no es dificil escalar estas im&amp;aacute;genes y encontrar las correspondientes funciones.&lt;/p&gt;
&lt;p&gt;Sketch de Processing &lt;a href="../../images/mexico.pde"&gt;bajar&lt;/a&gt;&lt;/p&gt;
&lt;pre&gt;
&lt;span style="color: #7E7E7E;"&gt;//Mantiene&amp;nbsp;las&amp;nbsp;mismas&amp;nbsp;dimensiones&amp;nbsp;del&amp;nbsp;SVG&amp;nbsp;original&lt;/span&gt;
&lt;span style="color: #CC6600;"&gt;int&lt;/span&gt; imgx=770;
&lt;span style="color: #CC6600;"&gt;int&lt;/span&gt; imgy=540;

&lt;span style="color: #CC6600;"&gt;void&lt;/span&gt; &lt;span style="color: #CC6600;"&gt;&lt;strong&gt;setup&lt;/strong&gt;&lt;/span&gt;()
{
&amp;nbsp;&amp;nbsp;&lt;span style="color: #7E7E7E;"&gt;//Tambi&amp;eacute;n se puede bajar con la URL directa a Wikimedia &lt;/span&gt;
&amp;nbsp;&amp;nbsp;&lt;span style="color: #7E7E7E;"&gt;//http://commons.wikimedia.org/wiki/File:Municipalities_of_Mexico_(equirectangular_projection).svg&lt;/span&gt;
&amp;nbsp;&amp;nbsp;&lt;span style="color: #CC6600;"&gt;PShape&lt;/span&gt; mx = &lt;span style="color: #CC6600;"&gt;loadShape&lt;/span&gt;( &lt;span style="color: #006699;"&gt;"Municipalities_of_Mexico_(equirectangular_projection).svg"&lt;/span&gt; );
&amp;nbsp;
&amp;nbsp;&amp;nbsp;&lt;span style="color: #CC6600;"&gt;size&lt;/span&gt;(imgx,imgy);
&amp;nbsp;&amp;nbsp;&lt;span style="color: #CC6600;"&gt;shape&lt;/span&gt;(mx,0,0,imgx,imgy);
&amp;nbsp;&amp;nbsp;&lt;span style="color: #CC6600;"&gt;smooth&lt;/span&gt;();
&amp;nbsp;&amp;nbsp;&lt;span style="color: #CC6600;"&gt;noLoop&lt;/span&gt;();
&amp;nbsp;&amp;nbsp;
&amp;nbsp;&amp;nbsp;&lt;span style="color: #7E7E7E;"&gt;//Puntos de prueba&lt;/span&gt;
&amp;nbsp;&amp;nbsp;plotAt(19.43333,-99.1333333,5);&amp;nbsp;&lt;span style="color: #7E7E7E;"&gt;//DF&lt;/span&gt;
&amp;nbsp;&amp;nbsp;plotAt(25.6666,-100.5,&amp;nbsp;5);&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #7E7E7E;"&gt;//MTY&lt;/span&gt;
&amp;nbsp;&amp;nbsp;plotAt(20.6666,-103.3333,&amp;nbsp;5);&amp;nbsp;&amp;nbsp;&lt;span style="color: #7E7E7E;"&gt;//GDL&lt;/span&gt;
&amp;nbsp;
&amp;nbsp;&amp;nbsp;plotAt(32.534,&amp;nbsp;-117.123,5);&amp;nbsp;&lt;span style="color: #7E7E7E;"&gt;//Tijuana &lt;/span&gt;
&amp;nbsp;&amp;nbsp;plotAt(21.227,&amp;nbsp;-86.7199,5);&amp;nbsp;&lt;span style="color: #7E7E7E;"&gt;//Isla Mujeres&lt;/span&gt;
&amp;nbsp;&amp;nbsp;
&amp;nbsp;&amp;nbsp;plotAt(14.5176,&amp;nbsp;-92.2199,&amp;nbsp;5);&amp;nbsp;&lt;span style="color: #7E7E7E;"&gt;//Sur&lt;/span&gt;
&amp;nbsp;&amp;nbsp;plotAt(17.8212,&amp;nbsp;-89.1551,&amp;nbsp;5);&amp;nbsp;&lt;span style="color: #7E7E7E;"&gt;//Belice&lt;/span&gt;
&amp;nbsp;&amp;nbsp;plotAt(20.7959,&amp;nbsp;-90.4006,&amp;nbsp;5);&amp;nbsp;&lt;span style="color: #7E7E7E;"&gt;//Campeche&lt;/span&gt;
&amp;nbsp;&amp;nbsp;plotAt(25.9393,&amp;nbsp;-97.1231,&amp;nbsp;5);&amp;nbsp;&lt;span style="color: #7E7E7E;"&gt;//Tamps&lt;/span&gt;
&amp;nbsp;&amp;nbsp;plotAt(29.8605,&amp;nbsp;-102.2996,&amp;nbsp;5);&amp;nbsp;&lt;span style="color: #7E7E7E;"&gt;//Coah Nte&lt;/span&gt;
&amp;nbsp;&amp;nbsp;plotAt(31.7820,&amp;nbsp;-106.5058,&amp;nbsp;5);&amp;nbsp;&lt;span style="color: #7E7E7E;"&gt;//Chih&lt;/span&gt;
&amp;nbsp;&amp;nbsp;plotAt(32.7125,&amp;nbsp;-114.7015,&amp;nbsp;5);&amp;nbsp;&lt;span style="color: #7E7E7E;"&gt;//Nte&lt;/span&gt;
&amp;nbsp;&amp;nbsp;plotAt(22.8865,&amp;nbsp;-109.9164,&amp;nbsp;5);&amp;nbsp;&lt;span style="color: #7E7E7E;"&gt;//Cabos&lt;/span&gt;
&amp;nbsp;&amp;nbsp;plotAt(20.6,-100.38333,&amp;nbsp;5);&amp;nbsp;&lt;span style="color: #7E7E7E;"&gt;//Qro&lt;/span&gt;
&amp;nbsp;&amp;nbsp;plotAt(16.85,-99.93333,&amp;nbsp;5);&amp;nbsp;&lt;span style="color: #7E7E7E;"&gt;//Acapulco&lt;/span&gt;
&amp;nbsp;&amp;nbsp;
&amp;nbsp;&amp;nbsp;&lt;span style="color: #CC6600;"&gt;save&lt;/span&gt;(&lt;span style="color: #006699;"&gt;"mexico.jpg"&lt;/span&gt;);
}

&lt;span style="color: #CC6600;"&gt;void&lt;/span&gt; plotAt(&lt;span style="color: #CC6600;"&gt;float&lt;/span&gt; lat, &lt;span style="color: #CC6600;"&gt;float&lt;/span&gt; lng, &lt;span style="color: #CC6600;"&gt;float&lt;/span&gt; rad)
{
&amp;nbsp;&amp;nbsp;lng=-lng;&amp;nbsp;&lt;span style="color: #7E7E7E;"&gt;//Si viene en long oeste&lt;/span&gt;
&amp;nbsp;&amp;nbsp;&lt;span style="color: #CC6600;"&gt;int&lt;/span&gt; x = &lt;span style="color: #CC6600;"&gt;int&lt;/span&gt;( (117.271-lng)*770/(117.271-86.54) );
&amp;nbsp;&amp;nbsp;&lt;span style="color: #CC6600;"&gt;int&lt;/span&gt; y = &lt;span style="color: #CC6600;"&gt;int&lt;/span&gt;( (34.6586-lat)*540/(34.6586-13.064) );
&amp;nbsp;&amp;nbsp;

&amp;nbsp;&amp;nbsp;&lt;span style="color: #CC6600;"&gt;println&lt;/span&gt;(x);
&amp;nbsp;&amp;nbsp;&lt;span style="color: #CC6600;"&gt;println&lt;/span&gt;(y);
&amp;nbsp;&amp;nbsp;
&amp;nbsp;&amp;nbsp;&lt;span style="color: #CC6600;"&gt;fill&lt;/span&gt;(10,10,60,80);
&amp;nbsp;&amp;nbsp;&lt;span style="color: #CC6600;"&gt;ellipse&lt;/span&gt;(x,y,rad,rad);
&amp;nbsp;}
&lt;/pre&gt;
&lt;p&gt;Espejo del &lt;a href="../../images/Municipalities_of_Mexico_(equirectangular_projection).svg"&gt;mapa SVG&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Imagen con los puntos de prueba&lt;/p&gt;
&lt;p&gt;&lt;img src="../../images/mexico.jpg" alt="" /&gt;&lt;/p&gt;
&lt;h3&gt;Visualizaci&amp;oacute;n - Algunas ofertas de empleo actuales (naranja), y principales ciudades (azul)&lt;/h3&gt;
&lt;p&gt;&lt;img src="../../images/geo_jobs.png" alt="" /&gt;&lt;/p&gt;</description>
      <guid>http://www.eduardofv.com/read_post/180</guid>
    </item>
    <item>
      <title>Arduino RGB LED HSV "Color Wheel"</title>
      <link>http://www.eduardofv.com/read_post/179</link>
      <description>&lt;p&gt;Recently I've been playing with &lt;a href="http://arduino.cc"&gt;Arduino&lt;/a&gt;, &lt;a href="http://scratch.mit.edu"&gt;Scratch&lt;/a&gt; and the &lt;a href="http://www.pololu.com/catalog/product/975"&gt;3pi robot&lt;/a&gt; for a personal project that I hope will be interesting enough to show soon. (I've got a lot of motivation from &lt;a href="http://www.vimeo.com/17426529"&gt;these guys&lt;/a&gt; specially the little one with big eyes).&lt;/p&gt;
&lt;p&gt;To start I made this little example of a RGB Led. Usually you begin making a loop through the RGB scale of colors. But it doesn't look very natural since you expect to loop through a color hue. What you need is to convert a HSV (Hue Saturation Value) scale to RGB (Red Green Blue) scale that the LED support, and then loop through the Hue domain mantaining the Saturation and Value constants.&lt;/p&gt;
&lt;p&gt;Circuit is &lt;a href="http://www.sparkfun.com/tutorial/AIK/ARDX-EG-SPAR-WEB.pdf"&gt;here&lt;/a&gt;, look for the RGB LED example&lt;/p&gt;

&lt;p&gt;Video:&lt;br/&gt;&lt;object width="480" height="385"&gt;&lt;param name="movie" value="http://www.youtube.com/v/Q9Wez3asH7g?fs=1&amp;amp;hl=en_US"&gt;&lt;/param&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;/param&gt;&lt;param name="allowscriptaccess" value="always"&gt;&lt;/param&gt;&lt;embed src="http://www.youtube.com/v/Q9Wez3asH7g?fs=1&amp;amp;hl=en_US" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="480" height="385"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;/p&gt;
&lt;p&gt;Code (I've coded it as close as I could to the Arduino sample guidelines):&lt;/p&gt;
&lt;p&gt;
&lt;pre&gt;

&lt;span style="color: #7E7E7E;"&gt;/*&lt;/span&gt;
&lt;span style="color: #7E7E7E;"&gt;&amp;nbsp;*&amp;nbsp;Color&amp;nbsp;Wheel&amp;nbsp;LED&lt;/span&gt;
&lt;span style="color: #7E7E7E;"&gt;&amp;nbsp;*&lt;/span&gt;
&lt;span style="color: #7E7E7E;"&gt;&amp;nbsp;*&amp;nbsp;Loops&amp;nbsp;a&amp;nbsp;RGB&amp;nbsp;LED&amp;nbsp;attached&amp;nbsp;to&amp;nbsp;pins&amp;nbsp;9,10,11&amp;nbsp;through&lt;/span&gt;
&lt;span style="color: #7E7E7E;"&gt;&amp;nbsp;*&amp;nbsp;all&amp;nbsp;the&amp;nbsp;"exterior"&amp;nbsp;colors&amp;nbsp;of&amp;nbsp;a&amp;nbsp;Color&amp;nbsp;Wheel&lt;/span&gt;
&lt;span style="color: #7E7E7E;"&gt;&amp;nbsp;*&amp;nbsp;&lt;/span&gt;
&lt;span style="color: #7E7E7E;"&gt;&amp;nbsp;*&amp;nbsp;The&amp;nbsp;RGB&amp;nbsp;LED&amp;nbsp;uses&amp;nbsp;a&amp;nbsp;3&amp;nbsp;component&amp;nbsp;(red&amp;nbsp;green&amp;nbsp;blue)&amp;nbsp;model&amp;nbsp;which&amp;nbsp;adds&amp;nbsp;light&amp;nbsp;colors&amp;nbsp;to&amp;nbsp;produce&amp;nbsp;&lt;/span&gt;
&lt;span style="color: #7E7E7E;"&gt;&amp;nbsp;*&amp;nbsp;a&amp;nbsp;composite&amp;nbsp;color.&amp;nbsp;But&amp;nbsp;the&amp;nbsp;RGB&amp;nbsp;does&amp;nbsp;not&amp;nbsp;make&amp;nbsp;easy&amp;nbsp;to&amp;nbsp;loop&amp;nbsp;through&amp;nbsp;a&amp;nbsp;more&lt;/span&gt;
&lt;span style="color: #7E7E7E;"&gt;&amp;nbsp;*&amp;nbsp;"natural"&amp;nbsp;sequence&amp;nbsp;of&amp;nbsp;colors.&amp;nbsp;The&amp;nbsp;HSV&amp;nbsp;(hue&amp;nbsp;saturation&amp;nbsp;value)&amp;nbsp;model&amp;nbsp;uses&amp;nbsp;a&amp;nbsp;color&amp;nbsp;cylinder&lt;/span&gt;
&lt;span style="color: #7E7E7E;"&gt;&amp;nbsp;*&amp;nbsp;in&amp;nbsp;which&amp;nbsp;each&amp;nbsp;color&amp;nbsp;is&amp;nbsp;a&amp;nbsp;point&amp;nbsp;inside&amp;nbsp;the&amp;nbsp;cylinder.&amp;nbsp;&lt;/span&gt;
&lt;span style="color: #7E7E7E;"&gt;&amp;nbsp;*&amp;nbsp;The&amp;nbsp;hue&amp;nbsp;is&amp;nbsp;represented&amp;nbsp;by&amp;nbsp;the&amp;nbsp;angle&amp;nbsp;at&amp;nbsp;which&amp;nbsp;the&amp;nbsp;point&amp;nbsp;is,&amp;nbsp;the&amp;nbsp;saturation&amp;nbsp;represents&lt;/span&gt;
&lt;span style="color: #7E7E7E;"&gt;&amp;nbsp;*&amp;nbsp;the&amp;nbsp;length&amp;nbsp;(how&amp;nbsp;close&amp;nbsp;to&amp;nbsp;the&amp;nbsp;center&amp;nbsp;the&amp;nbsp;point&amp;nbsp;is)&amp;nbsp;and&amp;nbsp;the&amp;nbsp;value&amp;nbsp;represent&amp;nbsp;the&amp;nbsp;height&amp;nbsp;at&lt;/span&gt;
&lt;span style="color: #7E7E7E;"&gt;&amp;nbsp;*&amp;nbsp;which&amp;nbsp;the&amp;nbsp;point&amp;nbsp;is.&amp;nbsp;&lt;/span&gt;
&lt;span style="color: #7E7E7E;"&gt;&amp;nbsp;*&lt;/span&gt;
&lt;span style="color: #7E7E7E;"&gt;&amp;nbsp;*&amp;nbsp;By&amp;nbsp;cycling&amp;nbsp;the&amp;nbsp;hue&amp;nbsp;value&amp;nbsp;from&amp;nbsp;0&amp;nbsp;to&amp;nbsp;360&amp;nbsp;degrees,&amp;nbsp;and&amp;nbsp;keeping&amp;nbsp;the&amp;nbsp;saturation&amp;nbsp;and&amp;nbsp;value&amp;nbsp;at&amp;nbsp;1&lt;/span&gt;
&lt;span style="color: #7E7E7E;"&gt;&amp;nbsp;*&amp;nbsp;we&amp;nbsp;can&amp;nbsp;represent&amp;nbsp;all&amp;nbsp;the&amp;nbsp;brightest&amp;nbsp;colors&amp;nbsp;of&amp;nbsp;the&amp;nbsp;wheel,&amp;nbsp;in&amp;nbsp;a&amp;nbsp;nice&amp;nbsp;natural&amp;nbsp;sequence.&lt;/span&gt;
&lt;span style="color: #7E7E7E;"&gt;&amp;nbsp;*&lt;/span&gt;
&lt;span style="color: #7E7E7E;"&gt;&amp;nbsp;*&amp;nbsp;The&amp;nbsp;algorithm&amp;nbsp;to&amp;nbsp;convert&amp;nbsp;a&amp;nbsp;HSV&amp;nbsp;value&amp;nbsp;to&amp;nbsp;a&amp;nbsp;RGB&amp;nbsp;value&amp;nbsp;is&amp;nbsp;taken&amp;nbsp;from&amp;nbsp;Chris&amp;nbsp;Hulbert's&amp;nbsp;blog&amp;nbsp;(splinter)&lt;/span&gt;
&lt;span style="color: #7E7E7E;"&gt;&amp;nbsp;*&lt;/span&gt;
&lt;span style="color: #7E7E7E;"&gt;&amp;nbsp;*&amp;nbsp;Created&amp;nbsp;1&amp;nbsp;January&amp;nbsp;2011&lt;/span&gt;
&lt;span style="color: #7E7E7E;"&gt;&amp;nbsp;*&amp;nbsp;By&amp;nbsp;Eduardo&amp;nbsp;A.&amp;nbsp;Flores&amp;nbsp;Verduzco&lt;/span&gt;
&lt;span style="color: #7E7E7E;"&gt;&amp;nbsp;*&amp;nbsp;http://eduardofv.com&lt;/span&gt;
&lt;span style="color: #7E7E7E;"&gt;&amp;nbsp;*&lt;/span&gt;
&lt;span style="color: #7E7E7E;"&gt;&amp;nbsp;*&amp;nbsp;References:&lt;/span&gt;
&lt;span style="color: #7E7E7E;"&gt;&amp;nbsp;*&amp;nbsp;http://en.wikipedia.org/wiki/HSL_and_HSV&lt;/span&gt;
&lt;span style="color: #7E7E7E;"&gt;&amp;nbsp;*&amp;nbsp;http://en.wikipedia.org/wiki/Color_wheel&lt;/span&gt;
&lt;span style="color: #7E7E7E;"&gt;&amp;nbsp;*&amp;nbsp;http://splinter.com.au/blog/?p=29&lt;/span&gt;
&lt;span style="color: #7E7E7E;"&gt;&amp;nbsp;*&lt;/span&gt;
&lt;span style="color: #7E7E7E;"&gt;&amp;nbsp;*&lt;/span&gt;
&lt;span style="color: #7E7E7E;"&gt;&amp;nbsp;*/&lt;/span&gt;

&lt;span style="color: #CC6600;"&gt;void&lt;/span&gt; &lt;span style="color: #CC6600;"&gt;&lt;b&gt;setup&lt;/b&gt;&lt;/span&gt;() {
&amp;nbsp;&amp;nbsp;&lt;span style="color: #7E7E7E;"&gt;//Set the pins to analog output&lt;/span&gt;
&amp;nbsp;&amp;nbsp;&lt;span style="color: #CC6600;"&gt;pinMode&lt;/span&gt;(9,&lt;span style="color: #006699;"&gt;OUTPUT&lt;/span&gt;);
&amp;nbsp;&amp;nbsp;&lt;span style="color: #CC6600;"&gt;pinMode&lt;/span&gt;(10,&lt;span style="color: #006699;"&gt;OUTPUT&lt;/span&gt;);
&amp;nbsp;&amp;nbsp;&lt;span style="color: #CC6600;"&gt;pinMode&lt;/span&gt;(11,&lt;span style="color: #006699;"&gt;OUTPUT&lt;/span&gt;);
}

&lt;span style="color: #CC6600;"&gt;void&lt;/span&gt; &lt;span style="color: #CC6600;"&gt;&lt;b&gt;loop&lt;/b&gt;&lt;/span&gt;() {
&amp;nbsp;&amp;nbsp;&lt;span style="color: #7E7E7E;"&gt;//The Hue value will vary from 0 to 360, which represents degrees in the color wheel&lt;/span&gt;
&amp;nbsp;&amp;nbsp;&lt;span style="color: #CC6600;"&gt;for&lt;/span&gt;(&lt;span style="color: #CC6600;"&gt;int&lt;/span&gt; hue=0;hue&amp;lt;360;hue++)
&amp;nbsp;&amp;nbsp;{
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;setLedColorHSV(hue,1,1);&amp;nbsp;&lt;span style="color: #7E7E7E;"&gt;//We are using Saturation and Value constant at 1&lt;/span&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #CC6600;"&gt;delay&lt;/span&gt;(10); &lt;span style="color: #7E7E7E;"&gt;//each color will be shown for 10 milliseconds&lt;/span&gt;
&amp;nbsp;&amp;nbsp;}
}

&lt;span style="color: #7E7E7E;"&gt;//Convert&amp;nbsp;a&amp;nbsp;given&amp;nbsp;HSV&amp;nbsp;(Hue&amp;nbsp;Saturation&amp;nbsp;Value)&amp;nbsp;to&amp;nbsp;RGB(Red&amp;nbsp;Green&amp;nbsp;Blue)&amp;nbsp;and&amp;nbsp;set&amp;nbsp;the&amp;nbsp;led&amp;nbsp;to&amp;nbsp;the&amp;nbsp;color&lt;/span&gt;
&lt;span style="color: #7E7E7E;"&gt;//&amp;nbsp;&amp;nbsp;h&amp;nbsp;is&amp;nbsp;hue&amp;nbsp;value,&amp;nbsp;integer&amp;nbsp;between&amp;nbsp;0&amp;nbsp;and&amp;nbsp;360&lt;/span&gt;
&lt;span style="color: #7E7E7E;"&gt;//&amp;nbsp;&amp;nbsp;s&amp;nbsp;is&amp;nbsp;saturation&amp;nbsp;value,&amp;nbsp;double&amp;nbsp;between&amp;nbsp;0&amp;nbsp;and&amp;nbsp;1&lt;/span&gt;
&lt;span style="color: #7E7E7E;"&gt;//&amp;nbsp;&amp;nbsp;v&amp;nbsp;is&amp;nbsp;value,&amp;nbsp;double&amp;nbsp;between&amp;nbsp;0&amp;nbsp;and&amp;nbsp;1&lt;/span&gt;
&lt;span style="color: #7E7E7E;"&gt;//http://splinter.com.au/blog/?p=29&lt;/span&gt;
&lt;span style="color: #CC6600;"&gt;void&lt;/span&gt; setLedColorHSV(&lt;span style="color: #CC6600;"&gt;int&lt;/span&gt; h, &lt;span style="color: #CC6600;"&gt;double&lt;/span&gt; s, &lt;span style="color: #CC6600;"&gt;double&lt;/span&gt; v) {
&amp;nbsp;&amp;nbsp;&lt;span style="color: #7E7E7E;"&gt;//this is the algorithm to convert from RGB to HSV&lt;/span&gt;
&amp;nbsp;&amp;nbsp;&lt;span style="color: #CC6600;"&gt;double&lt;/span&gt; r=0; 
&amp;nbsp;&amp;nbsp;&lt;span style="color: #CC6600;"&gt;double&lt;/span&gt; g=0; 
&amp;nbsp;&amp;nbsp;&lt;span style="color: #CC6600;"&gt;double&lt;/span&gt; b=0;

&amp;nbsp;&amp;nbsp;&lt;span style="color: #CC6600;"&gt;double&lt;/span&gt; hf=h/60.0;

&amp;nbsp;&amp;nbsp;&lt;span style="color: #CC6600;"&gt;int&lt;/span&gt; i=(&lt;span style="color: #CC6600;"&gt;int&lt;/span&gt;)&lt;span style="color: #CC6600;"&gt;floor&lt;/span&gt;(h/60.0);
&amp;nbsp;&amp;nbsp;&lt;span style="color: #CC6600;"&gt;double&lt;/span&gt; f = h/60.0 - i;
&amp;nbsp;&amp;nbsp;&lt;span style="color: #CC6600;"&gt;double&lt;/span&gt; pv = v * (1 - s);
&amp;nbsp;&amp;nbsp;&lt;span style="color: #CC6600;"&gt;double&lt;/span&gt; qv = v * (1 - s*f);
&amp;nbsp;&amp;nbsp;&lt;span style="color: #CC6600;"&gt;double&lt;/span&gt; tv = v * (1 - s * (1 - f));

&amp;nbsp;&amp;nbsp;&lt;span style="color: #CC6600;"&gt;switch&lt;/span&gt; (i)
&amp;nbsp;&amp;nbsp;{
&amp;nbsp;&amp;nbsp;&lt;span style="color: #CC6600;"&gt;case&lt;/span&gt; 0: &lt;span style="color: #7E7E7E;"&gt;//rojo dominante&lt;/span&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;r&amp;nbsp;=&amp;nbsp;v;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;g&amp;nbsp;=&amp;nbsp;tv;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;b&amp;nbsp;=&amp;nbsp;pv;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #CC6600;"&gt;break&lt;/span&gt;;
&amp;nbsp;&amp;nbsp;&lt;span style="color: #CC6600;"&gt;case&lt;/span&gt; 1: &lt;span style="color: #7E7E7E;"&gt;//verde&lt;/span&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;r&amp;nbsp;=&amp;nbsp;qv;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;g&amp;nbsp;=&amp;nbsp;v;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;b&amp;nbsp;=&amp;nbsp;pv;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #CC6600;"&gt;break&lt;/span&gt;;
&amp;nbsp;&amp;nbsp;&lt;span style="color: #CC6600;"&gt;case&lt;/span&gt; 2: 
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;r&amp;nbsp;=&amp;nbsp;pv;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;g&amp;nbsp;=&amp;nbsp;v;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;b&amp;nbsp;=&amp;nbsp;tv;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #CC6600;"&gt;break&lt;/span&gt;;
&amp;nbsp;&amp;nbsp;&lt;span style="color: #CC6600;"&gt;case&lt;/span&gt; 3: &lt;span style="color: #7E7E7E;"&gt;//azul&lt;/span&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;r&amp;nbsp;=&amp;nbsp;pv;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;g&amp;nbsp;=&amp;nbsp;qv;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;b&amp;nbsp;=&amp;nbsp;v;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #CC6600;"&gt;break&lt;/span&gt;;
&amp;nbsp;&amp;nbsp;&lt;span style="color: #CC6600;"&gt;case&lt;/span&gt; 4:
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;r&amp;nbsp;=&amp;nbsp;tv;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;g&amp;nbsp;=&amp;nbsp;pv;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;b&amp;nbsp;=&amp;nbsp;v;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #CC6600;"&gt;break&lt;/span&gt;;
&amp;nbsp;&amp;nbsp;&lt;span style="color: #CC6600;"&gt;case&lt;/span&gt; 5: &lt;span style="color: #7E7E7E;"&gt;//rojo&lt;/span&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;r&amp;nbsp;=&amp;nbsp;v;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;g&amp;nbsp;=&amp;nbsp;pv;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;b&amp;nbsp;=&amp;nbsp;qv;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #CC6600;"&gt;break&lt;/span&gt;;
&amp;nbsp;&amp;nbsp;}

&amp;nbsp;&amp;nbsp;&lt;span style="color: #7E7E7E;"&gt;//set each component to a integer value between 0 and 255&lt;/span&gt;
&amp;nbsp;&amp;nbsp;&lt;span style="color: #CC6600;"&gt;int&lt;/span&gt; &lt;span style="color: #CC6600;"&gt;red&lt;/span&gt;=&lt;span style="color: #CC6600;"&gt;constrain&lt;/span&gt;((&lt;span style="color: #CC6600;"&gt;int&lt;/span&gt;)255*r,0,255);
&amp;nbsp;&amp;nbsp;&lt;span style="color: #CC6600;"&gt;int&lt;/span&gt; &lt;span style="color: #CC6600;"&gt;green&lt;/span&gt;=&lt;span style="color: #CC6600;"&gt;constrain&lt;/span&gt;((&lt;span style="color: #CC6600;"&gt;int&lt;/span&gt;)255*g,0,255);
&amp;nbsp;&amp;nbsp;&lt;span style="color: #CC6600;"&gt;int&lt;/span&gt; blue=&lt;span style="color: #CC6600;"&gt;constrain&lt;/span&gt;((&lt;span style="color: #CC6600;"&gt;int&lt;/span&gt;)255*b,0,255);

&amp;nbsp;&amp;nbsp;setLedColor(&lt;span style="color: #CC6600;"&gt;red&lt;/span&gt;,&lt;span style="color: #CC6600;"&gt;green&lt;/span&gt;,blue);
}

&lt;span style="color: #7E7E7E;"&gt;//Sets&amp;nbsp;the&amp;nbsp;current&amp;nbsp;color&amp;nbsp;for&amp;nbsp;the&amp;nbsp;RGB&amp;nbsp;LED&lt;/span&gt;
&lt;span style="color: #CC6600;"&gt;void&lt;/span&gt; setLedColor(&lt;span style="color: #CC6600;"&gt;int&lt;/span&gt; &lt;span style="color: #CC6600;"&gt;red&lt;/span&gt;, &lt;span style="color: #CC6600;"&gt;int&lt;/span&gt; &lt;span style="color: #CC6600;"&gt;green&lt;/span&gt;, &lt;span style="color: #CC6600;"&gt;int&lt;/span&gt; blue) {
&amp;nbsp;&amp;nbsp;&lt;span style="color: #7E7E7E;"&gt;//Note that we are reducing 1/4 the intensity for the green and blue components because &lt;/span&gt;
&amp;nbsp;&amp;nbsp;&lt;span style="color: #7E7E7E;"&gt;//  the red one is too dim on my LED. You may want to adjust that.&lt;/span&gt;
&amp;nbsp;&amp;nbsp;&lt;span style="color: #CC6600;"&gt;analogWrite&lt;/span&gt;(9,&lt;span style="color: #CC6600;"&gt;red&lt;/span&gt;); &lt;span style="color: #7E7E7E;"&gt;//Red pin attached to 9&lt;/span&gt;
&amp;nbsp;&amp;nbsp;&lt;span style="color: #CC6600;"&gt;analogWrite&lt;/span&gt;(10,&lt;span style="color: #CC6600;"&gt;green&lt;/span&gt;/3); &lt;span style="color: #7E7E7E;"&gt;//Red pin attached to 9&lt;/span&gt;
&amp;nbsp;&amp;nbsp;&lt;span style="color: #CC6600;"&gt;analogWrite&lt;/span&gt;(11,blue/3); &lt;span style="color: #7E7E7E;"&gt;//Red pin attached to 9&lt;/span&gt;
}


&lt;/pre&gt;
&lt;/p&gt;
</description>
      <guid>http://www.eduardofv.com/read_post/179</guid>
    </item>
    <item>
      <title>Presentaci&#195;&#402;&#194;&#179;n en #Demoshow de @Netmedia</title>
      <link>http://www.eduardofv.com/read_post/178</link>
      <description>&lt;p&gt;&lt;a href="../files/demoshow.pptx"&gt;Aqui&lt;/a&gt;&amp;nbsp;les dejo mi presentaci&amp;oacute;n de ayer en el foro Demoshow de Netmedia.&lt;/p&gt;</description>
      <guid>http://www.eduardofv.com/read_post/178</guid>
    </item>
    <item>
      <title>1922 Kodachrome &#195;&#162;&#194;&#8364;&#194;&#8220; Color Moving Pictures</title>
      <link>http://www.eduardofv.com/read_post/177</link>
      <description>&lt;p&gt;El color agrega toda una nueva dimensi&amp;oacute;n&lt;/p&gt;
&lt;p&gt;&lt;a href="http://www.youtube.com/watch?v=J_RTnd3Smy8"&gt;http://www.youtube.com/watch?v=J_RTnd3Smy8&lt;/a&gt;&lt;/p&gt;</description>
      <guid>http://www.eduardofv.com/read_post/177</guid>
    </item>
    <item>
      <title>TSQL Date String from DateTime</title>
      <link>http://www.eduardofv.com/read_post/176</link>
      <description>&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;pre&gt;SELECT DATEADD(dd, 0, DATEDIFF(dd, 0, GETDATE()))&lt;/pre&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;via&amp;nbsp;&lt;a href="http://blogs.x2line.com/al/archive/2006/02/17/1458.aspx"&gt;http://blogs.x2line.com/al/archive/2006/02/17/1458.aspx&lt;/a&gt;&lt;/p&gt;</description>
      <guid>http://www.eduardofv.com/read_post/176</guid>
    </item>
    <item>
      <title>Post del Equipo de Windows Azure sobre nosotros</title>
      <link>http://www.eduardofv.com/read_post/175</link>
      <description>&lt;p&gt;Sobre el premio de Netmedia / Information Week&lt;/p&gt;
&lt;p&gt;&lt;a href="http://blogs.msdn.com/b/windowsazure/archive/2010/07/16/occmundial-named-second-most-innovative-company-with-windows-azure-solution.aspx"&gt;http://blogs.msdn.com/b/windowsazure/archive/2010/07/16/occmundial-named-second-most-innovative-company-with-windows-azure-solution.aspx&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Thnx guys @MS!&lt;/p&gt;</description>
      <guid>http://www.eduardofv.com/read_post/175</guid>
    </item>
    <item>
      <title>OCCMundial, Segundo lugar entre las empresas m&#195;&#402;&#194;&#161;s innovadoras de M&#195;&#402;&#194;&#169;xico</title>
      <link>http://www.eduardofv.com/read_post/174</link>
      <description>&lt;p class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span style="mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri; mso-bidi-font-family: Calibri; mso-ansi-language: #000A;" lang="es"&gt;El Jueves 24 de Junio asistimos a la entrega de premios &lt;/span&gt;&lt;span lang="es"&gt;&lt;a href="http://www.las50innovadoras.com.mx/"&gt;"Las 50 Empresas m&amp;aacute;s Innovadoras"&lt;/a&gt;&lt;/span&gt;&lt;span style="mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri; mso-bidi-font-family: Calibri; mso-ansi-language: #000A;" lang="es"&gt; de &lt;/span&gt;&lt;span lang="es"&gt;&lt;a href="http://www.informationweek.com.mx/"&gt;InformationWeek M&amp;eacute;xico&lt;/a&gt;&lt;/span&gt;&lt;span style="mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri; mso-bidi-font-family: Calibri; mso-ansi-language: #000A;" lang="es"&gt;, donde afortunadamente nosotros, &lt;/span&gt;&lt;span lang="es"&gt;&lt;a href="http://www.occ.com.mx"&gt;OCCMundial&lt;/a&gt;&lt;/span&gt;&lt;span style="mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri; mso-bidi-font-family: Calibri; mso-ansi-language: #000A;" lang="es"&gt;, ganamos el segundo lugar con el proyecto &lt;/span&gt;&lt;span lang="es"&gt;&lt;strong&gt;OCCMatch&lt;/strong&gt;&lt;/span&gt;&lt;span style="mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri; mso-bidi-font-family: Calibri; mso-ansi-language: #000A;" lang="es"&gt;. Muchas gracias a InformationWeek, &lt;/span&gt;&lt;span lang="es"&gt;&lt;a href="http://blog.netmedia.info/columnas/la-innovacion-se-vistio-de-gala/"&gt;NetMedia&lt;/a&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri; mso-bidi-font-family: Calibri; mso-ansi-language: #000A;" lang="es"&gt;y M&amp;oacute;nica Mistretta por el reconocimiento. Gracias a la Direcci&amp;oacute;n de OCCMundial por la oportunidad de innovar, proponer y desarrollar ideas &amp;ndash; no en cualquier lugar est&amp;aacute;n dispuestos a correr los riesgos inherentes a la innovaci&amp;oacute;n.&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span lang="es"&gt;&lt;strong&gt;En Web, innovar no es opcional&lt;/strong&gt;&lt;/span&gt;&lt;span style="mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri; mso-bidi-font-family: Calibri; mso-ansi-language: #000A;" lang="es"&gt;: la innovaci&amp;oacute;n debe ser una caracter&amp;iacute;stica m&amp;aacute;s del producto que vendes.&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span style="mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri; mso-bidi-font-family: Calibri; mso-ansi-language: #000A;" lang="es"&gt;Es por ello que iniciamos OCCMatch hace casi 3 a&amp;ntilde;os, reci&amp;eacute;n llegamos a OCCMundial. En principio, OCCMatch fue un algoritmo de estimaci&amp;oacute;n de similitud entre ofertas de trabajo y curr&amp;iacute;culos con el fin de correlacionar unos con otros y ofrecer recomendaciones. Empezamos trabajando con el Dr. Aldo Romero de CINVESTAV en Quer&amp;eacute;taro quien gener&amp;oacute; la base del algoritmo. Hoy OCCMatch est&amp;aacute; en v&amp;iacute;as de convertirse en una plataforma sobre la cual corren diferentes algoritmos (de aprendizaje estad&amp;iacute;stico, clasificadores bayesianos, filtrado colaborativo, etc.) que ofrecer&amp;aacute; una nueva experiencia en la b&amp;uacute;squeda de empleo para personas, y de b&amp;uacute;squeda de candidatos para las empresas.&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri; mso-bidi-font-family: Calibri; mso-ansi-language: #000A;" lang="es"&gt;OCCMatch corre sobre una implementaci&amp;oacute;n, desarrollada internamente, inspirada en &lt;/span&gt;&lt;span lang="es"&gt;&lt;a href="http://en.wikipedia.org/wiki/MapReduce"&gt;MapReduce &lt;/a&gt;&lt;/span&gt;&lt;span style="mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri; mso-bidi-font-family: Calibri; mso-ansi-language: #000A;" lang="es"&gt;que corre en la nube de &lt;/span&gt;&lt;span lang="es"&gt;&lt;a href="http://www.microsoft.com/casestudies/casestudy.aspx?casestudyid=4000005802"&gt;Microsoft Windows Azure&lt;/a&gt;&lt;/span&gt;&lt;span style="mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri; mso-bidi-font-family: Calibri; mso-ansi-language: #000A;" lang="es"&gt;, usando m&amp;aacute;s 200 instancias (m&amp;aacute;quinas virtuales) durante varias horas, &lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&lt;/span&gt;diariamente, haciendo match entre las casi 90,000 ofertas activas que tenemos en OCCMundial, y entre 2 y 4 millones de curr&amp;iacute;culos al mes, realizando unas 3.6e11 comparaciones, generando cientos de miles de emails con recomendaciones que son enviados diariamente a los candidatos. Todos los candidatos inscritos al servicio &lt;/span&gt;&lt;span lang="es"&gt;&lt;a href="http://occ.com.mx/myocc_info.html"&gt;MyOCC &lt;/a&gt;&lt;/span&gt;&lt;span style="mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri; mso-bidi-font-family: Calibri; mso-ansi-language: #000A;" lang="es"&gt;son procesados diariamente. &lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="mso-ansi-language: #000A;" lang="es"&gt;L&lt;/span&gt;a innovaci&amp;oacute;n en el &amp;aacute;rea de tecnolog&amp;iacute;a de OCCMundial est&amp;aacute; comenzando a florecer. OCCMatch seguir&amp;aacute; evolucionando. Adem&amp;aacute;s, pronto tendremos nuevos servicios para nuestros usuarios y clientes. Los candaditos disfrutar&amp;aacute;n una mejor experiencia, en un aspecto tan sensible para toda persona como lo es la b&amp;uacute;squeda de empleo. Las empresas ver&amp;aacute;n mejorada su eficiencia en la b&amp;uacute;squeda de candidatos y sus procesos de Recursos Humanos. Y para nosotros, lo mejor, seguiremos con la emoci&amp;oacute;n y el gusto de seguir innovando y trabajando en lo que nos apasiona.&lt;/p&gt;
&lt;p class="MsoNormal" style="text-align: center;"&gt;&lt;img src="../images/premio_eweek.jpg" alt="Foto premio" width="425" height="687" /&gt;&lt;/p&gt;</description>
      <guid>http://www.eduardofv.com/read_post/174</guid>
    </item>
    <item>
      <title>El efecto de la Selecci&#195;&#402;&#194;&#179;n Nacional en el Tr&#195;&#402;&#194;&#161;fico en #OCCMundial: -15%</title>
      <link>http://www.eduardofv.com/read_post/173</link>
      <description>&lt;p&gt;Una estimaci&amp;oacute;n (muy aproximada) del efecto de los juegos de la Selecci&amp;oacute;n Nacional en el n&amp;uacute;mero de p&amp;aacute;ginas consultadas y visitantes a &lt;a href="http://www.occmundial.com"&gt;OCCMundial &lt;/a&gt;es de &lt;strong&gt;una ca&amp;iacute;da del 15% del tr&amp;aacute;fico esperado&lt;/strong&gt; para esa fecha.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Imag&amp;iacute;nense lo que el Mundial hace por la productividad del pa&amp;iacute;s.&lt;/p&gt;</description>
      <guid>http://www.eduardofv.com/read_post/173</guid>
    </item>
    <item>
      <title>4,750 nuevas vacantes al mes en OCCMundial.com</title>
      <link>http://www.eduardofv.com/read_post/172</link>
      <description>&lt;p&gt;Este a&amp;ntilde;o hemos observado un incremento muy importante en el n&amp;uacute;mero de &lt;strong&gt;Vacantes Activas&lt;/strong&gt; en &lt;a href="http://www.occ.com.mx"&gt;OCCMundial&lt;/a&gt;, rebasando todos nuestros records hist&amp;oacute;ricos. Una Vacante dada de alta o modificada permanece Activa hasta que el reclutador la marca como cerrada o pasa su periodo de expiraci&amp;oacute;n (de 7 a 60 d&amp;iacute;as dependiendo de varias circunstancias). El dato de Vacantes Activas se puede ver en las principales p&amp;aacute;ginas de OCC (ver "&lt;em&gt;Contamos con 84,000 ofertas de trabajo&lt;/em&gt;" en la barra de b&amp;uacute;squeda) y se actualiza cada hora.&lt;/p&gt;
&lt;p&gt;En esta gr&amp;aacute;fica se observa el Promedio Diario de Vacantes Activas y el incremento de vacantes en el &amp;uacute;ltimo mes. El incremento est&amp;aacute; dado por la regresi&amp;oacute;n lineal ajustada a los datos (linea azul). En este &amp;uacute;ltimo mes &lt;strong&gt;la tasa de crecimiento fu&amp;eacute; aproximadamente de 4,750 ofertas&lt;/strong&gt;, dado por la pendiente de la regresi&amp;oacute;n.&lt;/p&gt;
&lt;p&gt;Es importante comentar que el n&amp;uacute;mero de Vacantes Activas es un fen&amp;oacute;memo muy &lt;em&gt;estacional&lt;/em&gt;. En la gr&amp;aacute;fica se observa el nivel de variaci&amp;oacute;n d&amp;iacute;a por por d&amp;iacute;a y semana (incluso por hora las variaciones son notables). Durante el a&amp;ntilde;o el mayor incremento se da en el mes de Enero; hay variaciones importantes en d&amp;iacute;as festivos y vacaciones - en la gr&amp;aacute;fica se observa el efecto del 10 de Mayo - y entre Noviembre y Diciembre cae mucho la oferta de trabajo. Pero eso es tema de otro post.&lt;/p&gt;
&lt;p style="text-align: center;"&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style="text-align: center;"&gt;&lt;a href="/images/promedios_mes_full.jpg"&gt;&lt;img src="/images/promedios_mes.jpg" alt="" /&gt;&lt;/a&gt;&lt;/p&gt;
</description>
      <guid>http://www.eduardofv.com/read_post/172</guid>
    </item>
    <item>
      <title>Alimentos inclu&#195;&#402;&#194;&#173;dos</title>
      <link>http://www.eduardofv.com/read_post/171</link>
      <description>&lt;p&gt;En 1889 Max Talmud era un estudiante polaco de Medicina, pobre, viviendo en Alemania. La comunidad jud&amp;iacute;a de Ulm hizo los arreglos necesarios para que las familias locales lo apoyaran de diversas formas. Una de ellas, la familia de Pauline y Hermann Einstein le dar&amp;iacute;a de comer todos los jueves por los siguientes seis a&amp;ntilde;os. Durante esas ocasiones, Max present&amp;oacute; a Albert, de entonces 10 a&amp;ntilde;os, algunos textos como &lt;em&gt;Elementos &lt;/em&gt;de Euclides y &lt;em&gt;La Cr&amp;iacute;tica de la Raz&amp;oacute;n Pura&lt;/em&gt; de Kant que fueron influenc&amp;iacute;as definitivas en su formaci&amp;oacute;n intelectual.&lt;/p&gt;
&lt;p&gt;&lt;a href="http://en.wikipedia.org/wiki/Albert_Einstein#Early_life_and_education"&gt;Wikipedia&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;</description>
      <guid>http://www.eduardofv.com/read_post/171</guid>
    </item>
    <item>
      <title>6,290,000 Personas en busca de empleo</title>
      <link>http://www.eduardofv.com/read_post/170</link>
      <description>&lt;p&gt;INEGI acaba de emitir hoy un &lt;a href="http://www.inegi.org.mx/inegi/contenidos/espanol/prensa/comunicados/ocupbol.asp"&gt;comunicado de prensa&lt;/a&gt; con indicadores provenientes de Encuesta Nacional de Ocupaci&amp;oacute;n y Empleo (ENOE) de marzo de 2010.&lt;/p&gt;
&lt;p&gt;A partir de la informaci&amp;oacute;n que da el documento, creo que podemos resaltar varias cosas:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;La tasa de ocupaci&amp;oacute;n est&amp;aacute; en 95.19% (desocupaci&amp;oacute;n del 4.81%).&lt;/li&gt;
&lt;li&gt;INEGI define a la poblaci&amp;oacute;n subocupada como quienes dicen tener necesidad y disponibilidad para trabajar m&amp;aacute;s horas, y ubica esta tasa en 8.57%.&lt;/li&gt;
&lt;li&gt;Por lo tanto la poblaci&amp;oacute;n &amp;ldquo;en busca de empleo&amp;rdquo; ser&amp;iacute;a la desocupada m&amp;aacute;s la subocupada representa un 13.38% de la PEA (Poblaci&amp;oacute;n Econ&amp;oacute;micamente Activa).&lt;/li&gt;
&lt;li&gt;En el comunicado no menciona la cifra de la PEA, pero en el sitio al cuarto trimestre de 2009 la PEA era de 47,041,909 personas seg&amp;uacute;n su p&amp;aacute;gina de indicadores.&lt;/li&gt;
&lt;li&gt;Por lo tanto, &lt;strong&gt;la poblaci&amp;oacute;n desocupada ser&amp;iacute;a de aproximadamente 2,260,000 personas&lt;/strong&gt; y,&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;la poblaci&amp;oacute;n &amp;ldquo;en busca de empleo&amp;rdquo; ser&amp;iacute;a de aproximadamente 6,290,000 personas.&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;</description>
      <guid>http://www.eduardofv.com/read_post/170</guid>
    </item>
    <item>
      <title>TopManagement sobre OCCMatch</title>
      <link>http://www.eduardofv.com/read_post/169</link>
      <description>&lt;p&gt;Art&amp;iacute;culo sobre OCCMatch en &lt;a href="http://www.topmanagement.com.mx/modules.php?management=OCCMUNDIAL+ROMPE+EL+PARADIGMA+DE+ENCONTRAR+EMPLEO+EN+INTERNET+CON+EL+LANZAMIENTO+DE+OCCMATCH&amp;amp;name=Noticias&amp;amp;file=show&amp;amp;clave=54242"&gt;TopManagement&lt;/a&gt;&lt;/p&gt;</description>
      <guid>http://www.eduardofv.com/read_post/169</guid>
    </item>
    <item>
      <title>Brief on updating Azure WorkerRoles from the July to November SDK version</title>
      <link>http://www.eduardofv.com/read_post/168</link>
      <description>&lt;p&gt;I'm updating our Windows Azure projects to the new version (November 2009 PDC) of the SDK. These are the highlights on the process:&lt;/p&gt;
&lt;p&gt;
&lt;ul&gt;
&lt;li&gt;New namespaces: from &lt;strong&gt;Microsoft.ServiceRuntime&lt;/strong&gt; to &lt;strong&gt;Microsoft.WindowsAzure.ServiceRuntime&lt;/strong&gt; plus the new .&lt;strong&gt;StorageClient &lt;/strong&gt;and .&lt;strong&gt;Diagnostics &lt;/strong&gt;(see below, on logging). Also note that you have to update the References.&lt;/li&gt;
&lt;li&gt;The &lt;strong&gt;RoleManager &lt;/strong&gt;class changed to &lt;strong&gt;RoleEnviroment &lt;/strong&gt;so:
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;RoleManager.GetLocalResource&lt;/strong&gt; is now &lt;strong&gt;RoleEnvironment.GetLocalResource&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;RoleManager.GetConfigurationSetting&lt;/strong&gt; is now&amp;nbsp;&lt;strong&gt;RoleEnvironment.GetConfigurationSettingValue&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;RoleManager.WriteToLog&lt;/strong&gt; disappeared, check the new Diagnostics API&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;RoleEntryPoint.GetHealthStatus() &lt;/strong&gt;is gone&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;RoleEntryPoint &lt;/strong&gt;changed its execution model from Start-&amp;gt;Stop (with the main loop on the Start) to a OnStart()-&amp;gt;Run-&amp;gt;OnStop() event-like model. Previously I used the class constructor to make the initialization which now goes on the OnStart()&lt;/li&gt;
&lt;/ul&gt;
&lt;/p&gt;
&lt;p&gt;The biggest change for me is the new &lt;strong&gt;.Diagnostics&lt;/strong&gt; namespace. Check &lt;a href="http://ecn.channel9.msdn.com/o9/pdc09/wmv/SVC15.wmv"&gt;this video&lt;/a&gt; from the PDC09 to check the new diagnostics and monitoring capabilities.&lt;/p&gt;
&lt;p&gt;As for the new &lt;strong&gt;.StorageClient&lt;/strong&gt;, I will not migrate all of our code for now since both C# and Ruby versions runs pretty well. Maybe later.&lt;/p&gt;</description>
      <guid>http://www.eduardofv.com/read_post/168</guid>
    </item>
    <item>
      <title>Cloud Computing</title>
      <link>http://www.eduardofv.com/read_post/167</link>
      <description>&lt;p&gt;&lt;span style="text-align:center;border:solid 1px #333"&gt;&lt;img src="http://dilbert.com/dyn/str_strip/000000000/00000000/0000000/000000/70000/4000/100/74149/74149.strip.print.gif" alt="" /&gt;&lt;/span&gt;&lt;/p&gt;</description>
      <guid>http://www.eduardofv.com/read_post/167</guid>
    </item>
    <item>
      <title>OCCMundial &amp; OCCMatch, our Microsoft Case Study</title>
      <link>http://www.eduardofv.com/read_post/166</link>
      <description>&lt;p&gt;Yesterday our case study with Microsoft went live &lt;a href="http://www.microsoft.com/casestudies/Case_Study_Detail.aspx?CaseStudyID=4000005802"&gt;here.&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;It basically explains how we developed our &lt;a href="http://en.wikipedia.org/wiki/MapReduce"&gt;MapReduce&lt;/a&gt; implementation on top of &lt;a href="http://www.microsoft.com/windowsazure"&gt;Windows Azure&lt;/a&gt; to scale the processing of our &lt;a href="http://www.occ.com.mx/occmatch.aspx"&gt;OCCMatch&lt;/a&gt; algorithm. It runs in 200 parallel Azure instances to calculate the best matches for jobs and resum&amp;eacute;s on OCC, which we send as suggestions via e-mail and are available on &lt;a href="http://my.occ.com.mx"&gt;My OCC&lt;/a&gt;.&lt;/p&gt;</description>
      <guid>http://www.eduardofv.com/read_post/166</guid>
    </item>
    <item>
      <title>Twitter Traffic Hijacking</title>
      <link>http://www.eduardofv.com/read_post/165</link>
      <description>&lt;p&gt;I've found that some people are using a technique I haven't seen before (which I've called "twitter traffic hijacking") to divert traffic from a known source to their unknown low-traffic site: post a message with the Twitter &lt;em&gt;@user&lt;/em&gt; of the known source and invite to follow you with an attractive message.&lt;/p&gt;
&lt;p&gt;In this case, user @unlimitedideas is posting a message: "@OCCMundial Tenemos Vacantes, siguenos !!!" (We have job offers, follow us!!!), referencing us &lt;a href="http://www.occ.com.mx"&gt;OCCMundial&lt;/a&gt; (&lt;a href="http://twitter.com/OCCMundial"&gt;@OCCMundial&lt;/a&gt; on Twitter), which is top-of-mind for jobseekers in Mexico, and hoping to appear next to us on Twitter searches. Then they publish messages with their own job offers.&lt;/p&gt;
&lt;p&gt;It's certainly ingenious and shows off the way SM is changing the game.&lt;/p&gt;</description>
      <guid>http://www.eduardofv.com/read_post/165</guid>
    </item>
    <item>
      <title>&#195;&#8218;&#194;&#191;Cu&#195;&#402;&#194;&#161;ndo se convertir&#195;&#402;&#194;&#161; esto en un problema en Facebook?</title>
      <link>http://www.eduardofv.com/read_post/164</link>
      <description>&lt;p&gt;Eventualmente mensajes as&amp;iacute; van a ser un problema:&lt;/p&gt;
&lt;div style="text-align:center"&gt;&lt;img style="border:solid 1px #000" src="../images/charlie.jpg" alt="" /&gt;&lt;/div&gt;
&lt;div style="font:0.8px"&gt;
&lt;p&gt;Charlie falleci&amp;oacute; hace unas semanas. Fue un buen amigo mientras trabajamos juntos hace 10 a&amp;ntilde;os.&lt;/p&gt;
&lt;/div&gt;</description>
      <guid>http://www.eduardofv.com/read_post/164</guid>
    </item>
    <item>
      <title>Secci&#195;&#402;&#194;&#179;n Personalizada de Google News para Quer&#195;&#402;&#194;&#169;taro</title>
      <link>http://www.eduardofv.com/read_post/163</link>
      <description>&lt;p&gt;Usar: queretaro -gallos -futbol&lt;/p&gt;
&lt;p&gt;(S&amp;iacute; hay un peque&amp;ntilde;o riesgo de perder noticias importantes de gripe aviar, pero vale la pena por evitar informaci&amp;oacute;n in&amp;uacute;til)&lt;/p&gt;</description>
      <guid>http://www.eduardofv.com/read_post/163</guid>
    </item>
    <item>
      <title>Sentido Com&#195;&#402;&#194;&#186;n empezar&#195;&#402;&#194;&#161; a cobrar</title>
      <link>http://www.eduardofv.com/read_post/162</link>
      <description>&lt;p&gt;El peri&amp;oacute;dico en l&amp;iacute;nea &lt;a href="http://www.sentidocomun.com.mx"&gt;Sentido Com&amp;uacute;n&lt;/a&gt; comenzar&amp;aacute; a cobrar el pr&amp;oacute;ximo mes por acceder a sus contenidos. Es una apuesta comprensible en t&amp;eacute;rminos de costos pero riesgosa ya que la industria editorial en l&amp;iacute;nea se mueve en sentido contrario, el control sobre el acceso no es tan f&amp;aacute;cil como parece y vuelve m&amp;aacute;s dif&amp;iacute;cil la indexaci&amp;oacute;n del contenido (no se cu&amp;aacute;nto de su tr&amp;aacute;fico viene de Google, pero si sigue las tendencias generales en Internet debe ser alto). Yo por lo pronto no lo voy a pagar y seguir&amp;eacute; usando opciones gratuitas como &lt;a href="http://news.google.com"&gt;Google News.&lt;/a&gt;&amp;nbsp;&lt;/p&gt;</description>
      <guid>http://www.eduardofv.com/read_post/162</guid>
    </item>
    <item>
      <title>Demasiados Recuerdos ...</title>
      <link>http://www.eduardofv.com/read_post/161</link>
      <description>&lt;p&gt;... para un fin de semana:&lt;/p&gt;
&lt;p&gt;- la muerte de un antig&amp;uuml;o compa&amp;ntilde;ero y amigo,&lt;/p&gt;
&lt;p&gt;- la casa de&amp;nbsp;15 a&amp;ntilde;os de historia, &amp;nbsp;4 a&amp;ntilde;os de vida, y dos hijos;&amp;nbsp;su primera ropa, los arboles de lim&amp;oacute;n y mandarina,&lt;/p&gt;
&lt;p&gt;- las personas con las que viviste 14 a&amp;ntilde;os y vuelves a ver tras veinte: amigos entra&amp;ntilde;ables algunos, compa&amp;ntilde;eros agradables muchos, incomprensibles otros,&lt;/p&gt;
&lt;p&gt;- saludar nuevamente a una querida maestra.&lt;/p&gt;
&lt;p&gt;Yoga y meditaci&amp;oacute;n para recuperar el aqu&amp;iacute; y el ahora.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;</description>
      <guid>http://www.eduardofv.com/read_post/161</guid>
    </item>
    <item>
      <title>Square or Circle</title>
      <link>http://www.eduardofv.com/read_post/160</link>
      <description>&lt;p&gt;A monk asked, "What about when there is neither a square nor a circle?"&lt;/p&gt;
&lt;p&gt;Chao-chu said, "Neither square nor circle."&lt;/p&gt;
&lt;p&gt;The monk said, "When things are like that, what about it?"&lt;/p&gt;
&lt;p&gt;The master said, "Either square or circle."&lt;/p&gt;
&lt;p style="text-align: right;"&gt;James Green, &lt;em&gt;The Recorded Sayings of Master Joshu&lt;/em&gt;&lt;/p&gt;
&lt;p style="text-align: right;"&gt;referenced by Audrey Yoshiko Seo, &lt;em&gt;&lt;a href="http://www.amazon.com/Enso-Enlightenment-Audrey-Yoshiko-Seo/dp/1590306082"&gt;Enso, Zen Circles of Enlightment&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;</description>
      <guid>http://www.eduardofv.com/read_post/160</guid>
    </item>
    <item>
      <title>Simple Explanation on Singular Value Decomposition</title>
      <link>http://www.eduardofv.com/read_post/159</link>
      <description>&lt;p&gt;&lt;a href="http://www.ams.org/featurecolumn/archive/svd.html"&gt;http://www.ams.org/featurecolumn/archive/svd.html&lt;/a&gt;|Geometric approach and samples&lt;/p&gt;</description>
      <guid>http://www.eduardofv.com/read_post/159</guid>
    </item>
    <item>
      <title>Funes and Shereshevskii</title>
      <link>http://www.eduardofv.com/read_post/158</link>
      <description>&lt;p&gt;I'm currently reading John Medina's &lt;a href="http://brainrules.net/"&gt;Brain Rules&lt;/a&gt; (&lt;a href="http://www.amazon.com/Brain-Rules-Principles-Surviving-Thriving/dp/0979777747"&gt;@amazon&lt;/a&gt;). Rule #6 Long-Term Memory recalls the case of &lt;a href="http://en.wikipedia.org/wiki/Solomon_Shereshevskii"&gt;Solomon Shereshevskii&lt;/a&gt;, which reminded my a lot &lt;a href="http://en.wikipedia.org/wiki/Funes_the_Memorious"&gt;Borges'&lt;/a&gt; &lt;a href="http://www.literatura.us/borges/funes.html"&gt;Funes el Memorioso&lt;/a&gt;, although JL regards it as a metaphor of insomnia. (I'm writing this just not to forget)&lt;/p&gt;</description>
      <guid>http://www.eduardofv.com/read_post/158</guid>
    </item>
    <item>
      <title>7 Japanese aesthetic principles to change your thinking</title>
      <link>http://www.eduardofv.com/read_post/157</link>
      <description>&lt;p&gt;&lt;a href="http://www.presentationzen.com/presentationzen/2009/09/exposing-ourselves-to-traditional-japanese-aesthetic-ideas-notions-that-may-seem-quite-foreign-to-most-of-us-is-a-goo.html"&gt;http://www.presentationzen.com/presentationzen/2009/09/exposing-ourselves-to-traditional-japanese-aesthetic-ideas-notions-that-may-seem-quite-foreign-to-most-of-us-is-a-goo.html&lt;/a&gt;&lt;/p&gt;</description>
      <guid>http://www.eduardofv.com/read_post/157</guid>
    </item>
    <item>
      <title>Machine Learning Classifier Gallery</title>
      <link>http://www.eduardofv.com/read_post/156</link>
      <description>&lt;p&gt;&lt;a href="http://home.comcast.net/~tom.fawcett/public_html/ML-gallery/pages/index.html"&gt;http://home.comcast.net/~tom.fawcett/public_html/ML-gallery/pages/index.html&lt;/a&gt;|Via HackerNews (&lt;a href="http://news.ycombinator.com/item?id=804074"&gt;discussion&lt;/a&gt;)&lt;/p&gt;</description>
      <guid>http://www.eduardofv.com/read_post/156</guid>
    </item>
    <item>
      <title>How a programmer reads your resume (comic)</title>
      <link>http://www.eduardofv.com/read_post/155</link>
      <description>&lt;p&gt;&lt;a href="http://stevehanov.ca/blog/index.php?id=56"&gt;http://stevehanov.ca/blog/index.php?id=56&lt;/a&gt;&lt;/p&gt;</description>
      <guid>http://www.eduardofv.com/read_post/155</guid>
    </item>
    <item>
      <title>Simpson's Paradox</title>
      <link>http://www.eduardofv.com/read_post/154</link>
      <description>&lt;p&gt;&lt;a href="http://en.wikipedia.org/wiki/Simpson's_paradox"&gt;http://en.wikipedia.org/wiki/Simpson's_paradox&lt;/a&gt;|(Via &lt;a href="http://news.ycombinator.com/item?id=791821"&gt;Hacker News&lt;/a&gt;)&lt;/p&gt;</description>
      <guid>http://www.eduardofv.com/read_post/154</guid>
    </item>
    <item>
      <title>Signs that you're a bad programmer</title>
      <link>http://www.eduardofv.com/read_post/153</link>
      <description>&lt;p&gt;&lt;a href="http://sites.google.com/site/yacoset/Home/signs-that-you-re-a-bad-programmer"&gt;http://sites.google.com/site/yacoset/Home/signs-that-you-re-a-bad-programmer&lt;/a&gt;|Write your checklist&lt;/p&gt;</description>
      <guid>http://www.eduardofv.com/read_post/153</guid>
    </item>
    <item>
      <title>Weird Snippet to Divide an Array [ruby]</title>
      <link>http://www.eduardofv.com/read_post/152</link>
      <description>&lt;p&gt;Dividing an array of &lt;em&gt;n&lt;/em&gt; elements into &lt;em&gt;pieces &lt;/em&gt;subarrays is a little bit trickier than it seems. Each subarray will contain &lt;em&gt;chunk_size = n / pieces&lt;/em&gt; elements and &lt;em&gt;n % pieces&lt;/em&gt; will remain unassigned, and need to be distributed to the subarrays. You can do this in many ways, but in this case we will assign the first remaining element to the first subarray, and so on. So the first &lt;em&gt;n%pieces&lt;/em&gt; subarrays will contain &lt;em&gt;n/pieces+1&lt;/em&gt; elements.&lt;/p&gt;
&lt;pre&gt;
&lt;p&gt;def chunk_array(a,pieces)&lt;br /&gt;&amp;nbsp; cs = a.length / pieces #chunk size&lt;br /&gt;&amp;nbsp; r = -1*(a.length%pieces) #remaining elements to be asigned to a chunk&lt;br /&gt;&amp;nbsp; (0..pieces-1).map{|i| r+=1; a[i*cs..(i+1)*cs-1] + (r&amp;lt;1 ? a[r-1..r-1] : [])}&lt;br /&gt;end&lt;/p&gt;
&lt;/pre&gt;</description>
      <guid>http://www.eduardofv.com/read_post/152</guid>
    </item>
    <item>
      <title>R Language Tutorial</title>
      <link>http://www.eduardofv.com/read_post/151</link>
      <description>&lt;p&gt;&lt;a href="http://www.johndcook.com/R_language_for_programmers.html"&gt;http://www.johndcook.com/R_language_for_programmers.html&lt;/a&gt;&lt;/p&gt;</description>
      <guid>http://www.eduardofv.com/read_post/151</guid>
    </item>
    <item>
      <title>C# &amp; Linq Functional Style - Simple XML Parsing</title>
      <link>http://www.eduardofv.com/read_post/150</link>
      <description>&lt;p&gt;With things like this, C# is regaining my attention. Parse a simple XML to a string array containing only the child elements defined in an other string array:
&lt;/p&gt;
&lt;p&gt;&lt;pre&gt;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Xml.Linq;

namespace PruebaLinqFuncional
{
    class Program
    {
        public static List&amp;lt;string[]&amp;gt; ParseXML(string xml, string objectName, string[] dataToParse)
        {
            //Programacion funcional en C# :O

            /*
            return XDocument.Parse(xml).Descendants(objectName).Select((element) =&amp;gt;
            {
                var lst = new List&amp;lt;string&amp;gt;();
                foreach (string field in dataToParse)
                    lst.Add(element.Element(field).Value);
                return lst.ToArray&amp;lt;string&amp;gt;();
            }).ToList&amp;lt;string[]&amp;gt;();
             */

            return XDocument.Parse(xml).Descendants(objectName).Select( (element) =&amp;gt;
            {
                return dataToParse.Select( (field) =&amp;gt; 
                { 
                    return element.Element(field).Value; 
                }).ToArray&amp;lt;string&amp;gt;();
            }).ToList&amp;lt;string[]&amp;gt;();
        }

        static void Main(string[] args)
        {
            var xml = @"&amp;lt;?xml version=""1.0"" encoding=""utf-8""?&amp;gt;
&amp;lt;EnumerationResults ContainerName=""http://myaccount.blob.core.windows.net/mycontainer""&amp;gt;
  &amp;lt;Prefix&amp;gt;string-value&amp;lt;/Prefix&amp;gt;
  &amp;lt;Marker&amp;gt;string-value&amp;lt;/Marker&amp;gt;
  &amp;lt;MaxResults&amp;gt;int-value&amp;lt;/MaxResults&amp;gt;
  &amp;lt;Delimiter&amp;gt;string-value&amp;lt;/Delimiter&amp;gt;
  &amp;lt;Blobs&amp;gt;
    &amp;lt;Blob&amp;gt;
      &amp;lt;Url&amp;gt;Mi_URL_Uno&amp;lt;/Url&amp;gt;
      &amp;lt;Name&amp;gt;Mi_Blob_Uno&amp;lt;/Name&amp;gt;
      &amp;lt;LastModified&amp;gt;date/time-value&amp;lt;/LastModified&amp;gt;
      &amp;lt;Etag&amp;gt;etag&amp;lt;/Etag&amp;gt;
      &amp;lt;Size&amp;gt;size-in-bytes&amp;lt;/Size&amp;gt;
      &amp;lt;ContentType&amp;gt;blob-content-type&amp;lt;/ContentType&amp;gt;
      &amp;lt;ContentEncoding /&amp;gt;
      &amp;lt;ContentLanguage /&amp;gt;
    &amp;lt;/Blob&amp;gt;
    &amp;lt;Blob&amp;gt;
      &amp;lt;Url&amp;gt;Mi_URL_Dos&amp;lt;/Url&amp;gt;
      &amp;lt;Name&amp;gt;Mi_Blob_Dos&amp;lt;/Name&amp;gt;
      &amp;lt;LastModified&amp;gt;date/time-value&amp;lt;/LastModified&amp;gt;
      &amp;lt;Etag&amp;gt;etag&amp;lt;/Etag&amp;gt;
      &amp;lt;Size&amp;gt;size-in-bytes&amp;lt;/Size&amp;gt;
      &amp;lt;ContentType&amp;gt;blob-content-type&amp;lt;/ContentType&amp;gt;
      &amp;lt;ContentEncoding /&amp;gt;
      &amp;lt;ContentLanguage /&amp;gt;
    &amp;lt;/Blob&amp;gt;
  &amp;lt;/Blobs&amp;gt;
  &amp;lt;BlobPrefix&amp;gt;
    &amp;lt;Name&amp;gt;blob-prefix&amp;lt;/Name&amp;gt;
  &amp;lt;/BlobPrefix&amp;gt;
  &amp;lt;NextMarker /&amp;gt;
&amp;lt;/EnumerationResults&amp;gt;";


            foreach (var stra in ParseXML(xml, "Blob", new string[] { "Url", "Name" }))
                Console.WriteLine(string.Join(",", stra));

            Console.ReadLine();
        }
    }
}
&lt;/pre&gt;&lt;/p&gt;</description>
      <guid>http://www.eduardofv.com/read_post/150</guid>
    </item>
    <item>
      <title>GUIDs in Ruby</title>
      <link>http://www.eduardofv.com/read_post/147</link>
      <description>&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;pre&gt;sudo gem install guid

require 'guid'

Guid.new
&lt;/pre&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;a href="http://rubyforge.org/forum/forum.php?forum_id=4743"&gt;http://rubyforge.org/forum/forum.php?forum_id=4743&lt;/a&gt; go to the bottom)&lt;/p&gt;
&lt;p&gt;On Windows this might be useful:&lt;/p&gt;
&lt;p&gt;&lt;a href="http://www.agileprogrammer.com/dotnetguy/archive/2005/10/27/8991.aspx"&gt;http://www.agileprogrammer.com/dotnetguy/archive/2005/10/27/8991.aspx&lt;/a&gt;&lt;/p&gt;</description>
      <guid>http://www.eduardofv.com/read_post/147</guid>
    </item>
    <item>
      <title>StackOverflow Architecture</title>
      <link>http://www.eduardofv.com/read_post/146</link>
      <description>&lt;p&gt;http://highscalability.com/stack-overflow-architecture|It's good to see that &lt;a href="www.occ.com.mx"&gt;we&lt;/a&gt; are doing similar things...&lt;/p&gt;</description>
      <guid>http://www.eduardofv.com/read_post/146</guid>
    </item>
    <item>
      <title>Introduction to LINQ - Simple XML Parsing</title>
      <link>http://www.eduardofv.com/read_post/145</link>
      <description>&lt;p&gt;
&lt;p&gt;
&lt;p&gt;&lt;a href="http://www.switchonthecode.com/tutorials/introduction-to-linq-simple-xml-parsing"&gt;http://www.switchonthecode.com/tutorials/introduction-to-linq-simple-xml-parsing&lt;/a&gt;|Para comenzar con Linq to XML&lt;/p&gt;
&lt;/p&gt;
&lt;/p&gt;</description>
      <guid>http://www.eduardofv.com/read_post/145</guid>
    </item>
    <item>
      <title>Partidos pol&#195;&#402;&#194;&#173;ticos y Web Servers</title>
      <link>http://www.eduardofv.com/read_post/144</link>
      <description>&lt;p&gt;&lt;span style="font-family: 'Times New Roman'; font-size: 16px;"&gt;
&lt;div style="color: #000000; font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 10px; background-image: initial; background-repeat: initial; background-attachment: initial; -webkit-background-clip: initial; -webkit-background-origin: initial; background-color: #ffffff; background-position: initial initial; margin: 8px;"&gt;
&lt;p&gt;Para lo que vale, ahora que estamos a unos d&amp;iacute;as de las elecciones y que al fin se callaron las campa&amp;ntilde;as, aqu&amp;iacute; va una lista de los Web Servers usados por cada partido (afortunadamente ahora ya solo tienen una p&amp;aacute;gina de inicio cumpliendo con la ley electoral):&lt;/p&gt;
&lt;p style="padding-left: 30px; "&gt;PAN: Microsoft-IIS/6.0 / ASP.NET&lt;/p&gt;
&lt;p style="padding-left: 30px; "&gt;PRI:&amp;nbsp;Microsoft-IIS/6.0 / ASP.NET&lt;/p&gt;
&lt;p style="padding-left: 30px; "&gt;PRD: Apache/2.2.9 (Fedora) - PHP/5.2.6&lt;/p&gt;
&lt;p style="padding-left: 30px; "&gt;PVEM: Apache/2.2.6 (Fedora)&amp;nbsp;&lt;/p&gt;
&lt;p style="padding-left: 30px; "&gt;PT: Apache&lt;/p&gt;
&lt;p style="padding-left: 30px; "&gt;Nueva Alianza:&amp;nbsp;&lt;span style="white-space: pre; "&gt;Apache/2.0.52 (CentOS)&lt;/span&gt;&lt;/p&gt;
&lt;p style="padding-left: 30px; "&gt;Convergencia:&amp;nbsp;&lt;span style="white-space: pre; "&gt;Apache/2.0.63 (Unix) mod_ssl/2.0.63 OpenSSL/0.9.8b mod_auth_passthrough/2.1 mod_bwlimited/1.4 FrontPage&lt;/span&gt;&lt;/p&gt;
&lt;pre style="color: #000000; font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 10px; margin: 8px;"&gt;/5.0.2.2635 PHP/5.2.5&lt;/pre&gt;
&lt;p style="padding-left: 30px; "&gt;PSD: ngnix/0.5.32&lt;/p&gt;
&lt;/div&gt;
&lt;/span&gt;&lt;/p&gt;</description>
      <guid>http://www.eduardofv.com/read_post/144</guid>
    </item>
    <item>
      <title>The Google Code University</title>
      <link>http://www.eduardofv.com/read_post/143</link>
      <description>&lt;p&gt;&lt;a href="http://code.google.com/edu/"&gt;http://code.google.com/edu/&lt;/a&gt;|Online courses and tutorials... checking the whole distributed computing resources.&lt;/p&gt;</description>
      <guid>http://www.eduardofv.com/read_post/143</guid>
    </item>
    <item>
      <title>Priced to Sell</title>
      <link>http://www.eduardofv.com/read_post/142</link>
      <description>&lt;p&gt;http://www.newyorker.com/arts/critics/books/2009/07/06/090706crbo_books_gladwell?currentPage=1&lt;/p&gt;</description>
      <guid>http://www.eduardofv.com/read_post/142</guid>
    </item>
    <item>
      <title>Cool App for Cloud Storage</title>
      <link>http://www.eduardofv.com/read_post/141</link>
      <description>&lt;p&gt;http://www.codeplex.com/spaceblock|&lt;span id="ctl00_ctl00_MasterContent_Content_wikiSourceLabel"&gt; Windows front-end for managing Amazon S3, Nirvanix, Azure Blob Storage, and now Sun Cloud Object Storage&lt;/span&gt;&lt;/p&gt;</description>
      <guid>http://www.eduardofv.com/read_post/141</guid>
    </item>
    <item>
      <title>Creating Charts and Graphs with GNU R</title>
      <link>http://www.eduardofv.com/read_post/140</link>
      <description>&lt;p&gt;http://freshmeat.net/articles/creating-charts-and-graphs-with-gnu-r&lt;/p&gt;</description>
      <guid>http://www.eduardofv.com/read_post/140</guid>
    </item>
    <item>
      <title>An&#195;&#402;&#194;&#161;lisis de Palabras en Ofertas de Trabajo por G&#195;&#402;&#194;&#169;nero</title>
      <link>http://www.eduardofv.com/read_post/139</link>
      <description>&lt;p&gt;En &lt;a href="http://www.occ.com.mx"&gt;OCCMundial.com&lt;/a&gt; como parte de nuestro desarrollo de &lt;a href="http://www.occ.com.mx/occmatch.aspx"&gt;OCCMatch&lt;/a&gt;, Abel y yo estamos haciendo un an&amp;aacute;lisis Bayesiano sobre el contenido de las solicitudes de empleo por sexo de los solicitantes. Inspirado en este &lt;a href="http://blog.kiwitobes.com/?p=42"&gt;excelente post de Toby Segaran&lt;/a&gt;, les presento un resultado sobre las palabras que, en ofertas de trabajo populares, dan una mayor predictibilidad de recibir un porcentaje de respuesta diferenciado de hombres o mujeres.&lt;/p&gt;
&lt;p&gt;En general, esto es lo que hicimos:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Tomar un n&amp;uacute;mero grande de ofertas de trabajo &lt;em&gt;populares&lt;/em&gt; (que recibieron una cantidad alta de solicitudes)&lt;/li&gt;
&lt;li&gt;Dividirlas en categor&amp;iacute;as de alto porcentaje de solicitudes masculinas, femeninas o ninguna de las dos&lt;/li&gt;
&lt;li&gt;Hacer divisi&amp;oacute;n de palabras y limpieza del contenido, en especial, eliminaci&amp;oacute;n de acentos, &amp;ntilde;, etc.&lt;/li&gt;
&lt;li&gt;Entrenar filtros Bayesianos para cada categor&amp;iacute;a&lt;/li&gt;
&lt;li&gt;Determinar las palabras que mejor predicen la categor&amp;iacute;a&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Abajo les muestro la lista de las primeras 50 palabras en la categor&amp;iacute;a de hombre/mujer ordenadas por valor predictivo.&lt;/p&gt;
&lt;p&gt;Es interesante que para estas ofertas la diferenciaci&amp;oacute;n por sexo se enfoca en puestos administrativos o auxiliares, mientras que en hombres se enfoca en puestos operativos. Llama la atenci&amp;oacute;n que en el caso de mujeres el valor predictivo que puede tener una frase como "excelente presentac&amp;iacute;on". Otras conclusiones sobre adjetivos o atributos de los candidatos solicitados se los dejo a ustedes ;)&lt;/p&gt;
&lt;p&gt;Por supuesto el tema de diferenciaci&amp;oacute;n por g&amp;eacute;nero en ofertas de trabajo es delicado. &lt;a href="http://www.occ.com.mx/"&gt;OCC&lt;/a&gt; ni siquiera tiene un campo para determinar el g&amp;eacute;nero solicitado en las ofertas de empleo; pero no se puede controlar el contenido de la vacante que crea cada reclutador. Y es un hecho que en M&amp;eacute;xico es una pr&amp;aacute;ctica com&amp;uacute;n.&lt;/p&gt;
&lt;table style="border:none;border-collapse:collapse;text-align:left;margin-left:20px" border="0"&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;th style="width: 200px;"&gt;M&amp;aacute;s Mujeres&lt;/th&gt;&lt;th style="width: 200px;"&gt;M&amp;aacute;s Hombres&lt;/th&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;femenino&lt;/td&gt;
&lt;td&gt;masculino&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;excelente&lt;/td&gt;
&lt;td&gt;produccion&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;presentacion&lt;/td&gt;
&lt;td&gt;mantenimiento&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;asistente&lt;/td&gt;
&lt;td&gt;sistemas&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;sexo&lt;/td&gt;
&lt;td&gt;industrial&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;direccion&lt;/td&gt;
&lt;td&gt;personal&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;interesadas&lt;/td&gt;
&lt;td&gt;ventas&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;agenda&lt;/td&gt;
&lt;td&gt;ingenieria&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;conmutador&lt;/td&gt;
&lt;td&gt;almacen&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;office&lt;/td&gt;
&lt;td&gt;ing&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;administrativas&lt;/td&gt;
&lt;td&gt;inventarios&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;tecnica&lt;/td&gt;
&lt;td&gt;liderazgo&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;ley&lt;/td&gt;
&lt;td&gt;conocimientos&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;recepcion&lt;/td&gt;
&lt;td&gt;procesos&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;recepcionista&lt;/td&gt;
&lt;td&gt;equipos&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;proactiva&lt;/td&gt;
&lt;td&gt;distribucion&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;secretaria&lt;/td&gt;
&lt;td&gt;gerente&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;fotografia&lt;/td&gt;
&lt;td&gt;ingeniero&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;trunca&lt;/td&gt;
&lt;td&gt;resultados&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;organizada&lt;/td&gt;
&lt;td&gt;calidad&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;llamadas&lt;/td&gt;
&lt;td&gt;conocimiento&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;ejecutiva&lt;/td&gt;
&lt;td&gt;supervision&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;buena&lt;/td&gt;
&lt;td&gt;logistica&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;comercial&lt;/td&gt;
&lt;td&gt;operaciones&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;preparatoria&lt;/td&gt;
&lt;td&gt;operacion&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;trato&lt;/td&gt;
&lt;td&gt;productos&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;excel&lt;/td&gt;
&lt;td&gt;casado&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;soltera&lt;/td&gt;
&lt;td&gt;objetivos&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;archivo&lt;/td&gt;
&lt;td&gt;administracion&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;proveedores&lt;/td&gt;
&lt;td&gt;planeacion&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;reportes&lt;/td&gt;
&lt;td&gt;mecanico&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;word&lt;/td&gt;
&lt;td&gt;seguridad&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;funciones&lt;/td&gt;
&lt;td&gt;soporte&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;hrs&lt;/td&gt;
&lt;td&gt;tecnico&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;control&lt;/td&gt;
&lt;td&gt;obra&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;buen&lt;/td&gt;
&lt;td&gt;proyectos&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;oficina&lt;/td&gt;
&lt;td&gt;manufactura&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;bachillerato&lt;/td&gt;
&lt;td&gt;supervisor&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;administrativo&lt;/td&gt;
&lt;td&gt;rutas&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;civil&lt;/td&gt;
&lt;td&gt;preventivo&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;caja&lt;/td&gt;
&lt;td&gt;producto&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;apoyo&lt;/td&gt;
&lt;td&gt;redes&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;dinamica&lt;/td&gt;
&lt;td&gt;cargo&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;administrativa&lt;/td&gt;
&lt;td&gt;consumo&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;chica&lt;/td&gt;
&lt;td&gt;proactivo&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;terminada&lt;/td&gt;
&lt;td&gt;empresas&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;fax&lt;/td&gt;
&lt;td&gt;mecanica&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;ortografia&lt;/td&gt;
&lt;td&gt;asegurar&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;general&lt;/td&gt;
&lt;td&gt;almacenes&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;licenciatura&lt;/td&gt;
&lt;td&gt;viajar&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;unicamente&lt;/td&gt;
&lt;td&gt;maestria&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;</description>
      <guid>http://www.eduardofv.com/read_post/139</guid>
    </item>
    <item>
      <title>The Three Sexy Skills of Data Geeks</title>
      <link>http://www.eduardofv.com/read_post/138</link>
      <description>&lt;p&gt;http://dataspora.com/blog/sexy-data-geeks/|Look for the djvu version of the book&lt;/p&gt;</description>
      <guid>http://www.eduardofv.com/read_post/138</guid>
    </item>
    <item>
      <title>Machine Learning, Artificial Intelligence and Math resources</title>
      <link>http://www.eduardofv.com/read_post/130</link>
      <description>&lt;p&gt;My Reference List:&lt;/p&gt;
&lt;p&gt;&lt;a href="http://abeautifulwww.com/2007/11/23/ensemble-machine-learning-tutorial/"&gt;A Beautiful WWW&lt;/a&gt; - Information Retrieval. Information Visualization. Data Mining. Artificial Intelligence. Web Programming. (by Todd Holloway). Links to a ensemble machine learning tutorial.&lt;/p&gt;
&lt;p&gt;[Espa&amp;ntilde;ol]&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="http://ccc.inaoep.mx/directorio/investigadores/jagonzalez.php"&gt;Dr. Jes&amp;uacute;s Gonz&amp;aacute;lez&lt;/a&gt; - Instituto Nacional de Astrof&amp;iacute;sica, &amp;Oacute;ptica y Electr&amp;oacute;nica (INAOE). Ver hasta abajo los cursos y el material disponible&lt;/li&gt;
&lt;li&gt;&lt;a href="http://ccc.inaoep.mx/~esucar/"&gt;Dr. Enrique S&amp;uacute;car&lt;/a&gt; - INAOE. Cursos de Matem&amp;aacute;ticas, Probabilidad, etc&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.gelbukh.com/"&gt;Dr. Alexander Gelbuk&lt;/a&gt; - NLP, libros y papers&lt;/li&gt;
&lt;/ul&gt;</description>
      <guid>http://www.eduardofv.com/read_post/130</guid>
    </item>
    <item>
      <title>The Million Dollar Programming Prize (Netflix Prize)</title>
      <link>http://www.eduardofv.com/read_post/137</link>
      <description>&lt;p&gt;http://www.spectrum.ieee.org/may09/8788|Via &lt;a href="http://news.ycombinator.com/item?id=620363"&gt;Hacker News&lt;/a&gt;&lt;/p&gt;</description>
      <guid>http://www.eduardofv.com/read_post/137</guid>
    </item>
    <item>
      <title>Officially a Eric Lewis fan</title>
      <link>http://www.eduardofv.com/read_post/136</link>
      <description>&lt;p&gt;I've only heard Eric Lewis &lt;a href="http://www.ericlewisgroove.com/"&gt;here&lt;/a&gt; and on the &lt;a href="../read_post/133-Eric-Lewis-plays-chaos-and-harmony"&gt;TED Talk&lt;/a&gt; but I'm officially fan. This is some of the best new music I've heard on a long time.&lt;/p&gt;</description>
      <guid>http://www.eduardofv.com/read_post/136</guid>
    </item>
    <item>
      <title>How to Choose Colors Everyone Likes</title>
      <link>http://www.eduardofv.com/read_post/135</link>
      <description>&lt;p&gt;http://www.creativepro.com/article/how-choose-colors-everyone-likes|Design Resources&lt;/p&gt;</description>
      <guid>http://www.eduardofv.com/read_post/135</guid>
    </item>
    <item>
      <title>Los Alamos Center for Bayesian Methods</title>
      <link>http://www.eduardofv.com/read_post/134</link>
      <description>&lt;p&gt;http://drambuie.lanl.gov/~bayes/index.html|Tutorial, links and publications&lt;/p&gt;</description>
      <guid>http://www.eduardofv.com/read_post/134</guid>
    </item>
    <item>
      <title>Eric Lewis plays chaos and harmony</title>
      <link>http://www.eduardofv.com/read_post/133</link>
      <description>&lt;p&gt;Amazingly creative and expressive&lt;/p&gt;
&lt;center&gt;
&lt;object width="446" height="326"&gt;&lt;param name="movie" value="http://video.ted.com/assets/player/swf/EmbedPlayer.swf"&gt;&lt;/param&gt;&lt;param name="allowFullScreen" value="true" /&gt;&lt;param name="wmode" value="transparent"&gt;&lt;/param&gt;&lt;param name="bgColor" value="#ffffff"&gt;&lt;/param&gt; &lt;param name="flashvars" value="vu=http://video.ted.com/talks/embed/EricLewisTEDPRIZE_2009-embed_high.flv&amp;su=http://images.ted.com/images/ted/tedindex/embed-posters/EricLewis-TEDPRIZE-2009.embed_thumbnail.jpg&amp;vw=432&amp;vh=240&amp;ap=0&amp;ti=541" /&gt;&lt;embed src="http://video.ted.com/assets/player/swf/EmbedPlayer.swf" pluginspace="http://www.macromedia.com/go/getflashplayer" type="application/x-shockwave-flash" wmode="transparent" bgColor="#ffffff" width="446" height="326" allowFullScreen="true" flashvars="vu=http://video.ted.com/talks/embed/EricLewisTEDPRIZE_2009-embed_high.flv&amp;su=http://images.ted.com/images/ted/tedindex/embed-posters/EricLewis-TEDPRIZE-2009.embed_thumbnail.jpg&amp;vw=432&amp;vh=240&amp;ap=0&amp;ti=541"&gt;&lt;/embed&gt;&lt;/object&gt;
&lt;/center&gt;</description>
      <guid>http://www.eduardofv.com/read_post/133</guid>
    </item>
    <item>
      <title>Don't, The Secret of Self-Control</title>
      <link>http://www.eduardofv.com/read_post/132</link>
      <description>&lt;p&gt;http://www.newyorker.com/reporting/2009/05/18/090518fa_fact_lehrer?currentPage=all#&lt;/p&gt;</description>
      <guid>http://www.eduardofv.com/read_post/132</guid>
    </item>
    <item>
      <title>Crucial Concepts Behind Advanced Regular Expressions</title>
      <link>http://www.eduardofv.com/read_post/131</link>
      <description>&lt;p&gt;http://www.smashingmagazine.com/2009/05/06/introduction-to-advanced-regular-expressions/&lt;/p&gt;</description>
      <guid>http://www.eduardofv.com/read_post/131</guid>
    </item>
    <item>
      <title>Dr. Enrique S&#195;&#402;&#194;&#186;car - Recursos en Matem&#195;&#402;&#194;&#161;ticas y Machine Learning</title>
      <link>http://www.eduardofv.com/read_post/129</link>
      <description>&lt;p&gt;http://ccc.inaoep.mx/~esucar/|INAOEP&lt;/p&gt;</description>
      <guid>http://www.eduardofv.com/read_post/129</guid>
    </item>
    <item>
      <title>Mindfulness In Plain English</title>
      <link>http://www.eduardofv.com/read_post/128</link>
      <description>&lt;p&gt;http://mail.saigon.com/~anson/ebud/mfneng/mind0.htm|Abajo links a muchos mas libros&lt;/p&gt;</description>
      <guid>http://www.eduardofv.com/read_post/128</guid>
    </item>
    <item>
      <title>Vipassana Center Mexico</title>
      <link>http://www.eduardofv.com/read_post/127</link>
      <description>&lt;p&gt;http://www.morelos.mx.dhamma.org/&lt;/p&gt;</description>
      <guid>http://www.eduardofv.com/read_post/127</guid>
    </item>
    <item>
      <title>My Guide for Using SQL Server 2005 with Ruby on Linux through ODBC</title>
      <link>http://www.eduardofv.com/read_post/53</link>
      <description>&lt;p&gt;&lt;strong&gt;Update&lt;/strong&gt;: Links that changed were corrected&lt;/p&gt;
&lt;p&gt;First, use this Rails guide to configure ODBC, FreeTDS, RubyODBC:&lt;/p&gt;
&lt;p&gt;&lt;a href="http://wiki.rubyonrails.org/database-support/ms-sql"&gt;http://wiki.rubyonrails.org/rails/pages/HowtoConnectToMicrosoftSQLServerFromRailsOnLinux&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;I also installed the ActiveRecord ODBC Adapter and DBD-ODBC from &lt;a href="http://rubyforge.org/frs/?group_id=234&amp;amp;release_id=28765"&gt;source&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Check this for a hack when DBI can' find the driver:&lt;/p&gt;
&lt;p&gt;&lt;a href="http://www.ruby-forum.com/topic/162972"&gt;http://www.ruby-forum.com/topic/162972&lt;/a&gt;&lt;/p&gt;</description>
      <guid>http://www.eduardofv.com/read_post/53</guid>
    </item>
    <item>
      <title>Tamiflu $2,000 (US$142) en MercadoLibre... Increible</title>
      <link>http://www.eduardofv.com/read_post/126</link>
      <description>&lt;p&gt;&lt;a title="Freezed version of this link" href="../../freezer/icicle/457"&gt;http://articulo.mercadolibre.com.mx/MLM-28642272-tamiflu-caja-10-capsulas-_JM&lt;/a&gt;&lt;span class="externallink"&gt;&lt;a title="External link" href="http://articulo.mercadolibre.com.mx/MLM-28642272-tamiflu-caja-10-capsulas-_JM"&gt;&lt;br /&gt;&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;
Es increible lo que hace la gente. Dejo mi versi&amp;oacute;n congelada para referencia. Ya fue denunciado en Mercadolibre.</description>
      <guid>http://www.eduardofv.com/read_post/126</guid>
    </item>
    <item>
      <title>Visualizing the Bayes Theorem</title>
      <link>http://www.eduardofv.com/read_post/125</link>
      <description>&lt;p&gt;http://blog.oscarbonilla.com/2009/05/visualizing-bayes-theorem/&lt;/p&gt;</description>
      <guid>http://www.eduardofv.com/read_post/125</guid>
    </item>
    <item>
      <title>An Introduction to Mindfulness Meditation</title>
      <link>http://www.eduardofv.com/read_post/124</link>
      <description>&lt;p&gt;http://hivelogic.com/articles/view/an-introduction-to-mindfulness-meditation/&lt;/p&gt;</description>
      <guid>http://www.eduardofv.com/read_post/124</guid>
    </item>
    <item>
      <title>Amazing Design</title>
      <link>http://www.eduardofv.com/read_post/123</link>
      <description>&lt;p&gt;http://www.webdesignerdepot.com/2009/04/100-amazing-futuristic-design-concepts-w-wish-were-real/&lt;/p&gt;</description>
      <guid>http://www.eduardofv.com/read_post/123</guid>
    </item>
    <item>
      <title>Data &amp; Graphs | Datos y Graficas - Influenza</title>
      <link>http://www.eduardofv.com/read_post/122</link>
      <description>&lt;p&gt;All data is based on official reports as presented by the media. I'll try to get the references for older data.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Susp: Suspected Nationwide.&lt;/li&gt;
&lt;li&gt;Ratio refers to the ratio of suspected deaths of swine flu to total suspected cases on a same report.&lt;/li&gt;
&lt;li&gt;Date/Time is aproximately to when authorities made information public.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Todos los datos est&amp;aacute;n basados en cifras oficiales. Voy a tratar de recuperar las referencias de los d&amp;iacute;as anteriores.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Susp: sospechos a nivel nacional; Total:casos, Deaths:fallecimientos&lt;/li&gt;
&lt;li&gt;Ratio se refiere a la relaci&amp;oacute;n entre muertes sospechosas de H1N1 a casos sospechos dados en un mismo reporte.&lt;/li&gt;
&lt;li&gt;La fecha/hora es aproximada al momento en que fueron dados a conocer los datos oficiales&lt;/li&gt;
&lt;/ul&gt;
&lt;table style="border:border-collapse 1px solid #333" border="0"&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;th&gt;Date&lt;/th&gt;&lt;th&gt;Susp.Total&lt;/th&gt;&lt;th&gt;Susp.Deaths&lt;/th&gt;&lt;th&gt;Ratio&lt;/th&gt;&lt;th&gt;Reference&lt;/th&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;04/25/09 08:00 PM&lt;/td&gt;
&lt;td&gt;1004&lt;/td&gt;
&lt;td&gt;68&lt;/td&gt;
&lt;td&gt;6.77%&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;04/26/09 03:00 PM&lt;/td&gt;
&lt;td&gt;1300&lt;/td&gt;
&lt;td&gt;81&lt;/td&gt;
&lt;td&gt;6.23%&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;04/26/09 08:00 PM&lt;/td&gt;
&lt;td&gt;1614&lt;/td&gt;
&lt;td&gt;103&lt;/td&gt;
&lt;td&gt;6.38%&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;04/27/09 12:00 PM&lt;/td&gt;
&lt;td&gt;1995&lt;/td&gt;
&lt;td&gt;149&lt;/td&gt;
&lt;td&gt;7.47%&lt;/td&gt;
&lt;td&gt;http://www.eluniversal.com.mx/notas/593967.html&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&lt;img src="../images/casos.jpg" alt="" /&gt;&lt;br /&gt;Susp.Total | Total de casos sospechos&lt;/p&gt;
&lt;p&gt;&lt;img src="../images/deaths.jpg" alt="" /&gt;&lt;br /&gt;Susp.Deaths | Fallecimientos sospechos&lt;/p&gt;
&lt;p&gt;&lt;img src="../images/ratio.jpg" alt="" /&gt;&lt;br /&gt;Ration on reported cases | Relaci&amp;oacute;n en casos reportados&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;</description>
      <guid>http://www.eduardofv.com/read_post/122</guid>
    </item>
    <item>
      <title>More Links to Track the Swine Flu Outbreak</title>
      <link>http://www.eduardofv.com/read_post/121</link>
      <description>&lt;p&gt;Chris Anderson is maintaining this &lt;a href="http://tedchris.posterous.com/insightful-resources-for-monitoring-the-swine"&gt;master list&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;&lt;a href="http://www.flutrackers.com/forum/forumdisplay.php?f=1518"&gt;FluTrackers&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Follow &lt;a href="http://twitter.com/veratect"&gt;@Veratect&lt;/a&gt; and &lt;a href="http://twitter.com/El_Universal_Mx"&gt;ElUniversal&lt;/a&gt; on Twitter&lt;/p&gt;</description>
      <guid>http://www.eduardofv.com/read_post/121</guid>
    </item>
    <item>
      <title>Links on Swine Flu (Influenza)</title>
      <link>http://www.eduardofv.com/read_post/120</link>
      <description>&lt;p&gt;BBC:&lt;/p&gt;
&lt;p&gt;&lt;a href="http://news.bbc.co.uk/2/hi/americas/8018356.stm"&gt;News on the Mexico's Outbreak&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="http://news.bbc.co.uk/2/hi/health/8017585.stm"&gt;Q&amp;amp;A&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;New Scientist:&lt;/p&gt;
&lt;p&gt;&lt;a href="http://www.newscientist.com/article/dn17025-deadly-new-flu-virus-in-us-and-mexico-may-go-pandemic.html"&gt;http://www.newscientist.com/article/dn17025-deadly-new-flu-virus-in-us-and-mexico-may-go-pandemic.html&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;WHO Containment Plan / Plan de contenci&amp;oacute;n de la OMS:&lt;/p&gt;
&lt;p&gt;&lt;a href="http://www.who.int/csr/resources/publications/SummaryRCProtocol.pdf"&gt;http://www.who.int/csr/resources/publications/SummaryRCProtocol.pdf&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Televisa&lt;/p&gt;
&lt;p&gt;&lt;a href="http://www2.esmas.com/noticierostelevisa/epidemia-influenza-mexico/"&gt;http://www2.esmas.com/noticierostelevisa/epidemia-influenza-mexico/&lt;/a&gt;&lt;/p&gt;</description>
      <guid>http://www.eduardofv.com/read_post/120</guid>
    </item>
    <item>
      <title>Minimalsites</title>
      <link>http://www.eduardofv.com/read_post/119</link>
      <description>&lt;p&gt;http://minimalsites.com|Beautiful web design&lt;/p&gt;</description>
      <guid>http://www.eduardofv.com/read_post/119</guid>
    </item>
    <item>
      <title>The Monty Hall Problem Simulation</title>
      <link>http://www.eduardofv.com/read_post/96</link>
      <description>&lt;p&gt;I'll give a small talk about the &lt;a href="/freezer/icicle/369" title="Freezed version of this link"&gt;Bayes' Theorem&lt;/a&gt;&lt;span class="externallink"&gt;&lt;a href="http://en.wikipedia.org/wiki/Bayes%27_theorem" title="External link"&gt;&amp;nbsp;&lt;/a&gt;&lt;/span&gt; and some of it uses to my coworkers (presentation &lt;a href="../files/bayes.odp"&gt;here&lt;/a&gt;). For that, I've written a simulator of &lt;a href="/freezer/icicle/395" title="Freezed version of this link"&gt;the Monty Hall Problem&lt;/a&gt;&lt;span class="externallink"&gt;&lt;a href="http://en.wikipedia.org/wiki/Monty_hall_problem" title="External link"&gt;&amp;nbsp;&lt;/a&gt;&lt;/span&gt;, which I hope will make fun the talk. Access the simulator &lt;a href="../sandbox/monty_hall"&gt;here&lt;/a&gt;, or via the link on the Sandbox subsection at the right column.&lt;/p&gt;</description>
      <guid>http://www.eduardofv.com/read_post/96</guid>
    </item>
    <item>
      <title>I Told You So - Interview with Nassim Taleb</title>
      <link>http://www.eduardofv.com/read_post/117</link>
      <description>&lt;p&gt;&lt;a href="/freezer/icicle/307" title="Freezed version of this link"&gt;Check&lt;/a&gt;&lt;span class="externallink"&gt;&lt;a href="http://www.timesonline.co.uk/tol/money/article4938008.ece" title="External link"&gt;&amp;nbsp;&lt;/a&gt;&lt;/span&gt;. For me, one of the key teachings of The Black Swan is: the median and other measures are only relevant if the distribution is Gaussian, &lt;em&gt;and it rarely is&lt;/em&gt;.&lt;/p&gt;</description>
      <guid>http://www.eduardofv.com/read_post/117</guid>
    </item>
    <item>
      <title>Fotograf&#195;&#402;&#194;&#173;a Aerea de M&#195;&#402;&#194;&#169;xico - Aerial Photography of Mexico</title>
      <link>http://www.eduardofv.com/read_post/116</link>
      <description>&lt;p&gt;Afortunadamente &lt;a href="http://homepage.mac.com/helipilot/PhotoAlbum31.html"&gt;sigue mejorando&lt;/a&gt;, ahora con fotos del pa&amp;iacute;s&lt;/p&gt;</description>
      <guid>http://www.eduardofv.com/read_post/116</guid>
    </item>
    <item>
      <title>startuptools: Hints for Startups. RT@jennielees</title>
      <link>http://www.eduardofv.com/read_post/115</link>
      <description>&lt;p&gt;&lt;a href="/freezer/icicle/168" title="Freezed version of this link"&gt;startuptools&lt;/a&gt;&lt;span class="externallink"&gt;&lt;a href="http://startuptools.pbwiki.com/" title="External link"&gt;&amp;nbsp;&lt;/a&gt;&lt;/span&gt; is a nice compilation of tools to&amp;amp;for startups.&lt;/p&gt;</description>
      <guid>http://www.eduardofv.com/read_post/115</guid>
    </item>
    <item>
      <title>Freerisk: Financial Risk Crowdsourced</title>
      <link>http://www.eduardofv.com/read_post/114</link>
      <description>&lt;p&gt;&lt;a title="Freezed version of this link" href="../../freezer/icicle/162"&gt;Interesting new project by Toby Segaran&lt;/a&gt;&lt;span class="externallink"&gt;&lt;a title="External link" href="http://blog.kiwitobes.com/?p=76"&gt;&amp;nbsp;&lt;/a&gt;&lt;/span&gt;. This is a quite specialized area and knowledge is pretty closed, let's see how crowdsourcing helps.&lt;/p&gt;</description>
      <guid>http://www.eduardofv.com/read_post/114</guid>
    </item>
    <item>
      <title>Awesome music synthetizer</title>
      <link>http://www.eduardofv.com/read_post/113</link>
      <description>http://lab.andre-michelle.com/tonematrix</description>
      <guid>http://www.eduardofv.com/read_post/113</guid>
    </item>
    <item>
      <title>Trying Heroku</title>
      <link>http://www.eduardofv.com/read_post/86</link>
      <description>&lt;p&gt;I'm trying &lt;a href="/freezer/icicle/9" title="Freezed version of this link"&gt;Heroku&lt;/a&gt;&lt;span class="externallink"&gt;&lt;a href="http://www.heroku.com/" title="External link"&gt;&amp;nbsp;&lt;/a&gt;&lt;/span&gt; with &lt;a href="/freezer/icicle/12" title="Freezed version of this link"&gt;the same app that runs this blog.&lt;/a&gt;&lt;span class="externallink"&gt;&lt;a href="http://eduardofv-test.herokugarden.com" title="External link"&gt;&amp;nbsp;&lt;/a&gt;&lt;/span&gt; And it's great! In no more that 2 hours I get the app up and running with few workarounds needed.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;I had some problems with the tar.gz used to import. It might because a) SVN files and dirs, which I latetly removed, or b) the tarball created on Windows. But I swittched to the Git import method on Ubuntu and everything uploaded ok.&lt;/li&gt;
&lt;li&gt;I had Rails 2.1 freezed on vendor/, which after some &lt;a href="/freezer/icicle/18" title="Freezed version of this link"&gt;googling&lt;/a&gt;&lt;span class="externallink"&gt;&lt;a href="http://www.jsiegel.com/2008/10/heroku-databaseyml-and-no-such-file-to.html" title="External link"&gt;&amp;nbsp;&lt;/a&gt;&lt;/span&gt; I found it has to be deleted, and comment the line that searches for a specific version of rails. &lt;br /&gt;&lt;/li&gt;
&lt;li&gt;I also had to remove the freezed version of Ferret and use the one included in Heroku.&lt;/li&gt;
&lt;li&gt;The only problem which turned to be impossible to solve was the import process of the data. I used the YAML export as described in the documentation but it failed and sent a message to technical support. My db is MySQL so the problem may be there. Let's see what the guys at Heroku say.&lt;/li&gt;
&lt;/ul&gt;</description>
      <guid>http://www.eduardofv.com/read_post/86</guid>
    </item>
    <item>
      <title>Google AppEngine with Telcel</title>
      <link>http://www.eduardofv.com/read_post/112</link>
      <description>&lt;p&gt;&lt;a href="/freezer/icicle/20" title="Freezed version of this link"&gt;Telcel&lt;/a&gt;&lt;span class="externallink"&gt;&lt;a href="http://www.telcel.com/" title="External link"&gt;&amp;nbsp;&lt;/a&gt;&lt;/span&gt; is the dominant cell phone carrier in M&amp;eacute;xico. &lt;a href="/freezer/icicle/28" title="Freezed version of this link"&gt;Google AppEngine&lt;/a&gt;&lt;span class="externallink"&gt;&lt;a href="http://code.google.com/appengine/" title="External link"&gt;&amp;nbsp;&lt;/a&gt;&lt;/span&gt; uses a SMS to confirm the registration process but Telcel it's not supported (I can figure out why, since Telcel is not known for it's openess). So that leaved us trying to get some friend with a  Telef&amp;oacute;nica phone to use it to register on AppEngine... until today. I filled the form to report a failure on the SMS service and got a reply from Google saying that they have activated my account. Cool and fast!&lt;/p&gt;</description>
      <guid>http://www.eduardofv.com/read_post/112</guid>
    </item>
    <item>
      <title>Haik&#195;&#402;&#194;&#186;</title>
      <link>http://www.eduardofv.com/read_post/102</link>
      <description>&lt;p&gt;&lt;em&gt;Agua antig&amp;uuml;a&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;&lt;em&gt;una rana salta&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;&lt;em&gt;luego, suena&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; -Basho - mi interpretaci&amp;oacute;n&lt;/p&gt;</description>
      <guid>http://www.eduardofv.com/read_post/102</guid>
    </item>
    <item>
      <title>Ten Papers on Information Retrieval and Search</title>
      <link>http://www.eduardofv.com/read_post/111</link>
      <description>&lt;p&gt;http://www.scienceforseo.com/information-retrieval/10-papers-you-need-to-read/|To check&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;</description>
      <guid>http://www.eduardofv.com/read_post/111</guid>
    </item>
    <item>
      <title>JRuby on Rails on Google App Engine</title>
      <link>http://www.eduardofv.com/read_post/110</link>
      <description>&lt;p&gt;http://olabini.com/blog/2009/04/jruby-on-rails-on-google-app-engine/|Cool, maybe will move there&lt;/p&gt;</description>
      <guid>http://www.eduardofv.com/read_post/110</guid>
    </item>
    <item>
      <title>MiIslita</title>
      <link>http://www.eduardofv.com/read_post/109</link>
      <description>&lt;p&gt;http://www.miislita.com/|Information Retieval, Data Mininning and Search Engines&lt;/p&gt;</description>
      <guid>http://www.eduardofv.com/read_post/109</guid>
    </item>
    <item>
      <title>Understanding TFIDF</title>
      <link>http://www.eduardofv.com/read_post/108</link>
      <description>&lt;p&gt;http://irthoughts.wordpress.com/2008/07/07/understanding-tfidf/&lt;/p&gt;</description>
      <guid>http://www.eduardofv.com/read_post/108</guid>
    </item>
    <item>
      <title>Startup Marketing Tactical Tips</title>
      <link>http://www.eduardofv.com/read_post/107</link>
      <description>&lt;p&gt;http://onstartups.com/home/tabid/3339/bid/9008/Startup-Marketing-Tactical-Tips-From-The-Trenches.aspxz&lt;/p&gt;</description>
      <guid>http://www.eduardofv.com/read_post/107</guid>
    </item>
    <item>
      <title>Cool C64 Laptop</title>
      <link>http://www.eduardofv.com/read_post/106</link>
      <description>&lt;p&gt;Complete story &lt;a href="http://benheck.com/04-05-2009/commodore-64-original-hardware-laptop"&gt;here&lt;/a&gt;&lt;/p&gt;
&lt;div style="text-align:center"&gt;
&lt;object width="425" height="344"&gt;&lt;param name="movie" value="http://www.youtube.com/v/0AwfyBzeidk&amp;color1=0xb1b1b1&amp;color2=0xcfcfcf&amp;hl=en&amp;feature=player_embedded&amp;fs=1"&gt;&lt;/param&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;/param&gt;&lt;embed src="http://www.youtube.com/v/0AwfyBzeidk&amp;color1=0xb1b1b1&amp;color2=0xcfcfcf&amp;hl=en&amp;feature=player_embedded&amp;fs=1" type="application/x-shockwave-flash" allowfullscreen="true" width="425" height="344"&gt;&lt;/embed&gt;&lt;/object&gt;
&lt;/div&gt;</description>
      <guid>http://www.eduardofv.com/read_post/106</guid>
    </item>
    <item>
      <title>Easy AI with Python</title>
      <link>http://www.eduardofv.com/read_post/105</link>
      <description>&lt;p&gt;http://us.pycon.org/2009/conference/schedule/event/71/&lt;/p&gt;</description>
      <guid>http://www.eduardofv.com/read_post/105</guid>
    </item>
    <item>
      <title>Parsing CSV with Double Quotes using Regular Expressions, C#</title>
      <link>http://www.eduardofv.com/read_post/104</link>
      <description>&lt;p&gt;I'm pretty sure that code like &lt;a href="http://www.codeproject.com/KB/cs/parsing_csv.aspx"&gt;this&lt;/a&gt; adapts better to many conditions, but for a simple, fast way of parsing a CSV with values enclosed by double quotes, use Regex:&lt;/p&gt;
&lt;p&gt;
&lt;pre&gt;
using System;
using System.Text.RegularExpressions;

public class Program 
{
	public static void Main()
	{
 	  Show("(\"[^\"]*\")","\"hola\",\"todo,el\",\"mundo\"");
	}

	public static void Show(string r, string s)
	{
	  var ms = Regex.Matches(s,r);
	  foreach(Match m in ms)
	  {
		Console.WriteLine("Groups[0]:{0}",m.Groups[0]);
		Console.WriteLine("Groups[1]:{0}",m.Groups[1]);
	  }	
	}	
}

&lt;/pre&gt;
&lt;/p&gt;</description>
      <guid>http://www.eduardofv.com/read_post/104</guid>
    </item>
    <item>
      <title>ASP.NET Test Forms from Remote</title>
      <link>http://www.eduardofv.com/read_post/103</link>
      <description>&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;pre&gt;&lt;span&gt;&amp;lt;webServices&amp;gt;&lt;br /&gt;&amp;nbsp; &amp;lt;protocols&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;add name="HttpPost" /&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;add name="HttpGet" /&amp;gt;&lt;br /&gt;&amp;nbsp; &amp;lt;/protocols&amp;gt;&lt;br /&gt;&amp;lt;/webServices&amp;gt;&lt;/span&gt;&lt;/pre&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;a href="/freezer/icicle/117" title="Freezed version of this link"&gt;Thanks Mark Brown&lt;/a&gt;&lt;span class="externallink"&gt;&lt;a href="http://weblogs.asp.net/markbrown/archive/2004/05/18/134212.aspx" title="External link"&gt;&amp;nbsp;&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;</description>
      <guid>http://www.eduardofv.com/read_post/103</guid>
    </item>
    <item>
      <title>Chrome usage, a comparision US-MX</title>
      <link>http://www.eduardofv.com/read_post/39</link>
      <description>&lt;p&gt;&lt;strong&gt;Update 2&lt;/strong&gt;: Data from Feb.-March'09&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Update&lt;/strong&gt;: I've added a more recent (January '09) statistic at the end.&lt;/p&gt;
&lt;p&gt;To complement &lt;a href="read_post/36-Chrome-4-on-OCCMundial-com"&gt;my last post on the usage of Chrome&lt;/a&gt;, I'm posting data from Net Applications referenced by &lt;a href="http://www.computerworld.com/action/article.do?command=viewArticleBasic&amp;amp;articleId=9115341"&gt;Computerworld&lt;/a&gt;, and our data:&lt;/p&gt;
&lt;p style="text-align: left;"&gt;&lt;span style="font-weight: bold;"&gt;Net Applications (presumably worldwide)&lt;/span&gt;&lt;/p&gt;
&lt;table border="1"&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;th&gt;Week Starting&lt;/th&gt;&lt;th&gt;Aug.24&lt;/th&gt;&lt;th&gt;Aug.31&lt;/th&gt;&lt;th&gt;Sept.7&lt;/th&gt;&lt;th&gt;Sept.15&lt;/th&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;IE&lt;/td&gt;
&lt;td&gt;72.39%&lt;/td&gt;
&lt;td&gt;71.03%&lt;/td&gt;
&lt;td&gt;71.24%&lt;/td&gt;
&lt;td&gt;71.48%&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Firefox&lt;/td&gt;
&lt;td&gt;19.54%&lt;/td&gt;
&lt;td&gt;19.78%&lt;/td&gt;
&lt;td&gt;19.35%&lt;/td&gt;
&lt;td&gt;19.42%&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Safari&lt;/td&gt;
&lt;td&gt;6.27%&lt;/td&gt;
&lt;td&gt;6.67%&lt;/td&gt;
&lt;td&gt;6.95%&lt;/td&gt;
&lt;td&gt;6.73%&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Chrome&lt;/td&gt;
&lt;td&gt;----&lt;/td&gt;
&lt;td&gt;0.67%&lt;/td&gt;
&lt;td&gt;0.85%&lt;/td&gt;
&lt;td&gt;0.77%&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p style="text-align: left;"&gt;&lt;span style="font-weight: bold;"&gt;&lt;a href="http://www.occ.com.mx"&gt;OCCMundial.com&lt;/a&gt; (mostly M&amp;eacute;xico)&lt;/span&gt;&lt;/p&gt;
&lt;table border="1"&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;th&gt;Week Starting&lt;/th&gt;&lt;th&gt;Aug.24&lt;/th&gt;&lt;th&gt;Aug.31&lt;/th&gt;&lt;th&gt;Sept.7&lt;/th&gt;&lt;th&gt;Sept.15&lt;/th&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;IE&lt;/td&gt;
&lt;td&gt;90.88%&lt;/td&gt;
&lt;td&gt;90.69%&lt;/td&gt;
&lt;td&gt;90.60%&lt;/td&gt;
&lt;td&gt;90.39%&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Firefox&lt;/td&gt;
&lt;td&gt;7.46%&lt;/td&gt;
&lt;td&gt;7.32%&lt;/td&gt;
&lt;td&gt;7.22%&lt;/td&gt;
&lt;td&gt;7.38%&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Safari&lt;/td&gt;
&lt;td&gt;1.27%&lt;/td&gt;
&lt;td&gt;1.26%&lt;/td&gt;
&lt;td&gt;1.25%&lt;/td&gt;
&lt;td&gt;1.32%&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Chrome&lt;/td&gt;
&lt;td&gt;----&lt;/td&gt;
&lt;td&gt;0.35%&lt;/td&gt;
&lt;td&gt;0.54%&lt;/td&gt;
&lt;td&gt;0.50%&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p style="text-align: left;"&gt;&lt;strong&gt;Update:&lt;/strong&gt;&lt;/p&gt;
&lt;p style="text-align: left;"&gt;From August to January IE is clearly loosing share to Firefox and to a lesser extent Safari and Chrome.&lt;/p&gt;
&lt;p style="text-align: left;"&gt;Data from Google Analytics for Dec. 22, 2008 to Jan. 21 2009&lt;/p&gt;
&lt;table border="1"&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;th&gt;Dec.22 to Jan 21&lt;/th&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;IE&lt;/td&gt;
&lt;td&gt;87.48%&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Firefox&lt;/td&gt;
&lt;td&gt;9.62%&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Safari&lt;/td&gt;
&lt;td&gt;1.66%&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Chrome&lt;/td&gt;
&lt;td&gt;
&lt;p&gt;0.72%&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Opera&lt;/td&gt;
&lt;td&gt;
&lt;p&gt;0.44%&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p style="text-align: left;"&gt;Data from Google Analytics for Feb. 23, 2009 to March 25 2009&lt;/p&gt;
&lt;table border="1"&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;th&gt;Feb. 23 to March 25, 2009&lt;/th&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;IE&lt;/td&gt;
&lt;td&gt;86.82%&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Firefox&lt;/td&gt;
&lt;td&gt;10.10%&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Safari&lt;/td&gt;
&lt;td&gt;1.74%&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Chrome&lt;/td&gt;
&lt;td&gt;
&lt;p&gt;0.78%&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Opera&lt;/td&gt;
&lt;td&gt;
&lt;p&gt;0.46%&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;</description>
      <guid>http://www.eduardofv.com/read_post/39</guid>
    </item>
    <item>
      <title>The Zen of Creativity</title>
      <link>http://www.eduardofv.com/read_post/101</link>
      <description>&lt;p&gt;http://www.amazon.com/Zen-Creativity-Cultivating-Your-Artistic/dp/0345466330|Zen and Art, and Zen through art.|&lt;/p&gt;
&lt;p style="text-align: center;"&gt;&lt;img src="http://ecx.images-amazon.com/images/I/51NA1GZV6RL._BO2,204,203,200_PIsitb-sticker-arrow-click,TopRight,35,-76_AA240_SH20_OU01_.jpg" alt="Book Cover" width="240" height="240" /&gt;&lt;/p&gt;
&lt;p style="text-align: center;"&gt;&lt;em&gt;John Daido Loori&lt;/em&gt;&lt;/p&gt;
&lt;p style="text-align: left;"&gt;I choosed this book for it's compelling title. Although I initially thought&amp;nbsp; that it would be more oriented to show you&amp;nbsp; how to improve your creative skills, it actually guides you to Zen Buddhism through Art. And it's very good at it. Written on a autobiographical way, John explains the basic principles of Zen and how your own artistic&amp;nbsp; and self-expression search can lead you to the discover of the truths of life. Goes between the practice, with even some exercises, to the basics of zazen and the Zen principles, a description of the Zen Arts and the Zen aesthetic.&lt;/p&gt;</description>
      <guid>http://www.eduardofv.com/read_post/101</guid>
    </item>
    <item>
      <title>The Black Swan</title>
      <link>http://www.eduardofv.com/read_post/100</link>
      <description>&lt;p&gt;http://www.amazon.com/Black-Swan-Impact-Highly-Improbable/dp/1400063515|Randomness and Uncertainity|&lt;/p&gt;
&lt;p style="text-align: center;"&gt;&lt;img src="http://ecx.images-amazon.com/images/I/41whNBCgGjL._BO2,204,203,200_PIsitb-sticker-arrow-click,TopRight,35,-76_AA240_SH20_OU01_.jpg" alt="The Black Swan Cover" width="240" height="240" /&gt;&lt;/p&gt;
&lt;p style="text-align: center;"&gt;Nassim Nicholas Taleb&lt;/p&gt;
&lt;p style="text-align: left;"&gt;Excellent. A thoughtful view of the uncertainities of the worlds we live in. Leaves many points to think about and hopefully I'll write about some of them soon. A definitively future reread.&lt;/p&gt;</description>
      <guid>http://www.eduardofv.com/read_post/100</guid>
    </item>
    <item>
      <title>ActiveRecord SqlServer Adapter [Rails,Ruby]</title>
      <link>http://www.eduardofv.com/read_post/99</link>
      <description>&lt;p&gt;http://github.com/akitaonrails/activerecord-sqlserver-adapter/tree/master&lt;/p&gt;</description>
      <guid>http://www.eduardofv.com/read_post/99</guid>
    </item>
    <item>
      <title>An Intuitive Explanation of Bayes' Theorem</title>
      <link>http://www.eduardofv.com/read_post/48</link>
      <description>&lt;p&gt;&lt;a href="http://yudkowsky.net/rational/bayes"&gt;http://yudkowsky.net/rational/bayes&lt;/a&gt;|Explanation on Bayes' Theorem&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Update&lt;/strong&gt;: I've just revisited it and is awesome. A great help to understand the problem and maybe even find a way of thinking Bayesian &lt;em&gt;intuitively&lt;/em&gt;.&lt;/p&gt;</description>
      <guid>http://www.eduardofv.com/read_post/48</guid>
    </item>
    <item>
      <title>Color Scheme Designer</title>
      <link>http://www.eduardofv.com/read_post/98</link>
      <description>&lt;p&gt;http://colorschemedesigner.com|Very nice...&lt;/p&gt;</description>
      <guid>http://www.eduardofv.com/read_post/98</guid>
    </item>
    <item>
      <title>Yet Another Machine Learning Blog</title>
      <link>http://www.eduardofv.com/read_post/97</link>
      <description>&lt;p&gt;&lt;a href="http://yamlb.wordpress.com/"&gt;http://yamlb.wordpress.com/&lt;/a&gt;|To check...&lt;/p&gt;</description>
      <guid>http://www.eduardofv.com/read_post/97</guid>
    </item>
    <item>
      <title>Four from Kandinsky, and Video</title>
      <link>http://www.eduardofv.com/read_post/95</link>
      <description>&lt;p&gt;Para la Experiencia de Vida en el sal&amp;oacute;n de Andrea, con cari&amp;ntilde;o...&lt;/p&gt;
&lt;div style="text-align:center"&gt;
&lt;object width="425" height="344"&gt;&lt;param name="movie" value="http://www.youtube.com/v/MhW0p1O14OA&amp;hl=es&amp;fs=1"&gt;&lt;/param&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;/param&gt;&lt;param name="allowscriptaccess" value="always"&gt;&lt;/param&gt;&lt;embed src="http://www.youtube.com/v/MhW0p1O14OA&amp;hl=es&amp;fs=1" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="344"&gt;&lt;/embed&gt;&lt;/object&gt;
&lt;a href="../images/kandinsky1.jpg"&gt; &lt;img style="width: 500px;" src="../images/kandinsky1.jpg" alt="" /&gt; &lt;/a&gt;&lt;br /&gt; &lt;a href="../images/kandinsky2.jpg"&gt; &lt;img style="width: 500px;" src="../images/kandinsky2.jpg" alt="" /&gt; &lt;/a&gt;&lt;br /&gt; &lt;a href="../images/kandinsky3.jpg"&gt; &lt;img style="width: 500px;" src="../images/kandinsky3.jpg" alt="" /&gt; &lt;/a&gt;&lt;br /&gt; &lt;a href="../images/kandinsky4.jpg"&gt; &lt;img style="width: 500px;" src="../images/kandinsky4.jpg" alt="" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;</description>
      <guid>http://www.eduardofv.com/read_post/95</guid>
    </item>
    <item>
      <title>Books and Music That Make You Dumb</title>
      <link>http://www.eduardofv.com/read_post/94</link>
      <description>&lt;p&gt;http://blogs.wsj.com/digits/2009/02/27/books-and-music-that-make-you-dumb/?mod=yhoofront|Linking to the polemic&lt;/p&gt;
&lt;p&gt;Watch the &lt;a href="http://news.ycombinator.com/item?id=500919"&gt;discussion at Hacker News&lt;/a&gt;. Check the mirrors for &lt;a href="http://4.bp.blogspot.com/_j0_WBUT8_cw/R89cgrH01-I/AAAAAAAAADY/_aUS3tqara8/s1600-h/booksthatmakeyoudumb"&gt;books&lt;/a&gt; and &lt;a href="http://3.bp.blogspot.com/_j0_WBUT8_cw/R89cubH01_I/AAAAAAAAADg/uS2GmyCaH-o/s1600-h/musicthatmakesyoudumb"&gt;music&lt;/a&gt;.&lt;/p&gt;</description>
      <guid>http://www.eduardofv.com/read_post/94</guid>
    </item>
    <item>
      <title>Warning Signs in Experimental Design and Interpretation</title>
      <link>http://www.eduardofv.com/read_post/93</link>
      <description>&lt;p&gt;http://norvig.com/experiment-design.html|by Peter Norvig - A Classic&lt;/p&gt;
&lt;p&gt;Related to this &lt;a href="../read_post/48-An-Intuitive-Explanation-of-Bayes-Theorem"&gt;post&lt;/a&gt; on the Bayes' theorem&lt;/p&gt;</description>
      <guid>http://www.eduardofv.com/read_post/93</guid>
    </item>
    <item>
      <title>No Productive Mediocrity - Leonardo</title>
      <link>http://www.eduardofv.com/read_post/92</link>
      <description>&lt;p&gt;http://chronicle.com/temp/reprint.php?id=zs61txc4kwr4kd1q1rjbfxt41952gdmf|How to Procrastinate Like Leonardo da Vinci&lt;/p&gt;</description>
      <guid>http://www.eduardofv.com/read_post/92</guid>
    </item>
    <item>
      <title>Odd Crash of Opera/Firefox 3.0 on Ubuntu 8.10</title>
      <link>http://www.eduardofv.com/read_post/91</link>
      <description>&lt;p&gt;For a time my Firefox was crashing and I couldn't find why or pinpoint which pages made it crash since usually once Firefox was reloaded the pages could be opened. I googled for a while and many reports indicated a problem with the flash plugin and offered several workaround: from reinstalling the adobe plugin to block any flash content. Unfortunately, any of those worked. I got even more puzzled when I started using Opera with similar results. I found &lt;a href="https://bugs.launchpad.net/ubuntu/+source/firefox-3.0/+bug/291843"&gt;a bug report&lt;/a&gt; saying that deleting the wins option on /etc/nsswitch.conf may help. Now Firefox seems pretty stable. I'll try to figure out what's happening here and post any update here.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;pre&gt;
/etc/nsswitch.conf
------------------
#editado por el supuesto bug de firefox https://bugs.launchpad.net/ubuntu/+source/firefox-3.0/+bug/291843
#hosts:          files mdns4_minimal [NOTFOUND=return] wins dns mdns4
hosts:          files mdns4_minimal [NOTFOUND=return] dns mdns4
&lt;/pre&gt;</description>
      <guid>http://www.eduardofv.com/read_post/91</guid>
    </item>
    <item>
      <title>R language</title>
      <link>http://www.eduardofv.com/read_post/90</link>
      <description>&lt;p&gt;I've just know &lt;a href="http://www.r-project.org/index.html"&gt;R&lt;/a&gt; and I'm amazed. Looks great and simple to use in our statistical analysis tasks of the new algorithms we're working on. I've briefly used &lt;a href="http://www.gnu.org/software/octave/"&gt;Octave&lt;/a&gt;-Matlab, Python with Numpy and plain Ruby with gnuplot, but R might be what I was looking for.&lt;/p&gt;</description>
      <guid>http://www.eduardofv.com/read_post/90</guid>
    </item>
    <item>
      <title>Installing Monodevelop Beta 2 (1.9.2) from sources in Ubuntu 8.10</title>
      <link>http://www.eduardofv.com/read_post/89</link>
      <description>&lt;p&gt;Log on my experience installing Monodevelop Beta 2 from sources in Ubuntu 8.10 with Mono 2.2 already installed (the bolded steps are the ones that actually worked).&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Install gtk-sharp 2.8.5 with &lt;pre&gt;configure --prefix=/usr&lt;/pre&gt; - FAILED on make from some missing pango, glib depencies&amp;nbsp;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Install mono-addins --prefix=/usr --enable-gui&amp;nbsp; - OK&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;gtk-sharp 2.8.5 -- FAILS just as the previous&lt;/li&gt;
&lt;li&gt;gnome-sharp-2.20 -- Shows some missing gapi-2.0 dependency. Decided try to fix this&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Install gtk-sharp-2.12.7 (ignoring some missing things) - OK&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;Uninstall monodoc de gdeb - OK (after that I found that was not necessary)&lt;/li&gt;
&lt;li&gt;Install monodoc 2.0 --prefix=/usr - FAILS to some missing methods. Googling it seems that monodoc in now integrated with mono 2.2 but couldn't find it. Decided to &lt;strong&gt;install monodoc 2.0 from apt-get&lt;/strong&gt; again&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Install monodevelop-1.9.2 with ./configure --prefix=`pkg-config --variable=prefix mono` - OK&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;</description>
      <guid>http://www.eduardofv.com/read_post/89</guid>
    </item>
    <item>
      <title>Accessing a Microsoft SQL Server 2005 Server from Ubuntu 8.10 via ODBC / FreeTDS</title>
      <link>http://www.eduardofv.com/read_post/88</link>
      <description>&lt;p&gt;&lt;strong&gt;Update&lt;/strong&gt;: Check the encoding conversion note for FreeTDS&lt;/p&gt;
&lt;p&gt;Following &lt;a href="../read_post/53-My-Guide-for-Using-SQL-Server-2005-with-Ruby-on-Linux-through-ODBC"&gt;this post&lt;/a&gt; I'm detailing the process I've done (took me less than 10 minutes):&lt;/p&gt;
&lt;p&gt;Set up variables on ~/.bashrc - no se si quedaron bien, las hice como root&lt;/p&gt;
&lt;pre&gt; export ODBCINI=/etc/odbc.ini
 export ODBCSYSINI=/etc
 export FREETDSCONF=/etc/freetds/freetds.conf
&lt;/pre&gt;
&lt;p&gt;All of the following can be installed via apt-get:&lt;/p&gt;
&lt;p&gt;install unixodbc&lt;br /&gt; install tdsodbc&lt;br /&gt; install unixodbc-dev&lt;br /&gt; install freetds-dev&lt;br /&gt; &lt;br /&gt; configure /etc/freetds/freetds.conf (check the client charset section since FreeTDS uses ISO-8859-1 by default and it's very likely you want to change it (&lt;a href="/freezer/icicle/120" title="Freezed version of this link"&gt;check here&lt;/a&gt;&lt;span class="externallink"&gt;&lt;a href="http://www.freetds.org/userguide/freetdsconf.htm" title="External link"&gt;&amp;nbsp;&lt;/a&gt;&lt;/span&gt;):&lt;/p&gt;
&lt;pre&gt;[MY_SERVER_NAME]
    host = 192.168.0.YY
    port = 1433
    tds version = 8.0 #Checar si se usan otras versiones: www.freetds.org
    client charset = UTF-8
&lt;/pre&gt;
&lt;p&gt;install sqsh&lt;br /&gt;test with&lt;/p&gt;
&lt;pre&gt;sqsh -S DB -U user -P pass
&lt;/pre&gt;
&lt;p&gt;configure /etc/odbc.ini&lt;/p&gt;
&lt;pre&gt;[MY-SERVER-NAME]
Driver&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; = FreeTDS
Description &amp;nbsp;&amp;nbsp;&amp;nbsp; = Conexion a Sql  con FreeTDS / ODBC
Trace &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; = No
Servername&amp;nbsp;&amp;nbsp;&amp;nbsp; = MY-SERVER-NAME&lt;br /&gt;Database&amp;nbsp;&amp;nbsp;&amp;nbsp; = MY-DATABASE-NAME&lt;/pre&gt;
&lt;p&gt;&lt;br /&gt;&lt;br /&gt;configurar /etc/odbcinst.ini&lt;/p&gt;
&lt;pre&gt;[MY-SERVER-NAME]
Driver&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; = FreeTDS
Description &amp;nbsp;&amp;nbsp;&amp;nbsp; = Conexion a Sql  con FreeTDS / ODBC
Trace &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; = No
Servername&amp;nbsp;&amp;nbsp;&amp;nbsp; = MY-SERVER-NAME
Database&amp;nbsp;&amp;nbsp;&amp;nbsp; = MY-DATABASE-NAME&lt;/pre&gt;
&lt;p&gt;&lt;br /&gt;test&lt;/p&gt;
&lt;pre&gt;isql DB SA PASS&lt;/pre&gt;</description>
      <guid>http://www.eduardofv.com/read_post/88</guid>
    </item>
    <item>
      <title>the-golden-grid</title>
      <link>http://www.eduardofv.com/read_post/87</link>
      <description>&lt;p&gt;http://code.google.com/p/the-golden-grid/&lt;/p&gt;</description>
      <guid>http://www.eduardofv.com/read_post/87</guid>
    </item>
    <item>
      <title>Tokyo Cabinet: Beyond Key-Value Store</title>
      <link>http://www.eduardofv.com/read_post/85</link>
      <description>&lt;p&gt;&lt;a href="http://www.igvita.com/2009/02/13/tokyo-cabinet-beyond-key-value-store/"&gt;http://www.igvita.com/2009/02/13/tokyo-cabinet-beyond-key-value-store/&lt;/a&gt;|Nice description of this Key-Value store project for Ruby&lt;/p&gt;</description>
      <guid>http://www.eduardofv.com/read_post/85</guid>
    </item>
    <item>
      <title>How Not To Sort By Average Rating</title>
      <link>http://www.eduardofv.com/read_post/84</link>
      <description>&lt;p&gt;&lt;a href="http://www.evanmiller.org/how-not-to-sort-by-average-rating.html"&gt;http://www.evanmiller.org/how-not-to-sort-by-average-rating.html&lt;/a&gt;&lt;/p&gt;</description>
      <guid>http://www.eduardofv.com/read_post/84</guid>
    </item>
    <item>
      <title>How ASP.NET fails - Ready to Quit ASP.NET</title>
      <link>http://www.eduardofv.com/read_post/83</link>
      <description>&lt;p&gt;&lt;a href="http://stefan.rusek.org/Posts/Ready-to-Quit-ASP-NET/16/"&gt;This post&lt;/a&gt; by Stefan Rusek express exactly how I feel about ASP.NET from the UI/Web perspective. (Check also the &lt;a href="http://news.ycombinator.com/item?id=477874"&gt;Hacker News thread&lt;/a&gt; on it)&lt;/p&gt;
&lt;p&gt;I would add that, over the years, the whole .NET framework has grown to a over-engineered &lt;strong&gt;beast&lt;/strong&gt;. It's coherent and consistent, but still a beast. So several parts of the framework simply goes too far on the Object Orientation and builds a excess of classes, realtions, patterns and so on, sometimes making very painful the decision on how to correctly implement things. That's why you feel so liberated when trying some other alternatives like &lt;strong&gt;Ruby on Rails&lt;/strong&gt; (which, I have to say, seems to be growing too much recently).&lt;/p&gt;
&lt;p&gt;Using ASP.NET also drives you to blindly use those architectures, patterns and practices, that Microsoft loves, without realizing that usually simpler is better, and without giving a second thought on how and why you are doing what you are doing (LINQ, three tier architecture, and so on). I've seen horrible real-world examples of this.&lt;/p&gt;
&lt;p&gt;On the other hand, the .NET framework has some very interesting features like being a complete infrastucture, and C# is evolving in very nice ways, like the new dynamic features. Good things can be done with .NET, but you have to question&amp;nbsp; the "correct ways" as presented by Microsoft.&lt;/p&gt;</description>
      <guid>http://www.eduardofv.com/read_post/83</guid>
    </item>
    <item>
      <title>CSS Palette: Watch the Palette within a CSS</title>
      <link>http://www.eduardofv.com/read_post/82</link>
      <description>&lt;h3&gt;&lt;a href="../../sandbox/css_pal"&gt;CSS Palette&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;I've written a quick toy to easily watch the colors used on a CSS. You pass the URL of an online CSS and it will parse the colors and build a palette for you. It's useful if you want to reduce the amount of colors you're using by spotting the almost duplicates that usually arise when writting code.&lt;/p&gt;
&lt;h4&gt;Color "sorting"&lt;/h4&gt;
&lt;p&gt;To display the colors in a nice order I wrote a "compare" color function to use with the sort method of the Array. It uses a basic &lt;a href="http://en.wikipedia.org/wiki/Color_quantization"&gt;color quantization&lt;/a&gt; by calculating the euclidean distance between the color and a origin at (0,0,0) black. Ruby code:&lt;/p&gt;
&lt;pre&gt;  #compares colors using the position &lt;br /&gt;  def compare_colors(a,b)&lt;br /&gt;    color_position(rgb(b)) &amp;lt;=&amp;gt; color_position(rgb(a))&lt;br /&gt;  end&lt;br /&gt;&lt;br /&gt;  #returns the color "position" relative to (0,0,0) as euclidean distance&lt;br /&gt;  def color_position(rgb)&lt;br /&gt;    #Ruby 1.8.7 ya tiene reduce &lt;br /&gt;    #Math.sqrt(rgb.reduce{|dist,comp| dist+=comp*comp})&lt;br /&gt;    dist = 0&lt;br /&gt;    rgb.each{|comp| dist+=comp*comp}&lt;br /&gt;    Math.sqrt(dist)&lt;br /&gt;  end&lt;br /&gt;&lt;/pre&gt;
&lt;h4&gt;One-line parse of the colors of the CSS&lt;/h4&gt;
&lt;p&gt;Once the CSS is downloaded with the standard net/http methods, it takes only one line to parse it and build an array of distinct colors (Ruby functional style is awesome):&lt;/p&gt;
&lt;pre&gt;   r.body.downcase.scan(/(#[0-9a-f]{3,6};)/mi).flatten.uniq&lt;br /&gt;&lt;/pre&gt;
&lt;h4&gt;Generating the palette using DIVs&lt;/h4&gt;
&lt;p&gt;I wanted to show the colors as a single strip of squares that would resize with the browser window. This was a bit tricky because positioning DIV side by side had to be done by creating nested DIVs: the first one is displayed inline which makes possible to wrap the with the size of the window. The second div is displayed normaly as block and has a fixed size of 100x100px:&lt;/p&gt;
&lt;pre&gt;    &amp;lt;div style="display:inline;width:100%;height:100%"&amp;gt;&lt;br /&gt;        &amp;lt;div style="border:1px solid #000;color:&amp;lt;%="#{col[1]}"-%&amp;gt;;background:&amp;lt;%="#{col[0]}"-%&amp;gt;;width:100px;height:100px;float:left"&amp;gt;&amp;lt;%="#{col[0]}"-%&amp;gt;&lt;br /&gt;        &amp;lt;/div&amp;gt;&lt;br /&gt;    &amp;lt;/div&amp;gt;&lt;br /&gt;&lt;/pre&gt;
&lt;p&gt;The &lt;a href="../../sandbox/css_pal"&gt;CSS Palette&lt;/a&gt; is permalinked on the rightbar.&lt;/p&gt;</description>
      <guid>http://www.eduardofv.com/read_post/82</guid>
    </item>
    <item>
      <title>Caching on Rails</title>
      <link>http://www.eduardofv.com/read_post/81</link>
      <description>&lt;p&gt;http://www.railsenvy.com/2007/2/28/rails-caching-tutorial|How current this info is?&lt;/p&gt;</description>
      <guid>http://www.eduardofv.com/read_post/81</guid>
    </item>
    <item>
      <title>Blogging desde Wii</title>
      <link>http://www.eduardofv.com/read_post/80</link>
      <description>Escribiendo desde el Wii. Bien en general solo hay que desactivar el Tinymce.</description>
      <guid>http://www.eduardofv.com/read_post/80</guid>
    </item>
    <item>
      <title>ImageMagick and RMagick on Vista</title>
      <link>http://www.eduardofv.com/read_post/79</link>
      <description>&lt;p&gt;The current version of the Ruby Gem&amp;nbsp;&lt;span style="font-weight: bold;"&gt;RMagick&amp;nbsp;&lt;/span&gt;(2.9.0-x86-mswin32) comes bundled with&amp;nbsp;&lt;span style="font-weight: bold;"&gt;ImageMagick&amp;nbsp;&lt;/span&gt;installer 6.4.8-6-Q8-windows-dll which is pretty new. I have had some problems after installing both as the instructions indicated with my rails app as Mongrel throwed some CORE_RL dll not found, so I uninstalled both and reinstalled ImageMagick running the exe &lt;span style="font-weight: bold;"&gt;As Administrator&lt;/span&gt;, and everything seems ok now...&lt;/p&gt;</description>
      <guid>http://www.eduardofv.com/read_post/79</guid>
    </item>
    <item>
      <title>Ferret on Windows [Ruby]</title>
      <link>http://www.eduardofv.com/read_post/78</link>
      <description>&lt;p&gt;If you are installing Ruby indexer Ferret on Windows, gem version 0.11.6 seems broken... install version 0.11.5&lt;/p&gt;
&lt;pre&gt;
gem install ferret --version 0.11.5
&lt;/pre&gt;</description>
      <guid>http://www.eduardofv.com/read_post/78</guid>
    </item>
    <item>
      <title>Tools</title>
      <link>http://www.eduardofv.com/read_post/63</link>
      <description>&lt;p&gt;Tools I always install:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="http://www.vim.org/"&gt;Vim&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.winmerge.org/"&gt;WinMerge&lt;/a&gt;: Diff &amp;amp; Merge, with the next two [Windows]&lt;/li&gt;
&lt;li&gt;&lt;a href="http://tortoisesvn.tigris.org/"&gt;TortoiseSVN&lt;/a&gt;: Makes easier SVN and is required for the following [Windows]&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.visualsvn.com/"&gt;VisualSVN&lt;/a&gt;: To integrate SVN to Visual Studio [Windows]&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.launchy.net/"&gt;Launchy&lt;/a&gt;: Makes you way more productive [Windows, testing on Linux]&lt;/li&gt;
&lt;li&gt;&lt;a href="http://code.google.com/p/imy/"&gt;IMy&lt;/a&gt;: Integrates Live Messenger with Launchy. I'm thinking on extending it to Pidgin for Linux.&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.fs-driver.org/"&gt;Ext2 IFS for Windows&lt;/a&gt;: Access ext2/3 filesystems on Windows for dual boot environments&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.7-zip.org/"&gt;7Zip&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.chiark.greenend.org.uk/~sgtatham/putty/"&gt;PuTTY&lt;/a&gt;&amp;nbsp;and &lt;a href="http://winscp.net/"&gt;WinSCP&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.cygwin.com/"&gt;Cygwin&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.viemu.com/"&gt;ViEmu&lt;/a&gt;: Vim emulator for Visual Studio.&lt;/li&gt;
&lt;li&gt;GIMP and Inkscape&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Firefox addins:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Firebug&lt;/li&gt;
&lt;li&gt;YSlow&lt;/li&gt;
&lt;li&gt;Clear Cache&lt;/li&gt;
&lt;li&gt;Cooliris&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;</description>
      <guid>http://www.eduardofv.com/read_post/63</guid>
    </item>
    <item>
      <title>Recreating the Button</title>
      <link>http://www.eduardofv.com/read_post/77</link>
      <description>&lt;p&gt;http://stopdesign.com/archive/2009/02/04/recreating-the-button.html|Nuevos botones de Google&lt;/p&gt;</description>
      <guid>http://www.eduardofv.com/read_post/77</guid>
    </item>
    <item>
      <title>Ruby 1.9.1 / 1.8.7 "dual" mode on Ubuntu</title>
      <link>http://www.eduardofv.com/read_post/76</link>
      <description>&lt;p&gt;I think this may be the most convenient way to have the shinny new Ruby 1.9.1p0 to play and a normal Ruby 1.8.7 on Ubuntu:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Install Ruby 1.8.7 and everything else from apt/synaptic&lt;/li&gt;
&lt;li&gt;Download and extract Ruby1.9.1&lt;/li&gt;
&lt;li&gt;Use --program-suffix=1.9 while configure to "tag" all the executables &lt;br /&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;pre&gt;tar jxvf ruby-1.9.1-p0.tar.bz2&lt;br /&gt;cd ruby-1.9.1-p0/&lt;br /&gt;autoconf&lt;br /&gt;./configure --prefix=/usr/local --program-suffix=1.9 --enable-pthread --enable-shared&lt;br /&gt;make&lt;br /&gt;sudo make install&lt;br /&gt;ruby --version&lt;br /&gt;ruby1.9 --version&lt;br /&gt;irb&lt;br /&gt;irb1.9&lt;br /&gt;
&lt;/pre&gt;
&lt;p&gt;Try Time.now.to_s inside irb to check differences.&lt;/p&gt;
&lt;p&gt;Reference: &lt;a href="http://programblings.com/2008/11/18/installing-ruby-19preview1-on-os-x-leopard/"&gt;http://programblings.com/2008/11/18/installing-ruby-19preview1-on-os-x-leopard/&lt;/a&gt;&lt;/p&gt;</description>
      <guid>http://www.eduardofv.com/read_post/76</guid>
    </item>
    <item>
      <title>Data Visualization with Ruby</title>
      <link>http://www.eduardofv.com/read_post/75</link>
      <description>&lt;p&gt;http://www.omninerd.com/articles/Automating_Data_Visualization_with_Ruby_and_Graphviz|I'll check this later, looks interesting&lt;/p&gt;</description>
      <guid>http://www.eduardofv.com/read_post/75</guid>
    </item>
    <item>
      <title>Inductio Ex Machina</title>
      <link>http://www.eduardofv.com/read_post/74</link>
      <description>&lt;p&gt;http://mark.reid.name/iem/|Blog on Machine Learning. Really good&lt;/p&gt;</description>
      <guid>http://www.eduardofv.com/read_post/74</guid>
    </item>
    <item>
      <title>Academic Earth</title>
      <link>http://www.eduardofv.com/read_post/73</link>
      <description>&lt;p&gt;http://academicearth.org/|Justo lo que hac&amp;iacute;a falta&lt;/p&gt;</description>
      <guid>http://www.eduardofv.com/read_post/73</guid>
    </item>
    <item>
      <title>Ubuntu 8.10 on XPS m1530</title>
      <link>http://www.eduardofv.com/read_post/57</link>
      <description>&lt;p&gt;- Touchpad: Had to use the .8042.nomux=1 boot param for Kernel as described everywhere.&lt;/p&gt;
&lt;p&gt;- Problems with the webcam: Cheese and Camorama useless but VLC and Ekiga ok. Seems to be some GStreamer problem. &lt;strong&gt;Update&lt;/strong&gt;: new version of cheese 2.42.2 now works&lt;/p&gt;
&lt;p&gt;- Dual screens were quite quirky to configure. Use &lt;em&gt;gksudo nvidia-settings&lt;/em&gt;, Twin display mode and set the layout for both screens.&lt;/p&gt;
&lt;p&gt;- I'm having some problems with sound. Sound is very low although everything is set up and loud. The master volume control for ALSA mixer sounds no-linear. There seem to be some problems with the drivers, but for now I'll leave things like that.&lt;/p&gt;
&lt;p&gt;- Touchpad too sensible. Fixed installing GSynaptics and enabling it as in &lt;a href="https://help.ubuntu.com/community/SynapticsTouchpad#shmconfig"&gt;here&lt;/a&gt;. (The issue is hard to test since appears as a "crazy mouse" when typing)&lt;a href="http://strabes.wordpress.com/2006/11/04/change-touchpad-sensitivity-in-ubuntu/"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;References&lt;/p&gt;
&lt;p&gt;&lt;a href="https://wiki.ubuntu.com/InstallingUbuntuOnADellXPSM1530"&gt;https://wiki.ubuntu.com/InstallingUbuntuOnADellXPSM1530&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="http://jesperdj.pbwiki.com/Ubuntu-on-the-Dell-XPS-M1530"&gt;http://jesperdj.pbwiki.com/Ubuntu-on-the-Dell-XPS-M1530&lt;/a&gt;&lt;/p&gt;</description>
      <guid>http://www.eduardofv.com/read_post/57</guid>
    </item>
    <item>
      <title>Key to understand Google Analytics</title>
      <link>http://www.eduardofv.com/read_post/72</link>
      <description>&lt;p&gt;http://www.google.com/support/googleanalytics/bin/answer.py?answer=57164&amp;amp;cbid=1m0o6pg5yvuwv&amp;amp;src=cb&amp;amp;lev=answer&lt;/p&gt;</description>
      <guid>http://www.eduardofv.com/read_post/72</guid>
    </item>
    <item>
      <title>Mounting Windows (CIFS) drives in Ubuntu</title>
      <link>http://www.eduardofv.com/read_post/71</link>
      <description>&lt;p&gt;http://ubuntuforums.org/showthread.php?t=288534&lt;/p&gt;</description>
      <guid>http://www.eduardofv.com/read_post/71</guid>
    </item>
    <item>
      <title>Compiling Mono 2.2 from souces in Ubuntu 8.10</title>
      <link>http://www.eduardofv.com/read_post/70</link>
      <description>&lt;p&gt;Update: The original link is gone now. I found a clone and &lt;a href="../../freezer"&gt;Freezing&lt;/a&gt; it.&lt;/p&gt;
&lt;p&gt;In general, follow &lt;a href="/freezer/icicle/141" title="Freezed version of this link"&gt;this&lt;/a&gt;&lt;span class="externallink"&gt;&lt;a href="http://www.blardone.org/hq/compileinstallmono20onlinuxpotentiallyunixmacosx" title="External link"&gt;&amp;nbsp;&lt;/a&gt;&lt;/span&gt; but keep in mind:&lt;/p&gt;
&lt;p&gt;My installation path is to /usr (not /usr/local).&lt;/p&gt;
&lt;p&gt;To install libgdiplus: use X11 headers installing&lt;strong&gt; libx11-dev&lt;/strong&gt;, and l&lt;strong&gt;ibfontconfig1-dev&lt;/strong&gt;,&lt;strong&gt; libxft-dev&lt;/strong&gt;&lt;/p&gt;</description>
      <guid>http://www.eduardofv.com/read_post/70</guid>
    </item>
    <item>
      <title>Anatomy of a Program in Memory</title>
      <link>http://www.eduardofv.com/read_post/69</link>
      <description>&lt;p&gt;&lt;a href="http://duartes.org/gustavo/blog/post/anatomy-of-a-program-in-memory"&gt;http://duartes.org/gustavo/blog/post/anatomy-of-a-program-in-memory&lt;/a&gt;|Excellent post on how operating systems handle memory. A good refresher.&lt;/p&gt;</description>
      <guid>http://www.eduardofv.com/read_post/69</guid>
    </item>
    <item>
      <title>Video de Andrea (2) - Reciclaje</title>
      <link>http://www.eduardofv.com/read_post/68</link>
      <description>&lt;div&gt;&lt;object width="512" height="322"&gt;&lt;param name="movie" value="http://d.yimg.com/static.video.yahoo.com/yep/YV_YEP.swf?ver=2.2.34" /&gt;&lt;param name="allowFullScreen" value="true" /&gt;&lt;param name="AllowScriptAccess" VALUE="always" /&gt;&lt;param name="bgcolor" value="#000000" /&gt;&lt;param name="flashVars" value="id=11707224&amp;vid=4362335&amp;lang=es-mx&amp;intl=mx&amp;thumbUrl=http%3A//us.i1.yimg.com/us.yimg.com/p/i/bcst/videosearch/7110/78992585.jpeg&amp;embed=1" /&gt;&lt;embed src="http://d.yimg.com/static.video.yahoo.com/yep/YV_YEP.swf?ver=2.2.34" type="application/x-shockwave-flash" width="512" height="322" allowFullScreen="true" AllowScriptAccess="always" bgcolor="#000000" flashVars="id=11707224&amp;vid=4362335&amp;lang=es-mx&amp;intl=mx&amp;thumbUrl=http%3A//us.i1.yimg.com/us.yimg.com/p/i/bcst/videosearch/7110/78992585.jpeg&amp;embed=1" &gt;&lt;/embed&gt;&lt;/object&gt;&lt;br /&gt;&lt;a href="http://mx.video.yahoo.com/watch/4362335/11707224"&gt;Reciclaje&lt;/a&gt; en &lt;a href="http://mx.video.yahoo.com" &gt;Yahoo! Video&lt;/a&gt;&lt;/div&gt;</description>
      <guid>http://www.eduardofv.com/read_post/68</guid>
    </item>
    <item>
      <title>Operating System usage in OCCMundial.com</title>
      <link>http://www.eduardofv.com/read_post/67</link>
      <description>&lt;p&gt;This is a brief statistic of the Operating System usage to access &lt;a href="http://www.occ.com.mx/"&gt;OCCMundial.com &lt;/a&gt;over the last month, from December 22, 2008 to January 21, 2009 as reported by Google Analytics. The Operating Systems, with less or equal than 0.05% of the visitis and that are not mentioned in the table, are (in decrement order): SymbianOS, Playstation 3, Nintendo Wii, SunOS, PalmOS, PSP, FreeBSD, Android, Danger Hiptop (?), and OpenBSD (and others not identified).&lt;/p&gt;
&lt;p&gt;It's worth to mention that in this period of time we had over 5 million visits, so we consider this a pretty good sample of the overall usage of Internet in M&amp;eacute;xico.&lt;/p&gt;
&lt;table border="1"&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;th&gt;OS&lt;/th&gt; &lt;th&gt;% of Visits&lt;/th&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Windows&lt;/strong&gt;&lt;/td&gt;
&lt;td style="text-align: right;"&gt;97.64%&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Macintosh&lt;/strong&gt;&lt;/td&gt;
&lt;td style="text-align: right;"&gt;1.65%&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Linux&lt;/strong&gt;&lt;/td&gt;
&lt;td style="text-align: right;"&gt;0.35%&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;iPhone&lt;/strong&gt;&lt;/td&gt;
&lt;td style="text-align: right;"&gt;0.14%&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;iPod&lt;/strong&gt;&lt;/td&gt;
&lt;td style="text-align: right;"&gt;0.12%&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;</description>
      <guid>http://www.eduardofv.com/read_post/67</guid>
    </item>
    <item>
      <title>Dilbert's new company</title>
      <link>http://www.eduardofv.com/read_post/66</link>
      <description>&lt;a href="http://dilbert.com/strips/comic/2009-01-22/" title="Dilbert.com"&gt;&lt;img src="http://dilbert.com/dyn/str_strip/000000000/00000000/0000000/000000/30000/9000/000/39054/39054.strip.gif" border="0" alt="Dilbert.com" /&gt;&lt;/a&gt;</description>
      <guid>http://www.eduardofv.com/read_post/66</guid>
    </item>
    <item>
      <title>Rails on Ubuntu 8.10: require_frameworks openssl error</title>
      <link>http://www.eduardofv.com/read_post/65</link>
      <description>&lt;p&gt;&lt;a href="http://www.ruby-forum.com/topic/136740"&gt;http://www.ruby-forum.com/topic/136740&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Just install libopenssl-ruby package&lt;/p&gt;</description>
      <guid>http://www.eduardofv.com/read_post/65</guid>
    </item>
    <item>
      <title>Vista "Open Command Prompt Here"</title>
      <link>http://www.eduardofv.com/read_post/64</link>
      <description>&lt;p&gt;&lt;a href="http://blogs.msdn.com/tims/archive/2006/09/18/windows-vista-secret-1-open-command-prompt-here.aspx"&gt;http://blogs.msdn.com/tims/archive/2006/09/18/windows-vista-secret-1-open-command-prompt-here.aspx&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;It doesn't work exactly as the old powertoy. You have to right-click inside the folder (that's on the right pane of Windows Explorer) and not over the folder in the Directory browser. I like more the old powertoy.&lt;/p&gt;</description>
      <guid>http://www.eduardofv.com/read_post/64</guid>
    </item>
    <item>
      <title>DIY DNA: One Father's Attempt to Hack His Daughter's Genetic Code</title>
      <link>http://www.eduardofv.com/read_post/62</link>
      <description>&lt;p&gt;&lt;a href="http://www.wired.com/medtech/genetics/magazine/17-02/ff_diygenetics?currentPage=all"&gt;http://www.wired.com/medtech/genetics/magazine/17-02/ff_diygenetics?currentPage=all&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Even if it's absolutely improbable that Hugh's quest turns successful, he MUST go on. He is in the land of uncertainity, with a huge payoff if he succed: his daighter's health. That reward is so great that even with a extremely low chance, it's worth trying. This is one of the most inspiring stories I've ever read and send best wishes to Beatrice, Hugh and his family... I hope there's anything we can do to help.&lt;/p&gt;</description>
      <guid>http://www.eduardofv.com/read_post/62</guid>
    </item>
    <item>
      <title>Collection of papers on introductory web mining</title>
      <link>http://www.eduardofv.com/read_post/61</link>
      <description>&lt;p&gt;&lt;a href="http://www.informatics.indiana.edu/fil/Class/b656/schedule.html"&gt;http://www.informatics.indiana.edu/fil/Class/b656/schedule.html&lt;/a&gt;&lt;/p&gt;</description>
      <guid>http://www.eduardofv.com/read_post/61</guid>
    </item>
    <item>
      <title>How to create a profitable Freemium startup</title>
      <link>http://www.eduardofv.com/read_post/60</link>
      <description>&lt;p&gt;&lt;a href="http://andrewchenblog.com/2009/01/19/how-to-create-a-profitable-freemium-startup-spreadsheet-model-included/"&gt;http://andrewchenblog.com/2009/01/19/how-to-create-a-profitable-freemium-startup-spreadsheet-model-included/&lt;/a&gt;|Para leer despu&amp;eacute;s&lt;/p&gt;</description>
      <guid>http://www.eduardofv.com/read_post/60</guid>
    </item>
    <item>
      <title>GIMP language change</title>
      <link>http://www.eduardofv.com/read_post/59</link>
      <description>&lt;p&gt;GIMP is great but I hate that sets the language to the current locale ignoring even Windows.&lt;/p&gt;
&lt;p&gt;GIMP 2.6 path to locales is c:\program files\gimp-2.0\share\locale, and yes, delete all but en-* locales.&lt;/p&gt;
&lt;p&gt;&lt;a style="text-decoration: none;" href="http://www.gimptalk.com/forum/viewtopic.php?t=1994"&gt;&lt;span style="text-decoration: underline;"&gt;http://www.gimptalk.com/forum/viewtopic.php?t=1994&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;</description>
      <guid>http://www.eduardofv.com/read_post/59</guid>
    </item>
    <item>
      <title>Ruby Linalg</title>
      <link>http://www.eduardofv.com/read_post/58</link>
      <description>&lt;p&gt;&lt;a href="http://rubyforge.org/projects/linalg/"&gt;http://rubyforge.org/projects/linalg/&lt;/a&gt;|Fortran based Linear Algebra Library for Ruby&lt;/p&gt;</description>
      <guid>http://www.eduardofv.com/read_post/58</guid>
    </item>
    <item>
      <title>The History of Python</title>
      <link>http://www.eduardofv.com/read_post/56</link>
      <description>&lt;p&gt;http://python-history.blogspot.com/|By Guido&lt;/p&gt;</description>
      <guid>http://www.eduardofv.com/read_post/56</guid>
    </item>
    <item>
      <title>15 minutes to using your existing Windows install &amp; apps in Ubuntu</title>
      <link>http://www.eduardofv.com/read_post/55</link>
      <description>&lt;p&gt;http://74.125.45.132/search?q=cache:http://www.venturecake.com/a-simple-guide-to-using-your-existing-windows-install-apps-in-ubuntu/|(Cached on Google)&lt;/p&gt;</description>
      <guid>http://www.eduardofv.com/read_post/55</guid>
    </item>
    <item>
      <title>Hallucinations</title>
      <link>http://www.eduardofv.com/read_post/54</link>
      <description>&lt;p&gt;http://www.boston.com/bostonglobe/ideas/graphics/011109_hacking_your_brain/|How-to-Hallucinate&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;</description>
      <guid>http://www.eduardofv.com/read_post/54</guid>
    </item>
    <item>
      <title>Markov Chain Monte Carlo sampling toolkit.</title>
      <link>http://www.eduardofv.com/read_post/52</link>
      <description>&lt;p&gt;http://pypi.python.org/pypi/pymc/&lt;/p&gt;</description>
      <guid>http://www.eduardofv.com/read_post/52</guid>
    </item>
    <item>
      <title>Compilation of Feynmann's Lectures</title>
      <link>http://www.eduardofv.com/read_post/51</link>
      <description>&lt;p&gt;http://freescienceonline.blogspot.com/&lt;/p&gt;</description>
      <guid>http://www.eduardofv.com/read_post/51</guid>
    </item>
    <item>
      <title>Reseting the Video Settings the Wii</title>
      <link>http://www.eduardofv.com/read_post/50</link>
      <description>&lt;p&gt;If you kept the video setting from widescreen/480i and moved the Wii to a CRT, here's how to reset them:&lt;/p&gt;
&lt;p&gt;&lt;span style="font-family: verdana; font-size: 11px; font-style: italic;"&gt;- Power on Wii, give it a few seconds to boot&lt;br /&gt;- Hold DOWN on the directional pad of the Wii remote&lt;br /&gt;- While holding DOWN, press the RESET button on the Wii&lt;br /&gt;&lt;br /&gt;The Wii reboots and the screen settings are back to default. All my other settings (wifi, console name, etc.) were intact.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="http://www.neogaf.com/forum/showthread.php?t=252991"&gt;Link&lt;/a&gt;&amp;nbsp;(look for ch0mp's comment). Also, you can switch to the A/V and the go back to the composite cables.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;</description>
      <guid>http://www.eduardofv.com/read_post/50</guid>
    </item>
    <item>
      <title>Google Native Client on Spanish</title>
      <link>http://www.eduardofv.com/read_post/49</link>
      <description>&lt;p&gt;Use &lt;a href="http://code.google.com/p/nativeclient/issues/detail?id=2"&gt;this workaround&lt;/a&gt; to get &lt;a href="http://nativeclient.googlecode.com/svn/trunk/nacl/googleclient/native_client/documentation/getting_started.html"&gt;Google Native Client&lt;/a&gt; on a Spanish Windows XP w/Firefox 3&lt;/p&gt;</description>
      <guid>http://www.eduardofv.com/read_post/49</guid>
    </item>
    <item>
      <title>The physics of networks</title>
      <link>http://www.eduardofv.com/read_post/46</link>
      <description>http://ptonline.aip.org/journals/doc/PHTOAD-ft/vol_61/iss_11/33_1.shtml?type=PTALERT
Algoritmos|Physics|Networks</description>
      <guid>http://www.eduardofv.com/read_post/46</guid>
    </item>
    <item>
      <title>Congrats, US! - Mourning for M&#195;&#402;&#194;&#169;xico</title>
      <link>http://www.eduardofv.com/read_post/45</link>
      <description>&lt;p&gt;A few moments ago my Chrome refreshed&amp;nbsp;&lt;a href="http://maps.google.com/help/maps/elections/index.html#2008_election"&gt;http://maps.google.com/help/maps/elections/index.html#2008_election&amp;nbsp;&lt;/a&gt;showing 324 vs 124 votes favoring Obama. I'm also mourning for M&amp;eacute;xico, on the airplane crash and death on Secretary Mouri&amp;ntilde;o. Strange days.&lt;/p&gt;</description>
      <guid>http://www.eduardofv.com/read_post/45</guid>
    </item>
    <item>
      <title>Linear Algebra for Free</title>
      <link>http://www.eduardofv.com/read_post/44</link>
      <description>&lt;p&gt;&lt;a href="http://www.randomhacks.net/articles/2007/03/07/hefferon-linear-algebra-review"&gt;http://www.randomhacks.net/articles/2007/03/07/hefferon-linear-algebra-review&lt;/a&gt;&lt;/p&gt;</description>
      <guid>http://www.eduardofv.com/read_post/44</guid>
    </item>
    <item>
      <title>Beta de OCCMundial.com al aire</title>
      <link>http://www.eduardofv.com/read_post/43</link>
      <description>&lt;p&gt;El nuevo Beta de OCC ya est&amp;aacute; al aire... comentarios en el sitio o aqu&amp;iacute; mismo&lt;/p&gt;
&lt;p&gt;&lt;a title="Beta de OCC.com.mx" href="http://beta.occmundial.com"&gt;http://beta.occmundial.com&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Si se puede, luego postear&amp;eacute; algo de la nueva arquitectura, que no es por nada pero es bastante novedosa :D&lt;/p&gt;</description>
      <guid>http://www.eduardofv.com/read_post/43</guid>
    </item>
    <item>
      <title>Ruby: Error with Gems 1.2.0 + Win32_Process + $KCODE + DRb</title>
      <link>http://www.eduardofv.com/read_post/42</link>
      <description>&lt;p&gt;This is really awkward. The problem was found after moving some scripts that worked fine on one server to another server with rubygems recently updated. The script normally spawns several processes that are DRb Servers, but it failed silently. After some testing I found that with every other thing being equal (Ruby 1.8.6 patchlevel 111 and win32-process 0.5.3 on both machines) the script crashed with gem 1.2.0 and not with 0.9.4.&lt;/p&gt;
&lt;p&gt;The script iterates calling Process.fork with a code block that creates the new DRb server. The DRb object is loaded via require at the begining of the script. I'm posting here a reduced example for clarity.&lt;/p&gt;
&lt;pre class="code ruby"&gt;puts "iniciando"
require 'rubygems'
require 'drb'
puts 'loading pingpong'
require 'pingpong'
puts 'loaded pingpong'
puts 'loading process '
require 'win32/process'
puts 'loaded process'

def start_server(port)
  uri="druby://0.0.0.0:#{port}"
  trap("INT"){puts("Interrupted"); DRb.thread.exit}
  DRb.start_service(uri,PingPong.new)
  puts("Listening #{uri}")
  DRb.thread.join
end 

puts "here #{ARGV.inspect}"
2.times{|port| puts("Sending #{port}");Process.fork{start_server(5850+port)}}
puts "out"
&lt;/pre&gt;
&lt;p&gt;The PingPong class is defined in the following script. Note the $KCODE declaration since it turned out to be the problem:&lt;/p&gt;
&lt;pre class="code ruby"&gt;$KCODE = 'UTF-8'

class PingPong
  def ping
    "pong"
  end
end
&lt;/pre&gt;
&lt;p&gt;In the current implementation of win32_process, Process.fork works by creating a new Windows process calling Ruby with the same script and passing an argument indicating which child is creating. This is very important as indicated &lt;a href="http://rubyforge.org/docman/view.php/85/1720/Process.html"&gt;in the documentation&lt;/a&gt; since one would expect that each child's execution started at the code block passed to the fork.&lt;/p&gt;
&lt;p&gt;The process failed like this with gem 1.2.0 (but worked perfectly on gem 0.9.4:)&lt;/p&gt;
&lt;pre class="console"&gt;C:\&amp;gt;test_fork_simple.rb
iniciando
loading pingpong
loaded pingpong
loading process
loaded process
here []
Sending 0
Sending 1
out
&lt;/pre&gt;
&lt;p&gt;After some hours debugging I found that the problem arised when the $KCODE assigment is done on the child processes; if the assigment is deleted the processes are created correctly:&lt;/p&gt;
&lt;pre class="console"&gt;C:\&amp;gt;test_fork_simple.rb
iniciando
loading pingpong
loaded pingpong
loading process
loaded process
here []
Sending 0
Sending 1
out

iniciando
iniciando
loading pingpong
loading pingpong
loaded pingpong
loading process
loaded pingpong
loading process
loaded process
here ["child#0"]
Sending 0
loaded process
here ["child#1"]
Sending 0
Sending 1
Listening druby://0.0.0.0:5850
Listening druby://0.0.0.0:5851
&lt;/pre&gt;
&lt;p&gt;But in the real programs the line can't be left out since it's critical. Oddly enough, the workaround consisted on switching the 'require' statments for the child class and win32/process:&lt;/p&gt;
&lt;pre class="ruby code"&gt;#Crashes silently:
require 'pingpong'
require 'win32/process'

#Works!
require 'win32/process'
require 'pingpong'
&lt;/pre&gt;
&lt;p&gt;It's also very strange that, when the script fails, the child processes are not even created (as you can see on the first output, the "iniciando" message is never sent). I'll post an update if I found what's happening here.&lt;/p&gt;</description>
      <guid>http://www.eduardofv.com/read_post/42</guid>
    </item>
    <item>
      <title>Video de Andrea</title>
      <link>http://www.eduardofv.com/read_post/41</link>
      <description>&lt;p&gt;Video de tarea de Andrea&lt;/p&gt;
&lt;div&gt;
&lt;object width="512" height="322"&gt;
&lt;div&gt;&lt;object width="512" height="322"&gt;&lt;param name="movie" value="http://d.yimg.com/static.video.yahoo.com/yep/YV_YEP.swf?ver=2.2.30" /&gt;&lt;param name="allowFullScreen" value="true" /&gt;&lt;param name="AllowScriptAccess" VALUE="always" /&gt;&lt;param name="bgcolor" value="#000000" /&gt;&lt;param name="flashVars" value="id=10301377&amp;vid=3751907&amp;lang=en-us&amp;intl=us&amp;thumbUrl=http%3A//us.i1.yimg.com/us.yimg.com/p/i/bcst/videosearch/5663/73711851.jpeg&amp;embed=1" /&gt;&lt;embed src="http://d.yimg.com/static.video.yahoo.com/yep/YV_YEP.swf?ver=2.2.30" type="application/x-shockwave-flash" width="512" height="322" allowFullScreen="true" AllowScriptAccess="always" bgcolor="#000000" flashVars="id=10301377&amp;vid=3751907&amp;lang=en-us&amp;intl=us&amp;thumbUrl=http%3A//us.i1.yimg.com/us.yimg.com/p/i/bcst/videosearch/5663/73711851.jpeg&amp;embed=1" &gt;&lt;/embed&gt;&lt;/object&gt;&lt;br /&gt;&lt;a href="http://video.yahoo.com/watch/3751907/10301377"&gt;Economia de Tailandia (Kinder 3A)&lt;/a&gt; @ &lt;a href="http://video.yahoo.com" &gt;Yahoo! Video&lt;/a&gt;&lt;/div&gt;&lt;/object&gt;
&lt;/div&gt;</description>
      <guid>http://www.eduardofv.com/read_post/41</guid>
    </item>
    <item>
      <title>Loading and Processing Big Matrices on Python/numpy for NNMF</title>
      <link>http://www.eduardofv.com/read_post/40</link>
      <description>&lt;p&gt;I was loading a quite big dataset (3446x14807 floats) to a Python / &lt;a href="http://numpy.scipy.org/"&gt;Numpy&lt;/a&gt; matrix to perform a &lt;a href="http://en.wikipedia.org/wiki/Approximate_nonnegative_matrix_factorization"&gt;Nonnegative Matrix Factorization (NNMF)&lt;/a&gt;. First I tried generating the Python source code from another process and inserting literally the whole matrix, something like:&lt;/p&gt;
&lt;pre&gt;w = matrix([
[0.0072992700729927,0.0072992700729927,0.0291970802919708,0.0145985401459854,&lt;br /&gt;0.0072992700729927,0.0072992700729927,0.0072992700729927,0.0072992700729927, ... ,])
&lt;/pre&gt;
&lt;p&gt;But the process crashed with a cryptic MemoryError while loading the matrix. Then I tried using&lt;/p&gt;
&lt;pre style="display:inline"&gt;loadtxt()&lt;/pre&gt;
&lt;p&gt;Numpy's method but the same thing happened. I found &lt;a href="http://mail.python.org/pipermail/python-list/2008-July/501582.html"&gt;this thread.&lt;/a&gt; I'm using both a XP laptop and a Win2003 Server with Python 2.5.1 and 2.5.2 respectevly, both 32bits. This didn't seemed the problem since the matrix could be constructed with ones or zeros and enough memory was available (the server has 8gigs of RAM). It rather looked like the problem was while building the matrix. So I found that building the array first and then adding the values did the trick:&lt;/p&gt;
&lt;pre&gt;&lt;br /&gt;JW = zeros((len(jobs),len(words)), float)
f=open(argv[1]+'_JW.csv')
line = 0
for l in f:
  vals = l.split(',')	
  for i in range(0,len(vals)):
    JW[line,i] = float(vals[i])
  line += 1
f.close()
&lt;/pre&gt;</description>
      <guid>http://www.eduardofv.com/read_post/40</guid>
    </item>
    <item>
      <title>Crisis = Danger + Opportunity</title>
      <link>http://www.eduardofv.com/read_post/37</link>
      <description>&lt;p style="text-align: center;"&gt;&lt;img src="http://www.pinyin.info/py.gif" alt="py: chinese weiji" width="193" height="95" /&gt;&lt;/p&gt;
&lt;p style="text-align: left;"&gt;Update: Check this &lt;a href="http://www.pinyin.info/chinese/crisis.html"&gt;interesting clarification by Victor H. Mair&lt;/a&gt;. This image is now pointing to Victor's.&lt;/p&gt;</description>
      <guid>http://www.eduardofv.com/read_post/37</guid>
    </item>
    <item>
      <title>TED talk on Morality and Political Stands</title>
      <link>http://www.eduardofv.com/read_post/38</link>
      <description>&lt;p&gt;Insightful. Check also the &lt;a href="http://www.yourmorals.org/"&gt;Morality Quiz&lt;/a&gt;&lt;/p&gt;
&lt;p style="text-align: center; "&gt;
&lt;object id="VE_Player" classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="432" height="285" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=8,0,0,0" align="middle"&gt;
&lt;param name="movie" value="http://static.videoegg.com/ted2/flash/loader.swf" /&gt;
&lt;param name="FlashVars" value="bgColor=FFFFFF&amp;amp;file=http://static.videoegg.com/ted/movies/JonathanHaidt_2008-embed-2Clay_high.flv&amp;amp;autoPlay=false&amp;amp;fullscreenURL=http://static.videoegg.com/ted/flash/fullscreen.html&amp;amp;forcePlay=false&amp;amp;logo=&amp;amp;allowFullscreen=true" /&gt;
&lt;param name="quality" value="high" /&gt;
&lt;param name="allowScriptAccess" value="always" /&gt;
&lt;param name="bgcolor" value="#FFFFFF" /&gt;
&lt;param name="scale" value="noscale" /&gt;
&lt;param name="wmode" value="window" /&gt;&lt;embed type="application/x-shockwave-flash" width="432" height="285" src="http://static.videoegg.com/ted2/flash/loader.swf" flashvars="bgColor=FFFFFF&amp;amp;file=http://static.videoegg.com/ted/movies/JonathanHaidt_2008-embed-2Clay_high.flv&amp;amp;autoPlay=false&amp;amp;fullscreenURL=http://static.videoegg.com/ted/flash/fullscreen.html&amp;amp;forcePlay=false&amp;amp;logo=&amp;amp;allowFullscreen=true" quality="high" allowscriptaccess="always" bgcolor="#FFFFFF" scale="noscale" wmode="window" name="VE_Player" align="middle" pluginspage="http://www.macromedia.com/go/getflashplayer"&gt;&lt;/embed&gt;
&lt;/object&gt;
&lt;/p&gt;</description>
      <guid>http://www.eduardofv.com/read_post/38</guid>
    </item>
    <item>
      <title>Chrome #4 on OCCMundial.com</title>
      <link>http://www.eduardofv.com/read_post/36</link>
      <description>&lt;p&gt;Google Chrome ranks #4 with 0.51% of visitis on&amp;nbsp;&lt;a href="www.occ.com.mx"&gt;OCCMundial&lt;/a&gt;(my employer) as of today, from Sept 2. It ranks over Opera (0.27%) and below Internet Explorer (90.54%), Firefox (7.29%) and Safari (1.26%). OCCMundial is the leading online Job Board in Mexico, with more than 100 million pageviews per month.&lt;/p&gt;
&lt;p&gt;And yes, it's noticeable the margin of IE over every other browser, which I think can be extrapolated to the whole usage of browsers in Mexico since our traffic it's pretty high for this market. (Data from Google Analytics).&lt;/p&gt;</description>
      <guid>http://www.eduardofv.com/read_post/36</guid>
    </item>
    <item>
      <title>On Artistic Taste and Psychology</title>
      <link>http://www.eduardofv.com/read_post/35</link>
      <description>&lt;p&gt;How psychology accounts for taste development &lt;a href="http://psychologytoday.com/articles/index.php?term=pto-20080825-000002&amp;amp;print=1"&gt;Via Psychology Today&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;"We wrongly assume, for instance, that people with highly decorated and cluttered rooms are more extroverted. We also assume such people are more open&amp;mdash;when really we should be looking for variety in books and music, for books on art and poetry, and for art supplies. We assume that rooms with stale air belong to emotionally unstable people&amp;mdash;when really we should be scanning for inspirational posters"&lt;/p&gt;</description>
      <guid>http://www.eduardofv.com/read_post/35</guid>
    </item>
    <item>
      <title>On Peter Donnelly Conference at TED [Ruby]</title>
      <link>http://www.eduardofv.com/read_post/34</link>
      <description>&lt;p&gt;A small Ruby script to test Peter Donnelly's example on uncertainity. Conference below..&lt;/p&gt;
&lt;pre&gt;def avg_pat(pat, t, s=0)
  t.times do 
    last = ''
    last += (rand(2)==0 ? 'H' : 'T') while last[-pat.length..-1] != pat
    s += last.length 
  end
  s/t
end	

['HTH','HTT'].each{|p| print "#{p} #{avg_pat(p,10000)} "}
&lt;/pre&gt;
&lt;p style="text-align: center;"&gt;
&lt;object id="VE_Player" classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="320" height="285" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=8,0,0,0" align="middle"&gt;
&lt;param name="movie" value="http://static.videoegg.com/ted/flash/loader.swf" /&gt;
&lt;param name="FlashVars" value="bgColor=FFFFFF&amp;amp;file=http://static.videoegg.com/ted/movies/PETERDONNELLY_high.flv&amp;amp;autoPlay=false&amp;amp;fullscreenURL=http://static.videoegg.com/ted/flash/fullscreen.html&amp;amp;forcePlay=false&amp;amp;logo=&amp;amp;allowFullscreen=true" /&gt;
&lt;param name="quality" value="high" /&gt;
&lt;param name="allowScriptAccess" value="always" /&gt;
&lt;param name="bgcolor" value="#FFFFFF" /&gt;
&lt;param name="scale" value="noscale" /&gt;
&lt;param name="wmode" value="window" /&gt;&lt;embed type="application/x-shockwave-flash" width="320" height="285" src="http://static.videoegg.com/ted/flash/loader.swf" pluginspage="http://www.macromedia.com/go/getflashplayer" align="middle" name="VE_Player" wmode="window" scale="noscale" bgcolor="#FFFFFF" allowscriptaccess="always" quality="high" flashvars="bgColor=FFFFFF&amp;amp;file=http://static.videoegg.com/ted/movies/PETERDONNELLY_high.flv&amp;amp;autoPlay=false&amp;amp;fullscreenURL=http://static.videoegg.com/ted/flash/fullscreen.html&amp;amp;forcePlay=false&amp;amp;logo=&amp;amp;allowFullscreen=true"&gt;&lt;/embed&gt;
&lt;/object&gt;
&lt;/p&gt;</description>
      <guid>http://www.eduardofv.com/read_post/34</guid>
    </item>
    <item>
      <title>Link: Peter Norvig at Startup School 2008</title>
      <link>http://www.eduardofv.com/read_post/33</link>
      <description>&lt;p&gt;&lt;a href="http://omnisio.com/startupschool08/peter-norvig-at-startup-school-08"&gt;http://omnisio.com/startupschool08/peter-norvig-at-startup-school-08|&lt;/a&gt;&lt;a href="http://omnisio.com/startupschool08/peter-norvig-at-startup-school-08"&gt;Great talk of Peter Norvig&lt;/a&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;
&lt;object width="520" height="276"&gt;
&lt;param name="movie" value="http://omnisio.com/bin/Embed.swf?embedID=b72Me8GcOr3z4TadbiFy2w&amp;amp;autoPlay=0" /&gt;
&lt;param name="bgcolor" value="#FFFFFF" /&gt;
&lt;param name="quality" value="high" /&gt;
&lt;param name="allowscriptaccess" value="always" /&gt;
&lt;param name="allowfullscreen" value="true" /&gt;&lt;embed type="application/x-shockwave-flash" width="520" height="276" src="http://omnisio.com/bin/Embed.swf?embedID=b72Me8GcOr3z4TadbiFy2w&amp;amp;autoPlay=0" allowscriptaccess="always" allowfullscreen="true" quality="high" bgcolor="#FFFFFF" name="omnisio_video_b72Me8GcOr3z4TadbiFy2w"&gt;&lt;/embed&gt;
&lt;/object&gt;
&lt;br /&gt;&lt;a href="http://www.gigyamailbutton.com/wildfire/gigyamailbutton.ashx?url=aHR*cDovL3d3dy5naWd5YS5jb2*vd2lsZGZpcmUvd2Zwb3AuYXNweD9tb2R1bGU9ZW1haWwmdXJsPWh*dHAlM*ElMkYlMkZvbW5pc2lvJTJFY29tJTJGdiUyRjA5azE1VUlkamhHJTJGcGV*ZXIlMkRub3J2aWclMkRhdCUyRHN*YXJ*dXAlMkRzY2hvb2wlMkQwOA==" target="_blank"&gt;&lt;img src="http://cdn.gigya.com/wildfire/i/includeShareButton.gif" border="0" alt="" width="60" height="20" /&gt;&lt;/a&gt;&lt;img style="visibility:hidden;width:0px;height:0px;" src="http://counters.gigya.com/wildfire/IMP/CXNID=2000002.0NXC/bT*xJmx*PTEyMjExNTUzNjYyMDMmcHQ9MTIyMTE2NTk*NjQ4NCZwPTE5MzUwMSZkPSZuPSZnPTEmdD*mbz1iYWE3MGRmMmVmMDE*MzM*YWI3MmM1NGZlMzU5ZjdmMg==.gif" border="0" alt="" width="0" height="0" /&gt;&lt;/p&gt;</description>
      <guid>http://www.eduardofv.com/read_post/33</guid>
    </item>
    <item>
      <title>IronPython: Catching exceptions</title>
      <link>http://www.eduardofv.com/read_post/32</link>
      <description>&lt;p&gt;Don't know why this wasn't easy to spot. To catch an exception and display the StackTrace on IronPython use:&lt;/p&gt;
&lt;pre&gt;import sys

try:
	print "hola"
	print 3/0 #Select which exception to test
	raise Exception("Error...")
except Exception, e:
	print e.clsException
&lt;/pre&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;</description>
      <guid>http://www.eduardofv.com/read_post/32</guid>
    </item>
    <item>
      <title>Ruby: Awsome Collection of Ruby Tricks</title>
      <link>http://www.eduardofv.com/read_post/31</link>
      <description>&lt;p&gt;&lt;a href="http://www.rubyinside.com/21-ruby-tricks-902.html"&gt;http://www.rubyinside.com/21-ruby-tricks-902.html&lt;/a&gt;&lt;/p&gt;</description>
      <guid>http://www.eduardofv.com/read_post/31</guid>
    </item>
    <item>
      <title>Rails: Fast &amp; Easy Sitemaps</title>
      <link>http://www.eduardofv.com/read_post/30</link>
      <description>&lt;p&gt;&lt;a href="http://tonycode.com/wiki/index.php?title=Ruby_on_Rails_Sitemap_Generator"&gt;Few lines to get your sitemap&lt;/a&gt;. Also, add a hash array for the other links on your site:&lt;/p&gt;
&lt;p&gt;Sitemap controller:&lt;/p&gt;
&lt;pre&gt;    @sites = [
	    {:loc=&amp;gt;url_for(:controller=&amp;gt;'home',:action=&amp;gt;nil), :lastmod=&amp;gt;File.open('web/app/views/home/index.rhtml').mtime.strftime('%Y-%m-%d')},
	    {:loc=&amp;gt;url_for(:controller=&amp;gt;'blog',:action=&amp;gt;nil), :lastmod=&amp;gt;File.open('web/app/views/blog/index.rhtml').mtime.strftime('%Y-%m-%d')},
	    {:loc=&amp;gt;url_for(:controller=&amp;gt;'casa',:action=&amp;gt;nil), :lastmod=&amp;gt;File.open('web/app/views/casa/index.rhtml').mtime.strftime('%Y-%m-%d')}
    ]
&lt;/pre&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;RXML:&lt;/p&gt;
&lt;pre&gt;  @sites.each do |site|
    xml.url do
      xml.loc( site[:loc] )
      xml.lastmod( site[:lastmod] )      
    end	    
  end&lt;/pre&gt;</description>
      <guid>http://www.eduardofv.com/read_post/30</guid>
    </item>
    <item>
      <title>He de ser est&#195;&#402;&#194;&#186;pido</title>
      <link>http://www.eduardofv.com/read_post/29</link>
      <description>&lt;p&gt;En la p&amp;aacute;gina del Gobierno del D.F. est&amp;aacute; la &lt;a title="Declaraci&amp;oacute;n Patrimonial de Ebrard" href="http://www.contraloria.df.gob.mx/contraloria/consultaDeclaracion.php?idFuncionario=1   "&gt;declaraci&amp;oacute;n patrimonial de Marcelo Ebrard&lt;/a&gt;: en resumen, el a&amp;ntilde;o pasado contaba con un patrimonio de menos $300,000, un solo coche y ning&amp;uacute;n bien inmueble propio (eso s&amp;iacute;, algunas obras de arte). A la fecha, cuentas bancarias por menos de 1 mill&amp;oacute;n y sin otros cambios. Si Marcelo cree que soy est&amp;uacute;pido, he de serlo...&lt;/p&gt;</description>
      <guid>http://www.eduardofv.com/read_post/29</guid>
    </item>
    <item>
      <title>CSS: Wrapping blocks of code</title>
      <link>http://www.eduardofv.com/read_post/28</link>
      <description>&lt;p&gt;Cool... &lt;a href="http://labnol.blogspot.com/2006/10/html-css-trick-for-displaying-code.html"&gt;[check this]&lt;/a&gt;&lt;/p&gt;</description>
      <guid>http://www.eduardofv.com/read_post/28</guid>
    </item>
    <item>
      <title>La peor ignorancia</title>
      <link>http://www.eduardofv.com/read_post/27</link>
      <description>&lt;p&gt;La peor ignorancia es no saber que no sabes.&lt;/p&gt;</description>
      <guid>http://www.eduardofv.com/read_post/27</guid>
    </item>
    <item>
      <title>Ruby: Change file access/modification time for a file</title>
      <link>http://www.eduardofv.com/read_post/26</link>
      <description>&lt;p&gt;Pretty basic, but took me one hour to find. To set the access/modification time for a file in Ruby do not try to use&lt;/p&gt;
&lt;pre&gt;FileUtils.touch&lt;/pre&gt;
&lt;p&gt;(as Unix) because it only sets to current DT. Use&lt;/p&gt;
&lt;pre&gt;File.utime(atime,utime,filename,...)&lt;/pre&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;</description>
      <guid>http://www.eduardofv.com/read_post/26</guid>
    </item>
    <item>
      <title>Finding the Still Point</title>
      <link>http://www.eduardofv.com/read_post/25</link>
      <description>&lt;p&gt;http://www.amazon.com/Finding-Still-Point-Book-Communications/dp/1590304799|The essence of zazen|&lt;/p&gt;
&lt;p style="text-align: center;"&gt;&lt;a title="Link to amazon" href="http://www.amazon.com/Finding-Still-Point-Book-Communications/dp/1590304799"&gt;&lt;img src="http://ecx.images-amazon.com/images/I/412QCUmXuDL._SL500_BO2,204,203,200_PIsitb-dp-500-arrow,TopRight,45,-64_OU01_AA240_SH20_.jpg" alt="Book Cover" width="240" height="240" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p style="text-align: center;"&gt;By John Daido Loori&lt;/p&gt;
&lt;p&gt;Very simple &amp;amp; beautiful approach to zazen. Great as start point.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;</description>
      <guid>http://www.eduardofv.com/read_post/25</guid>
    </item>
    <item>
      <title>Zen Mind Begginer's Mind</title>
      <link>http://www.eduardofv.com/read_post/24</link>
      <description>&lt;p&gt;&lt;a title="Link to amazon" href="http://www.amazon.com/Zen-Mind-Beginners-Shambhala-Library/dp/1590302672"&gt;http://www.amazon.com/Zen-Mind-Beginners-Shambhala-Library/dp/1590302672&lt;/a&gt;|"The purpose of studyng Buddhism is not to study Buddhism but to study ourselves."|&lt;/p&gt;
&lt;p style="text-align: center;"&gt;&lt;a title="Link to amazon" href="http://www.amazon.com/Zen-Mind-Beginners-Shambhala-Library/dp/1590302672"&gt;&lt;img src="http://ecx.images-amazon.com/images/I/410XTT4X28L._SL500_BO2,204,203,200_PIsitb-dp-500-arrow,TopRight,45,-64_OU01_AA240_SH20_.jpg" alt="Zen mind cover" width="240" height="240" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p style="text-align: center;"&gt;By Shunryu Suzuki&lt;/p&gt;</description>
      <guid>http://www.eduardofv.com/read_post/24</guid>
    </item>
    <item>
      <title>The Tipping Point</title>
      <link>http://www.eduardofv.com/read_post/23</link>
      <description>&lt;p&gt;&lt;a title="This book on Amazon" href="http://www.amazon.com/Tipping-Point-Little-Things-Difference/dp/0316346624"&gt;http://www.amazon.com/Tipping-Point-Little-Things-Difference/dp/0316346624&lt;/a&gt;|Epidemics at Large|&lt;/p&gt;
&lt;p style="text-align: center;"&gt;&lt;img src="http://ecx.images-amazon.com/images/I/41bZbCdMhJL._SL500_BO2,204,203,200_PIsitb-dp-500-arrow,TopRight,45,-64_OU01_AA240_SH20_.jpg" alt="The Tipping Point Cover" width="240" height="240" /&gt;&lt;/p&gt;
&lt;p style="text-align: center;"&gt;by Malcom Gladwell&lt;/p&gt;
&lt;p style="text-align: left;"&gt;The basic premise on this book is that epidemics can be thought as a general pattern appliable as well to health, social phenomena or technology. A very well written book, Gladwell makes a extensive investigation, gathers information that may seem disgragated and elaborates a proposition. Not a scientific method traditional approach, but a good starting point to the understanding and use of this knowledge.&lt;/p&gt;</description>
      <guid>http://www.eduardofv.com/read_post/23</guid>
    </item>
    <item>
      <title>Wabi-Sabi: for Artists, Designers, Poets &amp; Philosophers</title>
      <link>http://www.eduardofv.com/read_post/22</link>
      <description>&lt;p&gt;&lt;a title="Link to Amazon" href="http://www.amazon.com/Wabi-Sabi-Artists-Designers-Poets-Philosophers/dp/1880656124"&gt;http://www.amazon.com/Wabi-Sabi-Artists-Designers-Poets-Philosophers/dp/1880656124&lt;/a&gt;|Imperfect Impermanent Incomplete|&lt;/p&gt;
&lt;p style="text-align: center;"&gt;&lt;img src="http://ecx.images-amazon.com/images/I/51nCGx11xBL._SL500_BO2,204,203,200_PIsitb-dp-500-arrow,TopRight,45,-64_OU01_AA240_SH20_.jpg" alt="Wabi-Sabi Cover" width="240" height="240" /&gt;&lt;/p&gt;
&lt;p style="text-align: left;"&gt;By Leonard Koren.&lt;/p&gt;
&lt;p style="text-align: left;"&gt;Wabi-Sabi is the quintessential aesthetic&amp;nbsp; of the Japanese art. This gorgeous book describe what is Wabi-Sabi in a Wabi-Sabi format and content. In less than 80 pages, many filled with beautiful photographs, describe the metaphysical, spiritual, state-of-mind, moral and material qualities that create Wabi-Sabi.&lt;/p&gt;
&lt;p style="text-align: left;"&gt;The Wabi-Sabi quality can be discovered everywhere, although demands careful attention to find it. For us, quite far from the Japanese&amp;nbsp; mind, Wabi-Sabi explains the beauty we feel and see on many things that are nevertheless overlooked and unappreciated. The tension between the Wabi-Sabi aesthetic and our concious western-modernist aesthetic might be extremely interesting to explore.&lt;/p&gt;
&lt;p style="text-align: left;"&gt;&amp;nbsp;&lt;/p&gt;</description>
      <guid>http://www.eduardofv.com/read_post/22</guid>
    </item>
    <item>
      <title>Again, again and again... The Little Schemer</title>
      <link>http://www.eduardofv.com/read_post/21</link>
      <description>&lt;p&gt;Getting back to &lt;a title="Post on the Little Schemmer" href="blog/read_post/16-The-Little-Schemer"&gt;The Little Schemer&lt;/a&gt;&amp;nbsp; proved more challenging. The last couple of chapters are pretty hard and will&amp;nbsp; need a revisit ASAP. The presentation of the Y combinator as a consequence of recursion over the generation of functions is mind-blowing.&lt;/p&gt;
&lt;p&gt;This book make me feel that I know nothing about computing and need to learn everything again. And it's great!&lt;/p&gt;</description>
      <guid>http://www.eduardofv.com/read_post/21</guid>
    </item>
    <item>
      <title>The Culture Code</title>
      <link>http://www.eduardofv.com/read_post/18</link>
      <description>&lt;p&gt;&lt;a title="The book at amazon" href="http://www.amazon.com/Culture-Code-Ingenious-Understand-People/dp/0767920562"&gt;http://www.amazon.com/Culture-Code-Ingenious-Understand-People/dp/0767920562&lt;/a&gt;|Clotaire Rapaille|&lt;/p&gt;
&lt;p style="text-align: center;"&gt;&lt;img src="http://ecx.images-amazon.com/images/I/41D0NX48T2L._SL500_AA240_.jpg" alt="The Culture Code Cover" width="240" height="240" /&gt;&lt;/p&gt;
&lt;p style="text-align: left;"&gt;Dr. Rapaille describes in this book his discoveries on &lt;a title="Archetype description" href="http://en.wikipedia.org/wiki/Archetype"&gt;Archetypes&lt;/a&gt; applied to marketing. Gives a very general description of his method to uncover them using focus groups in extended sessions. One of the dissapointments about this book was my expectation to understand different cultures as it focus absolutely on the United States and a few topic on the French, English and German cultures. Some peeks to the Japanese and Italian. But that's it. Patethically Euro-American centered. Also, it's quite dissapointing the feeling left behind the attitude of being "more American than the Americans" o m&amp;aacute;s &lt;em&gt;gringo que los gringos&lt;/em&gt;, as the most common words are US, WE, OURS... It gets to a point in which is hard to say if an archetype, or "Code", is mostly a reflection of Dr. Rapaille's feelings.&lt;/p&gt;
&lt;p style="text-align: left;"&gt;Anyway, the insights given by the book are very interesting, as the sex/violence, food/fuel, money/proof... Most Codes are instructing and give us a peek on the perceived ingenuity, greed and results oriented attitudes we have of the americans.&lt;/p&gt;
&lt;p style="text-align: left;"&gt;[Hope I can extend this post as I re-scan the book]&lt;/p&gt;
&lt;p style="text-align: left;"&gt;&amp;nbsp;&lt;/p&gt;</description>
      <guid>http://www.eduardofv.com/read_post/18</guid>
    </item>
    <item>
      <title>Dunning-Kruger effect and Creativity</title>
      <link>http://www.eduardofv.com/read_post/20</link>
      <description>&lt;p&gt;I've recently found about the &lt;a title="Dunning-Kruger Effect on Wikipedia" href="http://en.wikipedia.org/wiki/Dunning-Kruger_effect"&gt;Dunning-Kruger effect&lt;/a&gt; on a blog post by &lt;a title="Steve's post" href="http://steve-yegge.blogspot.com/2008/06/done-and-gets-things-smart.html"&gt;Steve Yegge&lt;/a&gt;. Despite the fact I do like &lt;a title="Joel Spolsky Blog" href="http://www.joelonsoftware.com/"&gt;Joel's&lt;/a&gt; book and even have used his technique on a few recruiting process, I've found that for everyday businesses, even Smart&amp;amp;Get-things-done guys can be too hard to get.&lt;/p&gt;
&lt;p&gt;Anyway, the point I want to talk about is a side effect of Dunning-Kruger. While in college, in some classes, I would get to a point in which I knew almost nothing about something but was very creative about it, getting lot's of ideas to do things that I didn't knew in that moment were hard or impossible to do. The DK effect. But some of those ideas were worth trying for the learning. And even some of them, although they would be harder to execute than it initially appeared, were good ideas indeed. Because of DK, you don't know the limitations and thus your brain is free to create. When you get to know a lot about something, limitations and restrictions are evident and thus your brain restrain some of those ideas. Anyway, the truth is that some of those ideas could be accomplished and be good.&lt;/p&gt;
&lt;p&gt;Once, on a Digital Image Processing class, I had the idea of processing photographs of rooms, aisles, buildings, etc along with some makers. Then make a 3D projection of the markers to "infere" the dimensions of the room, making measurement of spaces simple as a click. At first, the idea sound great, and started working on the math. Then I passed through a disenchantment phase: it was like 1994, digital cameras weren't readily available, the math started to be harder than I knew and computing processing was not so easy to get. Then I quit the idea and moved forward. Now, I know better and maybe it was a good idea. I've seen some 3D projections based on 2D images and are awesome.&lt;/p&gt;
&lt;p&gt;That said, I will give a chance to those na&amp;iuml;ve ideas. Maybe someone could be good after all...&lt;/p&gt;</description>
      <guid>http://www.eduardofv.com/read_post/20</guid>
    </item>
    <item>
      <title>Easiest Permalink/PrettyURLs on Rails</title>
      <link>http://www.eduardofv.com/read_post/19</link>
      <description>&lt;p&gt;This is the simplest way I've found to get pretty permalinks and/or URLs for this blog (for SEO optimization): use a&lt;a href="http://weblog.rubyonrails.org/2007/2/4/how-to-get-more-literal-urls-and-still-use-ids"&gt; 37signals-like&lt;/a&gt; standard prefix the id of the post to the prettyfied version of the title of the blog. Use the following to Find the post:&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;pre&gt;def self.find_by_permalink(permalink)
  return(nil) unless permalink
  self.find(permalink.split("-")[0])
end&lt;/pre&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Use the following to build the permalink:&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;pre&gt;def permalink
    "#{self.id}-#{self.title.gsub(/[^a-z0-9]+/i,'-')}"
end&lt;/pre&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;</description>
      <guid>http://www.eduardofv.com/read_post/19</guid>
    </item>
    <item>
      <title>The Little Schemer</title>
      <link>http://www.eduardofv.com/read_post/16</link>
      <description>&lt;p&gt;&lt;a title="Amazon" href="http://www.amazon.com/Little-Schemer-Daniel-P-Friedman/dp/0262560992"&gt;http://www.amazon.com/Little-Schemer-Daniel-P-Friedman/dp/0262560992&lt;/a&gt;|Learn to think in Scheme|&lt;/p&gt;
&lt;p&gt;This is one of the best programming books ever. Refresh your mind by learning to think again.. this time, in Lisp.&lt;/p&gt;
&lt;p style="text-align: center;"&gt;&lt;a href="http://www.amazon.com/Little-Schemer-Daniel-P-Friedman/dp/0262560992"&gt;&lt;img style="vertical-align: middle;" src="http://ecx.images-amazon.com/images/I/41RWS3BB0VL._SL500_BO2,204,203,200_PIlitb-dp-500-arrow,TopRight,45,-64_OU01_AA240_SH20_.jpg" alt="The Little Schemer Cover" width="240" height="240" /&gt;&lt;/a&gt;&lt;/p&gt;</description>
      <guid>http://www.eduardofv.com/read_post/16</guid>
    </item>
    <item>
      <title>Truncate HTML output on Ruby (and Rails)</title>
      <link>http://www.eduardofv.com/read_post/17</link>
      <description>&lt;p&gt;For this little blog app, I needed to truncate the post length on the home. Of course it can't be done by a simple truncate since it can break HTML tags. I found &lt;a title="truncate in ruby" href="http://mikeburnscoder.wordpress.com/2006/11/11/truncating-html-in-ruby/"&gt;this awesome hack&lt;/a&gt; by Mike Burns.&lt;/p&gt;</description>
      <guid>http://www.eduardofv.com/read_post/17</guid>
    </item>
    <item>
      <title>Vendo mi casa</title>
      <link>http://www.eduardofv.com/read_post/15</link>
      <description>&lt;p&gt;&lt;a title="Vendo mi casa" href="../../casa" target="_blank"&gt;http://www.fusionmxsoftware.com/casa&lt;/a&gt;|en M&amp;eacute;xico D.F.&lt;/p&gt;</description>
      <guid>http://www.eduardofv.com/read_post/15</guid>
    </item>
    <item>
      <title>TED</title>
      <link>http://www.eduardofv.com/read_post/14</link>
      <description>&lt;p&gt;&lt;a title="TED" href="http://www.ted.com" target="_self"&gt;http://www.ted.com&lt;/a&gt;|Ideas&lt;/p&gt;</description>
      <guid>http://www.eduardofv.com/read_post/14</guid>
    </item>
    <item>
      <title>ERB with custom tag</title>
      <link>http://www.eduardofv.com/read_post/13</link>
      <description>&lt;p&gt;Ruby &lt;a title="ERB" href="http://www.ruby-doc.org/stdlib/libdoc/erb/rdoc/"&gt;ERB&lt;/a&gt; is a great library that let's you process a file and embed Ruby code within it using &amp;lt;% ... %&amp;gt; tags. As the file is processed, the code is evaluated and content may be replaced.&lt;/p&gt;
&lt;p&gt;This is generaly used with HTML (or RHTML as generally known). Rails does this.&lt;/p&gt;
&lt;p&gt;I'm now coding a generator for ASP scripts using ERB. As both ERB and ASP uses the &amp;lt;% &amp;lt;%= tags, I modified the original erb.rb file to use &amp;lt;@ &amp;lt;@= tags so the ASP code can be left as usual. Get the modified file &lt;a href="../erbmod.zip"&gt;here&lt;/a&gt;. If you want to use a diffent tag, I recommend to diff my file with the original erb.rb&lt;/p&gt;</description>
      <guid>http://www.eduardofv.com/read_post/13</guid>
    </item>
    <item>
      <title>How to *REALLY* disable ASP.NET viewstate</title>
      <link>http://www.eduardofv.com/read_post/12</link>
      <description>&lt;p&gt;&lt;!--[if gte mso 9]&gt;&lt;xml&gt; &lt;w:WordDocument&gt; &lt;w:View&gt;Normal&lt;/w:View&gt; &lt;w:Zoom&gt;0&lt;/w:Zoom&gt; &lt;w:TrackMoves /&gt; &lt;w:TrackFormatting /&gt; &lt;w:PunctuationKerning /&gt; &lt;w:ValidateAgainstSchemas /&gt; &lt;w:SaveIfXMLInvalid&gt;false&lt;/w:SaveIfXMLInvalid&gt; &lt;w:IgnoreMixedContent&gt;false&lt;/w:IgnoreMixedContent&gt; &lt;w:AlwaysShowPlaceholderText&gt;false&lt;/w:AlwaysShowPlaceholderText&gt; &lt;w:DoNotPromoteQF /&gt; &lt;w:LidThemeOther&gt;EN-US&lt;/w:LidThemeOther&gt; &lt;w:LidThemeAsian&gt;X-NONE&lt;/w:LidThemeAsian&gt; &lt;w:LidThemeComplexScript&gt;X-NONE&lt;/w:LidThemeComplexScript&gt; &lt;w:Compatibility&gt; &lt;w:BreakWrappedTables /&gt; &lt;w:SnapToGridInCell /&gt; &lt;w:WrapTextWithPunct /&gt; &lt;w:UseAsianBreakRules /&gt; &lt;w:DontGrowAutofit /&gt; &lt;w:SplitPgBreakAndParaMark /&gt; &lt;w:DontVertAlignCellWithSp /&gt; &lt;w:DontBreakConstrainedForcedTables /&gt; &lt;w:DontVertAlignInTxbx /&gt; &lt;w:Word11KerningPairs /&gt; &lt;w:CachedColBalance /&gt; &lt;/w:Compatibility&gt; &lt;w:BrowserLevel&gt;MicrosoftInternetExplorer4&lt;/w:BrowserLevel&gt; &lt;m:mathPr&gt; &lt;m:mathFont m:val="Cambria Math" /&gt; &lt;m:brkBin m:val="before" /&gt; &lt;m:brkBinSub m:val="&amp;#45;-" /&gt; &lt;m:smallFrac m:val="off" /&gt; &lt;m:dispDef /&gt; &lt;m:lMargin m:val="0" /&gt; &lt;m:rMargin m:val="0" /&gt; &lt;m:defJc m:val="centerGroup" /&gt; &lt;m:wrapIndent m:val="1440" /&gt; &lt;m:intLim m:val="subSup" /&gt; &lt;m:naryLim m:val="undOvr" /&gt; &lt;/m:mathPr&gt;&lt;/w:WordDocument&gt; &lt;/xml&gt;&lt;![endif]--&gt;&lt;!--[if gte mso 9]&gt;&lt;xml&gt; &lt;w:LatentStyles DefLockedState="false" DefUnhideWhenUsed="true"   DefSemiHidden="true" DefQFormat="false" DefPriority="99"   LatentStyleCount="267"&gt; &lt;w:LsdException Locked="false" Priority="0" SemiHidden="false"    UnhideWhenUsed="false" QFormat="true" Name="Normal" /&gt; &lt;w:LsdException Locked="false" Priority="9" SemiHidden="false"    UnhideWhenUsed="false" QFormat="true" Name="heading 1" /&gt; &lt;w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 2" /&gt; &lt;w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 3" /&gt; &lt;w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 4" /&gt; &lt;w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 5" /&gt; &lt;w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 6" /&gt; &lt;w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 7" /&gt; &lt;w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 8" /&gt; &lt;w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 9" /&gt; &lt;w:LsdException Locked="false" Priority="39" Name="toc 1" /&gt; &lt;w:LsdException Locked="false" Priority="39" Name="toc 2" /&gt; &lt;w:LsdException Locked="false" Priority="39" Name="toc 3" /&gt; &lt;w:LsdException Locked="false" Priority="39" Name="toc 4" /&gt; &lt;w:LsdException Locked="false" Priority="39" Name="toc 5" /&gt; &lt;w:LsdException Locked="false" Priority="39" Name="toc 6" /&gt; &lt;w:LsdException Locked="false" Priority="39" Name="toc 7" /&gt; &lt;w:LsdException Locked="false" Priority="39" Name="toc 8" /&gt; &lt;w:LsdException Locked="false" Priority="39" Name="toc 9" /&gt; &lt;w:LsdException Locked="false" Priority="35" QFormat="true" Name="caption" /&gt; &lt;w:LsdException Locked="false" Priority="10" SemiHidden="false"    UnhideWhenUsed="false" QFormat="true" Name="Title" /&gt; &lt;w:LsdException Locked="false" Priority="1" Name="Default Paragraph Font" /&gt; &lt;w:LsdException Locked="false" Priority="11" SemiHidden="false"    UnhideWhenUsed="false" QFormat="true" Name="Subtitle" /&gt; &lt;w:LsdException Locked="false" Priority="22" SemiHidden="false"    UnhideWhenUsed="false" QFormat="true" Name="Strong" /&gt; &lt;w:LsdException Locked="false" Priority="20" SemiHidden="false"    UnhideWhenUsed="false" QFormat="true" Name="Emphasis" /&gt; &lt;w:LsdException Locked="false" Priority="59" SemiHidden="false"    UnhideWhenUsed="false" Name="Table Grid" /&gt; &lt;w:LsdException Locked="false" UnhideWhenUsed="false" Name="Placeholder Text" /&gt; &lt;w:LsdException Locked="false" Priority="1" SemiHidden="false"    UnhideWhenUsed="false" QFormat="true" Name="No Spacing" /&gt; &lt;w:LsdException Locked="false" Priority="60" SemiHidden="false"    UnhideWhenUsed="false" Name="Light Shading" /&gt; &lt;w:LsdException Locked="false" Priority="61" SemiHidden="false"    UnhideWhenUsed="false" Name="Light List" /&gt; &lt;w:LsdException Locked="false" Priority="62" SemiHidden="false"    UnhideWhenUsed="false" Name="Light Grid" /&gt; &lt;w:LsdException Locked="false" Priority="63" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Shading 1" /&gt; &lt;w:LsdException Locked="false" Priority="64" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Shading 2" /&gt; &lt;w:LsdException Locked="false" Priority="65" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium List 1" /&gt; &lt;w:LsdException Locked="false" Priority="66" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium List 2" /&gt; &lt;w:LsdException Locked="false" Priority="67" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Grid 1" /&gt; &lt;w:LsdException Locked="false" Priority="68" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Grid 2" /&gt; &lt;w:LsdException Locked="false" Priority="69" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Grid 3" /&gt; &lt;w:LsdException Locked="false" Priority="70" SemiHidden="false"    UnhideWhenUsed="false" Name="Dark List" /&gt; &lt;w:LsdException Locked="false" Priority="71" SemiHidden="false"    UnhideWhenUsed="false" Name="Colorful Shading" /&gt; &lt;w:LsdException Locked="false" Priority="72" SemiHidden="false"    UnhideWhenUsed="false" Name="Colorful List" /&gt; &lt;w:LsdException Locked="false" Priority="73" SemiHidden="false"    UnhideWhenUsed="false" Name="Colorful Grid" /&gt; &lt;w:LsdException Locked="false" Priority="60" SemiHidden="false"    UnhideWhenUsed="false" Name="Light Shading Accent 1" /&gt; &lt;w:LsdException Locked="false" Priority="61" SemiHidden="false"    UnhideWhenUsed="false" Name="Light List Accent 1" /&gt; &lt;w:LsdException Locked="false" Priority="62" SemiHidden="false"    UnhideWhenUsed="false" Name="Light Grid Accent 1" /&gt; &lt;w:LsdException Locked="false" Priority="63" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Shading 1 Accent 1" /&gt; &lt;w:LsdException Locked="false" Priority="64" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Shading 2 Accent 1" /&gt; &lt;w:LsdException Locked="false" Priority="65" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium List 1 Accent 1" /&gt; &lt;w:LsdException Locked="false" UnhideWhenUsed="false" Name="Revision" /&gt; &lt;w:LsdException Locked="false" Priority="34" SemiHidden="false"    UnhideWhenUsed="false" QFormat="true" Name="List Paragraph" /&gt; &lt;w:LsdException Locked="false" Priority="29" SemiHidden="false"    UnhideWhenUsed="false" QFormat="true" Name="Quote" /&gt; &lt;w:LsdException Locked="false" Priority="30" SemiHidden="false"    UnhideWhenUsed="false" QFormat="true" Name="Intense Quote" /&gt; &lt;w:LsdException Locked="false" Priority="66" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium List 2 Accent 1" /&gt; &lt;w:LsdException Locked="false" Priority="67" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Grid 1 Accent 1" /&gt; &lt;w:LsdException Locked="false" Priority="68" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Grid 2 Accent 1" /&gt; &lt;w:LsdException Locked="false" Priority="69" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Grid 3 Accent 1" /&gt; &lt;w:LsdException Locked="false" Priority="70" SemiHidden="false"    UnhideWhenUsed="false" Name="Dark List Accent 1" /&gt; &lt;w:LsdException Locked="false" Priority="71" SemiHidden="false"    UnhideWhenUsed="false" Name="Colorful Shading Accent 1" /&gt; &lt;w:LsdException Locked="false" Priority="72" SemiHidden="false"    UnhideWhenUsed="false" Name="Colorful List Accent 1" /&gt; &lt;w:LsdException Locked="false" Priority="73" SemiHidden="false"    UnhideWhenUsed="false" Name="Colorful Grid Accent 1" /&gt; &lt;w:LsdException Locked="false" Priority="60" SemiHidden="false"    UnhideWhenUsed="false" Name="Light Shading Accent 2" /&gt; &lt;w:LsdException Locked="false" Priority="61" SemiHidden="false"    UnhideWhenUsed="false" Name="Light List Accent 2" /&gt; &lt;w:LsdException Locked="false" Priority="62" SemiHidden="false"    UnhideWhenUsed="false" Name="Light Grid Accent 2" /&gt; &lt;w:LsdException Locked="false" Priority="63" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Shading 1 Accent 2" /&gt; &lt;w:LsdException Locked="false" Priority="64" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Shading 2 Accent 2" /&gt; &lt;w:LsdException Locked="false" Priority="65" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium List 1 Accent 2" /&gt; &lt;w:LsdException Locked="false" Priority="66" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium List 2 Accent 2" /&gt; &lt;w:LsdException Locked="false" Priority="67" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Grid 1 Accent 2" /&gt; &lt;w:LsdException Locked="false" Priority="68" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Grid 2 Accent 2" /&gt; &lt;w:LsdException Locked="false" Priority="69" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Grid 3 Accent 2" /&gt; &lt;w:LsdException Locked="false" Priority="70" SemiHidden="false"    UnhideWhenUsed="false" Name="Dark List Accent 2" /&gt; &lt;w:LsdException Locked="false" Priority="71" SemiHidden="false"    UnhideWhenUsed="false" Name="Colorful Shading Accent 2" /&gt; &lt;w:LsdException Locked="false" Priority="72" SemiHidden="false"    UnhideWhenUsed="false" Name="Colorful List Accent 2" /&gt; &lt;w:LsdException Locked="false" Priority="73" SemiHidden="false"    UnhideWhenUsed="false" Name="Colorful Grid Accent 2" /&gt; &lt;w:LsdException Locked="false" Priority="60" SemiHidden="false"    UnhideWhenUsed="false" Name="Light Shading Accent 3" /&gt; &lt;w:LsdException Locked="false" Priority="61" SemiHidden="false"    UnhideWhenUsed="false" Name="Light List Accent 3" /&gt; &lt;w:LsdException Locked="false" Priority="62" SemiHidden="false"    UnhideWhenUsed="false" Name="Light Grid Accent 3" /&gt; &lt;w:LsdException Locked="false" Priority="63" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Shading 1 Accent 3" /&gt; &lt;w:LsdException Locked="false" Priority="64" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Shading 2 Accent 3" /&gt; &lt;w:LsdException Locked="false" Priority="65" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium List 1 Accent 3" /&gt; &lt;w:LsdException Locked="false" Priority="66" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium List 2 Accent 3" /&gt; &lt;w:LsdException Locked="false" Priority="67" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Grid 1 Accent 3" /&gt; &lt;w:LsdException Locked="false" Priority="68" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Grid 2 Accent 3" /&gt; &lt;w:LsdException Locked="false" Priority="69" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Grid 3 Accent 3" /&gt; &lt;w:LsdException Locked="false" Priority="70" SemiHidden="false"    UnhideWhenUsed="false" Name="Dark List Accent 3" /&gt; &lt;w:LsdException Locked="false" Priority="71" SemiHidden="false"    UnhideWhenUsed="false" Name="Colorful Shading Accent 3" /&gt; &lt;w:LsdException Locked="false" Priority="72" SemiHidden="false"    UnhideWhenUsed="false" Name="Colorful List Accent 3" /&gt; &lt;w:LsdException Locked="false" Priority="73" SemiHidden="false"    UnhideWhenUsed="false" Name="Colorful Grid Accent 3" /&gt; &lt;w:LsdException Locked="false" Priority="60" SemiHidden="false"    UnhideWhenUsed="false" Name="Light Shading Accent 4" /&gt; &lt;w:LsdException Locked="false" Priority="61" SemiHidden="false"    UnhideWhenUsed="false" Name="Light List Accent 4" /&gt; &lt;w:LsdException Locked="false" Priority="62" SemiHidden="false"    UnhideWhenUsed="false" Name="Light Grid Accent 4" /&gt; &lt;w:LsdException Locked="false" Priority="63" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Shading 1 Accent 4" /&gt; &lt;w:LsdException Locked="false" Priority="64" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Shading 2 Accent 4" /&gt; &lt;w:LsdException Locked="false" Priority="65" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium List 1 Accent 4" /&gt; &lt;w:LsdException Locked="false" Priority="66" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium List 2 Accent 4" /&gt; &lt;w:LsdException Locked="false" Priority="67" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Grid 1 Accent 4" /&gt; &lt;w:LsdException Locked="false" Priority="68" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Grid 2 Accent 4" /&gt; &lt;w:LsdException Locked="false" Priority="69" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Grid 3 Accent 4" /&gt; &lt;w:LsdException Locked="false" Priority="70" SemiHidden="false"    UnhideWhenUsed="false" Name="Dark List Accent 4" /&gt; &lt;w:LsdException Locked="false" Priority="71" SemiHidden="false"    UnhideWhenUsed="false" Name="Colorful Shading Accent 4" /&gt; &lt;w:LsdException Locked="false" Priority="72" SemiHidden="false"    UnhideWhenUsed="false" Name="Colorful List Accent 4" /&gt; &lt;w:LsdException Locked="false" Priority="73" SemiHidden="false"    UnhideWhenUsed="false" Name="Colorful Grid Accent 4" /&gt; &lt;w:LsdException Locked="false" Priority="60" SemiHidden="false"    UnhideWhenUsed="false" Name="Light Shading Accent 5" /&gt; &lt;w:LsdException Locked="false" Priority="61" SemiHidden="false"    UnhideWhenUsed="false" Name="Light List Accent 5" /&gt; &lt;w:LsdException Locked="false" Priority="62" SemiHidden="false"    UnhideWhenUsed="false" Name="Light Grid Accent 5" /&gt; &lt;w:LsdException Locked="false" Priority="63" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Shading 1 Accent 5" /&gt; &lt;w:LsdException Locked="false" Priority="64" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Shading 2 Accent 5" /&gt; &lt;w:LsdException Locked="false" Priority="65" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium List 1 Accent 5" /&gt; &lt;w:LsdException Locked="false" Priority="66" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium List 2 Accent 5" /&gt; &lt;w:LsdException Locked="false" Priority="67" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Grid 1 Accent 5" /&gt; &lt;w:LsdException Locked="false" Priority="68" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Grid 2 Accent 5" /&gt; &lt;w:LsdException Locked="false" Priority="69" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Grid 3 Accent 5" /&gt; &lt;w:LsdException Locked="false" Priority="70" SemiHidden="false"    UnhideWhenUsed="false" Name="Dark List Accent 5" /&gt; &lt;w:LsdException Locked="false" Priority="71" SemiHidden="false"    UnhideWhenUsed="false" Name="Colorful Shading Accent 5" /&gt; &lt;w:LsdException Locked="false" Priority="72" SemiHidden="false"    UnhideWhenUsed="false" Name="Colorful List Accent 5" /&gt; &lt;w:LsdException Locked="false" Priority="73" SemiHidden="false"    UnhideWhenUsed="false" Name="Colorful Grid Accent 5" /&gt; &lt;w:LsdException Locked="false" Priority="60" SemiHidden="false"    UnhideWhenUsed="false" Name="Light Shading Accent 6" /&gt; &lt;w:LsdException Locked="false" Priority="61" SemiHidden="false"    UnhideWhenUsed="false" Name="Light List Accent 6" /&gt; &lt;w:LsdException Locked="false" Priority="62" SemiHidden="false"    UnhideWhenUsed="false" Name="Light Grid Accent 6" /&gt; &lt;w:LsdException Locked="false" Priority="63" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Shading 1 Accent 6" /&gt; &lt;w:LsdException Locked="false" Priority="64" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Shading 2 Accent 6" /&gt; &lt;w:LsdException Locked="false" Priority="65" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium List 1 Accent 6" /&gt; &lt;w:LsdException Locked="false" Priority="66" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium List 2 Accent 6" /&gt; &lt;w:LsdException Locked="false" Priority="67" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Grid 1 Accent 6" /&gt; &lt;w:LsdException Locked="false" Priority="68" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Grid 2 Accent 6" /&gt; &lt;w:LsdException Locked="false" Priority="69" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Grid 3 Accent 6" /&gt; &lt;w:LsdException Locked="false" Priority="70" SemiHidden="false"    UnhideWhenUsed="false" Name="Dark List Accent 6" /&gt; &lt;w:LsdException Locked="false" Priority="71" SemiHidden="false"    UnhideWhenUsed="false" Name="Colorful Shading Accent 6" /&gt; &lt;w:LsdException Locked="false" Priority="72" SemiHidden="false"    UnhideWhenUsed="false" Name="Colorful List Accent 6" /&gt; &lt;w:LsdException Locked="false" Priority="73" SemiHidden="false"    UnhideWhenUsed="false" Name="Colorful Grid Accent 6" /&gt; &lt;w:LsdException Locked="false" Priority="19" SemiHidden="false"    UnhideWhenUsed="false" QFormat="true" Name="Subtle Emphasis" /&gt; &lt;w:LsdException Locked="false" Priority="21" SemiHidden="false"    UnhideWhenUsed="false" QFormat="true" Name="Intense Emphasis" /&gt; &lt;w:LsdException Locked="false" Priority="31" SemiHidden="false"    UnhideWhenUsed="false" QFormat="true" Name="Subtle Reference" /&gt; &lt;w:LsdException Locked="false" Priority="32" SemiHidden="false"    UnhideWhenUsed="false" QFormat="true" Name="Intense Reference" /&gt; &lt;w:LsdException Locked="false" Priority="33" SemiHidden="false"    UnhideWhenUsed="false" QFormat="true" Name="Book Title" /&gt; &lt;w:LsdException Locked="false" Priority="37" Name="Bibliography" /&gt; &lt;w:LsdException Locked="false" Priority="39" QFormat="true" Name="TOC Heading" /&gt; &lt;/w:LatentStyles&gt; &lt;/xml&gt;&lt;![endif]--&gt; The .NET Framework and ASP.NET have some aspects that sometimes really annoys me. One of these is the infamous &lt;a href="http://msdn.microsoft.com/en-us/library/ms972976.aspx#viewstate_topic5"&gt;&lt;strong&gt;__VIEWSTATE&lt;/strong&gt;&lt;/a&gt; used to track the state of all the controls in the page.&amp;nbsp; What is annoying about it is that it&amp;rsquo;s both a &lt;a href="http://scottonwriting.net/sowblog/posts/3747.aspx"&gt;security breach &lt;/a&gt;and a &lt;a href="http://articles.techrepublic.com.com/5100-10878_11-5229520.html"&gt;performance issue&lt;/a&gt;. Also, makes easy things hard.&lt;/p&gt;
&lt;p&gt;I wanted to remove it from an app I&amp;rsquo;m working on, so I started disabling it &lt;a href="http://msdn.microsoft.com/en-us/library/system.web.ui.control.enableviewstate.aspx"&gt;as suggested by MS&lt;/a&gt;. The &lt;strong&gt;VIEWSTATE &lt;/strong&gt;is effectively not used but it stills yields the hidden input field to detect the Postback. This is a nag since this form is performing a GET action and the &lt;strong&gt;__VIEWSTATE&lt;/strong&gt; is passed as part of the QueryString. After some Googling I found a method suggested by &lt;a href="http://www.hanselman.com/blog/MovingViewStateToTheBottomOfThePage.aspx"&gt;Scott Hanselman&lt;/a&gt; to move the position of the input field. I just adapted to plainly remove the complete thing as shown below:&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; protected override void Render(HtmlTextWriter writer)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; var sw = new StringWriter();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; var htmlWriter = new HtmlTextWriter(sw);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; base.Render(htmlWriter);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; string html = sw.ToString();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; int start = html.IndexOf("&amp;lt;input type=\"hidden\" name=\"__VIEWSTATE\"");&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (start &amp;gt; 0)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; int end = html.IndexOf("/&amp;gt;", start) + 2;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; html = html.Remove(start, end - start);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; writer.Write(html);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/p&gt;
&lt;p&gt;&lt;br /&gt;All this code just to get a simple, common, standard query string.&lt;/p&gt;</description>
      <guid>http://www.eduardofv.com/read_post/12</guid>
    </item>
    <item>
      <title>Yet another MapReduce implementation in Ruby</title>
      <link>http://www.eduardofv.com/read_post/11</link>
      <description>&lt;p&gt;&lt;sup&gt;This post is on construction.&lt;/sup&gt;&lt;/p&gt;
&lt;p&gt;I'm working on a Recommendations engine. As some processes may be lengthy, I'm also implementing a simple MapReduce framework using a Ruby/DRb schema. I tried &lt;a href="http://skynet.rubyforge.org/" target="_blank"&gt;Skynet&lt;/a&gt; for a while but it looks inmature, and I needed something simple and fast to implement.&lt;/p&gt;
&lt;h3&gt;The Server - Worker&lt;/h3&gt;
&lt;p&gt;The DRb server was pretty simple to implement. I just wrapped my Recommendations engine on a single class and created a function for starting it as a DRb server:&lt;/p&gt;
&lt;pre&gt;&lt;p&gt;def start_server&lt;br /&gt;&amp;nbsp; uri="druby://0.0.0.0:#{ARGV[0]||'5850'}"&lt;br /&gt;&amp;nbsp; trap("INT"){puts("Interrupted"); DRb.thread.exit}&lt;br /&gt;&amp;nbsp; DRb.start_service(uri, RecommendationsServer.new)&lt;br /&gt;&amp;nbsp; puts("Listening #{uri}")&lt;br /&gt;&amp;nbsp; DRb.thread.join&lt;br /&gt;end&lt;/p&gt;&lt;/pre&gt;
&lt;p&gt;Just run the server on every processor to which you can distribute some processing load.&lt;/p&gt;
&lt;h3&gt;The Client - Controller&lt;/h3&gt;
&lt;p&gt;Next, I crafted a simple program that implemented the MapReduce model by segmenting an array with the data to process, distribute the segments to the workers and yielding the disered operation (which must be defined on the worker server class).&lt;/p&gt;
&lt;pre&gt;&lt;p&gt;#map&lt;br /&gt;# data&amp;nbsp; : hash to be mapped to @workers&lt;br /&gt;# worker_object and segment are yielded&lt;br /&gt;def map(data)&lt;br /&gt;&amp;nbsp; #data = @apps #version lineal (sin procedimiento)&lt;br /&gt;&amp;nbsp; threads=[]&lt;br /&gt;&amp;nbsp; result={}&lt;br /&gt;&amp;nbsp; inicio = 0&lt;br /&gt;&amp;nbsp; #sec_len = data.keys.length / @workers.length #cargas iguales&lt;br /&gt;&amp;nbsp; @workers.each do |worker_uri,porcentaje_carga|&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; threads &amp;lt;&amp;lt; Thread.new( &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; #:prefs=&amp;gt;prefs, #carga igual &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; :segmento=&amp;gt;segmento(data.keys,inicio,porcentaje_carga),&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; #:selection=&amp;gt;@apps.keys[worker_n*sec_len..(1+worker_n)*sec_len], #carga igual entre procesos&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; :worker_uri=&amp;gt;worker_uri) do |p|&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; msg("Spawning worker with #{porcentaje_carga}% load @ #{p[:worker_uri]} ")&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; worker_object = DRbObject.new(nil,p[:worker_uri])&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; result["result_#{worker_uri}"] = yield(worker_object,p[:segmento])&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; #result["result_#{worker_uri}"] = worker_object.calculated_matrix(:prefs=&amp;gt;p[:prefs], :selection=&amp;gt;p[:selection], :type=&amp;gt;:similar, :print=&amp;gt;true)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; end&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; inicio += long_segmento(data.keys.length,porcentaje_carga)&lt;br /&gt;&amp;nbsp; end&lt;br /&gt;&amp;nbsp; threads.each{|t| t.join}&lt;br /&gt;&amp;nbsp; return result&lt;br /&gt;end&lt;br /&gt;&lt;br /&gt;def reduce(result_set,output_filename=nil,result_set_name=nil)&lt;br /&gt;&amp;nbsp; r = {}&lt;br /&gt;&amp;nbsp; result_set.each_value{|worker_result| r.merge!(worker_result) if worker_result}&lt;br /&gt;&lt;br /&gt;&amp;nbsp; if output_filename&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; File.open(output_filename,"w") do |f|&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; f.write("#{result_set_name||'result'}=#{r.inspect}")&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; end&lt;br /&gt;&amp;nbsp; end&lt;br /&gt;&lt;br /&gt;&amp;nbsp; return r&lt;/p&gt;
end&lt;/pre&gt;
&lt;p&gt;Simplify the process of calling a whole MapReduce cycle:&lt;/p&gt;
&lt;pre&gt;&lt;p&gt;#args:&lt;br /&gt;#&amp;nbsp; :prefs=&amp;gt; conjunto de datos&lt;br /&gt;#&amp;nbsp; :type=&amp;gt; tipo de matriz a calcular&lt;br /&gt;#&amp;nbsp; :output_filename =&amp;gt; archivo de salida&lt;br /&gt;def map_reduce(args)&lt;br /&gt;&amp;nbsp; msg(args[:process_name]) if args[:process_name]&lt;br /&gt;&lt;br /&gt;&amp;nbsp; #map&lt;br /&gt;&amp;nbsp; start = Time.now&lt;br /&gt;&amp;nbsp; msg("Mapping...")&lt;br /&gt;&amp;nbsp; result_set = map(args[:data]){|worker_object,segmento| &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; #worker_object.calculated_matrix(:prefs=&amp;gt;args[:data],:selection=&amp;gt;segmento,:type=&amp;gt;args[:type],:print=&amp;gt;:true)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; yield(worker_object,segmento)&lt;br /&gt;&amp;nbsp; }&lt;br /&gt;&amp;nbsp; msg_ok(start)&lt;br /&gt;&lt;br /&gt;&amp;nbsp; #reduce&lt;br /&gt;&amp;nbsp; msg("Reducing...")&lt;br /&gt;&amp;nbsp; start_red = Time.now&lt;br /&gt;&amp;nbsp; r=reduce(result_set,args[:output_filename],args[:result_set_name])&lt;br /&gt;&amp;nbsp; msg_ok(start_red)&lt;br /&gt;&lt;br /&gt;&amp;nbsp; msg_ok(start,"#{args[:process_name]} finished") if args[:process_name]&lt;br /&gt;&amp;nbsp; return r&lt;/p&gt;
end&lt;/pre&gt;
&lt;p&gt;Finally, calling the MapReduce complete process is as simple as:&lt;/p&gt;
&lt;pre&gt;&lt;p&gt;&amp;nbsp; ub_recs = map_reduce(&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; :data=&amp;gt;@apps,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; :process_name=&amp;gt;'Calculating user based recommendations',&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; :output_filename=&amp;gt;'__ub_recs.rb',&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; :result_set_name=&amp;gt;'@@ub_recs') do |worker_object,segmento|&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; worker_object.calculated_matrix(:prefs=&amp;gt;@apps,:selection=&amp;gt;segmento,:type=&amp;gt;:recommendations,:print=&amp;gt;true)&lt;/p&gt;
&amp;nbsp; end&lt;/pre&gt;
&lt;p&gt;The yield keyword passes the segmented data and operation parameters to the worker process.&lt;/p&gt;
&lt;p&gt;Later, I'll post on how to load-balance between workers, which proved to be both critical and trickier than first apperared.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;</description>
      <guid>http://www.eduardofv.com/read_post/11</guid>
    </item>
    <item>
      <title>Firefox 3/2 side-by-side on Windows</title>
      <link>http://www.eduardofv.com/read_post/10</link>
      <description>&lt;p&gt;Want to use FF2/3 side by side? Check &lt;a href="http://blog.codefront.net/2007/08/20/how-to-have-firefox-3-and-firefox-2-running-at-the-same-time/" target="_blank"&gt;this&lt;/a&gt;. Although it describes the procedure for Mac/Linux, everything is almost the same for Windows. Just check this recommendations:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Download the *.win32.zip from the &lt;a href="http://ftp.mozilla.org/pub/mozilla.org/firefox/nightly/latest-trunk/" target="_blank"&gt;night build&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;Unpack on a new directory, say \Program Files\Mozilla Firefox 3&lt;/li&gt;
&lt;li&gt;Create the new profile as described&lt;/li&gt;
&lt;li&gt;Create a shortcut to \Program Files\Mozilla Firefox 3\firefox.exe with options:&lt;br /&gt;
&lt;pre&gt; -P newprofile -no-remote&lt;/pre&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;That's it!&lt;/p&gt;</description>
      <guid>http://www.eduardofv.com/read_post/10</guid>
    </item>
    <item>
      <title>On Ruby &amp;amp; Python Performance</title>
      <link>http://www.eduardofv.com/read_post/9</link>
      <description>&lt;p&gt;I'm working on some algorithms taken from the amazing book &lt;a href="http://www.amazon.com/Programming-Collective-Intelligence-Building-Applications/dp/0596529325/ref=pd_bbs_sr_1?ie=UTF8&amp;amp;s=books&amp;amp;qid=1210725539&amp;amp;sr=8-1 "&gt;"Collective Intelligence"&lt;/a&gt; by Toby Segaran. Some of these algorithms can be pretty computing intensive, so I'm working also in _yet another implementation_ of &lt;a href="http://labs.google.com/papers/mapreduce.html"&gt; MapReduce&lt;/a&gt; on Ruby/DRb. So I had to re-implement Toby's Python algorithms on Ruby, which pretty straightforward.&lt;/p&gt;
&lt;p&gt;This is a little chart of the processing time of one of the algorithms running on different languages/implementations with the same data subset.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;table style="height: 100px;" border="0" width="340"&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;th&gt;Language&lt;/th&gt;&lt;th&gt;Version&lt;/th&gt;&lt;th&gt;Time&lt;/th&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Ruby&lt;/td&gt;
&lt;td&gt;1.8.6&lt;/td&gt;
&lt;td&gt;16.6 seg&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Python&lt;/td&gt;
&lt;td&gt;2.5.4&lt;/td&gt;
&lt;td&gt;4.15 seg&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;IronPython&lt;/td&gt;
&lt;td&gt;1.1.1&lt;/td&gt;
&lt;td&gt;10.45 seg&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Ruby&lt;/td&gt;
&lt;td&gt;MapReduced&lt;/td&gt;
&lt;td&gt;10.65 seg&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;</description>
      <guid>http://www.eduardofv.com/read_post/9</guid>
    </item>
    <item>
      <title>Pruebas</title>
      <link>http://www.eduardofv.com/read_post/8</link>
      <description>Pruebas</description>
      <guid>http://www.eduardofv.com/read_post/8</guid>
    </item>
    <item>
      <title>Nuevo Blog</title>
      <link>http://www.eduardofv.com/read_post/7</link>
      <description>Moviendome nuevamente, del viejo blog en "Blogspot":http://eduardoflores.blogspot.com

&#195;&#8218;&#194;&#161;Espero que este funcione mucho mejor!
</description>
      <guid>http://www.eduardofv.com/read_post/7</guid>
    </item>
  </channel>
</rss>

