Manuel Kaufmann (Humitos): ¡Nos compramos un robot!

Ya lo dije, el PyDay Asunción fue éxito y hoy sigue dando sus frutos.

El Sábado pasado participamos (en realidad solo asistimos, porque no ayudamos en mucho -nada, diría yo) al "HACKÁra Asuka Guaraní" para hacer la traducción de Sugar al Guaraní. Esta idea se propuso en el PyDay de Asunción, y semanas más tarde se llevó adelante: ¡Felicitaciones a todos por eso!

Ahí, en el PyDay Asunción yo le compré un robot "RoDi" a Gary Servin (disertante en el PyDay) con la idea de armar algún curso introductorio a la programación para chicos utilizando Python. Sin embargo, no tenía ni idea de RoDi y no había tenido tiempo de probarlo hasta hoy que me puse a jugar un poco.

El robot sale USD 40 (lo cuál es muy barato). Entonces, estaría bueno ver de comprar 2 o 3 más para tener un promedio de 10 alumnos y que trabajen en equipos de 2 o 3. ¿Cómo lo ven?

rodi.thumbnail.jpg

El robot RoDi

La dinámica es sencilla. Te conectás por WiFi a RoDi y le hacés GETs HTTP a diferentes URLs para que haga diferentes cosas (este firmware lo realizó Martín Abente -otro crack y disertante del PyDay).

Todo bien con RoDi, con Gary y Martín, pero a mí me gusta Python y es lo que quiero enseñar :) . Así que me hice una API super sencilla utilizando requests para empezar a gestionar la idea loca de hacer un curso de Python + Robótica para chicos y ver cómo me va. En principio sería un juego, una aventura más que nada. Tengo algunas ideas en la cabeza, pero hay que meterle fichas y hacerla más tangible...

>>> import rodi
>>> robot = rodi.RoDi()
>>> robot.blink(1000)
>>> robot.move_forward()
>>> robot.move_left()
>>> robot.move_backward()
>>> # easy, ha?
...

Y aquí un video de prueba:

Manuel Kaufmann (Humitos): POIs en La Palma de Cervelló

¡Qué lindo que es despertarse y recibir un mail tan alentador!

Hoy me escribió Konfrare Albert, desde una asociación muy pequeña de una población muy pequeña cercana a Barcelona (como lo describe él mismo) llamada Konfraria de la Vila del Pingüí:

Te escribo para informarte de que hemos conseguido que el
Ayuntamiento de nuestro pueblo se comprometa a utilizar
OpenStreetMap en su web, y empecé a intentar generarles un mapa
que aproveche el potencial de OpenStreetMap.

Me topé con tu página y me pareció genial, así que viendo que el
código tiene una licencia GPL me decidí a empezar a adaptarla a
nuestras necesidades. Todavía no he colgado el código en GitHub
pero sí, la idea es hacerlo.

Decime si esto no es un win-win. Yo hice el sitio web porque tenía una necesidad personal y la cubrí con esta página. Luego, lo publiqué y unos meses más tarde me escriben para decirme que se consiguió que el Ayuntamiento use OpenStreetMap en su web y que encima van a usar un software que escribí yo.

Aquí pueden visitar la adaptación que está haciendo Konfrare:

their-pois.thumbnail.jpg

Sitio web en Catalán que están usando en La Palma de Cervelló

my-pois.thumbnail.jpg

Sitio web original

¡Grosos estos pibes!

Nota

¡Además, aparezco en los agradecimientos en catalán! :)

Gran part del codi ha estat aprofitat de la pàgina creada per
Humitos (lloc web), i de la que en podeu trobar el codi a
GitHub sota una llicència GPL.

Facundo Batista: Mis lugares favoritos en el mapa


Hace algunos años me empezó a pasar que leía (o me pasaban) recomendaciones de lugares para comer, tomar algo, jugar al pool, etc, y luego cuando estaba en la calle, no las recordaba y terminaba yendo a cualquier lado al azar.

Se me ocurrió empezar a registrar los lugares en un mapa. La solución que usé fue basada en Google Maps: en la interfaz web creé una capa mía, en la cual empecé a cargar todos esos lugares. Luego, en el teléfono, iba a Google Maps, le decía que me mostrara esa capa, y ahí tenía el mapa con muchas estrellitas (cada lugar que había cargado) y podía ver qué tenía cerca, o para donde iba, etc.

