Europython, otra vez

Python — Martes 12 de Julio de 2016, 22:03


La semana que viene se hace la mayor conferencia de Python de Europa, la Europython. Esta vez es en Bilbao.

Es larga. El domingo hay un día de tutoriales y cursos para principiantes. La conferencia en sí es de lunes a viernes. Y sábado y domingo de la otra semana hay sprints. Pueden ver el schedule online.

alt

Lo que más me entusiasma de esta edición de la conferencia es que voy a ir, :). No es la primera vez que voy, sin embargo; vuelvo luego de once (sí, 11) años de ausencia!!

No sé si me sorprende más eso o que mi blog ya es tan viejo que tengo registro de eso que pasó hace tanto: en estos cuatro posts.

Ahora que lo pienso, hace *años* que tampoco voy a una PyCon US (la default, digamos)...

La frutilla del postre es que esta vez voy a presentar dos charlas, en dos idiomas. En castellano va mi repetidísima "Entendiendo Unicode" (el público se renueva, me dicen algunos; dejá de robar, me dicen otros). Y en inglés la versión anglosajona de la charla que preparamos con joac para la PyCon pasada: "No es magia: Descriptores al desnudo".

Ya les iré reportando como va todo :)


Cerveza de trigo en Bélgica

Fotos — Viernes 08 de Julio de 2016, 18:33


La primera vez que probé cerveza de trigo, fue en Bruselas. No soy fan, las esquivo, cada tanto vuelvo a probarlas, though.

Esta foto la saqué en el bar del hotel, estaba charlando con "el John".

Cerveza de trigo

Para más detalles de ese viaje de laburo: uno, dos tres.


Sangre verdadera, imágenes

General — Martes 21 de Junio de 2016, 11:55


True Blood es una serie yanqui medio pelo (me gusta, pero no es la gran cosa).

Como dice la página de Wikipedia sobre la serie, "su argumento se centra en un conservador pueblo de Luisiana llamado Bon Temps, y en cómo su gente debe adaptarse y enfrentarse a los cambios que se han producido en la sociedad desde que los vampiros salieron a la luz pública y en especial en cómo las criaturas de la noche y su mundo afectan a la vida de una camarera con poderes telepáticos llamada Sookie Stackhouse".

Pero no me interesa puntualmente hablar de la serie, sino de la intro que tiene, que es fantástica. Antes de seguir, se toman un minuto y medio, hacen click acá, y la miran (¡y escuchan!).

(... espero que vuelvan ...)

Como vieron, es densa, espesa, con muchas imágenes en poco tiempo, y me empezó a dar curiosidad sobre las imágenes que se suceden en flashes.

Agarré entonces la intro, la separé en cuadros, y extraje una (y solamente una) imagen por cada secuencia de video (algunas secuencias duran un par de segundos, otras medio segundo, etc.).

El resultado me gustó tanto que las guardé y las pueden ver acá.


Universidad y finales

General — Lunes 06 de Junio de 2016, 17:46


El otro día estaba charlando con un amigo sobre algo relacionado a la Universidad, a una materia que cursé en la misma, y no me acordaba cuando la había rendido. En el momento no le dí importancia, pensé "cuando vuelvo a casa me fijo en la libreta universitaria".

Claro, nunca me fijé, porque la libreta está ahí escondida en un cajón de dificil acceso, el típico lugar donde alguien más o menos ordenado tiene los títulos viejos, certificados, papeles importantes diversos, y eso (los que no son medianamente ordenados en general no tienen puta idea donde están estas cosas).

Primera página de la libreta

Entones, se me ocurrió que, habiendo sido la Universidad una etapa tan importante en mi vida, podría tener la info de cuando rendí las materias mucho más a mano.

Busqué la libreta, pasé todas las materias (con fecha de final y la nota), y ahora guardo todo eso acá. Lástima que no tengo los nombres de las/los profesoras/es (me acuerdo algunos, pero la mayoría no...).


Como no perder las fotos del teléfono

Software — Jueves 19 de Mayo de 2016, 13:32


La combinación de tener buena cámara en el teléfono, y tener el teléfono todo el tiempo a mano, hace que uno saque fotos con dicho dispositivo bastante seguido. Por no decir todo el tiempo.

Lo que no es tan fácil o automático es cómo guardar las fotos, cómo salvarlas de manera que no perderlas si te roban el celular, o lo perdés, o se te rompe, o se rompe la memoria interna, etc. Y además, cómo tenerlas siempre a mano: poder ir a buscarlas fácil para meterlas en un documento y mandarlas por mail, o mezclarlas con las fotos de la cámara grande, etc.

Yo tengo algo armado que me soluciona esto, hace rato, y me está funcionando tan bien que pensé en compartirlo. ¿Es trivial de montarlo para que funcione? No. Pero una vez armado todo, anda pipí cucú. Y gratis :D

Yes!

El setup o configuración tiene tres partes: un servicio online, el teléfono, y la compu o laptop donde trabajes normalmente.

El servicio online que uso es Flickr. Podés sacar una cuenta gratis, te da 1000 GB de almacenamiento. Son cuatro clicks, dale.

Luego, te instalás la aplicación de Flickr en el teléfono, y la configurás para que automáticamente suba las fotos a la nube cuando estés conectado por WiFi. Acá, algunos detalles. Está piola que las suba automáticamente, pero no te consuma internet de la compañía de teléfonos, así que no vas a terminar pagando más a fin de mes. Y funciona bien el "subirlas automáticamente", si estás conectado te las sube al toque, y no es para nada intrusivo. Además, te las sube por default en modo "no compartido con nadie", así que no tengas miedo en sacarte fotos en bolas o al resumen de la tarjeta de crédito, que nadie va a ver esas fotos (a menos que vayas al sitio web de Flickr, las elijas, y les cambies los permisos).

