Canonical Voices

What Bitácora de Vuelo talks about

facundo


¿Qué es un satélite? Hay varias definiciones... para el propósito de este artículo, podemos decir que es un objeto que orbita alrededor de otro. Nuestro planeta tiene un satélite natural (la Luna) y muchos, muchísimos satélites artificiales.

Crear un nuevo satélite artificial, es decir poner un aparato creado por los humanos a girar alrededor de la tierra es bastante fácil. Es cuestión de subir el aparato lo suficientemente alto, es decir, ponerlo en órbita. Claro, crear un satélite artificial útil tampoco es moco de pavo, hay que ponerlo en una órbita más o menos controlada, y poder comunicarse con el aparato.

Hay un detalle importante en la frase anterior. Estoy hablando de órbitas... una órbita terrestre es el camino que recorre el satélite cuando está girando por alredor de la Tierra. Y claro, hay muchas, ¡infinidades! Agarren una pelota, por ejemplo, y van a ver que pueden trazar con una lapicera muchísimos recorridos distintos alrededor de ella, y a eso hay que sumarle que las órbitas pueden estar a distintas alturas (la altura del satélite afecta la velocidad a la que se desplaza, cuanto más abajo está más rápido tiene que ir para no "caerse", mientras que cuanto más alto está más lento tiene que ir para no "salir disparado" de la órbita terrestre).

Órbitas hay un montón, pero no todas son útiles. Un ejemplo de una órbita útil es la llamada "órbita sincrónica al sol", que se logra combinando altitud e inclinación para lograr que el satélite pase sobre una determinada latitud terrestre a la misma hora del día. Esto es piola para aquellos satélites que tienen que sacar imágenes del suelo terrestre, porque quizás es suficiente con que pasen un par de veces al día por arriba del lugar que tienen que fotografiar. Es el caso de los nanosatélites que estuvimos mandando estos años.

Hay, sin embargo, una órbita que es muy especial. Si al satélite lo ponemos justo sobre la linea del ecuador, y lo hacemos girar a una velocidad específica, en lugar de verlo pasar cada tanto, lo vamos a estar viendo siempre en el mismo punto en el cielo.

Esta órbita se llama geostacionaria. Para ponerlo en términos precisos, la órbita geoestacionaria es una órbita geosíncrona en el plano ecuatorial terrestre, con una excentricidad nula (órbita circular) y un movimiento de oeste a este.

Órbita síncrona

Arthur C. Clarke popularizó la idea de utilizar la órbita geoestacionaria para poner allí satélites de comunicaciones (lo hizo en un paper en 1945, "Extra-Terrestrial Relays", por el cual ganó el premio Marconi en 1982).

Un satélite en órbita geoestacionaria es muy importante para las comunicaciones, porque como siempre se lo ve en el mismo lugar, se puede apuntar una antena y dejarla fija en esa dirección, y tener un enlace permanente con el satélite. O sea que dos puntos en la tierra, apuntando al mismo satélite, pueden estar comunicados todo el tiempo. Este concepto es la base de las comunicaciones modernas en nuestra sociedad, afectando profundamente la forma en que vivimos.

Las órbitas geoestacionarias sólo se pueden conseguir muy cerca de un anillo de 35.786 km sobre el ecuador. En la práctica, esto significa que todos los satélites geoestacionarios deben estar en este anillo, y sólo en ese anillo, por lo cual la cantidad de satélites que se puede poner ahí es limitada.

Estarán de acuerdo conmigo que las comunicaciones son un factor clave en nuestra sociedad: es por eso muy importante quien tiene el poder sobre los satélites en esa órbita, quien los controla. La organización que está coordinando la asignación de estos espacios es la Unión Internacional de Telecomunicaciones.

Con el ARSAT-1 (lanzado el pasado 16 de Octubre) Argentina vuelve a ocupar una posición orbital que tenía asignada (que estuvo ocupada hasta el 2010 por el Nahuel 1A), y que corría el riesgo de perder luego de cuatro años de no utilizarla.

ARSAT 1

Es por eso que este satélite era tan importante. No sólo porque fue desarrollado, financiado y ensamblado acá (Argentina es ahora una de las pocas naciones que hacen sus propios satélites) sino porque es un factor clave en la soberanía del país, ya que permite tener control propio sobre un elemento clave para las comunicaciones.

Read more
facundo


¿Cómo es que llegaste a leer esto? En algún momento apretaste un botón y la computadora se prendió. Luego hiciste un click y se abrió el navegador. Hiciste otro click o escribiste algo, y entraste a mi blog.

Esos son ejemplos de causas y consecuencias. Estamos muy acostumbrados a vivir en un mundo donde las causas y las consecuencias están firmemente atadas. Lo vemos todo así, aunque no estemos todo el tiempo razonándolo. Ejemplo: vemos una hoja en el piso. Sabemos que la hoja vino de un árbol, aunque no razonamos toda la secuencia: la hoja estaba en el árbol, la hoja se desprendió, fue cayendo y desplazándose por efecto de la gravedad y el aire, hasta que cayó donde la vemos.

Incluso, podríamos hacer el razonamiento al revés: vemos la hoja, está ahí porque cayó del árbol, cayó porque se desprendió, etc. En general, sin embargo no hacemos estos razonamientos de forma consciente.

Todo esto es común para vos, y no presenta mayor sorpresa, ¿cierto? Eso es porque estamos acostumbrados a la causa y consecuencia, forma parte de nuestra experiencia como humanos, es la forma en que nuestro cerebro interpreta todo lo que nos pasa. Desde que nacemos estamos expuestos a lo que nuestros sensores capturan (ojos, oídos, piel, etc), y formamos una imagen de la realidad en base a esa información.

Pero esa realidad que nosotros percibimos, y que nos es común (en el sentido en que la vivimos siempre, y en que es la misma que viven el resto de los humanos), es sólo parte de todo lo que realmente existe. Es decir, sólo interpretamos parte de la realidad, sentimos sólo una parte de lo que realmente existe. Y todo aquello que está fuera de nuestra experiencia es muy difícil de entender, porque nuestro cerebro no está acostumbrado a procesarlo.

Una de esas cosas es el tiempo. Y no estoy hablando de si llueve o mañana va a ser un día soleado (o sea, el clima) sino el tiempo como lo que pasa entre el "antes", el "ahora" y el "después". Nosotros creemos que entendemos qué pasa con el tiempo, porque en general estamos expuestos a siempre lo mismo con respecto a esa variable física. Siempre sentimos parte de la realidad, aquella en la que la flecha del tiempo es reversible. Por eso a partir de la situación del ahora se puede deducir la situación del después. O incluso sabiendo el estado actual podemos saber como estaba el sistema antes.

Pongamos un ejemplo para entenderlo mejor: soltemos una pelota en el aire...

La pelota, antes de soltarla

En el momento de soltar la pelota, la misma está quieta y a una altura determinada. Si yo te pregunto, qué pasa luego de soltar la pelota, me contestarías fácilmente. Obviamente, momentos después, la pelota está más abajo, y cayendo a una velocidad determinada...

La pelota, un rato después

También, si en lugar de mostrarte las dos imágenes al mismo tiempo, te muestro la segunda, te podés imaginar la primera. Es como en el caso de ver la hoja del árbol en el piso, sabés que antes estaba en una rama.

