OpenLex en Google Summer of Code

Este año soy mentora del Google Summer of Code, por segundo año consecutivo.

¿Qué es el Google Summer of Code?

Es un programa global organizado por Google que acerca a los estudiantes al software libre, a las organizaciones de software libre relacionadas a la tecnología para ser parte de las comunidades, y de paso, tener un sueldo.

Los estudiantes van a tener la posibilidad de trabajar como en realidad se hace, aplicando los conocimientos teóricos, trabajando en grupo en forma remota o presencial, utilizando herramientas indispensables como control de versiones, github, etc y usando los estándares actuales en desarrollo de software. ¡Y ganando una beca por ello!

Todo esto tutelado/guiado por mí y probablemente por alguien más, en un ambiente amigable y seguro, y en español.

El proyecto es OpenLex, un software para web diseñado y desarrollado por mí, pensado para el manejo de estudios de abogacía, que necesita amor para crecer, y así ser modernizado y completado:

  • Migrarlo a Python3, y a Py4Web

  • Actualizar las versiones de las librerías JavaScript

  • Preparar una versión demo on line.

  • Armar un manejo de usuarios más robusto

  • Algunas features adicionales son muy necesarias, como implementar el uso de templates para los escritos.

Para ver más, podrías mirar en

¿Qué se precisa?

  • compromiso real,

  • conectividad estable y disponible para una o dos reuniones semanales on line (si tu conexión es lenta, por lo menos se necesita transmisión de audio).

  • una computadora a la que tengas acceso 18 hs por semana como mínimo.

  • instalarte Telegram, porque ése va a ser nuestro medio de comunicación habitual, ahí tenemos coordinar reuniones y comunicarnos día a día.

  • Ser apto para GSoC: tener más de 18 años, estar estudiando algo relacionado a la informática posterior al secundario o haberse recibido entre 1/12/20 y 17/05/21, y poder trabajar.

En lo técnico, lo que necesitás es muchas ganas, pero estaría bueno si conocés python, git, javascript, algo sobre programación web. ¿No conocés todo esto? ¡Esto es un proceso de aprendizaje, vamos todos juntos a apoyarnos en el desafío! Abajo agrego una lista de algunos sitios fantásticos donde aprender todo lo necesario.

Entonces, ¿tenés ganas de participar? ¿Qué hacer?

  1. Creá tu plan de proyecto: hay que investigar un poco, pensar posibles soluciones alternativas, inspirándose en la lista de issues.

  2. Acordate que GSoC se maneja en fases, la primera fase es para conocerse en la comunidad y familiarizarse con el código y su estilo, después viene la fase inicial de codificación, en l a cual serás evaluade por mí, como mentora,  y luego vendrán las 5 semanas de codificación, al final de ellas, tendrás que entregar algún producto y dar el URL.

  3. Pagos: los pagos son en dos partes , la primera luego de pasar la fase 1, y la última luego de terminar, utilizándose la plataforma Payoneer, un total de 1500 U$S. Cuando seas aceptade, el link para registrarte llegará a tu email. Tendrás un certificado de finalización al completar el programa.

Las fechas límite:

29/03/2021 al 13/04/2021: Para que les alumnes presenten sus propuestas.

13/04/2021 al 17/05/2021: Para que revisemos las propuestas presentadas

17/05/2021 al 07/06/2021: Me presento con les estudiantes como mentora, y en este tiempo pueden aprender más sobre la organización y el código existente.

07/06/2021 al 16/08/2021: Codear, codear, codear!

12/07/2021: Les estudiantes y yo nos evaluamos mutuamente.

16/08/2021: Les estudiantes envían su código, la síntesis de su proyecto y las evaluaciones finales de mentoría.

23/08/2021: Evalúo el código de les alumnes y dictamino si se cumplieron los objetivos del proyecto.

31/08/2021: Les alumnes reciben la notificación, y si pasaron o no los proyectos.

¿Te gustó?¿Todavía tenés dudas?

Bueno, podés leer más sobre GSoC:

El sitio oficial summerofcode ,

El manual del alumno student guide

Sobre el pago: payoneer

Y sobre las tecnologías que empleamos:

Python3: El tutorial de Python Inmersión en Python

Py4Web: py4web documentation

JavaScript: w3school javascript

GIT: gitexplorer try github

Cómo acelerar por harware operaciones con videos

Cómo acelerar por hardware operaciones con video.