Hasta acá, tenés un backup automático de las fotos. Todo lo que saques lo vas a tener en la nube. Queda el último paso, que es tener las fotos bien a mano.

Para eso, yo tengo un script que corro cada dos horas automáticamente (lo puse en el crontab; dos horas parece mucho, pero no quería pegarle a Flickr todo el tiempo indiscriminadamente, y de última si quiero bajar algo que recién subió y no quiero esperar que se cumplan las dos horas, corro el script a mano). El script va a Flickr, se fija qué fotos nuevas hay en el álbum donde la aplicación del teléfono las sube sola, y las baja. Simple y efectivo.

Lo ejecuto así:

    baja_flickr.py --quiet album_id algun_path

El --quiet es para que si todo funciona como es esperado no tire ninguna salida, así crontab no me manda mail al cuete (al principio, especialmente al probarlo a mano, no le pongan esta opción). El album_id es el identificador del álbum en Flickr donde se suben las fotos automáticamente, la forma más fácil de saber este numerito es ir al sitio de Flickr, ir al álbum donde están estas fotos, y sacar el código de la URL. Finalmente, algun_path es el directorio donde querés que el script te ponga las fotos que baja.

Un detalle importante, para que esto funcione. Como dije arriba, las fotos no son visibles para cualquiera, así que el script tiene que autenticarse como ustedes. Esto se maneja automáticamente, pero el script tiene que saber unos datos de ustedes; como pueden ver en el script, tienen que poner dos claves en dos archivos, más vuestro id de usuario de flickr en una constante. Las dos claves esas las sacan de acá.

Finalmente, un comentario sobre cómo se guardan las fotos bajadas. El script arma el nombre del archivo como, por ejemplo, el siguiente:

    20160507-201900-26273387653_c1da64d753_o.jpg

Básicamente el nombre se arma primero con la fecha y hora de cuando fue tomada la foto, y luego con el nombre original que le puso Flickr.


Muchas películas nuevas

General — Domingo 15 de Mayo de 2016, 11:21


Se nota que le dediqué tiempo a la series, porque no vi tantas películas estos meses.

  • 10 Rules for Sleeping Around: -0. Una comedia de elaboradísimo enredos, bastante divertidas por partes, pero muy, muy mala.
  • And So It Goes: -0. Comedia sencilla, medio touchy, pero nada que termine de valer la pena.
  • Jupiter Ascending: +0. Mucha acción, tiros y persecuciones, más una chica y un chico, mucho lugar común, bah... pero estuvo interesante, especialmente por la mezcla de iconografías y explicaciones pseudocientíficas que daban :). Notable colección de actores conocidos, también.
  • Kingsman: The Secret Service: +0. Como una de James Bond pero en joda. Divertida, pasatista.
  • Kon-Tiki: +0. El hombre y sus obsesiones. Gran historia, maravilloso que sea verdad :) Muy bien filmada, aunque un toque lenta en algunos momentos.
  • Only You: +0. Comedia romanticona de mitad de los 90, deberían saber de lo que hablo. Así y todo está linda: Marisa Tomei y Robert Downey Jr. en Italia :)
  • Perfect Sense: +0. Me encanta como muestra lo que pasaría en la situación hipotética que describe, más allá que no trata de explicarla, me encanta como está filmada, actuada.
  • Radio Free Albemuth: -1. Con una trama rara, muy lenta, poco creíble, no me llevaba a nada, a duras penas terminé de verla.
  • Reservoir Dogs: +1. Un clásico absoluto, un Tarantino de pura cepa. Impecable.
  • Salmon Fishing in the Yemen: +1. Una hermosa historia, con el tipo de humor que me gusta, con unos paisajes increibles y buenas actuaciones.
  • Sleeping with Other People: +0. Una comedia romanticona divertida.
  • Star Wars: Episode VII - The Force Awakens: +1. Bien hecha, bien contada, con mil guiños, y con un detalle interesante (teniendo en cuenta que es una película, y que es de ciencia ficción): creible.
  • The Intern: +0. Es una comedia simpática, bien llevada, buenas actuaciones y con ritmo.
  • The Signal: -0. A nivel argumento con algo de sentido en una parte, pero demasiado volado todo alrededor, y el resto de la peli que simplemente no suma.
  • Transcendence: +0. Con muchas partes demasiado fantasiosas, pero el núcleo del asunto da para pensar bastante; muy interesante para disparar puntos de vista.


Por otro lado, aparecieron toneladas de nuevas para ver. Me hice un scriptcito que va a una página en YouTube de FilmTrailerZone, donde hay una lista de muchos trailers, y te los empieza a listar hasta que llega a lo que había visto en la última corrida. Te da unos datos del trailer, y vos le indicás si querés que lo baje, o no, o pare de ofrecer trailers. Luego los baja. Todo por linea de comandos, claro.

