Decime quién sos vos (el regreso)

En Marzo del 2009 arrancaba un programa de radio que duró casi nueve años.

Un programa distinto, de entrevistas tranquilas, sin las presiones normales del "tiempo tirano" que hace acortar las respuestas, o someterse a un ping pong rápido.

Se llamó Decime quien sos vos, el programa de entrevistas de Eduardo Aliverti.

Yo lo descubrí varios años después. Lo empecé a escuchar algunos domingos, luego todos los que podía. Después encontré que había un sitio oficial: estaban los programas colgados en la web, pero difícil de "buscar".

Entonces le agregué este programa de radio a las fuentes de información de mi programa Encuentro, que así me permitió buscar todos los programas de Decime quien sos vos que quería escuchar, bajarlos e irlos escuchando en el auto o andando en bici. Incluso escribí sobre eso acá en mi blog.

El cierre del 2017 trajo la mala noticia de la cierre de este ciclo. Recuerdo que con Diego Mascialino nos pusimos bastante tristes, porque nos gustaba mucho.

Hace varios meses, hablando de otra cosa, con Diego encontramos que el sitio oficial de Decime quien sos vos estaba caido. Todas esas entrevistas, ese archivo fantástico, perdido para siempre. Que bajón.

Bueno, "para siempre". Aguante "la internet". Hace unas semanas Diego encontró que los audios de los programas habían sido colgados en un sitio, y aunque ese sitio no estaba más, había sido indexado por el Internet Archive, entonces los pudimos bajar de ahí.

Yo por mi parte me iluminé y rescaté de un backup la metadata que había juntado mi programa Encuentro, y de ahí rescaté las imágenes y textos originales de cada edición del programa.

Entonces, como nos negábamos a que ese contenido se perdiera, armamos una página medio homenaje medio servicio para que el Universo pueda escuchar esas entrevistas.

Claro, no tenemos el copyright de nada (ni los audios, ni los textos, ni las imágenes), ojalá no tengamos bardo. Bah, lo ideal es que vuelva a estar disponible el contenido de forma "oficial" y nosotros podamos bajar esta página. Veremos.

Comentarios Imprimir

Flagsy, el juego de las banderas

Hace tipo un año se me ocurrió hacer un juego sobre banderas y países.

No me acuerdo exactamente cómo fue que me surgió la idea, seguramente algo tuvo que ver un juego de cartas llamado Timeline, que a groso modo te ofrece un descubrimiento/invención/etc y une tiene que "adivinar" el año en que sucedió y usar eso para acomodar la carta. También debe haber influído las ganas/necesidad de que mis chiques aprendan las banderas y capitales de los países (y yo también, vamos, que ni cerca estoy de saberlas todas).

Esto quedó en el estadío de "proyecto idea" durante muchos meses, y lo terminé activando durante la cuarentena.

Lo armé como proyecto de software, porque juntar toda la info no es trivial, así que terminé construyendo una serie de programitas que toman info de Wikipedia y la van dejando bonita y armada.

Luego curé a mano toda esa info y me aseguré que estaba toda completa y prolija. Y finalmente con la ayuda de Manu Quiñones hicimos que las cartas queden "lindas".

Al final quedaron 194 cartas, tantas como países hay en el mundo; cada una tiene de un lado la bandera del país, y del otro lado información correspondiente al mismo país.

De un lado la bandera de ArgentinaDel otro lado la info correspondiente a Argentina

El objetivo del juego es quedarse sin cartas al completar la vuelta (puede ganar una persona o varias). Para ello se mezclan las cartas y se reparten cinco a cada persona, apoyadas en la mesa con la bandera para arriba (no se puede espiar el otro lado). El resto se deja en un mazo. Arranca la persona más joven de la mesa.

En su turno, cada persona elige una carta de su mazo, la pone en el centro de la mesa y arriesga de qué país es la bandera. Si acertó, descarta la carta, efectivamente quedándose con una menos. Si erró, descarta la carta y saca otra del mazo.

Para hacerlo más complicado y divertido, se puede acordar previamente que no sólo hay que arriesgar el país, sino también el continente, o la capital, o algún gentilicio, etc.

Esta semana estaré imprimiendo las cartas (estoy esperando el presupuesto de la imprenta), pero ustedes también pueden armarse su propio mazo y jugar, ya que es un juego libre! Lo único que tienen que hacer es bajarse todos los PDFs y mandarlos a imprimir (y si lo quieren en otro idioma, también pueden forkear el proyecto y ajustarlo como sea necesario).