Implícito en todo esto está la reversibilidad del tiempo. Viendo la primera imagen (que está sacada en "tiempo cero") podemos imaginar el avance del tiempo y predecir que va a pasar después (con tiempo t‚, obviamente mayor que cero) , o viendo la segunda imagen podemos predecir que pasaría si el tiempo retrocediese e imaginar la primera imagen.

Lo vemos incluso en las ecuaciones que describen este modelo simple. Vayamos por ejemplo a las posiciones... la ecuación para esto es:

  e = ½.a.t²

Eso es: el espacio recorrido (h‚ - h, en el dibujo) es la mitad de la aceleración multiplicada por el tiempo que pasó al cuadrado. Si entre la primera y segunda imagen pasaron 2 segundos, siendo la aceleración 9.81m/s² (más o menos, acá en la Tierra), tenemos que el espacio es 19.62m. O sea, viendo la primera imagen podemos deducir que 2 segundos después la pelota va a estar casi 20 metros más abajo... y si vemos la segunda imagen, podemos deducir que 2 segundos antes (o sea, usando t=-2s en la ecuación) la pelota estaba esa distancia más arriba (el espacio lo recorremos en la dirección contraria, porque el resultado de la ecuación nos dio negativo).

Más allá de la complejidad matemática (?) todo esto que te estoy contando no te parece muy loco, ¿no? No. Pero ojo... no todo es tan simple en esta vida (bah, en este Universo).

Y no es tan simple, porque esto de poder ir para adelante y para atrás en el tiempo ,en nuestra mente, en nuestros razonamientos, ¡sorpresivamente no siempre se cumple!

Vayamos con otro ejemplo sencillo (aunque un poco más difícil de construir)... mirá el siguiente dibujo.

Foton loco, viaje de ida

Eso es una lamparita que tira de a un fotón (la mínima unidad de luz, su partícula elemental), una superficie semiespejada (la explico abajo), y un detector de fotones (que nos va a decir si el fotón llegó ahí).

La superficie semiespejada es un instrumento óptico que tiene el siguiente efecto: deja pasar la mitad de la luz, y la otra mitad la refleja. O sea, si lo iluminamos con un millón de fotones, la mitad sigue derecho, y la otra mitad rebota. En el caso de nuestro experimento, que le tiramos de a un sólo fotón, podemos decir que ese fotón tiene la mitad de chance de ser reflejado, y la mitad de chance de seguir derecho. [0]

Entonces, veamos qué pasa cuando la lamparita emite un fotón. Este va derechito hasta el espejo (recorrido A-B), y como dijimos puede seguir su camino o reflejarse e irse para la pared. Podemos decir que el recorrido A-B-C tiene un 50% de probabilidad de que suceda, y el recorrido A-B-D tiene la otra mitad. Piénsenlo como las dos fases del ejemplo anterior, el de la pelota: viendo el fotón saliendo de la lamparita como estado inicial, se pueden imaginar que va a pasar después (o sea, avanzando en el tiempo): que el fotón pegue en el detector, o que pegue en la pared.

Pero ahora hagamos la pregunta inversa: arranquemos de la segunda imagen, y tratemos de deducir la primera. O sea, tratemos de imaginar qué pasó antes (retrocediendo en el tiempo), arrancando nuestra visualización desde el fotón impactando en el detector. Para eso voy dibujo el mismo experimento, pero con otros recorridos...

Fotón loco, viaje de vuelta

¿Cómo se entiende este nuevo dibujo? Como decía, tenemos que pensar para atrás. Si nosotros sabemos que el detector recibió un fotón, la trayectoria B-C seguro se cumplió; entonces, al punto B del semiespejo el fotón llego de uno de dos lados posibles: o de la lamparita en A (atravesando el semiespejo), o desde un nuevo punto D (reflejándose en el semiespejo).

Acá me dirás que le estoy pifiando conceptualmente... ¿cómo puede ser que el fotón salga desde el punto D, que arranque desde una pared? Pues claro, ¡el fotón no puede venir nunca de ahí! Eso hace que la trayectoria E-B-C no sea realmente posible. En otras palabras, el fotón salió sí o sí de la lamparita: la trayectoria A-B-C se recorrió seguro (un 100% de probabilidad).

No te sientas frustrada/o si tenés que leer dos o tres veces la explicación para entender que pasa, es bastante avanzado a nivel de física. Yo, la primera vez, lo tuve que leer como cinco veces ;). Una de las razones por la que cuesta entenderlo, y hasta aceptarlo es que, justamente, todo eso está por afuera de lo que nosotros sentimos del universo, no forma parte de nuestra experiencia.

En fin, resumiendo los dos análisis: si hacemos que el tiempo se desarrolle para adelante, arrancando con el fotón desde A, vemos que puede recorrer dos trayectorias, A-B-C o A-B-D, con un 50% de chances cada una. Pero si hacemos que el tiempo se desarrolle para atrás, arrancando con el fotón desde C, tenemos que sólo pudo recorrer un camino: A-B-C.

¡Esta es una muestra de que el fotón atravesando el semiespejo no se comporta de una forma reversible en el tiempo! El tener dos posibles recorridos cuando hacemos correr el tiempo para adelante, y uno solo cuando lo hacemos recorrer para atrás, es totalmente distinto a lo que veíamos en el primer experimento, y totalmente distinto a la forma en que vemos normalmente a nuestro entorno, a la forma en que experimentamos el Universo.

La razón de este comportamiento se explica en las bases de la mecánica cuántica, donde se ve y entiende que hay todo un modelo que explica nuestro Universo con el tiempo reversible, pero hay toda una parte donde el tiempo no lo es. O sea, hay toda una rama de la física donde en las ecuaciones no podemos cambiarle alegremente el signo a t.

Respirá aliviada/o, no voy a meterme en toda esa explicación ;) [1]. Pero lo que te quería mostrar es que ahí afuera, aunque no lo veamos, aunque no forme parte de nuestra experiencia como humanos, hay todo un Universo al que sólo podemos acceder con el poder de nuestros cerebros y su capacidad de pensamiento abstracto. Es una herramienta maravillosa, ¡la tenemos que entrenar más y mejor!


[0] Para usar terminología adecuada, tenemos que decir que hay una amplitud de uno sobre raíz cuadrada de dos de que el fotón esté en un lado y la misma amplitud de que esté en el otro... eso es hablando de distribución de amplitudes con respecto a las posiciones... el módulo del cuadrado de eso nos da la probabilidad de que el fotón esté en un punto o el otro, que es .5 en cada caso.

[1] Pero si te interesa, hay un libro que es GENIAL y que habla de esto en tres o cuatro páginas del medio millar que tiene: The Emperor's New Mind, de Roger Penrose

Read more
facundo

Jardinera


Sí, ya sé que estoy denso con las fotitos de Malena... ¿¿¿pero qué quieren que haga???

<baba>
Malena jardinera
</baba>

Read more
facundo

¡Carne!


Mi familia es bastante carnívora (como sucede con los argentinos en general). Cuando vivía con mis padres, no tenía mayor injerencia en cómo, dónde o cuando se compraba la carne (aunque existe la anécdota de que yo, de niño, siguiendo una receta, fuí a la carnicería del barrio a comprar "un kilo de ternera", y el carnicero me preguntaba "¿pero qué corte"?).