Bueno, decía, encima que me hice ese script y estoy viendo más trailers (lo que redunda en más pelis anotadas), en esta lista hay algunas recomendaciones que me hicieron, más un par de títulos que saqué de alguna nota en un diario o revista.

  • 10 Cloverfield Lane (2016; Drama, Horror, Mystery, Sci-Fi, Thriller) Soon after leaving her fiancé Michelle is involved in a car accident. She awakens to find herself sharing an underground bunker with Howard and Emmett. Has she been saved from an apocalyptical event as Howard & Emmett tell her or are there other motives for her being held against her will? [D: Dan Trachtenberg; A: John Goodman, Mary Elizabeth Winstead, John Gallagher Jr.]
  • 400 Days (2015; Mystery, Sci-Fi, Thriller) "400 Days" centers on four astronauts sent on a simulated mission to a distant planet to test the psychological effects of deep space travel. Locked away for 400 days, the crew's mental state begins to deteriorate when they lose all communication with the outside world. Forced to exit the ship, they discover that this mission may not have been a simulation after all. [D: Matt Osterman; A: Brandon Routh, Dane Cook, Caity Lotz]
  • Approaching the Unknown (2016; Drama, Sci-Fi, Thriller) Captain William Stanaforth is on a one-way solo mission to take the first steps in colonizing Mars. Like all pioneers throughout history, Stanaforth will face insurmountable odds and life and death decisions as he rockets bravely through space. [D: Mark Elijah Rosenberg; A: Mark Strong, Luke Wilson, Sanaa Lathan]
  • Boyhood (2014; Drama) Filmed over 12 years with the same cast, [D: Richard Linklater; A: Ellar Coltrane, Patricia Arquette, Elijah Smith]
  • Captain America: Civil War (2016; Action, Adventure, Sci-Fi, Thriller) With many people fearing the actions of super heroes, the government decides to push for the Anti-Hero Registration Act, a law that limits a heroes actions. This results in a division in The Avengers. Iron Man stands with this Act, claiming that their actions must be kept in check otherwise cities will continue to be destroyed, but Captain America feels that saving the world is daring enough and that they cannot rely on the government to protect the world. This escalates into an all-out war between Team Iron Man (Iron Man, Black Panther, Vision, Black Widow, War Machine, and Spiderman) and Team Captain America (Captain America, Bucky Barnes, Falcon, Sharon Carter, Scarlett Witch, Hawkeye, and Ant Man) while a new villain emerges [D: Anthony Russo, Joe Russo; A: Chris Evans, Robert Downey Jr., Scarlett Johansson]
  • Captain Fantastic (2016; Drama) In the forests of the Pacific Northwest, a father devoted to raising his six kids with a rigorous physical and intellectual education is forced to leave his paradise and enter the world, challenging his idea of what it means to be a parent. [D: Matt Ross; A: Viggo Mortensen, George MacKay, Samantha Isler]
  • Creative Control (2015; Drama, Sci-Fi) In near future Brooklyn, an ad executive uses a new Augmented Reality technology to conduct an affair with his best friend's girlfriend...sort of. [D: Benjamin Dickinson; A: Benjamin Dickinson, Nora Zehetner, Dan Gill]
  • Criminal (2016; Action, Crime, Drama, Mystery, Sci-Fi, Thriller) Bill Pope (Ryan Reynolds) is a CIA agent on a mission in London tracking down a shadowy hacker nicknamed "The Dutchman." When he gets mysteriously ambushed and killed, an experimental procedure is used to transfer his memories into dangerous ex-convict Jericho Stewart (Kevin Costner). When he wakes up with the CIA agent's memories, his mission is to find The Dutchman and eliminate him before the hacker launches ICBM's and starts World War III. But complications soon arise and the mission turns personal. [D: Ariel Vromen; A: Kevin Costner, Gary Oldman, Tommy Lee Jones]
  • Al final del túnel (2016; Crime, Thriller) A paraplegic computer engineer that moves in a wheelchair and works in his basement starts hearing noises and voices of bank-robbers. [D: Rodrigo Grande; A: Leonardo Sbaraglia, Pablo Echarri, Clara Lago]
  • High-Rise (2015; Drama) Life for the residents of a tower block begins to run out of control. [D: Ben Wheatley; A: Tom Hiddleston, Jeremy Irons, Sienna Miller]
  • Jason Bourne (2016; Action, Thriller) Jason Bourne, now remembering who he truly is, tries to uncover hidden truths about his past. [D: Paul Greengrass; A: Alicia Vikander, Matt Damon, Julia Stiles]
  • Kill Command (2016; Action, Horror, Sci-Fi) Kill Command is a sci-fi action thriller set in a near future, technology-reliant society that pits man against killing machines. Against this backdrop an elite army unit is helicoptered to a remote, off-the-grid island training facility. What starts out as a simple training exercise for Captain Bukes and his tight-knit unit, descends into a terrifying battle to the death, as the marines discover the island is overrun by an enemy that transcends the human concept of evil. [D: Steven Gomez; A: Vanessa Kirby, Thure Lindhardt, David Ajala]
  • Koblic (2016; Drama, Thriller) 1977, during the days of the Argentinian Dictatorship. A former pilot and captain of the Argentinian Navy disobeys an order and becomes a fugitive in order to survive. He chooses to hide in a small town in the south of the country, where his presence will catch the attention of the unscrupulous and violent local marshal. [D: Sebastián Borensztein; A: Ricardo Darín, Oscar Martínez, Inma Cuesta]
  • Manhattan Nocturne (2016; Crime, Drama, Mystery, Thriller) Based on Colin Harrison's acclaimed novel Manhattan Nocturne (a New York Times Notable Book of the Year), MANHATTAN NIGHT tells the story of Porter Wren (Adrien Brody), a New York City tabloid writer with an appetite for scandal. On the beat he sells murder, tragedy and anything that passes for the truth. At home he is a model family man, devoted to his loving wife (Jennifer Beals). But when a seductive stranger (Yvonne Strahovski) asks him to dig into the unsolved murder of her filmmaker husband Simon (Campbell Scott), he can't resist. In this modern version of a classic film noir, we follow Porter as he is drawn into a very nasty case of sexual obsession and blackmail - one that threatens his job, his marriage, and his life. MANHATTAN NIGHT will be released by Lionsgate Premiere in theaters and On Demand May 20, 2016. Lionsgate Premiere, Grindstone Entertainment Group and 13 Films present in association with Sparkle Roll Media Corporation and Big Indie Pictures a production of Fable House, Untravelled Worlds and DeCubellis Films. [D: Brian DeCubellis; A: Yvonne Strahovski, Adrien Brody, Jennifer Beals]
  • Miss Peregrine's Home for Peculiar Children (2016; Adventure, Fantasy) When Jacob discovers clues to a mystery that spans different worlds and times, he finds a magical place known as Miss Peregrine's Home for Peculiar Children. But the mystery and danger deepen as he gets to know the residents and learns about their special powers... and their powerful enemies. Ultimately, Jacob discovers that only his own special "peculiarity" can save his new friends. [D: Tim Burton; A: Eva Green, Samuel L. Jackson, Kim Dickens]
  • Nina (2016; Biography, Drama, Music) The story of the late jazz musician and classical pianist Nina Simone including her rise to fame and relationship with her manager Clifton Henderson. [D: Cynthia Mort; A: Zoe Saldana, David Oyelowo, Kevin Mambo]
  • Precious Cargo (2016; Action, Crime, Drama, Thriller) After a botched heist, Eddie (Bruce Willis), a murderous crime boss, hunts down the seductive thief Karen (Claire Forlani) who failed him. In order to win back Eddie's trust, Karen recruits her ex-lover and premier thief Jack (Mark-Paul Gosselaar) to steal a cargo of rare precious gems. But when the job goes down, allegiances are betrayed and lines are crossed as Jack, Karen, and Eddie face off in a fateful showdown. Lionsgate Premiere will release the action thriller in theaters and on demand on April 22, 2016. [D: Max Adams; A: Mark-Paul Gosselaar, Bruce Willis, Claire Forlani]
  • Suicide Squad (2016; Action, Adventure, Fantasy, Sci-Fi, Thriller) A secret government agency run by Amanda Waller, named A.R.G.U.S creates a task force comprising super villains, the "Suicide Squad". They are assigned to execute dangerous tasks in exchange for shorter prison sentences. [D: David Ayer; A: Margot Robbie, Cara Delevingne, Scott Eastwood]
  • The Lobster (2015; Comedy, Drama, Romance, Sci-Fi) A love story set in a dystopian near future where single people are arrested and transferred to a creepy hotel. There they are obliged to find a matching mate in 45 days. If they fail, they are transformed into an animal and released into the woods. [D: Yorgos Lanthimos; A: Jacqueline Abrahams, Roger Ashton-Griffiths, Jessica Barden]
  • The Driftless Area (2015; Comedy, Drama, Mystery, Romance) Pierre Hunter (Anton Yelchin), a bartender with unyielding optimism, returns to his tiny hometown after his parents' death. When he falls for the enigmatic Stella (Zooey Deschanel), Pierre is unknowingly pulled into a cat-and-mouse game that involves a duffel bag full of cash, a haphazard yet determined criminal (John Hawkes), and a mystery that will determine all of their fates. With Alia Shawkat, Frank Langella, Aubrey Plaza, and Ciarán Hinds. Zachary Sluser's film, based on the novel by Tom Drury, is a contemporary fable about the ways we struggle to control time and fate in a possibly predetermined universe. [D: Zachary Sluser; A: Anton Yelchin, Zooey Deschanel, John Hawkes]
  • The Huntsman: Winter's War (2016; Action, Adventure, Drama, Fantasy) Eric and fellow warrior Sara, raised as members of ice Queen Freya's army, try to conceal their forbidden love as they fight to survive the wicked intentions of both Freya and her sister Ravenna. [D: Cedric Nicolas-Troyan; A: Chris Hemsworth, Charlize Theron, Jessica Chastain]
  • The Man Who Knew Infinity (2015; Biography, Drama) Growing up poor in Madras, India, Srinivasa Ramanujan Iyengar earns admittance to Cambridge University during WWI, where he becomes a pioneer in mathematical theories with the guidance of his professor, G.H. Hardy. [D: Matt Brown; A: Jeremy Irons, Dev Patel, Malcolm Sinclair]
  • La belle saison (2015; Drama, Romance) There was little chance, in the year 1971, that Carole, a Paris Spanish teacher and feminist militant, would ever meet Delphine, the daughter of a couple of Limousin farmers. But they did meet and not only did they come across each other but they fell passionately in love as well. Unfortunately, Delphine's father fell victim to a stroke, and the young woman had no other choice but to go back home to help her mother run the family farm. Carole, who was so smitten by Delphine, couldn't stand the estrangement and decided to join her lover at the farm. But could feminism and lesbianism easily be transferred to the countryside and its standards of the time...? [D: Catherine Corsini; A: Cécile De France, Izïa Higelin, Noémie Lvovsky]
  • Doctor Strange (2016; Action, Adventure, Fantasy) After his career is destroyed, a brilliant but arrogant and conceited surgeon gets a new lease on life when a sorcerer takes him under her wing and trains him to defend the world against evil. [D: Scott Derrickson; A: Rachel McAdams, Tilda Swinton, Benedict Cumberbatch]
  • Hush (2016; Horror, Thriller) A deaf writer who retreated into the woods to live a solitary life must fight for her life in silence when a masked killer appears at her window. [D: Mike Flanagan; A: John Gallagher Jr., Kate Siegel, Michael Trucco]
  • The Girl on the Train (2016; Mystery, Thriller) The Girl on the Train is the story of Rachel Watson's life post-divorce. Every day, she takes the train in to work in London, and every day the train passes by her old house. The house she lived in with her husband, who still lives there, with his new wife and child. As she attempts to not focus on her pain, she starts watching a couple who live a few houses down -- Megan and Scott Hipwell. She creates a wonderful dream life for them in her head, about how they are a perfect happy family. And then one day, as the train passes, she sees something shocking, filling her with rage. The next day, she wakes up with a horrible hangover, various wounds and bruises, and no memory of the night before. She has only a feeling: something bad happened. Then come the TV reports: Megan Hipwell is missing. Rachel becomes invested in the case and trying to find out what happened to Megan, where she is, and what exactly she herself was up to that same night Megan went missing. [D: Tate Taylor; A: Emily Blunt, Haley Bennett, Luke Evans]