¡Y compártanlo! Porque aunque ustedes no lo quieran imprimir, quizás alguien más sí...

Comentarios Imprimir

Series, ¿y películas?

Este post es sobre pelis, sí, pero como viene pasando cada vez más seguido, tiene mucho contenido sobre series...

  • Masters of Sex: Finalmente terminé de ver con Moni esta historia pseudoreal sobre William Masters y Virginia Johnson, dos investigadores pioneros de la sexualidad humana que hicieron principalmente su trabajo durante los años 1950 y 1960. La serie arrancó muy bien, pero la tercer y cuarta temporada fueron medio un embole y nos costó terminarla...

  • Luther: voy bastante avanzado con una serie británica muy buena... una especie de Sherlock Holmes conflictuado con su vida y su profesión, me gusta mucho. Son temporadas cortas de capítulos largos, como tantas series inglesas. Labura Idris Elba, debo decir que muy bien. El primer capítulo de la primer temporada presentan también a la que es la archi-enemiga-amiga del personaje principal, caracterizada por Ruth Wilson, con una escena de altísimo erotismo intelectual.

  • The Expanse: esta es una de las que más me vienen gustando. Es "del espacio", pero no todo son naves y disparos, hay mucho de política interplanetaria (que disfruto mucho luego de haber leido la trilogía marciana), y es bastante real en como se presentan las situaciones y los contextos, todo mucho más real, desde las naves a las condiciones de laburo de la gente en los suburbios del sistema (es más parecido a un Battlestar Galactica que a un Star Trek). Está basada en una serie de libros.

  • El vecino: Una muy simpática comedia española (basada en una historieta), pensé que era una sola temporada pero parece que continúa. Es rápida, simple y divertida, recomiendo.

  • Outlander: Esta la empecé a ver por recomendación de mi hermana (fana de las novelas de Diana Gabaldon en las que se basa la serie. Me gusta bastante, y es imprescindible si te interesa aprender el acento escocés, :). Además, tiene una canción de intro absolutamente maravillosa.

Ojo que películas también estuve viendo.

Y la verdad que aunque no fueron demasiadas, tuve una buena tanda a nivel "calidad" de las mismas (o, para ser más justo, más que calidad es si la película me gustó a mí).

¿Les dije lo linda que es la fotografía de The Man Who Killed Don Quixote?Los cuatro Queen en la escena donde graban la canción homónima a la película

En un apartado bastante más nerd, les cuento que estoy dejando de usar IMDb para todo lo que es fuente de información de mis scripts que manejan contenidos de películas.