Cuando volé del nido, una de las cuestiones que tuve que decidir y hacerme cargo, fue, obviamente ¿dónde comprar la carne?

No es una pregunta sencilla. Bah, la pregunta es sencilla, lo que no es simple es la respuesta. Para simplificar, voy a contar solamente mi última experiencia.

A muchos les gusta construir una "relación especial" con el carnicero/a del barrio (no encontré una manera de escribir eso que no suene un poco pornográfico). De esa manera, siempre tratan de conseguir un corte lindo, una mejor atención, etc. Mi problema es que en la zona donde vivo la carne está cara. Eso me llevó a ir buscando precios por un lado, por el otro, y al final terminé en Chalín, un frigorífico que descubrió mi viejo por la zona de Mataderos.

Mataderos es lejos de casa, sin embargo. Durante mucho tiempo Chalín hacía delivery, con lo cual me traían el pedido a casa (entonces, me resbalaba que fuese lejos).  Desde hace un tiempo, sin embargo, no tienen más ese servicio, pero se puede encargar el pedido y pasarlo a buscar. Aunque no podés elegir el pedazo de carne puntualmente (esa tira de asado, ese pedacito de vacío), pasar a buscar el pedido tiene la ventaja de que no tenés que hacer la cola.

¡Y no hacer la cola es importante! Es que en Chalín se junta gente. Normalmente, tenés una espera de dos o tres horas. Pero me ha pasado de ir en una fecha complicada (para las fiestas de fin de año), llegar a las 7:50 de la mañana, y encontrarme con que tenía 270 personas adelante!! Me terminé yendo a las 12:40 :/

Ahora, ¿tiene sentido ir a buscar la carne hasta allá? De Olivos a Mataderos hay una distancia respetable, y aunque en tiempo no es tanto, hay un gasto de nafta, etc. Una vez, a principio de año, comparé los precios y calculé que, para la compra que había hecho, en Chalín gasté $998, y en la carnicería del barrio habría gastado $1309. Sí, más de 300 mangos de diferencia.

En fin. El punto es que hace mucho tiempo que compro en Chalín, para el consumo de la casa, para cuando hago asados por un cumpleaños, o mis asados geek. Incluso tengo el historial de precios, desde hace cuatro años y medio, que les comparto acá.

Carne

No dejo de buscar alternativas, sin embargo, por si deja de ser la mejor opción. El otro día un conocido que respeto mucho culinariamente me recomendó el Frigorífico Las Heras, que tienen delivery, y decidí probarlos.

Tienen varias cajas, paquetes prearmados de opciones. Por ejemplo, yo compré la "Familiar", que traía "cortes de milanesa, picada, y peceto" (según me dijeron por teléfono). Cuando llegó la caja, ví que tenía 3.5kg de picada, los cortes para milanesa eran 1.5kg de nalga, 1.6kg de cuaddrada, y 1.3kg de bola de lomo, y finalmente el peceto, 1.4kg.

Las principales ventajas de este frigorífico son que te traen el pedido a tu casa, y que viene empaquetado al vacío, super cómodo de manejar y meter en el freezer.

Pero aunque la carne es un poco mejor que en Chalín, me cobraron $70 el kilo (mientras que en Chalín, a esas cantidades de esos cortes, hubiese tenido un promedio de $51 por kg). Y no hay una diferencia de calidad que amerite esa diferencia de precios.

Sí, a Chalín la tengo que ir a buscar. ¡Pero compro los cortes que quiero! Finalmente, un detalle no menor: en Chalín *siempre* me dieron un ticket AFIP válido, y del frigorífico Las Heras no me trajeron boleta.

Read more
facundo

Ciento catorce


Van
en ronda porfiada
ancianas de viento
de un frío que gasta
tacleando al olvido
yugando el dolor

Van
en ronda mareada
remando en silencio
a orillas de un tiempo
de grises, de ausencias
de niebla en la voz

Van de pie con las heridas altas
convidando memoria
y andarán contra mugre y perdón
aunque duren los cuervos
llueva este asco
y pesen los pies

Van
pañuelos curtidos
de llantos inmensos
de soles de inviernos
diciendo los gritos que nadie gritó

Van
en ronda acunada
tobillos cansados
y ovarios de hierro
pariendo el coraje que nadie parió

Van de pie con las heridas altas
convidando memoria
y andarán contra mugre y perdón
aunque duren los cuervos
llueva este asco
y pesen los pies

Aunque duren los cuervos
llueva este asco
y pesen los pies



Autores: Iván Noble y, Martín Mendez; Intérprete: Los Caballeros de la Quema

Read more
facundo


Se nos está terminando Julio, así que ya debería tener casi todo el segundo semestre medio planificado... sino después se me empiezan a pisar las cosas y tengo que cancelar eventos, etc.

La segunda mitad del año es normalmente la más cargada de eventos tanto de Python como de otros ámbitos... y a mi no se me ocurrió mejor idea que ponerme un curso que me ocupa todos los sábados de Agosto y Septiembre: un curso introductorio de Locución y Técnicas Vocales, en ETER.

Lo primero que se me pisa es el 9 de Agosto mismo, un sprint organizado por Lipe (está buscando laburar con cosas de torrent, pero yo creo que voy a ir a hacer Encuentro o CDPedia). Obviamente voy a ir a la tarde, no creo que haya problema.

Lo segundo que se me pisa (y me complica la vida) es el PyDay en Luján, el 20 de septiembre. Acá la tengo más complicada, porque encima de que salgo del curso a las 13, me tengo que ir hasta Luján. Igual, voy seguro, porque lo más probable es que de alguna charla (propuse dos repetidas y una nueva, sobre consejos de debugging).

Ya en Noviembre (con lo cual el curso no molesta) está la PyCon, en Rafaela, el viernes 14 y sábado 15, aunque lo más probable es que vaya el día anterior, para viajar tranquilo, ayudarlos a terminar todo, etc.

El 26 de septiembre, viernes, a la noche, tengo un curso en La Plata, donde doy Introducción a Python en un Postgrado de Informática para Científicos, como en la mayoría de los últimos años.

Los últimos días de Septiembre y los primeros de Octubre, aunque no hay nada puntual, me los voy a tratar de dejar liberados, porque está el cumpleaños de Felu. Seguramente haremos algo menos para adultos, más para compañeros de jardín y eso, pero no sabemos todavía exactamente qué, y siempre es un montón de trabajo :p

En fin... un segundo semestre bailado. Encima estoy bastante ocupado en general, especialmente en el laburo porque en estos meses ya sale a la calle el teléfono de Ubuntu, y también porque finalmente estamos hablando seriamente de hacer la asociación civil de Python Argentina (tenemos una lista separada para charlar de eso) y aunque ahora los abogados están de feria, después seguro voy a tener algunas reuniones, trámites para hacer, etc.

Read more
facundo

Malena y el mate


¡Le encanta! Lo señala y dice "agua", para que le ponga agua del termo, y luego toma, y toma... a veces se chorrea un poco, lo cual se complica porque las manchas de mate en la ropa son un tema, pero bueh...

Malena y el mate

Read more
facundo