Finalmente, el conteo de pendientes por fecha:

(Sep-2010)    2   1
(Dic-2010)    5   1
(Abr-2011)   22  17   4
(Ago-2011)   11  11  11   4
(Ene-2012)   17  17  17  11   3
(Jul-2012)   15  15  15  14  11
(Nov-2012)   11  11  11  11  11   6
(Feb-2013)   19  16  15  14  14   8   2
(Jun-2013)   19  18  16  15  15  15  11   2
(Sep-2013)       18  18  18  18  17  16   8
(Dic-2013)           14  14  12  12  12  12   4
(Abr-2014)                9   9   8   8   8   3
(Jul-2014)                   10  10  10  10  10   5
(Nov-2014)                       24  22  22  22  22
(Feb-2015)                           13  13  13  13
(Jun-2015)                               16  16  15
(Dic-2015)                                   21  19
(May-2016)                                       26
Total:      121 125 121 110 103 100  94  91  89 100


Algunos te pedimos perdón

Música — Viernes 22 de Abril de 2016, 15:33


Si el agua que tomo se pudre, se pudre, me pudro por dentro también.
Si el aire que respiro se pudre, se pudre, se pudre mi forma de ser.

Agoniza montaña vacía de su mineral, de su corazón.
La represa que linda energía se muere otro río, se muere la vida.