Con el tiempo, se empezó a complicar.

En un momento, Google decidió que la versión del teléfono de Maps no iba a mostrar más "custom layers" (o sea, las capas que creabas vos). En otras palabras, ¡no podía ver más mis datos! Esto lo solucioné instalando una versión vieja de Google Maps en el teléfono (lo cual no es sencillo de hacer, pero funcionaba). Más adelante, Google empezó a complicar el uso de las capas en la versión web también. Y hace algunos meses, dejó de servir esa información, con lo cual aunque en el teléfono tuviera una versión que pedía esas capas al servidor, el servidor no las contestaba.

Esta foto es vieja, pero me encanta

En paralelo, hace un par de años largos que quiero empezar a irme en lo posible de los servicios de Google, y en función de eso en los últimos meses empecé a usar los mapas de OpenStreetMap ("OSM"), por recomendaciones de Nico, Humitos y Marcos Dione. Desde mitad del año pasado también lo puse en el teléfono, mediante la gran aplicación OsmAnd primero, y desde hace un par de semanas con MAPS.ME (que es bastante más rápida al mostrar los datos, y creo que es mejor decidiendo dónde mostrarte los nombres de las calles, lo cual es importante).

La gran ventaja de OsmAnd y MAPS.ME es que usan los mapas de OpenStreetMap (que son mejores en su calidad que los de Google Maps, y además son abiertos y colaborativos), y que además lo usan de forma offline. O sea, te bajás los mapas que te interesan (por ejemplo, el de Argentina) cuando tenés una buena conexión de internet y luego el mapa está en tu teléfono, con lo cual no necesitás internet cuando estás en la calle para consultar estos datos.

Pero, aunque estaba contento con la solución de "mapas" en su forma genérica, me faltaba esto de "anotar mis lugares". Hasta que Humitos me recomendó umap, donde podés justamente crear capas de lugares arriba de los mapas de OpenStreetMap (hay una gran cantidad de sitios que utilizan los datos de OSM y dan servicios arriba de ellos, ejemplos que me pasó Humitos: su propio "puntos de interes", otro con fotos de ciudades, y uno donde la gente registra árboles frutales).

En ese sitio, entonces, creé mi mapa de lugares para ir de parranda (no volví a armarlo de cero, sino que importé lo que exporté previamente de google maps). Para llevar estos datos a mi teléfono, exporté un KML, me lo mandé por mail, y en el teléfono le dije que lo abra con el MAPS.ME.

Y listo, :)

Manuel Kaufmann (Humitos): #asadogeek 2015

Como hace ya varios años, Facundo Batista viene organizando el #asadogeek. El #asadogeek es un evento que reúne a varios programadores argentinos del núcleo de amigos de Facundo (¡50 aproximadamente!) donde nos juntamos a comer un asadazo que hace él mismo utilizando una de las mejores técnicas que he visto en mi vida, y mientras tanto, cotorreamos como chimenteros profesionales sobre diferentes temas relacionados a Python, educación, programación, ciencias, tecnología y cualquier cosa que se te ocurra para un grupo de 50 geeks. ¡Hubo hasta charlas sobre cómo programar un satélite!

asado.thumbnail.jpg

LA carne...

Si bien este no es un evento oficial de PyAr, es uno de los eventos que más me gusta de PyAr :P . En esta reunión siempre me encuentro con gente añeja de PyAr que aprecio mucho y que además hace mucho tiempo que no veo (como Alecu, Joac, Lucio, Facundo, Leito, Karucha, Anthony, Lipe, Roberto, Diego, entre otros). También gente que conozco hace poco, como a @gilgamezh, pero con quién pegué onda de inmeadiato cuando lo conocí en la PyCon Argentina 2014 en Rafaela.

Además, siempre "conozco gente nueva" (o la re-encuentro perdida dentro de mi memoria) como a Manuel Carlevaro, con quien estuve hablando bastante sobre las ciencias y la burocracia de los papers.

quilombo.thumbnail.jpg

Parte de los asistentes al #asadogeek

En fin, es un evento que trato de no perderme ningún año. En esta oportunidad viajé de Asunción, Paraguay a Formosa, Argentina en auto y luego volé desde ahí hacia Buenos Aires para poder asistir. ¡Sí! Te aseguro que valió la pena. Más allá de las satisfacciones personales, también cuadré (diría mi amiga colombiana, @EllaQuimica) varias cosas con Héctor Sánchez para la SciPyLA de Posadas, Misiones y conseguí un montón de contactos de Bolivia y Perú para el proyecto :doc:`argentina-en-python` gracias a Lipe. Así que fue doblemente un éxito en todos los sentidos.