Algunas tardes de sábado libre, más un par de viajes, hicieron que no me quede atrás con las películas...

  • A good old fashioned orgy: +0. De esas comedias livianas sobre la amistad y el amor. Divertida, no es gran cosa, pero está bien.
  • Apollo 18: -0. La idea general es interesante, pero ese querer simular una película con pedazos de filmaciones "reales" hace que todo sea muy forzado, especialmente cuando se nota lo "no real".
  • Catch .44: -0. Desordenada, aburrida, sin una historia que valga la pena.
  • Jack Ryan: Shadow recruit: +0. Una de acción, bien hecha, pero no más que eso.
  • Le noms des gens: +0. Una comedia simpática que plantea puntos interesantes sobre los franceses... y sobre el amor.
  • Like crazy: -0. Una historia de amor, que muestra las dificultades de las distancias. Aunque tiene sus momentos, en general la peli es muy lenta, y no entusiasma.
  • Prometheus: +0. Es una más de "alien", pero bien hecha, me gustó bastante, aunque al final no dejar de ser eso... una más de "alien" :)
  • Sherlock Holmes: A game of shadows: +0. Está perdiendo un poco la gracia (y es la segunda!), pero las buenas actuaciones y una historia interesante la salvan.
  • The darkest hour: -0. Un par de conceptos interesantes... pero no deja de ser una peli yanqui de adolescentes.
  • The girl with the dragon tattoo: +1. Una gran película, muy densa en contenidos (deja entrever que el libro es mucho más sabroso) y que te tiene atrapado hasta el final. Eso sí, muy dura (es un warning, no le resta).
  • The grey: +0. Fuerte, dura, pero bastante conceptual, con planteos que me gustaron. Estaría mejor si no estuviese bastante llena de golpes bajos al pedo (como ruidos que te quieren sorprender cuando lo único que sucedes es un cambio de encuadre que no tiene nada que ver).
  • The monuments men: +0. Un punto de vista sobre la guerra como destructor de culturas que no había pensado antes. Bien armada, con actuaciones decentes.
  • The rum diary: -0. Tiene un trasfondo interesante, pero la peli en general es aburrida, y no vale la pena.
  • Underworld: Awakening: -0. Ni siquiera más de lo mismo, antes las "underworld" tenían conceptos o historias interesantes... está es una mezcla mala de resident evil y blade; no más underworld para mí, gracias.


Pocas nuevas, eso sí, incluso metiendo una peli vieja en la lista...


Finalmente, el conteo de pendientes por fecha:

(Ene-2009)   12   1   1
(May-2009)   10   5
(Oct-2009)   15  14
(Mar-2010)   18  18  16   4
(Sep-2010)   18  18  18  18   9   2   1
(Dic-2010)   13  13  12  12  12   5   1
(Abr-2011)   23  23  23  23  23  22  17   4
(Ago-2011)   12  12  11  11  11  11  11  11   4
(Ene-2012)       21  21  18  17  17  17  17  11   3
(Jul-2012)           15  15  15  15  15  15  14  11
(Nov-2012)               12  12  11  11  11  11  11
(Feb-2013)                   19  19  16  15  14  14
(Jun-2013)                       19  18  16  15  15
(Sep-2013)                           18  18  18  18
(Dic-2013)                               14  14  12
(Abr-2014)                                    9   9
(Jul-2014)                                       10
Total:      127 125 117 113 118 121 125 121 110 103

Read more
facundo

¿Dónde estaba Dios?


Hay un micro de la segunda temporada del genial programa "Filosofía aquí y ahora", de José Pablo Feinmann, que se llama ¿Dónde estaba Dios?. Lo pueden ver acá, pero les transcribo el texto, que es cortito...

    En el tema de Auschwitz está el tema de Dios.

    Es un tema muy muy complejo, y más de un teólogo se pone de muy mal humor cuando se menciona el tema de Dios con respecto a Auschwitz, pero más de un filósofo ha preguntado ¿dónde estaba Dios en Auschwitz?

    E incluso Primo Levi, que es el gran escritor judío, que escribe "Si esto es un hombre", "Los hundidos y los salvados"... dice "Existe Auschwitz, no existe Dios".

    Y Karl Löwith, que también es un gran pensador judío, discípulo de Heidegger, dice "Luego de Auschwitz es imposible pensar un Dios totalmente bueno".

    Es muy contundente, todo esto. Hay un tango, incluso, genial, que dice "¿dónde estaba Dios cuando te fuiste?". O sea, nuestra tanguística es tan excepcional que puede ser comparada con los grandes filósofos del siglo XX.

    Es lo mismo, ¿dónde estaba Dios cuando te fuiste?.

Y como cierre, tenemos al Chino Laborde, invitado de Demoliendo Tangos, interpretando, justamente, "Canción desesperada", de Enrique Santos Discépolo.

Read more
facundo

Satélites argentinos


Estos días fue lanzado exitosamente el tercer nanosatélite argentino, "Tita" (llamado así en honor a Tita Merello).

Se llaman "nanosatélites" porque, justamente, son mucho más chicos (y baratos) que los satélites "tradicionales". En particular, Tita pesa unos 25 kilos, está equipado con tres antenas y lleva una cámara para tomar fotos y videos en alta definición.

El satélite Tita, siendo instalado en el lanzador

Lo desarrolló la empresa argentina Satellogic, pero no lo lanzamos nosotros al espacio (todavía no tenemos esa capacidad), sino que fue lanzado desde la ciudad rusa de Yasny. Su objetivo es tomar imágenes durante tres años, en colaboración con otros nanosatélites, los ya lanzados Capitán Beto (llamado así obviamente en referencia a la canción de Spinetta) y Manolito (por el personaje de Mafalda), y a otros 15 satélites que Satellogic planea lanzar durante el próximo año.

Pero Tita es diferente a los dos anteriores, que pesaban alrededor de dos kilos. También es un prototipo, y usa las mismas estrategias de diseño y fabricación con componentes de uso comercial (resortes de ferretería, electrónica de teléfonos celulares y computadoras personales), pero este permite tomar imágenes y videos de dos metros de resolución. Esencialmente, la gente de Satellogic está haciendo lo mismo que hace un satélite convencional, pero a un precio entre cien y mil veces menor.

En este video bastante interesante podemos ver a Lino Barañao (Ministro de Ciencia y Tecnología) y Emiliano Kargieman (CEO de Satellogic), contándonos un poco todo esto (y de paso se ven pasos de la construcción, y las oficinas, ¡donde se ve bastante gente de PyAr trabajando!).



Como detalle final, les dejo este audio de Adrián Paenza hablando sobre los satélites (en general) en el programa La Mañana de Victor Hugo Morales.

Read more
facundo

Malta


La semana pasada estuve de sprint, esta vez en un destino al que no había ido nunca. Malta. Siempre que lo menciono, todo me preguntan donde está Malta (yo tampoco sabía)... bueno, está acá:

Mapa de Malta

Es una isla principal, con un par de islas pequeñas alrededor... parece chica, pero tiene casi medio millón de habitantes, y sorprendentemente la más alta densidad de población de Europa [-].

No pude pasear demasiado y conocer, lamentablemente, porque el domingo llegué tarde y el sábado me fui temprano... y durante la semana trabajé un montón. Muchos de mis compañeros llegaron un día antes y se fueron un día después, pero yo no elegí eso. En parte porque eran dos días más que estaba lejos de casa, extrañando, en parte porque le complicaba la vida a Moni dos días más de la semana.

