<?xml version="1.0" encoding="iso-8859-1"?>
<?xml-stylesheet href="http://www.taniquetil.com.ar/plog/styles/rss.css" type="text/css"?>
<rss version="2.0" 
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
    xmlns:atom="http://www.w3.org/2005/Atom"
>
 <channel>
  <title>Bitácora de Vuelo - Facundo Batista</title>
  <link>http://www.taniquetil.com.ar/plog/blog/1</link>
  <description> Blog de Facundo Batista 
</description>
  <pubDate>Thu, 09 Sep 2010 05:25:22 +0000</pubDate>
  <generator>http://www.lifetype.net</generator>
    <item>
   <title>Un video más de Felipe</title>
   <description>
    &lt;br /&gt;Con fotos del sexto mes (sí, venimos un poco atrasados...). 
&lt;br /&gt;&lt;br /&gt;
Es cortito, pero interesante, hagan click en la foto.
&lt;br /&gt;&lt;br /&gt;
&lt;a href=&quot;http://www.taniquetil.com.ar/facundo/FelipeSextoMes.ogv&quot;&gt;&lt;img src=&quot;http://www.taniquetil.com.ar/facundo/imgs/felipemes6.jpeg&quot; alt=&quot;Click para ver el video&quot; /&gt;&lt;/a&gt;
   </description>
   <link>http://www.taniquetil.com.ar/plog/post/1/480</link>
   <comments>http://www.taniquetil.com.ar/plog/post/1/480</comments>
   <guid>http://www.taniquetil.com.ar/plog/post/1/480</guid>
      <dc:creator>facundo</dc:creator>
      
    <category>General</category>
         <pubDate>Wed, 08 Sep 2010 05:01:02 +0300</pubDate>
   <source url="http://www.taniquetil.com.ar/plog/rss/rss20/1">Bitácora de Vuelo - Facundo Batista</source>
     </item>
    <item>
   <title>Python Argentina, la historia</title>
   <description>
    &lt;br /&gt;
