El futuro del empaquetado en Python

Ok, ok, es un poco pretencioso mi título, pero es que estoy muy contento de anunciar la segunda liberación de un proyecto que maduró en mi cabeza por unos meses y ya armé una prueba de concepto.

La alegría viene en parte porque no sólo la prueba de concepto fue más exitosa de lo que pensaba (el sistema hace lo que quería que haga de forma sorprendentemente genérica y robusta), sino que todo esto pasa en los días que cumplo 20 años programando en Python :)

En verdad lo que ya tengo armado es más que una prueba de concepto. Está funcionando todo lo que quería, aunque le faltan algunas funcionalidades básicas para todo lo que tengo imaginado, tests, mejorar el código etc. Podemos decir que está en estado "alfa".

Pero aún versión alfa y todo, ya está publicado: PyEmpaq v0.2.1.

El empaquetado hecho fácil

En la página del proyecto está todo super explicado, pero la idea base es que con PyEmpaq se puede meter todo el proyecto (código fuente, imágenes necesarias, etc.) en un sólo archivo .pyz, que termina siendo el único archivo que hay que distribuir.

Exactamente como vemos en este videito:

Proceso de empaquetado, por el desarrollador (click para ampliar)

Luego, la persona que recibe o se baja ese archivo, lo único que tiene que hacer es ejecutarlo con Python. La magia de PyEmpaq hará que (la primera vez solamente) ese archivo se expanda en algún lugar piola, se instalen las dependencias necesarias, y finalmente se ejecute el programa indicado.

Lo podemos ver en este otro videito:

Proceso de ejecución por el usuario final (click para ampliar)

Es muy multiplataforma: se puede empaquetar estando en Linux, Mac o Windows, y ese .pyz resultante funcionará sin problema en esos sistemas operativos. Incluso cruzándolos: podemos empaquetar en Linux y ejecutarlo en Windows, etc.

Para mostrar todo el potencial, armé tres ejemplitos para que cualquiera pueda probar que el empaquetado funciona:

  • en una terminal: un ejemplo muy chiquito que corre sólo en la terminal
  • un juego: un juego simple usando la biblioteca Arcade de Python (en realidad es el ejemplo 6 de su tutorial)
  • una aplicación de escritorio: un aplicación completa de escritorio usando el framework PyQt5 (es mi programa Encuentro)

Como pueden ver en los issues le falta bastante laburo para que se lo pueda considerar "estable", pero ya llegará. Por lo pronto lo voy a llevar al PyCamp de Noviembre.

Comentarios Imprimir

Escaso cine, algunas series

Desde principio de año que no meto un post de estos... y miren, ¡apenas un puñado de reviews!

Esto de la pandemia y estar toda la familia todo el tiempo en casa hace que me cueste encontrar "un par de horas a solas" como para sentarme tranqui a ver una peli...

Pero bueno, algunas fui viendo con la familia, y otras medio a los saltos:

  • Ad Astra: -0. Un par de ideas están bien, pero el resto suena a muy reciclado de otras pelis/series, y encima es leeenta.
  • Camarón: Flamenco y revolución: +1. Muy buena peli/documental, mostrando detalles e intimidades sin caer en lo sensacionalista. La voz en off es genial.
  • La odisea de los giles: +1. ¡Muy buena! Comedia, drama, acción. No aburre, es muy dinámica. Las actuaciones están muy bien, la historia también.
  • Lucy in the Sky: +0. Me gusta como se mete en la psiquis de la personaje. Un hallazgo la técnica del factor de forma variable de la pantalla.
  • Pet Sematary: +0. Para un remake, está muy bien. Abusa de "los momentos sorpresa", pero tiene su lado de asuste/angustia más psicológico. Funciona.
  • El increíble finde menguante: +0. Una vuelta de tuerca sobre un tema más bien conocido. Interesante un mecanismo visual/narrativo que nunca había visto antes.
  • Yucatán: +0. Liviana, para pasar el rato, graciosa. Nada más.
Camarón: Flamenco y revolución

A lo que le metí ritmo fueron las series.

Estuve viendo muchas miniseries de lo que era Contenidos Digitales Abiertos y que ahora está en parte metido en Cine.Ar. En realidad yo ya las tenía bajadas desde hace un montón, pero no las había llegado el turno.