System Message: ERROR/3 (<string>, line 38); backlink

"argentina-en-python" slug doesn't exist.

Para aprovechar la volada, coordiné con Facundo para poder llegar unos días antes del asado a su casa y así poder compartir algunos momentos con él y su familia. Jugamos con Felipe a un juego de mesa que es muy similar a Logo que está buenísimo (salvo que se complotaron entre padre e hijo para hacerme perder todas las veces) y hasta le leí un cuento. También programamos un poquito de Encuentro con Facundo mientras esperábamos en la carnicería a que nos atiendan:

python-carniceria.thumbnail.jpg

Programando en la cola de la carnicería

¡Muchas gracias Facundo Batista por hacer semenjante movida y organizar este asado año tras año!

Nota

Facundo Batista: Hay días en el laburo...


Hay días en el laburo donde tenés que hacer un trabajo, lo planeás, te juntás con gente, se decide que cosas se van a hacer, se separa todo en tres o cuatro partes, hacés cada una (con tests y todo), todo bien, te hacen los review, entra en trunk, va a producción, todo muy lindo, mirás las métricas, suben y bajan como corresponde, y sos feliz.

Hay otros días en el laburo, donde empezás a ver algo y decís "esto no puede ser", empezás rastrear por qué está ese número ahí y te das cuenta que los logs tienen un problema, entonces lo querés contrastar con las métricas, y te das cuentas que en las métricas falta data, decidís cruzarlo con otro dato y te das cuenta que todavía no están sincronizados los archivos donde eso está, lo tenés que pedir y te tardan tres o cuatro horas en dartelo, y después cuando lo podés cruzar te das cuenta que deberías haber estado registrando algún otro número más, pero que no todo está perdido porque lo podés sacar de forma indirecta, hacés un script para parsear un quintillón de registros, te da un resultado más o menos coherente, pero todavía tenés que resolver como puede ser que el problema realmente esté sucediendo, mirás el código, te das cuenta que esa función está siendo llamada desde siete lados de los cuales solamente te acordabas tres, y de esos siete lados hay dos que no tenes datos de cómo están llamados... 

Está todo roto

En fin, la mayoría de las veces termina todo con un final feliz, pero realmente estás uno, dos o tres días rascándote grupalmente la cabeza con tus compañeros de trabajo hasta que se resuelve el acertijo.

Martín Gaitán: Curso de Python para ñoños

¡Los cupos irán a sorteo! Anotate. Si no entrás para en esta edición, quedás anotado para la próxima que será muy pronto.

La demanda nos desbordó. En menos de 2 dias tenemos inscriptos para llenar dos veces el laboratorio que tenemos disponible! Algunos ya están averiguando la disponibilidad del Estadio Kempes para hacer el próximo.

Como recién hoy (martes 7 de abril) se realizó la difusión oficial desde FaMAF, la decisión de los organizadores es permitir la inscripción de todos los interesados y hacer un sorteo de las 25 plazas aranceladas y otro para las 15 plazas gratuitas reservadas para estudiantes de grado de FaMAF.

La justificación de un sorteo en vez de tomar el orden de inscripción la dió el Dr. Nicolás Wolovick, que junto al Dr. Pedro Pury fueron los gestores para que el curso se oficializara, con un argumento democráticamente ñoño:

Estar conectado 24/7 por 3G, recibir el tweet, e inscribirse, no es justo, es una condición de posibilidad que no todos tienen. La distribución uniforme es la que mayor entropía tiene :)

Si estás interesado, es importante que te inscribas a través del formulario. Así tendremos una lista bien grande de "argumentos" para reeditar el curso lo más pronto posible.

Otra posibilidad es que averigües hagas lobby en tu empresa o laboratorio sobre la posibilidad de realizar el curso in house y, si tienen interés, lo charlamos.


/images/Newsletter4-Banner_20120705_12-44-50-800.jpg

A partir del 29 de abril voy a dar el curso Introducción a Python para ciencias e ingenierías en la Facultad de Matemática, Astronomía y Física (FaMAF) de la Universidad Nacional de Córdoba.