Pachamama, Madre Tierra, Madre de todos los colores.
Pachamama, Madre Tierra, Madre de todos los sabores.

Hay bosques que daban oxígeno y sombra y ahora ya ni se ven.
La Tierra se retuerce por dentro y hay tantas flores que ya no crecen.

Pachamama, Madre Tierra, Madre de todos los colores.
Pachamama, Madre Tierra, Madre de todos los sabores.

Algunos te pedimos perdón.

("Pachamama", Arbolito)


¿Te gusta el tango?

Música — Jueves 14 de Abril de 2016, 23:13


Si sí, hacete un favor.

Te bajás e instalás Encuentro, refrescás la metadata, y filtrás por "tango". Ahí vas a ver varias cosas, lo que te quiero resaltar son los programas de "Encuentro" que son "Series" (no Micros).

De la mano de Horacio Ferrer, la historia del tango, desde los orígenes hasta la actualidad. Las diferentes épocas y estilos del género musical son abordados por este historiador y poeta, fundador de la Academia Nacional del Tango. La serie presenta materiales de archivos fotográficos, sonoros y audiovisuales.

Son 8 capítulos, "Tango y ciudad", "Tango y baile", "Tango y bandoneón", "El Gardelazo", "Tango y renovación", "Los grandes temas", "Tango y mundo", "Tango y noche". Cada uno dura unos 28 minutos.

Te abrís un vino, y los mirás tranquila/o. Sola/o, o acompañada/o de alguien con quien te animes a llorar.

De nada.


Ordenando fotos

Python — Martes 12 de Abril de 2016, 22:59


Hace un par de semanas sucediose el PyCamp. En este tipo de eventos, como en tantos otros, o paseos, o reuniones, o lo que sea, pasa que uno lleva "la cámara", pero no la usa todo el tiempo.

Con "la cámara" me refiero al dispositivo para sacar fotos de mejor calidad que uno tiene. Puede ser una reflex toda pipona, o una point and shoot berretona, o algo intermedio (o "bridge") como la que tengo yo (una Canon G15).

Canon G15

Y uno no la usa todo el tiempo por dos razones. La primera es que en general, a menos que sea una point and shoot finiiiiita, molesta un poco llevarla: te ocupa al menos una mano, o rellena bastante un bolsillo, o hay que llevarla al cuello, o hay que llevar todo un bolso al hombro.

La segunda razón es que como las cámaras en los teléfonos avanzaron bastante, uno siempre termina sacando fotos al voleo más con el celular que con otra cosa, y deja para momentos "más cuidados" el usar "la cámara".

Y me pasa todo el tiempo. Ejemplo típico del del PyCamp: tengo la cámara en la mochila, donde la guardé luego de sacar un par de fotos donde estábamos trabajando, pero luego fui a otro lado a preguntarle algo a alguien, y tuve ganas de sacar una determinada foto, y en el momento lo resolví con el teléfono. No iba a volver a buscar la cámara grande. O la sacaba con el teléfono, o no la sacaba.

Entonces, esta combinación de factores hizo que, en los últimos tiempos, termine con una serie de fotos de la cámara grande, más una serie de fotos del teléfono. Separadas.

Yo miro/edito las fotos con distintas herramientas. Pero en general, las veo ordenadas por el nombre del archivo. Entonces, tener dos series de fotos separadas me jodía bastante.

Es por eso que me armé un pequeño script que agarra todas las fotos de un directorio y las renombra en función de la fecha/hora que tiene guardada la foto, quedando ambas series efectivamente mezcladas de forma cronológica al ordenarlas por el nombre del archivo.