Hola! Tengo un hw bastante modesto (i5, 8G RAM), Linux Mint y hago muy cada tanto algo de edición. Así que estuve mirando cómo hacer para ver cómo era mi tarjeta gráfica, para ver si había algún recurso de aceleración que no había aprovechado. Encontré que debía hacer >> lspci | grep VGA >> sudo lshw -C video ahí, supe que tenía una plaqueta gráfica intel HD Graphics 5500

OBS Studio

En los ajustes avanzados de salida, apartado video, descubría que tenía la posibilida de comprimir usando hardware, pero cuando lo traté de habilitar, me informé de que faltaba habilitar la aceleración Ahí me informé que existe una biblioteca de uso de mi tarjeta gráfica llamada vaapi, así que busqué $ sudo apt-cache search vaapi ahí me encontré con dos paquetes que pocedí a instalar $ sudo apt-get i965-va-drivera $ sudo apt-get i965-va-driver-shaders y entonces empezó mi obs studio a funcionar mucho mejor

Verificando el uso

Para poder ver el nivel de exigencia de mi tarjeta, instalé $ sudo apt install intel-gpu-tools Así al hacer $ sudo intel_gpu_top podría ver el nivel de exigencia

FFMpeg: transcodificando

Después, encontré que ffmpeg también nos permite utilizar la gpu para transcodificar. $ ffmpeg -vaapi_device /dev/dri/renderD128 -i <inputfile> -vf 'format=nv12,hwupload' -c:v h264_vaapi <outfile>.mkv

KDEnlive: Edición de videos

Finalmente, me encontré intentando lograr la aceleración de videos. Buscando, encontré que podría ser posible, pero primero es necesaria la biblioteca movit y rtaudio. $ sudo apt-get install librtaudio6 $ sudo apt install libmovit8

Encontré algún artículo [1], pero aparentemente sólo recompilando la librería MLT se podría hacer.

Análisis encuesta asistentes

Decidí que necesitaba algo más de información respecto del perfil y las preferencias del público que asistió a los eventos que coorganicé en el año pasado.

Quiero así también conocer qué tal estamos yendo, la edad y el género promedio de las personas que asistieron. Así que envié emails a todos los emails registrados, enviándoles una salutación de fin de año y también mandándoles el link para completar la encuesta. También puse en todos los grupos en redes sociales que surgieron de las reuniones, Telegram, Whatsapp, Facebook y por Twitter.

El resultado final pueden verlo acá:

resultado final.

Proceso de análisis

Una vez obtenidos los datos, el desafío fué bajar la información. Encontré que podía abrir planilla de cálculos con los resultados y posteriormente exportar a CSV (Comma Separated Values).

Conectando con la API de Google

Pero luego me sugirieron conectar directamente con la API de Google, y así fué que cree un proyecto en Google usando la consola Google.

Fuí al dashboard del proyecto, y de ahí seleccioné APIs, y navegué a la biblioteca de APIs.

Habilité Google Drive API, luego fuí a crear credenciales. Allí elegí que la llamaría a la API desde otra interfaz de usuario (CLI, Windows) y que necesitaría usar datos de usuario.

Luego cree una cuenta de servicio llamada encuesta, y bajé las credenciales en formato json. Las copié al subdirectorio en el que se encontraba mi notebook jupyter.

Ahí fuí a la hoja de cálculo GCalc, y la compartí con el usuario de la cuenta de servicio, que tiene un email que termina en encuesta@.....iam.gserviceaccount.com.

Creando el notebook de jupyter para análisis de los datos

Para crear la notebook jupyter, cree un nuevo environment y los añadí como kernel a jupyter. Para esto cree el virtualenv

>>> conda create -n myenv

Activé el environment creado

>>>  conda activate myenv

Luego instalé el paquete que provee el kernel IPython para Jupyter

>>> pip install --user ipykernel

Y finalmente lo activé

>>> python -m ipykernel install --user --name=myenv

Cree un nuevo notebook con el environment, y procedi a crear una celda especial para instalar los siguientes paquetes:

>>> import sys
>>> !{sys.executable} -m pip install pandas, numpy, matplotlib, gspread, oauth2client

Presentación y publicación de los resultados

Una vez instalado todo, utilizando las credenciales de google anteriormente bajadas, agregué el código para bajar la información directamente de la planilla y para realizar el análisis.

Una vez que completé el análisis, y realicé los gráficos correspondientes, procedí a exportar en formato HTML el resultado. El problema fué que cuando mostré los mismos, me dijeron que el hecho de que el código de programación python se entremezcle con los resultados resultaba confuso.

Para evitar esto, al html exportado le agregué el siguiente código:

<script>
function myFunction() {
    var x = document.getElementsByClassName("highlight");
    var i;
    for (i = 0; i < x.length; i++) {
      if (x[i].style.display === "none") {
        x[i].style.display = "block";
      } else {
        x[i].style.display = "none";
      }
    }
}
</script>

Después, dentro del bloque de la descripción inicial agregué un botón:

<button onclick="myFunction()">Mostrar Ocultar código fuente</button>

Luego del tag body, en el evento onload, también llamé a la función para que al leer la página también lo oculte:

<body onload="myFunction()">

Finalmente, lo agrego a mi blog como una página estática, en el subdirectorio stories, con formato html. Para que el generador de páginas estáticas Nikola lo agregue, precedí con

<!--
.. title: Análisis de la encuesta
-->

El resultado final pueden verlo acá:

resultado final <https://mavignau.gitlab.io/blog/stories/analisis-de-la-encuesta/index.src.html>

PyCon Cleveland, Ohio

Galería de fotos

El día 29 de mayo salí en colectivo desde Resistencia Chaco hacia Buenos Aires, hice un día de escala y el primero de mayo partí en un vuelo con dos escalas hacia Cleveland, Estados Unidos.

Justo antes de embarcar en el avión a Cleveland, me encuentro con Cris Ewing cuya remera decía PyLadies, me acerqué a hablar y justamente íbamos al mismo destino.

Vista de Cleveland

Vista de Cleveland

Al llegar, tomé el bus para ir al centro de la ciudad, cerca del cual quedaba en centro de convenciones. Era plena primavera, así que habían arreglos de flores por todas partes, particularmente, muchos tulipanes.

Bellísimos tulipanes multicolores

Bellísimos tulipanes multicolores

Llegué allá al mediodía del dos de mayo, para asistir a la tarde del último día de los tutoriales, y ver la exposición con los stands. Era muy grande, al menos cinco filas de stands, con destacados de las mayores corporaciones, otros de empresas menos conocidas, pero importantes, y con varios stands dedicados a comunidades como PyLadies o DjangoGirls.

En el Stand de Django Girls

En el Stand de Django Girls

Nos daban un desayuno, con café, té, varios tipos de leche (común, de soja, de almendras, etc), avena caliente, pastelería, frutas y algo salado, como burritos. El almuerzo, había una carne, que podía reemplazarse con tofu, con diversos acompañamientos, como ensaladas, y también, independientemente, una bandejita de ensalada, que traía algún sandwich, un paquete de papas fritas (las que nos sirvieron eran más crocantes y duritas, y mucho más sequitas que las habituales por acá).

Todo el día había café, té y leche, a la tarde se servía una merienda con pastelería y cerraba a las 7 de la noche cada día.

Al llegar el día 3 de mayo, fuí directamente al salón destinado a la PyCon Charlas. Como llegué temprano, me encontré hablando con Naomi Ceder , que estaba esperando a las personas

Junto a Naomi Ceder

Junto a Naomi Ceder

Mi charla era la segunda programada en la mañana, así que esperé hasta que me tocó darla

Iniciando mi charla

Iniciando mi charla

Durantes los tres siguientes días había actividades diversas para hacer: se podía asistir a las charlas, se podía ir a los open spaces, salones que podían ser solicitados por personas o grupos para realizar actividades diversas, cada una a diferente hora.

Tablero de open spaces, donde los asistentes proponían temas

Tablero de open spaces, donde los asistentes proponían temas

Los últimos días fueron para los sprints, los cuales dan una oportunidad única de trabajar en proyectos de fuente abierta junto a los más reconocidos desarrolladores de software. Primero ingresé a trabajar al sprint de Flask, un framework para desarrollo web con un enfoque modular, muy utilizado por su sencillez.

Los proyectos en los que se podía realizar desarrollo

Los proyectos en los que se podía realizar desarrollo

Más tarde me encontré con Marlene Marchena‏, una mujer peruana que venía a dar un taller sobre iniciación en el desarrollo para niños, utilizando Python para programar sobre Minecraft.

Ella me llevó al sprint sobre BeeWare, un ambicioso proyecto que pretende ser un completo framework para desarrollo multiplataforma, y como Russell Keith Magee, el principal desarrollador, tenía simplificado el accesos para los principiantes, durante el segundo día y tercer día. A cada persona que lograba hacer una contribución al proyecto, nos daba una pequeña medalla, ambas logramos tener nuestro pequeño trofeo.

Russell Keith Magee daba un medalla por la primera contribución.

Russell Keith Magee daba un medalla por la primera contribución.