La ciudad es rara. Tiene algo de pintoresco, pero también de decadente. Hay edificios muy lindos, y hay otros que son directamente feos. Que el 90% de las construcciones estén hechas con la misma piedra local le da a todo un tono peculiar.

Edificios

Aunque es una isla, y algunas playitas de arena tiene, la mayoría de la costa es rocosa. Obvio, igual la gente toma sol, nada, disfruta del mar, etc. Algo que nos llamó mucho la atención fueron unas piletas cavadas en las rocas de la playa... algo así como saunas naturales...

Piletas en la costa

Todas las fotos acá.

Read more
facundo


En este post detallé todo lo que querría tener en el testrunner ideal, con la idea de trabajar un poco sobre eso en el último PyCamp.

Así fue. Nos sentamos un rato largo con Martín Gaitán y empezamos a ver si con nosetest podíamos lograr parte o todo de lo que queremos.

Algo en lo que no nos metimos mucho es la integración de nosetests con frameworks que proveen un reactor (o main loop). Buscando un poco ví que hay algo para integrarlo con Twisted, bastante sencillo, pero no encontré nada para GTK o Qt... no sé si porque no se puede, o es automático :p

Entonces, vayamos a los bifes... ¿qué necesitamos para tener el testrunner ideal?

Keep testing


Los componentes

El primer paso, obvio, es instalar el nosetests base. Con esto tenemos el primer par de puntos de lo que queríamos en mi post original: que soporte recibir un directorio y que busque de ahí para abajo, y que al recibir un archivo que corra los tests de ese archivo.

El primer plugin que necesitamos para ir a donde queremos es "nose-progressive". Este es un plugin que nos cambia bastante la forma de ver los resultados de los tests. Por ejemplo, no hace falta que muestre cada linea de cada test ejecutado, en jerarquía, porque ante un error nos va a dar un pequeño resumen donde podemos ver la info del test que falló.

También nos va a dar un lindo OK en verde si todo salió bien... y si hubieron problemas vamos a ver esos resúmenes, coloridos, con un montón de info copada.

De la info que nos da en ese resumen también podemos extraer el path para correr el test sólo, o toda la clase, todo el archivo etc. Pero también tenemos otro plugin, el "nosecomplete" que hace que podamos ir escribiendo el path para un test, autocompletando de una forma muy piola, descubriendo lo que hay para correr.

Para correr más de un test, un subconjunto que matchee con una regex, tenemos el "nose-selecttests", que nos permite pasarle un --select-tests= que hace que le podamos pasar luego aquello que queremos que coincida.

Finalmente, tenemos varios detalles. Le podemos decir que corte en el primer test que falla, y que no siga, con -x. También podemos pedirle que no esconda ni los prints que hagamos ni lo que logueamos, con --nocapture y --nologcapture. Y le podemos pedir que nos tire un buen resumen de cuales tests tardan más con --with-timer (necesitamos el plugin "nose-timer").


Armando el entorno

Lo primero, obviamente en el virtualenv de tu proyecto, es instalar nose y todos sus plugins:

    pip install nose nose-progressive nose-selecttests nose-timer nosecomplete

Para el plugin de autocomplete, como autocompletamos desde el shell, realmente, tenemos que hookear al mismo con el plugin de nose. Es copiar y pegar algo, nada más, las instrucciones acá.

Finalmente, hay que decirle a nose, cuando lo ejecutamos, que use tal o cual plugin, y de qué forma. Acá viene mezclada la mano... algunas configs la podemos poner en el el $HOME/.noserc...

    [nosetests]
    with-progressive=1
    nologcapture=1
    verbose=1

..., pero otras las tenemos que especificar al ejecutarlo:

    nosetests --progressive-bar-filled=2 --progressive-function-color=1 --progressive-dim-color=5

Esto último se podría meter como un alias del bash, o simplemente encapsularlo en un script 'test' en el proyecto (junto con algún pyflakes o pylint, etc).

En fin. Lo importante es: Keep Testing :)

Read more
facundo

Encuentro 2.0


Como varias veces ya les conté, Encuentro es un simple programa que permite buscar, descargar y ver contenido del Canal Encuentro, Paka Paka, BACUA, Educ.ar y otros.

Hoy estoy liberando la versión 2.0, una versión importante ya que hace que todo vuelva a funcionar correctamente, luego que Encuentro y Conectate reconfiguraran sus portales. En otras palabras... actualizá, sí o sí.

Encuentro

La versión 2.0 trae los siguientes cambios con respecto a la versión anterior:

  • Vuelve a funcionar luego de los cambios de backend de Encuentro y Conectate
  • Maneja las temporadas de los programas; no se repiten nombres y graba agrupado a disco
  • Sólo anota (y no requiere aprobación del usuario) al tener errores en la descarga
  • Mejor manejo de las imágenes de los episodios, con lo cual ahora se ven las de Bacua
  • Actualiza automáticamente la metadata si se la encuentra demasiado desactualizada
  • El proyecto tiene menos dependencias, es más simple hacerlo funcionar en más sistemas
  • Soporta ser ejecutado en un virtualenv
  • Varias correcciones y detalles para hacerlo más usable y robusto

Hay muchas formas de instalarlo, todo bien explicadito en la página oficial. ¡Que lo disfruten!

Read more
facundo


Entre los viajes y las vacaciones, estos meses terminé viendo un montonazo de películas. Encima, no aparecieron muchas peliculas copadas para anotar a futuro.

Por otro lado, no estuve viendo muchas series. Con Moni estamos viendo Battlestar Galactica, y yo tengo varias a punto de arrancar (Black Mirror, Almost Human, Through The Wormhole S03).