Este curso es una versión revisada y extendida del que dí en la ScipyCon Argentina 2014 y durará 8 clases de 2hs cada una. Será los miércoles de 18hs a 20hs en el laboratorio de computación de la facultad. No hace falta contar con equipo propio y el único pre-requisito es tener nociones básicas de programación en cualquier lenguaje.

El costo del curso es $400. Hay becas para estudiantes de grado de FaMAF.

Acá está el formulario de pre-inscripción (LOS CUPOS IRAN A SORTEO).

El curso está reconocido como Curso de Extensión de FaMAF (Res. HCD 107/2015) y se entregarán certificados oficiales a quienes completen asistencia y participación.

Atención Los cupos son muy limitados!

Introducción

En las últimas décadas la computación se ha convertido en un pilar de la ingeniería y la investigación científica. En la mayoría de las áreas, el trabajo computacional es un complemento fundamental de la experimentación tradicional y de la teoría, y cada vez más publicaciones involucran cálculos numéricos, simulaciones y modelado computacional.

Frecuentemente, la tarea de los profesionales involucra el uso de aplicaciones específicas que requieren un gran trabajo de procesamiento de los datos de entrada y un post-procesamiento de los resultados utilizando otras herramientas.

Otras veces se desarrolla software ad hoc en lenguajes de programación tradicionales en la ciencia como Fortran, muy limitados para el pre-procesamiento y la visualización de datos y cuyo desarrollo se torna improductivo por los tiempos inherentes al ciclo de edición, compilación, ejecución y depuración.

Existen nuevos entornos y lenguajes de programación que permiten un flujo de trabajo dinámico e interactivo, mucho más armónico y útil en el contexto de la "experimentación computacional". Un entorno interactivo permite a los científicos e ingenieros manipular datos, probar algoritmos y visualizar resultados de una manera integrada y versátil, sin limitaciones impuestas por una interfaz de usuario ni la laboriosa y frágil tarea de hacer interactuar distintos sistemas.

Este curso brindará una introducción al lenguaje de programación Python y a las herramientas fundamentales del "ecosistema científico" (IPython, Numpy, Matplotlib, Scipy, Sympy, entre otros) que conforman un entorno de programación interactivo de vanguardia, simple, libre, gratuito y multiplataforma.

Sobre el docente

Martín Gaitán es Ingeniero en Computación por la Universidad Nacional de Córdoba (2011). Socio fundador de Phasety, emprendimiento incubado en la UNC que desarrolla software de simulación especializado para la industria del petróleo y el gas. Pythonista desde hace casi una década, es especialista en el framework web Django y cree entender las necesidades del software científico. Es frecuente orador en eventos de software libre. Hincha de Boca y fundamentalista del locro. Más información en su blog.

Programa

Clase 1:
Instalación de entorno para Python en Windows/Linux. Modos de usar Python. Anaconda. Introducción a Ipython Notebook Tipos de datos: enteros, floats, complejos, strings. Estructuras de datos: listas, tuplas, diccionarios, conjuntos. Packing, indexing, slicing, etc. Conceptos de mutabilidad/inmutabilidad, secuencia, iterador Control de flujo: if, for, while, manejo de excepciones.
Clase 2:
Funciones: definición, argumentos posicionales y nominales. Sentencia yield. Funciones incorporadas: zip, range, enumerate, etc. Manejo de I/O: lectura y escritura de archivos.
Clase 3:
Estructura de proyectos: módulos, paquetes, importación. Paseo por la biblioteca estandar: math, CSV, json, pickle Conceptos básicos de programacion orientada a objetos. Introduccion a Matplotlib y Numpy.
Clase 4:
Numpy: introducción al objeto Array. Slicing extendido, métodos y funciones importantes, importación de datos. Aplicación de Numpy en algebra lineal. Resolución de sistemas de ecuaciones lineales. Matplotlib: generación de gráficos cartesianos continuos, puntos, histogramas.
Clase 5:
Vectorización de funciones con Numpy. Matplotlib avanzado: API orientada a objetos. Manipulación del formato y apariencia. Gráficos 3D, otros tipos de gráficos 2D. Introducción a Scipy: algoritmos para estadística, interpolación, regresión lineal, integración, etc.
Clase 6:
Python como "lenguaje pegamento". Integración con Fortran a través de F2Py. Herramienta "fortran-magic". Paso de argumentos escalares, arrays, output implícito, manipulación de signatura. Introducción a otras herramientas de optimización: Cython y Numba.
Clase 7:
Sympy: Python para matemática simbólica.
Clase 8:
Otras herramientas del "ecosistema científico" de Python. Entornos virtuales. Instalación de otros paquetes. Widgets de IPython Notebook. Exportación de documentos.