Un par de detalles con respecto al script.

  • Todavía está en desarrollo, pero está bastante estable y las últimas veces que lo usé anduvo 100% ok
  • Asume que las fotos de "la cámara" tienen el formato IMG99999.JPG, siendo los 99999 cinco dígitos cualesquiera. Si este no es tu caso, vas a tener que pedirme una mejora, o toquetear vos misma/o el código.
  • Tenés que tener fades instalado, para que te maneje automágicamente las dependencias (acá tenés una explicación al respecto). Si no querés instalar fades, arreglate.

Enjoy.


PyCamp 2016

Python — Jueves 31 de Marzo de 2016, 17:03


Durante este finde largo de semana santa hicimos la edición 2016 del PyCamp, el que para mí es el mejor evento del año.

Se realizó nuevamente en La Serranita, un lugar muy lindo y muy cómodo, el Complejo Soles Blancos. A diferencia del año pasado, que fue en Agosto, esta vez a la noche sólo estuvo bastante fresco, :). Las tardes eran con un lindo calorcito, y las noches y madrugadas estaban fresconas, ideal para pasear por la calle o dormir!

Como la vez pasada, hice Buenos Aires - Córdoba (Capital) en micro, y de ahí a La Serranita en auto (a la vuelta lo mismo). Es más, el trayecto de ida lo manejé yo (porque Pancho estaba rotazo), y la vuelta la hizo él, con lo que pude disfrutar más del paisaje.

Alta vista

Como todos los PyCamps, este se dividió mucho entre lo que es Python propiamente dicho, y lo que son otras actividades. Arranquemos con lo que es programación propiamente dicho.

El proyecto más largo en el que participé fue un Tower Defense: el típico jueguito donde uno ubica torres que atacan un flujo de enemigos que se vienen encima, y en función de la habilidad de colocar qué torres y dónde, uno se defiende mejor o peor. La idea era no sólo diseñar y armar el juego, sino también crear una inteligencia artificial que aprendiera a ubicar las torres.

En esto se anotaron casi todos, así que fue con lo primero que arrancamos. Lo más interesante fue la organización. En seguida separamos lo que es "core" de la "ai", y un grupo se quedó arriba y otro nos fuimos para la sala de abajo. No sé bien qué hicieron los de AI, arriba, pero abajo armamos entre todos la estructura básica del core, nos separamos en pequeños grupos, y atacamos todo el código en paralelo, charlando las interfaces/APIs a medida que íbamos agregando o solucionando cosas.

Fue genial. El primer día ya teníamos como un 80% de lo que logramos finalmente, y luego seguimos trabajando. El producto fue un core a todo lujo, con gráficos y todo (usamos pyglet), más una inteligencia artificial que aprendía eficientemente a ubicar las torres. Impecable.

Screenshot del TD

De los proyectos que llevaba yo, en el que más se enganchó la gente fue fades. Como con Nico tenemos los issues bien claritos y clasificados, los chicos encontraban enseguida algo para hacer. Metimos varios fixes y cerramos muchos issues, se avanzó bastante. También se anotaron varios para trabajar en la web de PyAr, se avanzó un poco, sobre problemas de formateo y links rotos (porque no existen, pero también porque apuntan mal internamente en el wiki). No hicimos tanto, quedó pendiente para seguir en otro momento. También otro grupo (principalmente Matu Varela, Mati Barrientos y Toni) estuvieron con la integración del sitio de PyAr y unos bots de Telegram, que originalmente estaban planeados para desparramar info, pero sobre los cuales luego armaron esquemas de moderación de noticias, eventos y trabajos postulados.

Con otros proyectos estuve también bastante tiempo, pero con menos gente. Para Linkode estuvimos charlando mucho con Mati Barrientos y Pablo Celayes, sobre los próximos planes a nivel de interfaz. Decidimos ir a algo como una "single page application" pero que apenas es tal, porque la interfaz de linkode es muy sencilla. Así y todo, la idea es que el "cliente web" use la API de linkode como cualquier otro cliente. Más allá de toda la charla y la decisión de cómo seguir para adelante, Matías va a estar liderando todo el lado "javascript" de linkode, metiendo código él y revisando/empujando el de otros.

Gente trabajando

Para cerrar todo lo hecho, y el PyCamp en sí, hicimos un video! Jose Luis Zanotti tiene pendiente de editarlo y armarlo, así mostramos todo lo que hicimos en un par de días...

Y por otro lado, hubieron varias actividades no relacionadas directamente con programar en Python.

El más centralizadamente coordinado fue un torneo de Tron, que ganó Jose Luis Zanotti Ya habíamos hecho algo parecido en el PyCamp de La Falda, hace varios años, y es notable como uno se engancha mirando a las personas que compiten y cómo juegan. También hubieron clases de sable, una tarde, y noches de juegos de mesa. Yo jugué dos veces al Resistance, un juego donde (aunque tiene soporte de fichas y tarjetitas) lo importante es la interacción entre las personas y como todos se tratan de convencer entre todos de que no son nazis.

La estrella de las actividades de "no programación" fue la reunión de PyAr (gracias Ariel por armar la minuta). Estuvo buenísima, por cuanto y cómo participaron todos. Charlamos de la próxima PyCon, de cómo venía el tema de la creación de la Asociación Civil, y también del PyCamp actual, y cosas que deberíamos mantener o mejorar. Luego de la reunión, un asadazo, que lo preparó (muy bien, como siempre), el anfitrión del complejo, Leandro.

En la reunión

Todas las fotos que saqué yo, acá.


Vacaciones en Colombia

Viajes — Domingo 20 de Marzo de 2016, 00:41