Pero, a nivel de películas, sí recuperé bastante terreno, :)

  • Chronicle: -0. Muy bien desarrollado el tema de cómo llevar adelante, explorar, y en algún punto sobrellevar, un superpoder adquirido. El resto de la película no vale.
  • Contagion: -0. Muestra de forma interesante (y ajustado a la realidad, me parece) el proceso social ante una epidemia, y las actuaciones están bien, pero le falta como película, como historia contada, como relato.
  • Dream house: +0. Predecible, predecible, predeci..WHAT? Un giro loco, la historia está buena, las actuaciones también; quiere ser un toque de terror pero blah.
  • El hombre de al lado: -0. Tiene partes interesantes, y Daniel Araoz está genial, pero la historia no llega a evitar el naufragio.
  • Elefante blanco: +0. Una realidad que uno (yo) no conoce; bien crudo como acostumbra Trapero. Darín está bien como siempre. Podría estar mejor la historia.
  • Ender's game: +1. Es una buena adaptación del libro, y la película está buenísima. Sí, el libro está mejor, tiene toda una parte que en la peli ni aparece, y es mucho más profundo... pero todo eso no hace que la peli en sí deje de estar buena.
  • Habitación en Roma: +1. Una película hermosa, cruda, y maravillosa, sobre el "enamoramiento".
  • Haywire: -0. Una película de acción que tiene algunos buenos actores un poco desaprovechados, tiene partes buenas, pero meh, es una más sin nada que la haga valer específicamente.
  • Killer Elite: -0. Al final no es más que una historia (que sí está buena) donde muchos machotes están todo el tiempo midiendo a ver quien tiene la pistola más larga.
  • Margin call: +1. Impecablemente contado la interna humana de un descarrilamiento financiero. Me gusta mucho el punto de vista del trabajador interno de la empresa, me pareció muy veraz. Muy buenas actuaciones.
  • Men in black III: +0. Divertida. Más de lo mismo pero con lo interesante de los saltos temporales y mostrar como era MIB en el pasado :)
  • Mission: Impossible - Ghost protocol: +0. No deja de ser la misma película fantasiosa de siempre, pero esta vez me divertí bastante al verla.
  • Monsters University: +1. Tan buena como la primera, aunque totalmente distinta.
  • No strings attached: -0. Natalie Portman no la llega a rescatar; el tema es trillado, no le dan un giro interesante, y Kutcher, como siempre, resta.
  • Paul: +0. Comedia liviana, nada espectacular, para reirse un rato y disfrutar todas las referencias extraterrestroides.
  • The Avengers: +0. Un poco demasiado violenta, pero en el límite (me hacía acordar a Transformers). Me divirtió. Me gustó los (escasos) planteos filosóficos que tiene, aunque al final siempre el mensaje de "menos mal que tenemos superheroes que nos van a salvar cuando todo esté mal", con el que estoy totalmente opuesto.
  • The King's speech: +1. Fantástica película, con actuaciones soberbias, y una historia muy interesante sobre superación personal.
  • The Ledge: +1. La historia interesante, las actuaciones bien. Muy buenos contrapuntos sobre "la religión". Emotiva. Patrick Wilson mejor de lo que esperaba, y Terrence Howard, como siempre, muy muy bien.
  • The divide: +1. Muy bien hecha. Muestra tan bien las miserias humanas que, aunque no soy impresionable y me banco (casi) cualquier cosa, no la voy a volver a ver.
  • The hobbit: The desolation of Smaug: +1. Segunda parte de la trilogía, sigue estando muy buena. Sorprendente la voz de Smaug (el dragón), ¡es Sherlock! http://www.imdb.com/name/nm1212722/
  • The thing: +1. Es vieja, pero los efectos no están tan mal. Y parece que tiene un montón de lugares comunes... hasta que uno entiende que en esa época no eran comunes! ;)


Las anotadas nuevas:


Finalmente, el conteo de pendientes por fecha:

(Sep-2008)    6
(Ene-2009)   18  12   1   1
(May-2009)   11  10   5
(Oct-2009)   16  15  14
(Mar-2010)   18  18  18  16   4
(Sep-2010)   18  18  18  18  18   9   2   1
(Dic-2010)   13  13  13  12  12  12   5   1
(Abr-2011)   23  23  23  23  23  23  22  17   4
(Ago-2011)       12  12  11  11  11  11  11  11   4
(Ene-2012)           21  21  18  17  17  17  17  11
(Jul-2012)               15  15  15  15  15  15  14
(Nov-2012)                   12  12  11  11  11  11
(Feb-2013)                       19  19  16  15  14
(Jun-2013)                           19  18  16  15
(Sep-2013)                               18  18  18
(Dic-2013)                                   14  14
(Abr-2014)                                        9
Total:      123 121 125 117 113 118 121 125 121 110

Read more
facundo

Primer cumpleaños de Male


El domingo pasado le festejamos el cumple del primer añito a Malena.

Lo hicimos en un salón, pero todo muy informal; la idea era que al aire libre iba a estar muy fresco, y necesitábamos mucho lugar para todos los invitados.

Lo pasamos bárbaro. Incluso Male, que tuvo un poco de fiebre durante un rato (estaba justo cortando dos muelas y un diente) se notó que jugó y disfrutó.

Moni y Male

Moni estuvo muchas semanas antes del cumple haciendo millón de cositas de decoración, y los últimos días, conmigo, armamos todo lo que es comida (excepto el pollo para los sanguchitos, de la madre de Moni, y las empanadas de atún, de mi vieja). ¡Es que en el cumpleaños era todo casero! Desde los sánguches de miga, hasta lo dulce.

Por mi parte, además de comestibles, me ocupé de la cartelera que pueden ver acá abajo (similar a la que había hecho para el año de Felu), y los videos (pueden ver el cortito y más emotivo haciendo click en la cartelera).

Un año, foto a foto

La verdad es que nos encanta hacer los cumpleaños así, pero es un esfuerzo descomunal. Ya para el quinto de Felu, en Octubre, supongo que cambiaremos la metodología... pero no estamos seguros :)

Read more
facundo

PyCamp 2014


Se fue otro PyCamp. Como siempre, genial. Lo charlaba con Moni, es notable como el formato del evento no decae año a año, ¡siguen siendo bárbaros!

Eso sí, voy a tratar de innovar en lo que es la descripción del mismo, escaparme de hacer una cronología, y orientar más el relato a las situaciones.


Llegando y saliendo

Los viajes bien. Como el año pasado, me quedé hasta "cerrar el evento", y también como el año pasado, luego de vaciar el lugar, entregar la llave y eso, nos quedamos algunos tomando unas cervezas en el bar del lugar, hasta que íbamos partiendo en función del horario de bondi de cada uno.

La diferencia estuvo en la llegada, ya que este año no tuvimos al Joven Ocupado en la Accesibilidad y Conectividad (JOAC), así que tuvimos que armar toda la infraestructura de red sin saber demasiado. Viajé con Nico Demarchi, así que al llegar nos pusimos con eso... y aunque no es rocket science, tampoco es trivial, y estuvimos como tres horas para dejar todo lindo!

Una Antena Sable Laser


Proyectos

El proyecto mío en el que más trabajé fue Encuentro, en parte en esta biblioteca para parsear SWFs que vengo necesitando, pero también porque para este proyecto se anotaron varias personas... ¡y metieron un montón de laburo! Tres branches de Mica Bressan, dos de Nico y uno de Emiliano Dalla Verde Marcozzi, y creo que hay otro más dando vuelta por ahí.

También trabajé en un proyecto nuevo, que arrancó en este PyCamp. Es WeFree, un proyecto para almacenar colaborativamente claves de redes, de manera de hacer que tu computadora o teléfono se conecte automáticamente en todos los lados posibles. Participé todo el primer día, en el diseño general y luego armé la interfaz gráfica para la compu (no toda, pero sí la base, dejando algo usable).

Algo en lo que también trabajé desde cero, pero que no sé si se puede calificar como proyecto, fue algo así como la "búsqueda del testrunner perfecto", que describí en este post. Con la ayuda de Martín Gaitán atacamos como base a nose, y le fuimos agregando plugins y probándolos. El experimento fue un éxito, logramos todo lo que queríamos, ya voy a poner un post acá explicando bien el detalle.

Hubo un proyecto que llevé pero en el que yo no trabajé, que fue Linkode, pero Seba Alvarez estuvo haciendo cosas copadas con la interfaz, me tiene que mandar el código.

Finalmente, arranqué ayudando a un par de chicos a migrar código a Python 3, pero no hicimos mucho de eso (aunque aprendimos algunos detalles interesantes).

Laburando en Encuentro con Nico, Mica y Emi (que sacó la foto)


Las noches