Juanjo Conti: 6 nuevos libros de Diego Arbit

Nuevos para mi, por supuesto. Algunos fueron publicados hace varios años ya.

Hoy me llegó un paquete con libros que compré hace unos meses. No me acordaba ni que los había comprado, de hecho me sorprendió la cantidad: 6.

Había leído dos libros del autor y luego de eso me topé con que estaba vendiendo por Facebook los que le quedaban. Aproveché la oportunidad y ahora tengo material de lectura para rato. ¿Qué orden me recomendás seguir, Diego?

 

 

Manuel Kaufmann (Humitos): #PyDayAsuncion: un éxito "arrollador"

Una foto vale más que mil palabras...
foto-grupal.thumbnail.jpg

Foto de casi todos los asistentes del #PyDayAsuncion (Asunción, Paraguay) - 28 de Marzo de 2015

Siendo un día de lluvia, tuvimos una asistencia de más de 80 personas y estábamos muy contentos por eso. De hecho, el primer asistente llegó a las 8:30hs (una hora antes) y por eso se ganó una remera ;) . Además, pude hablar con varias personas de esta nueva comunidad de "Python Paraguay" que se formó y muchos de ellos con ganas de hacer cosas nuevas y participar de próximos eventos.

grupo-formosa.thumbnail.jpg

¡Hasta vinieron los amigos de Formosa capital (Argentina)!

También recibí mucho apoyo de personas del interior de Paraguay con ganas de hacer algún evento en esos lugares. ¡Ya estamos planeando un Sprint para dentro de un par de semanas!

Declarado de interés tecnológico

El PyDay Asunción fue declarado de interés tecnológico por SENATICs (Secretaría Nacional de Tecnologías de la Información y Comunicación)

Si bien todas las charlas fueron interesantes, quisiera resaltar la charla de Richar Núñez, un jóven de 17 años que se animó a dar la "Introducción a Python" y nos dejó a todos con la boca abierta.

richar.thumbnail.jpg

"Introducción a Python" por Richar Núñez

También contamos con una disertante mujer, Natalia Figueredo, que nos habló de "Lo bueno, lo malo y lo feo" del manejo de base de datos en Python. ¡Que grande Nati por animarse!

natalia.thumbnail.jpg

"Lo bueno, lo malo y lo feo" por Natalia Figueredo

Podés consultar el cronograma completo aquí.

Me parece que no está de más agradecer nuevamente a SENATICs, Roshka e Ideas Creativas por todo el apoyo que brindaron en la organización de este hermoso evento. También a todos los organizadores que están poniendo el lomo desde hace 1 mes y a todos los asistentes por bancarse un día de lluvia para asistir.

DSC_4715.thumbnail.jpg

Grupo de organizadores del #PyDayAsuncion

Les recomiendo que vean todo lo que se generó en Twitter el mismo día del evento. Hay fotos y muy lindos comentarios de los asistentes.

Me parece una buena oportunidad para invitarlos a sumarse a la lista de correos de "Python Paraguay" como así también seguir sintonizando su Twitter y la página de Facebook.

¡Qué genialidad lo que se logró el Sábado pasado! Todavía estoy un poco emocionado y agotado, también. Fue un día con mucha adrenalina y a las corridas para que todo salga lo mejor que se pueda.

Nos vemos pronto, en algún lugar del planeta tierra, con esto que hemos denominado: "Argentina en Python: una locura itinerante que no tiene fin".

Fotos

Algunas de las fotos del evento (las que saqué con mi celular), las podés ver acá

Fotos tomadas por Alfredo Merino

Si subiste fotos del evento, dejá el link en la sección de comentarios :)

Alejandro Santos: Aprendiendo a programar: eligiendo un lenguaje

Si querés aprender a programar y querés elegir un lenguaje, usá uno que te permita aprender los conceptos básicos de programación: Variables, uso de memoria, estructuras de control, flujo de ejecución, expresiones, abstracción, programación modular y reuso de código, recursión, estructuras de datos, algoritmos, eficiencia, programación genérica. Punteros es un tema que todos deberían conocer y estudiar, conocer de su existencia y de su razón.