¿Qué scripts? Tengo varios, uno es por ejemplo el que me prepara los links de estos posts (y automáticamente saca lo que ví y agrega lo nuevo en el listado general, tengo otro que me agarra las películas que tengo en el disco que tengo enchufado a la tele y me arma un resumencito así sé qué tengo disponible para ver, y otro por ejemplo es un programejo que me renombra los videos de un directorio poniendole el nombre de cada capítulo de la serie.

Justamente para ese último empecé a usar la API de The Movie DB, y la verdad es que fue un viaje de ida. Es muy clara, intuitiva y fácil de usar. Y no necesitás ningún módulo en el medio (aunque hice una pequeña capa para armar los requests más simples, pero trivial). Y tiene un feature que nunca pude sacar en IMdb: obtener los nombres originales de las pelis. Incluso el sitio "para consumo humano" es mucho más elegante y menos amontonado.

Temple en su elementoBuen balance entre lo tranquilo y callado que es el espacio y no aburrir

Entonces, los reviews...

  • Alanis: +0. Buena la actuación de Sofía Gala Castiglione, por momentos desgarradora la historia.

  • Bohemian Rhapsody: +1. Excelente película. No sólo cuenta la historia en sí, que es lo que uno espera, sino que la película en sí es grandiosa.

  • Eva: +0. Está buena, parece que viene un poco sosa y pega un par de giros. Me gusta el concepto de "comportamiento/humor por diseño".

  • Everybody Knows: +0. Está buena, arranca un poco lento porque no se ve venir el nudo, pero después de armado, es bastante sólida. Me gustaron las actuaciones.

  • Extraordinary Tales: +0. Varias pequeñas historias basadas en ídems de Poe. A nivel artística son alucinantes, pero a nivel "historia", podrían estar mejor, pero bueno, es un resumido.

  • First Man: +1. Aunque tiene algunas cosas de contexto que me parece que se van por las ramas, y Ryan Gosling nunca me convence, la película está muy bien para enterarse de toda la preparación para llegar a la Luna.

  • Gringo: +0. Mucha acción, divertida, cambiante. Una... comedia violenta? Te lleva.

  • Puzzle: +0. Linda y simpática, pero le falta como fuerza.

  • Sicario: +1. No sé cuanto será verdad de lo que muestran, pero sospecho que mucho, que realidad compleja. La peli está muy bien, actuaciones bárbaras, interesante las preguntas que te deja.

  • Spider-Man: Into the Spider-Verse: +1. Un punto de vista nuevo e interesante sobre "el hombre araña", bastante divertida.

  • Split: +0. La historia zafa, pero la actuación de James McAvoy es sencillamente espectacular.

  • Temple Grandin: +1. Gran peli, muy bien hecha, muy interesantemente contado su punto de vista.

  • The Man Who Killed Don Quixote: +1. Bizarra y loca, pero tiene sentido. Muy buenas actuaciones. Me estoy haciendo fan de Adam Driver. Un capo Jonathan Pryce, también. Terry Gilliam lo hizo de nuevo.

  • The Quietude: +0. Arranca raro, y tiene partes donde no se termina de desatar, pero después la remonta muy bien. GRAN actuación de Graciela Borges.

  • The Summit: +0. Muy interesante, bien llevada, arma todo muy bien... hasta que termina, y te deja como ahí arriba y vos querés un final.

  • Under the Silver Lake: -0. No tiene mucho sentido, es muy lenta para lo bizarra que es. Levanta en la segunda mitad, más al final, pero bleh.

Emily Blunt y Benicio del Toro, una dupla que funciona muy bienUn hombre araña no clásico

Y les decía, tengo (relativamente) pocas nuevas anotadas, y el conteo de pendientes sigue bajando y bajando.

Lo que no termino de entender es si estoy "anotando pocas", o están saliendo menos películas... o quizás menos películas buenas?

¿O es que yo no me estoy enterando las novedades? Seguro que me gustaría tener un flujo más estable de trailers para ver, sí...

  • 18 regali: (2020; Drama) Elisa is only forty when an incurable disease takes her from her husband and their daughter. Before her heart stops, Elisa finds a way to stay close to her: a gift for every birthday up to her adult age, 18 gifts to try to accompany her child's growth year after year. [D: Francesco Amato; A: Benedetta Porcaroli, Vittoria Puccini, Edoardo Leo, Sara Lazzaro, Marco Messeri]

  • Crimson Tide: (1995; Thriller, Action, War) On a US nuclear missile sub, a young first officer stages a mutiny to prevent his trigger happy captain from launching his missiles before confirming his orders to do so. [D: Tony Scott, James W. Skotchdopole; A: Denzel Washington, Gene Hackman, Viggo Mortensen, Matt Craven, Steve Zahn]

  • La fiesta silenciosa: (2019; Thriller) The day before their wedding, Laura and Daniel go to her family country house. The couple is under a lot stress. She decides to take a walk, and ended in the young neighbour's house, where a silent party is taking place. What started like a fun night, quickly escalates in a violent and horrible experience. [D: Federico Finkielstain, Diego Fried; A: Jazmín Stuart, Esteban Bigliardi, Gerardo Romano, Gastón Cocchiarale, Lautaro Bettoni]

  • Morbius: (2021; Action, Horror, Science Fiction, Thriller) Biochemist Michael Morbius tries to cure himself of a rare blood disease, but he inadvertently infects himself with a form of vampirism instead. [D: Daniel Espinosa; A: Jared Leto, Adria Arjona, Matt Smith, Jared Harris, Tyrese Gibson]

  • Radioactive: (2020; Drama, Romance, History) Tells the story of Nobel Prize winner Marie Curie and her extraordinary scientific discoveries — through the prism of her marriage to husband Pierre — and the seismic and transformative effects their discovery of radium had on the 20th century. [D: Marjane Satrapi, Nige Watson; A: Rosamund Pike, Sam Riley, Aneurin Barnard, Anya Taylor-Joy, Simon Russell Beale]

  • Tenet: (2020; Action, Thriller) Armed with only one word - Tenet - and fighting for the survival of the entire world, the Protagonist journeys through a twilight world of international espionage on a mission that will unfold in something beyond real time. [D: Christopher Nolan; A: John David Washington, Robert Pattinson, Elizabeth Debicki, Kenneth Branagh, Michael Caine]

  • The French Dispatch: (; Comedy, Romance, Drama) The staff of a European publication decides to publish a memorial edition highlighting the three best stories from the last decade: an artist sentenced to life imprisonment, student riots, and a kidnapping resolved by a chef. [D: Wes Anderson, Ben Howard; A: Bill Murray, Benicio del Toro, Frances McDormand, Jeffrey Wright, Adrien Brody]

  • The Invisible Man: (2020; Thriller, Science Fiction, Horror) When Cecilia's abusive ex takes his own life and leaves her his fortune, she suspects his death was a hoax. As a series of coincidences turn lethal, Cecilia works to prove that she is being hunted by someone nobody can see. [D: Leigh Whannell, Daniela Saioni; A: Elisabeth Moss, Aldis Hodge, Storm Reid, Michael Dorman, Harriet Dyer]

  • The Game Changers: (2019; Documentary) From the UFC Octagon in Las Vegas and the anthropology lab at Dartmouth, to a strongman gym in Berlin and the bushlands of Zimbabwe, the world is introduced to elite athletes, special ops soldiers, visionary scientists, cultural icons, and everyday heroes—each on a mission to create a seismic shift in the way we eat and live. [D: Louie Psihoyos; A: James Wilks, Arnold Schwarzenegger, Patrik Baboumian, Scott Jurek, Dotsie Bausch]

Finalmente, el conteo de pendientes por fecha:

(Jul-2014)    1
(Nov-2014)    7
(Feb-2015)   10
(Jun-2015)   13  11   1
(Dic-2015)   19  18   6   1
(May-2016)   25  23  21   9
(Sep-2016)   19  19  18  14   1
(Feb-2017)       26  25  23  21   9   1
(Jun-2017)           23  23  21  18   5
(Dic-2017)               19  19  18  16   5   2   1
(May-2018)                   22  22  22  17   9   2
(Sep-2018)                       12  12  12  10   3
(Mar-2019)                           13  13  13  12
(Ago-2019)                               10  10  10
(Feb-2020)                                    8   8
(Ago-2020)                                        9
Total:       94  97  94  89  84  79  69  57  52  45
Comentarios Imprimir

Liberé logassert 5

Estoy feliz de traerles una nueva versión de logassert, un mecanismo simple para verificar en los tests de un programa en Python que los logs se realizaron correctamente.

Porque todes sabemos que tenemos que chequear los logs de nuestros programas, ¿cierto? Con logassert esto es muy fácil.

Esta nueva versión trae la funcionalidad de poder usar logassert como un fixture de pytest, con semánticas totalmente renovadas (para las estructuras de "unittest clásico", logassert casi no cambió, por compatibilidad).

Entonces, para pytest todo lo que se necesita es declarar logs en los argumentos del test (funciona como cualquier otro fixture), y luego chequear (usando assert, como es normal con pytest) si una linea específica está en los logs para un nivel específico.

Miren este ejemplo, con varias lineas logueadas, y un control específico:

logger.info("Starting system")
places = ['/tmp/', '~/temp']
logger.debug("Checking for config XYZ in all these places %s", places)
logger.warning("bad config XYZ")

assert "bad config XYZ" in logs.debug

Vean como el mensaje de falla es muy útil:

assert for regex 'bad config XYZ' check in DEBUG, failed; logged lines:
       INFO      'Starting system'
       DEBUG     "Checking for config XYZ in all these places ['/tmp/', '~/temp']"
       WARNING   'bad config XYZ'

Puede instalar logassert desde PyPI. El proyecto está en Github.

¿Les interesa más detalle de como funciona?

Como les dije arriba, pueden incluir el fixture logs y después directamente usar assert. Ejemplo:

def test_bleh(logs)
    (...)
    assert "The meaning of life is 42" in logs.debug

En verdad, la linea que escriben es una expresión regular, entonces pueden hacer (en caso de que sepan exactamente cual es el significado de la vida):

assert "The meaning of life is \d+" in logs.debug

La cadena indicada se busca dentro de las lineas logueadas, no tiene que ser exactamente la linea completa. Si quieren eso, indíquenlo como en cualquier expresión regular:

assert "^The meaning of life is \d+$" in logs.debug

De forma similar, también pueden verificar que esté al principio o al final de la linea logueada.

NOTA: el mensaje verificado es el final, luego de que el system de logging reemplazó todos los parámetros indicados en la cadena indicada.

Si quieren verificar que un texto fue logueado sin importar en qué nivel, sólo hagan:

assert "The meaning of life is 42" in logs.any_level

Para verificar que un texto NO fue logueado, sólo usen la sintáxis de Python! Por ejemplo:

assert "A problem happened" not in logs.error

Si no les gusta las expresiones regulares, importen Exact de logassert y envuelvan la cadena con eso. Por ejemplo, en este caso el .. significa "dos puntos", no hace nada a nivel expresión regular:

assert Exact("The meaning of life is ..") in logs.any_level

Para pedir ayuda, si tienen alguna pregunta, o encuentran algún detalle, por favor abran un ticket.

¡Gracias por vuestro tiempo!

Comentarios Imprimir

Asegurando energía

Cuando empecé a laburar desde casa, hace unos once años y medio, me di cuenta que me iba a tener que comprar bocha de cosas: una buena silla, escritorio, etc. Pero algo que no pensé al principio, y que tuve que comprar al poco tiempo, fue una UPS.

Una UPS (Uninterruptible Power Supply, o Fuente de Energía Ininterrumpible) permite seguir trabajando en la computadora aunque se corte la electricidad en tu casa, y además en alguna medida te protege contra picos o bajones de tensión, lo cual también es una buena idea.

Hay un millón de modelos, y no es algo novedoso, pero yo nunca había tenido una UPS hogareña. En su momento investigué un poco y me terminé comprando una TRV 650A.

La viejita

Siempre le enchufé la compu principal, el monitor, y el router de internet.

Al principio tiraba un montón de tiempo cuando se cortaba la electricidad. Luego la batería se fue poniendo vieja, y rendía menos. En algún momento empecé a dejar de laburar cuando se cortaba la electricidad, pero tener la UPS me permitía apagar la máquina de forma ordenada, y dejar el resto de energía que le quedaba para alimentar el router (que consume muchísimo menos que la compu y el monitor, entonces tiraba bastante tiempo más).

Tipo por 2016 decidí cambiarle la batería interna. Resulta que la gente de TRV está en una esquina de CABA medianamente cerca de casa, así que se las llevé a ellos. Le cambiaron la batería, claro, pero también le pegaron una revisada general. La renové, bah.

Pero pasó tiempo. Y el otro día se volvió a cortar la electricidad y se apagó todo al toque. Decidí que era momento de hacer un cambio, y compré una UPS nueva.

Como TRV me funcó bien, ni lo pensé, les compré a ellos. Algo un poco más grande, que no viene mal, la TRV 1200.

La nueva

La enchufé, y parece andar piola.

Decidí también conectarla a la compu. Probé con el software que trae, que teoricamente soporta Linux, pero es un coso escrito en Java que nunca me encontró la UPS conectada :(

Me puse a buscar algo por ahí, y resulta que hay una solución bastante interesante: nut (por Network UPS Tools, pero que también soportan UPSs conectadas por USB). La instalación fue trivial (está en los repos de Ubuntu), pero la configuración no tanto, porque hay capas y partes móviles, porque parece que el mundo de las UPSs es un toque complejo :p.

Algo que me costó fue encontrar "qué tipo de UPS tenía"... como con todas las cosas fabricadas integrando componentes, la marca "exterior" muchas veces no tiene nada que ver con "la plaqueta interior". Acá me ayudó mucho hacer un lsusb y darme cuenta que el controlador interior era de Powercom, con algunos números más que me ayudaron a encontrar el driver adecuado en este listado.

Fuí siguiendo esta explicación y aunque algunas cosas no son exactamente igual, parece que quedó todo configurado y andando.

Ahora tengo todo prolijo, y puedo hacer cosas como esta:

$ upsc upstrv | grep voltage
input.voltage: 218.0
input.voltage.nominal: 220
output.voltage: 218.0
output.voltage.nominal: 220

:D

Comentarios Imprimir