Durante el almuerzo del tercer dia de sprints, armamos una mesa en la de hispanohablantes, y me enteré que se estaba realizando la traducción al castellano de parte de la documentación de Python, y que la persona a cargo era el español Raúl Cumplido , compañero de trabajo de Manuel Kauffmann.

Con Raúl Cumplido.

Con Raúl Cumplido.

Los últimos dos días tuve algo de tiempo para conocer la ciudad de Cleveland. Tiene una arquitectura magnífica, pude disfrutar del Rock & Roll Hall of Fame, de la Biblioteca Pública, del Centro Glenn Close de la NASA, y del Museo de Arte. También ví la Universidad Estatal de Cleveland, son dos manzanas con dos torres de más de 20 pisos y varios otros edificios de al menos 5 pisos cada uno.

Paisaje de Cleveland.

Paisaje de Cleveland.

Para ver muchas más fotos, en la galería

PyCamp 2019

PyCamp 2019, Los Reyunos

Volví del PyCamp en Mendoza

Excelente!

La llevé a Chiara, mi hija de 12 años, se adaptó de maravillas. Y a Ariel, un amigo de las épocas gloriosas de FidoNET, hace 25 años.

El padece obesidad: hay muchísimas barreras para gente como él. Siempre debe comprar servicios premium en los transportes para asegurar un asiento suficientemente ancho. Va en primera clase en el avión, usa coches cama en bus, necesita camas matrimoniales para las habitaciones. Y los costos se elevan considerablemente.

Programé, y pude entender algunos proyectos más avanzados en Django, pero especialmente fui a disfrutar a mis acompañantes.

Chiara volvió entusiasmada con programar. La incorporaron a los juegos de mesa de la noche, hizo malabares, aprendió esgrima, tirolesa tipo bangi, nadó y se comportó con gran autonomía en el complejo de Los Reyunos. Y la comisionaron para hacer un ícono, que usaron para el bot de Telegram del Pycamp.

Presenté como propuesta a OpenLex, y hablamos con Marco Redondo sobre el estado actual del proyecto, del framework Web2Py en el que se basa. Está teniendo inconvenientes para ganar desarrolladores, aunque sigue siendo uno de los más fáciles y claramente organizado.

Lo hicimos andar y empezamos a hablar sobre los issues, los posibles usuarios, y el grupo.

Ariel volvió a encontrarse en un ambiente de informáticos apasionados. Habló con todos, especialmente con los estudiantes, el paisaje lo fascinó y sacó cerca de mil fotos, venía con un gran stress laboral y pudo relajarse muchísimo. Le encantó la comunidad, y terminó tan entusiasmado que me dijo para venir muchos más días el año que viene, y aprovechar aún más el viaje. Y hasta especulamos sobre un PyCamp en el Chaco, algo que estaría fantástico para impulsar a python por acá.

Un PyCamp de lujo!

Eventos, eventos muchos eventos

Armando varios eventos al mismo tiempo, y preparada para viajar a otros tantos

PyCamp

Por fin llegamos al pycamp 2019, voy a viajar con mi hija y con un amigo de muchos años, Ariel @panflin Nardelli. Estoy anticipando ansiosa la salida, esperando divertirme un montón como otros años. Todos los detalles ya están en su lugar. ¡Mucha expectativa!

PyCon US

Voy a viajar este año a la PyCon de Cleveland, Ohio. Me ayuda con los gastos la PSF, y estoy verdaderamente ilusionada con conocer por primera vez EEUU. Los detalles del trámite de la visa, los pagos del vuelo, y todo el papeleo, me abruman un poco, me parece sin embargo una excelente oportunidad de dar a conocer las investigaciones forenses y los desarrollos que hacemos en la provincia.-

Flisol

Como todos los años, desde el 2017, vengo coorganizando junto a Rolando @pelin Rodriguez la Flisol, este año lo hacemos en el Informatorio, A. Illia 1055 Estamos saliendo con el llamado a charlas y propuestas de trabajo, esperamos que continúe creciendo el evento como lo viene haciendo. Mi charla va a introducir a los multimedia con soft libre, dando un ejemplo práctico de cómo hacer un pequeño video tutorial.

PyDay NEA

Finalmente, también vamos a hacer PyDay NEA junto a Sergio Lapertosa, otro capo. Esta vez será el 8 de junio, en la UTN Facultad Regional Resistencia, vamos a usar el Salón de Actos y el playón para éso. Todavía no tengo decidido el tema espero contar con el apoyo de algunos genios para traer mucha más gente todavia.

Contents © 2022 María Andrea Vignau - Powered by Nikola