El nuevo sitio de Cine.Ar la verdad es que es una garompa, les recomiendo usar mi programa Encuentro porque entonces pueden seleccionar todos los capítulos de la serie, la ponen a descargar, y luego la pueden ver sin tener que estar conectados a internet (con un pendrive en una tele, por ejemplo).

Habré visto unas 8 o 9 miniseries, las que más me gustaron son las siguientes:

  • Cromo: muy muy buena serie, con actores de primer nivel; es un policial de misterio, muy basado en la realidad, en nuestra realidad.
  • 23 pares: me encantó, cada capítulo es medio independiente, pero luego están varios personajes que unen todo el flujo narrativo, con varias historias en paralelo, muy interesantes.
  • Las 13 esposas de Wilson Fernandez: una gran, gran comedia negra.
  • La Casa: serie de historias independientes, enlazadas porque todas pasan en "la casa" (aunque algunos guiños hay de relaciones entre las historias); algunos episodios interesantes, otros más flojos, el "problema" es que al ser todas historias muy aisladas entre sí, no termina de enganchar
Series argentinas

También estuve viendo otras series no nacionales. Estuve con las primera cuatro temporadas de Billions, es muy buena, ahora a esperar a la quinta.

Terminé Vikings (spoiler alert: siempre pensé que la serie era en parte de Bjorn y Lagertha, pero principalmente de Floki, así que estoy contento en como terminó), y metí una más de The Expanse, que ya les había recomendado, ahora a esperar su sexta y última.

Del lado negativo de las valoraciones, la cuarta de Fargo estuvo muy floja. Y con la miniserie The Stand me pasó lo mismo que con The Dark Tower: zafa apenas, pero si no conocés la historia orginal. Hay que dejar de ver adaptaciones de libros de Stephen King donde está él mismo involucrado :)

En este momento estoy con The Americans, que me viene gustando bastante, y Big Little Lies que arrancó la primer temporada un poco lenta pero cerró bien, me queda la segunda.

Las que me gustaron o estoy viendo

Con Moni seguimos viendo a Rita, estamos con la tercera, y nos gustó bastante Félix.

Con Felu terminamos la tercera temporada de Star Trek Discovery, y con él y Male estamos viendo Fringe (yo ya la vi hace unos diez años), ya vamos por la tercera temporada, ¡nos encanta!

Series con la familia

En sintonía con lo de arriba, casi nada de nuevas anotadas. Acá es fácil la explicación: ¡casi no hay nuevas películas! Otro efecto secundario de la pandemia. Supongo que en el 2022 remontará...

  • G.O.R.A.: (2004; Aventura, Comedia, Ciencia ficción) [D: Ömer Faruk Sorak; A: Cem Yılmaz, Özge Özberk, Özkan Uğur, Ozan Güven, Rasim Öztekin]
  • La noche mágica: (2021; Comedia, Drama) Es 24 de diciembre, víspera de Navidad. En una casa tranquila en San Isidro donde vive un matrimonio con su pequeña hija, un ladrón espera su momento para entrar a robar. Para su sorpresa, se encontrará primero con el amante de la señora de la casa al cual obligará a participar en el robo. Lo que no sabe, es que la pequeña de la casa al verlo lo confundirá con Papá Noel y le pedirá cumplir su lista de deseos navideños. [D: Gastón Portal; A: Natalia Oreiro, Diego Peretti, Pablo Rago, Esteban Bigliardi, Isabela Palópoli]
  • Reminiscence: (2021; Ciencia ficción, Misterio, Romance) En un futuro cercano, Nicolas Bannister (Hugh Jackman) tiene un negocio que consiste en que sus clientes puedan revivir cualquier recuerdo que deseen. Su vida cambia cuando conoce a Mae (Rebecca Ferguson), una mujer que sólo acude a la consulta para poder recordar dónde dejó sus llaves. Pero este encuentro, pronto se convierte en un apasionado romance. Sin embargo, un día Mae desaparece sin razón y Nick se queda desolado. Hará todo lo posible por encontrarla, lo que implicará volver al pasado para descubrir la verdad sobre la mujer de la que se ha enamorado. [D: Lisa Joy; A: Hugh Jackman, Rebecca Ferguson, Thandiwe Newton, Cliff Curtis, Marina de Tavira]
  • 天気の子: (2019; Fantasía, Animación, Romance, Drama) En la actualidad, Tokio está experimentando lluvias que parecen interrumpir el ritmo habitual de todos los que viven allí sin fin. En medio de este aguacero aparentemente eterno llega la fugitiva estudiante de secundaria Hodaka Morishima, que lucha por mantenerse económicamente, terminando con un trabajo en una editorial de poca monta. Al mismo tiempo, la huérfana Hina Amano también se esfuerza por encontrar trabajo para mantenerse a sí misma y a su hermano menor. Ambos destinos se entrelazan cuando Hodaka intenta rescatar a Hina de hombres sombríos, decidiendo huir juntos. Posteriormente, Hodaka descubre que Hina tiene un poder extraño pero sorprendente: la capacidad de llamar al sol cada vez que reza por él. Con el clima inusual de Tokio en mente, Hodaka ve el potencial de esta habilidad. Sugiere que Hina debería convertirse en una "chica del sol", alguien que despeje el cielo para las personas cuando más lo necesiten. [D: Makoto Shinkai, Yoko Miki; A: Kotaro Daigo, Nana Mori, Tsubasa Honda, Sakura Kiryu, Sei Hiraizumi]
  • The Matrix Resurrections: (2021; Acción, Aventura, Suspense, Ciencia ficción) [D: Lana Wachowski; A: Keanu Reeves, Carrie-Anne Moss, Yahya Abdul-Mateen II, Jonathan Groff, Jessica Henwick]