Sólo tres, porque el último día uno viaja, pero las aprovechamos a full :)... la gente se va a dormir sorprendentemente tarde luego de lo arduo que son los días. Bah, más sorprendente es que muchos al otro día nos levantamos temprano :p

La primer noche jugué a un juego que no conocía, el Munchkin, ¡y gané!. Está bueno el juego, pero es uno de esos que tenés que leer mil cartitas, entonces las primeras diez veces que jugás se hace un poco lento.

El sábado fue la reunión de PyAr, y después charlé con gente y programé algo, no jugué a nada.

La tercer noche fue doble... Munchkin primero (ganó Matías), y luego jugamos al Carrera de Mente. Hacía como 15 años que no jugaba un Carrera de Mente, no me acordaba que fuese tan divertido! Nos reimos mucho.

Carrera de Mente


Notas de color

Este año Alecu no pudo venir... y Diego Sarmentero se le ocurrió la idea de nombrarlo Lider Inspiracional, y mandó a imprimir dos cuadros, uno para tenerlo durante el día, y otro para tenerlo luego de las cenas.

A nivel de "actividades al aire libre", este año volvimos a repetir la caminata del año pasado hasta el río (fuimos un grupito de unos 10), y también hice paddle con Hugo Ruscitti, Emilio Ramirez y Hernán Lozano. ¡Jugamos un montón! Bah, menos de dos horas, pero nos arreglamos para meter dos partidos (cinco sets rápidos).

También hicimos una key signing party, y Juanjo Ciarlante nos charló un poco de seguridad y buenas costumbres.

Todos


Conclusión

Bien simple, lo afirmo una vez más: ¡PyCamp es el mejor evento del año! (todas las fotos acá).

Read more
facundo

Algunas herramientas piolas


Hace rato que vengo con ganas de hablar acerca de una serie de herramientas interesantes que he encontrado.

Son de lo más variadas. Lo único que tienen en común es que solucionan un problema específico que tuve o tengo. Y que me parece que son piolas :)

Limitando el ancho de banda: ¿Tienen una aplicación que les usa mucho la red? Aunque la misma no esté preparada para autolimitarse, siempre se puede hacer desde afuera, y para ello nos viene a ayudar trickle, un utilitario que hace justamente lo que queremos: ejecutar otro programa limitándo su ancho de banda usable para download, para upload, o ambos.

Midiendo uso de recursos: Muy relacionado con lo anterior, a veces vemos que la red se está usando, pero no sabemos por qué proceso. Para contestarnos esto tenemos dos herramientas, IPTraf y NetHogs,  que nos muestran la info pertinente de forma bastante distinta, por lo cual está bueno tener ambas a mano, para probar cual nos va mejor en cada momento. También nos pasa parecido con el uso del disco. en este caso nos salva las papas el iotop. Para recursos como memoria y CPU tenemos el clásico top, obviamente, pero muchas veces uso htop que es más interactivo y me facilita la exploración.

Fijate si cambió:¿Alguna vez les pasó que tiran un comando en la terminal cada algunos segundos para monitorear algo, tratando de ver si algún dato cambia o viendo cómo cambia? En estos casos lo mejor es usar watch, que nos ejecuta el programa que queremos, cada los segundos que le especificamos, y encima nos resalta los lugares donde hubo cambios con respecto a la ejecución anterior. Más útil de lo que parece.

Mandando muchos mails:Me pasa seguido, para organizar jodas en casa, o eventos en PyAr, o cursos, etc, que tengo que mandar el mismo mail a mucha gente. Mandar uno por uno es mucho trabajo; mandar todos en "copia oculta" es muy impersonal; y ponerlos a todos en "copia visible" es una mala práctica. Por suerte está Mail Merge, un plug-in para Thunderbird que hace todo sencillo: uno pone todos los destinatarios en el campo de "Para:", pero luego en lugar de hacer click en "Enviar", se elige la opción de MailMerge, y en vez de salir uno para todos, el plug-in manda un mail a cada uno. Limpio, y útil. Y tiene opciones para lograr cosas más complejas, pero no lo exploré demasiado, con esta funcionalidad básica por ahora me alcanza.

Seguridad, seguridad: Por último, la herramienta que más me tiene fascinado estos últimos tiempos. Se llama KeePassX, y marcó un antes y un después en mi administración de contraseñas. En el pasado, yo tenía tres o cuatro claves... una genérica, una para lugares de "alta seguridad" como el banco, etc, y las repetía en varios sitios. Así y todo, las claves no eran demasiado complejas (usaba mayúsculas, minúsculas y números, pero no caracteres extraños, y nunca superaba los 10-12 caracteres). ¿Por qué? ¡Por que me las tenía que acordar! Con KeePassX, sin embargo, ya no me las tengo que acordar: se guardan en un archivo (cifrado con una clave que sí tengo que acordarme, y la hice complicada y larga, pero es una sola). El programa no es mucho más que eso, pero también te permite relacionar campos con la clave (en qué sitio va, el nombre de usuario,etc), y también tiene campos genéricos donde uno puede escribir cualquier cosa. Ah, y también te autogenera claves... entonces, la realidad es que ni siquiera veo las alguna vez! Todo esto, sumado a la facilidad de uso (por ejemplo, ctrl-B sobre una entrada te copia el nombre del usuario, y ctrl-C te copia la clave) y que tiene clientes para muchas plataformas (incluida Android), hace que sea una herramienta maravillosa.

Read more
facundo

Corriendo tests


En la vida del programador hay una tarea que lleva bastante tiempo, y es la de correr tests, ya sean "unit tests" (pruebas unitarias) o "integration tests" (pruebas donde se hacen interactuar subsistemas entre sí).

Es cierto, no todos los proyectos tienen tests, pero deberían. ¡Y son un vicio! Una vez que los probaste, querés pruebas en todos los proyectos. Pero claro, a los tests hay que correrlos, y hay muchas maneras de hacerlo.

La verdad es que la estructura de los tests es siempre la misma (o casi siempre), obviamente hablando de proyectos en Python, pero la forma de correrlos, y especialmente la forma de presentar los resultados, varía mucho de un corredor de tests a otros.

A lo largo de años he probado distintos, y debo decir que ninguno cumple 100% con lo que a mi me gustaría tener en el test runner ideal. Por otro lado, seguramente alguno (como nosetests, por ejemplo), cumpla gran porcentaje de lo que quiero, es cuestión de lograr lo que falta.

Acá está la listita de las cosas que cumpliría mi test runner soñado. Propuse un proyecto en el PyCamp de este mes para laburar en esto (obviamente no escribir algo desde cero, sino lograr el objetivo con el menor esfuerzo posible).

Le puse un número a cada ítem para que sea más fácil referenciar en cualquier discusión:

01. Debería soportar que le pase un directorio (default a '.') y que descubra todo ahí y para abajo:

        $ <testrunner> project/tests/
        $ <testrunner>

02. Debería soportar que le pase un archivo, y que corra sólo los tests de ese archivo:

        $ <testrunner> project/tests/test_stuff.py

03. Debería soportar que le pase "paths de import de Python", y que corra sólo tests de ese paquete, módulo, clase, o lo que corresponda:

        $ <testrunner> project.tests
        $ <testrunner> project.tests.test_stuff
        $ <testrunner> project.tests.test_stuff.StuffTestCase
        $ <testrunner> project.tests.test_stuff.StuffTestCase.test_feature