El principio del año estuvo marcado por el viaje más largo que hice (a excepción de cuando hice el Master en Italia, a principio de siglo), y seguramente las vacaciones más largas que nos tomamos en familia: fuimos a Colombia.

Aprovechamos Enero porque los chicos están de vacaciones en la escuela, y cómo el trabajo de Moni en el Hospital Tornú también está relacionado con las escuelas, era la época ideal. Por mi parte, me tomé sólo dos semanas de vacaciones y trabajé el resto.

Estuvimos unos días en Santa Marta, unos días en Cartagena, y luego volvimos a Santa Marta (esta última etapa es la que yo trabajé de lunes a viernes, mientras que la familia seguía de "vacaciones" :p).

Paseando por Cartagena

Obviamente no voy a relatar día por día las vacaciones, pero sí voy a comentar algunas impresiones de Colombia en general, o las ciudades, o de los paseos.

Una de las cosas que más le tenía "miedo" era el viaje en sí. Es que para llegar a Santa Marta nos teníamos que tomar tres aviones (en la ida las escalan fueron San Pablo y Bogotá, a la vuelta fueron Bogotá y Lima), y entre los vuelos y las esperas intermedias fue mucho tiempo. Mi "miedo" era en función de los pequeños, de cuanto se iban a bancar todo el baile y cuanto nos iban a complicar la existencia a Moni y a mi :).

Peques en la pile

La verdad, se portaron genial. Estaban excitados por la movida, pero no tanto como para descontrolarse. En los aeropuertos se portaron muy bien, y arriba de los aviones también :). Durmieron bastante, teniendo en cuenta que a la ida viajamos de día. Incluso, Malena se quedó dormida al toque de subirse al primer avión, y se despertó cuando ya había aterrizado... se desperezó y preguntó "¿Ya subió el avión?". Muy gracioso.

Al llegar a Colombia, la primera impresión fue sobre como manejan. El taxista que nos llevó del aeropuerto al primer departamento que habíamos alquilado iba muy rápido, tomando las curvas cerradas, tocando bocina por doquier, y en general con una forma de manejo peligrosa. Con el transcurso de los días nos fuimos dando cuenta que es la forma normal de manejar de los colombianos, al menos en Santa Marta y en Cartagena. Es raro que los taxis tengan cinturón de seguridad. Y las bocinas son insoportables, incluso cuando uno va caminando por la calle. Están todo el tiempo tocando bocina, ¡todo el tiempo!

Familia en la playa

Con los taxis nos dimos cuenta también que la economía es bastante informal: no tienen reloj, sino que hay que preguntar (negociar) antes de subirte cuanto va a salir el viaje en función de a donde uno va. Incluso nos ha pasado que a mitad del viaje nos quisieron cambiar el monto pactado :/. Pero no sólo en los taxis se ve la ausencia de precios regulados: excepto en los supermercados grandes, las cosas no tienen nunca precio, todo hay que preguntarlo, negociarlo, y jugarte a que no te hayan visto demasiado la cara de extranjero.

A nivel dinero, el cambio era alrededor de 1000 pesos colombianos igual a 4.50 argentinos. Más allá que las cosas estaban un poco más baratas que en casa, te manejás con números grandes (algo a lo que mi generación no está acostumbrada, teniendo el Peso desde principio de los noventa). Una buena: en todos lados tienen los postnet inalámbricos, y se puede pagar con tarjeta. Una mala: redondean para arriba, como en Argentina (o sea, gastaste 17380 pesos y te cobran 17400, o 17500...). Lo que me llamó mucho la atención es que conviven monedas distintas para la misma denominación, tuve en mis manos dos monedas válidas pero totalmente distintas de $200.

Hicimos un castillo de arena :)

Otra cosa que aprendimos al pasear en taxi, micro, o caminando, es cómo es el esquema de direcciones. Se basan en "carreras" (que son las calles paralelas a la costa) y "calles" que son las perpendiculares. Eso es simple, el resto es un bardo. Es que claro, las calles no tienen un trazado cuadriculado perfecto, entonces empezás con esquinas como carrera 1A y calle 7B, y cosas así. Por otro lado, se guían mucho por los nombres de los edificios (todos tienen nombre!), y al taxista quizás le das la esquina exacta y no se ubican, pero le mencionás el nombre del edificio y saben al toque a donde ir.

Un detalle de color: en el centro histórico de Cartagena (el "casco viejo", lo que está dentro de la muralla original, digamos) cada cuadra tiene su nombre. O sea, uno va caminando por una calle, y en cada esquina, aunque uno siga derecho, cambia el nombre :)

Cartagena de Indias

Cuando planeamos las vacaciones, una de los puntos críticos que decidimos fue no ir a "hoteles". Queríamos, al menos, que sean apart-hotel, para tener la comodidad de tener cocina, heladera, etc, de manera de poder hacer comida piola para los chicos (ni comer porquerías ni tener que salir a comer todos los días afuera) o prepararles el desayuno y la merienda, etc. Finalmente, optamos por alquilar departamentos vía Airbnb y TripAdvisor.

Ambos servicios son similares. Usamos ambos, sólo en función de los lugares que queríamos alquilar y las fechas que estaban disponibles (no fue trivial coordinar el alquiler de los tres lugares y las fechas de los aviones, que ya los teníamos de antes). Si tengo que destacar una ventaja de uno sobre el otro es que Airbnb te manda un SMS cada vez que el locador te contesta un mensaje, lo cual está piola porque lo más probable es que uno, en el viaje, esté sin internet, y justamente tratando de coordinar a qué hora se llega, quien te da las llaves del lugar, etc.