La odisea de los giles

Como siempre, cierra el resumen :). Acá se puede ver la "sequía" de nuevas películas los últimos años, que incluso sin tener un ritmo exagerado de pelis vistas, el colchón de pelis a ver fue cayendo y cayendo:

(Jun-2015)    1
(Dic-2015)    6   1
(May-2016)   21   9
(Sep-2016)   18  14   1
(Feb-2017)   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   1
(Mar-2019)                   13  13  13  12   2   1
(Ago-2019)                       10  10  10   7   2
(Feb-2020)                            8   8   8   8
(Ago-2020)                                9   9   9
(Ene-2021)                                    5   5
(Sep-2021)                                        5
Total:       94  89  84  79  69  57  52  45  32  30
Comentarios Imprimir

Distribuyendo Encuentro

El año pasado les contaba que con la ayuda de un colaborador sacamos a flote y renovamos totalmente Encuentro.

Amo el logo de Encuentro

Eso quedó ahí, y aunque se podía clonar el proyecto o bajar un tarball y usarlo sin problema, realmente no había armado nada para que sea facil distribuirlo. Y es que poder distribuirlo y que se pueda usar facilmente es un laburo necesario para que todes puedan realmente aprovechar el programa.

En su momento, aprovechando que laburé para armar un instalador de Windows de TypusPocus, armé también el instalador para Windows de Encuentro.

¿Pero y los linuxes? Bueno, no es tan fácil. Armar un .deb o un .rpm no es trivial (y sólo se cubre Debian, Ubuntu, Fedora, y algunos derivados). Y para Arch es distinto. Traté de armar un snap, que funca en muchos linuxes, pero como es un formato que tiene "todo adentro y listo para usar" no es sencillo meter cosas gigantes del escritorio, como PyQt5. Y sí, claro, siempre te podés bajar el tarball o clonar el proyecto y usar Encuentro en Linux, pero no es sencillo, termina siendo una barrera.

Por otro lado, desde hace algunos meses empezó a germinar en mi cabeza una idea para distribuir proyectos Python, y hace algunas semanas empezó a catalizarse en algo firme, posible. Lo dí por llamar PyEmpaq y todavía está muy verde (ya escribiré un post cuando esté más firme).

El punto es que justamente PyEmpaq me permite distribuir Encuentro de forma sencilla :). Es sólo un archivo, te lo bajás y lo corrés con Python 3, y listo. Sí, tenés que tener Python instalado en la máquina, pero eso siempre se cumple con los Linuxes. ¡Y nada más!

