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