Actividades Aceptadas
Nota: El listado de actividades es provisorio, próximamente será actualizado con las charlas plenarias, paneles y talleres
¡Quedate conectado con PyConAr para más info y novedades!.
Keynote
Charla Plenaria (a confirmar 2)
Leah Culver ()
bio
45min Nivel Principiante
Categorias:
"A confirmar"
Charla Plenaria (a confirmar)
A confirmar ()
bio
45min Nivel Principiante
Categorias:
"A confirmar..."
Charla
1001 formas de promover Python
Roberto Allende (Plone Foundation, Menttes)
bio
Gerente Comercial en Menttes SRL, Miembro y Director de Plone Foundation. Miembro observador de Free Software Foundation Latin America. Realiza actividades de promoción y divulgación de Plone, Python y Software Libre. Contribuye en diversos proyectos incluyendo Plone, Plone Cono Sur, PloneGov, Fundación Vía Libre, entre otros. Ha participado como orador en múltiples conferencias internacionales, incluyendo PyCon (Chicago, 2009), Latinoware (Foz de Iguazu 2008, 2009), Jornadas Regionales de Software Libre (Santiago de Chile 2009, Córdoba 2007, Rosario 2006), FISL (Porto Alegre 2008, 2007), PloneConf (Napoli, 2007), etc. Coordinador de eventos como 7as Jornadas Regionales de Software Libre, World Plone Day 2008, 2009 y 2010 entre otros.
25min Nivel Principiante (Sábado 16 14:30 Sala Anfiteatro 1)
Categorias: advocacy, evangelism
Orientada a quienes usan Python y desean que sea adoptado masivamente, esta charla hace una revisión de distintas iniciativas que puede llevar adelante una persona para promover el uso y adopción de Python y a partir de este punto abrir el debate en busca de la mejor forma de contribuir.
Esta charla lista iniciativas que se pueden realizar con el proposito de difundir y lograr adopción de Python.
Se considera la charla como un puntapie al debate, no pretende ser completa, de hecho está basada en la experiencia personal del orador, quien ha organizado y particpado en mas de 50 activivades de divulgación en los últimos 5 años, incluyendo conferencias, charlas, cursos, talles y tratado este tema en
PyCon USA 2009 con la charla "Giving back and helping expand the Python community. A roadmap for South America and Africa", en PloneConf 2007 con la charla "Plone Cono Sur: Creating a Plone Users Group from scratch" y en Fisl 2008 con la coordinación del panel sobre "Grupo de usuarios", donde referentes de la región presentaron la historia, actividades y opiniones respecto al futuro de los grupos de usuarios en el Río de la Plata.
Advance Message Queuing Protocol con Python
Emiliano Dalla Verde Marcozzi (Airtrack)
bio
25min Nivel Principiante (Viernes 15 10:45 Sala Anfiteatro 1)
Categorias: brokers, erlang, exchangers, message delivery, network, protocol, queuing
El estándar AMQP (Advanced Message Queuing Protocol) es un protocolo de estándar abierto en la capa de aplicaciones de un sistema de comunicación. Las características que definen al protocolo AMQP son la orientación a mensajes, encolamiento ("queuing"), enrutamiento (tanto punto-a-punto como publicación-subscripción), exactitud y seguridad. Esta charla provee de una descripcion introductoria de la arquitectura de amqp y de la implementacion del mismo utilizando Python con RabbitMQ.
Siempre ha sido un problema el hecho de tener que enviar y recibir mensajes entre aplicaciones y mas aun el disponer de medios que nos permitan realizar esto entre distintos lenguajes de programacion. Otro aspecto al que se le presta importancia en estas aplicaciones es que el intercambio de mensajes sea seguro, confiable y eficiente.
AMQP estipula el comportamiento tanto del servidor que provee los mensajes como del cliente de la mensajería hasta el punto de que las implementaciones de diferentes proveedores son verdaderamente interoperables, de la misma manera que los protocolos SMTP, HTTP, FTP y análogos han creado sistemas interoperables. Otros intentos previos de estandarizar middleware sucedieron al nivel de API (por ejemplo, JMS) y no lograron una interoperabilidad real. A diferencia de JMS, que solamente define una API, AMQP es un protocolo a nivel de cable. Un protocolo a nivel de cable es una descripción del formato de los datos que son enviados a traves de la red como un flujo de octetos. En consecuencia, cualquier programa que pueda crear e interpretar mensajes conforme a este formato de datos puede interoperar con cualquier otra herramienta que cumpla con este protocolo, independientemente del lenguaje de implementacion.
Python cuenta con tres librerias, py-amqplib, pika y txAMQP, cuales implementan el protocolo AMQP
con distintos enfoques.
La charla esta enfocada a todo desarrollador que se encuentre con el paradigma de tener que optar por un protocolo de comunicacion entre sus aplicaciones.
Lineamiento de la charla:
* Introduccion a AMQP
* Introduccion a RabbitMQ
* Librerias disponibles para trabajar con Python
* Implementacion de un consumer y producer con pika
Behind the scenes: Python bytecode
Matías Bordese (PyAr)
bio
Matías es Licenciado en Ciencias de la Computación y desarrolla en Python hace varios años ya, por trabajo y por placer. Siempre interesado en contribuir y participar de la comunidad y los proyectos relacionados.
25min Nivel Intermedio (Sábado 16 15:15 Sala Salon Google)
Categorias: core, security
El código Python se compila a una representación interna en bytes (o bytecode) que el intérprete luego ejecuta. Python ofrece un tipo interno para trabajar con el bytecode, los code objects. En esta charla se presenta brevemente la estructura de los archivos compilados de Python (.pyc), cómo obtener el bytecode, y finalmente algunos experimentos y herramientas para jugar con code objects.
(Idealmente sería bueno contar con un espacio de alrededor de 40 minutos para dar la charla; sería una versión un poco actualizada de la charla del año pasado [0])
Outline.
--------
- Python bytecode: de py a pyc
- Compilar código (compile[1] -python builtin-)
- Estructura de los archivos .pyc
- Presentación de los módulos marshall[2] y dis[3]
- Obtener code objects
- Ejecutar code objects (eval, exec)
- Desensamblar code objects
- Experimentos:
- byteplay[4]: manipulando code objects
- bytecodeAssembler[5]: creando code objects
- unpyc[6]: de pyc a py
- Caso de estudio: haciendo un poco de ingeniería inversa sobre un "crackme"[7] simple
- Extraer el code object de un exe compilado con py2exe
- Desensamblar y entender el programa
- Generar el serial válido
[0] http://ar.pycon.org/2009/conference/schedule/event/17/
[1] http://docs.python.org/library/functions.html#compile
[2] http://docs.python.org/library/dis.html
[3] http://docs.python.org/library/marshal.html
[4] http://code.google.com/p/byteplay/
[5] http://peak.telecommunity.com/DevCenter/BytecodeAssembler
[6] http://code.google.com/p/unpyc/
[7] http://en.wikipedia.org/wiki/Crackme
click click, tu aplicacion python en windows a un doble click de distancia
Mariano Guerra (IBM)
bio
25min Nivel Intermedio (Sábado 16 12:15 Sala Anfiteatro 1)
Categorias: case study, desktop, gui, packaging, pygtk
Como distribuir nuestra aplicación python de escritorio de una forma simple en la plataforma MS Windows
En la charla se hará un repaso por las herramientas y pasos necesarios para hacer
una aplicación "portable" en windows.
Se tomara como caso de aplicacion el programa emesene (www.emesene.org) el cual utiliza
el toolkit gráfico GTK+.
Estructura de la charla:
* Descripción del problema y análisis de soluciones
* Descripción de las herramientas utilizadas
* Descripción del proceso de generación de un instalador y versión "portable"
* Demostración del proceso
Conejos de birmania... en 3D!!
Silvestre Huens (menttes)
bio
25min Nivel Principiante (Sábado 16 12:15 Sala Salon Google)
Categorias: games
Voy a mostrar (con la ayuda de los conejos de birmania) el proceso de creación de un vídeo juego en 3D, usando herramientas libres y python como lenguaje principal.
Como "hobbista" en el desarrollo de vídeo juegos, invertí incontables horas estudiando, analizando y aprendiendo diversas herramientas y tecnologías. La charla tiene la intención de transmitir esa experiencia, mostrando como seria el proceso de creación, que software tenemos a nuestra disposición y donde entran en el flujo de trabajo.
El conjunto de herramientas que se usaran es el siguiente:
- Panda 3D como game engine (cuya idea principal es que podamos crear un video juego en su totalidad programando en python).
- Blender como soft para modelar geometria (scripteable en python).
- Gimp para pintar texturas (scripteable en python).
- Ejemplos de integración ARToolkit y openCV (para realidad aumentada).
- Conejos de birmania...
configglue: cómo agregar opciones a tu programa python sin repetir y sin soplar
John Lenton (PyAr)
bio
25min Nivel Intermedio (Sábado 16 11:30 Sala Anfiteatro 2)
Categorias: tools
Python viene con varias formas de agregarle opciones, pero no una forma unificada que permita agregar opciones vía archivo de configuración y línea de comandos simultáneamente. Presento a configglue, que hace exactamente eso, y más.
Una introducción a configglue, desde la descripción
de la necesidad y el problema que lo originó, hasta la forma en que se lo puede usar.
borrador de la charla:
* los programas tienen opciones
* optparse vs ConfigParser: muy poco DRI
* configglue toma ConfigParser y configura un optparse
* esquemas de opciones vs opciones ppmente dichas
* configglue.inischema vs configglue.pyschema
* extensibilidad
* el camino a 1.0
Cyclope 3: un CMS libre desarrollado en Python/Django
Nicolás Echániz (Código Sur)
bio
25min Nivel Principiante (Sábado 16 11:30 Sala Anfiteatro 1)
Categorias: django, web
Cyclope 3 se basa en Django y hace uso de numerosas "aplicaciones re-usables". Es desarrollado por Código Sur y está especialmente dirigido a organizaciones sociales. Se pretende ofrecer una plataforma versátil pero de uso simple. Se presentará en la charla el proceso de desarrollo, el estado actual y los planes a futuro y se explicará cómo participar del proyecto para aquellos interesados.
La charla todavía no está completamente definida, pienso terminar de estructurarla cuando vuelva del Foro Social en Paraguay.
De cualquier manera, la idea sería más o menos esta:
Los primeros 10 minutos:
- contar por qué es que estamos desarrollando oootro CMS más y mostrarlo en funcionamiento, sin ver nada de código.
Segundos 10 minutos:
- explicar cómo es que se puede customizar y extender Cyclope, tanto sus modelos de contenido como las vistas con las que se los exponen; esto utilizando algún ejemplo concreto de modelo.
Creo que no habrá tiempo como para explicar la creación de themes, pero se puede dar unos hints.
Los últimos 5 minutos me gustaría:
- contar brevemente cómo estamos trabajando, desde Código Sur y en colaboración con varios miembros de PyAr e invitar a la gente a sumarse
- responder algunas preguntas.
Habría otros temas más pero creo que para 25 minutos con esto estaríamos bien.
DBus con el pie derecho
Alejandro J. Cura (Python Argentina)
bio
25min Nivel Principiante (Viernes 15 13:00 Sala Anfiteatro 1)
Categorias: desktop, gnome, kde
DBus permite que las aplicaciones de un escritorio (Gnome, KDE y otros) puedan hablar unas con otras, independientemente del lenguaje y toolkit con el que hayan sido desarrolladas. En esta charla veremos como funciona y como lo podemos usar desde Python para tomar el control de nuestro escritorio.
Temario:
* Qué es DBus
* Quién lo usa
* Inspeccionando el Bus
* Bus de Sistema y de Sesión
* Las partes
* Bus
* Path de Objetos
* Interfaces
* Métodos
* Tipos de datos
* Señales
* Objetos "proxy"
* Llamando a métodos
* Llamadas asincrónicas
* Recibiendo señales
* Exportando objetos al Bus
* Emitiendo señales
* Activación por DBus
Depuración y Defragmentación de memoria
Claudio Freire ()
bio
25min Nivel Avanzado (Sábado 16 11:30 Sala Salon Google)
Categorias: core
Los programas de larga corrida (como un demonio de servidor) suelen ser especialmente susceptibles, en Python, al problema de la fragmentación de memoria. La charla describirá el problema, por qué sucede, y mostrará algunas herramientas disponibles para su diagnóstico.
Los primeros 5-10 minutos presentarán rápidamente los
esquemas de administración de memoria de Python, que hace falta
entender para poder entender el problema y encarar una solución.
Se verán los pools numéricos, las listas de tuplas y objetos libres, y en general
cómo Python "cachea" la memoria de objetos frecuentemente utilizados, y el esquema
de asignación de memoria en Arenas.
Los siguientes 10 minutos explorarán las herramientas de diagnóstico: el módulo gc,
heapy, hasta top (y cómo interpretar el "subtexto" detrás de los números).
Finalmente, se verá una demostración de un programa que fragmenta la memoria, y
de las técnicas para mapearla y detectar la fuente del problema.
Y consultas.
Dado que la primera parte no es tan "bajo nivel", pensaba en catalogar esta charla
como de nivel intermedio. Lo cierto es que se verán cosas muy internas a CPython
en particular, y podría catalogarse como de nivel avanzado, más que nada porque el
tiempo no da para profundizar. Pero como dejará un resultado positivo y recursos
valederos también al intermedio, pensaba que podría catalogarse como tal.
Dejo la decisión final a vuestro criterio.
Desarrollando actividades para Sugar
Héctor Sanchez (Python Argentina)
bio
25min Nivel Principiante (Viernes 15 10:00 Sala Anfiteatro 2)
Categorias: desktop, education, games
Mostraremos la plataforma Sugar (Interfáz gráfica utilizadas en las OLPC), y como desarrollar aplicaciones y juegos educativos para esta interfáz con python.
Mostraremos como poder desarrollar aplicaciones y juegos educativos, para la plataforma Sugar,
nos basaremos en actividades ya desarrolladas por los oradores.
Esta Charla está dirigida a programadores con conocimiento básico de Python o
a docentes que quieran conocer la plataforma Sugar, utilizada en las OLPC.
El contenido principal de la charla es el siguiente:
**Contaremos brevemente:**
* que es SUGAR. Filosofia y servicios provistos por la plataforma.
* Ejemplo de actividades ya provistas por la plataforma,basadas en python y gtk.
**Más en detalle como hacer “actividades**
* con python y pygame
* recorrido por la librería pygame
* como integrar la actividad a Sugar
* Como colaborar.
Docutils: herramientas para documentación
Roberto Alsina (Net Managers)
bio
25min Nivel Principiante (Viernes 15 11:30 Sala Anfiteatro 1)
Categorias: consola, documentation
Docutils es un sistema que toma archivos de texto legibles, con un markup muy ligero, y genera casi cualquier cosa. Desde sitios web hasta man pages, desde PDFs hasta LaTeX. En esta charla se verá una introducción a Restructured Text
, el markup que usa docutils, y algunas de las herramientas que lo soportan.
La idea es mostrar lo básico (secciones, markup inline, links, imágenes, tablas) y después ver herramientas que "comen" restructured text:
* rst2html
* rst2latex
* rst2pdf
* rst2s5
* sphinx
Entendiendo decoradores en Python
Juan José Conti (UTN - PyAr)
bio
Nacido en Carlos Pellegrini (Santa Fe) en 1984, Juan José Conti es Ingeniero en Sistemas de Información egresado de la Universidad Tecnológica Nacional, Facultad Regional Santa Fe. Durante los últimos 10 años ha participado de distintos grupos y eventos de Software Libre en Argentina. Utiliza Python desde el año 2005 y hoy lo elige como su lenguaje de cabecera en actividades laborales, académicas y recreativas.
25min Nivel Principiante (Viernes 15 12:15 Sala Anfiteatro 1)
Categorias: core, language
Los decoradores son una poderosa abstracción provista por el lenguaje. Pueden usarse para agregar comportamiento a funciones y clases sin modificar el código de su definición. Varios vienen incluidos en la librería estándar y muchos frameworks los utilizan por su poder de expresión. En esta charla vamos a entenderlos y a aprender a escribir los propios.
Introducción al concepto de decorador,
descripción y ejemplos de distintos tipos de decoradores, usos en
casos reales. La charla está basada en mi experiencia personal de
aprender decoradores en Python y en una serie de artículos que
publiqué en mi blog:
http://www.juanjoconti.com.ar/2008/07/11/decoradores-en-python-i/
http://www.juanjoconti.com.ar/2009/07/16/decoradores-en-python-ii/
http://www.juanjoconti.com.ar/2009/12/30/decoradores-en-python-iii/
Entendiendo Unicode
Facundo Batista (PyAr)
bio
25min Nivel Intermedio (Sábado 16 13:00 Sala Anfiteatro 1)
Categorias: education
Charla que explica qué es Unicode y otros conceptos relacionados para poder usar esta tecnología.
La charla muestra de forma teórica/práctica qué son Unicode, las planillas de códigos, los caracteres, y las codificaciones, entra en detalle en las distintas codificaciones, para saber cómo usarlas, ejemplifica las reglas de oro para utilizar Unicode en nuestros programa, y termina mostrando algunas funciones útiles para el manejo de esa tecnología.
La charla muestra de forma teórica/práctica qué son Unicode, las planillas de códigos, los caracteres, y las codificaciones, entra en detalle en las distintas codificaciones, para saber cómo usarlas, ejemplifica las reglas de oro para utilizar Unicode en nuestros programa, y termina mostrando algunas funciones útiles para el manejo de esa tecnología.
You can see the talk here:
http://tools.assembla.com/svn/homedevel/presents/unicode.odp
Extendiendo aplicaciones en C y C++ con Python
Angel Freire ()
bio
25min Nivel Intermedio (Viernes 15 11:30 Sala Anfiteatro 2)
Categorias: embedding, language
Extender aplicaciones desarrolladas en C o C++ utilizando la API que CPython provee.
Explorar la API, nombrar sus componentes y ver un ejemplo de una aplicación que extiende su funcionalidad mediante Python.
Finalmente nombrar opciones para embeber Python en otros lenguajes.
*Este es un bosquejo de la presentación tal cual la estoy preparando hoy en día, esta sujeta a cambios pero estos son menores dado que quiero mantener un enfoque muy practico de la misma.*
¿Que es la API de CPython?
--------------------------
Descripción de como Python aparte de proveer un interprete también provee una librería para interpretar el lenguaje y como esa librería puede ser embebida en otros programas.
¿Porque utilizar esta API?
--------------------------
Explicar porque agregaríamos scripting a una aplicación y porque Python es una muy buena opción.
¿Como esta conformada la API?
-----------------------------
Nombrar los componentes utilizados y su utilidad.
* Tipos de datos
* Funciones
* Macros
Practica
--------
* Ejemplo de una aplicación muy simple que procesa datos en C++.
* Que pasos son necesarios para agregarle soporte para scripting en Python.
* Ejemplo terminado de la aplicación original modificada para tener soporte de scripting en Python.
Notas sobre concurrencia
------------------------
GIL sigue existiendo aun cuando se usen multiples interpretes.
Mas información
---------------
* Documentación oficial de Python.
* Otras opciones (Jython para Java, IronPython para .NET, el soporte de la API de CPython por parte de PyPy).
import antigravity: 6 módulos útiles que probablemente no conocías
Roberto Alsina (Net Managers)
bio
25min Nivel Principiante (Sábado 16 14:30 Sala Salon Google)
Categorias: advocacy
En esta charla vamos a ver 6 módulos o bibliotecas usables desde python(todos software libre) que te permiten hacer cosas interesantes,divertidas o sorprendentes.
Una de las características que definen a Python es eso de "batteries included".
Es cierto, la biblioteca standard es grande, y tiene montones de cosas útiles,
pero hay un mundo aún más grande *fuera* de la stdlib.
En esta charla voy a tratar de elegir 6 módulos de PyPI o cualquier otro lado, todos
open source (8 módulos para la version de 40 minutos que muestro en PyDay ;-)
que sorprendan un poco.
Por ejemplo, hay un módulo para hacer OCR. Es literalmente tres líneas de código
para convertir una imagen a texto!
La idea es una charla muy ágil, que dé un pantallazo del módulo, que hace,
un ejemplo súper mínimo si se puede, y saltamos al siguiente, 4 minutos por módulo. De
esa manera el que la vea se queda con ganas de saber más, y de buscar más data.
No tengo definida la lista de módulos a mostrar todavía.
InfoPython - Midiendo el Valor de La información de Mass Media con Python
Juan B. Cabral (Pyar)
bio
Juan B Cabral es programador en Python desde 2007 y viene programando desde 1999 en C, Java y C#. Utiliza Python como herramienta principal de desarrollo en su jornada laboral, la cual consta de extraer y catalogar datos de internet para presentarlos en una plataforma online de desarrollo de marcas. Desarrollo en su tesis de grado un motor configurable de juegos online (similar al ogame) con django; también mantiene un montón de pequeños proyectos os con nuestro reptil favorito.
25min Nivel Intermedio (Sábado 16 10:00 Sala Anfiteatro 1)
Categorias: information, metrics, web
La medición de información desde un punto de vista social es necesario entre otras cosas para la construcción de marcas así como la creación de campanas de marketing. Infopython es una librería en pleno desarrollo que pretende facilitar el medir que tan importante es una fuente de información a través de servicios públicos para estos fines.
Se presenta de manera teórico-practica como inferir e interpretar relevancia de la información de dos mass media populares como son blogs y twitter a través de la librería Infopython La cual hace uso de la teoría de Agenda-Setting.
* Infopython
http://bitbucket.org/leliel12/infopython/ * Teoría de AgendaSetting
http://en.wikipedia.org/wiki/Agenda-setting_theory
InfoPython - Midiendo el Valor de La información de Mass Media con Python.
==========================================================================
Contenidos
----------
* Valor de la información desde el punto de vista de las ciencias de la información. (Teoría de La AgendaSetting))
* Extraer datos de exposición de Alexa (uso del api y su implementación en InfoPython)
* Extraer datos de exposición de Compete (uso del api y su implementación en InfoPython)
* Servicios de medición de Impacto PageRank.
* Inferir cantidad de personas a la cual fue expuesta una información a través de alexa y pagerank
* Exposición e impacto en twitter (followers, retweets)
* Repaso sobre otros servicios web de medición de información.
Una explicación informal de la charla.
--------------------------------------
Actualmente he estado trabajando dando soporte a la plataforma de online de la
empresa Infoxel S.A. La misma se utiliza para la formación de marcas. Así, por
ejemplo, un cliente nuestro como podría ser el caso de algún candidato político que
le interesa ver como sus decisiones influyen en su posible candidatura en el futuro
utiliza dicha plataforma para verificar como los medios lo presentan ya sea de manera
positiva o negativa.
Si bien hoy por hoy en argentina el medio formador de opinión sigue siendo la TV
por un margen muy grande, internet con los blogs y twitter dotaron a cualquier
ciudadano de un canal barato para influir en las demás personas. En definitiva,
mi trabajo, consiste en crear servicios que recolectando información de varias fuentes
pueda inferir que "Tan Formador de Opinión" es un medio online.
Consultando con profesionales de comunicación social me han puesto en contacto con teorias
que proponen de diferente manera el como catalogar la importancia de diferentes medios
De todas estas teorías la mas practica es la de AGENDA-SETTING que postula
que todo canal de información ejerce una influencia en la opinión publica dada
la cantidad de personas que que les llega el mensaje y cuanta importancia le dan
al mismo. Con esto en mente desarrolle los siguientes pasos en mi investigación constaron en
- Identificar que servicios online me brindan información de cantidad de publico y cuales de importancia.
- Crear un proceso común para la extracción de datos de estos servicios y de no existir
facilitar la inferencia a través de interpolación con valores conocidos.
A estos fragmentos de código los empaquete en único proyecto que llame infopython el cual aun continua creciendo con mi dia a dia de laburo
Por ejemplo es muy posiblemente las películas extrayendo los datos de taquilla y "rating" de imdb.
**Links**
* Infopython http://bitbucket.org/leliel12/infopython/
* Adplanner https://www.google.com/adplanner/
* Alexa http://www.alexa.com/
* PageRank http://es.wikipedia.org/wiki/PageRank
* Teoría de AgendaSetting http://en.wikipedia.org/wiki/Agenda-setting_theory
Introduccion a Pymaemo - Programa Python para tu celular
felipe lerena (Lipe)
bio
25min Nivel Intermedio (Viernes 15 13:00 Sala Salon Google)
Categorias: handheld, mobile, phone
Una charla sobre progamacion de python en dispositivos moviles con PyMaemo. Como empezar a programar para el telefono, como programar la GUI, como interceptar las llamadas del sistema y las diferencias con de pymaemo con Python y de Hildon con GTK.
Descripcion
-----------
La idea de esta charla es que el asistente tenga un pantallazo general de como es desarrollar
una aplicacion python para telefonos con PyMaemo. Si bien nadie va a salir siendo un experto
cuando salgan van a saber como buscar documentacion, que se puede y que no se puede hacer.
¿Que es PyMaemo?
----------------
PyMaemo es una version de Python para ciertos equipos Nokia que usan el sistema operativo Maemo
(un derivado de debian), que permite desarrollar aplicaicones usando librerias tales como
python-hildon y python-location y python-dbus disponibles en otras distribucione de linux.
PyMaemo nos permite utilizar un wrapper especifico de GTK+ llamado Hildon que tiene mejoras y
adiciones para poder genear interfases mas amigables con los dedos. (tamaño de los botones,
click con los dedos, sliders comodos para scrollear). Tambien estan disponibles los
controles de toda la vida de GTK+ y ademas ahora disponemos de un port de las librerias QT.
Las nuevas versiones (MeeGo) reemplazan a Symbian y son fruto de la union entre nokia e
intel (Moblin y Maemo) de tal manera que el mercado de aplicaciones crecera mucho por que no
solo nokia remplazara Symbian por Maemo sino que Meego correra en netbooks y las aplicacines
seran las mismas.
Existe un simulador para ejecutar las aplicaciones en desarrollo de tal manera que para
desarrollar para Maemo no es necesario tener un telefono caro, simplemente tener un debian o
derivado.
Los temas a tratar son:
-----------------------
* Introduccion a Maemo y PyMaemo?
* que puedo hacer con pymaemo?
* Diferencias con Python (librerias que faltan, como pueden remplazarse)
* Que es hildon? cuales son las diferencias con GTK? puedo usar GTK?
* Algunos ejemplos practicos.
* como desarrollo aplicaciones?
* como puedo programar para maemo sin tener un telefono caro?
Aclaracion
----------
si tuviera mas tiempo podria hablar de cosas ams avanzadas / copadas.
en caso de que les interese que la charla sea mas completa estoy dispuesto a ampliar el temario
Introducción a wxPython
Marcelo Fernández ()
bio
25min Nivel Principiante (Sábado 16 10:45 Sala Salon Google)
Categorias: gui, rad
wxPython es una biblioteca flexible y poderosa para hacer aplicaciones de escritorio multiplataforma. Esta charla pretende introducir al asistente en qué conceptos hay detrás de la programación de esta biblioteca, con sencillos ejemplos de código y explicando las ventajas de utilizar un diseñador gráfico como wxFormbuilder. Por último se muestran las capacidades de wxPython mediante su aplicación de demostración.
Introducción a wxPython
=======================
Indice
------
* GUIs. Bibliotecas disponibles en Python.
* Descripción general del proyecto wxWidgets.
* wxPython como proyecto dependiente de wxWidgets. Ventajas/Desventajas.
* Aplicación "Hola Mundo" en wxPython. Estructura básica de una aplicación (demo).
* Jerarquía básica de clases wxPython.
* Organización estática y dinámica de widgets.
* Ejemplo de sizers (demo).
* GUI y Eventos. Ejemplo de cómo conectar una función a un evento (demo).
* Repaso, mezclar lógica con código de vista no escala.
* Descripción, ventajas/desventajas del formato XRC para descripción de interfaces gráficas.
* Repaso rápido por los programas de diseño de GUIs que generan archivos XRC: Boa Constructor, wxGlade, XRCEd, wxFormBuilder (demo).
* Ejemplo simple de código de cómo cargar, referenciar widgets y conectar eventos a un formulario hecho en wxFormBuilder.
* Vistazo de la demo de wxPython (mención, muestra y explicación de todo lo que aporta). Está buena porque muestra **muchísimas** features de la biblioteca.
* Links y Final.
Si bien utilizo Ubuntu como SO, la idea es tener una máquina virtual con Windows y mostrar las demos al mismo tiempo en ambos SOs, para que se vea gráficamente que no hace falta recompilar ni cambiar código según la arquitectura.
IPython, la interactividad al poder
Martín Gaitán (nqnwebs.com)
bio
25min Nivel Principiante (Viernes 15 10:00 Sala Anfiteatro 1)
Categorias: consola, interactividad, interprete interactivo, practices, science, shell
El intérprete provisto con Python es un poco limitado para un uso interactivo extenso. IPython lo soluciona sorprendentemente. Daremos un recorrido por sus funcionalidades más importante: introspección, logging, historial, accesos al sistema, etc.
Una de las características más interesantes de Python es su naturaleza interactiva.
El modo interactivo permite probar ideas muy rápidamente sin el costo de crear archivos
(¡ni de tener que compilarlos!), única manera en la mayoría de los lenguajes de programación.
Tener la posibilidad de cargar datos, inspeccionarlos, procesarlos, visualizarlos,
guardarlos y hacerlo todo de una manera fluída y eficiente, puede significar una diferencia
importante en la productividad del día a día para un programador/investigador.
Sin embargo, el intérprete provisto con Python es limitado para un uso interactivo
extenso. **IPython** lo soluciona sorprendentemente.
La charla dará un paneo/demostración por las principales características de IPython orientado
a principiantes.
- Introspección: docstring, prototipo y código
- Autocompletado
- Manejo del historial
- Principales funciones %magicas
- Modo threading para GUI's
- Modo Pylab
- ...
La guerra de los sistemas de tipos y Python
Daniel F. Moisset (Machinalis)
bio
25min Nivel Intermedio (Viernes 15 15:15 Sala Anfiteatro 1)
Categorias: advocacy, core, language
En la comunidad de desarrollo de software existe una acalorada discusión entre aquellos que prefieren lenguajes con un tipado relajado y flexible (Como los de Python, Ruby, LISP o Smalltalk) y aquellos que prefieren un sistema de tipos predecible y verificable (como los de Java, C# o Haskell). La charla propone exponer las ideas interesantes de ambos lados de la discusión, y trata de deshacer los mitos y prejuicios comunes. Si sos un desarrollador Java que cree que los programas en Python van a fallar caoticamente por no tener chequeo de tipos, puede que encuentres algunas sorpresas interesantes en esta charla. Si sos un desarrollador Python que asocia el tipado estatico a la verbosidad y la rigidez, puede que encuentres algunas cosas para aprender del campo del tipado estático que te sirvan para tu programación en Python.
La charla toma ideas del artículo "What To Know Before Debating Type Systems" de Chris
Smith y de Types à la Chart (http://james-iry.blogspot.com/2010/05/types-la-chart.html), pero
con más énfasis en las tecnicas asociadas a los lenguajes con tipado dinámico (en
particular Python).
Hace un paseo por la terminología confusa (distintas ideas de lo que es un "tipo"),
dinámico vs estático, fuerte vs débil, explícito vs implícito, etc; acompañados por
ejemplos idiomáticos en distintos lenguajes (Python, Lisp, C, Java, Go, entre otros),
tratando de encontrar las situaciones donde se destaca cada forma de hacer las cosas.
Por último, se presentan algunas técnicas (a modo de ejemplo más que de tutorial),
que permiten usar las ideas de los distintos modelos en lenguajes con un modelo de datos
diferente.
Mini introduccion a Django
Juan Pedro Fisanotti ()
bio
25min Nivel Principiante (Viernes 15 10:45 Sala Salon Google)
Categorias: django
Breve introducción al framework más conocido de desarrollo web con Python. Nociones básicas, y ejemplo rápido.
Por si nadie se ofreció todavía a dar la intro a Django, propongo la mía.
Sería la charla que di en el PyDay Rafaela 2010, pero recortada.
Pueden ver la original acá: http://pydayrafaela.blip.tv/file/3646161/
El guión es más o menos el siguiente:
* Qué es Django?
* Estructura de un sitio con Django, MVC
* Herramientas y utilidades que incluye
* DjangoAdmin
* Funcionamiento general (url->vista[modelos]->template)
* Demo
* Dónde seguir aprendiendo
La charla original era de 45 minutos, pero explicaba con más detalle algunas cosas.
Creo que se puede dar bien en 20 minutos, hablando rápido como Roberto :)
Mythbusters: Tests
Natalia Beatriz Bidart ()
bio
25min Nivel Principiante (Sábado 16 13:00 Sala Salon Google)
Categorias: agile, practices, softwareengineering, testing, tools, twisted, unittest
Todos conocemos y aceptamos la vital importancia de escribir tests para nuestras aplicaciones. Pero no todos efectivamente escribimos esas test suites tan cruciales para proveer cierto nivel de corrección de nuestro software.
Esta charla apunta a que el público conozca qué implica hacer tests en Python y pierda el miedo de escribirlos; que podamos levantar esas barreras que nos frenan a plasmar el mágico "import unittest", y que, idealmente, veamos cómo el testing es un camino de ida.
La charla cubrirá aspectos de amplio espectro en relación a escribir tests.
Posible outline de las slides:
* Unit tests, qué, cómo y cuándo
* unittest y twisted.trial.unittest
* Pointers para arrancar y dar respuestas al conocido "no sé cómo empezar"
* Mocks y monkeypatching
* Test Driven Development
* Tests automatizados para interfaces gráficas usando pygtk
Open Source Manufacturing
Lucio Torre ()
bio
25min Nivel Principiante (Viernes 15 13:00 Sala Anfiteatro 2)
Categorias: advocacy, community, industria, practices
Un paseo varios temas y el estado del arte en el proceso de fabricacion open source. Las herramientas CAD y CAM para la operacion de maquinas.
Open Source Manufacturing
=========================
Un paseo sobre el state-of-the-art en open source y manufacturing. Incluye:
- Herramientas CAD/CAM open source
- Open source hardware
- Python como lingua franca
- Desktop Manufacturing
- apt-get para hardware
- etc
El objetivo es mas que nada presentar las actuales comunidades y movimientos alrededor del tema.
OpenERP, sistema de gestión ERP y CRM desarrollado en Python
Sebastián Marró (Open UnIT)
bio
25min Nivel Principiante (Sábado 16 12:15 Sala Anfiteatro 2)
Categorias: business, crm, erp, rad
En esta charla les mostraremos que es y para que sirve el sistema de gestión empresarial OpenERP, su historia, sus características tecnológicas y su comunidad.
OpenERP es un completo sistema de gestión de empresas (ERP) de licencia libre. Incluye un entorno modular de programación/adaptación rápida de aplicaciones (OpenObject). Está desarrollado en Python y trabaja sobre una base de datos PostgreSQL.
Luego de 2 años de trabajar con OpenERP (antes Tiny ERP), nos sentimos con ganas de compartir
nuestro conocimiento de esta herramienta con la comunidad Argentina de Python y sumar gente
a este proyecto al que consideramos el mejor ERP Open Source
Para más detalles del software visitar http://openerp.com/
Outline
- Presentación (0.30')
- Contenidos (0.30')
- Que es un software ERP. (1.00')
- Que es OpenERP (2.00')
- Historia (1.00')
- Tecnología / Arquitectura 3 capas (1.30')
- Tecnología / MVC (1.30')
- Flujos, Asistentes, Informes, Traducciones (2.00')
- Importación/Exportación, Comunicación con otras aplicaciones (1.30')
- Editor de Acciones, Editor de Vistas, Editor de Flujos (2.00')
- Demostración de instalación de un módulo (6.00')
- Comunidad (2.00')
- Enlaces (1.00')
- Preguntas (2.30')
Doy mi permiso a grabar y publicar mi presentación en PyCon para distribución libre
Gracias
Sebastián Marró
OpenProximity: Sistema de Proximity Marketing por Bluetooth usando Python
Manuel Francisco Naranjo (AIRcable.net)
bio
Manuel es estudiante de ingenería electrónica, programa desdé temprana edad y hace un par de años que trabaja para Wireless Cables Inc en diseño de software y hardware embebido para dispositivos Bluetooth. En la empresa ha realizado diversas tareas como ser: programación de drivers para Linux, diseño y mantenimiento del software embebido que corre en los micro-controladores de la empresa y el proyecto más grande al día de hoy que es un sistema de marketing de proximidad por Bluetooth implementado en Python utilizando tecnologías como Django y RPyC.
25min Nivel Intermedio (Sábado 16 10:45 Sala Anfiteatro 1)
Categorias: business, case study, cms, community
`OpenProximity <
http://www.openproximity.org>`
OpenProximity es un sistema de Marketing de Proximidad Bluetooth OpenSource implementado en Python, para el mismo se han utilizado distintas tecnologías como ser Django, RPyC y DBUS. El sistema permite ser extendido via plugins los cuales son faciles de programar.
El Marketing de Proximidad es una forma revolucionaría de enviar publicidad a dispositivos mobiles vía Bluetooth. Sus posibilidades son infinitas y aplicable en otras áreas hasta ser estudios demográficos.
Doy mi permiso a grabar y publicar mi presentación en PyCon para distribución libre
El objetivo de la presentación es mostrar un caso de exito, mostrar como integrando varias tecnologías se puede lograr algo útil.
Desde la arquitectura del programa, pasando por una breve descripción de los bloques funcionales, hasta cómo distribuirlo y conseguir ganancias con ello.
* Pequeño diagrama dónde se muestran los bloques constitutivos.
* Django: Interfaz de usuario y acceso a base de datos.
* Rpyc: comunicación asincrónica de procesos.
* Dbus y BlueZ: descripción de todos los pasos necesarios para envíar un archivo a un celular, y como esto fue resuelto.
* servidor rpc y clientes: como se orquesta el acceso a base de datos, se tienen en cuenta las preferencias del usuario y se interface con el stack BlueZ.
* distribución del fuente: creación de paquetes de código con todos las dependencias.
* distribución de binarios: debianización de paquetes y uso de los PPA de canonical.
* ventas: cómo se monetiza el proyecto.
Durante la presentación se piensa mostrar el proyecto funcionando, posiblemente corriendo una pequeña campaña de marketing dónde se vayan enviando las diapositivas a los asistentes.
Plone 4
Emanuel Sartor (Menttes)
bio
25min Nivel Principiante (Viernes 15 11:30 Sala Salon Google)
Categorias: cms, plone, web, zope
Plone es un sistema de gestión de contenido web basado en Zope y programado en Python. La versión 4.0 de Plone incluye varias mejoras y nuevas funcionalidades largamente esperadas por sus usuarios y desarrolladores. En esta charla haremos un recorrido por las características de Plone, concentrándonos en las novedades de la versión 4.0.
Introducción
============
`Plone `_ es un flexible y poderoso sistema de gestión de contenido web desarrollado sobre Zope, un framework web escrito en Python. Por su fácil instalación y alto nivel de usabilidad es a menudo una de las opciones predilectas de usuarios no técnicos que desean gestionar contenido a través de la web. A su vez Plone es utilizado como una plataforma para desarrollar aplicaciones web centradas en contenido. Éstas caractéristicas hacen de Plone un alternativa muy atractiva tanto para gestores de contenido como para desarrolladores de aplicaciones.
Dos de las principales características de Plone son, por un lado las facilidades que provee para definir distintos niveles de acceso al contenido, ya sea para consulta o edición; y por otro, la flexbilidad para adaptarse a un flujo de trabajo específico. Gracias a esto, distintos tipos de organizaciones como ONGs, PyMEs, grandes empresas, organizaciones educativas o gubernamentales, lo utilizan como su herramienta principal de colaboración, con una instalación por defecto o modificándolo para adecuarlo a sus necesidades.
La charla
=========
En esta charla haremos un breve recorrido por las características de Plone como gestor de contenido y como herramienta de desarrollo de aplicaciones. Luego nos concentraremos en las novedades de Plone 4.0, tema central de la charla.
El dicatado estará a cargo de Emanuel Sartor y Marcelo Huens.
Temario
=======
* Características de Plone como gestor de contenido y como herramienta de desarrollo de aplicaciones
* Novedades en Plone 4.0
Programando Python en Android
Matías Bordese (PyAr)
bio
Matías es Licenciado en Ciencias de la Computación y desarrolla en Python hace varios años ya, por trabajo y por placer. Siempre interesado en contribuir y participar de la comunidad y los proyectos relacionados.
25min Nivel Principiante (Viernes 15 14:30 Sala Salon Google)
Categorias: handheld, mobile, phone
A través de Scripting Layer for Android podemos usar lenguajes de scripting (en particular, Python) en un dispositivo Android, ya sea editar y ejecutar scripts o usar el intérprete interactivo, permitiendo también interactuar con una buena parte de la API del aparato.
La charla recorrerá los siguientes puntos:
- Presentación de Scripting Layer for Android (SL4A) [1]
- Presentación de la API
- Posibilidades y limitaciones
- Ejemplos y futuro
[1] http://code.google.com/p/android-scripting/
PyAfipWs: facilitando, extendiendo y liberando los Servicios Web de AFIP (Factura Electrónica y otros)
Mariano Reingart (Sistemas Ágiles)
bio
25min Nivel Principiante (Sábado 16 13:00 Sala Anfiteatro 2)
Categorias: advocacy, case study, webservices
Objetivos de la charla: * Presentar el proyecto PyAfipWs (interfaz, herramientas y aplicativos para los webservices de AFIP), el desarrollo/mejora de bibliotecas relacionadas (simplificar SOAP/XML/PDF con PySimpleSOAP, PyFPDF, etc.) y la forma de extender fácilmente aplicaciones en lenguajes legados. * Novedades y tendencias: Factura Electrónica Nacional, Exportación, Bienes de Capital - Bono Fiscal Electrónico, Código de Trazabilidad de Granos - Carta de Porte, Depositario Fiel -Aduana-, Remito electrónico, etc. * Comentar sobre el proyecto de software libre y su desarrollo comercial: temas resueltos, recomendaciones y consejos. * Mostrar PyRece como posibilidad concreta de desarrollarlo con Python un Sistema Integrado de APlicaciones (SIAP) de software libre.
Más Información:
http://www.pyafipws.com.ar
Características:
----------------
* Pythonicidad: esta hecho 100% python y tuvimos que desarrollar cliente soap y manejo de xml propio, ya que los que existen no sirven (tema recurrente en la lista)
* Advocacy: compara contra otros lenguajes (java, .net, php) y demuestra las ventajas de python, incluso fue la primera implementación del nuevo web service, aún antes que la afip publicara ejemplos oficiales.
* Comunidad: es un proyecto de software libre a pulmón, y podría derivar en otros trabajos, como el Siap Libre, aparte de desarrollar herramientas para webservices, xml, pdf, etc.
* Caso de éxito/estudio: caso concreto de como vivir del software libre, dar soporte, problemas y dificultades afrontadas, consejos varios, etc.
* Público: es un tema de interés general que con cada webservice tiende a contemplar más sujetos alcanzado y puede acercar programadores de otros lenguajes (también se puede usar desde vb/fox, etc.) y usuarios finales o desarrolladores interesados(aplicativo)
Temario:
--------
1. Introducción a Factura Electrónica. Sistemas RECE, RCEL: Aplicativo SIAP, Servicios Web, "Comprobantes en Línea" y "Facturador Plus".
2. Introducción a los Servicios Web, SOAP, XML, encriptación (SSL) y criptografía (CMS). Uso de herramientas libres.
3. Implementación en Python (Software Libre). Ventajas y Desventajas. Comparación con los ejemplos oficiales (PHP, Java y .NET).
4. Breve Ejemplo de Uso. Autenticación. Autorización. Obtención de CAE: (Factura Nacional, Bono Fiscal Electrónico - Bienes de Capital, Exportación, etc.).
5. Problemas resueltos: desarrollos propios de Cliente Soap, Manejo de XML y Generación de PDF)
6. Aplicativo libre y gratuito PyRece como caso concreto de un posible prototipo de SIAP Libre
7. Consideraciones generales y nuestras recomendaciones sobre como gestionar un proyecto comercial de Software Libre
Mas info:
* Sitio principal: http://www.pyafipws.com.ar
* Proyecto: http://code.google.com/p/pyafipws
* Grupo de noticias: http://groups.google.com/group/pyafipws
* Libreria SOAP/XML: http://code.google.com/p/pysimplesoap
* Libreria PDF: http://code.google.com/p/pyfpdf
Pycasa inside: PyGTK on Glade
Natalia Beatriz Bidart ()
bio
25min Nivel Intermedio (Sábado 16 10:00 Sala Salon Google)
Categorias: desktop, gui, photos, pygtk
Pycasa[1] es una aplicación de escritorio que permite administrar álbumes de fotos Picasa[2]. Está escrita en Python[3] y utiliza PyGTK[4] y Glade[5] para la construcción de su GUI. En esta charla mostraremos cómo se construye una interfaz gráfica GTK[6] usando Glade, y cómo se usa PyGTK para darle vida a esa interfaz mediante Python. Nos centraremos en el manejo de tree/grid stores, haciendo hincapié en la versatilidad del patrón MVC; en visibilidad y sensibilidad de widgets, y en uso de pixbufs para mostrar imágenes.
[1]
http://pycasa.com.ar [2]
http://picasa.google.com [3]
http://python.org [4]
http://www.pygtk.org/ [5]
http://glade.gnome.org/ [6]
http://www.gtk.org/
La charla estará basada en la charla original "PyGTK usando Glade",
pero esta vez los contenidos serán un poco más avanzados, por lo cual se asumirá
algo de conocimiento de Glade, PyGTK y Python.
Se contará con una interfaz a medio hacer basada en Pycasa, y se la completará
durante la charla para mostrar cómo utilizar widgets "interesantes" como lo son
los tree/grid stores, imágenes compuestas usando pixbufs, y cómo jugar con la
visibilidad y sensibilidad de los widgets en general.
PyCodin - Instrumentando código sin dolor
Adrian Manrique (core security)
bio
25min Nivel Intermedio (Sábado 16 14:30 Sala Anfiteatro 2)
Categorias: instrumentation, security, testing
PyCodin es una librería open source para instrumentar código de bajo nivel para diversas arquitecturas (i386/SPARC/PPC) desde Python. Surgió con la necesidad de crear un ambiente de testing para código de bajo nivel que explota vulnerabilidades (shellcode). La librería provee un Front-end de un CPU virtual, permitiendo manipular un espacio de memoria virtualizada y creando diferentes escenarios, proveyendo al desarrollador de herramientas para controlar la ejecución. PyCodin también permite inspeccionar y/o modificar el contexto de ejecución de un programa. Presentaremos una primera versión de la librería que utliza Qemu como back-end de virtualización.
Bosquejo
========
.. contents:: :local:
Introducción
------------
* Por qué queremos instrumentar la ejecución de código en una máquina virtual? (Motivación)
* Qué es PyCodin?
* Qué es un shellcode?
* Virtualización: Distintos tipos e implementaciones
* Breve descripción de Qemu
PyCodin
-------
* Funcionalidades
* Arquitectura
* Diseño de la librería
* Comunicación con el virtualizador
* Instrumentacion del procesador
* Hooks
* Memoria virtualizada
Traceando un shellcode
----------------------
* Presentación del código
* Ejecución
Traceando un programa
---------------------
* Inyectando un intérprete de Python en un proceso
* Configurando el entorno de instrumentación
* Resumiendo la ejecución
Conclusiones
------------
* Trabajo futuro
* Preguntas
PyS60 + Bluetooth + Cámara + Motores = AIRbot!
Manuel Francisco Naranjo (AIRcable.net)
bio
Manuel es estudiante de ingenería electrónica, programa desdé temprana edad y hace un par de años que trabaja para Wireless Cables Inc en diseño de software y hardware embebido para dispositivos Bluetooth. En la empresa ha realizado diversas tareas como ser: programación de drivers para Linux, diseño y mantenimiento del software embebido que corre en los micro-controladores de la empresa y el proyecto más grande al día de hoy que es un sistema de marketing de proximidad por Bluetooth implementado en Python utilizando tecnologías como Django y RPyC.
25min Nivel Principiante (Viernes 15 15:15 Sala Salon Google)
Categorias: academic, case study, embedding, gui, handheld, mobile, pys60
Durante la ESC (Embedded Systems Conference) de 2010 presentamos a AIRbot un amigable robot controlado por Bluetooth desdé un celular con PyS60 el cual tiene una cámara web al frente y permite ver hacía dónde se dirige. El código original fue escrito en sólo 2 días (presentado en ESC). Luego el código fue optimizado utilizando extensiones binarias llevandolo a lo que eso hoy en día.
http://wiki.opensensors.org/airbot
Durante la presentación se va a mostrar a AIRbot en acción y voy a presentar los incovenientes en su desarrollo.
Diapositivas:
* Introducción de la arquitectura de hardware de AIRbot.
* Breve introducción a PyS60.
* Protocolo de comunicaciones de control, como utilizar pequeños comandos para hacer grandes cosas.
* Protocolo de la cámara web, como encontrar un jpeg en un stream de video mjpeg.
* GUI: presentación de la sensilla interfaz de AIRbot.
* Extendiendo PyS60 con C y Carbide: como optimizar la velocidad del widget que muestra la imágen, modificación de otras librerías.
* Empaquetando en sis para celulares Symbian.
Python + PosgreSQL, la pareja perfecta (¿sí SQL?)
Mariano Reingart (Sistemas Ágiles)
bio
25min Nivel Principiante (Viernes 15 12:15 Sala Salon Google)
Categorias: advocacy, databases, postgresql
Exploraremos porqué las bases de datos relacionales siguen siendo una buena idea, y porqué PostgreSQL en particular es una herramienta que se lleva bien con Python para estas tareas, gracias a su extensibilidad, flexibilidad y características avanzadas objeto-relacionales.
Recorreremos la DbApi, conectores, SQL y mapeadores Objetos-Relacional (ORM) y capas de abstracción de datos (DAL).
Plantearemos algunos problemas que si pueden presentarse actualmente e intentaremos mostrar posibles soluciones.
Entre ellos: ejemplos de alta disponibilidad, escalabilidad y replicación con PyReplica.
Temario
=======
¿Que es una base de datos?
--------------------------
* Redundancia Mínima
* Independencia Física y Lógica
* Lenguajes de consulta
* ACID y BASE
* La teoría relacional y NoSQL
PostgreSQL
----------
* Modelo Objeto-Relacional
* Estandar SQL ANSI 2008
* Extensible (tipos de datos, funciones y operadores)
* Polimorfismo y herencia
* PlPython: Lenguaje procedural en Python!
* Alta disponibilidad, escalabilidad y replicación: ejemplos con PyReplica
DbApi: ¿Interfaz estándar?
--------------------------
* Estructura básica DbAPI, conectores, etc.
* Dialectos de SQL
* Diferencias entre bases de datos: rowid/oid, autonuméricos, parámetros, cursores, etc.
* Transacciones, sentencias preparadas, cursores del servidor, esquema SQL (reflexión)
* DbApi3...
* Conectores y Soluciones para PostgreSQL.
* Tips en general
Bibliotecas de acceso a datos:
------------------------------
* ORM: SqlAlchemy, Django, SQLObject
* DAL: web2py
* Comparaciones, ventajas y desventajas
Python como herramienta de cálculo numérico y procesamiento en tiempo real
Santiago Piccinini (UBA/Exxer)
bio
25min Nivel Principiante (Viernes 15 15:15 Sala Anfiteatro 2)
Categorias: academic, advocacy, case study, education, science
Mediante 2 ejemplos mostramos el uso que le damos a numpy y scipy y su potencia y facilidad de uso para aplicaciones científicas, académicas y profesionales. Además una breve introducción a estas bibliotecas para que se puedan entender. El objetvio no es enseñar a usarlas, porque no sabemos, sino mostrar por qué está bueno aprenderlas.
Consideraciones:
================
* Tipo de público: Desarrolladores, investigadores y estudiantes de ciencias.
* Conocimientos previos: Básico conocimiento de cálculo numérico y álgebra lineal.
Intro: (NumPy, SciPy, Matplotlib) (3-5')
========================================
* Qué es? Dónde se usa?
* Contar sobre las conferencias Scipy20XX, EuroScipy y el proyecto www.fossee.in
* Sentirte seguro de que es lo que hay que usar (robustez, comunidad, etc).
Ejemplos
========
Básico (introducción a numpy en el interprete) (3')
---------------------------------------------------
* Creando y usando array y matrix(?)
* Documentación interprete
Optimización (6')
-----------------
(Dada una familia de funciones encontrar la que mejor se ajusta a unas
mediciones mediante "cuadrados mínimos")
* Cómo obtuve los datos (breve explicación de un experimento en el que se tomen varias mediciones). Lectura de datos de archivo de texto. (1')
* Slicing de array por columnas
* Cómo definir la familia de funciones, y usar la función de optimización con scipy. (3')
* Cómo mostrar los resultados con un gráfico hecho con matplotlib(con labels y legend (latexeado), etc) (2')
Procesamiento y graficado en tiempo real (8')
---------------------------------------------
(stream_grapher + audio)
* Qué es stream_grapher? (http://bitbucket.org/san/stream_grapher) Un graficador para señales de "tiempo real" provenientes del puerto seri, USB, network, audio, archivos o generadas "programaticamente". Objetivos: Ayudar en el prototipado y desarrollo de hardware, filtros digitales y analógicos para medicina, audio, robotica, etc. (2')
* Cómo obtengo el audio de la placa de sonido (pyjack: muy por arriba, se usan arrays de numpy para mapear el buffer, etc) (1')
* Mostrar (y hacer oir) stream_grapher en funcionamiento: corrida con señal de audio limpia y luego filtrada (pasabajos, etc) mostrando funcion de procesamiento. (5')
Mostrar perlitas de la web o nuestras
-------------------------------------
* Eigenfaces (http://www.clear.rice.edu/elec301/Projects99/faces/)
* otras que nos gusten antes de la charla
Python más rápido que C
Facundo Batista (PyAr)
bio
25min Nivel Intermedio (Viernes 15 14:30 Sala Anfiteatro 1)
Categorias: case study
Comparación y análisis de velocidades entre los dos lenguajes, con consejos y conclusiones relevantes.
Esta charla compara las velocidades de los distintos lenguajes (pero sin perder de vista otros factores involucrados en el desarrollo), mostrando distintas mediciones hechas con códigos ejemplo, analizando los resultados y explicándolos de manera que el asistente termine una idea de por qué es rápido o lento.
Esta charla compara las velocidades de los distintos lenguajes (pero sin perder de vista otros factores involucrados en el desarrollo), mostrando distintas mediciones hechas con códigos ejemplo, analizando los resultados y explicándolos de manera que el asistente termine una idea de por qué es rápido o lento.
Pueden ver la charla acá:
http://tools.assembla.com/svn/homedevel/presents/pyrapidc/pyrapidc.odp
Reusando componentes Zope fuera de Zope (y la web)
Roberto Allende (Plone Foundation, Menttes)
bio
Gerente Comercial en Menttes SRL, Miembro y Director de Plone Foundation. Miembro observador de Free Software Foundation Latin America. Realiza actividades de promoción y divulgación de Plone, Python y Software Libre. Contribuye en diversos proyectos incluyendo Plone, Plone Cono Sur, PloneGov, Fundación Vía Libre, entre otros. Ha participado como orador en múltiples conferencias internacionales, incluyendo PyCon (Chicago, 2009), Latinoware (Foz de Iguazu 2008, 2009), Jornadas Regionales de Software Libre (Santiago de Chile 2009, Córdoba 2007, Rosario 2006), FISL (Porto Alegre 2008, 2007), PloneConf (Napoli, 2007), etc. Coordinador de eventos como 7as Jornadas Regionales de Software Libre, World Plone Day 2008, 2009 y 2010 entre otros.
25min Nivel Intermedio (Sábado 16 10:00 Sala Anfiteatro 2)
Categorias: databases, network, softwareengineering, twisted, zope
La charla propone hacer un recorrido y revisión de componentes y conceptos empleados en Zope que puedan ser empleados de forma independiente en otras aplicaciones, incluso que no sean web.
El desarrollo orientado a componentes enfatiza descomposición de sistemas ya conformados en componentes funcionales o lógicos con interfaces bien definidas usadas para la comunicación entre componentes. Hace mas de 10 años, ZOPE propone este enfoque para desarrollar con Python aplicaciones para la web, sin embargo. En la charla se hará una revisión de conceptos y componentes que pueden usarse en otras aplicaciones independientemente de Zope incluso entornos que no sean web.
Siendo un mejor pitonista
Mariano Guerra (IBM)
bio
25min Nivel Principiante (Sábado 16 15:15 Sala Anfiteatro 1)
Categorias: language, practices
Un repaso por las buenas practicas, herramientas recomendadas y consejos para ser un mejor programador python uno mismo y estar en armonia con nuestros compañeros pitonistas
La charla presentara de forma resumida las buenas practicas en el desarrollo del lenguaje, como ser:
* coding guidelines
* estructuración de código y proyectos
* uso de herramientas externas para revisión de buenas practicas
* documentación y herramientas para generar documentación
Estructura:
* Que son las buenas practicas?
* Por que son útiles las buenas practicas?
* Buenas practicas codificando
+ Formato del código (PEP8)
+ Estructura de módulos y proyectos
* Herramientas que nos facilitan el trabajo
+ pep8.py: chequeo de lineamientos de código
+ Pylint, PyChecker, PyFlakes: analizadores de código
* Sistemas de control de versiones
+ Que son?
+ Para que sirven?
+ Repaso por alternativas
- SVN
- Git
- Bazaar
- Mercurial
- Otros (Darcs, Fossil)
+ Porque usar uno incluso cuando es un proyecto unipersonal
* Sitios que hostean proyectos
+ repaso por alternativas pros y contras
* Documentando nuestro código
+ Practicas de documentación (PEP 257)
+ Herramientas
- Restructured Text
- Sphinx
- rst2*
Los temas a dejar afuera si no hay tiempo son los SCM y sitios de hosting de proyectos
Supervisión y monitoreo industrial con Python
Joaquín Sorianello (Gcoop)
bio
25min Nivel Intermedio (Viernes 15 14:30 Sala Anfiteatro 2)
Categorias: industria
Presentación de las diferentes alternativas para comunicarnos con dispositivos industriales utilizando python y en particular: pySerial, python-opc y modbusTK y criterios basicos a tener en cuenta a la hora de desarrollar.
Protocolos
===========
Presentare, básicamente los protocolos y soportes físicos mas utilizados en ambientes industriales:
- Rs-485
- Rs-232
- Ethernet
Pyserial:
=========
- Ejemplos de conexiones básicas a dispositivos que tengan comunicación serial. Es decir, todos aquellos que lo utilizan como soporte para la comunicación, utilizando sus propios protocolos.
- Ejemplo de comunicación serial con balanza.
ModbusTk:
=========
- Presentación del protocolo modbus y sus ventajas al momento de comunicarnos.
- Ejemplos de Clientes y Servidores Modbus.
- Diferencias ente ModbusRTU y Modbus TCP/IP
Python OPC:
===========
- Conceptos Básicos
- Ejemplo de comunicación
- Ventajas y desventajas de este modelo.
Criterios de Implementación
===========================
Ejemplos de implementaciones.
Taint Mode en Python
Juan José Conti (UTN - PyAr)
bio
Nacido en Carlos Pellegrini (Santa Fe) en 1984, Juan José Conti es Ingeniero en Sistemas de Información egresado de la Universidad Tecnológica Nacional, Facultad Regional Santa Fe. Durante los últimos 10 años ha participado de distintos grupos y eventos de Software Libre en Argentina. Utiliza Python desde el año 2005 y hoy lo elige como su lenguaje de cabecera en actividades laborales, académicas y recreativas.
25min Nivel Intermedio (Viernes 15 10:45 Sala Anfiteatro 2)
Categorias: academic, security
La mayoría de los atacas que sufren las aplicaciones web hoy en día, como SQL Injection y XSS, se deben a que las entradas de los usuarios no son apropiadamente validadas. En esta charla, se presenta una librería de Taint Analysis en Python que permite ayudar a los programadores, en a detectar estos problemas mientras escriben su aplicación.
Inyecciones de SQL in XSS son algunos de los ataques más comunes hoy en día. Estos ataques suelen
ser el resultado de no validar apropiadamente datos enviados por el usuario. Para ayudar
a los programadores a detectar estos problemas, algunos lenguajes como Perl y Ruby implementan
Taint Analysis. Este análisis puede implementarse de forma estática o dinámica. Las
implementaciones dinámicas suelen ser monitores dentro de los intérpretes, pero esto
requiere su modificación y esto esto no es fácil.
Se presenta una librería para implementar Taint Mode en Python mediante una librería, con lo
que se evita modificar el intérprete.
Conceptos como clases, decoradores y tipado dinámico hacen de Python un lenguaje ideal para
lograr una implementación en pocas líneas de código con características más avanzadas que los
enfoques tradicionales.
Una experiencia con Python en Educación Universitaria
Daniel F. Moisset (Machinalis)
bio
25min Nivel Principiante (Viernes 15 12:15 Sala Anfiteatro 2)
Categorias: education
Durante el primer cuatrimestre de 2010, el taller de la materia de Redes y Sist. Distribuidos de la carrera de Ciencias de Computación en la Univ. Nac. de Córdoba comenzó a dictarse con Python. Esta charla describe algunos aspectos notables de mi experiencia como docente, usando Python en un curso cuyo foco no es enseñar el lenguaje, y con alumnos con 0 experiencia previa en Python y lenguajes dinámicos.
El foco de la charla es compartir la experiencia con otros docentes que estan tratando de dictar un curso que requiera programación,
pero cuyo objetivo no sea enseñar a programar. Se tratar de presentar cuales fueron los aspectos de Python más faciles de adoptar y
más provechosos para los alumnos, como también los conceptos que fueron más difícles de aprender/adquirir.
El objetivo final de la charla es qu otros docentes dictando cursos universitarios con
Python a alumnos que tienen experiencia con otros lenguajes sepan donde enfocar sus
esfuerzos. La charla muestra que muchos conceptos "novedosos" de python (en relacion
al conocimiento previo de los alumnos) fueron adquiridos casi sin esfuerzo docente,
por ejemplo:
* Programacion orientada a objetos
* Bloques basados por indentacion
* Tipado dinamico, duck typing
Mientras que otros conceptos de python requirieron mucho mas esfuerzo por ejemplo:
* Manejo de excepciones
* Métodos y herramientas de debugging
* Módulos
Además se menciona algunos elementos del feedback de los estudiantes del valor percibido
desde ellos por haber empezado a usar Python (en comparacion a los objetivos de los
docentes).
Usando virtualenv
Tomas Zulberti (Popego)
bio
25min Nivel Principiante (Sábado 16 10:45 Sala Anfiteatro 2)
Categorias: packaging, practices, virtualenv
Virtualenv permite crear un entorno aislado de python. Es usado para instalar paquetes sin modificar el python instalado en el sistema, sino que solo modifica el entorno. Es decir, permite instalar diferentes versiones de un mismo paquete en diferentes versiones de python, y sin tener que ser administrador.
* ¿Qué pasa cuando la librería core de python no alcanza? Introducción a easy_install
* ¿En donde busco librerías? Introducción a PyPi
* ¿Que pasa cuando la librería no es compatible para atrás? Ejemplos: wxpython, django
* ¿Qué hacer para testear nuestro programa en diferentes versiones de python?
* ¿Como se usa el virtualenv?
Web2py: desarrollo web 2.0 rápido y pythónico
Mariano Reingart (Sistemas Ágiles)
bio
25min Nivel Principiante (Viernes 15 10:00 Sala Salon Google)
Categorias: web, web2py
Esta charla busca presentar a los asistentes la herramienta de desarrollo web Web2Py, de muy fácil uso y aprendizaje. A su vez, es completamente funcional para desarrollar aplicaciones web 2.0 de manera totalmente interactiva (diseño y programación por el navegador web!). Incluye las últimas tecnologías de una forma simple y clara (javascript, ajax, css, etc.).
Recorreremos las características principales, comparación con otras soluciones, herramientas relacionadas, ventajas y recomendaciones, mostrando una aplicación real a modo de ejemplo.
Temario:
========
Introducción a web2py
---------------------
* Interfaz administrativa web (aplicaciones, código, html, archivos, módulos, shell, doctests, plugins, etc.)
* Interfaz web a la base de datos -appadmin- (altas, bajas y modificaciones; consultas)
* Análisis de aplicación real de ejemplo: generación de boletas de pago
Similitudes y diferencias
-------------------------
* con PHP
* con Django
* Pythonicidad (PEP20): bello, explicito, simple, plano, disperso, legible, reglas claras, práctico
* Mitos: cli, ide, orm, url, exec, test, flexibilidad
Herramientas relacionadas
-------------------------
* para diseño del modelo (DER)
* para diseño web HTML/CSS
Funcionalidades incorporadas (pilas incluídas!)
-----------------------------------------------
* Interactividad con Ajax (javascript)
* Recorrida por los ejemplos interactivos
Ventajas y Recomendaciones
--------------------------
* Desarrollo ágil rápido y seguro
* Facilidad de aprendizaje para Educación
* Rendimiento y optimización
* Desmitificando web2py
Nota: El detalle, biografía y fecha/hora asignada se completan automáticamente a medida que los autores actualizan y confirman dichos datos.