04. Debería poder pasarle una regex para que corra sólo lo que re.search() encuentra en el path completo del método:

        $ <testrunner> project/tests/ --search feature
            correría:
                test_feature
                test_feature_1
                test_feature_2
            no correría:
                test_crash

        $ <testrunner> project/tests/ --search feature$
            correría:
                test_feature
            no correría:
                test_feature_1
                test_feature_2
                test_crash

05. Debería poder decirle que pare de correr los tests al encontrar el primer error o falla.

06. Debería poder indicarle que mida los tiempos de cada test (y al final que presente un reporte con los N tests que más tardaron).

07. Debería mostrar los resultados usando los nombres de paquete/módulo/clase/método, en una jerarquía de árbol o en la misma linea:

        $ <testrunner> project/tests/test_stuff.py
        project.tests.test_stuff
          StuffTestCase
            test_feature_1                        OK
            test_feature_2                      FAIL
          OtherStuffTestCase
            test_feature_A                        OK

        $ <testrunner> project/tests/test_stuff.py
        OK    project.tests.test_stuff.StuffTestCase.test_feature_1
        FAIL  project.tests.test_stuff.StuffTestCase.test_feature_2
        OK    project.tests.test_stuff.OtherStuffTestCase.test_feature_A

    De cualquier manera, esto no afecta el órden de ejecución de las pruebas (secuencial, aleatoria, etc), sólo es cómo mostrar los resultados.

08. Los OKs deberían ser verdes; ERRORs y FAILs deberían ser rojos.

09. Los OKs/FAILs/ERRORs para cada prueba, en el listado, deberían estar alineados verticalmente.

10. No debería capturar stdout/stderr.

11. En el reporte final (luego del listado que va mostrando al ejecutar todo), debería mostrar el path completo del test que falla (o de los tests que fallan), junto con el (los) errores, de manera que si uno copia y pega ese path, sirva para correr ese único test.

Read more
facundo

Ma, cosa facciamo?


En otras palabras, ¿qué ando haciendo? Como verán, escribiendo poco en el blog, :p

En parte la culpa la tiene que en el laburo hay mucho ídem (la semana que viene es el Mobile World Congress y estuvimos terminando unas cositas de lujo que se usan desde el Ubuntu Phone). Pero no sólo laburo es el tema... estoy empujando varios proyectos en paralelo, y la familia estuvo de vacaciones.

Bah, no toda la familia, Moni empezó a trabajar a principios de Febrero, Felu está en casa todo el día (al final este año no lo mandamos a colonia), y Male tuvo de vacaciones a la chica que la cuida a la mañana. Ergo, mis mañanas, durante un par de horas, eran complicadas. Esto en el trabajo lo compensaba trabajando más tiempo a la tarde, lo cual también me quitaba tiempo libre.

Male y Felu, jugando

Pero bien. Ya casi estamos en ritmo para el resto del año, así que quería contarles un poquito algunos avances en varios proyectos, que aunque no cerré ninguno como para contarlo por separado, está bueno que se vea el progreso.

Al que le metí más pata las últimas semanas es Encuentro. Más allá de algunas correcciones menores, estuve laburando para meterle un feature interesante: un nuevo backend de datos (que no voy a comentar hasta estar seguro que funca bien). Pero para eso necesitaba una biblioteca para parsear SWFs. Lo que encontré por ahí estaba roto o incompleto, y con el código muy ofuscado como para toquetearlo (no los culpo, parsear estructuras binarias es un dolor de oido, y la de SWF en particular es recontracomplicada). En fin, el tema es que necesité hacer la biblioteca yo. Y la hice, ¡muy divertido! Pero mucho trabajo. Acá está, para que la aprovechen si necesitan: Yet Another SWF Parser.

El otro proyecto de software que estuve empujando un poco es CDPedia, en dos frentes muy relacionados. Por un lado, tener un único ejecutable al que uno llame con varios parámetros y haga "todo solo" (hoy en día la generación completa de la CDPedia implica muchos pasos manuales). Por otro lado, que la generación sea en otro idioma que el castellano. Ambos frentes se juntan en la idea de tener una máquina que vaya generando sola CDPedias de distintos idiomas. Ya llegaremos.

También estuve un par de días agregándole un feature a Magicicada (que se iconice) y corrigiéndole un bug molesto (cada vez que una transferencia terminaba había un efecto feo con el porcentaje de las otras). El único detalle que le quiero agregar para que me sirva en todo lo que lo uso es tener un botón de "publicar", que me deje elegir un archivo y lo publique (linkeándolo desde el directorio de Ubuntu One si fuese necesario).

A Linkode, lo tengo abandonadazo, pero ya lo voy a retomar. Y también le estoy tratando de meter algo de tiempo a Preciosa, la aplicación de Martín para que no nos mientan con los precios y poder comprar más barato.

Para complicarme la vida, se me pinchó un disco de la compu (un Western Digital Caviar Blue de 500GB). Empezó a hacer ruidito, y podía acceder a veces sin problemas, y a veces se turulaba. Julia me dió la idea de apagarlo por software (hdparm -Y) para que no se siga deteriorando mientras obtenía el reemplazo, así que aguantó varias semanas sin problema. Finalmente compré un Seagate de 3TB, y el otro día lo reemplacé sin mayor inconveniente, pudiendo rescatar todos los datos (con el detalle, ojo al piojo, de que hay que crearle una tabla de particiones tipo GPT, porque la común que usamos toda la vida solamente sirve hasta 2TB).

Y en el medio de todo, cerrando el contrato con el hotel donde vamos a hacer el PyCamp este año. Es en Villa Giardino, como el año pasado, ¡y ya pueden anotarse! No dejen de venir, es el evento de programación más divertido y productivo del año, :)

En fin. ¿Qué ando haciendo? Mil cosas :D

Read more
facundo

Descansando


Este enero con la familia nos tomamos unos días para pasear.

No teníamos ganas de ir mucho tiempo a un lugar puntual, así que hicimos una especie de popurrí.

El primer viajecito fue bastante cerca: nos fuimos a una chacra en Open Door por tres días. Era con las cuatro comidas incluídas, así que descansamos *y comimos* un montón...

Había una pileta que disfrutamos muchísimo, y actividades para los pequeños, que incluía darle de comer a animalitos, ordeñar una vaca, y varios etcéteras.

Viendo como se ordeñaba una vaca

El segundo viaje fue más lejos, e hicimos dos lugares en tándem. De casa fuimos para Costa Azul, a disfrutar de la playa y el mar.

Me sorprendió por un lado todo lo que Felu disfrutó el mar, y las ganas con las que Malena le entraba a la playa y el mar.

Malena y el mar

De la costa fuimos directamente para Chascomús, donde nos quedamos un par de días.

En el viaje nos agarró una tormenta como nunca había visto. En la vida había manejado con tanta agua alrededor. Pero llegamos bien, y como los días no estaban tan soleados, aprovechamos para descansar bastante.

El último día se acercaron mi vieja y Oscar y armamos un día de pesca en la laguna. Estaba fresco, pero soleado, y nos terminamos quemando un poco demasiado :/

Felipe en la laguna

En fin, descansamos mucho, y comimos más (ya nos pusimos a dieta :p). Y los chicos la pasaron bárbaro.

Read more