Y la verdad es que alquilar un departamento es muuuuucho más ventajoso que un apart hotel. O sea, es una casa, no un lugar "temporario", las instalaciones son distintas. Un ejemplo sencillo: tenés lavarropas (no en todos lados, OK, pero si el departamento está más o menos bien puesto, sí). Y termina resultando más barato.

Hicimos galletitas

Lo que vimos que todos tienen es ventiladores y aire acondicionado (y eso que la electricidad es bastante cara), pero evidentemente son necesarios en función del calor intenso. Como ejemplo, vale que nosotros usamos aire acondicionado casi todos los días, ¡y estábamos en invierno! Y eso que no nos gusta demasiado el tema del aire, eh. Es más, yo terminé confirmando que prefiero otras soluciones. Es que al final estábamos todo el tiempo apagando y prendiendo el aire, a veces terminábamos con mucho calor, a veces terminábamos con dolor de garganta por el frío, etc.

Un detalle con respecto a eso de que estábamos en invierno: nos comentaron que allá le dicen "invierno" a los días que llueve, y "verano" al resto de los días. Claro, por la latitud en que se encuentran, tienen un clima parecido todo el año. Por otro lado, el clima les estuvo cambiando los últimos años. El fenómeno de El Niño les pegó fuerte, y están sufriendo sequía tras sequía. Ríos enteros que ya casi no existen. Y en Santa Marta no llovía desde hace cuatro meses! Mientras estuvimos nosotros, un día se nubló bastante, ¡nada más!

Atardecer

El lado positivo es que pudimos disfrutar todos los días. Fuimos muchísimas veces a la playa, como imaginarán, y los cuatro la pasamos bárbaro jugando en el mar y la arena. Además de ir a la playa que teníamos cerca hicimos excursiones a playas lejanas, paseamos varias veces por el Parque Nacional Tayrona (fuimos a Bahía Concha a hacer playa, a Playa del Muerto (o Playa Cristal), donde también hicimos "careteo" (te llevan flotando boca abajo, con un snorkel, mirando los corales y miles de peces de colores), a Playa Blanca, en Santa Marta, y varios lugares más. A nivel excursiones y paseos también fuimos al Museo del Oro de Cartagena, a recorrer el Castillo de San Felipe, y recorrimos en general las ciudades por todos lados :)

Un punto aparte fue como se portaron los niños con el agua. Empezaron bastante tímidos (tanto en el mar como en la pileta que disfrutamos en nuestra segunda estadía en Santa Marta), pero se fueron soltando. Al final, Malena y Felipe se metían hasta el cuello en el mar (siempre con Moni o conmigo al lado), y en la pileta Malena iba sola por todos lados con los bracitos inflables, y Felipe nadaba solo, sin hacer pie, de un lado para el otro.

Familia en la pileta

Unas vacaciones inolvidables, que disfrutamos tantísimo, pero que también cerramos con ganas de volver a casa, que extrañamos bastante :)

Todas las fotos (que son en parte las culpables de que tardara tanto en publicar este post, ya que estuvimos semanas filtrándolas y eligiéndolas), acá.


Python y el manejo de dependencias

Python — Martes 12 de Enero de 2016, 23:44


(there is an English version of this post, here)

Python tiene una biblioteca estándar muy extensa ("viene con las pilas incluídas"), pero es frecuente la necesidad de usar otros módulos que están afuera de la misma, casi siempre desde el Índice de Paquetes de Python (PyPI).

La manera original de instalar esos módulos es a "nivel de sistema" (sudo pip install foobar), en el sistema operativo de forma general, habilitándolos para ser utilizados por cualquier programa que se ejecute.

Más allá de necesitar permisos de root o administrador para instalar las dependencias de esta manera, el primer problema con el que nos encontramos es el de conflictos: el caso típico de dos programas que necesitan la misma dependencia pero en versiones distintas, lo cual no puede lograrse al instalar las dependencias en forma global.

Por eso es que es tan normal en el mundo de Python usar "entornos virtuales". Se crea un entorno virtual para cada programa, se instala las dependencias necesarias para cada programa en cada entorno virtual, y como lo que instalamos en ese entorno es sólo accesible desde dentro del entorno, no hay más conflictos.

En este punto, sin embargo, aparece el problema de la administración de los entornos virtuales: crearlos, instalarles cosas, activarlos para usarlos con cada programa y desactivarlos luego, recordar los nombres de cada entorno para cada programa, etc.

Para automatizar esto nació fades.

fades les permite utilizar todo el poder de los entornos virtuales sin tener que preocuparse por ellos.

¿Quieren ejecutar un script que necesita la dependencia foobar?

    fades -d foobar script.py

¿Quieren un intérprete interactivo teniendo foobar instalado como dependencia?

    fades -d foobar

¿Necesitan ejecutar el script pero con varias dependencias, alguna en una versión específica?

    fades -d foo -d bar -d baz==1.1 script.py

¿Tienen todas las dependencias en un archivo de requerimientos?

    fades -r requirements.txt script.py

Esto es sólo lo más sencillo que podés hacer con fades. Los entornos virtuales son una herramienta poderosísima, y automatizar y simplificar su uso hace que fades tenga bastantes opciones, algunas que usarán todos los días, y otras que les van a resultar muy útiles en casos puntuales.

Empiecen a usar fades de a poco (acá tienen toda la documentación) y van a encontrar que van a tener resuelto el tema de la administración de dependencias en programas y scripts, usando entornos virtuales pero sin la complejidad de tener que hacerlo directamente y a mano.


«Anterior   1 2 3 4 5 6 7 8 ... 59 60 61  Siguiente»

Powered by LifeType