La primera vez va a tardar un toque porque arma el entorno para que el programa corra ok, pero luego lo reusa y listo. Y no es un instalador: vas a tener que volver a correrlo desde la terminal cada vez que lo quieras usar (¿les dije que estaba verde?).

Pero funciona, y es suficiente para que sea usable. Así que actualicé la página de Encuentro para reflejar estas dos formas de instalación/uso, y listo.

Que lo aprovechen.

Comentarios Imprimir

Programando un juego en Python por streaming

Vamos a arrancar un experimento con Diego y Leandro (el equipo de La Escuelita Python donde vamos a hacer un juego, en Python, programando en vivo. Vamos a usar la plataforma Twitch, todos los miércoles a las 18hs, nos pueden seguir por este canal.

Tenemos la idea: queremos hacer el Boggle (un juego de construcción de palabras) para que un grupo de personas lo pueda jugar via Telegram. Esta es toda la definición, y no tenemos nada más. Ni como es exactamente el juego, ni cual va a ser la dinámica de grupo de les jugadores, ni cómo interactuar con Telegram.

Y a propósito tenemos solamente la idea base y nada explorado porque vamos a hacer todo en vivo. Desde el diseño hasta crear el proyecto en Github, desde explorar las bibliotecas a utilizar hasta ver como lo deployamos, desde irlo codeando hasta probarlo funcionando, etc.

Queremos desmitificar lo que es "la programación de verdad" ya que mucha gente piensa que cuando uno tiene experiencia se sienta y hace todo bien como si ya supiese de antes, y realmente hay todo un proceso de exploración y aprendizaje que, aunque es más corto y orientado si tenés experiencia, también existe.

Y queremos de paso aprender Twitch y promocionar la Escuelita, que ya se acerca el fin de la pandemia y ni bien podamos empezar con los cursos presenciales saldremos al ruedo :)

¡Les esperamos!

Comentarios Imprimir

CDPedia 0.9.0, ahora en varios idiomas

Ya les conté muchas veces sobre CDPedia en este blog. En todas sus liberaciones, cuando trabajábamos en los distintos PyCamps, un resumen de su historia, también cuando salió como parte del material de EducAr, y especialmente cuando hice un gran "todo lo que siempre quisiste saber" del proyecto.

También les comenté el año pasado que arrancaba un proyecto social (a.k.a. "experimento") alrededor de CDPedia para impulsarlo y a la vez explorar el armado de un grupo de trabajo específico. A fines del año pasado expuse una charla rápida en la PyCon Argentina contando el avance de dicho experimento, es un videito de menos de cinco minutos, si les gusta:

Este post, entonces, es para contarles que llegamos con éxito a la versión 0.9.0. Pasó el tiempo, y las dinámicas del grupo fueron cambiando, pero en definitiva estuvimos trabajando más de un año para esta liberación.

Pueden explorar el el detalle de todos los cambios en la página de la release, que están agrupados en:

  • Renovación del índice para una búsqueda más rápida y exacta
  • Cambios en cómo mostramos y procesamos las imágenes
  • Mejoras en la experiencia de les usuaries finales
  • Modernización del proyecto
  • Mejoras en la producción de las imágenes de CDPedia

Y obviamente, el contenido actualizado a este año.

El equipo

Pero quizás la novedad más importante de esta versión es que completamos algunos cambios y ajustamos todos los detalles para poder empezar a generar CDPedias en distintos idiomas. Por eso si van al sitio de la CDPedia van a ver que podrán elegir la CDPedia no sólo en Castellano sino también en Aimara y Portugués. Seguramente agregaremos otros lenguajes más adelante. ¿Hay alguno que quieran en particular?

Recuerden que la CDPedia es un proyecto para hacerle llegar la información a aquelles que no tienen buena conexión a internet, así que tenemos que ser proactivos en llevarles las imágenes de CDPedia para que la puedan disfrutar. Entonces si tienen discos disponibles, hagan algunas copias de CDPedia para regalar a tus familiares y amigues, a la biblioteca de vuestro barrio, o a la escuela de sus hijes. O directamente llévenla en un pendrive y la comparten todo lo que puedan.

¡Difundan CDPedia!

Comentarios Imprimir