&lt;em&gt;El siguiente texto form&amp;oacute; parte de la Primera Edici&amp;oacute;n de &lt;a href=&quot;http://revista.python.org.ar/&quot;&gt;PET - Python Entre Todos&lt;/a&gt;, la revista de PyAr. Tiene un mont&amp;oacute;n de art&amp;iacute;culos copados, y la pueden ver online, o bajarla en PDF en distintos formatos. En la semana va a salir el mismo n&amp;uacute;mero, pero en ingl&amp;eacute;s, y esperamos una segunda edici&amp;oacute;n prontito. &amp;iexcl;Disfr&amp;uacute;tenla!&lt;/em&gt;&lt;br /&gt;
&lt;em&gt;&lt;br /&gt;
Ahora, el art&amp;iacute;culo.&lt;/em&gt;&lt;br /&gt;
&lt;br /&gt;
Conoc&amp;iacute; Python en el 2001, buscando un lenguaje piola para trabajar en entornos Unix y Windows, y frustrado por algunas experiencias anteriores. Inmediatamente v&amp;iacute; que era algo que me gustaba, y comenc&amp;eacute; a invertir tiempo, aprendiendo y profundizando en &amp;eacute;l.&lt;br /&gt;
&lt;br /&gt;
No conoc&amp;iacute;a muchos que usaran este lenguaje. S&amp;iacute;, estaba la lista de Python en espa&amp;ntilde;ol, y la lista en ingl&amp;eacute;s, pero no ten&amp;iacute;a contacto con otros argentinos que programaran en &amp;eacute;l (m&amp;aacute;s que un par de compa&amp;ntilde;eros de trabajo). Buscando gente, ca&amp;iacute; en un sitio que organizaba reuniones de todo tipo, me anot&amp;eacute;, pero nada.&lt;br /&gt;
&lt;br /&gt;
Lleg&amp;oacute; el 2004. Pablo Ziliani (m&amp;aacute;s conocido como &lt;em&gt;un tal Pablo&lt;/em&gt;) encontr&amp;oacute; el mismo sitio pero lo tom&amp;oacute;, lo sac&amp;oacute; de su hibernaci&amp;oacute;n, y mand&amp;oacute; invitaci&amp;oacute;n para juntarnos.&lt;br /&gt;
&lt;br /&gt;
Esta juntada fue finalmente la Primera Reuni&amp;oacute;n de Python Argentina. Nos encontramos en un bar c&amp;eacute;ntrico, el 9 de Septiembre de 2004, Pablo, un chico llamado Javier que no volvimos a ver, y el que suscribe.&lt;br /&gt;
&lt;br /&gt;
Aunque s&amp;oacute;lo charlamos de generalidades alrededor de Python, el &amp;iacute;mpetu no qued&amp;oacute; ah&amp;iacute; y con esa base se organiz&amp;oacute; la pr&amp;oacute;xima reuni&amp;oacute;n, en la que ya se empez&amp;oacute; a formar el grupo propiamente dicho.&lt;br /&gt;
&lt;br /&gt;
En esta segunda reuni&amp;oacute;n, a fines de Octubre, se bautiz&amp;oacute; al grupo como &amp;ldquo;PyAr - Python Argentina&amp;rdquo;, y decidimos crear la lista de correo y establecer un portal web donde se den a conocer los objetivos y actividades del grupo, las instrucciones para participar, enlaces a informaci&amp;oacute;n &amp;uacute;til, y generar contenido propio (como por ejemplo experiencias locales en el uso de Python).&lt;br /&gt;
&lt;br /&gt;
El primer a&amp;ntilde;o del grupo pas&amp;oacute; a pura reuni&amp;oacute;n. Darnos a conocer no era f&amp;aacute;cil, y aunque hac&amp;iacute;amos promedio una reuni&amp;oacute;n por mes, &amp;eacute;ramos entre cuatro y siete personas, siempre los mismos. Pero en funci&amp;oacute;n de llegar a m&amp;aacute;s gente fue que en la reuni&amp;oacute;n de Agosto del 2005 decidimos participar en CaFeConf 2005, las Jornadas Abiertas de GNU/Linux y Software Libre organizadas por CaFeLUG. Presentamos entonces dos charlas para dicha conferencia, Lucio di&amp;oacute; una sobre PyGame y yo una de introducci&amp;oacute;n a Python.&lt;br /&gt;
&lt;br /&gt;
Las primeras reuniones del 2006 nos encontraron ya con m&amp;aacute;s gente (entre diez y veinte por reuni&amp;oacute;n), y discutiendo sobre otros temas a nivel de grupo m&amp;aacute;s all&amp;aacute; de la difusi&amp;oacute;n. Est&amp;aacute;bamos con la creaci&amp;oacute;n de las primeras remeras, Ricardo hab&amp;iacute;a creado un canal de IRC en Freenode (el viejo &lt;em&gt;#python-ar&lt;/em&gt;), y Alecu propon&amp;iacute;a formalizar un poco el tema de las reuniones, creando un procedimiento para las mismas.&lt;br /&gt;
&lt;br /&gt;
Tambi&amp;eacute;n con estructuras m&amp;aacute;s afianzadas se empezaron a barajar otros desaf&amp;iacute;os, como reuniones en interior del pa&amp;iacute;s, traer alg&amp;uacute;n invitado internacional a CaFeConf 2006, traducir documentaci&amp;oacute;n oficial de Python, y algo que en su momento se llam&amp;oacute; NERDcamp...&lt;br /&gt;
&lt;br /&gt;
En Febrero de ese a&amp;ntilde;o yo realic&amp;eacute; mi primer viaje a PyCon USA (la conferencia de Python m&amp;aacute;s importante del mundo), donde PyAr comenz&amp;oacute; a hacerse visible m&amp;aacute;s all&amp;aacute; de nuestras fronteras, no s&amp;oacute;lo porque d&amp;iacute; una Lightning Talk de nuestro grupo, sino porque aprovech&amp;eacute; para vender muchas de las remeras que hab&amp;iacute;amos hecho.&lt;br /&gt;
&lt;br /&gt;
En reuniones de esa primera parte del a&amp;ntilde;o tambi&amp;eacute;n hablamos sobre el contenido de la lista de correo (si la separamos en sub listas o qu&amp;eacute; hacemos para limitar las conversaciones no espec&amp;iacute;ficas a Python; esta discusi&amp;oacute;n la seguimos teniendo hoy en d&amp;iacute;a...), hablamos del D&amp;iacute;a Python realizado en Mendoza, y charlamos sobre c&amp;oacute;mo organizar el grupo a nivel estructura: si &amp;iacute;bamos a definir /cargos/ dentro del grupo, o seguir como est&amp;aacute;bamos en una estructura plana sin presidentes ni presididos.&lt;br /&gt;
&lt;br /&gt;
La organizaci&amp;oacute;n del grupo merece un p&amp;aacute;rrafo aparte. Desde el comienzo de Python Argentina hasta ahora no hubieron nunca personas con cargos espec&amp;iacute;ficos, sino que siempre mantuvimos una muy saludable anarqu&amp;iacute;a, en donde hab&amp;iacute;a una asociaci&amp;oacute;n y un pacto voluntario entre las personas del grupo que quisieran llevar alg&amp;uacute;n proyecto interno adelante, sin necesidad de &amp;quot;decisiones oficiales&amp;quot; que impongan recorridos al resto de las personas del grupo. En otras palabras, si alguien en PyAr desea empujar un proyecto, s&amp;oacute;lo tiene que hacerlo, y tendr&amp;aacute; m&amp;aacute;s o menos participantes y/o ayudantes en funci&amp;oacute;n de si el proyecto es interesante o no, pero no tiene que &amp;quot;oficializarlo&amp;quot;, o pedir aprobaci&amp;oacute;n sobre el mismo.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;strong&gt;Siguiendo con la historia&lt;/strong&gt;&lt;br /&gt;
&lt;br /&gt;
En Junio del 2006 se realiz&amp;oacute; la Primer Jornada Python Santa Fe, en la Universidad Tecnol&amp;oacute;gica Nacional, ciudad y provincia de, justamente, Santa Fe. Las jornadas fueron un &amp;eacute;xito, y en la reuni&amp;oacute;n / sprint posterior a las mismas (mientras com&amp;iacute;amos pizza y habl&amp;aacute;bamos de todo un poco) se empez&amp;oacute; a trabajar en un proyecto importante para el grupo: una versi&amp;oacute;n offline de la Wikipedia. Este evento nos motiv&amp;oacute; bastante, y en la reuni&amp;oacute;n siguiente Pablo Ziliani&amp;nbsp; sugiri&amp;oacute; que tratemos de ponernos como objetivo &amp;quot;organizar una reuni&amp;oacute;n /federal/ al menos una vez al a&amp;ntilde;o&amp;quot;, y decidimos que quer&amp;iacute;amos tener una bandera de PyAr.&lt;br /&gt;
&lt;br /&gt;
Septiembre del 2006 nos encontr&amp;oacute; participando en la tercera edici&amp;oacute;n de PyWeek, una competencia internacional en la que se debe programar un juego en Python en una semana, arrancando desde cero y terminando con algo que prueban el resto de los competidores. No era la primera vez que particip&amp;aacute;bamos, pero en esta oportunidad uno de los grupos de PyAr gan&amp;oacute; la competencia con el juego Typus Pocus (&amp;iexcl;y otro grupo nuestro qued&amp;oacute; tercero!).&lt;br /&gt;
&lt;br /&gt;
La segunda mitad del a&amp;ntilde;o no trajo mayores novedades hasta que llegamos a CaFeConf 2006, donde estrenamos stand con una bandera reci&amp;eacute;n salida del horno, y adem&amp;aacute;s una de las plenarias del evento era dada por Alex Martelli (habl&amp;oacute; de &amp;quot;Qu&amp;eacute; es Python y por qu&amp;eacute; importa&amp;quot;), invitado internacional tra&amp;iacute;do por gestiones propias de PyAr.&lt;br /&gt;
&lt;br /&gt;
Luego de este evento empezamos a reconocer lo importante que era para Python Argentina participar de estas conferencias y jornadas abiertas a la comunidad, ya que luego de las mismas not&amp;aacute;bamos un salto en la cantidad de suscriptos a la lista de correo. Adem&amp;aacute;s, empezamos a establecer buenos v&amp;iacute;nculos con el resto de la comunidad de software libre de Argentina, comunidad a la que algunos conoc&amp;iacute;amos pero en la que no est&amp;aacute;bamos involucrados.&lt;br /&gt;
&lt;br /&gt;
El a&amp;ntilde;o 2007 fueron meses de consolidaci&amp;oacute;n. Se realizaron varias reuniones en Capital e interior, estuvo el segundo D&amp;iacute;a Python en Santa F&amp;eacute; (esta vez con dos tracks, de nuevo un &amp;eacute;xito), y PyAr particip&amp;oacute; en CaFeConf, en Unlux y en las Jornadas Regionales de Software Libre, en C&amp;oacute;rdoba. Como se discuti&amp;oacute; en la reuni&amp;oacute;n del grupo luego de esa conferencia, Python Argentina era un grupo nuevo que estaba naciendo y&amp;nbsp; aprovech&amp;aacute;bamos la gentileza de los &amp;ldquo;hermanos mayores&amp;rdquo;: la capacidad organizativa y la gente involucrada en los LUGs. Un detalle importante a considerar es que Python era el &amp;uacute;nico lenguaje de programaci&amp;oacute;n con stand propio, tanto en CaFeConf como en dichas Jornadas.&lt;br /&gt;
&lt;br /&gt;
Durante este a&amp;ntilde;o tambi&amp;eacute;n la lista de correo alcanz&amp;oacute; una cantidad de participantes suficientes como para que la rueda gire sola: la gran cantidad de respuestas a las preguntas dej&amp;oacute; de surgir del grupito de 20 o 30 personas que arranc&amp;oacute; el grupo y pas&amp;oacute; a ser generadas por personas m&amp;aacute;s nuevas. Tambi&amp;eacute;n activamos el IRC como medio de comunicaci&amp;oacute;n, pero usando &lt;em&gt;#pyar&lt;/em&gt; como canal en Freenode (necesit&amp;aacute;bamos hacer algunos cambios y no ten&amp;iacute;amos acceso a Ricardo, que hab&amp;iacute;a creado el anterior). En conjunto, la lista y el canal de IRC, probaron ser los mejores medios de comunicaci&amp;oacute;n para el grupo, complement&amp;aacute;ndose entre ellos ya que la din&amp;aacute;mica es distinta en cada caso, y ambos teniendo como soporte persistente al sitio web, que de a poco se fue llenando de Recetas, Cartelera de Trabajo, Novedades, Documentaci&amp;oacute;n, FAQ, etc.&lt;br /&gt;
&lt;br /&gt;
2008 arranc&amp;oacute; con una gran novedad: el primer PyCamp. Organizado por Except, una empresa de C&amp;oacute;rdoba, este evento se desarroll&amp;oacute; durante cuatro d&amp;iacute;as en los que fuimos a trabajar en distintos proyectos de Software libre relacionados con Python, a socializar, y a tener alg&amp;uacute;n peque&amp;ntilde;o contacto con la naturaleza.&lt;br /&gt;
&lt;br /&gt;
En la reuni&amp;oacute;n de Mayo de ese a&amp;ntilde;o se charl&amp;oacute; sobre las participaciones del grupo en otros eventos internacionales. Estuvimos representados nuevamente en PyCon y por primera vez en Fisl (donde integrantes de PyAr hicieron Falabracman, un juego en 36 horas para la competencia OLPC Game Jam, &amp;iexcl;la cual ganaron!).&amp;nbsp; Tambi&amp;eacute;n se charl&amp;oacute; una diferencia importante entre los grupos de usuarios de USA y de Argentina; en Estados Unidos se juntan directamente a programar o a hablar de cosas netamente t&amp;eacute;cnicas, y en Argentina las reuniones son con un fin m&amp;aacute;s social, para conocernos las caras y quiz&amp;aacute; tomar alguna que otra cerveza.&amp;nbsp; Relacionado con una idea que ven&amp;iacute;a de antes, Humitos nos cont&amp;oacute; que estaba haciendo una traducci&amp;oacute;n al espa&amp;ntilde;ol de manual de Django, y surgi&amp;oacute; el tema de traducir el Tutorial oficial de Python, con la posibilidad de imprimirlos y encuadernarlos para venderlos o regalarlos en algunos eventos.&lt;br /&gt;
&lt;br /&gt;
La segunda mitad del a&amp;ntilde;o estuvo bien movidita tambi&amp;eacute;n. No s&amp;oacute;lo por reuniones en Buenos Aires e interior (&amp;iexcl;primera vez en Rosario!), sino que terminamos de definir el dise&amp;ntilde;o de la segunda tanda de remeras de PyAr, y participamos nuevamente en las Jornadas Regionales de Software Libre. En este evento Python volvi&amp;oacute; a pisar fuerte, no solo por la cantidad de charlas presentadas o lo exitoso del stand, sino que volvimos a traer un invitado internacional (Raymond Hettinger) para que d&amp;eacute; una plenaria en un evento de primera linea.&lt;br /&gt;
&lt;br /&gt;
Tambi&amp;eacute;n se realizaron las 3ras Jornadas Python en Santa Fe, donde se anunci&amp;oacute; formalmente que al a&amp;ntilde;o siguiente se realizar&amp;iacute;a la primera conferencia nacional de Python en Argentina. En la &amp;uacute;ltima reuni&amp;oacute;n del a&amp;ntilde;o en Buenos Aires se termin&amp;oacute; de discutir el arranque de la organizaci&amp;oacute;n de esta importante conferencia, y terminamos el 2008 con muchas ganas de que arranque el pr&amp;oacute;ximo.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;strong&gt;Quinto aniversario&lt;/strong&gt;&lt;br /&gt;
&lt;br /&gt;
Los &amp;uacute;ltimos d&amp;iacute;as de Marzo del 2009 nos trajo la segunda edici&amp;oacute;n del PyCamp, nuevamente en Los Cocos (C&amp;oacute;rdoba). Fueron nuevamente cuatro d&amp;iacute;as en los que se desarrollaron muchos proyectos, y se profundizaron muchos lazos dentro de la comunidad Python.&lt;br /&gt;
&lt;br /&gt;
La segunda parte del a&amp;ntilde;o tuvo como plato fuerte a PyCon Argentina 2009, la primera conferencia en espa&amp;ntilde;ol del mundo, un merecido festejo del quinto cumplea&amp;ntilde;os de PyAr. Fueron dos d&amp;iacute;as en Septiembre, ma&amp;ntilde;ana y tarde, con tres secciones en paralelo la mayor parte del tiempo. Usamos tres auditorios de distintas capacidades, siendo el mayor para 300 personas, y dividimos las exposiciones en tres tipos: charlas comunes (tuvimos 33 distribuidas en ambos d&amp;iacute;as), lightning talks, y plenarias.&lt;br /&gt;
&lt;br /&gt;
PyCon fue todo un &amp;eacute;xito (no esper&amp;aacute;bamos tanta gente, vinieron m&amp;aacute;s de 400 personas, muchas de Buenos Aires, pero una buena parte de interior, y tambi&amp;eacute;n gente de otros paises), y tuvo muy buena repercusi&amp;oacute;n tanto en nuestro pa&amp;iacute;s como en medios internacionales. A esto &amp;uacute;ltimo ayud&amp;oacute; que tuvimos dos invitados de primera linea (Jacob Kaplan-Moss y Collin Winter) que se lucieron en sus respectivas charlas plenarias.&lt;br /&gt;
&lt;br /&gt;
Para la conferencia pudimos terminar uno de los proyectos de larga data dentro del grupo: ni m&amp;aacute;s ni menos que la traducci&amp;oacute;n completa al castellano del Tutorial de Python (el oficial), que publicamos en la red pero que tambi&amp;eacute;n imprimimos en cantidad para repartir durante la conferencia (especialmente en la charla de &lt;em&gt;Introducci&amp;oacute;n a Python&lt;/em&gt;), y que luego fuimos llevando a los otros eventos que participamos. Adem&amp;aacute;s, aprovechando que PyAr tiene mucha gente estudiando en Universidades, donamos Tutoriales a las Bibliotecas de dichas instituciones.&lt;br /&gt;
&lt;br /&gt;
Terminamos el a&amp;ntilde;o con una participaci&amp;oacute;n en un evento amigo, F&amp;aacute;brica de Fallas, en La Tribu. No es un &amp;aacute;mbito tradicionalmente orientado a la programaci&amp;oacute;n, y aunque PyAr siempre tuvo buena acogida en ese &amp;aacute;mbito, nos sorprendi&amp;oacute; gratamente que uno de los momentos art&amp;iacute;sticos del evento haya sido la pintada de un mural cuya base es un tutorial de Python!&lt;br /&gt;
&lt;br /&gt;
El comienzo del 2010 tuvo al cl&amp;aacute;sico PyCamp en la primera parte del a&amp;ntilde;o, pero esta vez no en Los Cocos, como en las dos ediciones anteriores, sino en Ver&amp;oacute;nica (Buenos Aires). Cambi&amp;oacute; el lugar pero no el estilo: los PyCamps son uno de los eventos de programaci&amp;oacute;n m&amp;aacute;s interesantes que conozco, y uno de los que m&amp;aacute;s cumplen a la hora de aprender y divertirse.&lt;br /&gt;
&lt;br /&gt;
Tambi&amp;eacute;n se aceler&amp;oacute; el trabajo sobre la CDPedia, el proyecto que ya les hab&amp;iacute;a mencionado sobre meter la Wikipedia en un disco para usarse sin estar conectados a Internet. En la versi&amp;oacute;n CD entraron m&amp;aacute;s de 80 mil art&amp;iacute;culos, la mayor&amp;iacute;a con im&amp;aacute;genes. Y en la versi&amp;oacute;n DVD entraron todos, casi todos con sus respectivas im&amp;aacute;genes. Si podemos terminar algunas funcionalidades que necesitamos, estar&amp;iacute;amos distribuyendo la CDPedia en muchas escuelas de todo el pa&amp;iacute;s, a trav&amp;eacute;s del Ministerio de Educaci&amp;oacute;n.&lt;br /&gt;
&lt;br /&gt;
En Mayo se realiz&amp;oacute; el primer Python Day en Rafaela, Santa Fe, el cual fue un &amp;eacute;xito, llevando a casi 100 personas. Y para Septiembre se har&amp;aacute; el primer Python Day en Buenos Aires, que esperamos ansiosos.&lt;br /&gt;
&lt;br /&gt;
La segunda parte del a&amp;ntilde;o nos traer&amp;aacute; tambi&amp;eacute;n el primer Ciclo de Charlas Abiertas, en La Tribu (una serie de charlas sobre programaci&amp;oacute;n y Python, a la gorra, abiertas a la comunidad), y la segunda edici&amp;oacute;n de PyCon Argentina, esta vez en C&amp;oacute;rdoba.&lt;br /&gt;
&lt;br /&gt;
Seguramente cerremos el sexto a&amp;ntilde;o del grupo festejando todo lo hecho, pero tambi&amp;eacute;n planeando nuevos eventos, nuevas formas de promover Python, y de juntarnos entre todos los usuarios de Python del pa&amp;iacute;s.
   </description>
   <link>http://www.taniquetil.com.ar/plog/post/1/479</link>
   <comments>http://www.taniquetil.com.ar/plog/post/1/479</comments>
   <guid>http://www.taniquetil.com.ar/plog/post/1/479</guid>
      <dc:creator>facundo</dc:creator>
      
    <category>Python</category>
         <pubDate>Sun, 05 Sep 2010 16:48:24 +0300</pubDate>
   <source url="http://www.taniquetil.com.ar/plog/rss/rss20/1">Bitácora de Vuelo - Facundo Batista</source>
     </item>
    <item>
   <title>Foto interesante: Chicago luz</title>
   <description>
    &lt;br /&gt;
Como dice el t&amp;iacute;tulo, Chicago. Marzo del 2008, un frio de cagarrrrrrrrse, esperando el tren en la plataforma elevada para volver al hotel. El viaje que contextualiza la foto: &lt;a href=&quot;http://www.taniquetil.com.ar/plog/post/1/336&quot;&gt;PyCon USA 2008&lt;/a&gt;. La foto no fue demasiado complicada, una larga exposici&amp;oacute;n buscando alg&amp;uacute;n juego de contrastes entre lo oscuro de las vias y el cielo atr&amp;aacute;s (las primeras parecen apuntar a lo segundo), lo muy brillante de las luces, y el punto medio en los edificios.&lt;br /&gt;
&lt;br /&gt;
&lt;img src=&quot;http://www.taniquetil.com.ar/facundo/imgs/fotint-chicagoluz.jpeg&quot; alt=&quot;Chicag luz&quot; width=&quot;800&quot; height=&quot;600&quot; /&gt;&lt;br /&gt;
&lt;br /&gt;
Las otras fotos interesantes hasta ahora, &lt;a href=&quot;http://www.flickr.com/photos/54757453@N00/sets/72157624548630453/with/2362286062/&quot;&gt;ac&amp;aacute;&lt;/a&gt;.&lt;br /&gt;
   </description>
   <link>http://www.taniquetil.com.ar/plog/post/1/478</link>
   <comments>http://www.taniquetil.com.ar/plog/post/1/478</comments>
   <guid>http://www.taniquetil.com.ar/plog/post/1/478</guid>
      <dc:creator>facundo</dc:creator>
      
    <category>Fotos</category>
         <pubDate>Tue, 31 Aug 2010 19:43:17 +0300</pubDate>
   <source url="http://www.taniquetil.com.ar/plog/rss/rss20/1">Bitácora de Vuelo - Facundo Batista</source>
     </item>
    <item>
   <title>Analizando la memoria en Python</title>
   <description>
    &lt;br /&gt;
Estoy haciendo un an&amp;aacute;lisis de la memoria del &lt;a href=&quot;http://launchpad.net/ubuntuone-client&quot;&gt;cliente de Ubuntu One&lt;/a&gt; (particularmente unos m&amp;oacute;dulos que conforman el SyncDaemon propiamente dicho), y me pareci&amp;oacute; tan copado que muestro ac&amp;aacute; parte de eso (aprend&amp;iacute; el 99% de esto gracias a &lt;a href=&quot;http://launchpad.net/~verterok&quot;&gt;Guillo&lt;/a&gt;).&lt;br /&gt;
&lt;br /&gt;
El an&amp;aacute;lisis se basa en usar &lt;a href=&quot;http://guppy-pe.sourceforge.net/&quot;&gt;Heapy&lt;/a&gt;. Si a ubuntuone-client se lo levanta con &lt;span style=&quot;font-family: courier new,courier&quot;&gt;--debug-heapy_monitor&lt;/span&gt;, el mismo hace (sacando el manejo de error):&lt;br /&gt;
&lt;blockquote&gt;
	&lt;span style=&quot;font-family: courier new,courier&quot;&gt;import guppy.heapy.RM&lt;/span&gt;&lt;br /&gt;
	&lt;span style=&quot;font-family: courier new,courier&quot;&gt;guppy.heapy.RM.on()&lt;/span&gt;&lt;br /&gt;
&lt;/blockquote&gt;
Nada m&amp;aacute;s. Entonces, lo ejecut&amp;eacute;, y lo llev&amp;eacute; a un estado en donde quer&amp;iacute;a probar un par de cosas.&lt;br /&gt;
&lt;br /&gt;
En otra terminal, ejecut&amp;eacute;:&lt;br /&gt;
&lt;blockquote&gt;
	&lt;span style=&quot;font-family: courier new,courier&quot;&gt;python -c &amp;quot;from guppy import hpy; hpy().monitor()&amp;quot;&lt;br /&gt;
	&lt;/span&gt;
&lt;/blockquote&gt;
Y eso me abri&amp;oacute; una linea de comandos a trav&amp;eacute;s de la cual me conect&amp;eacute; a mi programa Python que estaba ejecutando en la otra ventana (s&amp;iacute;, a SyncDaemon):&lt;br /&gt;
&lt;blockquote&gt;
	&lt;span style=&quot;font-family: courier new,courier&quot;&gt;&amp;lt;Monitor&amp;gt; &lt;/span&gt;&lt;br /&gt;
	&lt;span style=&quot;font-family: courier new,courier&quot;&gt;*** Connection 1 opened ***&lt;/span&gt;&lt;br /&gt;
	&lt;span style=&quot;font-family: courier new,courier&quot;&gt;&amp;lt;Monitor&amp;gt; lc&lt;/span&gt;&lt;br /&gt;
	&lt;span style=&quot;font-family: courier new,courier&quot;&gt;CID PID&amp;nbsp; ARGV&lt;/span&gt;&lt;br /&gt;
	&lt;span style=&quot;font-family: courier new,courier&quot;&gt;&amp;nbsp; 1 4451 [&#039;bin/ubuntuone-syncdaemon&#039;, &#039;--debug-heapy_monitor&#039;]&lt;/span&gt;&lt;br /&gt;
	&lt;span style=&quot;font-family: courier new,courier&quot;&gt;&amp;lt;Monitor&amp;gt; sc 1&lt;/span&gt;&lt;br /&gt;
	&lt;span style=&quot;font-family: courier new,courier&quot;&gt;Remote connection 1. To return to Monitor, type &amp;lt;Ctrl-C&amp;gt; or .&amp;lt;RETURN&amp;gt;&lt;/span&gt;&lt;br /&gt;
	&lt;span style=&quot;font-family: courier new,courier&quot;&gt;&amp;lt;Annex&amp;gt; h&lt;/span&gt;&lt;br /&gt;
	&lt;br /&gt;
	&lt;span style=&quot;font-family: courier new,courier&quot;&gt;Documented commands (type help &amp;lt;topic&amp;gt;):&lt;/span&gt;&lt;br /&gt;
	&lt;span style=&quot;font-family: courier new,courier&quot;&gt;========================================&lt;/span&gt;&lt;br /&gt;
	&lt;span style=&quot;font-family: courier new,courier&quot;&gt;close&amp;nbsp; h&amp;nbsp; help&amp;nbsp; int&amp;nbsp; isolatest&amp;nbsp; q&amp;nbsp; reset&amp;nbsp; stat&lt;/span&gt;&lt;br /&gt;
	&lt;br /&gt;
	&lt;span style=&quot;font-family: courier new,courier&quot;&gt;&amp;lt;Annex&amp;gt; stat&lt;/span&gt;&lt;br /&gt;
	&lt;span style=&quot;font-family: courier new,courier&quot;&gt;Target overview&lt;/span&gt;&lt;br /&gt;
	&lt;span style=&quot;font-family: courier new,courier&quot;&gt;------------------------------------&lt;/span&gt;&lt;br /&gt;
	&lt;span style=&quot;font-family: courier new,courier&quot;&gt;target.sys.executable&amp;nbsp;&amp;nbsp; = /usr/bin/python&lt;/span&gt;&lt;br /&gt;
	&lt;span style=&quot;font-family: courier new,courier&quot;&gt;target.sys.argv&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; = [&#039;bin/ubuntuone-syncdaemon&#039;, &#039;--debug-heapy_monitor&#039;]&lt;/span&gt;&lt;br /&gt;
	&lt;span style=&quot;font-family: courier new,courier&quot;&gt;target.wd&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; = /home/facundo/canonical/u1-client/aq-memory-improvements&lt;/span&gt;&lt;br /&gt;
	&lt;span style=&quot;font-family: courier new,courier&quot;&gt;target.pid&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; = 4451&lt;/span&gt;&lt;br /&gt;
	&lt;span style=&quot;font-family: courier new,courier&quot;&gt;------------------------------------&lt;/span&gt;&lt;br /&gt;
&lt;/blockquote&gt;
Abr&amp;iacute; una consola interactiva, y le dije que me tomara un snapshot del &lt;span style=&quot;font-family: courier new,courier&quot;&gt;heap&lt;/span&gt;:&lt;br /&gt;
&lt;blockquote&gt;
	&lt;span style=&quot;font-family: courier new,courier&quot;&gt;&amp;lt;Annex&amp;gt; int&lt;/span&gt;&lt;br /&gt;
	&lt;span style=&quot;font-family: courier new,courier&quot;&gt;Remote interactive console. To return to Annex, type &#039;-&#039;.&lt;/span&gt;&lt;br /&gt;
	&lt;span style=&quot;font-family: courier new,courier&quot;&gt;&amp;gt;&amp;gt;&amp;gt; h1 = hp.heap()&lt;/span&gt;&lt;br /&gt;
&lt;/blockquote&gt;
Luego hice tir&amp;eacute; un archivo con contenido a Ubuntu One, volv&amp;iacute; a pedir el &lt;span style=&quot;font-family: courier new,courier&quot;&gt;heap&lt;/span&gt;. Y mir&amp;eacute; las diferencias:&lt;br /&gt;
&lt;blockquote&gt;
	&lt;span style=&quot;font-family: courier new,courier&quot;&gt;&amp;gt;&amp;gt;&amp;gt; h2 = hp.heap()&lt;/span&gt;&lt;br /&gt;
	&lt;span style=&quot;font-family: courier new,courier&quot;&gt;&amp;gt;&amp;gt;&amp;gt; h2.diff(h1)&lt;/span&gt;&lt;br /&gt;
	&lt;span style=&quot;font-family: courier new,courier&quot;&gt;Summary of difference operation (A-B).&lt;/span&gt;&lt;br /&gt;
	&lt;span style=&quot;font-family: courier new,courier&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Count&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Size&lt;/span&gt;&lt;br /&gt;
	&lt;span style=&quot;font-family: courier new,courier&quot;&gt;&amp;nbsp; A&amp;nbsp;&amp;nbsp;&amp;nbsp; 204310 17394824&lt;/span&gt;&lt;br /&gt;
	&lt;span style=&quot;font-family: courier new,courier&quot;&gt;&amp;nbsp; B&amp;nbsp;&amp;nbsp;&amp;nbsp; 204296 17393604&lt;/span&gt;&lt;br /&gt;
	&lt;span style=&quot;font-family: courier new,courier&quot;&gt;&amp;nbsp; A-B&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 14&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1220&amp;nbsp; =&amp;nbsp;&amp;nbsp; 0.00701 % of B&lt;/span&gt;&lt;br /&gt;
	&lt;br /&gt;
	&lt;span style=&quot;font-family: courier new,courier&quot;&gt;Differences by kind, largest absolute size diffs first.&lt;/span&gt;&lt;br /&gt;
	&lt;span style=&quot;font-family: courier new,courier&quot;&gt;&amp;nbsp;Index&amp;nbsp; Count&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Size&amp;nbsp; Cumulative&amp;nbsp; % of B Kind (class / dict of class)&lt;/span&gt;&lt;br /&gt;
	&lt;span style=&quot;font-family: courier new,courier&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 3&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 468&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 468&amp;nbsp;&amp;nbsp; 0.00269 str&lt;/span&gt;&lt;br /&gt;
	&lt;span style=&quot;font-family: courier new,courier&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 2&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 272&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 740&amp;nbsp;&amp;nbsp; 0.00425 dict (no owner)&lt;/span&gt;&lt;br /&gt;
	&lt;span style=&quot;font-family: courier new,courier&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 2&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 2&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 152&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 892&amp;nbsp;&amp;nbsp; 0.00513 ubuntuone.syncdaemon.marker.MDMarker&lt;/span&gt;&lt;br /&gt;
	&lt;span style=&quot;font-family: courier new,courier&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 3&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 92&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 984&amp;nbsp;&amp;nbsp; 0.00566 ubuntuone.syncdaemon.action_queue.Upload&lt;/span&gt;&lt;br /&gt;
	&lt;span style=&quot;font-family: courier new,courier&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 4&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 56&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1040&amp;nbsp;&amp;nbsp; 0.00598 unicode&lt;/span&gt;&lt;br /&gt;
	&lt;span style=&quot;font-family: courier new,courier&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 5&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 2&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 56&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1096&amp;nbsp;&amp;nbsp;&amp;nbsp; 0.0063 ubuntuone.syncdaemon.logger.mklog&lt;/span&gt;&lt;br /&gt;
	&lt;span style=&quot;font-family: courier new,courier&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 6&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 52&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1148&amp;nbsp;&amp;nbsp;&amp;nbsp; 0.0066 ubuntuone.syncdaemon.action_queue.MakeFile&lt;/span&gt;&lt;br /&gt;
	&lt;span style=&quot;font-family: courier new,courier&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 7&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 36&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1184&amp;nbsp;&amp;nbsp; 0.00681 types.MethodType&lt;/span&gt;&lt;br /&gt;
	&lt;span style=&quot;font-family: courier new,courier&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 8&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 36&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1220&amp;nbsp;&amp;nbsp; 0.00701 ubuntuone.syncdaemon.sync.FSKey&lt;/span&gt;&lt;br /&gt;
	&lt;span style=&quot;font-family: courier new,courier&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 9&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1220&amp;nbsp;&amp;nbsp; 0.00701 dict of ubuntuone.syncdaemon.event_queue.MyReader&lt;/span&gt;&lt;br /&gt;
	&lt;span style=&quot;font-family: courier new,courier&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 10&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1220&amp;nbsp;&amp;nbsp; 0.00701 ubuntuone.syncdaemon.event_queue.MyReader&lt;/span&gt;&lt;br /&gt;
&lt;/blockquote&gt;
Segu&amp;iacute; haciendo unos experimentos, y lleg&amp;oacute; un punto en que ciertos elementos no deber&amp;iacute;an estar m&amp;aacute;s en memoria, pero estaban. Lo m&amp;aacute;s piola es que pude ver &lt;em&gt;d&amp;oacute;nde&lt;/em&gt;:&lt;br /&gt;
&lt;blockquote&gt;
	&lt;span style=&quot;font-family: courier new,courier&quot;&gt;&amp;gt;&amp;gt;&amp;gt; markers = h5[39]&lt;/span&gt;&lt;br /&gt;
	&lt;span style=&quot;font-family: courier new,courier&quot;&gt;&amp;gt;&amp;gt;&amp;gt; markers&lt;/span&gt;&lt;br /&gt;
	&lt;span style=&quot;font-family: courier new,courier&quot;&gt;Partition of a set of 241 objects. Total size = 18316 bytes.&lt;/span&gt;&lt;br /&gt;
	&lt;span style=&quot;font-family: courier new,courier&quot;&gt;&amp;nbsp;Index&amp;nbsp; Count&amp;nbsp;&amp;nbsp; %&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Size&amp;nbsp;&amp;nbsp; % Cumulative&amp;nbsp; % Kind (class / dict of class)&lt;/span&gt;&lt;br /&gt;
	&lt;span style=&quot;font-family: courier new,courier&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0&amp;nbsp;&amp;nbsp;&amp;nbsp; 241 100&amp;nbsp;&amp;nbsp;&amp;nbsp; 18316 100&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 18316 100 ubuntuone.syncdaemon.marker.MDMarker&lt;/span&gt;&lt;br /&gt;
	&lt;span style=&quot;font-family: courier new,courier&quot;&gt;&amp;gt;&amp;gt;&amp;gt; markers.referrers&lt;/span&gt;&lt;br /&gt;
	&lt;span style=&quot;font-family: courier new,courier&quot;&gt;Partition of a set of 2 objects. Total size = 6332 bytes.&lt;/span&gt;&lt;br /&gt;
	&lt;span style=&quot;font-family: courier new,courier&quot;&gt;&amp;nbsp;Index&amp;nbsp; Count&amp;nbsp;&amp;nbsp; %&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Size&amp;nbsp;&amp;nbsp; % Cumulative&amp;nbsp; % Kind (class / dict of class)&lt;/span&gt;&lt;br /&gt;
	&lt;span style=&quot;font-family: courier new,courier&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1&amp;nbsp; 50&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 6280&amp;nbsp; 99&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 6280&amp;nbsp; 99 dict (no owner)&lt;/span&gt;&lt;br /&gt;
	&lt;span style=&quot;font-family: courier new,courier&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1&amp;nbsp; 50&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 52&amp;nbsp;&amp;nbsp; 1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 6332 100 collections.deque&lt;/span&gt;&lt;br /&gt;
	&lt;span style=&quot;font-family: courier new,courier&quot;&gt;&amp;gt;&amp;gt;&amp;gt; markers.referrers[0].referrers&lt;/span&gt;&lt;br /&gt;
	&lt;span style=&quot;font-family: courier new,courier&quot;&gt;Partition of a set of 1 object. Total size = 136 bytes.&lt;/span&gt;&lt;br /&gt;
	&lt;span style=&quot;font-family: courier new,courier&quot;&gt;&amp;nbsp;Index&amp;nbsp; Count&amp;nbsp;&amp;nbsp; %&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Size&amp;nbsp;&amp;nbsp; % Cumulative&amp;nbsp; % Kind (class / dict of class)&lt;/span&gt;&lt;br /&gt;
	&lt;span style=&quot;font-family: courier new,courier&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1 100&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 136 100&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 136 100 dict of ubuntuone.syncdaemon.action_queue.DeferredMap&lt;/span&gt;&lt;br /&gt;
	&lt;span style=&quot;font-family: courier new,courier&quot;&gt;&amp;gt;&amp;gt;&amp;gt; markers.referrers[1].referrers&lt;/span&gt;&lt;br /&gt;
	&lt;span style=&quot;font-family: courier new,courier&quot;&gt;Partition of a set of 1 object. Total size = 520 bytes.&lt;/span&gt;&lt;br /&gt;
	&lt;span style=&quot;font-family: courier new,courier&quot;&gt;&amp;nbsp;Index&amp;nbsp; Count&amp;nbsp;&amp;nbsp; %&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Size&amp;nbsp;&amp;nbsp; % Cumulative&amp;nbsp; % Kind (class / dict of class)&lt;/span&gt;&lt;br /&gt;
	&lt;span style=&quot;font-family: courier new,courier&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1 100&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 520 100&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 520 100 dict of ubuntuone.syncdaemon.file_shelf.LRUCache&lt;/span&gt;&lt;br /&gt;
&lt;/blockquote&gt;
El segundo es un cach&amp;eacute;, y est&amp;aacute; todo bien, est&amp;aacute; acotado y cuando se suelte, se volar&amp;aacute;n. Pero el primer es un leak (del c&amp;oacute;digo nuestro, no de Python), y me confirm&amp;oacute; lo que yo hab&amp;iacute;a visto por inspecci&amp;oacute;n del c&amp;oacute;digo.&lt;br /&gt;
&lt;br /&gt;
Buen&amp;iacute;simo el Heapy, :D
   </description>
   <link>http://www.taniquetil.com.ar/plog/post/1/477</link>
   <comments>http://www.taniquetil.com.ar/plog/post/1/477</comments>
   <guid>http://www.taniquetil.com.ar/plog/post/1/477</guid>
      <dc:creator>facundo</dc:creator>
      
    <category>Python</category>
         <pubDate>Fri, 20 Aug 2010 19:32:21 +0300</pubDate>
   <source url="http://www.taniquetil.com.ar/plog/rss/rss20/1">Bitácora de Vuelo - Facundo Batista</source>
     </item>
    <item>
   <title>Arrancamos con las charlas en La Tribu</title>
   <description>
    &lt;br /&gt;
Las dos primeras charlas ya fueron el mes pasado.&lt;br /&gt;
&lt;br /&gt;
La primera fue &amp;quot;Introducci&amp;oacute;n a la Programaci&amp;oacute;n&amp;quot;, charla que estrenaba completamente, y que implicaba la dificultad adicional del tema: no era Python, era &amp;quot;programar&amp;quot;, un tema dif&amp;iacute;cil de explicar, y m&amp;aacute;s a&amp;uacute;n de mostrar en slides para un p&amp;uacute;blico masivo.&lt;br /&gt;
&lt;br /&gt;
La segunda fue &amp;quot;Introducci&amp;oacute;n a Python&amp;quot;. Aqu&amp;iacute; yo d&amp;iacute; la misma charla de siempre, pero en much&amp;iacute;sima m&amp;aacute;s profundidad. Tom&amp;aacute;s Zulberti complet&amp;oacute; al final hablando sobre la Biblioteca Est&amp;aacute;ndar, y Diego Mascialino cerr&amp;oacute; con un ejemplo de procesamiento de n&amp;uacute;meros.&lt;br /&gt;
&lt;br /&gt;
Las dos charlas fueron un &amp;eacute;xito b&amp;aacute;rbaro: tuvimos un lleno completo en el aula, &amp;iexcl;la gente se amontonaba en el pasillo! Y lo mejor, es que se fueron todos contentos, :D&lt;br /&gt;
&lt;br /&gt;
&lt;strong&gt;Los slides y los videos&lt;/strong&gt; de los dos d&amp;iacute;as est&amp;aacute;n en &lt;a href=&quot;http://python.org.ar/pyar/CharlasAbiertas2010&quot;&gt;la p&amp;aacute;gina de las charlas&lt;/a&gt; , as&amp;iacute; como tambi&amp;eacute;n la planificaci&amp;oacute;n para el resto del a&amp;ntilde;o.&lt;br /&gt;
&lt;br /&gt;
Este s&amp;aacute;bado, tenemos &amp;quot;Introducci&amp;oacute;n al Desarrollo Web I&amp;quot;, por Alejandro J. Cura, a la ma&amp;ntilde;ana de 10:30 a 12:30, y &amp;quot;FooBar (virtualenv, buildout, nose)&amp;quot;, por Roberto Alsina, a la tarde de 13 a 15 horas. La entrada es libre y gratuita. Se pasar&amp;aacute; una gorra voluntaria durante los cursos para hacer frente a vi&amp;aacute;ticos y gastos generales.&lt;br /&gt;
&lt;br /&gt;
Vengan con tiempo, para conseguir buenas ubicaciones. &lt;strong&gt;Los esperamos&lt;/strong&gt; en La Tribu, Lambar&amp;eacute; 873, Ciudad de Buenos Aires.
   </description>
   <link>http://www.taniquetil.com.ar/plog/post/1/476</link>
   <comments>http://www.taniquetil.com.ar/plog/post/1/476</comments>
   <guid>http://www.taniquetil.com.ar/plog/post/1/476</guid>
      <dc:creator>facundo</dc:creator>
      
    <category>Python</category>
         <pubDate>Mon, 16 Aug 2010 20:37:11 +0300</pubDate>
   <source url="http://www.taniquetil.com.ar/plog/rss/rss20/1">Bitácora de Vuelo - Facundo Batista</source>
     </item>
   </channel>
</rss>